aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/sdnc/netconf-pnp-simulator/netconf-config
diff options
context:
space:
mode:
authorDan Timoney <dtimoney@att.com>2021-02-25 09:36:40 -0500
committerDan Timoney <dtimoney@att.com>2021-03-03 17:17:22 -0500
commitaf0838981ce48bb1d004edd2a16a5eb22df0da74 (patch)
tree7079c2ceccb9e4b6c90c733c5081c293bc449bc2 /scripts/sdnc/netconf-pnp-simulator/netconf-config
parent553be2c5e16d18f86d9babe2b7f863d99be4c3dc (diff)
Update SDNC CSIT for Honolulu changes
Added env settings needed to start up SDNC container, and updated URL used to retrieve list of APIs (which changes in OpenDaylight Aluminum). Removed unneeded code to start up cert service (since those certs are not needed for NETCONF/TLS ... the certs we need are for the NETCONF device itself). Commented out tests of TLS connection for now - simulator we had been using no longer exists (docker is no longer in nexus3.onap.org) and connection to new simulator is not yet working. Will restore those tests in a separate commit after debugging with new netconf simulator. Change-Id: I096694a3c70c92c951b7e50f73418ecb8c99d575 Issue-ID: SDNC-1473 Signed-off-by: Dan Timoney <dtimoney@att.com>
Diffstat (limited to 'scripts/sdnc/netconf-pnp-simulator/netconf-config')
-rw-r--r--scripts/sdnc/netconf-pnp-simulator/netconf-config/data.json10
-rw-r--r--scripts/sdnc/netconf-pnp-simulator/netconf-config/model.yang29
-rwxr-xr-xscripts/sdnc/netconf-pnp-simulator/netconf-config/subscriber.py136
3 files changed, 0 insertions, 175 deletions
diff --git a/scripts/sdnc/netconf-pnp-simulator/netconf-config/data.json b/scripts/sdnc/netconf-pnp-simulator/netconf-config/data.json
deleted file mode 100644
index 63872eef..00000000
--- a/scripts/sdnc/netconf-pnp-simulator/netconf-config/data.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "mynetconf:netconflist": {
- "netconf": [
- {
- "netconf-id": 3,
- "netconf-param": 3
- }
- ]
- }
-}
diff --git a/scripts/sdnc/netconf-pnp-simulator/netconf-config/model.yang b/scripts/sdnc/netconf-pnp-simulator/netconf-config/model.yang
deleted file mode 100644
index 6c8c36ab..00000000
--- a/scripts/sdnc/netconf-pnp-simulator/netconf-config/model.yang
+++ /dev/null
@@ -1,29 +0,0 @@
-module mynetconf {
- yang-version 1.1;
- namespace "urn:mynetconf:test";
-
- prefix nft;
-
- organization
- "mynetconf";
- contact
- "my netconf address";
- description
- "yang model for mynetconf";
- revision "2019-03-01" {
- description
- "initial version";
- }
-
- container netconflist {
- list netconf {
- key netconf-id;
- leaf netconf-id {
- type uint16;
- }
- leaf netconf-param {
- type uint32;
- }
- }
- }
-}
diff --git a/scripts/sdnc/netconf-pnp-simulator/netconf-config/subscriber.py b/scripts/sdnc/netconf-pnp-simulator/netconf-config/subscriber.py
deleted file mode 100755
index 61272967..00000000
--- a/scripts/sdnc/netconf-pnp-simulator/netconf-config/subscriber.py
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/usr/bin/env python3
-
-__author__ = "Mislav Novakovic <mislav.novakovic@sartura.hr>"
-__copyright__ = "Copyright 2018, Deutsche Telekom AG"
-__license__ = "Apache 2.0"
-
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This sample application demonstrates use of Python programming language bindings for sysrepo library.
-# Original c application was rewritten in Python to show similarities and differences
-# between the two.
-#
-# Most notable difference is in the very different nature of languages, c is weakly statically typed language
-# while Python is strongly dynamically typed. Python code is much easier to read and logic easier to comprehend
-# for smaller scripts. Memory safety is not an issue but lower performance can be expected.
-#
-# The original c implementation is also available in the source, so one can refer to it to evaluate trade-offs.
-
-import sysrepo as sr
-import sys
-
-
-# Helper function for printing changes given operation, old and new value.
-def print_change(op, old_val, new_val):
- if op == sr.SR_OP_CREATED:
- print(f"CREATED: {new_val.to_string()}")
- elif op == sr.SR_OP_DELETED:
- print(f"DELETED: {old_val.to_string()}")
- elif op == sr.SR_OP_MODIFIED:
- print(f"MODIFIED: {old_val.to_string()} to {new_val.to_string()}")
- elif op == sr.SR_OP_MOVED:
- print(f"MOVED: {new_val.xpath()} after {old_val.xpath()}")
-
-
-# Helper function for printing events.
-def ev_to_str(ev):
- if ev == sr.SR_EV_VERIFY:
- return "verify"
- elif ev == sr.SR_EV_APPLY:
- return "apply"
- elif ev == sr.SR_EV_ABORT:
- return "abort"
- else:
- return "unknown"
-
-
-# Function to print current configuration state.
-# It does so by loading all the items of a session and printing them out.
-def print_current_config(session, module_name):
- select_xpath = f"/{module_name}:*//*"
-
- values = session.get_items(select_xpath)
-
- if values is not None:
- print("========== BEGIN CONFIG ==========")
- for i in range(values.val_cnt()):
- print(values.val(i).to_string(), end='')
- print("=========== END CONFIG ===========")
-
-
-# Function to be called for subscribed client of given session whenever configuration changes.
-def module_change_cb(sess, module_name, event, private_ctx):
- try:
- print("========== Notification " + ev_to_str(event) + " =============================================")
- if event == sr.SR_EV_APPLY:
- print_current_config(sess, module_name)
-
- print("========== CHANGES: =============================================")
-
- change_path = f"/{module_name}:*"
-
- it = sess.get_changes_iter(change_path)
-
- while True:
- change = sess.get_change_next(it)
- if change is None:
- break
- print_change(change.oper(), change.old_val(), change.new_val())
-
- print("========== END OF CHANGES =======================================")
- except Exception as e:
- print(e)
-
- return sr.SR_ERR_OK
-
-
-def main():
- # Notable difference between c implementation is using exception mechanism for open handling unexpected events.
- # Here it is useful because `Connection`, `Session` and `Subscribe` could throw an exception.
- try:
- module_name = "ietf-interfaces"
- if len(sys.argv) > 1:
- module_name = sys.argv[1]
- else:
- print("\nYou can pass the module name to be subscribed as the first argument")
-
- print(f"Application will watch for changes in {module_name}")
-
- # connect to sysrepo
- conn = sr.Connection(module_name)
-
- # start session
- sess = sr.Session(conn)
-
- # subscribe for changes in running config */
- subscribe = sr.Subscribe(sess)
-
- subscribe.module_change_subscribe(module_name, module_change_cb)
-
- try:
- print_current_config(sess, module_name)
- except Exception as e:
- print(e)
-
- print("========== STARTUP CONFIG APPLIED AS RUNNING ==========")
-
- sr.global_loop()
-
- print("Application exit requested, exiting.")
-
- except Exception as e:
- print(e)
-
-
-if __name__ == '__main__':
- main()