From 85db708181d28fa73fe03409728ba41041b8d227 Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Mon, 7 Dec 2020 22:51:40 -0600
Subject: ietf-system: Log system shutdown/restart operations

---
 ncserver/base/log.py      | 6 ++++++
 ncserver/module/system.py | 8 +++++---
 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')
 
-- 
cgit v1.2.3-70-g09d2