Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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()
Ejemplo n.º 4
0
 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()
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
 def get_netconf_provider(self):
     provider = NetconfServiceProvider(address=self.mgmt_ip,
                                       port=self.netconf_port,
                                       username=self.username,
                                       password=self.password)
     return provider
Ejemplo n.º 7
0
    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()
Ejemplo n.º 8
0
 def setUpClass(self):
     self.ncc = NetconfServiceProvider(address='127.0.0.1',
                                       username='******',
                                       password='******',
                                       port=12022)
     self.crud = CRUDService()
Ejemplo n.º 9
0
#! /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)
Ejemplo n.º 10
0
# 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()
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
# 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",
Ejemplo n.º 13
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()
Ejemplo n.º 14
0
 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:
Ejemplo n.º 16
0
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()
Ejemplo n.º 17
0
    """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()
Ejemplo n.º 18
0
def crud_read(obj):
    crud = CRUDService()
    ncc = NetconfServiceProvider(address='93180-EX-1',
                                 username='******',
                                 password='******')
    return crud.read(ncc, obj)
Ejemplo n.º 19
0
                                            )

    # 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))

Ejemplo n.º 20
0
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()

Ejemplo n.º 21
0
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))
Ejemplo n.º 22
0
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()
Ejemplo n.º 23
0
    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()
Ejemplo n.º 24
0
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()

Ejemplo n.º 25
0
    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}}()
Ejemplo n.º 26
0
    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
Ejemplo n.º 27
0
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"
Ejemplo n.º 28
0
    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
Ejemplo n.º 29
0
 def setUpClass(self):
     self.ncc = NetconfServiceProvider(address='127.0.0.1', username='******', password='******', protocol='ssh', port=12022)
     self.netconf_service = NetconfService()