result = netconf_service.edit_config(session, Datastore.candidate, multi_cfg) assert 'ok' in result multi_filter = {'bgp':bgp(), 'routing-policy':RoutingPolicy()} multi_entity_read = netconf_service.get_config(session, Datastore.candidate, multi_filter) multi_payload_actual = codec.encode(codec_provider, multi_entity_read) assert multi_payload_expected == multi_payload_actual def init_logging(): import logging 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) if __name__ == "__main__": init_logging() provider = NetconfServiceProvider(address='localhost', username='******', password='******', protocol='ssh', port=1220) netconf_service = NetconfService() bgp_run(netconf_service, provider) # run_multiple_routing_bgp(netconf_service, provider) exit()
log = logging.getLogger('ydk') log.setLevel(level) handler = logging.StreamHandler() formatter = logging.Formatter(("%(asctime)s - %(name)s - %(levelname)s - %(message)s")) handler.setFormatter(formatter) log.addHandler(handler) if __name__ == "__main__": """Main execution path""" enable_logging(logging.INFO) # create NETCONF session provider = NetconfServiceProvider(address="192.168.122.169", port=830, username="******", password="******", protocol="ssh") # create CRUD service crud = CRUDService() # create system time object system_time = xr_shellutil_oper.SystemTime() # read system time from device system_time = crud.read(provider, system_time) # print system uptime print("System '%s' uptime is "%system_time.uptime.host_name + str(timedelta(seconds=system_time.uptime.uptime)))
# Python script to use YDK Yang tools to edit BGP from ydk.services import CRUDService from ydk.providers import NetconfServiceProvider from ydk.models.openconfig import bgp if __name__ == "__main__": provider = NetconfServiceProvider (address= 'xrv', port = 830, username="******", password="******", protcol="ssh") crud = CRUDService() bgp = bgp.Bgp() bgp.global_.config.as_ = 65000 bgp.global_config.router_id = '10.1.1.1' crud.create(provider, bgp) provider.close()
def setUpClass(cls): cls.ncc = NetconfServiceProvider(cls.hostname, cls.username, cls.password, cls.port, cls.protocol, cls.on_demand, cls.common_cache) cls.crud = CRUDService()
afi_safi.config.enabled = True peer_group.afi_safis.afi_safi.append(afi_safi) bgp.peer_groups.peer_group.append(peer_group) # configure IBGP neighbor neighbor = bgp.neighbors.Neighbor() neighbor.neighbor_address = remote_peer neighbor.config.neighbor_address = remote_peer neighbor.config.peer_group = peer_group_name bgp.neighbors.neighbor.append(neighbor) if __name__ == "__main__": """Execute main program.""" # create IOS-XR NETCONF provider xr_provider = NetconfServiceProvider(address=iosxr_host, port=netconf_port, username=username, password=password, timeout=10) # create JunOS NETCONF provider ##junos_provider = NetconfServiceProvider(address=junos_host, ## port=netconf_port, ## username=username, ## password=password, ## timeout=10) #create an instance of the netconf service netconf = NetconfService() # Create an IOSXR instance from the OpenConfig BGP Model xr_bgp = oc_bgp.Bgp() # Create an JunOS instance from the OpenConfig BGP Model
def get_netconf_provider(self): provider = NetconfServiceProvider(address=self.mgmt_ip, port=self.netconf_port, username=self.username, password=self.password) return provider
log.setLevel(level) handler = logging.StreamHandler() formatter = logging.Formatter( ("%(asctime)s - %(name)s - %(levelname)s - %(message)s")) handler.setFormatter(formatter) log.addHandler(handler) if __name__ == "__main__": """Main execution path""" enable_logging(logging.INFO) # create NETCONF session provider = NetconfServiceProvider(address="10.30.110.84", port=None, username="******", password="******") # create CRUD service crud = CRUDService() # create system time object system_time = xr_shellutil_oper.SystemTime() # read system time from device system_time = crud.read(provider, system_time) # print system uptime print("System '%s' uptime is " % system_time.uptime.host_name + str(timedelta(seconds=system_time.uptime.uptime))) exit()
def setUpClass(self): self.ncc = NetconfServiceProvider(address='127.0.0.1', username='******', password='******', port=12022) self.crud = CRUDService()
#! /usr/bin/python import logging from ydk.providers import NetconfServiceProvider from ydk.services import CRUDService from ydk.models.cisco_nx_os import Cisco_NX_OS_device from ydk.filters import YFilter def setup_logger(): 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) setup_logger() crud = CRUDService() ncc = NetconfServiceProvider(address='93180-EX-1', username='******', password='******') s = Cisco_NX_OS_device.System() l = s.bd_items.bd_items.BDList() l.fabencap = 'vlan-123' l.name = 'ydk-vlan' l.accencap = 'vxlan-90001' s.bd_items.bd_items.bd_list.append(l) crud.create(ncc, s)
# import providers, services and models from ydk.services import CRUDService from ydk.providers import NetconfServiceProvider from ydk.models.cisco_ios_xr import Cisco_IOS_XR_shellutil_oper \ as xr_shellutil_oper from datetime import timedelta if __name__ == "__main__": """Main execution path""" # create NETCONF session provider = NetconfServiceProvider(address="sbx-iosxr-mgmt.cisco.com", port=10000, username="******", password="******", protocol="ssh") # create CRUD service crud = CRUDService() # create system time object system_time = xr_shellutil_oper.SystemTime() # read system time from device system_time = crud.read(provider, system_time) # print system uptime print("System uptime is " + str(timedelta(seconds=system_time.uptime.uptime))) exit()
from ydk.models.openconfig import openconfig_bgp import json def config_native(native): """Add config data to native object.""" loopback = native.interface.Loopback() loopback.name = 0 loopback.description = "PRIMARY ROUTER LOOPBACK" loopback.ip.address.primary.address = "172.16.255.1" loopback.ip.address.primary.mask = "255.255.255.255" native.interface.loopback.append(loopback) if __name__ == "__main__": with open('hosts.json', 'r') as fh: hosts = json.loads(fh.read()) host = hosts[0] provider = NetconfServiceProvider(address=host.get('host'), port=int(host.get('netconf_port')), username=host.get('username'), password=host.get('password'), protocol='ssh') crud = CRUDService() bgp = openconfig_bgp.Bgp() bgp.global_.config.as_ = 65001 bgp.global_.config.router_id = '10.0.0.1' result = crud.create(provider, bgp)
# Instantiate the codec service codec = CodecService() # Instantiate codec providers with json and xml options json_provider = CodecServiceProvider(type='json') xml_provider = CodecServiceProvider(type='xml') home = os.path.expanduser("~") repo = Repository(os.path.join(home, "projects", "junos_yang")) # create NETCONF provider nc_provider = NetconfServiceProvider( address="10.1.2.1", port=22, username="******", password="******", protocol="ssh", repo= repo # see: https://community.cisco.com/t5/yang-development-kit-ydk/issue-with-retrieving-of-schema/td-p/3544980 ) if_json = r'''{ "junos-qfx-conf-root:configuration": { "junos-qfx-conf-interfaces:interfaces": { "interface": [ { "name": "ge-0/0/0", "description": "\"test desc\"", "unit": [ { "name": "0",
from ydk.services import CRUDService from ydk.providers import NetconfServiceProvider from ydk.models.cisco_ios_xr import Cisco_IOS_XR_shellutil_oper as xr_shellutil_oper from datetime import timedelta if __name__ == "__main__": """Main execution path""" # create NETCONF session provider = NetconfServiceProvider(address="200.200.200.200", port=830, username="******", password="******", protocol="ssh") # create CRUD service crud = CRUDService() # create system time object system_time = xr_shellutil_oper.SystemTime() # read system time from device system_time = crud.read(provider, system_time) # Print system time print("System uptime is " + str(system_time.uptime.uptime)) # close NETCONFIG session and exit provider.close() exit()
def setUpClass(cls): cls.ncc = NetconfServiceProvider(cls.hostname, cls.username, cls.password, cls.port, cls.protocol, not cls.on_demand, cls.common_cache, cls.timeout) cls.netconf_service = NetconfService()
"ip_address": args.pe2_ip, "platform": args.pe2_platform, "intf_name": args.pe2_intf, "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:
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()
"""Execute main program.""" #####initialize the parser object for verbose and logging####### parser = ArgumentParser() parser.add_argument("-v", "--verbose", help="print debugging messages", action="store_true") args = parser.parse_args() # 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) #####end verbose and logging###### #create a netconf provider provider = NetconfServiceProvider(address="198.18.1.11", port=22, username="******", password="******", protocol="ssh") crud = CRUDService() ldp_interfaces = ["GigabitEthernet0/0/0/1", "GigabitEthernet0/0/0/2", "GigabitEthernet0/0/0/3"] mpls_ldp = xr_mpls_ldp_cfg.MplsLdp() #create the instance of the MplsLDP object config_ldp(mpls_ldp, ldp_interfaces) # invoke the function and pass on the mpls_ldp object and interface list crud.create(provider, mpls_ldp) #validate and create netconf session to router validate and add the configuration exit()
def crud_read(obj): crud = CRUDService() ncc = NetconfServiceProvider(address='93180-EX-1', username='******', password='******') return crud.read(ncc, obj)
) # return formated string return ping_reply from ydk.services import ExecutorService from ydk.models.cisco_ios_xr import Cisco_IOS_XR_ping_act as xr_ping_act from ydk.providers import NetconfServiceProvider import logging logger = logging.getLogger("ydk") logger.setLevel(logging.INFO) handler = logging.StreamHandler() logger.addHandler(handler) provider = NetconfServiceProvider(address="198.18.1.11", port=22, username='******', password='******', protocol='ssh') executor = ExecutorService() ping = xr_ping_act.Ping() ping.input.destination = ping.input.Destination() ping.input.destination.destination = '192.168.0.2' ping_output = executor.execute_rpc(provider, ping, ping.output) print(process_ping_rpc(ping_output))
from ydk.services import CRUDService from ydk.providers import NetconfServiceProvider from ydk.models.ietf import ietf_interfaces as intf from ydk.models.ietf import iana_if_type as iftype HOST = '172.20.20.10' PORT = 830 USER = '******' PASS = '******' # create NETCONF provider provider = NetconfServiceProvider(address=HOST, port=PORT, username=USER, password=PASS) # create CRUD service crud = CRUDService() # interface to delete to_del = intf.Interfaces.Interface() # create a new loopback to_del.name = 'Loopback666' res = crud.delete(provider, to_del) provider.close()
from ydk.services import CRUDService from ydk.providers import NetconfServiceProvider from ydk.models.cisco_ios_xe import Cisco_IOS_XE_interfaces_oper as xe_interface import device ios_xe = device.xe_sandbox() # create NETCONF provider provider = NetconfServiceProvider(address=ios_xe.hostname, port=ios_xe.port, username=ios_xe.username, password=ios_xe.password, protocol=ios_xe.protocol) # create CRUD service crud = CRUDService() interfaces_filter = xe_interface.Interfaces() interfaces = crud.read(provider, interfaces_filter) for int_entry in range(interfaces.interface.__len__()): print("{int} has @IP : {ip}".format(int=interfaces.interface[int_entry].name, ip=interfaces.interface[int_entry].ipv4))
from ydk.services import CRUDService from ydk.providers import NetconfServiceProvider from ydk.models.cisco_ios_xe import Cisco_IOS_XE_native as xe_model # CSR1kv1 Credentials ip = '0.0.0.0' port_n = 0 user = '******' paswd = 'password' proto = 'protocol' if __name__ == '__main__': provider = NetconfServiceProvider(address=ip, port=port_n, username=user, password=paswd, protocol=proto) # create a CRUD service # create a new istance of Native Inteface object # read the interfaces with the help of read function # print the primary address of the fifth gigabitethernet interface exit()
log.addHandler(ch) def ietf_run(crud_service, provider): print '==============\nCRUD SERVICE\n==============' from ydk.models.ietf import ietf_system sys_obj = _get_obj_system() crud_service.delete(provider, ietf_system.System()) crud_service.create(provider, sys_obj) crud_service.delete(provider, ietf_system.System()) print '\n\n================\nCODEC SERVICE\n================' crud_service.delete(provider, ietf_system.System()) crud_service.create(provider, _get_decoded_entity()) crud_service.delete(provider, ietf_system.System()) if __name__ == "__main__": _init_logging() provider = NetconfServiceProvider(address='127.0.0.1', username='******', password='******', protocol='ssh', port=12022) crud_service = CRUDService() ietf_run(crud_service, provider) exit()
from ydk.services import CRUDService from ydk.providers import NetconfServiceProvider from ydk.models.bgp import bgp provider = NetconfServiceProvider(address=xrv, port=830, username=“cisco”, password=“cisco”, protocol=“ssh") crud = CRUDService() # create CRUD service bgp = bgp.Bgp() # create oc bgp object # set local AS number bgp.global_.config.router-id_ = "1.1.1.1" crud.create(provider, bgp) #create on NETCONF device provider.close()
print('==============\nNETCONF GET SERVICE\n==============') netconf_service.read(provider, ydk_obj, only_config) def netconf_get_config(netconf_service, provider, ydk_obj, datastore=Datastore.candidate, with_defaults_option=None): print('==============\nNETCONF GET CONFIG SERVICE\n==============') netconf_service.get_config(provider, datastore, ydk_obj, with_defaults_option) {% endif %}{% endspaceless %} if __name__ == "__main__": _init_logging() provider = NetconfServiceProvider(address='{{host}}', username='******', password='******', protocol='ssh', port={{port}}) {% spaceless %} {% if service_type == 'crud' %}crud_service = CRUDService() {% if service == 'create' %}{% for i in ydk_obj_names.split %} ydk_obj = {{i}}() crud_create(crud_service, provider, ydk_obj) {% endfor %}{% endif %} {% if service == 'update' %}{% for i in ydk_obj_names.split %} ydk_obj = {{i}}() crud_update(crud_service, provider, ydk_obj) {% endfor %}{% endif %} {% if service == 'delete' %}{% for i in ydk_obj_names.split %} ydk_obj = {{i}}()
neighbor_group_af.activate = Empty() neighbor_group_afs = neighbor_group.neighbor_group_afs neighbor_group_afs.neighbor_group_af.append(neighbor_group_af) # configure IBGP neighbor neighbor = four_byte_as.default_vrf.bgp_entity.neighbors.Neighbor() neighbor.neighbor_address = "172.16.255.2" neighbor.neighbor_group_add_member = "IBGP" four_byte_as.default_vrf.bgp_entity.neighbors.neighbor.append(neighbor) if __name__ == "__main__": """Execute main program.""" # create NETCONF provider provider = NetconfServiceProvider(address="11.1.1.3", port=830, username="******", password="******", protocol="ssh") # create CRUD service crud = CRUDService() bgp = xr_ipv4_bgp_cfg.Bgp() # create object config_bgp(bgp) # add object configuration # create configuration on NETCONF device crud.create(provider, bgp) exit() # End of script
the License. All rights not expressly granted by the License are reserved. Unless required by applicable law or agreed to separately 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. """ from ydk.services import CRUDService from ydk.providers import NetconfServiceProvider from ydk.models.cisco_ios_xr.Cisco_IOS_XR_ifmgr_cfg import InterfaceConfigurations if __name__ == "__main__": # create NETCONF session provider = NetconfServiceProvider(address="localhost", port=57779, username="******", password="******", protocol="ssh") # create CRUD service crud = CRUDService() # create interface config object interfacesDef = InterfaceConfigurations() # read system time from device interfaces = crud.read(provider, interfacesDef) for interfaceConfig in interfaces.interface_configuration: if interfaceConfig.interface_name == "GigabitEthernet0/0/0/0": interfaceConfig.description = "Changed from YDK"
args = parser.parse_args() device = urlparse(args.device) # 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 CRUD service crud = CRUDService() ipv4_acl_and_prefix_list = xr_ipv4_acl_cfg.Ipv4AclAndPrefixList() # create object config_ipv4_acl_and_prefix_list(ipv4_acl_and_prefix_list) # add object configuration # create configuration on NETCONF device crud.create(provider, ipv4_acl_and_prefix_list) exit() # End of script
def setUpClass(self): self.ncc = NetconfServiceProvider(address='127.0.0.1', username='******', password='******', protocol='ssh', port=12022) self.netconf_service = NetconfService()