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)
Exemplo n.º 2
0
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
Exemplo n.º 4
0
            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
Exemplo n.º 5
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()
        "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)