summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2020-12-07 21:03:33 -0600
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2020-12-07 21:03:33 -0600
commit8f452f17ebca8d1f7684fe982dbb23a955905314 (patch)
tree768296503bdb5b8c7763473f55c5616f860416cf
parentecbfce3b78b01501313234c9b669f0fcccf48559 (diff)
downloadnetconfapk-8f452f17ebca8d1f7684fe982dbb23a955905314.tar.gz
netconfapk-8f452f17ebca8d1f7684fe982dbb23a955905314.tar.bz2
netconfapk-8f452f17ebca8d1f7684fe982dbb23a955905314.tar.xz
netconfapk-8f452f17ebca8d1f7684fe982dbb23a955905314.zip
ietf-interfaces: Log changes
-rw-r--r--ncserver/module/interfaces.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/ncserver/module/interfaces.py b/ncserver/module/interfaces.py
index d6e0196..62aa91c 100644
--- a/ncserver/module/interfaces.py
+++ b/ncserver/module/interfaces.py
@@ -17,6 +17,7 @@ import subprocess
from lxml import etree
from netconf import error, util
+from ncserver.base.log import log_config_change
from ncserver.base.modman import MODMAN
from ncserver.base.util import _, node_operation, yang_dt_for_timestamp
from ncserver.util import maybe_raise_on_invalid_node
@@ -112,6 +113,21 @@ def _get_nmsa():
return nmsa
+def _log_iface_change(session, iface: str, info: str):
+ """Log a change to an interface.
+
+ :param session:
+ The session performing the change.
+
+ :param str iface:
+ The interface being changed.
+
+ :param str info:
+ Information about the change.
+ """
+ log_config_change(session, "[ietf-interface %s]" % iface, info)
+
+
def running(node):
"""Retrieve the service configuration for this device."""
ifaces = util.subelm(node, 'if:interfaces')
@@ -241,12 +257,14 @@ def _edit_description(session, rpc, node, def_op, iface: str):
raise error.DataMissingAppError(rpc)
if operation in ('delete', 'remove'):
+ _log_iface_change(session, iface, "removing description")
nmsa.unset_param(iface, 'description')
return
if operation not in ('create', 'merge', 'replace'):
raise error.OperationNotSupportedAppError(rpc)
+ _log_iface_change(session, iface, "description: " + node.text)
nmsa.set_param(iface, 'description', node.text)
@@ -262,7 +280,9 @@ def _edit_enabled(session, rpc, node, def_op, iface: str):
# You cannot delete the enabled node.
raise error.OperationNotSupportedAppError(rpc)
- nmsa.set_param(iface, 'enabled', (node.text == 'true'))
+ enable = (node.text == 'true')
+ _log_iface_change(session, iface, "enabled: " + str(enable))
+ nmsa.set_param(iface, 'enabled', enable)
def edit(session, rpc, node, def_op):
@@ -292,9 +312,11 @@ def edit(session, rpc, node, def_op):
raise error.DataMissingAppError(rpc)
if operation in ('delete', 'remove'):
+ _log_iface_change(session, iface, "interface removal")
nmsa.remove_interface(iface)
continue
+ _log_iface_change(session, iface, "interface creation")
enable_node = interface.find('{'+M_NS+'}enabled')
if enable_node is None:
nmsa.set_param(iface, 'enabled', True) # Default.