diff options
-rw-r--r-- | ncserver/module/interfaces.py | 24 |
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. |