summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2020-12-07 22:51:40 -0600
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2020-12-07 22:51:40 -0600
commit85db708181d28fa73fe03409728ba41041b8d227 (patch)
tree41aee906c88454b48f87a17487c773164697cd8d
parenta762163b138b24c86c29fa049e6303d708f835c6 (diff)
downloadnetconfapk-85db708181d28fa73fe03409728ba41041b8d227.tar.gz
netconfapk-85db708181d28fa73fe03409728ba41041b8d227.tar.bz2
netconfapk-85db708181d28fa73fe03409728ba41041b8d227.tar.xz
netconfapk-85db708181d28fa73fe03409728ba41041b8d227.zip
ietf-system: Log system shutdown/restart operations
-rw-r--r--ncserver/base/log.py6
-rw-r--r--ncserver/module/system.py8
2 files changed, 11 insertions, 3 deletions
diff --git a/ncserver/base/log.py b/ncserver/base/log.py
index 411fa10..438e443 100644
--- a/ncserver/base/log.py
+++ b/ncserver/base/log.py
@@ -43,6 +43,12 @@ def log_config_change(session, node, info):
)
+def log_operation(session, oper):
+ """Log an operation being performed."""
+ LOG_OPERATIONAL.notice('%s on session %d is %s',
+ user_for_session(session), session.session_id, oper)
+
+
def configure_format(hostname: str):
"""Configure the formatter for the root log handler."""
fmt = logging.Formatter('%(asctime)s ' + hostname +
diff --git a/ncserver/module/system.py b/ncserver/module/system.py
index 4509eca..d295aaa 100644
--- a/ncserver/module/system.py
+++ b/ncserver/module/system.py
@@ -22,7 +22,7 @@ from socket import gethostname, sethostname
from lxml import etree
from netconf import error, util
-from ncserver.base.log import HOSTNAME_CHANGED, log_config_change
+from ncserver.base.log import HOSTNAME_CHANGED, log_config_change, log_operation
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, system_boot_time
@@ -673,14 +673,16 @@ def edit(session, rpc, node, def_op):
maybe_raise_on_invalid_node(M_NS, rpc, subsystem)
-def rpc_system_shutdown(session, rpc, *params):
+def rpc_system_shutdown(session, _, *params):
"""Shutdown the system."""
+ log_operation(session, "shutting down the system")
subprocess.Popen(["/sbin/poweroff"])
return util.elm('nc:ok')
-def rpc_system_restart(session, rpc, *params):
+def rpc_system_restart(session, _, *params):
"""Restart the system."""
+ log_operation(session, "restarting the system")
subprocess.Popen(["/sbin/reboot"])
return util.elm('nc:ok')