Beispiel #1
0
from my_functions import open_napalm_connection
from my_devices_1 import network_devices

if __name__ == "__main__":

    connections = []
    for device in network_devices:
        conn = open_napalm_connection(device)
        connections.append(conn)

    for conn in connections:
        print("\n\n")
        print("-" * 20)
        # Stage configurations
        conn.load_merge_candidate(
            filename="{}-loopbacks".format(conn.hostname))
        print("Diff before commiting for device {}".format(conn.hostname))
        diff = conn.compare_config()
        print(">" * 8)
        print(diff)
        print(">" * 8)
        if diff:
            conn.commit_config()
        print("\nDiff after commiting for device {}".format(conn.hostname))
        print(">" * 8)
        print(conn.compare_config())
        print(">" * 8)
        conn.close()
    print("\n\n")
Beispiel #2
0
#!/usr/bin/env python
from pprint import pprint
from napalm import get_network_driver
from my_devices import cisco3, nxos1, arista1
from my_functions import open_napalm_connection, create_backup
import ipdb

# Supress SSL Certificate Warnings
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

if __name__ == "__main__":

    spacer = ('-' * 80)
    devices = [cisco3, arista1]
    conn_obj_list = list()

    cisco3_device = open_napalm_connection(cisco3)
    arista1_conn = open_napalm_connection(arista1)

    print(">>>Load config change (merge) - no commit")
    cisco3_device.load_merge_candidate(filename="cisco3.lasthop.io-loopbacks")
    print(cisco3_device.compare_config())

    print(cisco3_device.discard_config())
Beispiel #3
0
#!/usr/bin/env python3
from pprint import pprint
from my_devices import cisco3, arista1
from my_functions import open_napalm_connection, create_backup

my_device_conn_objects = []

my_cisco3_device = open_napalm_connection(cisco3)
my_device_conn_objects.append(my_cisco3_device)

my_arista1_device = open_napalm_connection(arista1)
my_device_conn_objects.append(my_arista1_device)

for my_device_conn_object in my_device_conn_objects:
    # 2a
    print("Napalm connection object: ")
    print(my_device_conn_object)
    print()
    my_device_conn_object.open()
    # 2b get arp table
    print("Get arp table: ")
    pprint(my_device_conn_object.get_arp_table())
    print()
    # 2c get ntp peers
    print("Get NTP peers: ")
    try:
        print("NTP peers: {}".format(my_device_conn_object.get_ntp_peers()))
    except NotImplementedError:
        print("Command not implemented")
        print()
# 2d create backup
Beispiel #4
0
import ipdb

# Supress SSL Certificate Warnings
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

if __name__ == "__main__":

    spacer = ('-' * 80)
    devices = [cisco3, arista1]
    conn_obj_list = list()

    for device in devices:
        #ipdb.set_trace()
        conn_obj_list.append(open_napalm_connection(device))

    try:
        for obj in conn_obj_list:
            #ipdb.set_trace()
            print('\n')
            pprint(obj.get_facts()['hostname'])
            print(spacer)
            pprint(obj.get_ntp_peers())
            print(spacer + '\n' + spacer)

    except NotImplementedError:
        print("What the hell is this")

#    ipdb.set_trace()
Beispiel #5
0
#!/usr/bin/env python

from my_functions import open_napalm_connection, create_checkpoint
from my_devices import nxos1

# Disable Self-signed Certificate Warnings
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

NXOS_REPLACE_CANDIDATE = "nxos1_replacement_cfg"

if __name__ == "__main__":
    conn = open_napalm_connection(nxos1)

    # Create a checkpoint from the current configuration
    create_checkpoint(conn)

    print("\n\n")
    conn.load_replace_candidate(NXOS_REPLACE_CANDIDATE)
    print("Config staged: pending differences {}".format(conn.hostname))
    print(">" * 8)
    print(conn.compare_config())
    print(">" * 8)

    print("\n\n")
    print("Discarding candidate config for device {}".format(conn.hostname))
    conn.discard_config()
    print("Diff after discarding candidate config for device {}".format(
        conn.hostname))
from my_functions import open_napalm_connection, create_checkpoint

from my_devices import nxos1

#This program will do a full configuration replace on the nxos1 device, changing the state of the device all at once

#This is needed just to get the error to handle because the device is using an unsigned certificate
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

NXOS_REPLACE_CANDIDATE_FILE = "nxos1_replacement_cfg"

if __name__ == "__main__":
    connection_handle = open_napalm_connection(nxos1)

    # Checkpoint the currently existing config so that we can roll back

    create_checkpoint(connection_handle)

    connection_handle.load_replace_candidate(NXOS_REPLACE_CANDIDATE_FILE)

    print("Replacement config staged, diff between existing and new config follows for {}".format(connection_handle.hostname))

    print(connection_handle.compare_config())

    #Don't actually apply any changes(!)

    print("Discarding the config changes for {}".format(connection_handle.hostname))
Beispiel #7
0
#!/usr/bin/env python3
from pprint import pprint
from my_devices import cisco3, arista1, nxos1
from my_functions import open_napalm_connection, create_backup, create_checkpoint
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

my_nxos1_device = open_napalm_connection(nxos1)

print(my_nxos1_device)
# 4b
create_checkpoint(my_nxos1_device)

# 4c, file nxos1.config, added "int lo130"
## interface loopback130
##   description loopback130
##   !#no shutdown
nxos1_config_file = "nxos1.full_config"

# 4d
my_nxos1_device.open()
my_nxos1_device.load_replace_candidate(filename=nxos1_config_file)

print("Compare config:")
print(my_nxos1_device.compare_config())

print("Discarding candidate config:")
my_nxos1_device.discard_config()
Beispiel #8
0
#!/usr/bin/env python3
from pprint import pprint
from my_devices import nxos1
from my_functions import open_napalm_connection, create_checkpoint

# Surpress SSL warnings
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

mydevice = nxos1

if __name__ == "__main__":
    device = open_napalm_connection(mydevice)
    getcheckpoint = device._get_checkpoint_file()
    filename = "{}_checkpoint.txt".format(device.hostname)
    with open(filename, "w") as f:
        f.write(getcheckpoint)
    device.load_replace_candidate("nxos1.lasthop.io_add_loopback.txt")
    print()
    print("Changes to be applied:")
    print(device.compare_config())
    print()
    print("Aborting change")
    device.discard_config()
    print("Changes staged (should be none):")
    print(device.compare_config())