summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2020-12-07 22:30:20 -0600
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2020-12-07 22:30:20 -0600
commitca93b88a3715612dddc01eac6d9ebbbb96a19b2f (patch)
tree35e2e1251f9f28ee2aeb98588737ccec9d05de22
parent0f5425767964262062a6ef3791e9c797c653ef36 (diff)
downloadnetconfapk-ca93b88a3715612dddc01eac6d9ebbbb96a19b2f.tar.gz
netconfapk-ca93b88a3715612dddc01eac6d9ebbbb96a19b2f.tar.bz2
netconfapk-ca93b88a3715612dddc01eac6d9ebbbb96a19b2f.tar.xz
netconfapk-ca93b88a3715612dddc01eac6d9ebbbb96a19b2f.zip
ietf-system: Factor boot time calculation out to util module
-rw-r--r--ncserver/module/system.py10
-rw-r--r--ncserver/util.py12
2 files changed, 14 insertions, 8 deletions
diff --git a/ncserver/module/system.py b/ncserver/module/system.py
index f651a7f..4509eca 100644
--- a/ncserver/module/system.py
+++ b/ncserver/module/system.py
@@ -15,10 +15,8 @@ import os.path
import pathlib
import platform
import subprocess
-import time
from datetime import datetime
-from math import floor
from socket import gethostname, sethostname
from lxml import etree
@@ -27,7 +25,7 @@ from netconf import error, util
from ncserver.base.log import HOSTNAME_CHANGED, log_config_change
from ncserver.base.util import _, ensure_leaf, handle_list_operation, \
node_operation, yang_dt_for_timestamp
-from ncserver.util import maybe_raise_on_invalid_node
+from ncserver.util import maybe_raise_on_invalid_node, system_boot_time
QName = etree.QName # pylint: disable=I1101
@@ -381,11 +379,7 @@ def operational(node):
yang_dt_for_timestamp(datetime.now().timestamp())
))
- with open('/proc/uptime', 'r') as upfile:
- raw = upfile.read().split(' ')[0]
- boot = floor(time.time() - float(raw))
- clock.append(util.leaf_elm('sys:boot-datetime',
- yang_dt_for_timestamp(boot)))
+ clock.append(util.leaf_elm('sys:boot-datetime', system_boot_time()))
# -- Editing functions --
diff --git a/ncserver/util.py b/ncserver/util.py
index bf47f56..7349baf 100644
--- a/ncserver/util.py
+++ b/ncserver/util.py
@@ -11,10 +11,14 @@ SPDX-License-Identifier: NCSA
"""
+from math import floor
+import time
+
from lxml.etree import QName # pylint: disable=E0611
from netconf import error
from ncserver.base.modman import MODMAN
+from ncserver.base.util import yang_dt_for_timestamp
def maybe_raise_on_invalid_node(xmlns, rpc, node):
@@ -35,3 +39,11 @@ def maybe_raise_on_invalid_node(xmlns, rpc, node):
# pylint: disable=W0212
if nodens not in (mod.M_PREFIX for mod in MODMAN._augments_for_ns(xmlns)):
raise error.UnknownNamespaceAppError(rpc, node, None)
+
+
+def system_boot_time() -> str:
+ """Return the system's boot time."""
+ with open('/proc/uptime', 'r') as upfile:
+ raw = upfile.read().split(' ')[0]
+ boot = floor(time.time() - float(raw))
+ return yang_dt_for_timestamp(boot)