ctrlIpAddr = d['ctrlIpAddr'] ctrlPortNum = d['ctrlPortNum'] ctrlUname = d['ctrlUname'] ctrlPswd = d['ctrlPswd'] nodeName = d['nodeName'] nodeIpAddr = d['nodeIpAddr'] nodePortNum = d['nodePortNum'] nodeUname = d['nodeUname'] nodePswd = d['nodePswd'] except: print("Failed to get Controller device attributes") exit(0) ctrl = Controller(ctrlIpAddr, ctrlPortNum, ctrlUname, ctrlPswd) node = NetconfNode(ctrl, nodeName, nodeIpAddr, nodePortNum, nodeUname, nodePswd) print(">>> Removing '%s' from the Controller '%s'" % (nodeName, ctrlIpAddr)) result = ctrl.delete_netconf_node(node) status = result[0] if (status.eq(STATUS.OK) == True): print("'%s' was successfully removed from the Controller" % nodeName) else: print("\n") print("!!!Failed, reason: %s" % status.brief().lower()) exit(0) print "\n"
status = result[0] if(status.eq(STATUS.OK)): print "Nodes configured:" nlist = result[1] for item in nlist: print " '{}'".format(item) else: print ("\n") print ("!!!Demo terminated, reason: %s" % status.brief()) exit(0) print ("\n") time.sleep(rundelay) print ("<<< Creating new '%s' NETCONF node" % nodeName) node = NetconfNode(ctrl, nodeName, nodeIpAddr, nodePortNum, nodeUname, nodePswd) print ("'%s':" % nodeName) print node.to_json() print ("\n") print ("<<< Check '%s' NETCONF node availability on the network" % nodeName) time.sleep(rundelay) response = os.system("ping -c 1 " + nodeIpAddr) if response == 0: print nodeIpAddr, 'is up!' else: print nodeIpAddr, 'is down!' print ("!!!Demo terminated") exit(0)
def __init__(self, ctrl, name, ip_address, port_number, admin_name, admin_password, tcp_only=False): NetconfNode.__init__(self, ctrl. name, ip_address, port_number, admin_name, admin_name, tcp_only)
def nc_demo_11(): f = "cfg3.yml" d = {} if(load_dict_from_file(f, d) is False): print("Config file '%s' read error: " % f) exit(0) try: ctrlIpAddr = d['ctrlIpAddr'] ctrlPortNum = d['ctrlPortNum'] ctrlUname = d['ctrlUname'] ctrlPswd = d['ctrlPswd'] nodeName = d['nodeName'] nodeIpAddr = d['nodeIpAddr'] nodePortNum = d['nodePortNum'] nodeUname = d['nodeUname'] nodePswd = d['nodePswd'] rundelay = d['rundelay'] except: print ("Failed to get Controller or NETCONF device attributes") exit(0) print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<") print ("<<< Demo Start") print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<") print ("\n") print ("<<< Creating Controller instance") ctrl = Controller(ctrlIpAddr, ctrlPortNum, ctrlUname, ctrlPswd) print ("'Controller':") print ctrl.to_json() print "\n" print ("<<< Show NETCONF nodes configured on the Controller") time.sleep(rundelay) result = ctrl.get_netconf_nodes_in_config() status = result.get_status() if(status.eq(STATUS.OK)): print "Nodes configured:" nlist = result.get_data() for item in nlist: print " '{}'".format(item) else: print ("\n") print ("!!!Demo terminated, reason: %s" % status.brief()) exit(0) node_configured = False result = ctrl.check_node_config_status(nodeName) status = result.get_status() if(status.eq(STATUS.NODE_CONFIGURED)): node_configured = True elif(status.eq(STATUS.DATA_NOT_FOUND)): node_configured = False else: print ("\n") print "Failed to get configuration status for the '%s'" % nodeName print ("!!!Demo terminated, reason: %s" % status.detailed()) exit(0) if node_configured: print ("\n") print ("<<< '%s' is already configured on the Controller" % nodeName) print ("Unmounting '%s' from the Controller" % nodeName) time.sleep(rundelay) result = ctrl.delete_netconf_node(nodename=nodeName) status = result.get_status() if(status.eq(STATUS.OK)): print ("<<< '%s' NETCONF node was successfully removed " "from the Controller" % nodeName) else: print ("\n") print ("!!!Demo terminated, reason: %s" % status.brief()) exit(0) print ("\n") time.sleep(rundelay) print ("<<< Creating new '%s' NETCONF node" % nodeName) node = NetconfNode(ctrl, nodeName, nodeIpAddr, nodePortNum, nodeUname, nodePswd) print ("'%s':" % nodeName) print node.to_json() print ("\n") print ("<<< Check '%s' NETCONF node availability " "on the network" % nodeName) time.sleep(rundelay) response = os.system("ping -c 1 " + nodeIpAddr) if response == 0: print nodeIpAddr, 'is up!' else: print nodeIpAddr, 'is down!' print ("!!!Demo terminated") exit(0) print ("\n") print ("<<< Add '%s' NETCONF node to the Controller" % nodeName) time.sleep(rundelay) result = ctrl.add_netconf_node(node) status = result.get_status() if(status.eq(STATUS.OK)): print ("'%s' NETCONF node was successfully added " "to the Controller" % nodeName) else: print ("\n") print ("!!!Demo terminated, reason: %s" % status.brief()) exit(0) print "\n" print ("<<< Show NETCONF nodes configured on the Controller") time.sleep(rundelay) result = ctrl.get_netconf_nodes_in_config() status = result.get_status() if(status.eq(STATUS.OK)): print "Nodes configured:" nlist = result.get_data() for item in nlist: print " '{}'".format(item) else: print ("\n") print ("!!!Demo terminated, reason: %s" % status.brief()) exit(0) print "\n" print ("<<< Find the '%s' NETCONF node on the Controller" % nodeName) time.sleep(rundelay) result = ctrl.check_node_config_status(nodeName) status = result.get_status() if(status.eq(STATUS.NODE_CONFIGURED)): print ("'%s' node is configured" % nodeName) else: print ("\n") print ("!!!Demo terminated, reason: %s" % status.brief()) exit(0) print "\n" print ("<<< Show connection status for all NETCONF nodes " "configured on the Controller") time.sleep(rundelay) result = ctrl.get_netconf_nodes_conn_status() status = result.get_status() if(status.eq(STATUS.OK)): print "Nodes connection status:" nlist = result.get_data() for item in nlist: status = "" if (item['connected'] is True): status = "connected" else: status = "not connected" print " '{}' is {}".format(item['node'], status) else: print ("\n") print ("!!!Demo terminated, reason: %s" % status.brief()) exit(0) print "\n" print ("<<< Show connection status for the '%s' NETCONF node" % nodeName) time.sleep(rundelay) result = ctrl.check_node_conn_status(nodeName) status = result.get_status() if(status.eq(STATUS.NODE_CONNECTED)): print ("'%s' node is connected" % nodeName) elif (status.eq(STATUS.NODE_DISONNECTED)): print ("'%s' node is not connected" % nodeName) elif (status.eq(STATUS.NODE_NOT_FOUND)): print ("'%s' node is not found" % nodeName) else: print ("\n") print ("!!!Demo terminated, reason: %s" % status.brief()) exit(0) print "\n" print (">>> Remove '%s' NETCONF node from the Controller" % nodeName) time.sleep(rundelay) result = ctrl.delete_netconf_node(node) status = result.get_status() if(status.eq(STATUS.OK)): print ("'%s' NETCONF node was successfully removed " "from the Controller" % nodeName) else: print ("\n") print ("!!!Demo terminated, reason: %s" % status.brief()) exit(0) print "\n" print ("<<< Show NETCONF nodes configured on the Controller") time.sleep(rundelay) result = ctrl.get_netconf_nodes_in_config() status = result.get_status() if(status.eq(STATUS.OK)): print "Nodes configured:" nlist = result.get_data() for item in nlist: print " '{}'".format(item) else: print ("\n") print ("!!!Demo terminated, reason: %s" % status.brief()) exit(0) print "\n" print ("<<< Show connection status for the '%s' NETCONF node" % nodeName) time.sleep(rundelay) result = ctrl.check_node_conn_status(nodeName) status = result.get_status() if(status.eq(STATUS.NODE_CONNECTED)): print ("'%s' node is connected" % nodeName) elif (status.eq(STATUS.NODE_DISONNECTED)): print ("'%s' node is not connected" % nodeName) elif (status.eq(STATUS.NODE_NOT_FOUND)): print ("'%s' node is not found" % nodeName) else: print ("\n") print ("!!!Demo terminated, reason: %s" % status.brief()) exit(0) print ("\n") print (">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>") print (">>> Demo End") print (">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")