#Create the local configuration file
file_path="/root/gig0up.conf"

file_content="""

!
interface GigabitEthernet0/0/0/0
  ipv4 address 100.1.1.10/24
  no shutdown
!
end

with open(file_path, 'w') as fd:
     fd.write(file_content)

#Import ZtpHelpers from /pkg/bin/ztp_helper.py
sys.path.append("/pkg/bin")
from ztp_helper import ZtpHelpers
ztp_obj=ZtpHelpers()

#Do a configuration merge using xrapply
response=ztp_obj.xrapply(filename=file_path

#Check the return value
from pprint import pprint
pprint(response)

#Let's verify that the interface is up as expected:
response=ztp_obj.xrcmd({"exec_cmd" : "show ipv4 interface brief"})
pprint(response)
Exemplo n.º 2
0
import sys

import os

sys.path.append("/pkg/bin")

from ztp_helper import ZtpHelpers

if sys.argv[1] == 'pre':
    print "\n###### Executing a cleanup command ######\n"
    ZtpHelpers(syslog_file='/home/test/syslog.log').xrcmd({'exec_cmd': 'clear logging', 'prompt_response': 'y'})

    ZtpHelpers(syslog_file='/home/test/syslog.log').xrapply_string(cmd="debug icmp")
    # ZtpHelpers().xrcmd({'exec_cmd': 'clear logging'})
if sys.argv[1] == 'after':
    print "\n###### Executing an output command ######\n"
    output = ZtpHelpers(syslog_file='/home/test/syslog.log').xrcmd({"exec_cmd":  "show logging"})

    # print os.popen('source /pkg/bin/ztp_helper.sh && xrcmd "show logging" | grep 255.255.255.254').read()

    # from subprocess import Popen, PIPE
    #
    # process = Popen(['source', '/home/cisco/scripts/ztp_helper.sh', '&&', 'xrcmd',  '"show logging"', '|', 'grep', '255.255.255.254'], stdout=PIPE, stderr=PIPE)
    # stdout, stderr = process.communicate()
    # print stdout
    print output
Exemplo n.º 3
0
#!/usr/bin/env python

import sys
import tempfile
import subprocess
sys.path.append("/pkg/bin/")
from ztp_helper import ZtpHelpers

ztp=ZtpHelpers()

config = """!
hostname ${HOSTNAME}
service timestamps log datetime msec
service timestamps debug datetime msec
domain name virl.info
domain lookup disable
telnet vrf default ipv4 server max-servers 10
telnet vrf Mgmt-intf ipv4 server max-servers 10
username cisco
 group root-lr
 group cisco-support
 password 7 14141B180F0B
!
username admin
 group root-lr
 group cisco-support
 password 7 1218011A1B05
!
username lab
 group root-lr
 group cisco-support
"""

__author__ = "Tahsin Chowdhury"
__email__ = "*****@*****.**"
__version__ = "0.1.0"
__copyright__ = "Copyright (c) 2021 Cisco and/or its affiliates."
__license__ = "Cisco Sample Code License, Version 1.1"

import socket
host = socket.gethostname()

import sys
sys.path.append("/pkg/bin")

from ztp_helper import ZtpHelpers
ztp_obj = ZtpHelpers()

cmd = {"exec_cmd": "show running-config"}
config = ztp_obj.xrcmd(cmd)

config_list = config['output']

cli_config = ''

for line in config_list:
    cli_config = cli_config + line + '\n'

#cli_config = cli_config.strip()

print(cli_config)
Exemplo n.º 5
0
def xr_to_linux_ifname(interface):

    interface_dict = {
        'Hu': 'Hg',
        'Te': 'Tg',
        'Fo': 'Fg',
        'Gi': 'Gi',
        'Tw': 'Tf',
        'Mg': 'Mg'
    }

    linux_name = interface_dict[interface[:2]] + interface[2:]
    return linux_name.replace('/', '_')


ztp_obj = ZtpHelpers()

try:
    result = ztp_obj.xrcmd({"exec_cmd": "show ipv6 neighbors"})['output'][1:]
except:
    print "Failed to fetch ipv6 neighbors"
    sys.exit(1)

cmd_list = []
for neighbor in result:
    if 'Mcast' in neighbor:
        continue

    ipv6_address = neighbor.split()[0]
    lladdr_xr = neighbor.split()[2]
    lladdr_xr = "".join(lladdr_xr.split('.'))
Exemplo n.º 6
0
#!/usr/bin/env python

import sys
sys.path.append("/pkg/bin")
from ztp_helper import ZtpHelpers
from pprint import pprint

loopback2_config="""!
                    interface loopback2
                    ipv4 address 100.100.100.100/32
                    !
                    end
                 """


ztp_obj = ZtpHelpers()

response = ztp_obj.xrapply_string(cmd=loopback2_config)

pprint(response)
"""
Created on Thu Jan 16 17:06:01 2020

@author: Synophic
"""

#!/usr/bin/env python

'''IOS-XR CLI automation - Bash'''

# more details are avilable on below link for on box scripting

# https://developer.cisco.com/learning/lab/01-iosxr-01-cli-automation-bash/step/1

import sys,os
sys.path.append("/pkg/bin/")
from ztp_helper import ZtpHelpers
from pprint import pprint
import time

ztp_obj=ZtpHelpers()
cmd1 = ztp_obj.xrcmd(cmd)
cmd ={"exec_cmd" : "show install request"}
cmd1 = ztp_obj.xrcmd(cmd)
cmd ={"exec_cmd" : "install add source harddisk:/ ncs5500-6.5.1-SMU-Package-2.tar"}
cmd1 = ztp_obj.xrcmd(cmd)
cmd ={"exec_cmd" : "show install request"}
cmd1 = ztp_obj.xrcmd(cmd)
pprint(cmd1)

Exemplo n.º 8
0
def clean_script_actions():
    applied_config = """
    conf t
    no ipv4 access-list bgpfs2acl-ipv4
    commit
    !
    ztp terminate noprompt"""
    write_config(applied_config, ztp_script)
    ztp_script.syslogger.info("###### Script execution was complete ######")

    sys.exit('Terminating script')


if __name__ == "__main__":
    ztp_script = ZtpHelpers(syslog_file=SYSLOG_LOCAL_FILE,
                            syslog_server=SYSLOG_SERVER,
                            syslog_port=SYSLOG_PORT)
    ztp_script.syslogger.info(
        "###### Starting BGPFS2ACL RUN on XR based device ######")

    parser = argparse.ArgumentParser(
        description='BGP FlowSpec to ACL converter')
    parser.add_argument("-v",
                        "--verbose",
                        action="store_true",
                        help="increase output verbosity")
    parser.add_argument(
        "-f",
        "--frequency",
        dest='frequency',
        default=30,
Exemplo n.º 9
0
#!/usr/bin/env python

import sys
sys.path.append("/pkg/bin")
from ztp_helper import ZtpHelpers
from pprint import pprint

ztp_obj = ZtpHelpers()

response = ztp_obj.xrcmd(
    {"exec_cmd": "show running-config interface loopback2"})

pprint(response)