summaryrefslogtreecommitdiff
path: root/ncserver
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2020-10-26 16:44:24 -0500
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2020-10-26 16:44:24 -0500
commit6f33a3f4eb55b376ef929aa9a10d936377edb0ff (patch)
tree17469b37822311a25c98137827fed84c84a211b1 /ncserver
parent363ba115df9885d645ec87dc983c530113a2a312 (diff)
downloadnetconfapk-6f33a3f4eb55b376ef929aa9a10d936377edb0ff.tar.gz
netconfapk-6f33a3f4eb55b376ef929aa9a10d936377edb0ff.tar.bz2
netconfapk-6f33a3f4eb55b376ef929aa9a10d936377edb0ff.tar.xz
netconfapk-6f33a3f4eb55b376ef929aa9a10d936377edb0ff.zip
Start on ietf-interfaces design and implementation
Diffstat (limited to 'ncserver')
-rw-r--r--ncserver/module/interfaces.py78
1 files changed, 78 insertions, 0 deletions
diff --git a/ncserver/module/interfaces.py b/ncserver/module/interfaces.py
new file mode 100644
index 0000000..f8c4f45
--- /dev/null
+++ b/ncserver/module/interfaces.py
@@ -0,0 +1,78 @@
+"""
+NETCONF for APK Distributions server:
+ ietf-interfaces module
+
+Copyright © 2020 Adélie Software in the Public Benefit, Inc.
+
+Released under the terms of the NCSA license. See the LICENSE file included
+with this source distribution for more information.
+
+SPDX-License-Identifier: NCSA
+"""
+
+import logging
+import os
+import subprocess
+
+from lxml import etree
+from netconf import error, util
+
+from ncserver.base.util import _, yang_dt_for_timestamp
+
+
+QName = etree.QName # pylint: disable=I1101
+
+
+LOGGER = logging.getLogger(__name__)
+"""The object used for logging informational messages."""
+
+
+M_ABI_VERSION = 1
+"""The ABI version of this NETCONF module."""
+
+
+M_PREFIX = "if"
+"""The XML tag prefix for this module's tags."""
+
+
+M_NS = "urn:ietf:params:xml:ns:yang:ietf-interfaces"
+"""The XML namespace for this module."""
+
+
+M_NAME = "ietf-interfaces"
+"""The YANG model name for this module."""
+
+
+M_REVISION = "2018-02-20"
+"""The YANG revision date for this module."""
+
+
+M_IMPORTS = {
+ 'ietf-yang-types@2013-07-15': {
+ 'ns': "urn:ietf:params:xml:ns:yang:ietf-yang-types", 'prefix': "yang"
+ }
+}
+"""The imported YANG modules for this module."""
+
+
+def _add_running_contents(ifaces):
+ """Retrieve the interface configuration for this device.
+
+ Allows returning the 'config true' data for both datastores."""
+ # foo
+
+
+def running(node):
+ """Retrieve the service configuration for this device."""
+ ifaces = util.subelm(node, 'if:interfaces')
+ _add_running_contents(ifaces)
+
+
+def operational(node):
+ """Retrieve the service state for this device."""
+ ifaces = util.subelm(node, 'if:interfaces')
+ _add_running_contents(ifaces)
+
+
+def edit(session, rpc, node, def_op):
+ """Edit the interface configuration for this device."""