def main(): ip = unicode(sys.argv[1], 'utf-8') port = int(sys.argv[2]) username = unicode(raw_input("Username: "******"hello, we are connecting to the IOS device") provider = NetConfService(address=ip, port=port, username=username, password=password, protocol=u'ssh') crud = service() native = xe_native.Native() native = crud.read(provider, native) read_hostname(native)
def create_service(arg_svc_name, arg_if_type, arg_if_num, arg_prefix, arg_dryrun=False): xe_native_config = xe_native.Native() create_acl(xe_native_config, arg_svc_name, arg_prefix) subif = create_subif(xe_native_config, arg_svc_name, arg_if_type, arg_if_num, arg_prefix) create_ospf_network(xe_native_config, arg_prefix) if arg_dryrun is False: ydk_crud.create(ydk_provider, xe_native_config) return str(subif) else: codec_service = CodecService() codec_provider = CodecServiceProvider(type='xml') print(codec_service.encode(codec_provider, xe_native_config)) return str(subif)
# log debug messages if verbose argument specified if args.verbose: logger = logging.getLogger("ydk") logger.setLevel(logging.INFO) handler = logging.StreamHandler() formatter = logging.Formatter(("%(asctime)s - %(name)s - " "%(levelname)s - %(message)s")) handler.setFormatter(formatter) logger.addHandler(handler) # create NETCONF provider provider = NetconfServiceProvider(address=device.hostname, port=device.port, username=device.username, password=device.password, protocol=device.scheme) # create NETCONF service netconf = NetconfService() native = xe_native.Native() # create object config_native(native) # add object configuration # edit configuration on NETCONF device # netconf.lock(provider, Datastore.running) netconf.edit_config(provider, Datastore.running, native) # netconf.unlock(provider, Datastore.running) exit() # End of script
newloopbacklist.ip.address.primary.address = netmodel.anycastrpaddr newloopbacklist.ip.address.primary.mask = netmodel.anycastrpmask newloopbacklist.ip.pim.sparse_mode = Cisco_IOS_XE_native.Native.Interface.Loopback.Ip.Pim.SparseModeEnum.sparse_mode obj.interface.loopback.append(newloopbacklist) else: modloopbacklist = obj.Interface.Loopback() modloopbacklist.name = 0 modloopbacklist.ip.pim.sparse_mode = Cisco_IOS_XE_native.Native.Interface.Loopback.Ip.Pim.SparseModeEnum.sparse_mode obj.interface.loopback.append(modloopbacklist) pass return obj for device in netmodel.FullNodelist: # Instantiate an Multicast Configuration opject multicastobject = Empty() multicastobject = Cisco_IOS_XE_native.Native() loopbackobject = Empty() loopbackobject = Cisco_IOS_XE_native.Native() readintobject = Cisco_IOS_XE_native.Native.Interface() l3intlist = [] # Create Connection parameters connection = NetconfServiceProvider(address=device.mgmtip, port=device.netconfport, username=device.username, password=device.password) # Read Interface YANG Model nativereaddata = crud.read(connection, readintobject) provider = CodecServiceProvider(type="xml") codec = CodecService() xmls = codec.encode(provider, nativereaddata) # Convert Read Interface Data to Dictionary and parse for L3 Interface List
if __name__ == "__main__": """Execute main program.""" parser = argparse.ArgumentParser() parser.add_argument('-v', "--verbose", help="print debugging messages", action="store_true") # parser.add_argument('-n', required=True, help='specify node(s) ; Mandatory', nargs='*') args = parser.parse_args() # log debug messages if verbose argument specified if args.verbose: logger = logging.getLogger("ydk") logger.setLevel(logging.DEBUG) handler = logging.StreamHandler() formatter = logging.Formatter(("%(asctime)s - %(name)s - " "%(levelname)s - %(message)s")) handler.setFormatter(formatter) logger.addHandler(handler) connection = NetconfServiceProvider(address="10.92.77.167", port=830, username="******", password='******') crud = CRUDService() nativeobject = Cisco_IOS_XE_native.Native() nativedata = crud.read(connection, nativeobject) provider = CodecServiceProvider(type="xml") codec = CodecService() xmls = codec.encode(provider, nativedata) print (xmls) connection.close()
"dest_ip": args.pe1_ip }] for cisco_device in cisco_devices: pe_ip_address = cisco_device["ip_address"] intf_name = cisco_device["intf_name"] remote_ip_address = cisco_device["dest_ip"] crud = CRUDService() if cisco_device["platform"] == "IOSXE": provider = NetconfServiceProvider(address=pe_ip_address, port=830, username=args.username, password=args.password, protocol="ssh") l2vpn_obj = xe_native.Native() configure_l2vpn_xe(l2vpn_obj, remote_ip_address, intf_name, args.pw_id, args.pw_name) elif cisco_device["platform"] == "IOSXR": provider = NetconfServiceProvider(address=pe_ip_address, port=22, username=args.username, password=args.password, protocol="ssh") l2vpn_obj = l2vpn_xr_cfg.L2vpn() configure_l2vpn_xr(l2vpn_obj, remote_ip_address, intf_name, args.pw_id, args.pw_name) else: print("Invalid platform type entered!!") sys.exit() crud.create(provider, l2vpn_obj)