- Welcome to the Arista Test Drive Lab! Please use the links on the left to navigate through the lab.
-
-
Usernames and Passwords
- Use the following usernames and passwords to access the ATD:
-
-
-
-
Device
Username
Password
-
-
-
Lab Frontend
arista
@rista123
-
-
-
CVP
arista
{CVP_PWD}
-
-
-
IPAM
arista
Arista123
-
-
-
Lab VM SSH
arista
{REPLACE_PWD}
-
-
-
VEOS Instances
arista
arista1
-
-
-
Jenkins
arista
arista
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/topologies/all/labUI.py b/topologies/all/labUI.py
deleted file mode 100644
index a69cb074b..000000000
--- a/topologies/all/labUI.py
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/usr/bin/env python3
-
-from ruamel.yaml import YAML
-from bs4 import BeautifulSoup
-import tornado.ioloop
-import tornado.web
-import json
-import requests
-import traceback
-
-PORT = 50020
-BASE_PATH = '/home/arista/modules/'
-MODULE_FILE = BASE_PATH + 'modules.yaml'
-
-MOD_YAML = YAML().load(open(MODULE_FILE, 'r'))
-
-settings = {
- 'static_path': BASE_PATH
-}
-
-class topoRequestHandler(tornado.web.RequestHandler):
- def get(self):
- if 'lab' in self.request.arguments:
- lab_module = self.get_argument("lab")
- if 'ucn-' in lab_module or 'cvp-' in lab_module:
- lab, mod = lab_module.split('-')
- if lab in MOD_YAML:
- if mod in MOD_YAML[lab]:
- labguide = getLabHTML(lab_module)
- if labguide:
- labguide_js = modifyLabScripts(labguide.head.find_all("script",{"type":"text/javascript"}), 'js')
- labguide_css = modifyLabScripts(labguide.head.find_all("link",{"type":"text/css"}), 'css')
- # Set Vars for index render
- self.render(
- BASE_PATH + 'index.html',
- JS = labguide_js,
- CSS = labguide_css,
- MOD_NAME = MOD_YAML[lab][mod]['name'],
- NODE_IP = self.request.host,
- MOD_IMG = 'labguides/_images/modules/{0}'.format(MOD_YAML[lab][mod]['image']),
- NODES = MOD_YAML[lab][mod]['nodes'],
- LABGUIDE = parseLabHTML(labguide, lab, mod)
- )
-
-# ===============================
-# Utility Functions
-# ===============================
-
-def getPublicIP():
- """
- Function to get Public IP.
- """
- response = requests.get('http://ipecho.net/plain')
- return(response.text)
-
-def getLabHTML(lab_tag):
- """
- Function to grab original labguide html data.
- """
- try:
- with open('/var/www/html/atd/labguides/{0}.html'.format(lab_tag), 'r') as tmp_html:
- html_parser = BeautifulSoup(tmp_html.read(), 'html.parser')
- return(html_parser)
- except:
- pass
-
-def modifyLabScripts(html, tag_type):
- """
- Function to modify the header script urls.
- """
- if tag_type == 'js':
- tag_name = 'src'
- else:
- tag_name = 'href'
- for tag in html:
- if '_static' in tag[tag_name]:
- tag[tag_name] = 'labguides/{0}'.format(tag[tag_name])
- return(html)
-
-def parseLabHTML(html, lab_tag, mod_tag):
- """
- Function to parse through html document and parse out/remove
- unnecessary data.
- """
- working_html = html.find_all("div", {"class":"container"})
- parsed = working_html[1]
- # Remove the main header
- parsed.select('h1')[0].extract()
- # Remove the lab diagram
- for html_img in parsed.find_all("img"):
- # Update the image path:
- html_img['src'] = html_img['src'].replace('_images', 'labguides/_images')
- for html_a in parsed.find_all("a"):
- if '_images' in html_a['href']:
- html_a['href'] = html_a['href'].replace('_images', 'labguides/_images')
- return(parsed)
-
-
-if __name__ == "__main__":
- app = tornado.web.Application([
- (r'/module', topoRequestHandler),
- (r'/module/(.*)', tornado.web.StaticFileHandler, {'path': BASE_PATH })
- ],)
- app.listen(PORT)
- print('*** Websocket Server Started on {} ***'.format(PORT))
- try:
- tornado.ioloop.IOLoop.instance().start()
- except KeyboardInterrupt:
- tornado.ioloop.IOLoop.instance().stop()
- print("*** Websocked Server Stopped ***")
diff --git a/topologies/all/login.py b/topologies/all/login.py
deleted file mode 100644
index 77362b648..000000000
--- a/topologies/all/login.py
+++ /dev/null
@@ -1,357 +0,0 @@
-#!/usr/bin/python3
-import os
-import sys
-import re
-import syslog
-from ruamel.yaml import YAML
-from ConfigureTopology.ConfigureTopology import ConfigureTopology
-
-
-
-######################################
-########## Global Variables ##########
-######################################
-DEBUG = False
-__version__ = "2.1"
-
-# Open ACCESS_INFO.yaml and load the variables
-f = open('/etc/ACCESS_INFO.yaml')
-access_info = YAML().load(f)
-f.close()
-
-# Set Main Script Variables
-topology = access_info['topology']
-login_info = access_info['login_info']
-nodes = access_info['nodes']
-veos_info = nodes['veos']
-
-# Set default menu mode
-menu_mode = 'MAIN'
-previous_menu = ''
-
-###################################################
-#################### Functions ####################
-###################################################
-
-def text_to_int(text):
- return int(text) if text.isdigit() else text
-
-def natural_keys(text):
- return [ text_to_int(char) for char in re.split(r'(\d+)', text) ]
-
-def sort_veos(vd):
- tmp_l = []
- tmp_d = {}
- fin_l = []
- for t_veos in vd:
- tmp_l.append(t_veos['hostname'])
- tmp_d[t_veos['hostname']] = t_veos
- tmp_l.sort(key=natural_keys)
- # If cvx in list, move to end
- if 'cvx' in tmp_l[0]:
- tmp_cvx = tmp_l[0]
- tmp_l.pop(0)
- tmp_l.append(tmp_cvx)
- for t_veos in tmp_l:
- fin_l.append(tmp_d[t_veos])
- return(fin_l)
-
-def send_to_syslog(mstat,mtype):
- """
- Function to send output from service file to Syslog
- Parameters:
- mstat = Message Status, ie "OK", "INFO" (required)
- mtype = Message to be sent/displayed (required)
- """
- mmes = "\t" + mtype
- syslog.syslog("[{0}] {1}".format(mstat,mmes.expandtabs(7 - len(mstat))))
- if DEBUG:
- print("[{0}] {1}".format(mstat,mmes.expandtabs(7 - len(mstat))))
-
-
-def device_menu():
- global menu_mode
- global previous_menu
- os.system("clear")
- # Create Device Dict to save devices and later execute based on matching the counter to a dict key
- device_dict = {}
-
- # Sort veos instances
- veos_info_sorted = sort_veos(veos_info)
- print("\n\n*******************************************")
- print("*****Jump Host for Arista Training labs*****")
- print("*******************************************")
- print("\n\n==========Device SSH Menu==========\n")
- print("Screen Instructions:\n")
-
- print("* Select specific screen - Ctrl + a ")
- print("* Select previous screen - Ctrl + a p")
- print("* Select next screen - Ctrl + a n")
- print("* Exit all screens (return to menu) - Ctrl + a \\")
-
- print("\nPlease select from the following options:")
-
- counter = 1
- for veos in veos_info_sorted:
- print("{0}. {1} ({2})".format(str(counter),veos['hostname'],veos['hostname']))
- device_dict[str(counter)] = veos['ip']
- device_dict[veos['hostname']] = veos['ip']
- counter += 1
-
- print("\nOther Options: ")
- print("96. Screen (screen) - Opens a screen session to each of the hosts")
- print("97. Back to Previous Menu (back)")
- print("98. Shell (shell/bash)")
- print("99. Back to Main Menu (main/exit) - CTRL + c")
- print("")
- user_input = input("What would you like to do? ").replace(' ', '')
-
- # Check to see if input is in device_dict
- counter = 1
- try:
- if user_input.lower() in device_dict:
- os.system('ssh ' + device_dict[user_input])
- elif user_input == '96' or user_input.lower() == 'screen':
- os.system('/usr/bin/screen')
- elif user_input == '97' or user_input.lower() == 'back':
- if menu_mode == previous_menu:
- menu_mode = 'MAIN'
- else:
- menu_mode = previous_menu
- elif user_input == '98' or user_input.lower() == 'bash' or user_input.lower() == 'shell':
- os.system('/bin/bash')
- elif user_input == '99' or user_input.lower() == 'main' or user_input == '99' or user_input.lower() == 'exit':
- menu_mode = 'MAIN'
- else:
- print("Invalid Input")
- except KeyboardInterrupt:
- print('Stopped due to keyboard interrupt.')
- send_to_syslog('ERROR', 'Keyboard interrupt.')
- except:
- print("Invalid Input")
-
-
-
-def lab_options_menu():
- global menu_mode
- global previous_menu
-
- os.system("clear")
- print("\n\n*******************************************")
- print("*****Jump Host for Arista Training labs*****")
- print("*******************************************")
-
- if menu_mode == 'LAB_OPTIONS':
- # Get Yaml Files in /home/arista/menus
- menu_files = os.listdir('/home/arista/menus')
- menu_files.sort()
-
- # Create Lab Options dict to save lab and later navigate to that menu of labs
- lab_options_dict = {}
-
- # Display Lab Options
- counter = 1
- print('\n\n==========Lab Options Menu==========\n')
- print("Please select from the following options: \n")
-
- # Iterate through lab menu files and print names without .yaml - Increment counter to reflect choices
- counter = 1
- for menu_type in menu_files:
- if menu_type != 'default.yaml':
- # Print Lab Menu and add options to lab options dict
- print('{0}. {1} ({2})'.format(str(counter),menu_type.replace('-', ' ').replace('.yaml', ''), menu_type.replace('.yaml', '').lower() ))
- lab_options_dict[str(counter)] = menu_type
- lab_options_dict[menu_type.replace('.yaml', '').lower()] = menu_type
- counter += 1
-
- # Additional Menu Options
- print("\nOther Options: ")
- print("97. Back to Previous Menu (back)")
- print("98. SSH to Devices (ssh)")
- print("99. Back to Main Menu (main/exit) - CTRL + c\n")
-
- user_input = input("\nWhat would you like to do?: ").replace(' ', '')
-
- # Check to see if digit is in lab_options dict
- try:
- if user_input.lower() in lab_options_dict:
- previous_menu = menu_mode
- menu_mode = 'LAB_' + lab_options_dict[user_input]
- elif user_input == '97' or user_input.lower() == 'back':
- if menu_mode == previous_menu:
- menu_mode = 'MAIN'
- else:
- menu_mode = previous_menu
- elif user_input == '98' or user_input.lower() == 'ssh':
- previous_menu = menu_mode
- menu_mode = 'DEVICE_SSH'
- elif user_input == '99' or user_input.lower() == 'main' or user_input == '99' or user_input.lower() == 'exit':
- menu_mode = 'MAIN'
- else:
- print("Invalid Input")
- except KeyboardInterrupt:
- print('Stopped due to keyboard interrupt.')
- send_to_syslog('ERROR', 'Keyboard interrupt.')
- except:
- print("Invalid Input")
-
-
-
- elif 'LAB_' in menu_mode and menu_mode != 'LAB_OPTIONS':
-
- # Create Commands dict to save commands and later execute based on matching the counter to a dict key
- options_dict = {}
-
- # Open yaml for the lab option (minus 'LAB_' from menu mode) and load the variables
- menu_file = open('/home/arista/menus/' + menu_mode[4:])
- menu_info = YAML().load(menu_file)
- menu_file.close()
-
- print('\n\n==========Lab Options Menu - {0}==========\n'.format(menu_mode[4:].replace('-', ' ').replace('.yaml', '')))
- print("Please select from the following options: \n")
-
- counter = 1
- for lab in menu_info['lab_list']:
- print("{0}. {1}".format(str(counter),menu_info['lab_list'][lab]['description']))
- options_dict[str(counter)] = {'selected_lab': lab, 'selected_menu': menu_mode[4:].replace('.yaml', '')}
- options_dict[lab] = {'selected_lab': lab, 'selected_menu': menu_mode[4:].replace('.yaml', '')}
- counter += 1
- print('\n')
-
- # Additional Menu Options
- print("Other Options: ")
- print("97. Back to Previous Menu (back)")
- print("98. SSH to Devices (ssh)")
- print("99. Back to Main Menu (main/exit) - CTRL + c\n")
-
- # User Input
- user_input = input("What would you like to do?: ").replace(' ', '')
-
- # Check to see if input is in commands_dict
- try:
- if user_input.lower() in options_dict:
- previous_menu = menu_mode
- ConfigureTopology(selected_menu=options_dict[user_input]['selected_menu'],selected_lab=options_dict[user_input]['selected_lab'])
- elif user_input == '97' or user_input.lower() == 'back':
- if menu_mode == previous_menu:
- menu_mode = 'MAIN'
- else:
- menu_mode = previous_menu
- elif user_input == '98' or user_input.lower() == 'ssh':
- previous_menu = menu_mode
- menu_mode = 'DEVICE_SSH'
- elif user_input == '99' or user_input.lower() == 'main' or user_input == '99' or user_input.lower() == 'exit':
- menu_mode = 'MAIN'
- else:
- print("Invalid Input")
- except KeyboardInterrupt:
- print('Stopped due to keyboard interrupt.')
- send_to_syslog('ERROR', 'Keyboard interrupt.')
- except:
- print("Invalid Input")
-
-def main_menu():
- global menu_mode
- global previous_menu
-
- os.system("clear")
- print("\n\n*******************************************")
- print("*****Jump Host for Arista Training labs*****")
- print("*******************************************")
- print("\n\n==========Main Menu==========\n")
- print("Please select from the following options: ")
-
- # Create options dict to later send to deploy_lab
- options_dict = {}
-
- # Open yaml for the default yaml and read what file to lookup for default menu
- default_menu_file = open('/home/arista/menus/default.yaml')
- default_menu_info = YAML().load(default_menu_file)
- default_menu_file.close()
-
-
- # Open yaml for the lab option (minus 'LAB_' from menu mode) and load the variables
- menu_file = open('/home/arista/menus/{0}'.format(default_menu_info['default_menu']))
- menu_info = YAML().load(menu_file)
- menu_file.close()
-
-
-
- counter = 1
- menu = default_menu_info['default_menu'].replace('.yaml', '')
- for lab in menu_info['lab_list']:
- print("{0}. {1}".format(str(counter),menu_info['lab_list'][lab]['description']))
- options_dict[str(counter)] = {'selected_lab': lab, 'selected_menu': menu}
- options_dict[lab] = {'selected_lab': lab, 'selected_menu': menu}
- counter += 1
- print('\n')
-
-
-
- print("97. Additional Labs (labs)")
- print("98. SSH to Devices (ssh)")
- print("99. Exit LabVM (quit/exit) - CTRL + c")
- print("")
-
- user_input = input("What would you like to do?: ").replace(' ', '')
-
- # Check user input to see which menu to change to
- try:
- if user_input.lower() in options_dict:
- ConfigureTopology(selected_menu=options_dict[user_input]['selected_menu'],selected_lab=options_dict[user_input]['selected_lab'])
- elif user_input == '98' or user_input.lower() == 'ssh':
- previous_menu = menu_mode
- menu_mode = 'DEVICE_SSH'
- elif user_input == '97' or user_input.lower() == 'labs':
- previous_menu = menu_mode
- menu_mode = 'LAB_OPTIONS'
- elif user_input == '99' or user_input.lower() == 'exit' or user_input.lower() == 'quit':
- menu_mode = 'EXIT'
- else:
- print("Invalid Input")
- except KeyboardInterrupt:
- print('Stopped due to keyboard interrupt.')
- send_to_syslog('ERROR', 'Keyboard interrupt.')
- except:
- print("Invalid Input")
-
-
-
-##############################################
-#################### Main ####################
-##############################################
-
-def main():
- if os.getuid() != 0:
- global menu_mode
- # Create Menu Manager
-
- if sys.stdout.isatty():
- while menu_mode:
- try:
- if menu_mode == 'MAIN':
- main_menu()
- elif menu_mode == 'DEVICE_SSH':
- device_menu()
- elif 'LAB_' in menu_mode:
- lab_options_menu()
- elif menu_mode == 'EXIT':
- print('User exited.')
- quit()
- except KeyboardInterrupt:
- send_to_syslog('INFO', 'Script fully exited due to keyboard interrupt.')
- if menu_mode == 'MAIN':
- print('User exited.')
- quit()
- else:
- menu_mode = 'MAIN'
-
- else:
- os.system("/usr/lib/openssh/sftp-server")
-
- else:
-
- os.system("/bin/bash")
-
-if __name__ == '__main__':
- main()
\ No newline at end of file
diff --git a/topologies/all/nginx.conf b/topologies/all/nginx.conf
deleted file mode 100644
index 16227e0ea..000000000
--- a/topologies/all/nginx.conf
+++ /dev/null
@@ -1,59 +0,0 @@
-server {
- index index.php index.html;
- location ~ \.php$ {
- include snippets/fastcgi-php.conf;
- fastcgi_pass unix:/run/php/php7.0-fpm.sock;
- }
- location ~ /\.ht {
- deny all;
- }
- listen 80;
-
- access_log /var/log/nginx/access.log ;
- error_log /var/log/nginx/error.log info ;
- server_name _;
-
- # Root
-
- location ^~ / {
- root /var/www/html/atd/;
- index index.php index.html;
- location ~ \.php$ {
- include snippets/fastcgi-php.conf;
- fastcgi_pass unix:/run/php/php7.0-fpm.sock;
- }
- }
-
- # Guacamole reverse proxy to Tomcat
-
- location /guacamole/ {
- proxy_pass http://127.0.0.1:8080/guacamole/;
- proxy_buffering off;
- proxy_http_version 1.1;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $http_connection;
- proxy_cookie_path /guacamole/ /;
- access_log off;
- }
- location /module {
- proxy_pass http://127.0.0.1:50020;
- proxy_http_version 1.1;
- proxy_read_timeout 120;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $http_connection;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $remote_addr;
- }
- location /ssh {
- proxy_pass http://127.0.0.1:2222;
- proxy_http_version 1.1;
- proxy_read_timeout 120;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $http_connection;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $remote_addr;
- }
-}
diff --git a/topologies/all/ssl_nginx.conf b/topologies/all/ssl_nginx.conf
deleted file mode 100644
index 2e4d17659..000000000
--- a/topologies/all/ssl_nginx.conf
+++ /dev/null
@@ -1,77 +0,0 @@
-server {
- listen 80 default_server;
- access_log /var/log/nginx/access.log ;
- error_log /var/log/nginx/error.log info ;
- return 301 https://$host$request_uri;
-}
-
-server {
- listen 443 ssl;
- ssl_certificate /etc/nginx/certs/star_atd_arista_com.crt;
- ssl_certificate_key /etc/nginx/certs/star_atd_arista_com_key.pem;
- ssl_session_cache builtin:1000 shared:SSL:10m;
- ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
- ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
- ssl_prefer_server_ciphers on;
-
- location / {
- root /var/www/html/atd/;
- index index.php index.html;
- location ~ \.php$ {
- include snippets/fastcgi-php.conf;
- fastcgi_pass unix:/run/php/php7.0-fpm.sock;
- }
- }
-
- location ~ ^/(cv|api|web) {
- proxy_pass https://192.168.0.5;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto $scheme;
- proxy_ssl_verify off;
- proxy_hide_header Content-Security-Policy;
- proxy_buffering off;
- proxy_read_timeout 90;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $http_connection;
- }
-
- location /guacamole/ {
- proxy_pass http://127.0.0.1:8080/guacamole/;
- proxy_buffering off;
- proxy_http_version 1.1;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $http_connection;
- proxy_cookie_path /guacamole/ /;
- access_log off;
- }
- location /module {
- proxy_pass http://127.0.0.1:50020;
- proxy_http_version 1.1;
- proxy_read_timeout 120;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $http_connection;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $remote_addr;
- }
- location /ssh {
- proxy_pass http://127.0.0.1:2222;
- proxy_http_version 1.1;
- proxy_read_timeout 120;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $http_connection;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $remote_addr;
- }
- location /jenkins {
- proxy_pass http://127.0.0.1:8088;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto $scheme;
- }
-}
diff --git a/topologies/all/webssh2-config.json b/topologies/all/webssh2-config.json
deleted file mode 100644
index 9e3938f61..000000000
--- a/topologies/all/webssh2-config.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": "arista",
- "password": "{REPLACE_ARISTA}",
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
-}
diff --git a/topologies/available_topo.yml b/topologies/available_topo.yml
deleted file mode 100644
index 1f6dc735b..000000000
--- a/topologies/available_topo.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-# topologies_default - key used to set the default topology to use
-# - If tag has no valid value or is missing, the first entry in topologies will be used as the default
-#
-# topologies - array of topologies to use
-# - Topology_Name: Must be less than 50 characters. Anything larger will be truncated
-# - Topology_File: Must include path to yml file in topologies directory. If the path is invalid the entire topology entry is ignored
-# - Topology_Access: Must be 'admin' or 'standard'. If not standard or admin, defaults to standard
-# - Topology_Desc: Must be less than 100 characters. Anything larger will be truncated
-# - Topology_Backend: (Required) Must be a valid backend IP where the topology will be deployed. If empty, the entry is ignored.
-# An error will be displayed on the Event Form if an invalid value is provided.
-
-topologies_default: 'Data Center - Latest'
-topologies: [
- { Topology_Name: 'Data Center - Latest',
- Topology_File: '/datacenter-latest/Datacenter.yml',
- Topology_Access: 'standard',
- Topology_Desc: 'Two Spines, Four Leafs. Focused on EOS fundamentals within the Data Center w/CV 2019',
- Topology_Backend: '10.16.129.5',
- },
- { Topology_Name: 'Data Center',
- Topology_File: '/datacenter/ADCATDBluePrint.yml',
- Topology_Access: 'standard',
- Topology_Desc: 'Two Spines, Four Leafs. Focused on EOS fundamentals within the Data Center w/CV 2018',
- Topology_Backend: '10.16.129.5',
- },
- { Topology_Name: 'Advanced Routing',
- Topology_File: '/routing/Routing.yml',
- Topology_Access: 'admin',
- Topology_Desc: 'Twenty nodes. Focused on advanced routing, L2VPN and L3VPN topics',
- Topology_Backend: '10.16.129.5',
- },
- { Topology_Name: 'BETA - Data Center - Latest',
- Topology_File: '/beta-datacenter/topo_build.yml',
- Topology_Access: 'admin',
- Topology_Desc: 'BETA TESTING - Two Spines, Four Leafs. Focused on EOS fundamentals within the Data Center w/CV 2019',
- Topology_Backend: '10.16.129.222',
- },
- { Topology_Name: 'BETA - Advanced Routing',
- Topology_File: '/beta-routing/topo_build.yml',
- Topology_Access: 'admin',
- Topology_Desc: 'BETA TESTING - Twenty nodes. Focused on advanced routing, L2VPN and L3VPN topics',
- Topology_Backend: '10.16.129.222',
- },
- { Topology_Name: 'cloud-deploy-test (do not use)',
- Topology_File: '/cloud-deploy-test/cloud-deploy-test.yml',
- Topology_Access: 'admin',
- Topology_Desc: 'DO NOT USE! Temporary topology for testing backend functionality only',
- Topology_Backend: '10.16.129.222',
- },
- { Topology_Name: 'adc-update-test (do not use)',
- Topology_File: '/adc-update-test/adc-update-test.yml',
- Topology_Access: 'admin',
- Topology_Desc: 'DO NOT USE! Add a topology to test the update to production frontend',
- Topology_Backend: '10.16.129.222',
- },
- { Topology_Name: 'GCP - Nested VM',
- Topology_File: '/nested-vm/NestedVM.yml',
- Topology_Access: 'admin',
- Topology_Desc: 'Topology deployed in GCP',
- Topology_Backend: '10.16.129.222',
- }
-]
diff --git a/topologies/base_topo.yml b/topologies/base_topo.yml
deleted file mode 100644
index ca320b319..000000000
--- a/topologies/base_topo.yml
+++ /dev/null
@@ -1,1037 +0,0 @@
----
-topologies:
- dual-datacenter:
- dev:
- ceos:
- cpu: 32
- ram: 54
- cvp:
- 2021.2.0:
- resources:
- cpu: 32
- ram: 54
- branch: nested/2021.2
- orderable: false
- image: base-atd-dual-datacenter-ceos-c2021-2-0-20211014
- eos:
- - 4.27.0F
- 2021.3.0:
- resources:
- cpu: 40
- ram: 54
- branch: nested/2021.3
- orderable: false
- image: base-atd-dual-datacenter-ceos-c2021-3-0-20220324u
- eos:
- - 4.27.1.1F
- - 4.27.2F
- 2022.1.0:
- resources:
- cpu: 40
- ram: 64
- branch: nested/2022.1
- orderable: false
- image: base-atd-dual-datacenter-ceos-c2022-1-0-20220621
- eos:
- - 4.28.1F
- - 4.27.2F
- # prod:
- # veos:
- # cpu: 32
- # ram: 64
- # cvp:
- # 2020.2.3:
- # branch: nested/2020.2
- # image: base-training-l3-e4-24-2-2f-c2020-2-3-20210111
- # eos:
- # - 4.24.2.2F
- desc: 'Dual Data Center ATD Topology'
- name: 'Dual Data Center'
- title: 'Dual Data Center Lab'
- disk_size: 300
- access: admin
- disable_links: []
- labguides: self
- datacenter:
- dev:
- ceos:
- cpu: 32
- ram: 48
- cvp:
- 2021.2.2:
- resources:
- cpu: 32
- ram: 48
- branch: nested/2021.2
- orderable: false
- image: base-atd-datacenter-ceos-c2021-2-2-20220208
- eos:
- - 4.27.1.1F
- - 4.26.2F
- 2021.3.0:
- resources:
- cpu: 36
- ram: 48
- branch: nested/2021.3
- orderable: false
- image: base-atd-datacenter-ceos-c2021-3-0-20220324u
- eos:
- - 4.27.1.1F
- - 4.27.2F
- 2022.1.0:
- resources:
- cpu: 36
- ram: 58
- branch: nested/2022.1
- orderable: false
- image: base-atd-datacenter-ceos-c2022-1-0-20220621
- eos:
- - 4.28.1F
- - 4.27.2F
- veos:
- cpu: 30
- ram: 64
- cvp:
- 2021.1.0:
- resources:
- cpu: 38
- ram: 64
- branch: nested/2021.1
- orderable: false
- image: base-atd-datacenter-e4-26-1f-c2021-1-1-20211014
- eos:
- - 4.26.1F
- 2021.2.2:
- resources:
- cpu: 38
- ram: 64
- branch: nested/2021.2
- orderable: false
- image: base-atd-datacenter-e4-27-1-1f-c2021-2-2-20220208
- eos:
- - 4.27.1.1F
- 2021.3.0:
- resources:
- cpu: 40
- ram: 64
- branch: nested/2021.3
- orderable: false
- image: base-atd-datacenter-e4-27-2f-c2021-3-0-20220324u
- eos:
- - 4.27.2F
- 2022.1.0:
- resources:
- cpu: 40
- ram: 74
- branch: nested/2022.1
- orderable: false
- image: base-atd-datacenter-e4-28-1f-c2022-1-0-20220621
- eos:
- - 4.28.1F
- 2022.1.0-bare:
- resources:
- cpu: 40
- ram: 74
- branch: nested/2022.1
- orderable: false
- image: base-atd-datacenter-e4-28-1f-c2022-1-0-bare-20220628
- eos:
- - 4.28.1F
- prod:
- ceos:
- cpu: 24
- ram: 36
- cvp:
- 2021.1.1:
- resources:
- cpu: 32
- ram: 48
- branch: v2021.1-20211026a
- orderable: false
- image: base-atd-datacenter-ceos-c2021-1-1-20211014
- eos:
- - 4.25.2F
- - 4.26.1F
- 2021.2.0:
- resources:
- cpu: 32
- ram: 48
- branch: v2021.2-20211206a
- orderable: false
- image: base-atd-datacenter-ceos-c2021-2-0-20211014
- eos:
- - 4.27.0F
- 2021.2.2:
- resources:
- cpu: 32
- ram: 48
- branch: v2021.2-20220404a
- orderable: false
- image: base-atd-datacenter-ceos-c2021-2-2-20220208
- eos:
- - 4.27.1.1F
- - 4.26.2F
- 2021.3.0:
- resources:
- cpu: 36
- ram: 48
- branch: v2021.3-20220609a
- orderable: false
- image: base-atd-datacenter-ceos-c2021-3-0-20220324u
- eos:
- - 4.27.1.1F
- - 4.27.2F
- veos:
- cpu: 30
- ram: 64
- cvp:
- 2021.1.1:
- resources:
- cpu: 38
- ram: 64
- branch: v2021.1-20211026a
- orderable: false
- image: base-atd-datacenter-e4-26-1f-c2021-1-1-20211014
- eos:
- - 4.26.1F
- 2021.2.0:
- resources:
- cpu: 38
- ram: 64
- branch: v2021.2-20211206a
- orderable: false
- image: base-atd-datacenter-e4-27-0f-c2021-2-0-20211014
- eos:
- - 4.26.2F
- 2021.2.2:
- resources:
- cpu: 38
- ram: 64
- branch: v2021.2-20220404a
- orderable: false
- image: base-atd-datacenter-e4-27-1-1f-c2021-2-2-20220208
- eos:
- - 4.27.1.1F
- 2021.3.0:
- resources:
- cpu: 40
- ram: 64
- branch: v2021.3-20220609a
- orderable: false
- image: base-atd-datacenter-e4-27-2f-c2021-3-0-20220324u
- eos:
- - 4.27.2F
- desc: 'Two Spines, Four Leafs. Focused on EOS fundamentals within the Data Center.'
- name: 'Datacenter'
- title: 'Datacenter Lab'
- disk_size: 300
- access: standard
- disable_links: []
- labguides: self
- routing:
- dev:
- veos:
- cpu: 44
- ram: 90
- cvp:
- 2021.2.2:
- resources:
- cpu: 44
- ram: 90
- branch: nested/2021.2
- orderable: false
- image: base-atd-routing-e4-27-1-1f-c2021-2-2-20220208
- eos:
- - 4.27.1.1F
- 2021.3.0:
- resources:
- cpu: 50
- ram: 90
- branch: nested/2021.3
- orderable: false
- image: base-atd-routing-e4-27-2f-c2021-3-0-20220324u
- eos:
- - 4.27.2F
- 2022.1.0:
- resources:
- cpu: 50
- ram: 90
- branch: nested/2022.1
- orderable: false
- image: base-atd-routing-e4-28-1f-c2022-1-0-20220621
- eos:
- - 4.28.1F
- ceos:
- cpu: 32
- ram: 64
- cvp:
- 2021.2.2:
- resources:
- cpu: 32
- ram: 64
- branch: nested/2021.2
- orderable: false
- image: base-atd-routing-ceos-c2021-2-2-20220208
- eos:
- - 4.27.1.1F
- - 4.26.2F
- 2021.3.0:
- resources:
- cpu: 36
- ram: 64
- branch: nested/2021.3
- orderable: false
- image: base-atd-routing-ceos-c2021-3-0-20220324u
- eos:
- - 4.27.1.1F
- - 4.27.2F
- 2022.1.0:
- resources:
- cpu: 40
- ram: 64
- branch: nested/2022.1
- orderable: false
- image: base-atd-routing-ceos-c2022-1-0-20220621
- eos:
- - 4.28.1F
- - 4.27.2F
- prod:
- ceos:
- cpu: 24
- ram: 54
- cvp:
- 2021.1.1:
- resources:
- cpu: 32
- ram: 64
- branch: v2021.1-20211026a
- orderable: false
- image: base-atd-routing-ceos-c2021-1-1-20211014
- eos:
- - 4.26.1F
- 2021.2.0:
- resources:
- cpu: 32
- ram: 64
- branch: v2021.2-20211026a
- orderable: false
- image: base-atd-routing-ceos-c2021-2-0-20211014
- eos:
- - 4.27.0F
- 2021.2.2:
- resources:
- cpu: 32
- ram: 64
- branch: v2021.2-20220404a
- orderable: false
- image: base-atd-routing-ceos-c2021-2-2-20220208
- eos:
- - 4.27.1.1F
- - 4.26.2F
- 2021.3.0:
- resources:
- cpu: 36
- ram: 64
- branch: v2021.3-20220404a
- orderable: false
- image: base-atd-routing-ceos-c2021-3-0-20220324u
- eos:
- - 4.27.1.1F
- - 4.27.2F
- veos:
- cpu: 44
- ram: 90
- cvp:
- 2021.2.0:
- resources:
- cpu: 44
- ram: 90
- branch: v2021.2-20211026a
- orderable: false
- image: base-atd-routing-e4-27-0f-c2021-2-0-20211018
- eos:
- - 4.27.0F
- 2021.2.2:
- resources:
- cpu: 44
- ram: 90
- branch: v2021.2-20220404a
- orderable: false
- image: base-atd-routing-e4-27-1-1f-c2021-2-2-20220208
- eos:
- - 4.27.1.1F
- 2021.3.0:
- resources:
- cpu: 50
- ram: 90
- branch: v2021.3-20220404a
- orderable: false
- image: base-atd-routing-e4-27-2f-c2021-3-0-20220324u
- eos:
- - 4.27.2F
- desc: 'Twenty nodes. Focused on advanced routing, L2VPN and L3VPN topics'
- name: 'Advanced Routing'
- title: 'Advanced Routing Lab'
- disk_size: 300
- access: standard
- disable_links: []
- labguides: self
- network-to-code:
- dev:
- veos:
- cpu: 32
- ram: 64
- cvp:
- 2021.3.0:
- resources:
- cpu: 32
- ram: 64
- branch: nested/2021.3
- orderable: true
- image: base-veos-training-ntc-2021-3-20230112-105848
- eos:
- - 4.27.2F
- prod:
- veos:
- cpu: 32
- ram: 64
- cvp:
- 2020.2.3:
- resources:
- cpu: 32
- ram: 64
- branch: v2020.2-20220404a
- orderable: false
- image: base-training-l1-e4-26-0f-c2020-2-3-20211220
- eos:
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 32
- ram: 64
- branch: 2021.3-3.11
- orderable: true
- image: base-veos-training-l1-exam-2021-3-20221130-161201
- eos:
- - 4.27.2F
- desc: 'Topology based of NTC.'
- name: 'Training - Network To Code lab'
- title: 'Training Network to Code'
- disk_size: 300
- access: standard
- disable_links: [labguides, jenkins]
- labguides: self
- training-level1:
- dev:
- veos:
- cpu: 32
- ram: 64
- cvp:
- 2020.2.3:
- resources:
- cpu: 32
- ram: 64
- branch: nested/2020.2
- orderable: false
- image: base-training-l1-e4-26-0f-c2020-2-3-20220111
- eos:
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 32
- ram: 64
- branch: nested/2021.3
- orderable: true
- image: base-training-l1-e4-27-2f-c2021-3-0-20220825
- eos:
- - 4.27.2F
- prod:
- veos:
- cpu: 32
- ram: 64
- cvp:
- 2020.2.3:
- resources:
- cpu: 32
- ram: 64
- branch: v2020.2-20220404a
- orderable: false
- image: base-training-l1-e4-26-0f-c2020-2-3-20211220
- eos:
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 32
- ram: 64
- branch: 2021.3-3.14
- orderable: true
- image: base-training-l1-e4-27-2f-c2021-3-0-20220825
- eos:
- - 4.27.2F
- desc: 'Level 1 Training Lab. For use by the Arista Training Team.'
- name: 'Training - Level 1'
- title: 'Training Level 1 Lab'
- disk_size: 300
- access: standard
- disable_links: [labguides, jenkins]
- labguides: self
- training-level1-exam:
- dev:
- veos:
- cpu: 32
- ram: 64
- cvp:
- 2021.3.0:
- resources:
- cpu: 32
- ram: 64
- branch: nested/2021.3
- orderable: true
- image: base-veos-training-l1-exam-2021-3-20221130-161201
- eos:
- - 4.27.2F
- prod:
- veos:
- cpu: 32
- ram: 64
- cvp:
- 2020.2.3:
- resources:
- cpu: 32
- ram: 64
- branch: v2020.2-20220404a
- orderable: false
- image: base-training-l1-e4-26-0f-c2020-2-3-20211220
- eos:
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 32
- ram: 64
- branch: 2021.3-3.14
- orderable: true
- image: base-veos-training-l1-exam-2021-3-20221130-161201
- eos:
- - 4.27.2F
- desc: 'Level 1 Training Lab. For use by the Arista Training Team.'
- name: 'Training - Level 1 Exam'
- title: 'Training Level 1 Exam'
- disk_size: 300
- access: standard
- disable_links: [labguides, jenkins]
- labguides: self
- training-level2:
- dev:
- veos:
- cpu: 32
- ram: 64
- cvp:
- 2020.2.3:
- resources:
- cpu: 32
- ram: 64
- branch: nested/2020.2
- orderable: false
- image: base-training-l2-e4-26-0f-c2020-2-3-20220111
- eos:
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 32
- ram: 64
- branch: nested/2021.3
- orderable: true
- image: base-training-l2-e4-27-2f-c2021-3-0-20220830
- eos:
- - 4.27.2F
- prod:
- veos:
- cpu: 32
- ram: 64
- cvp:
- 2021.3.0:
- resources:
- cpu: 32
- ram: 64
- branch: 2021.3-3.14
- orderable: true
- image: base-training-l2-e4-27-2f-c2021-3-0-20220830
- eos:
- - 4.27.2F
- desc: 'Level 2 Exam Lab. For use by the Arista Training Team.'
- name: 'Training - Level 2'
- title: 'Training Level 2 Lab'
- disk_size: 300
- access: standard
- disable_links: [labguides, jenkins]
- labguides: self
- training-level2-exam:
- dev:
- veos:
- cpu: 32
- ram: 64
- cvp:
- 2021.3.0:
- resources:
- cpu: 32
- ram: 64
- branch: nested/2021.3
- orderable: true
- image: base-veos-training-l2-exam-2021-3-20221130-161201
- eos:
- - 4.27.2F
- prod:
- veos:
- cpu: 32
- ram: 64
- cvp:
- 2021.3.0:
- resources:
- cpu: 32
- ram: 64
- branch: 2021.3-3.14
- orderable: true
- image: base-veos-training-l2-exam-2021-3-20221130-161201
- eos:
- - 4.27.2F
- desc: 'Level 2 Exam Lab. For use by the Arista Training Team.'
- name: 'Training - Level 2 Exam'
- title: 'Training Level 2 Exam'
- disk_size: 300
- access: standard
- disable_links: [labguides, jenkins]
- labguides: self
- training-level3:
- dev:
- veos:
- cpu: 36
- ram: 72
- cvp:
- 2020.2.3:
- resources:
- cpu: 36
- ram: 72
- branch: nested/2020.2
- orderable: false
- image: base-training-l3-e4-26-0f-c2020-2-3-20220111
- eos:
- - 4.26.0F
- 2020.2.3.e426:
- resources:
- cpu: 36
- ram: 72
- branch: nested/2020.2
- orderable: false
- image: base-training-l3-e4-26-0f-c2020-2-3-20220111
- eos:
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 40
- ram: 80
- branch: nested/2021.3
- orderable: true
- image: base-veos-training-l3-2021-3-20221103-161339
- eos:
- - 4.27.2F
- prod:
- veos:
- cpu: 36
- ram: 72
- cvp:
- 2020.2.3:
- resources:
- cpu: 36
- ram: 72
- branch: v2020.2-20220404a
- orderable: false
- image: base-training-l3-e4-24-2f-c2020-2-3-20211220
- eos:
- - 4.24.2.2F
- 2020.2.3.e426:
- resources:
- cpu: 36
- ram: 72
- branch: v2020.2-20220404a
- orderable: false
- image: base-training-l3-e4-26-0f-c2020-2-3-20211220
- eos:
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 40
- ram: 80
- branch: 2021.3-3.14
- orderable: true
- image: base-training-l3-e4-27-2f-c2021-3-0-20221012
- eos:
- - 4.27.2F
- desc: 'Level 3 Training Lab. For use by the Arista Training Team.'
- name: 'Training - Level 3'
- title: 'Training Level 3 Lab'
- disk_size: 300
- access: standard
- disable_links: [labguides, jenkins]
- labguides: self
- training-level3-exam:
- dev:
- veos:
- cpu: 36
- ram: 72
- cvp:
- 2020.2.3:
- resources:
- cpu: 36
- ram: 72
- branch: nested/2020.2
- orderable: false
- image: base-training-l3-exam-e4-26-0f-c2020-2-3-20220111
- eos:
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 40
- ram: 80
- branch: nested/2021.3
- orderable: true
- image: base-training-l3-exam-e4-27-2f-c2021-3-0-20220831
- eos:
- - 4.27.2F
- prod:
- veos:
- cpu: 36
- ram: 72
- cvp:
- 2020.2.3:
- resources:
- cpu: 70
- ram: 72
- branch: v2020.2-20220404a
- orderable: false
- image: base-training-l3-exam-e4-26-0f-c2020-2-3-20211220
- eos:
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 40
- ram: 80
- branch: 2021.3-3.14
- orderable: true
- image: base-training-l3-exam-e4-27-2f-c2021-3-0-20220831
- eos:
- - 4.27.2F
- desc: 'Level 3 Training Exam Lab. For use by the Arista Training Team.'
- name: 'Training - Level 3 Exam'
- title: 'Training Level 3 Exam'
- disk_size: 300
- access: standard
- disable_links: [labguides, jenkins]
- labguides: self
- training-level3-2:
- dev:
- veos:
- cpu: 40
- ram: 80
- cvp:
- 2020.2.3:
- resources:
- cpu: 40
- ram: 80
- branch: nested/2020.2
- orderable: false
- image: base-training-l3-2-e4-26-0f-c2020-2-3-20220111
- eos:
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 40
- ram: 80
- branch: nested/2021.3
- orderable: true
- image: base-training-l3-exam-2-e4-27-2f-c2021-3-0-20220831
- eos:
- - 4.27.2F
- prod:
- veos:
- cpu: 40
- ram: 80
- cvp:
- 2021.3.0:
- resources:
- cpu: 40
- ram: 80
- branch: 2021.3-3.14
- orderable: true
- image: base-training-l3-exam-2-e4-27-2f-c2021-3-0-20220831
- eos:
- - 4.27.2F
- desc: 'Level 3 Training Exam 2 Lab. For use by the Arista Training Team.'
- name: 'Training - Level 3 Exam 2'
- title: 'Training Level 3 Exam 2'
- disk_size: 300
- access: standard
- disable_links: [labguides, jenkins]
- labguides: self
- training-level4:
- dev:
- ceos:
- cpu: 24
- ram: 64
- cvp:
- 2020.2.3:
- resources:
- cpu: 32
- ram: 64
- branch: nested/2020.2
- orderable: false
- image: base-training-l4-ceos-c2020-2-3-20220111
- eos:
- - 4.25.1F
- - 4.26.0F
- veos:
- cpu: 60
- ram: 90
- cvp:
- 2021.3.0:
- resources:
- cpu: 60
- ram: 90
- branch: nested/2021.3
- orderable: true
- image: base-training-l4-e4-27-2f-c2021-3-0-20221018
- eos:
- - 4.27.2F
- 2021.3.0.e6:
- resources:
- cpu: 60
- ram: 90
- branch: nested/2021.3
- orderable: false
- image: base-training-l4-e4-27-1f-c2021-3-0-e6-20220131
- eos:
- - 4.27.1F
- prod:
- veos:
- cpu: 32
- ram: 64
- cvp:
- 2021.3.0:
- resources:
- cpu: 60
- ram: 90
- branch: 2021.3-3.14
- orderable: true
- image: base-training-l4-e4-27-2f-c2021-3-0-20221018
- eos:
- - 4.27.2F
- desc: 'Level 4 Training Lab. For use by the Arista Training Team.'
- name: 'Training - Level 4'
- title: 'Training Level 4 Lab'
- disk_size: 300
- access: standard
- disable_links: [labguides, jenkins]
- labguides: self
- training-level4-exam:
- dev:
- veos:
- cpu: 60
- ram: 90
- cvp:
- 2021.3.0:
- resources:
- cpu: 60
- ram: 90
- branch: nested/2021.3
- orderable: true
- image: base-veos-training-l4-exam-2021-3-20221130-161201
- eos:
- - 4.27.2F
- prod:
- veos:
- cpu: 32
- ram: 64
- cvp:
- 2021.3.0:
- resources:
- cpu: 60
- ram: 90
- branch: 2021.3-3.9
- orderable: true
- image: base-veos-training-l4-exam-2021-3-20221130-161201
- eos:
- - 4.27.2F
- desc: 'Level 4 Exam Lab. For use by the Arista Training Team.'
- name: 'Training - Level 4 Exam'
- title: 'Training Level 4 Exam'
- disk_size: 300
- access: standard
- disable_links: [labguides, jenkins]
- labguides: self
- training-level5:
- dev:
- ceos:
- cpu: 36
- ram: 72
- cvp:
- 2020.2.3:
- resources:
- cpu: 48
- ram: 72
- branch: nested/2020.2
- orderable: false
- image: base-training-l5-ceos-c2020-2-3-20220111
- eos:
- - 4.25.1F
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 48
- ram: 72
- branch: nested/2021.3
- orderable: true
- image: base-training-l5-ceos-c2021-3-0-20220905
- eos:
- - 4.27.2F
- prod:
- ceos:
- cpu: 36
- ram: 72
- cvp:
- 2020.2.3:
- resources:
- cpu: 48
- ram: 72
- branch: v2020.2-20220404a
- orderable: false
- image: base-training-l5-ceos-c2021-3-0-20220830-2
- eos:
- - 4.25.1F
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 48
- ram: 72
- branch: 2021.3-3.14
- orderable: true
- image: base-training-l5-ceos-c2021-3-0-20220905
- eos:
- - 4.27.2F
- desc: 'Level 5 Training Lab. For use by the Arista Training Team.'
- name: 'Training - Level 5'
- title: 'Training Level 5 Lab'
- disk_size: 500
- access: standard
- disable_links: [labguides, jenkins]
- labguides: self
- training-level7:
- dev:
- ceos:
- cpu: 40
- ram: 70
- cvp:
- 2020.2.3:
- resources:
- cpu: 40
- ram: 70
- branch: nested/2020.2
- orderable: false
- image: base-training-l7-ceos-c2020-2-3-20220111
- eos:
- - 4.25.1F
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 60
- ram: 80
- branch: nested/2021.3
- orderable: true
- image: base-training-l7-ceos-c2021-3-0-20220914
- eos:
- - 4.27.2F
- prod:
- ceos:
- cpu: 40
- ram: 70
- cvp:
- 2020.2.3:
- resources:
- cpu: 40
- ram: 70
- branch: v2020.2-20220404a
- orderable: false
- image: base-training-l7-ceos-c2020-2-3-20211220
- eos:
- - 4.25.1F
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 60
- ram: 80
- branch: 2021.3-3.14
- orderable: true
- image: base-training-l7-ceos-c2021-3-0-20220914
- eos:
- - 4.27.2F
- desc: 'Level 7 Training Lab. For use by the Arista Training Team.'
- name: 'Training - Level 7'
- title: 'Training Level 7 Lab'
- disk_size: 500
- access: standard
- disable_links: [labguides, jenkins]
- labguides: self
- training-level7-part3:
- dev:
- ceos:
- cpu: 40
- ram: 70
- cvp:
- 2020.2.3:
- resources:
- cpu: 40
- ram: 70
- branch: nested/2020.2
- orderable: false
- image: base-training-l7-ceos-c2020-2-3-20220111
- eos:
- - 4.25.1F
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 40
- ram: 70
- branch: nested/2021.3
- orderable: true
- image: base-training-l7-part3-ceos-c2021-3-0-20220923
- eos:
- - 4.27.2F
- prod:
- ceos:
- cpu: 40
- ram: 70
- cvp:
- 2020.2.3:
- resources:
- cpu: 40
- ram: 70
- branch: 2021.3-3.5
- orderable: false
- image: base-training-l7-ceos-c2020-2-3-20211220
- eos:
- - 4.25.1F
- - 4.26.0F
- 2021.3.0:
- resources:
- cpu: 60
- ram: 80
- branch: 2021.3-3.9
- orderable: true
- image: base-training-l7-ceos-c2021-3-0-20220914
- eos:
- - 4.27.2F
- desc: 'Level 7 - Part 3 Training Lab. For use by the Arista Training Team.'
- name: 'Training - Level 7 - Part 3'
- title: 'Training Level 7 - Part 3 Lab'
- disk_size: 500
- access: standard
- disable_links: [labguides, jenkins]
- labguides: self
diff --git a/topologies/beta-datacenter/atd-topo.png b/topologies/beta-datacenter/atd-topo.png
deleted file mode 100644
index d94fc82e9..000000000
Binary files a/topologies/beta-datacenter/atd-topo.png and /dev/null differ
diff --git a/topologies/beta-datacenter/configlets/ATD-INFRA b/topologies/beta-datacenter/configlets/ATD-INFRA
deleted file mode 100644
index a749f7157..000000000
--- a/topologies/beta-datacenter/configlets/ATD-INFRA
+++ /dev/null
@@ -1,31 +0,0 @@
-daemon TerminAttr
- exec /usr/bin/TerminAttr -ingestgrpcurl=192.168.0.5:9910 -taillogs -ingestauth=key,1a38fe7df56879d685e51b6f0ff86327 -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-dns domain atd.lab
-!
-aaa authentication login default local
-aaa authorization exec default local
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret sha512 $6$l1fenP3qXMDvIZKX$6/esgH2r8x8GbV6lQX7svakkKSz3ku3MsGVkftyhJ7Jv5I/BZ52pyZr8WIM6JvO6JYfpbb8MQ8ax8DxHm7Xvg0
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6bJB3TkBEQZ9jNyO1kbdU0P20gZ1D72CvsPNZ5S4bbciBNTT/MHX8GwyLmM9k+ihaHK2JtRhWFcdsm9MojRgjAuzw4wn/6pa92y/93GvaYL//dOBXrHctZsX3PX7TZFL9VVBVA8aFp5iXxEM8uyKWhxnBo/D0eR25Jed4gHVHQMi6Hyh7eKRpE3E6kvRlSkhNikZ5EwdoM7lg2i6rjf7+o3G6isGtxliMZD98N6qWW79U6euS072qkK/q3dfgyHdd8a8MD5VLWbYR9ikhKwpXAmxcFn5aRllqXJ++QAW0NO78noI91ICRxpAuQSzgrntdwXdyFWiqyiD3AxK28qWZ arista@labaccess
-!
-tacacs-server key 7 070E33455D1D18
-tacacs-server host 192.168.0.4
-!
-management api http-commands
- no shutdown
-!
-event-handler iptables-vxlan
- trigger on-boot
- action bash sudo iptables -I INPUT 1 -p udp --dport 4789 -j ACCEPT
- asynchronous
-!
-event-handler ovs-restart
- trigger on-boot
- action bash sudo systemctl restart openvswitch
- delay 30
- asynchronous
-!
diff --git a/topologies/beta-datacenter/configlets/Add_Loopbacks.py b/topologies/beta-datacenter/configlets/Add_Loopbacks.py
deleted file mode 100644
index 0e29654bd..000000000
--- a/topologies/beta-datacenter/configlets/Add_Loopbacks.py
+++ /dev/null
@@ -1,52 +0,0 @@
-from sys import path
-path.append('/usr/lib64/python2.7/site-packages/')
-import yaml
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Device
-
-ztp = CVPGlobalVariables.getValue(GlobalVariableNames.ZTP_STATE)
-ip = CVPGlobalVariables.getValue(GlobalVariableNames.CVP_IP)
-
-if ztp == 'true':
- user = CVPGlobalVariables.getValue(GlobalVariableNames.ZTP_USERNAME)
- passwd = CVPGlobalVariables.getValue(GlobalVariableNames.ZTP_PASSWORD)
-else:
- user = CVPGlobalVariables.getValue(GlobalVariableNames.CVP_USERNAME)
- passwd = CVPGlobalVariables.getValue(GlobalVariableNames.CVP_PASSWORD)
-
-ss = Device(ip,user,passwd)
-
-def get_hostname():
- show_hostname = ss.runCmds(["enable", {"cmd": "show hostname"}])[1]
- hostname = show_hostname['response']['hostname']
- return hostname
-
-def get_bgpasn():
- show_ip_bgp_summary = ss.runCmds(["enable", {"cmd": "show ip bgp summary"}])[1]
- asn = show_ip_bgp_summary['response']['vrfs']['default']['asn']
- return asn
-
-def create_routes(hostname):
- number = hostname[-1:]
- if hostname.startswith("leaf"):
- switch_type = "10"
- elif hostname.startswith("spine"):
- switch_type = "20"
- for x in range(100, 200):
- print "interface Loopback%d" % (x)
- print " ip add 10.%s.%s.%d/32" % (switch_type, number, x)
- return
-
-def add_bgp_conf(asn):
- print 'router bgp %s' % asn
- print ' redistribute connected'
- return
-
-def main():
- hostname = get_hostname()
- if hostname.startswith("leaf" or "spine"):
- create_routes(hostname)
- asn = get_bgpasn()
- add_bgp_conf(asn)
-
-if __name__ == "__main__":
- main()
diff --git a/topologies/beta-datacenter/configlets/BaseIPv4_Cvx01 b/topologies/beta-datacenter/configlets/BaseIPv4_Cvx01
deleted file mode 100644
index 4beb26fa0..000000000
--- a/topologies/beta-datacenter/configlets/BaseIPv4_Cvx01
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname cvx01
-!
-interface Management1
- ip address 192.168.0.44/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-ip routing
-!! ip route 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- protocol http
diff --git a/topologies/beta-datacenter/configlets/BaseIPv4_Host1 b/topologies/beta-datacenter/configlets/BaseIPv4_Host1
deleted file mode 100644
index 821e39d5c..000000000
--- a/topologies/beta-datacenter/configlets/BaseIPv4_Host1
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname host1
-!
-interface Management1
- ip address 192.168.0.31/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-ip routing
-!! ip route 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- protocol http
diff --git a/topologies/beta-datacenter/configlets/BaseIPv4_Host2 b/topologies/beta-datacenter/configlets/BaseIPv4_Host2
deleted file mode 100644
index 77ff2ef71..000000000
--- a/topologies/beta-datacenter/configlets/BaseIPv4_Host2
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname host2
-!
-interface Management1
- ip address 192.168.0.32/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-ip routing
-!! ip route 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- protocol http
diff --git a/topologies/beta-datacenter/configlets/BaseIPv4_Leaf1 b/topologies/beta-datacenter/configlets/BaseIPv4_Leaf1
deleted file mode 100644
index 2db534249..000000000
--- a/topologies/beta-datacenter/configlets/BaseIPv4_Leaf1
+++ /dev/null
@@ -1,16 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname leaf1
-!
-interface Management1
- ip address 192.168.0.14/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-ip routing
-!! ip route 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- protocol http
diff --git a/topologies/beta-datacenter/configlets/BaseIPv4_Leaf2 b/topologies/beta-datacenter/configlets/BaseIPv4_Leaf2
deleted file mode 100644
index a74c6ca44..000000000
--- a/topologies/beta-datacenter/configlets/BaseIPv4_Leaf2
+++ /dev/null
@@ -1,16 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname leaf2
-!
-interface Management1
- ip address 192.168.0.15/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-ip routing
-!! ip route 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- protocol http
diff --git a/topologies/beta-datacenter/configlets/BaseIPv4_Leaf3 b/topologies/beta-datacenter/configlets/BaseIPv4_Leaf3
deleted file mode 100644
index ac1ce0721..000000000
--- a/topologies/beta-datacenter/configlets/BaseIPv4_Leaf3
+++ /dev/null
@@ -1,16 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname leaf3
-!
-interface Management1
- ip address 192.168.0.16/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-ip routing
-!! ip route 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- protocol http
diff --git a/topologies/beta-datacenter/configlets/BaseIPv4_Leaf4 b/topologies/beta-datacenter/configlets/BaseIPv4_Leaf4
deleted file mode 100644
index 7d88233cb..000000000
--- a/topologies/beta-datacenter/configlets/BaseIPv4_Leaf4
+++ /dev/null
@@ -1,16 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname leaf4
-!
-interface Management1
- ip address 192.168.0.17/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-ip routing
-!! ip route 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- protocol http
diff --git a/topologies/beta-datacenter/configlets/BaseIPv4_Spine1 b/topologies/beta-datacenter/configlets/BaseIPv4_Spine1
deleted file mode 100644
index d2fcced30..000000000
--- a/topologies/beta-datacenter/configlets/BaseIPv4_Spine1
+++ /dev/null
@@ -1,16 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname spine1
-!
-interface Management1
- ip address 192.168.0.10/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-ip routing
-!! ip route 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- protocol http
diff --git a/topologies/beta-datacenter/configlets/BaseIPv4_Spine2 b/topologies/beta-datacenter/configlets/BaseIPv4_Spine2
deleted file mode 100644
index 8e3426d79..000000000
--- a/topologies/beta-datacenter/configlets/BaseIPv4_Spine2
+++ /dev/null
@@ -1,16 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname spine2
-!
-interface Management1
- ip address 192.168.0.11/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-ip routing
-!! ip route 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- protocol http
diff --git a/topologies/beta-datacenter/configlets/Host1-ATD b/topologies/beta-datacenter/configlets/Host1-ATD
deleted file mode 100644
index 9b5635c5c..000000000
--- a/topologies/beta-datacenter/configlets/Host1-ATD
+++ /dev/null
@@ -1,27 +0,0 @@
-interface Port-Channel1
- no switchport
- ip address 172.16.112.201/24
-!
-interface Port-Channel2
- no switchport
- ip address 172.16.115.100/24
-!
-interface Ethernet1
- channel-group 1 mode active
- lacp timer fast
-!
-interface Ethernet2
- channel-group 1 mode active
- lacp timer fast
-!
-interface Ethernet3
- channel-group 2 mode active
- lacp timer fast
-!
-interface Ethernet4
- channel-group 2 mode active
- lacp timer fast
-!
-ip route 172.16.116.0/24 172.16.115.1
-ip route 172.16.134.0/24 172.16.112.1
-!
\ No newline at end of file
diff --git a/topologies/beta-datacenter/configlets/Host1-Media b/topologies/beta-datacenter/configlets/Host1-Media
deleted file mode 100644
index 8d0dbd451..000000000
--- a/topologies/beta-datacenter/configlets/Host1-Media
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 172.16.15.5/24
-!
-interface Ethernet2
- shutdown
-!
-interface Ethernet3
- shutdown
-!
-interface Ethernet4
- shutdown
-!
-ip route 10.127.0.0/16 172.16.15.1
-ip route 172.16.0.0/16 172.16.15.1
-!
\ No newline at end of file
diff --git a/topologies/beta-datacenter/configlets/Host2-ATD b/topologies/beta-datacenter/configlets/Host2-ATD
deleted file mode 100644
index 05c2992e7..000000000
--- a/topologies/beta-datacenter/configlets/Host2-ATD
+++ /dev/null
@@ -1,24 +0,0 @@
-interface Port-Channel1
- no switchport
- ip address 172.16.112.202/24
-!
-interface Port-Channel2
- no switchport
- ip address 172.16.116.100/24
-!
-interface Ethernet1
- channel-group 1 mode active
-!
-interface Ethernet2
- channel-group 1 mode active
-!
-interface Ethernet3
- channel-group 2 mode active
-!
-interface Ethernet4
- channel-group 2 mode active
-!
-!
-ip route 172.16.115.0/24 172.16.116.1
-ip route 172.16.112.0/24 172.16.134.1
-!
\ No newline at end of file
diff --git a/topologies/beta-datacenter/configlets/Host2-Media b/topologies/beta-datacenter/configlets/Host2-Media
deleted file mode 100644
index 278fbc1c8..000000000
--- a/topologies/beta-datacenter/configlets/Host2-Media
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.46.6/24
-!
-!
-interface Ethernet3
- shutdown
-!
-interface Ethernet4
- shutdown
-!
-ip route 10.127.0.0/16 172.16.46.4
-ip route 172.16.0.0/16 172.16.46.4
-!
-ip routing
-!
-ip multicast-routing
diff --git a/topologies/beta-datacenter/configlets/L3LS and VARP Builder.py b/topologies/beta-datacenter/configlets/L3LS and VARP Builder.py
deleted file mode 100644
index c96eaeec1..000000000
--- a/topologies/beta-datacenter/configlets/L3LS and VARP Builder.py
+++ /dev/null
@@ -1,119 +0,0 @@
-import sys, jsonrpclib
-sys.path.append('/usr/lib64/python2.7/site-packages/')
-import yaml
-from cvplibrary import CVPGlobalVariables as cvpGV
-from cvplibrary import GlobalVariableNames as GVN
-
-def sendCmd(commands):
- ztp = cvpGV.getValue(GVN.ZTP_STATE)
- hostip = cvpGV.getValue(GVN.CVP_IP)
- if ztp == 'true':
- user = cvpGV.getValue(GVN.ZTP_USERNAME)
- passwd = cvpGV.getValue(GVN.ZTP_PASSWORD)
- else:
- user = cvpGV.getValue(GVN.CVP_USERNAME)
- passwd = cvpGV.getValue(GVN.CVP_PASSWORD)
-
- url = "https://%s:%s@%s/command-api" % (user, passwd, hostip)
- switch = jsonrpclib.Server(url)
- response = switch.runCmds(1, commands)[0]
- return response
-
-
-hostname = sendCmd(['show hostname'])['hostname']
-f = open('hostvars/%s.yml' % hostname )
-info = yaml.load(f)
-
-if 'interfaces' not in info.keys():
- print ''
-else:
- print 'ip routing'
- print '!'
- for d in info['interfaces']:
- print 'interface %s' % d['interface']
- if 'Loopback' not in d['interface']:
- print ' no switchport'
- print ' ip address %s/%s' % (d['ip'], d['cidr'])
- print '!'
-
-if 'bgp' not in info.keys():
- print ''
-else:
- print 'router bgp %s' % info['bgp']['as']
- print ' maximum-paths 4 ecmp 4'
- for d in info['bgp']['bgp_neighbors']:
- print ' neighbor %s remote-as %s' % (d['ip'], d['remote-as'])
- for n in info['bgp']['networks']:
- print ' network %s' % n
- print '!'
-
-if 'mlag' not in info.keys():
- print ''
-elif 'spine' in hostname:
- print ''
-else:
- print 'vlan %s' % info['mlag']['peer_vlan']
- print ' name MLAGPeerLink'
- print ' trunk group mlagPeer'
- print '!'
- print 'no spanning-tree vlan-id %s' % info['mlag']['peer_vlan']
- print '!'
- for i in info['mlag']['peer_interfaces']:
- print 'interface %s' % i
- print ' channel-group %s mode active' % info['mlag']['peer_link'].replace('Port-Channel','')
- print '!'
-
- print 'interface %s' % info['mlag']['peer_link']
- print ' description MLAGPeerLink'
- print ' switchport mode trunk'
- print ' switchport trunk group mlagPeer'
- print '!'
-
- print 'interface Vlan%s' % info['mlag']['peer_vlan']
- print ' description MLAGPeerIP'
- print ' ip address %s/%s' % (info['mlag']['ip'], info['mlag']['cidr'])
- print '!'
-
- print 'mlag configuration'
- print ' domain %s' % info['mlag']['domain']
- print ' local-interface Vlan%s' % info['mlag']['peer_vlan']
- print ' peer-address %s' % info['mlag']['peer_ip']
- print ' peer-link %s' % info['mlag']['peer_link']
- print '!'
-
- for m in info['mlag']['mlags']:
- for i in m['interfaces']:
- if m['mlag'] == 12 or m['mlag'] == 34:
- continue
- else:
- print 'interface %s' % i
- print ' channel-group %s mode active' % m['mlag']
- print '!'
- print 'interface Port-Channel%s' % m['mlag']
- print ' mlag %s' % m['mlag']
- if m['trunk']:
- print ' switchport mode trunk'
- elif m['access']:
- print ' switchport mode access'
- print ' switchport access vlan %s' % m['vlan']
- print '!'
-
-if 'l3ls_svis' not in info.keys():
- print ''
-else:
- varp = False
- for s in info['l3ls_svis']:
- print 'interface Vlan%s' % s['vlan']
- print ' description VLAN%sSVI' % s['vlan']
- print ' ip address %s/%s' % (s['ip'], s['cidr'])
- print ' no autostate'
- if s['varp']:
- varp = True
- print ' ip virtual-router address %s' % s['varp_ip']
- print '!'
-
- if varp:
- print 'ip virtual-router mac-address 00:1C:73:00:00:01'
- print '!'
-
-
\ No newline at end of file
diff --git a/topologies/beta-datacenter/configlets/L3LS and VXLAN Builder.py b/topologies/beta-datacenter/configlets/L3LS and VXLAN Builder.py
deleted file mode 100644
index 8b18d3bef..000000000
--- a/topologies/beta-datacenter/configlets/L3LS and VXLAN Builder.py
+++ /dev/null
@@ -1,131 +0,0 @@
-import sys, jsonrpclib
-sys.path.append('/usr/lib64/python2.7/site-packages/')
-import yaml
-from cvplibrary import CVPGlobalVariables as cvpGV
-from cvplibrary import GlobalVariableNames as GVN
-
-def sendCmd(commands):
- ztp = cvpGV.getValue(GVN.ZTP_STATE)
- hostip = cvpGV.getValue(GVN.CVP_IP)
- if ztp == 'true':
- user = cvpGV.getValue(GVN.ZTP_USERNAME)
- passwd = cvpGV.getValue(GVN.ZTP_PASSWORD)
- else:
- user = cvpGV.getValue(GVN.CVP_USERNAME)
- passwd = cvpGV.getValue(GVN.CVP_PASSWORD)
-
- url = "https://%s:%s@%s/command-api" % (user, passwd, hostip)
- switch = jsonrpclib.Server(url)
- response = switch.runCmds(1, commands)[0]
- return response
-
-
-hostname = sendCmd(['show hostname'])['hostname']
-f = open('hostvars/%s.yml' % hostname )
-info = yaml.load(f)
-
-if 'interfaces' not in info.keys():
- print ''
-else:
- print 'ip routing'
- print '!'
- for d in info['interfaces']:
- print 'interface %s' % d['interface']
- if 'Loopback' not in d['interface']:
- print ' no switchport'
- print ' ip address %s/%s' % (d['ip'], d['cidr'])
- print '!'
-
-if 'bgp' not in info.keys():
- print ''
-else:
- print 'router bgp %s' % info['bgp']['as']
- print ' maximum-paths 4 ecmp 4'
- for d in info['bgp']['bgp_neighbors']:
- print ' neighbor %s remote-as %s' % (d['ip'], d['remote-as'])
- for n in info['bgp']['networks']:
- if n == '172.16.134.0/24' or n == '172.16.112.0/24':
- continue
- print ' network %s' % n
- print '!'
-
-if 'mlag' not in info.keys():
- print ''
-elif 'spine' in hostname:
- print ''
-else:
- print 'vlan %s' % info['mlag']['peer_vlan']
- print ' name MLAGPeerLink'
- print ' trunk group mlagPeer'
- print '!'
- print 'no spanning-tree vlan-id %s' % info['mlag']['peer_vlan']
- print '!'
- for i in info['mlag']['peer_interfaces']:
- print 'interface %s' % i
- print ' channel-group %s mode active' % info['mlag']['peer_link'].replace('Port-Channel','')
- print '!'
-
- print 'interface %s' % info['mlag']['peer_link']
- print ' description MLAGPeerLink'
- print ' switchport mode trunk'
- print ' switchport trunk group mlagPeer'
- print '!'
-
- print 'interface Vlan%s' % info['mlag']['peer_vlan']
- print ' description MLAGPeerIP'
- print ' ip address %s/%s' % (info['mlag']['ip'], info['mlag']['cidr'])
- print '!'
-
- print 'mlag configuration'
- print ' domain %s' % info['mlag']['domain']
- print ' local-interface Vlan%s' % info['mlag']['peer_vlan']
- print ' peer-address %s' % info['mlag']['peer_ip']
- print ' peer-link %s' % info['mlag']['peer_link']
- print '!'
-
- for m in info['mlag']['mlags']:
- for i in m['interfaces']:
- if m['mlag'] == 12 or m['mlag'] == 34:
- continue
- else:
- print 'interface %s' % i
- if (hostname == 'leaf2' and i == 'Ethernet4'):
- print ' shutdown'
- print ' channel-group %s mode active' % m['mlag']
- print '!'
- print 'interface Port-Channel%s' % m['mlag']
- print ' mlag %s' % m['mlag']
- if m['trunk']:
- print ' switchport mode trunk'
- elif m['access']:
- print ' switchport mode access'
- print ' switchport access vlan %s' % m['vlan']
- print '!'
-
-if 'vxlan_svis' not in info.keys():
- print ''
-else:
- varp = False
- for s in info['vxlan_svis']:
- print 'interface Vlan%s' % s['vlan']
- print ' description VLAN%sSVI' % s['vlan']
- print ' ip address %s/%s' % (s['ip'], s['cidr'])
- print ' no autostate'
- if s['varp']:
- varp = True
- print ' ip virtual-router address %s' % s['varp_ip']
- print '!'
-
- if varp:
- print 'ip virtual-router mac-address 00:1C:73:00:00:01'
- print '!'
-
-if 'vxlan' not in info.keys():
- print ''
-else:
- print 'interface Vxlan1'
- print ' vxlan source-interface %s' % info['vxlan']['vtep']
- print ' vxlan flood vtep %s' % ' '.join(info['vxlan']['flood_vteps'])
- for v in info['vxlan']['vnis']:
- print ' vxlan vlan %s vni %s' % (v['vlan'], v['vni'])
- print '!'
diff --git a/topologies/beta-datacenter/configlets/Leaf1-BGP-Lab b/topologies/beta-datacenter/configlets/Leaf1-BGP-Lab
deleted file mode 100644
index 2bfd5eeb1..000000000
--- a/topologies/beta-datacenter/configlets/Leaf1-BGP-Lab
+++ /dev/null
@@ -1,71 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG - HOST1
- switchport mode access
- switchport access vlan 12
- mlag 5
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.2/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.18/30
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- description HOST1
- channel-group 5 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK - LEAF2
- ip address 172.16.12.1/30
-!
-mlag configuration
- domain-id MLAG12
- local-interface Vlan4094
- peer-address 172.16.12.2
- peer-link Port-Channel10
-!
-interface Loopback0
- ip address 172.16.0.3/32
-!
-interface Vlan12
- ip address 172.16.115.2/24
- ip virtual-router address 172.16.115.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:12
-!
-router bgp 65001
- router-id 172.16.0.3
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.1 remote-as 65000
- neighbor 172.16.200.1 maximum-routes 12000
- neighbor 172.16.200.1 send-community extended
- neighbor 172.16.200.17 remote-as 65000
- neighbor 172.16.200.17 maximum-routes 12000
- neighbor 172.16.200.17 send-community extended
- neighbor 172.16.12.2 remote-as 65001
- neighbor 172.16.12.2 next-hop-self
- network 172.16.0.3/32
- network 172.16.115.0/24
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf1-L2EVPN-Lab b/topologies/beta-datacenter/configlets/Leaf1-L2EVPN-Lab
deleted file mode 100644
index f2031afd9..000000000
--- a/topologies/beta-datacenter/configlets/Leaf1-L2EVPN-Lab
+++ /dev/null
@@ -1,74 +0,0 @@
-service routing protocols model multi-agent
-!
-vlan 12
-!
-interface Vlan12
- ip address virtual 172.16.112.1/24
-!
-interface Port-Channel4
- switchport access vlan 12
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.200.2/30
-!
-interface Ethernet3
- no switchport
- ip address 172.16.200.18/30
-!
-interface Ethernet4
- channel-group 4 mode active
- lacp timer fast
-!
-interface Ethernet5
- shutdown
-!
-interface Loopback0
- ip address 172.16.0.3/32
-!
-interface Loopback1
- ip address 1.1.1.1/32
- ip address 99.99.99.99/32 secondary
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1200
-!
-ip routing
-!
-router bgp 65101
- router-id 172.16.0.3
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT next-hop-unchanged
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community extended
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.200.1 peer group SPINE
- neighbor 172.16.200.17 peer group SPINE
- redistribute connected
- !
- vlan 12
- rd 1.1.1.1:12
- route-target both 1:12
- redistribute learned
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
diff --git a/topologies/beta-datacenter/configlets/Leaf1-L3EVPN-Lab b/topologies/beta-datacenter/configlets/Leaf1-L3EVPN-Lab
deleted file mode 100644
index 5c83ac6c9..000000000
--- a/topologies/beta-datacenter/configlets/Leaf1-L3EVPN-Lab
+++ /dev/null
@@ -1,84 +0,0 @@
-service routing protocols model multi-agent
-!
-vlan 2001
-!
-vrf instance vrf1
-!
-interface Port-Channel5
- switchport access vlan 2001
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.200.2/30
-!
-interface Ethernet3
- no switchport
- ip address 172.16.200.18/30
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- channel-group 5 mode active
-!
-interface Loopback0
- ip address 172.16.0.3/32
-!
-interface Loopback1
- ip address 1.1.1.1/32
- ip address 99.99.99.99/32 secondary
-!
-interface Loopback901
- vrf vrf1
- ip address 200.200.200.1/32
-!
-interface Vlan2001
- mtu 9000
- no autostate
- vrf vrf1
- ip address virtual 172.16.115.1/24
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vrf vrf1 vni 1001
-!
-ip routing
-ip routing vrf vrf1
-!
-router bgp 65101
- router-id 172.16.0.3
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT next-hop-unchanged
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community extended
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.200.1 peer group SPINE
- neighbor 172.16.200.17 peer group SPINE
- redistribute connected
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
- vrf vrf1
- rd 1.1.1.1:1001
- route-target import 1:1001
- route-target export 1:1001
- redistribute connected
- redistribute static
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf1-MLAG-Lab b/topologies/beta-datacenter/configlets/Leaf1-MLAG-Lab
deleted file mode 100644
index 084fd886c..000000000
--- a/topologies/beta-datacenter/configlets/Leaf1-MLAG-Lab
+++ /dev/null
@@ -1,54 +0,0 @@
-!
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG - HOST1
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel12
- description MLAG - SPINE1 & 2
- switchport mode trunk
- mlag 12
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet3
- description SPINE2
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet4
- description HOST1
- channel-group 4 mode active
-!
-interface Ethernet5
- shutdown
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.12.1/30
-!
-mlag configuration
- domain-id MLAG12
- local-interface Vlan4094
- peer-address 172.16.12.2
- peer-link Port-Channel10
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf1-VXLAN-Lab b/topologies/beta-datacenter/configlets/Leaf1-VXLAN-Lab
deleted file mode 100644
index cf7582e59..000000000
--- a/topologies/beta-datacenter/configlets/Leaf1-VXLAN-Lab
+++ /dev/null
@@ -1,80 +0,0 @@
-!
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG - HOST1
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.2/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.18/30
-!
-interface Ethernet4
- description HOST1
- channel-group 4 mode active
- lacp timer fast
-!
-interface Ethernet5
- shutdown
-!
-interface Vlan4094
- description MLAG PEER LINK - LEAF2
- ip address 172.16.12.1/30
-!
-mlag configuration
- domain-id MLAG12
- local-interface Vlan4094
- peer-address 172.16.12.2
- peer-link Port-Channel10
-!
-interface Loopback0
- ip address 172.16.0.3/32
-!
-interface Loopback1
- ip address 172.16.0.34/32
-!
-interface Vlan12
- ip address 172.16.112.2/24
- ip virtual-router address 172.16.112.1
-!
-interface Vxlan1
- vxlan source-interface loopback 1
- vxlan flood vtep 172.16.0.56
- vxlan vlan 12 vni 1212
-!
-ip virtual-router mac-address 00:1c:73:00:00:ff
-!
-router bgp 65001
- router-id 172.16.0.3
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.1 remote-as 65000
- neighbor 172.16.200.1 maximum-routes 12000
- neighbor 172.16.200.17 remote-as 65000
- neighbor 172.16.200.17 maximum-routes 12000
- neighbor 172.16.12.2 remote-as 65001
- neighbor 172.16.12.2 next-hop-self
- network 172.16.0.3/32
- network 172.16.0.34/32
- network 172.16.112.0/24
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf1-cvx01-Controller b/topologies/beta-datacenter/configlets/Leaf1-cvx01-Controller
deleted file mode 100644
index 711a9907b..000000000
--- a/topologies/beta-datacenter/configlets/Leaf1-cvx01-Controller
+++ /dev/null
@@ -1,9 +0,0 @@
-management cvx
- no shutdown
- server host 192.168.0.44
-!
-interface vxlan 1
- vxlan source-interface Loopback1
- vxlan controller-client
- vxlan udp-port 4789
- vxlan vlan 12 vni 1212
diff --git a/topologies/beta-datacenter/configlets/Leaf2-BGP-Lab b/topologies/beta-datacenter/configlets/Leaf2-BGP-Lab
deleted file mode 100644
index 860d0235b..000000000
--- a/topologies/beta-datacenter/configlets/Leaf2-BGP-Lab
+++ /dev/null
@@ -1,70 +0,0 @@
-!
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG - HOST1
- switchport mode access
- switchport access vlan 12
- mlag 5
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.6/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.22/30
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- description HOST1
- channel-group 5 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.12.2/30
-!
-mlag configuration
- domain-id MLAG12
- local-interface Vlan4094
- peer-address 172.16.12.1
- peer-link Port-Channel10
-!
-interface Loopback0
- ip address 172.16.0.4/32
-!
-interface Vlan12
- ip address 172.16.115.3/24
- ip virtual-router address 172.16.115.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:12
-!
-router bgp 65001
- router-id 172.16.0.4
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.5 remote-as 65000
- neighbor 172.16.200.5 maximum-routes 12000
- neighbor 172.16.200.21 remote-as 65000
- neighbor 172.16.200.21 maximum-routes 12000
- neighbor 172.16.12.1 remote-as 65001
- neighbor 172.16.12.1 next-hop-self
- network 172.16.0.4/32
- network 172.16.115.0/24
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf2-L2EVPN-Lab b/topologies/beta-datacenter/configlets/Leaf2-L2EVPN-Lab
deleted file mode 100644
index 339b467c7..000000000
--- a/topologies/beta-datacenter/configlets/Leaf2-L2EVPN-Lab
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-!
-
-interface Ethernet2
- shutdown
-!
-
-interface Ethernet3
- shutdown
-!
-
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- shutdown
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf2-L3EVPN-Lab b/topologies/beta-datacenter/configlets/Leaf2-L3EVPN-Lab
deleted file mode 100644
index 339b467c7..000000000
--- a/topologies/beta-datacenter/configlets/Leaf2-L3EVPN-Lab
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-!
-
-interface Ethernet2
- shutdown
-!
-
-interface Ethernet3
- shutdown
-!
-
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- shutdown
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf2-MLAG-Lab b/topologies/beta-datacenter/configlets/Leaf2-MLAG-Lab
deleted file mode 100644
index afb330e07..000000000
--- a/topologies/beta-datacenter/configlets/Leaf2-MLAG-Lab
+++ /dev/null
@@ -1,54 +0,0 @@
-!
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG - HOST1
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel12
- description MLAG - SPINE1 & 2
- switchport mode trunk
- mlag 12
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet3
- description SPINE2
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet4
- description HOST1
- channel-group 4 mode active
-!
-interface Ethernet5
- shutdown
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.12.2/30
-!
-mlag configuration
- domain-id MLAG12
- local-interface Vlan4094
- peer-address 172.16.12.1
- peer-link Port-Channel10
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf2-VXLAN-Lab b/topologies/beta-datacenter/configlets/Leaf2-VXLAN-Lab
deleted file mode 100644
index f44bf7bb3..000000000
--- a/topologies/beta-datacenter/configlets/Leaf2-VXLAN-Lab
+++ /dev/null
@@ -1,80 +0,0 @@
-!
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG - HOST1
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.6/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.22/30
-!
-interface Ethernet4
- description HOST1
- channel-group 4 mode active
- lacp timer fast
-!
-interface Ethernet5
- shutdown
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.12.2/30
-!
-mlag configuration
- domain-id MLAG12
- local-interface Vlan4094
- peer-address 172.16.12.1
- peer-link Port-Channel10
-!
-interface Loopback0
- ip address 172.16.0.4/32
-!
-interface Loopback1
- ip address 172.16.0.34/32
-!
-interface Vlan12
- ip address 172.16.112.3/24
- ip virtual-router address 172.16.112.1
-!
-interface Vxlan1
- vxlan source-interface loopback 1
- vxlan vlan 12 vni 1212
- vxlan flood vtep 172.16.0.56
-!
-ip virtual-router mac-address 00:1c:73:00:00:ff
-!
-router bgp 65001
- router-id 172.16.0.4
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.5 remote-as 65000
- neighbor 172.16.200.5 maximum-routes 12000
- neighbor 172.16.200.21 remote-as 65000
- neighbor 172.16.200.21 maximum-routes 12000
- neighbor 172.16.12.1 remote-as 65001
- neighbor 172.16.12.1 next-hop-self
- network 172.16.0.4/32
- network 172.16.0.34/32
- network 172.16.112.0/24
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf2-cvx01-Controller b/topologies/beta-datacenter/configlets/Leaf2-cvx01-Controller
deleted file mode 100644
index 711a9907b..000000000
--- a/topologies/beta-datacenter/configlets/Leaf2-cvx01-Controller
+++ /dev/null
@@ -1,9 +0,0 @@
-management cvx
- no shutdown
- server host 192.168.0.44
-!
-interface vxlan 1
- vxlan source-interface Loopback1
- vxlan controller-client
- vxlan udp-port 4789
- vxlan vlan 12 vni 1212
diff --git a/topologies/beta-datacenter/configlets/Leaf3-BGP-Lab b/topologies/beta-datacenter/configlets/Leaf3-BGP-Lab
deleted file mode 100644
index 6cc91366b..000000000
--- a/topologies/beta-datacenter/configlets/Leaf3-BGP-Lab
+++ /dev/null
@@ -1,70 +0,0 @@
-!
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG - HOST2
- switchport mode access
- switchport access vlan 34
- mlag 5
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description - SPINE1
- no switchport
- ip address 172.16.200.10/30
-!
-interface Ethernet3
- description - SPINE2
- no switchport
- ip address 172.16.200.26/30
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- description HOST2
- channel-group 5 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.34.1/30
-!
-mlag configuration
- domain-id MLAG34
- local-interface Vlan4094
- peer-address 172.16.34.2
- peer-link Port-Channel10
-!
-interface Loopback0
- ip address 172.16.0.5/32
-!
-interface Vlan34
- ip address 172.16.116.2/24
- ip virtual-router address 172.16.116.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:34
-!
-router bgp 65002
- router-id 172.16.0.5
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.9 remote-as 65000
- neighbor 172.16.200.9 maximum-routes 12000
- neighbor 172.16.200.25 remote-as 65000
- neighbor 172.16.200.25 maximum-routes 12000
- neighbor 172.16.34.2 remote-as 65002
- neighbor 172.16.34.2 next-hop-self
- network 172.16.0.5/32
- network 172.16.116.0/24
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf3-L2EVPN-Lab b/topologies/beta-datacenter/configlets/Leaf3-L2EVPN-Lab
deleted file mode 100644
index 58a3c08b4..000000000
--- a/topologies/beta-datacenter/configlets/Leaf3-L2EVPN-Lab
+++ /dev/null
@@ -1,74 +0,0 @@
-service routing protocols model multi-agent
-!
-vlan 12
-!
-interface Vlan12
- ip address virtual 172.16.112.1/24
-!
-interface Port-Channel4
- switchport access vlan 12
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.200.10/30
-!
-interface Ethernet3
- no switchport
- ip address 172.16.200.26/30
-!
-interface Ethernet4
- channel-group 4 mode active
-!
-interface Ethernet5
- shutdown
-!
-interface Loopback0
- ip address 172.16.0.5/32
-!
-interface Loopback1
- ip address 3.3.3.3/32
- ip address 99.99.99.99/32 secondary
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1200
-!
-ip routing
-!
-router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT next-hop-unchanged
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community extended
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
- !
- vlan 12
- rd 3.3.3.3:12
- route-target both 1:12
- redistribute learned
- !
- address-family evpn
- bgp next-hop-unchanged
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
diff --git a/topologies/beta-datacenter/configlets/Leaf3-L3EVPN-Lab b/topologies/beta-datacenter/configlets/Leaf3-L3EVPN-Lab
deleted file mode 100644
index e626ef05b..000000000
--- a/topologies/beta-datacenter/configlets/Leaf3-L3EVPN-Lab
+++ /dev/null
@@ -1,86 +0,0 @@
-service routing protocols model multi-agent
-!
-vlan 2003
-!
-vrf instance vrf1
-!
-interface Port-Channel5
- switchport access vlan 2003
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.200.10/30
-!
-interface Ethernet3
- no switchport
- ip address 172.16.200.26/30
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- channel-group 5 mode active
-
-!
-interface Loopback0
- ip address 172.16.0.5/32
-!
-interface Loopback1
- ip address 3.3.3.3/32
- ip address 99.99.99.99/32 secondary
-!
-interface Loopback901
- vrf vrf1
- ip address 200.200.200.2/32
-!
-interface Vlan2003
- mtu 9000
- no autostate
- vrf vrf1
- ip address virtual 172.16.116.1/24
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vrf vrf1 vni 1001
-!
-ip routing
-ip routing vrf vrf1
-!
-router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT next-hop-unchanged
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community extended
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
- !
- address-family evpn
- bgp next-hop-unchanged
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
- vrf vrf1
- rd 3.3.3.3:1001
- route-target import 1:1001
- route-target export 1:1001
- redistribute connected
- redistribute static
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf3-MLAG-Lab b/topologies/beta-datacenter/configlets/Leaf3-MLAG-Lab
deleted file mode 100644
index 4aee4cc48..000000000
--- a/topologies/beta-datacenter/configlets/Leaf3-MLAG-Lab
+++ /dev/null
@@ -1,54 +0,0 @@
-!
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG - HOST2
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel34
- description MLAG - SPINE1 & 2
- switchport mode trunk
- mlag 34
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Ethernet3
- description SPINE2
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Ethernet4
- description HOST2
- channel-group 4 mode active
-!
-interface Ethernet5
- shutdown
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.34.1/30
-!
-mlag configuration
- domain-id MLAG34
- local-interface Vlan4094
- peer-address 172.16.34.2
- peer-link Port-Channel10
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf3-VXLAN-Lab b/topologies/beta-datacenter/configlets/Leaf3-VXLAN-Lab
deleted file mode 100644
index ab7dbab2f..000000000
--- a/topologies/beta-datacenter/configlets/Leaf3-VXLAN-Lab
+++ /dev/null
@@ -1,61 +0,0 @@
-!
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.10/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.26/30
-!
-interface Ethernet5
- shutdown
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.34.1/30
-!
-mlag configuration
- domain-id MLAG34
- local-interface Vlan4094
- peer-address 172.16.34.2
- peer-link Port-Channel10
-!
-interface Loopback0
- ip address 172.16.0.5/32
-!
-interface Vlan12
- ip address 172.16.112.4/24
- ip virtual-router address 172.16.112.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:ff
-!
-router bgp 65002
- router-id 172.16.0.5
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.9 remote-as 65000
- neighbor 172.16.200.9 maximum-routes 12000
- neighbor 172.16.200.25 remote-as 65000
- neighbor 172.16.200.25 maximum-routes 12000
- neighbor 172.16.34.2 remote-as 65002
- neighbor 172.16.34.2 next-hop-self
- network 172.16.0.5/32
- network 172.16.0.56/32
- network 172.16.112.0/24
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf3-VXLAN-Lab-Full b/topologies/beta-datacenter/configlets/Leaf3-VXLAN-Lab-Full
deleted file mode 100644
index 1f6bb8351..000000000
--- a/topologies/beta-datacenter/configlets/Leaf3-VXLAN-Lab-Full
+++ /dev/null
@@ -1,20 +0,0 @@
-!
-interface Port-Channel4
- description MLAG - HOST2
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-!
-interface Loopback1
- ip address 172.16.0.56/32
-!
-interface Vxlan1
- vxlan source-interface loopback 1
- vxlan vlan 12 vni 1212
- vxlan flood vtep 172.16.0.34
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf3-cvx01-Controller b/topologies/beta-datacenter/configlets/Leaf3-cvx01-Controller
deleted file mode 100644
index 711a9907b..000000000
--- a/topologies/beta-datacenter/configlets/Leaf3-cvx01-Controller
+++ /dev/null
@@ -1,9 +0,0 @@
-management cvx
- no shutdown
- server host 192.168.0.44
-!
-interface vxlan 1
- vxlan source-interface Loopback1
- vxlan controller-client
- vxlan udp-port 4789
- vxlan vlan 12 vni 1212
diff --git a/topologies/beta-datacenter/configlets/Leaf4-BGP-Lab b/topologies/beta-datacenter/configlets/Leaf4-BGP-Lab
deleted file mode 100644
index abc46240f..000000000
--- a/topologies/beta-datacenter/configlets/Leaf4-BGP-Lab
+++ /dev/null
@@ -1,39 +0,0 @@
-!
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG - HOST2
- switchport mode access
- switchport access vlan 34
- mlag 5
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- description HOST2
- channel-group 5 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.34.2/30
-!
-mlag configuration
- domain-id MLAG34
- local-interface Vlan4094
- peer-address 172.16.34.1
- peer-link Port-Channel10
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf4-BGP-Lab-Full b/topologies/beta-datacenter/configlets/Leaf4-BGP-Lab-Full
deleted file mode 100644
index 966b3d704..000000000
--- a/topologies/beta-datacenter/configlets/Leaf4-BGP-Lab-Full
+++ /dev/null
@@ -1,32 +0,0 @@
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.14/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.30/30
-!
-interface Loopback0
- ip address 172.16.0.6/32
-!
-interface Vlan34
- ip address 172.16.116.3/24
- ip virtual-router address 172.16.116.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:34
-!
-router bgp 65002
- router-id 172.16.0.6
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.13 remote-as 65000
- neighbor 172.16.200.13 maximum-routes 12000
- neighbor 172.16.200.29 remote-as 65000
- neighbor 172.16.200.29 maximum-routes 12000
- neighbor 172.16.34.1 remote-as 65002
- neighbor 172.16.34.1 next-hop-self
- network 172.16.0.6/32
- network 172.16.116.0/24
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf4-L2EVPN-Lab b/topologies/beta-datacenter/configlets/Leaf4-L2EVPN-Lab
deleted file mode 100644
index 339b467c7..000000000
--- a/topologies/beta-datacenter/configlets/Leaf4-L2EVPN-Lab
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-!
-
-interface Ethernet2
- shutdown
-!
-
-interface Ethernet3
- shutdown
-!
-
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- shutdown
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf4-L3EVPN-Lab b/topologies/beta-datacenter/configlets/Leaf4-L3EVPN-Lab
deleted file mode 100644
index 339b467c7..000000000
--- a/topologies/beta-datacenter/configlets/Leaf4-L3EVPN-Lab
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-!
-
-interface Ethernet2
- shutdown
-!
-
-interface Ethernet3
- shutdown
-!
-
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- shutdown
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf4-MLAG-Lab b/topologies/beta-datacenter/configlets/Leaf4-MLAG-Lab
deleted file mode 100644
index 98d159d41..000000000
--- a/topologies/beta-datacenter/configlets/Leaf4-MLAG-Lab
+++ /dev/null
@@ -1,54 +0,0 @@
-!
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG - HOST2
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel34
- description MLAG - SPINE1 & 2
- switchport mode trunk
- mlag 34
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Ethernet3
- description SPINE2
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Ethernet4
- description HOST2
- channel-group 4 mode active
-!
-interface Ethernet5
- shutdown
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.34.2/30
-!
-mlag configuration
- domain-id MLAG34
- local-interface Vlan4094
- peer-address 172.16.34.1
- peer-link Port-Channel10
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf4-VXLAN-Lab b/topologies/beta-datacenter/configlets/Leaf4-VXLAN-Lab
deleted file mode 100644
index 5c7cab57c..000000000
--- a/topologies/beta-datacenter/configlets/Leaf4-VXLAN-Lab
+++ /dev/null
@@ -1,79 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG - HOST2
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.14/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.30/30
-!
-interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-!
-interface Ethernet5
- shutdown
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.34.2/30
-!
-mlag configuration
- domain-id MLAG34
- local-interface Vlan4094
- peer-address 172.16.34.1
- peer-link Port-Channel10
-!
-interface Loopback0
- ip address 172.16.0.6/32
-!
-interface Loopback1
- ip address 172.16.0.56/32
-!
-interface Vlan12
- ip address 172.16.112.5/24
- ip virtual-router address 172.16.112.1
-!
-interface Vxlan1
- vxlan source-interface loopback 1
- vxlan vlan 12 vni 1212
- vxlan flood vtep 172.16.0.34
-!
-ip virtual-router mac-address 00:1c:73:00:00:ff
-!
-router bgp 65002
- router-id 172.16.0.6
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.13 remote-as 65000
- neighbor 172.16.200.13 maximum-routes 12000
- neighbor 172.16.200.29 remote-as 65000
- neighbor 172.16.200.29 maximum-routes 12000
- neighbor 172.16.34.1 remote-as 65002
- neighbor 172.16.34.1 next-hop-self
- network 172.16.0.6/32
- network 172.16.0.56/32
- network 172.16.112.0/24
-!
diff --git a/topologies/beta-datacenter/configlets/Leaf4-cvx01-Controller b/topologies/beta-datacenter/configlets/Leaf4-cvx01-Controller
deleted file mode 100644
index 711a9907b..000000000
--- a/topologies/beta-datacenter/configlets/Leaf4-cvx01-Controller
+++ /dev/null
@@ -1,9 +0,0 @@
-management cvx
- no shutdown
- server host 192.168.0.44
-!
-interface vxlan 1
- vxlan source-interface Loopback1
- vxlan controller-client
- vxlan udp-port 4789
- vxlan vlan 12 vni 1212
diff --git a/topologies/beta-datacenter/configlets/MLAG and VARP Builder.py b/topologies/beta-datacenter/configlets/MLAG and VARP Builder.py
deleted file mode 100644
index 228e8d180..000000000
--- a/topologies/beta-datacenter/configlets/MLAG and VARP Builder.py
+++ /dev/null
@@ -1,89 +0,0 @@
-import sys, jsonrpclib
-sys.path.append('/usr/lib64/python2.7/site-packages/')
-import yaml
-from cvplibrary import CVPGlobalVariables as cvpGV
-from cvplibrary import GlobalVariableNames as GVN
-
-def sendCmd(commands):
- ztp = cvpGV.getValue(GVN.ZTP_STATE)
- hostip = cvpGV.getValue(GVN.CVP_IP)
- if ztp == 'true':
- user = cvpGV.getValue(GVN.ZTP_USERNAME)
- passwd = cvpGV.getValue(GVN.ZTP_PASSWORD)
- else:
- user = cvpGV.getValue(GVN.CVP_USERNAME)
- passwd = cvpGV.getValue(GVN.CVP_PASSWORD)
-
- url = "https://%s:%s@%s/command-api" % (user, passwd, hostip)
- switch = jsonrpclib.Server(url)
- response = switch.runCmds(1, commands)[0]
- return response
-
-hostname = sendCmd(['show hostname'])['hostname']
-f = open('hostvars/%s.yml' % hostname )
-info = yaml.load(f)
-
-if 'mlag' not in info.keys():
- print ''
-else:
- print 'vlan %s' % info['mlag']['peer_vlan']
- print ' name MLAGPeerLink'
- print ' trunk group mlagPeer'
- print '!'
- print 'no spanning-tree vlan-id %s' % info['mlag']['peer_vlan']
- print '!'
- for i in info['mlag']['peer_interfaces']:
- print 'interface %s' % i
- print ' channel-group %s mode active' % info['mlag']['peer_link'].replace('Port-Channel','')
- print '!'
-
- print 'interface %s' % info['mlag']['peer_link']
- print ' description MLAGPeerLink'
- print ' switchport mode trunk'
- print ' switchport trunk group mlagPeer'
- print '!'
-
- print 'interface Vlan%s' % info['mlag']['peer_vlan']
- print ' description MLAGPeerIP'
- print ' ip address %s/%s' % (info['mlag']['ip'], info['mlag']['cidr'])
- print '!'
-
- print 'mlag configuration'
- print ' domain %s' % info['mlag']['domain']
- print ' local-interface Vlan%s' % info['mlag']['peer_vlan']
- print ' peer-address %s' % info['mlag']['peer_ip']
- print ' peer-link %s' % info['mlag']['peer_link']
- print '!'
-
- for m in info['mlag']['mlags']:
- for i in m['interfaces']:
- print 'interface %s' % i
- print ' channel-group %s mode active' % m['mlag']
- print '!'
- print 'interface Port-Channel%s' % m['mlag']
- print ' mlag %s' % m['mlag']
- if m['trunk']:
- print ' switchport mode trunk'
- elif m['access']:
- print ' switchport mode access'
- print ' switchport access vlan %s' % m['vlan']
- print '!'
-
-if 'mlag_svis' not in info.keys():
- print ''
-else:
- varp = False
- for s in info['mlag_svis']:
- print 'interface Vlan%s' % s['vlan']
- print ' description VLAN%sSVI' % s['vlan']
- print ' ip address %s/%s' % (s['ip'], s['cidr'])
- print ' no autostate'
- if s['varp']:
- varp = True
- print ' ip virtual-router address %s' % s['varp_ip']
- print '!'
-
- if varp:
- print 'ip virtual-router mac-address 00:1C:73:00:00:01'
- print '!'
-
diff --git a/topologies/beta-datacenter/configlets/SYS_BaseConfig.py b/topologies/beta-datacenter/configlets/SYS_BaseConfig.py
deleted file mode 100644
index fcbecb573..000000000
--- a/topologies/beta-datacenter/configlets/SYS_BaseConfig.py
+++ /dev/null
@@ -1,53 +0,0 @@
-import urllib2, json, jsonrpclib, ssl
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames
-
-# Get this devices MAC address
-mac = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_MAC )
-ztp = CVPGlobalVariables.getValue( GlobalVariableNames.ZTP_STATE )
-hostip = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_IP )
-
-if ztp == 'true':
- user = CVPGlobalVariables.getValue( GlobalVariableNames.ZTP_USERNAME )
- passwd = CVPGlobalVariables.getValue( GlobalVariableNames.ZTP_PASSWORD )
-else:
- user = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_USERNAME )
- passwd = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_PASSWORD )
-
-# setup context to disable SSL verification
-# Request to send to IPAM for Ma1 address
-url = "http://192.168.0.4/ipam/arista/mgmtbymac.php?mac=%s" % mac
-response = urllib2.urlopen(url)
-hostjson = json.loads(response.read())
-
-
-
-# Process JSON from IPAM for some reason cvx doesn't appear to be in json
-if mac == '2c:c2:60:5c:a3:5e':
- hostname = "cvx01"
- ip = "192.168.0.44"
- mask = 24
-else:
- host = hostjson['host']
- hostname = host['hostname']
- ip = host['ip']
- mask = host['mask']
-
-# Generate and print config
-print 'hostname %s' % hostname
-print '!'
-
-print 'interface Management 1'
-print ' ip address %s/%s' % ( ip, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-print 'ip domain-name arista.test'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.254'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/beta-datacenter/configlets/Spine1-BGP-Lab b/topologies/beta-datacenter/configlets/Spine1-BGP-Lab
deleted file mode 100644
index a74751814..000000000
--- a/topologies/beta-datacenter/configlets/Spine1-BGP-Lab
+++ /dev/null
@@ -1,43 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description LEAF1
- no switchport
- ip address 172.16.200.1/30
-!
-interface Ethernet3
- description LEAF2
- no switchport
- ip address 172.16.200.5/30
-!
-interface Ethernet4
- description LEAF3
- no switchport
- ip address 172.16.200.9/30
-!
-interface Ethernet5
- description LEAF4
- no switchport
- ip address 172.16.200.13/30
-!
-interface Loopback0
- ip address 172.16.0.1/32
-!
-router bgp 65000
- router-id 172.16.0.1
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.2 remote-as 65001
- neighbor 172.16.200.2 maximum-routes 12000
- neighbor 172.16.200.2 send-community extended
- neighbor 172.16.200.6 remote-as 65001
- neighbor 172.16.200.6 maximum-routes 12000
- neighbor 172.16.200.6 send-community extended
- neighbor 172.16.200.10 remote-as 65002
- neighbor 172.16.200.10 maximum-routes 12000
- neighbor 172.16.200.10 send-community extended
- neighbor 172.16.200.14 remote-as 65002
- neighbor 172.16.200.14 maximum-routes 12000
- neighbor 172.16.200.14 send-community extended
- network 172.16.0.1/32
-!
diff --git a/topologies/beta-datacenter/configlets/Spine1-L2EVPN-Lab b/topologies/beta-datacenter/configlets/Spine1-L2EVPN-Lab
deleted file mode 100644
index 65e78e286..000000000
--- a/topologies/beta-datacenter/configlets/Spine1-L2EVPN-Lab
+++ /dev/null
@@ -1,62 +0,0 @@
-service routing protocols model multi-agent
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.200.1/30
-!
-interface Ethernet3
- no switchport
- ip address 172.16.200.5/30
-!
-interface Ethernet4
- no switchport
- ip address 172.16.200.9/30
-!
-interface Ethernet5
- no switchport
- ip address 172.16.200.13/30
-!
-interface Loopback0
- ip address 172.16.0.1/32
-!
-ip routing
-!
-ip prefix-list rt-conn
- seq 10 permit 172.16.0.1/32
-!
-route-map rt-conn permit 10
- match ip address prefix-list rt-conn
-!
-router bgp 65001
- router-id 172.16.0.1
- maximum-paths 2 ecmp 2
- neighbor VTEP peer group
- neighbor VTEP bfd
- neighbor VTEP send-community
- neighbor VTEP maximum-routes 12000
- neighbor VTEP-EVPN-TRANSIT peer group
- neighbor VTEP-EVPN-TRANSIT next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT update-source Loopback0
- neighbor VTEP-EVPN-TRANSIT ebgp-multihop
- neighbor VTEP-EVPN-TRANSIT send-community extended
- neighbor VTEP-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.3 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.3 remote-as 65101
- neighbor 172.16.0.5 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.5 remote-as 65103
- neighbor 172.16.200.2 peer group VTEP
- neighbor 172.16.200.2 remote-as 65101
- neighbor 172.16.200.10 peer group VTEP
- neighbor 172.16.200.10 remote-as 65103
- redistribute connected route-map rt-conn
- !
- address-family evpn
- bgp next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor VTEP-EVPN-TRANSIT activate
-!
diff --git a/topologies/beta-datacenter/configlets/Spine1-L3EVPN-Lab b/topologies/beta-datacenter/configlets/Spine1-L3EVPN-Lab
deleted file mode 100644
index 65e78e286..000000000
--- a/topologies/beta-datacenter/configlets/Spine1-L3EVPN-Lab
+++ /dev/null
@@ -1,62 +0,0 @@
-service routing protocols model multi-agent
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.200.1/30
-!
-interface Ethernet3
- no switchport
- ip address 172.16.200.5/30
-!
-interface Ethernet4
- no switchport
- ip address 172.16.200.9/30
-!
-interface Ethernet5
- no switchport
- ip address 172.16.200.13/30
-!
-interface Loopback0
- ip address 172.16.0.1/32
-!
-ip routing
-!
-ip prefix-list rt-conn
- seq 10 permit 172.16.0.1/32
-!
-route-map rt-conn permit 10
- match ip address prefix-list rt-conn
-!
-router bgp 65001
- router-id 172.16.0.1
- maximum-paths 2 ecmp 2
- neighbor VTEP peer group
- neighbor VTEP bfd
- neighbor VTEP send-community
- neighbor VTEP maximum-routes 12000
- neighbor VTEP-EVPN-TRANSIT peer group
- neighbor VTEP-EVPN-TRANSIT next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT update-source Loopback0
- neighbor VTEP-EVPN-TRANSIT ebgp-multihop
- neighbor VTEP-EVPN-TRANSIT send-community extended
- neighbor VTEP-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.3 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.3 remote-as 65101
- neighbor 172.16.0.5 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.5 remote-as 65103
- neighbor 172.16.200.2 peer group VTEP
- neighbor 172.16.200.2 remote-as 65101
- neighbor 172.16.200.10 peer group VTEP
- neighbor 172.16.200.10 remote-as 65103
- redistribute connected route-map rt-conn
- !
- address-family evpn
- bgp next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor VTEP-EVPN-TRANSIT activate
-!
diff --git a/topologies/beta-datacenter/configlets/Spine1-MLAG-Lab b/topologies/beta-datacenter/configlets/Spine1-MLAG-Lab
deleted file mode 100644
index 563700a72..000000000
--- a/topologies/beta-datacenter/configlets/Spine1-MLAG-Lab
+++ /dev/null
@@ -1,62 +0,0 @@
-!
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel10
- description MLAG PEER LINK - SPINE2
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel12
- description MLAG - LEAF1 & 2
- switchport mode trunk
- mlag 12
-!
-interface Port-Channel34
- description MLAG - LEAF3 & 4
- switchport mode trunk
- mlag 34
-!
-interface Ethernet1
- description SPINE2
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description LEAF1
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet3
- description LEAF2
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet4
- description LEAF3
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Ethernet5
- description LEAF4
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Vlan12
- ip address 172.16.112.2/24
- ip virtual-router address 172.16.112.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:12
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.11.1/30
-!
-mlag configuration
- domain-id MLAG01
- local-interface Vlan4094
- peer-address 172.16.11.2
- peer-link Port-Channel10
-!
diff --git a/topologies/beta-datacenter/configlets/Spine2-BGP-Lab b/topologies/beta-datacenter/configlets/Spine2-BGP-Lab
deleted file mode 100644
index ca2ec587f..000000000
--- a/topologies/beta-datacenter/configlets/Spine2-BGP-Lab
+++ /dev/null
@@ -1,43 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description LEAF1
- no switchport
- ip address 172.16.200.17/30
-!
-interface Ethernet3
- description LEAF2
- no switchport
- ip address 172.16.200.21/30
-!
-interface Ethernet4
- description LEAF3
- no switchport
- ip address 172.16.200.25/30
-!
-interface Ethernet5
- description LEAF4
- no switchport
- ip address 172.16.200.29/30
-!
-interface Loopback0
- ip address 172.16.0.2/32
-!
-router bgp 65000
- router-id 172.16.0.2
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.18 remote-as 65001
- neighbor 172.16.200.18 maximum-routes 12000
- neighbor 172.16.200.18 send-community extended
- neighbor 172.16.200.22 remote-as 65001
- neighbor 172.16.200.22 maximum-routes 12000
- neighbor 172.16.200.22 send-community extended
- neighbor 172.16.200.26 remote-as 65002
- neighbor 172.16.200.26 maximum-routes 12000
- neighbor 172.16.200.26 send-community extended
- neighbor 172.16.200.30 remote-as 65002
- neighbor 172.16.200.30 maximum-routes 12000
- neighbor 172.16.200.30 send-community extended
- network 172.16.0.2/32
-!
diff --git a/topologies/beta-datacenter/configlets/Spine2-L2EVPN-Lab b/topologies/beta-datacenter/configlets/Spine2-L2EVPN-Lab
deleted file mode 100644
index a701bb03d..000000000
--- a/topologies/beta-datacenter/configlets/Spine2-L2EVPN-Lab
+++ /dev/null
@@ -1,62 +0,0 @@
-service routing protocols model multi-agent
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.200.17/30
-!
-interface Ethernet3
- no switchport
- ip address 172.16.200.21/30
-!
-interface Ethernet4
- no switchport
- ip address 172.16.200.25/30
-!
-interface Ethernet5
- no switchport
- ip address 172.16.200.29/30
-!
-interface Loopback0
- ip address 172.16.0.2/32
-!
-ip routing
-!
-ip prefix-list rt-conn
- seq 10 permit 172.16.0.2/32
-!
-route-map rt-conn permit 10
- match ip address prefix-list rt-conn
-!
-router bgp 65001
- router-id 172.16.0.2
- maximum-paths 2 ecmp 2
- neighbor VTEP peer group
- neighbor VTEP bfd
- neighbor VTEP send-community
- neighbor VTEP maximum-routes 12000
- neighbor VTEP-EVPN-TRANSIT peer group
- neighbor VTEP-EVPN-TRANSIT next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT update-source Loopback0
- neighbor VTEP-EVPN-TRANSIT ebgp-multihop
- neighbor VTEP-EVPN-TRANSIT send-community extended
- neighbor VTEP-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.3 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.3 remote-as 65101
- neighbor 172.16.0.5 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.5 remote-as 65103
- neighbor 172.16.200.18 peer group VTEP
- neighbor 172.16.200.18 remote-as 65101
- neighbor 172.16.200.26 peer group VTEP
- neighbor 172.16.200.26 remote-as 65103
- redistribute connected route-map rt-conn
- !
- address-family evpn
- bgp next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor VTEP-EVPN-TRANSIT activate
-!
diff --git a/topologies/beta-datacenter/configlets/Spine2-L3EVPN-Lab b/topologies/beta-datacenter/configlets/Spine2-L3EVPN-Lab
deleted file mode 100644
index a701bb03d..000000000
--- a/topologies/beta-datacenter/configlets/Spine2-L3EVPN-Lab
+++ /dev/null
@@ -1,62 +0,0 @@
-service routing protocols model multi-agent
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.200.17/30
-!
-interface Ethernet3
- no switchport
- ip address 172.16.200.21/30
-!
-interface Ethernet4
- no switchport
- ip address 172.16.200.25/30
-!
-interface Ethernet5
- no switchport
- ip address 172.16.200.29/30
-!
-interface Loopback0
- ip address 172.16.0.2/32
-!
-ip routing
-!
-ip prefix-list rt-conn
- seq 10 permit 172.16.0.2/32
-!
-route-map rt-conn permit 10
- match ip address prefix-list rt-conn
-!
-router bgp 65001
- router-id 172.16.0.2
- maximum-paths 2 ecmp 2
- neighbor VTEP peer group
- neighbor VTEP bfd
- neighbor VTEP send-community
- neighbor VTEP maximum-routes 12000
- neighbor VTEP-EVPN-TRANSIT peer group
- neighbor VTEP-EVPN-TRANSIT next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT update-source Loopback0
- neighbor VTEP-EVPN-TRANSIT ebgp-multihop
- neighbor VTEP-EVPN-TRANSIT send-community extended
- neighbor VTEP-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.3 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.3 remote-as 65101
- neighbor 172.16.0.5 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.5 remote-as 65103
- neighbor 172.16.200.18 peer group VTEP
- neighbor 172.16.200.18 remote-as 65101
- neighbor 172.16.200.26 peer group VTEP
- neighbor 172.16.200.26 remote-as 65103
- redistribute connected route-map rt-conn
- !
- address-family evpn
- bgp next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor VTEP-EVPN-TRANSIT activate
-!
diff --git a/topologies/beta-datacenter/configlets/Spine2-MLAG-Lab b/topologies/beta-datacenter/configlets/Spine2-MLAG-Lab
deleted file mode 100644
index b05f78c2a..000000000
--- a/topologies/beta-datacenter/configlets/Spine2-MLAG-Lab
+++ /dev/null
@@ -1,62 +0,0 @@
-!
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel10
- description MLAG PEER LINK - SPINE1
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel12
- description MLAG - LEAF1 & 2
- switchport mode trunk
- mlag 12
-!
-interface Port-Channel34
- description MLAG - LEAF3 & 4
- switchport mode trunk
- mlag 34
-!
-interface Ethernet1
- description MLAG PEER LINK - SPINE1
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description LEAF1
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet3
- description LEAF2
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet4
- description LEAF3
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Ethernet5
- description LEAF4
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Vlan12
- ip address 172.16.112.3/24
- ip virtual-router address 172.16.112.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:12
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.11.2/30
-!
-mlag configuration
- domain-id MLAG01
- local-interface Vlan4094
- peer-address 172.16.11.1
- peer-link Port-Channel10
-!
diff --git a/topologies/beta-datacenter/configlets/VLANs b/topologies/beta-datacenter/configlets/VLANs
deleted file mode 100644
index 2697688eb..000000000
--- a/topologies/beta-datacenter/configlets/VLANs
+++ /dev/null
@@ -1,4 +0,0 @@
-vlan 12
-!
-vlan 34
-!
diff --git a/topologies/beta-datacenter/configlets/VMTracer b/topologies/beta-datacenter/configlets/VMTracer
deleted file mode 100644
index 8582a5145..000000000
--- a/topologies/beta-datacenter/configlets/VMTracer
+++ /dev/null
@@ -1,8 +0,0 @@
-vmtracer session ATD
- url https://192.168.0.20/sdk
- username root
- password vmware
-!
-interface Ethernet5
- vmtracer vmware-esx
-!
diff --git a/topologies/beta-datacenter/configlets/cvx01-Controller b/topologies/beta-datacenter/configlets/cvx01-Controller
deleted file mode 100644
index 1a2a7bad9..000000000
--- a/topologies/beta-datacenter/configlets/cvx01-Controller
+++ /dev/null
@@ -1,6 +0,0 @@
-!
-cvx
- no shutdown
- service vxlan
- no shutdown
-!
diff --git a/topologies/beta-datacenter/configlets/media-leaf1-BGP-start b/topologies/beta-datacenter/configlets/media-leaf1-BGP-start
deleted file mode 100644
index cc3e049f4..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf1-BGP-start
+++ /dev/null
@@ -1,19 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- no switchport
- ip address 10.127.12.1/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- no switchport
- ip address 172.16.15.1/24
-interface Ethernet5
- shutdown
-interface Loopback0
- ip address 10.127.255.1/32
-router bgp 1
- router-id 10.127.255.1
- neighbor 10.127.12.2 remote-as 1
- neighbor 10.127.12.2 maximum-routes 12000
- redistribute connected
diff --git a/topologies/beta-datacenter/configlets/media-leaf1-IP-Intro-start b/topologies/beta-datacenter/configlets/media-leaf1-IP-Intro-start
deleted file mode 100644
index 892f55c50..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf1-IP-Intro-start
+++ /dev/null
@@ -1,13 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- no switchport
- ip address 10.127.12.1/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- no switchport
- ip address 172.16.15.1/24
-interface Ethernet5
- shutdown
-ip route 172.16.46.0/24 10.127.12.2
diff --git a/topologies/beta-datacenter/configlets/media-leaf1-Multicast-Lab b/topologies/beta-datacenter/configlets/media-leaf1-Multicast-Lab
deleted file mode 100644
index c06967ddd..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf1-Multicast-Lab
+++ /dev/null
@@ -1,32 +0,0 @@
-ip pim rp-address 172.16.0.1
-vlan 15
-interface Ethernet1
- shutdown
-interface Ethernet2
- mtu 9214
- no switchport
- ip address 172.16.200.2/30
- ip pim sparse-mode
-interface Ethernet3
- shutdown
-interface Ethernet4
- switchport access vlan 15
-interface Ethernet5
- shutdown
-interface Loopback0
- ip address 172.16.0.1/32
-interface Vlan15
- no autostate
- ip address 172.16.15.1/24
- ip pim sparse-mode
-!
-ip routing
-ip multicast-routing
-router ospf 6500
- router-id 172.16.0.1
- passive-interface Loopback0
- passive-interface Vlan11
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.15.0/24 area 0.0.0.0
- network 172.16.200.0/30 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/beta-datacenter/configlets/media-leaf1-OSPF-start b/topologies/beta-datacenter/configlets/media-leaf1-OSPF-start
deleted file mode 100644
index 51ce3462b..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf1-OSPF-start
+++ /dev/null
@@ -1,21 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- no switchport
- ip address 10.127.12.1/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- no switchport
- ip address 172.16.15.1/24
-interface Ethernet5
- shutdown
-interface Loopback0
- ip address 10.127.255.1/32
-router ospf 100
- router-id 10.127.255.1
- passive-interface Ethernet4
- passive-interface Loopback0
- network 10.127.0.0/16 area 0.0.0.0
- network 172.16.15.0/24 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/beta-datacenter/configlets/media-leaf1-VLAN-STP-start b/topologies/beta-datacenter/configlets/media-leaf1-VLAN-STP-start
deleted file mode 100644
index fe7e04153..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf1-VLAN-STP-start
+++ /dev/null
@@ -1,14 +0,0 @@
-vlan 100
- name v100
-interface Ethernet1
- shutdown
-interface Ethernet2
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet3
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet4
- switchport access vlan 100
-interface Ethernet5
- shutdown
diff --git a/topologies/beta-datacenter/configlets/media-leaf2-BGP-start b/topologies/beta-datacenter/configlets/media-leaf2-BGP-start
deleted file mode 100644
index f8d988e07..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf2-BGP-start
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
- no switchport
-interface Ethernet4
- shutdown
- no switchport
-interface Ethernet5
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/beta-datacenter/configlets/media-leaf2-IP-Intro-start b/topologies/beta-datacenter/configlets/media-leaf2-IP-Intro-start
deleted file mode 100644
index f8d988e07..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf2-IP-Intro-start
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
- no switchport
-interface Ethernet4
- shutdown
- no switchport
-interface Ethernet5
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/beta-datacenter/configlets/media-leaf2-Multicast-Lab b/topologies/beta-datacenter/configlets/media-leaf2-Multicast-Lab
deleted file mode 100644
index 1b65b6e70..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf2-Multicast-Lab
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/beta-datacenter/configlets/media-leaf2-OSPF-start b/topologies/beta-datacenter/configlets/media-leaf2-OSPF-start
deleted file mode 100644
index 23702107a..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf2-OSPF-start
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
- no switchport
-interface Ethernet4
- shutdown
- no switchport
-interface Ethernet5
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/beta-datacenter/configlets/media-leaf2-VLAN-STP-start b/topologies/beta-datacenter/configlets/media-leaf2-VLAN-STP-start
deleted file mode 100644
index 1b65b6e70..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf2-VLAN-STP-start
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/beta-datacenter/configlets/media-leaf3-BGP-start b/topologies/beta-datacenter/configlets/media-leaf3-BGP-start
deleted file mode 100644
index 6888476ae..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf3-BGP-start
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/beta-datacenter/configlets/media-leaf3-IP-Intro-start b/topologies/beta-datacenter/configlets/media-leaf3-IP-Intro-start
deleted file mode 100644
index 41feee525..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf3-IP-Intro-start
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/beta-datacenter/configlets/media-leaf3-Multicast-Lab b/topologies/beta-datacenter/configlets/media-leaf3-Multicast-Lab
deleted file mode 100644
index 41feee525..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf3-Multicast-Lab
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/beta-datacenter/configlets/media-leaf3-OSPF-start b/topologies/beta-datacenter/configlets/media-leaf3-OSPF-start
deleted file mode 100644
index 6888476ae..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf3-OSPF-start
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/beta-datacenter/configlets/media-leaf3-VLAN-STP-start b/topologies/beta-datacenter/configlets/media-leaf3-VLAN-STP-start
deleted file mode 100644
index 41feee525..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf3-VLAN-STP-start
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/beta-datacenter/configlets/media-leaf4-BGP-start b/topologies/beta-datacenter/configlets/media-leaf4-BGP-start
deleted file mode 100644
index 9461eadee..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf4-BGP-start
+++ /dev/null
@@ -1,12 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.127.34.4/24
-interface Ethernet4
- no switchport
- ip address 172.16.46.4/24
-interface Ethernet5
- shutdown
diff --git a/topologies/beta-datacenter/configlets/media-leaf4-IP-Intro-start b/topologies/beta-datacenter/configlets/media-leaf4-IP-Intro-start
deleted file mode 100644
index 0d27431ab..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf4-IP-Intro-start
+++ /dev/null
@@ -1,6 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet5
- shutdown
diff --git a/topologies/beta-datacenter/configlets/media-leaf4-Multicast-Lab b/topologies/beta-datacenter/configlets/media-leaf4-Multicast-Lab
deleted file mode 100644
index b749bd899..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf4-Multicast-Lab
+++ /dev/null
@@ -1,10 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
\ No newline at end of file
diff --git a/topologies/beta-datacenter/configlets/media-leaf4-Multicast-Lab-Completed b/topologies/beta-datacenter/configlets/media-leaf4-Multicast-Lab-Completed
deleted file mode 100644
index 701245080..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf4-Multicast-Lab-Completed
+++ /dev/null
@@ -1,31 +0,0 @@
-ip pim rp-address 172.16.0.1
-vlan 46
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- mtu 9214
- no switchport
- ip address 172.16.200.26/30
- ip pim sparse-mode
-interface Ethernet4
- switchport access vlan 46
-interface Ethernet5
- shutdown
-interface Loopback0
- ip address 172.16.0.4/32
-interface Vlan46
- no autostate
- ip address 172.16.46.4/24
- ip pim sparse-mode
-ip routing
-ip multicast-routing
-router ospf 6500
- router-id 172.16.0.4
- passive-interface Loopback0
- passive-interface Vlan46
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.46.0/24 area 0.0.0.0
- network 172.16.200.24/30 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/beta-datacenter/configlets/media-leaf4-OSPF-start b/topologies/beta-datacenter/configlets/media-leaf4-OSPF-start
deleted file mode 100644
index 0d27431ab..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf4-OSPF-start
+++ /dev/null
@@ -1,6 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet5
- shutdown
diff --git a/topologies/beta-datacenter/configlets/media-leaf4-VLAN-STP-start b/topologies/beta-datacenter/configlets/media-leaf4-VLAN-STP-start
deleted file mode 100644
index 1953986f7..000000000
--- a/topologies/beta-datacenter/configlets/media-leaf4-VLAN-STP-start
+++ /dev/null
@@ -1,4 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet5
- shutdown
diff --git a/topologies/beta-datacenter/configlets/media-spine1-BGP-start b/topologies/beta-datacenter/configlets/media-spine1-BGP-start
deleted file mode 100644
index 087797155..000000000
--- a/topologies/beta-datacenter/configlets/media-spine1-BGP-start
+++ /dev/null
@@ -1,21 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.2/24
-interface Ethernet2
- no switchport
- ip address 10.127.12.2/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Loopback0
- ip address 10.127.255.2/32
-router bgp 1
- router-id 10.127.255.2
- neighbor 10.127.12.1 remote-as 1
- neighbor 10.127.12.1 next-hop-self
- neighbor 10.127.12.1 maximum-routes 12000
- neighbor 10.127.23.3 remote-as 2
- neighbor 10.127.23.3 maximum-routes 12000
diff --git a/topologies/beta-datacenter/configlets/media-spine1-IP-Intro-start b/topologies/beta-datacenter/configlets/media-spine1-IP-Intro-start
deleted file mode 100644
index 6e4121705..000000000
--- a/topologies/beta-datacenter/configlets/media-spine1-IP-Intro-start
+++ /dev/null
@@ -1,14 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.2/24
-interface Ethernet2
- no switchport
- ip address 10.127.12.2/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-ip route 172.16.15.0/24 10.127.12.1
-ip route 172.16.46.0/24 10.127.23.3
diff --git a/topologies/beta-datacenter/configlets/media-spine1-Multicast-Lab b/topologies/beta-datacenter/configlets/media-spine1-Multicast-Lab
deleted file mode 100644
index 00841f2de..000000000
--- a/topologies/beta-datacenter/configlets/media-spine1-Multicast-Lab
+++ /dev/null
@@ -1,28 +0,0 @@
-ip pim rp-address 172.16.0.1
-interface Ethernet1
- mtu 9214
- no switchport
- ip address 172.16.200.33/30
- ip pim sparse-mode
-interface Ethernet2
- mtu 9214
- no switchport
- ip address 172.16.200.1/30
- ip pim sparse-mode
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Loopback0
- ip address 172.16.0.2/32
-ip routing
-ip multicast-routing
-router ospf 6500
- router-id 172.16.0.2
- passive-interface Loopback0
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.200.0/30 area 0.0.0.0
- network 172.16.200.32/30 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/beta-datacenter/configlets/media-spine1-OSPF-start b/topologies/beta-datacenter/configlets/media-spine1-OSPF-start
deleted file mode 100644
index 3ce45d6f8..000000000
--- a/topologies/beta-datacenter/configlets/media-spine1-OSPF-start
+++ /dev/null
@@ -1,19 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.2/24
-interface Ethernet2
- no switchport
- ip address 10.127.12.2/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Loopback0
- ip address 10.127.255.2/32
-router ospf 100
- router-id 10.127.255.2
- passive-interface Loopback0
- network 10.127.0.0/16 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/beta-datacenter/configlets/media-spine1-VLAN-STP-start b/topologies/beta-datacenter/configlets/media-spine1-VLAN-STP-start
deleted file mode 100644
index 12fdd0369..000000000
--- a/topologies/beta-datacenter/configlets/media-spine1-VLAN-STP-start
+++ /dev/null
@@ -1,19 +0,0 @@
-spanning-tree mst 0 priority 4096
-vlan 100
- name v100
-interface Ethernet1
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet2
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Vlan100
- ip address 172.16.15.1/24
- ip address 172.16.46.4/24 secondary
diff --git a/topologies/beta-datacenter/configlets/media-spine2-BGP-start b/topologies/beta-datacenter/configlets/media-spine2-BGP-start
deleted file mode 100644
index a83eae5d7..000000000
--- a/topologies/beta-datacenter/configlets/media-spine2-BGP-start
+++ /dev/null
@@ -1,21 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.3/24
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- no switchport
- ip address 10.127.34.3/24
-interface Loopback0
- ip address 10.127.255.3/32
-router bgp 2
- router-id 10.127.255.3
- neighbor 10.127.23.2 remote-as 1
- neighbor 10.127.23.2 maximum-routes 12000
- neighbor 10.127.34.4 remote-as 2
- neighbor 10.127.34.4 next-hop-self
- neighbor 10.127.34.4 maximum-routes 12000
diff --git a/topologies/beta-datacenter/configlets/media-spine2-IP-Intro-start b/topologies/beta-datacenter/configlets/media-spine2-IP-Intro-start
deleted file mode 100644
index fa6804213..000000000
--- a/topologies/beta-datacenter/configlets/media-spine2-IP-Intro-start
+++ /dev/null
@@ -1,14 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.3/24
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- no switchport
- ip address 10.127.34.3/24
-ip route 172.16.15.0/24 10.127.23.2
-ip route 172.16.46.0/24 10.127.34.4
diff --git a/topologies/beta-datacenter/configlets/media-spine2-Multicast-Lab b/topologies/beta-datacenter/configlets/media-spine2-Multicast-Lab
deleted file mode 100644
index ed1d0bf40..000000000
--- a/topologies/beta-datacenter/configlets/media-spine2-Multicast-Lab
+++ /dev/null
@@ -1,28 +0,0 @@
-ip pim rp-address 172.16.0.1
-interface Ethernet1
- mtu 9214
- no switchport
- ip address 172.16.200.34/30
- ip pim sparse-mode
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- mtu 9214
- no switchport
- ip address 172.16.200.25/30
- ip pim sparse-mode
-interface Loopback0
- ip address 172.16.0.3/32
-ip routing
-ip multicast-routing
-router ospf 6500
- router-id 172.16.0.3
- passive-interface Loopback0
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.200.24/30 area 0.0.0.0
- network 172.16.200.32/30 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/beta-datacenter/configlets/media-spine2-OSPF-start b/topologies/beta-datacenter/configlets/media-spine2-OSPF-start
deleted file mode 100644
index 7a986569b..000000000
--- a/topologies/beta-datacenter/configlets/media-spine2-OSPF-start
+++ /dev/null
@@ -1,19 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.3/24
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- no switchport
- ip address 10.127.34.3/24
-interface Loopback0
- ip address 10.127.255.3/32
-router ospf 100
- router-id 10.127.255.3
- passive-interface Loopback0
- network 10.127.0.0/16 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/beta-datacenter/configlets/media-spine2-VLAN-STP-start b/topologies/beta-datacenter/configlets/media-spine2-VLAN-STP-start
deleted file mode 100644
index 9f586a7ef..000000000
--- a/topologies/beta-datacenter/configlets/media-spine2-VLAN-STP-start
+++ /dev/null
@@ -1,16 +0,0 @@
-spanning-tree mst 0 priority 8192
-vlan 100
- name v100
-interface Ethernet1
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet2
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- switchport trunk allowed vlan 100
- switchport mode trunk
diff --git a/topologies/beta-datacenter/configlets/tshoot-default b/topologies/beta-datacenter/configlets/tshoot-default
deleted file mode 100644
index 3548f05f6..000000000
--- a/topologies/beta-datacenter/configlets/tshoot-default
+++ /dev/null
@@ -1,27 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-interface Ethernet7
- shutdown
-interface Ethernet8
- shutdown
-interface Ethernet9
- shutdown
-interface Ethernet10
-!
-banner motd
-******************************
-*** Note this switch is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/beta-datacenter/configlets/tshoot-host1-Tshoot-intro b/topologies/beta-datacenter/configlets/tshoot-host1-Tshoot-intro
deleted file mode 100755
index d1078d4fa..000000000
--- a/topologies/beta-datacenter/configlets/tshoot-host1-Tshoot-intro
+++ /dev/null
@@ -1,18 +0,0 @@
-vlan 22
-!
-interface Ethernet1
-!
-interface Ethernet2
-!
-interface Ethernet3
- description LEAF1
- switchport trunk allowed vlan 12
- switchport mode trunk
-!
-interface Ethernet4
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Vlan22
- ip address 172.16.112.201/24
diff --git a/topologies/beta-datacenter/configlets/tshoot-host1-Tshoot-sp b/topologies/beta-datacenter/configlets/tshoot-host1-Tshoot-sp
deleted file mode 100644
index 7b326865d..000000000
--- a/topologies/beta-datacenter/configlets/tshoot-host1-Tshoot-sp
+++ /dev/null
@@ -1,27 +0,0 @@
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-interface Ethernet1
- no switchport
- ip address 10.127.100.2/24
-!
-interface Ethernet2
-shut
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
-shut
-!
-interface Ethernet5
-shut
-!
-!
-ip routing
-!
-ip route 10.127.0.0/16 10.127.100.1
-!
-end
diff --git a/topologies/beta-datacenter/configlets/tshoot-host2-Tshoot-sp b/topologies/beta-datacenter/configlets/tshoot-host2-Tshoot-sp
deleted file mode 100644
index e43c41145..000000000
--- a/topologies/beta-datacenter/configlets/tshoot-host2-Tshoot-sp
+++ /dev/null
@@ -1,25 +0,0 @@
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
- no switchport
- ip address 10.127.200.2/24
-!
-!
-interface Ethernet3
-!
-interface Ethernet4
-!
-interface Ethernet5
-!
-!
-ip routing
-!
-ip route 10.127.0.0/16 10.127.200.1
-!
-end
diff --git a/topologies/beta-datacenter/configlets/tshoot-leaf1-Tshoot-intro b/topologies/beta-datacenter/configlets/tshoot-leaf1-Tshoot-intro
deleted file mode 100755
index 75a2c42e3..000000000
--- a/topologies/beta-datacenter/configlets/tshoot-leaf1-Tshoot-intro
+++ /dev/null
@@ -1,53 +0,0 @@
-vlan 12,34
-!
-interface Ethernet1
- description LEAF2
- switchport mode trunk
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.2/30
- ip ospf network point-to-point
-!
-interface Ethernet3
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet4
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet5
- description HOST1
- switchport trunk allowed vlan 12
- switchport mode trunk
-!
-interface Loopback0
- ip address 172.16.0.3/32
-!
-interface Vlan12
- ip address 172.16.112.1/24
- ip virtual-router address 172.16.115.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:12
-!
-!ip route 0.0.0.0/0 192.168.0.254
-!
-router bgp 65001
- router-id 172.16.0.3
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.1 remote-as 65000
- neighbor 172.16.200.1 send-community extended
- neighbor 172.16.200.1 maximum-routes 12000
- network 172.16.0.3/32
- network 172.16.112.0/25
-!
-router ospf 1
- router-id 172.16.0.3
- passive-interface default
- no passive-interface Ethernet2
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/beta-datacenter/configlets/tshoot-leaf1-Tshoot-sp b/topologies/beta-datacenter/configlets/tshoot-leaf1-Tshoot-sp
deleted file mode 100644
index 0f6a155b6..000000000
--- a/topologies/beta-datacenter/configlets/tshoot-leaf1-Tshoot-sp
+++ /dev/null
@@ -1,79 +0,0 @@
-!
-service routing protocols model multi-agent
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-!
-vlan 100
- name v100
-!
-vrf instance host
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
- description << p2p Core-1 >>
- no switchport
- ip address 10.127.12.1/24
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
- description << p2p host1 >>
- switchport access vlan 100
-!
-interface Ethernet5
-shut
-!
-!
-interface Loopback0
- description BGP router-Id
- ip address 10.127.255.1/32
-!
-interface Management1
-!
-interface Vlan100
- vrf host
- ip address 10.127.100.1/24
-!
-ip routing
-ip routing vrf host
-!
-!
-mpls ip
-!
-mpls ldp
- router-id 10.127.255.1
- transport-address interface Loopback0
- password 7 070E33455D1D18544541
- neighbor 10.127.255.2 targeted
- no shutdown
-!
-router bgp 64500
- router-id 10.127.255.1
- neighbor 10.127.255.3 remote-as 64500
- neighbor 10.127.255.3 update-source Loopback0
- neighbor 10.127.255.3 send-community extended
- neighbor 10.127.255.3 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- !
- vrf host
- rd 10.127.255.1:1
- route-target import evpn 65400:1
- route-target export evpn 65400:1
- redistribute connected
-!
-router ospf 100
- router-id 10.127.255.1
- passive-interface Loopback0
- network 10.127.12.0/24 area 0.0.0.0
- network 10.127.255.0/24 area 0.0.0.0
- max-lsa 12000
-!
-end
diff --git a/topologies/beta-datacenter/configlets/tshoot-leaf2-Tshoot-intro b/topologies/beta-datacenter/configlets/tshoot-leaf2-Tshoot-intro
deleted file mode 100755
index 685c53f4b..000000000
--- a/topologies/beta-datacenter/configlets/tshoot-leaf2-Tshoot-intro
+++ /dev/null
@@ -1,39 +0,0 @@
-spanning-tree mode mstp
-spanning-tree mst 0 priority 4096
-!
-vlan 12,34
-!
-interface Ethernet1
- description LEAF1
- switchport mode trunk
-!
-interface Ethernet2
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet3
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet4
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet5
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Loopback0
- ip address 172.16.0.4/32
-!
-interface Vlan12
- ip address 172.16.115.3/24
- ip virtual-router address 172.16.115.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:12
-!
-!ip route 0.0.0.0/0 192.168.0.254
diff --git a/topologies/beta-datacenter/configlets/tshoot-leaf2-Tshoot-sp b/topologies/beta-datacenter/configlets/tshoot-leaf2-Tshoot-sp
deleted file mode 100644
index 1345aaa1a..000000000
--- a/topologies/beta-datacenter/configlets/tshoot-leaf2-Tshoot-sp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-!
-!
-no aaa root
-!
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
-shut
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
-shut
-!
-interface Ethernet5
-shut
-!
-!
-end
diff --git a/topologies/beta-datacenter/configlets/tshoot-leaf3-Tshoot-sp b/topologies/beta-datacenter/configlets/tshoot-leaf3-Tshoot-sp
deleted file mode 100644
index 1345aaa1a..000000000
--- a/topologies/beta-datacenter/configlets/tshoot-leaf3-Tshoot-sp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-!
-!
-no aaa root
-!
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
-shut
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
-shut
-!
-interface Ethernet5
-shut
-!
-!
-end
diff --git a/topologies/beta-datacenter/configlets/tshoot-leaf4-Tshoot-sp b/topologies/beta-datacenter/configlets/tshoot-leaf4-Tshoot-sp
deleted file mode 100644
index 965f26a3a..000000000
--- a/topologies/beta-datacenter/configlets/tshoot-leaf4-Tshoot-sp
+++ /dev/null
@@ -1,84 +0,0 @@
-!
-service routing protocols model multi-agent
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-vlan 200
- name v200
-!
-vrf instance host
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
- description << p2p Core-1 >>
- no switchport
- ip address 10.127.24.4/24
-!
-interface Ethernet3
- description << p2p Core-2 >>
- no switchport
- ip address 10.127.34.4/24
-!
-interface Ethernet4
- description << p2p host2 >>
- switchport access vlan 200
-!
-interface Ethernet5
-shut
-!
-interface Loopback0
- description BGP router-Id
- ip address 10.127.255.4/32
-!
-!
-interface Vlan200
- vrf host
- ip address 10.127.200.1/24
-!
-ip routing
-ip routing vrf host
-!
-!
-mpls ip
-!
-mpls ldp
- router-id 10.127.255.4
- transport-address interface Loopback0
- password 7 070E33455D1D18544541
- neighbor 10.127.255.3 targeted
- neighbor 10.127.255.2 targeted
- no shutdown
-!
-router bgp 64500
- router-id 10.127.255.4
- neighbor 10.127.255.1 remote-as 64500
- neighbor 10.127.255.1 update-source Loopback0
- neighbor 10.127.255.1 send-community extended
- neighbor 10.127.255.1 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 10.127.255.1 activate
- !
- address-family ipv4
- no neighbor 10.127.255.1 activate
- !
- vrf host
- rd 10.127.255.4:1
- route-target import evpn 64500:1
- route-target export evpn 64500:1
- redistribute connected
-!
-router ospf 100
- router-id 10.127.255.4
- passive-interface Loopback0
- network 10.127.34.0/24 area 0.0.0.0
- network 10.127.255.0/24 area 0.0.0.0
- max-lsa 12000
-!
-!
-end
diff --git a/topologies/beta-datacenter/configlets/tshoot-spine1-Tshoot-intro b/topologies/beta-datacenter/configlets/tshoot-spine1-Tshoot-intro
deleted file mode 100755
index 411dc01c3..000000000
--- a/topologies/beta-datacenter/configlets/tshoot-spine1-Tshoot-intro
+++ /dev/null
@@ -1,48 +0,0 @@
-vlan 12,34
-!
-interface Ethernet1
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet2
- description LEAF1
- mtu 9000
- no switchport
- ip address 172.16.200.1/30
- ip ospf network point-to-point
-!
-interface Ethernet3
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet4
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet5
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Loopback0
- ip address 172.16.0.1/32
-!
-! ip route 0.0.0.0/0 192.168.0.254
-!
-router bgp 65000
- router-id 172.16.0.1
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.2 remote-as 65001
- neighbor 172.16.200.2 send-community extended
- neighbor 172.16.200.2 maximum-routes 12000
- network 172.16.0.1/32
-!
-router ospf 1
- router-id 172.16.0.1
- passive-interface default
- no passive-interface Ethernet2
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/beta-datacenter/configlets/tshoot-spine1-Tshoot-sp b/topologies/beta-datacenter/configlets/tshoot-spine1-Tshoot-sp
deleted file mode 100644
index c75573116..000000000
--- a/topologies/beta-datacenter/configlets/tshoot-spine1-Tshoot-sp
+++ /dev/null
@@ -1,59 +0,0 @@
-!
-service routing protocols model multi-agent
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-!
-interface Ethernet1
- description << p2p Core-2 >>
- no switchport
- ip address 10.127.23.2/24
-!
-interface Ethernet2
- description << p2p PE-1 >>
- no switchport
- ip address 10.127.12.2/24
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
-shut
-!
-interface Ethernet5
- description << p2p PE-2 >>
- no switchport
- ip address 10.127.24.2/24
-!
-!
-interface Loopback0
- description BGP router-Id
- ip address 10.127.255.2/32
-!
-!
-ip routing
-!
-!
-mpls ip
-!
-mpls ldp
- router-id 10.127.255.2
- transport-address interface Loopback0
- password 7 070E33455D1D18544541
- neighbor 10.127.255.4 targeted
- neighbor 10.127.255.1 targeted
- no shutdown
-!
-router ospf 100
- router-id 10.127.255.2
- passive-interface Loopback0
- network 10.127.12.0/24 area 0.0.0.0
- network 10.127.23.0/24 area 0.0.0.0
- network 10.127.24.0/24 area 0.0.0.0
- network 10.127.255.0/24 area 0.0.0.0
- max-lsa 12000
-!
-!
-end
diff --git a/topologies/beta-datacenter/configlets/tshoot-spine2-Tshoot-sp b/topologies/beta-datacenter/configlets/tshoot-spine2-Tshoot-sp
deleted file mode 100644
index 6a5c98a5e..000000000
--- a/topologies/beta-datacenter/configlets/tshoot-spine2-Tshoot-sp
+++ /dev/null
@@ -1,50 +0,0 @@
-!
-service routing protocols model multi-agent
-!
-spanning-tree mode mstp
-!
-interface Ethernet1
- description << p2p Core-1 >>
- no switchport
- ip address 10.127.23.3/24
-!
-interface Ethernet2
-shut
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
-shut
-!
-interface Ethernet5
- description << p2p PE-2 >>
- no switchport
- ip address 10.127.34.3/24
-!
-interface Loopback0
- description BGP router-Id
- ip address 10.127.255.3/32
-!
-ip routing
-!
-!
-mpls ip
-!
-mpls ldp
- router-id 10.127.255.3
- transport-address interface Loopback0
- password 7 070E33455D1D18544541
- neighbor 10.127.255.4 targeted
- neighbor 10.127.255.2 targeted
- no shutdown
-!
-router ospf 100
- router-id 10.127.255.3
- passive-interface Loopback0
- network 10.127.23.0/24 area 0.0.0.0
- network 10.127.34.0/24 area 0.0.0.0
- network 10.127.255.0/24 area 0.0.0.0
- max-lsa 12000
-!
-end
diff --git a/topologies/beta-datacenter/files/.screenrc b/topologies/beta-datacenter/files/.screenrc
deleted file mode 100644
index 595ee949f..000000000
--- a/topologies/beta-datacenter/files/.screenrc
+++ /dev/null
@@ -1,20 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.10
-screen 2 ssh 192.168.0.11
-screen 3 ssh 192.168.0.14
-screen 4 ssh 192.168.0.15
-screen 5 ssh 192.168.0.16
-screen 6 ssh 192.168.0.17
-screen 7 ssh 192.168.0.31
-screen 8 ssh 192.168.0.32
-screen 9 ssh 192.168.0.44
-screen 10 /usr/local/bin/login.py
\ No newline at end of file
diff --git a/topologies/beta-datacenter/files/Broadcaster/mcast-receiver.sh b/topologies/beta-datacenter/files/Broadcaster/mcast-receiver.sh
deleted file mode 100755
index 926fa6200..000000000
--- a/topologies/beta-datacenter/files/Broadcaster/mcast-receiver.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-echo "Starting Receivers"
-sudo ip route add 239.103.1.1/32 dev et2
-sudo ip route add 239.103.1.2/32 dev et2
-sudo ip route add 239.103.1.3/32 dev et2
-iperf -s -u -B 239.103.1.1 -i 1 &
-iperf -s -u -B 239.103.1.2 -i 1 &
diff --git a/topologies/beta-datacenter/files/Broadcaster/mcast-source.sh b/topologies/beta-datacenter/files/Broadcaster/mcast-source.sh
deleted file mode 100755
index 20634a056..000000000
--- a/topologies/beta-datacenter/files/Broadcaster/mcast-source.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-#echo Starting source 239.103.1.1-3 for 1800 seconds
-echo "Starting Sources"
-#adding routes in kernel to prefer et1 instead of ATD underlay interface
-sudo ip route add 239.103.1.1/32 dev et1
-sudo ip route add 239.103.1.2/32 dev et1
-sudo ip route add 239.103.1.3/32 dev et1
-
-for i in {1..3} ; do
- IP='239.103.1'
- IP=$IP.$i
- iperf -c $IP -u -b 0.125m -T 10 -t 1800 -i 1 -&
-done
diff --git a/topologies/beta-datacenter/files/Broadcaster/pushHostDefaultConfig.sh b/topologies/beta-datacenter/files/Broadcaster/pushHostDefaultConfig.sh
deleted file mode 100755
index abf8cf8d0..000000000
--- a/topologies/beta-datacenter/files/Broadcaster/pushHostDefaultConfig.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-rm -f ~/enable-media
-
-# echo "Prepping host vms and enabling eAPI"
-# ssh -t 192.168.0.31 "
-# enable
-# configure
-# aaa authorization exec default local"
-
-# ssh -t 192.168.0.32 "
-# enable
-# configure
-# aaa authorization exec default local"
-
-# echo "Loading Configs"
-# #config replace
-# ssh -t 192.168.0.31 "configure replace flash:default-host1.cfg"
-# ssh -t 192.168.0.32 "configure replace flash:default-host2.cfg"
diff --git a/topologies/beta-datacenter/files/Broadcaster/pushHostMediaConfig.sh b/topologies/beta-datacenter/files/Broadcaster/pushHostMediaConfig.sh
deleted file mode 100755
index f66894998..000000000
--- a/topologies/beta-datacenter/files/Broadcaster/pushHostMediaConfig.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-
-touch ~/enable-media
-
-# echo "Prepping host vms and enabling eAPI"
-# ssh -t 192.168.0.31 "
-# enable
-# configure
-# aaa authorization exec default local"
-
-# ssh -t 192.168.0.32 "
-# enable
-# configure
-# aaa authorization exec default local"
-
-echo "Updating File Permissions"
-#sudo chown -R arista:arista /home/arista/Broadcaster/
-# chmod +x /home/arista/Broadcaster/configletPushToCVP.sh
-chmod +x /home/arista/Broadcaster/mcast-source.sh
-chmod +x /home/arista/Broadcaster/mcast-receiver.sh
-
-echo "Copying Configs"
-#copy files over
-# scp /home/arista/Broadcaster/media-host1.cfg 192.168.0.31:/mnt/flash
-# scp /home/arista/Broadcaster/media-host2.cfg 192.168.0.32:/mnt/flash
-# scp /home/arista/Broadcaster/default-host1.cfg 192.168.0.31:/mnt/flash
-# scp /home/arista/Broadcaster/default-host2.cfg 192.168.0.32:/mnt/flash
-scp /home/arista/Broadcaster/mcast-source.sh 192.168.0.31:/mnt/flash
-scp /home/arista/Broadcaster/mcast-receiver.sh 192.168.0.32:/mnt/flash
-
-# echo "Loading Configs"
-# #config replace
-# ssh -t 192.168.0.31 "configure replace flash:media-host1.cfg"
-# ssh -t 192.168.0.32 "configure replace flash:media-host2.cfg"
-
diff --git a/topologies/beta-datacenter/files/cvp/cvp_info.yaml b/topologies/beta-datacenter/files/cvp/cvp_info.yaml
deleted file mode 100644
index 0dd849e5b..000000000
--- a/topologies/beta-datacenter/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,53 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- Leaf:
- - leaf1
- - leaf2
- - leaf3
- - leaf4
- Spine:
- - spine1
- - spine2
- CVX:
- - cvx01
- Hosts:
- - host1
- - host2
- snapshots:
- - name: Validate_Routing
- commands:
- - show ip route summary
- - show ip bgp summary
- - name: EOS_Upgrade
- commands:
- - show version
- - show extensions
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- - VLANs
- netelements:
- spine1:
- - BaseIPv4_Spine1
- spine2:
- - BaseIPv4_Spine2
- leaf1:
- - BaseIPv4_Leaf1
- leaf2:
- - BaseIPv4_Leaf2
- leaf3:
- - BaseIPv4_Leaf3
- leaf4:
- - BaseIPv4_Leaf4
- host1:
- - BaseIPv4_Host1
- - Host1-ATD
- host2:
- - BaseIPv4_Host2
- - Host2-ATD
- cvx01:
- - BaseIPv4_Cvx01
- - cvx01-Controller
-
\ No newline at end of file
diff --git a/topologies/beta-datacenter/files/menus/Datacenter.yaml b/topologies/beta-datacenter/files/menus/Datacenter.yaml
deleted file mode 100644
index 1893a3806..000000000
--- a/topologies/beta-datacenter/files/menus/Datacenter.yaml
+++ /dev/null
@@ -1,150 +0,0 @@
----
-lab_list:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py -t Datacenter -l reset && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- mlag:
- - command: "/usr/local/bin/ConfigureTopology.py -t Datacenter -l mlag"
- description: "MLAG Lab (mlag)"
- bgp:
- - command: "/usr/local/bin/ConfigureTopology.py -t Datacenter -l bgp"
- description: "BGP Lab (bgp)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t Datacenter -l vxlan"
- description: "VXLAN Lab (vxlan) excludes leaf3 instead of leaf4"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t Datacenter -l l2evpn"
- description: "EVPN Type 2 Lab (l2evpn) excludes leaf3 instead of leaf4"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t Datacenter -l l3evpn"
- description: "EVPN Type 5 Lab (l3evpn) excludes leaf3 instead of leaf4"
- cvp:
- - command: "/usr/local/bin/ConfigureTopology.py -t Datacenter -l cvp"
- description: "CVP lab (cvp)"
-labconfiglets:
- mlag:
- spine1:
- - "Spine1-MLAG-Lab"
- - "VLANs"
- spine2:
- - "Spine2-MLAG-Lab"
- - "VLANs"
- leaf1:
- - "Leaf1-MLAG-Lab"
- - "VLANs"
- leaf2:
- - "Leaf2-MLAG-Lab"
- - "VLANs"
- leaf3:
- - "Leaf3-MLAG-Lab"
- - "VLANs"
- leaf4:
- - "VLANs"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- bgp:
- spine1:
- - "Spine1-BGP-Lab"
- spine2:
- - "Spine2-BGP-Lab"
- leaf1:
- - "Leaf1-BGP-Lab"
- leaf2:
- - "Leaf2-BGP-Lab"
- leaf3:
- - "Leaf3-BGP-Lab"
- leaf4:
- - "Leaf4-BGP-Lab"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- vxlan:
- spine1:
- - "Spine1-BGP-Lab"
- spine2:
- - "Spine2-BGP-Lab"
- leaf1:
- - "Leaf1-VXLAN-Lab"
- - "VLANs"
- leaf2:
- - "Leaf2-VXLAN-Lab"
- - "VLANs"
- leaf3:
- - "Leaf3-VXLAN-Lab"
- - "VLANs"
- leaf4:
- - "Leaf4-VXLAN-Lab"
- - "VLANs"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- l2evpn:
- spine1:
- - "Spine1-L2EVPN-Lab"
- spine2:
- - "Spine2-L2EVPN-Lab"
- leaf1:
- - "Leaf1-L2EVPN-Lab"
- - "VLANs"
- leaf2:
- - "Leaf2-L2EVPN-Lab"
- - "VLANs"
- leaf3:
- - "VLANs"
- leaf4:
- - "Leaf4-L2EVPN-Lab"
- - "VLANs"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- l3evpn:
- spine1:
- - "Spine1-L3EVPN-Lab"
- spine2:
- - "Spine2-L3EVPN-Lab"
- leaf1:
- - "Leaf1-L3EVPN-Lab"
- leaf2:
- - "Leaf2-L3EVPN-Lab"
- leaf3:
- - "VLANs"
- leaf4:
- - "Leaf4-L3EVPN-Lab"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- cvp:
- spine1:
- - "Spine1-BGP-Lab"
- spine2:
- - "Spine2-BGP-Lab"
- leaf1:
- - "Leaf1-BGP-Lab"
- leaf2:
- - "Leaf2-BGP-Lab"
- leaf3:
- - "Leaf3-BGP-Lab"
- leaf4:
- - "Leaf4-BGP-Lab-Full"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
\ No newline at end of file
diff --git a/topologies/beta-datacenter/files/menus/Media.yaml b/topologies/beta-datacenter/files/menus/Media.yaml
deleted file mode 100644
index 34805e915..000000000
--- a/topologies/beta-datacenter/files/menus/Media.yaml
+++ /dev/null
@@ -1,126 +0,0 @@
----
-lab_list:
- media-setup:
- - command: "bash /home/arista/Broadcaster/pushHostMediaConfig.sh"
- description: "Setup Broadcast Engineer Training (media-setup)"
- media-intro:
- - command: "/usr/local/bin/ConfigureTopology.py -t Media -l media-intro"
- description: "Media - IP Intro (media-intro)"
- media-vlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t Media -l media-vlan"
- description: "Media - VLAN STP (media-vlan)"
- media-ospf:
- - command: "/usr/local/bin/ConfigureTopology.py -t Media -l media-ospf"
- description: "Media - OSPF (media-ospf)"
- media-bgp:
- - command: "/usr/local/bin/ConfigureTopology.py -t Media -l media-bgp"
- description: "Media - BGP (media-bgp)"
- media-mcast:
- - command: "/usr/local/bin/ConfigureTopology.py -t Media -l media-mcast"
- description: "Media - Multicast (media-mcast)"
- media-reset:
- - command: "/usr/local/bin/ConfigureTopology.py -t Media -l media-reset"
- description: "Media - Reset All Devices to Broadcaster Base (media-reset)"
-labconfiglets:
- media-reset:
- spine1:
- - "media-spine1-IP-Intro-start"
- spine2:
- - "media-spine2-IP-Intro-start"
- leaf1:
- - "media-leaf1-IP-Intro-start"
- leaf2:
- - "media-leaf2-IP-Intro-start"
- leaf3:
- - "media-leaf3-IP-Intro-start"
- leaf4:
- - "media-leaf4-IP-Intro-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-intro:
- spine1:
- - "media-spine1-IP-Intro-start"
- spine2:
- - "media-spine2-IP-Intro-start"
- leaf1:
- - "media-leaf1-IP-Intro-start"
- leaf2:
- - "media-leaf2-IP-Intro-start"
- leaf3:
- - "media-leaf3-IP-Intro-start"
- leaf4:
- - "media-leaf4-IP-Intro-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-vlan:
- spine1:
- - "media-spine1-VLAN-STP-start"
- spine2:
- - "media-spine2-VLAN-STP-start"
- leaf1:
- - "media-leaf1-VLAN-STP-start"
- leaf2:
- - "media-leaf2-VLAN-STP-start"
- leaf3:
- - "media-leaf3-VLAN-STP-start"
- leaf4:
- - "media-leaf4-VLAN-STP-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-ospf:
- spine1:
- - "media-spine1-OSPF-start"
- spine2:
- - "media-spine2-OSPF-start"
- leaf1:
- - "media-leaf1-OSPF-start"
- leaf2:
- - "media-leaf2-OSPF-start"
- leaf3:
- - "media-leaf3-OSPF-start"
- leaf4:
- - "media-leaf4-OSPF-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-bgp:
- spine1:
- - "media-spine1-BGP-start"
- spine2:
- - "media-spine2-BGP-start"
- leaf1:
- - "media-leaf1-BGP-start"
- leaf2:
- - "media-leaf2-BGP-start"
- leaf3:
- - "media-leaf3-BGP-start"
- leaf4:
- - "media-leaf4-BGP-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-mcast:
- spine1:
- - "media-spine1-Multicast-lab"
- spine2:
- - "media-spine2-Multicast-lab"
- leaf1:
- - "media-leaf1-Multicast-lab"
- leaf2:
- - "media-leaf2-Multicast-lab"
- leaf3:
- - "media-leaf3-Multicast-lab"
- leaf4:
- - "media-leaf4-Multicast-lab"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
diff --git a/topologies/beta-datacenter/files/menus/Troubleshooting.yaml b/topologies/beta-datacenter/files/menus/Troubleshooting.yaml
deleted file mode 100644
index 4d12d7b65..000000000
--- a/topologies/beta-datacenter/files/menus/Troubleshooting.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
----
-lab_list:
- tshoot-intro:
- - command: "/usr/local/bin/ConfigureTopology.py -t Troubleshooting -l tshoot-intro"
- description: "Troubleshooting Lab 1 (tshoot-intro)"
-# tshoot-sp:
-# - command: "/usr/local/bin/ConfigureTopology.py -t tshoot-sp"
-# description: "Troubleshooting Lab 2 (tshoot-sp)"
-# tshoot-automation:
-# - command: "/usr/local/bin/ConfigureTopology.py -t tshoot-automation"
-# description: "Troubleshooting Lab 3 (tshoot-automation)"
-labconfiglets:
- tshoot-intro:
- spine1:
- - "tshoot-spine1-Tshoot-intro"
- spine2:
- - "tshoot-default"
- leaf1:
- - "tshoot-leaf1-Tshoot-intro"
- leaf2:
- - "tshoot-leaf2-Tshoot-intro"
- leaf3:
- - "tshoot-default"
- leaf4:
- - "tshoot-default"
- host1:
- - "tshoot-host1-Tshoot-intro"
- host2:
- - "tshoot-default"
- tshoot-sp:
- spine1:
- - "tshoot-spine1-Tshoot-sp"
- spine2:
- - "tshoot-spine2-Tshoot-sp"
- leaf1:
- - "tshoot-leaf1-Tshoot-sp"
- leaf2:
- - "tshoot-default"
- leaf3:
- - "tshoot-default"
- leaf4:
- - "tshoot-leaf4-Tshoot-sp"
- host1:
- - "tshoot-host1-Tshoot-sp"
- host2:
- - "tshoot-host2-Tshoot-sp"
-# tshoot-automation:
-# spine1:
-# - "tshoot-spine1-Tshoot-automation"
-# spine2:
-# - "tshoot-spine2-Tshoot-automation"
-# leaf1:
-# - "tshoot-leaf1-Tshoot-automation"
-# leaf2:
-# - "tshoot-leaf2-Tshoot-automation"
-# leaf3:
-# - "tshoot-leaf3-Tshoot-automation"
-# leaf4:
-# - "tshoot-leaf4-Tshoot-automation"
\ No newline at end of file
diff --git a/topologies/beta-datacenter/files/menus/default.yaml b/topologies/beta-datacenter/files/menus/default.yaml
deleted file mode 100644
index b831de997..000000000
--- a/topologies/beta-datacenter/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: Datacenter.yaml
\ No newline at end of file
diff --git a/topologies/beta-datacenter/labguides/.gitignore b/topologies/beta-datacenter/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/beta-datacenter/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/beta-datacenter/labguides/Makefile b/topologies/beta-datacenter/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/beta-datacenter/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/beta-datacenter/labguides/readme.md b/topologies/beta-datacenter/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/beta-datacenter/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/beta-datacenter/labguides/source/_static/arista_logo.png b/topologies/beta-datacenter/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/beta-datacenter/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/_static/arista_logo_160by26.png b/topologies/beta-datacenter/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/beta-datacenter/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/_static/arista_logo_320by52.png b/topologies/beta-datacenter/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/beta-datacenter/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/_static/cloudvision-icon.png b/topologies/beta-datacenter/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/beta-datacenter/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/_static/logo.jpg b/topologies/beta-datacenter/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/beta-datacenter/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/_static/my-styles.css b/topologies/beta-datacenter/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/beta-datacenter/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/beta-datacenter/labguides/source/ansible_adhoc_and_simple_playbooks.rst b/topologies/beta-datacenter/labguides/source/ansible_adhoc_and_simple_playbooks.rst
deleted file mode 100644
index c8741f899..000000000
--- a/topologies/beta-datacenter/labguides/source/ansible_adhoc_and_simple_playbooks.rst
+++ /dev/null
@@ -1,205 +0,0 @@
-Ad Hoc and Simple Playbooks
-===========================
-
-For the final lab, we will be playing with Ansible - both ad-hoc
-(one-off) and playbooks.
-
-.. note:: While Ansible is one of the easiest automation platforms out
- there, it is impossible to fully teach how it works in a lab or two
- in the course of a day. If you are interested in experimenting in
- this lab more, please let your SE know and they can provide you
- additional access after the event is completed.
-
- For some good reading, we recommend browsing the \ `Ansible
- website `__\.
-
-Ad-Hoc Commands
----------------
-
-The first part of the lab will show you how to issue ad-hoc commands to
-your lab switch. An ad-hoc command is essentially a one-off command;
-something you might issue once, but not ever need to repeat again.
-
-While this is handy, the real power of Ansible comes from using
-orchestrated playbooks.
-
-Before you run your first Ansible ad-hoc command, we’ll need to create a
-hosts file. Open the Atom editor, and create a new file and save it to
-your desktop with the filename ``hosts``.
-
-.. code-block:: ini
-
- [veos]
- 192.168.0.14
-
-This is an Ansible hosts file - you might recognize it as INI formatted!
-The top bracketed entry is a group, and the entry below it is a host.
-Save the file to your desktop.
-
-Now, let’s run an ad-hoc command. Open up your handy terminal window,
-and enter:
-
-.. code-block:: bash
-
- ansible veos -i ~/Desktop/hosts -m raw -a "show version" -u arista -k
-
-
-Enter the password **arista** when prompted.
-
-This probably looks complicated at first, but let’s step through it:
-
-.. cssclass:: table-hover
-
-+-----------------------------------+-----------------------------------+
-| **Command** | **Description** |
-+-----------------------------------+-----------------------------------+
-| ``ansible`` | The command, duh! |
-+-----------------------------------+-----------------------------------+
-| ``veos`` | The group of hosts to run |
-| | against. Notice the [veos] from |
-| | your hosts file. If there were |
-| | more than one entry here, it |
-| | would run against more than one |
-| | host (unless you specify in |
-| | playbook to do otherwise). |
-+-----------------------------------+-----------------------------------+
-| ``-i hosts`` | Reads from the hosts file you |
-| | created. There are locations that |
-| | Ansible will look for this file |
-| | by default, but for this lab |
-| | we’re specifying one. |
-+-----------------------------------+-----------------------------------+
-| ``-m raw`` | Uses the Ansible raw SSH module |
-| | to connect to the switch |
-+-----------------------------------+-----------------------------------+
-| ``-a "show version"`` | The ad hoc command to run, in |
-| | this case ``show version``. |
-+-----------------------------------+-----------------------------------+
-| ``-u arista`` | Username ``arista`` - this can |
-| | be SSHkey based or saved |
-| | in another location |
-+-----------------------------------+-----------------------------------+
-| ``-k`` | Prompt for password - this can be |
-| | SSH key based or saved in another |
-| | location |
-+-----------------------------------+-----------------------------------+
-
-Looks a lot harder than it is, but either way when your hosts file has
-100 devices in it adding a VLAN becomes a lot easier!
-
-Playbook
---------
-
-For simplicity's sake, for this lab we have uploaded the required files
-for this lab to your lab machine. You will find them on the desktop in
-the ``lab4`` folder under ``labfiles``.
-
-Double click on the ``lab4-advanced-playbook.yml`` and let’s dive into what
-it’s doing:
-
-.. cssclass:: table-hover
-
-+-----------------------------------+-----------------------------------+
-| **Command** | **Description** |
-+-----------------------------------+-----------------------------------+
-| ``---`` | The standard beginning of an |
-| | Ansible playbook |
-+-----------------------------------+-----------------------------------+
-| ``- name: Add a VLAN`` | Names the task. This will be |
-| | displayed at runtime. |
-+-----------------------------------+-----------------------------------+
-| ``hosts: 192.168.0.14`` | Defines the host(s) to run |
-| | against. This is currently set to |
-| | one host, but could be a group! |
-+-----------------------------------+-----------------------------------+
-| ``gather_facts: no`` | Don’t gather information about |
-| | the device, just run the command. |
-| | We do this for speed, but you may |
-| | need to use it for some things |
-+-----------------------------------+-----------------------------------+
-| ``connection: local`` | Sets the task to run from the |
-| | local machine |
-+-----------------------------------+-----------------------------------+
-| ``vars:`` | Defines a variable section |
-+-----------------------------------+-----------------------------------+
-| ``provider:`` | Defines a provider section |
-+-----------------------------------+-----------------------------------+
-| ``host: "{{ ansible_host }}"``| Sets the host to run against as |
-| | an Ansible canned variable |
-| | of ``ansible_host``. This will key|
-| | off ``hosts`` above. Note that |
-| | Ansible variables use {{ curly |
-| | brackets }} |
-+-----------------------------------+-----------------------------------+
-| ``username: "arista"`` | Sets the username to ``arista`` |
-+-----------------------------------+-----------------------------------+
-| ``password: "arista"`` | Sets the password to ``arista`` |
-+-----------------------------------+-----------------------------------+
-| ``authorize: yes`` | Enables once connected |
-+-----------------------------------+-----------------------------------+
-| ``transport: eapi`` | Uses eAPI instead of the SSH. You |
-| | can do either |
-+-----------------------------------+-----------------------------------+
-| ``validate_certs: no`` | Don’t validate SSL certificates |
-+-----------------------------------+-----------------------------------+
-| ``tasks:`` | Begins the ``tasks`` section |
-+-----------------------------------+-----------------------------------+
-| ``- eos_config:`` | Tells Ansible to use |
-| | the \ `eos_config module |
-| | `__\ |
-+-----------------------------------+-----------------------------------+
-| ``lines:`` | Per the ``eos_config`` module, |
-| | define the configuration lines to |
-| | be issued to the switch. There can|
-| | be more than one! |
-+-----------------------------------+-----------------------------------+
-| ``- name foo`` | The actual line to issue. Note |
-| | that it starts with a -. The next |
-| | line would start with another - |
-+-----------------------------------+-----------------------------------+
-| ``parents: vlan 500`` | The parent of the lines above. |
-| | This is important for things like |
-| | interfaces or VLANs. There is |
-| | always a parent above them |
-+-----------------------------------+-----------------------------------+
-| ``provider: "{{ provider | Specifies the provider |
-| }}"`` | (connection information). This is |
-| | also a variable, and it keys in |
-| | on the provider section above |
-+-----------------------------------+-----------------------------------+
-
-For all if of its lines, all this Ansible file is really doing is
-creating a vlan named ``foo`` with an ID of ``500``. Note that while this is just
-adding it to a single device, you could use this to add it to every
-switch in your fleet!
-
-Let’s go ahead and run it. Open up a Terminal window and type the
-following and hit **Enter**:
-
-.. code-block:: html
-
- ansible-playbook -i ~/Desktop/labfiles/lab4/lab4-advanced-hosts ~/Desktop/labfiles/lab4/lab4-advanced-playbook.yml
-
-It’ll look like this when it’s run:
-
-.. image:: images/ansible_adhoc_and_simple_playbooks_1.png
- :align: center
-
-Note that it says ok=1 **changed=1**. This is telling you that it ran
-successfully and made a change. Now, you can either take our word for
-it, or log into the switch and verify the VLAN is there!
-
-Run it one more time. Notice how it just says ok=1 - this is because the
-configuration is already there and nothing needs to be changed.
-Idempotency at its finest - neat right?
-
-Bonus
------
-
-Create a new playbook (or alter the one you have) that creates a new
-VLAN and then adds it to ``interface Ethernet2`` as ``switchport access vlan``.
-
-.. note:: Check out the Ansible eos_config module \ `documentation `__\ .
diff --git a/topologies/beta-datacenter/labguides/source/ansible_and_jinja_templates.rst b/topologies/beta-datacenter/labguides/source/ansible_and_jinja_templates.rst
deleted file mode 100644
index 7616dedc8..000000000
--- a/topologies/beta-datacenter/labguides/source/ansible_and_jinja_templates.rst
+++ /dev/null
@@ -1,254 +0,0 @@
-Ansible and Jinja Templates
-===========================
-
-As you might imagine, writing Ansible playbooks that issue command after
-command to configure all 48+ interfaces on a switch can be extremely
-tedious. Enter our
-friend \ `Jinja `__\ .
-Jinja is a Python-based templating engine that works with Ansible out of
-the box.
-
-Jinja templates take variables from Ansible and then output text. To
-make an analogy, it’s a mail merge for configuration.
-
-.. note:: Jinja isn’t just used for templates in Ansible. Ansible uses Jinja for filters, tests, and other functions as well!
-
-A single command
-----------------
-
-Jinja and Ansible use cases range from single line configuration to
-intricate for loops. Let’s start with a single line template for now.
-Note that even though Ansible can handle single commands as shown above
-natively, there will be times when you will develop a single template
-that is comprised of both single commands and for loops.
-
-.. warning:: Please do not start writing this script until you get to the
- next section
-
-We’re going to create a Jinja template to configure an NTP server with
-the following in it:
-
-.. code-block:: html
-
- ntp server {{ ntp.host }}
-
-Once run, Jinja will grab the defined Ansible variable ``host`` under
-the ``ntp`` section:
-
-.. code-block:: yaml
-
- ntp:
- host: 192.168.0.1
-
-Once it finds the variable, it will generate the following:
-
-.. code-block:: html
-
- ntp server 192.168.0.1
-
-We’ll be calling this with the same Ansible module as above
-(``eos_config``), but this time we’ll be using the ``src`` parameter to pass a
-Jinja template instead of ``lines`` and ``parents`` like we did in lab #4.
-
-Write it
-~~~~~~~~
-
-We’re going to create 3 files for this lab in **Atom**. Once you have created
-them, save them to your **desktop**.
-
-#. A hosts file named ``labhosts``, though you can reuse the one you created
- earlier
-#. A Jinja2 template named ``ntp.j2``
-#. An Ansible playbook named ``ntp.yml``
-
-Hosts file (``labhosts``):
-
-.. code-block:: html
-
- [veos]
- 192.168.0.14
-
-Jinja2 template (``ntp.j2``):
-
-.. code-block:: html
-
- ntp server {{ ntp.host }} source Management1
-
-Ansible playbook (``ntp.yml``):
-
-.. code-block:: yaml
-
- ---
- - name: Add a NTP server
- hosts: veos
- gather_facts: no
- connection: local
- vars:
- provider:
- host: "{{ ansible_host }}"
- username: "arista"
- password: "arista"
- authorize: yes
- transport: eapi
- validate_certs: no
- ntp:
- host: 192.168.0.1
- tasks:
- - eos_config:
- src: ntp.j2
- provider: "{{ provider }}"
-
-
-See how we’ve moved from having` `lines`` and ``parents`` in lab #4 to ``src`` to
-indicate we’re going to use a Jinja template? Fancy!
-
-Run it
-~~~~~~
-
-Assuming that you’ve saved the files to the desktop, let’s run it with
-the following command:
-
-.. code-block:: html
-
- ansible-playbook -i ~/Desktop/labhosts ~/Desktop/ntp.yml
-
-If all goes to plan, you will see ok=1 **changed=1**. If you were to run it
-again, it will show ok=1 **changed=0**. Idempotency strikes again! Feel free
-to check **Leaf1** to make sure the changes are there.
-
-.. image:: images/ansible_and_jinja_templates_1.png
- :align: center
-
-For Loops
----------
-
-Now it’s time for something a little bit more useful - Jinja
-template ``for`` loops. A ``for`` loop allows you to iterate through a template
-and generate configuration until it reaches the end. In this lab, we’re
-going to create a loop that sets the interface description on every
-port.
-
-This is a relatively benign example so that we can keep your lab
-switches operational for other labs, but this could easily be the entire
-switch - or switch port - configuration.
-
-Let’s look at the Jinja template formatting:
-
-.. code-block:: jinja
-
- {% for intf in interfaces %}
- interface {{ intf.name }}
- description {{ intf.description }}
- {% endfor %}
-
-This template is similar to any other language for loop - for arbitrary
-value ``intf`` in a list of variables named ``interfaces``, configure
-the ``name`` variable for that interface, with a description of
-the ``description`` variable. Jinja templates must have the same
-indentation as a live switch configuration. EOS devices utilize
-3 spaces for indentations.
-
-Clear as mud? Maybe this variables file will help tie it together:
-
-.. code-block:: yaml
-
- interfaces:
- - name: Ethernet1
- description: leaf2.arista.test
- - name: Ethernet2
- description: spine1.arista.test
- - name: Ethernet3
- description:s pine2.arista.test
- - name: Ethernet4
- description:h ost1
- - name: Ethernet5
- description: host2
-
-Once you run the template above, it’ll generate the following
-configuration:
-
-.. code-block:: html
-
- interface Ethernet1
- description leaf2.arista.test
- interface Ethernet2
- description spine1.arista.test
- interface Ethernet3
- description spine2.arista.test
- interface Ethernet4
- description host1
- interface Ethernet5
- description host2
-
-Write it
-~~~~~~~~
-
-We will reuse the hosts file from the last lab, so let’s start by
-creating a Jinja template in **Atom** on your desktop named **interfaces.j2**:
-
-.. warning:: Please make absolutely certain that keep the proper spacing in the Jinja template, or Ansible will fail.
- Jinja, like Ansible, is reliant on indentation.
-
-|
-
-.. code-block:: jinja
-
- {% for intf in interfaces %}
- interface {{ intf.name }}
- description {{ intf.description }}
- {% endfor %}
-
-Now let’s create the playbook on your desktop named ``interfaces.yml``:
-
-.. code-block:: yaml
-
- ---
- - name: Add interface descriptions
- hosts: veos
- gather_facts: no
- connection: local
- vars:
- provider:
- host: "{{ ansible_host }}"
- username: "arista"
- password: "arista"
- authorize: yes
- transport: eapi
- validate_certs: no
- interfaces:
- - name: Ethernet1
- description: leaf2.arista.test
- - name: Ethernet2
- description: spine1.arista.test
- - name: Ethernet3
- description: spine2.arista.test
- - name: Ethernet4
- description: host1
- - name: Ethernet5
- description: host2
- tasks:
- - eos_config:
- src: interfaces.j2
- provider: "{{ provider }}"
-
-Run it
-~~~~~~
-
-Let’s run it. We’re going to reuse the hosts file created in the last
-lab.
-
-.. code-block:: bash
-
- ansible-playbook -i ~/Desktop/labhosts ~/Desktop/interfaces.yml
-
-You should see ok=1 **changed=1**. If you were to run it again, it will
-show ok=1 changed=0.
-
-Log into Leaf1 (192.168.0.14) and run ``show interface status`` to see the
-interface names.
-
-Bonus
------
-
-Modify the **For Loops** lab to add the interface name to the interface
-description.
diff --git a/topologies/beta-datacenter/labguides/source/command_api.rst b/topologies/beta-datacenter/labguides/source/command_api.rst
deleted file mode 100644
index be055adbe..000000000
--- a/topologies/beta-datacenter/labguides/source/command_api.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-Command API
-===========
-
-The first lab will demonstrate the on-switch Command API explorer
-feature. The Command API provides an interface to experiment with
-commands and view their request and response structure without having to
-write a script or program to test it with.
-
-Connect to **labvm** by clicking on labvm in the **Lab Frontend**.
-
-.. image:: images/commandapi_1.png
- :align: center
-
-Launch **Google Chrome** from DevBox (not your laptop) via the Guacamole interface. Chrome should automatically connect to the demo
-switch’s Command API. If it doesn’t, log onto the switch via
-HTTPS: `https://192.168.0.14 `_
-
-.. image:: images/commandapi_2.png
- :align: center
-
-When prompted, enter in the username ``arista`` and ``arista`` as the password.
-Accept the self-signed SSL certificate, please do so.
-
-You will be greeted with the following window:
-
-.. image:: images/commandapi_3.png
- :align: center
-
-Get familiar with the interface. Try entering in ``show interfaces`` and
-clicking **Submit POST** request. Note that it requires the full command to
-work properly; shorthand commands, such as ``sh int`` do not work. Any API
-action is the same way.
-
-.. note:: Technically, you can use the AutoComplete command to use shorthand, but it’s a good practice to use long form. When writing
- code it’s always important to think about the next person to look at it!
-
-When you successfully issue a command, notice what the response looks
-like:
-
-.. image:: images/commandapi_4.png
- :align: center
-
-The format above is in JSON (JavaScript Object Notation). Every line has
-a *key*, and a *value*. This is why JSON is nice to use; it’s easy to
-reference and use key/value pairs. We will play with this more in the
-next lab.
-
-Now try to issue a configuration command. Try:
-
-.. code-block:: html
-
- vlan 1000
- name test
-
-Hit **Submit POST Request**.
-
-What does the response viewer say? Note there’s an error, in this
-case ``"message": "CLI command 1 of 2 'vlan 1000' failed: invalid command"``
-
-If you were to log into the switch right now and issue that command without using an API, what would cause this?
-
-Now try it with the following:
-
-.. code-block:: html
-
- enable
- configure
- vlan 1000
- name test
-
-Just like if you were to login to a switch and issue those commands
-normally, the same applies here. The response indicates a success now.
-Log into your switch and observe that the VLAN is present:
-
-.. image:: images/commandapi_5.png
- :align: center
-
-.. note:: To switch between your desktop and the switch, press **Control+Alt+Shift**, click **arista** at the top right of the menu, click **Home** and
- then expand **veos** and double click on **leaf1**. To switch back, reverse the process.
-
-Play around some more if you’d like! Check out the **Overview** and **Command Documentation**
-tabs. Also, this is running on a virtual edition of our switch, so you can also do this at home or in your work lab!
diff --git a/topologies/beta-datacenter/labguides/source/conf.py b/topologies/beta-datacenter/labguides/source/conf.py
deleted file mode 100644
index 40121267a..000000000
--- a/topologies/beta-datacenter/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 2.7'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/beta-datacenter/labguides/source/connecting.rst b/topologies/beta-datacenter/labguides/source/connecting.rst
deleted file mode 100644
index de4c55b9e..000000000
--- a/topologies/beta-datacenter/labguides/source/connecting.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Demo Cloud portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/cvp_configlet/cvp_configlet1.png
-
-2. SSH to the public IP address assigned to the LabAccess jumphost server (this is the IP address shown in the "Welcome to Arista's
- Demo Cloud" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@x.x.x.x
-
-|
-
-.. image:: images/connecting_1.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
diff --git a/topologies/beta-datacenter/labguides/source/cvp_cc.rst b/topologies/beta-datacenter/labguides/source/cvp_cc.rst
deleted file mode 100644
index 67f77e8ee..000000000
--- a/topologies/beta-datacenter/labguides/source/cvp_cc.rst
+++ /dev/null
@@ -1,390 +0,0 @@
-CVP Change Control, Telemetry & Rollback
-==========================================
-
-Learn how to use CloudVision’s Change Control. A Change Control (CC) can be associated with one or mores Tasks. CloudVision will take pre and post snapshots when a CC is executed to give us a state to revert back should there be any issues after the change.
-
-Next, the lab will review Telemetry state-streaming information of the change of adding routes and how the routes propagate across the environment.
-
-Lastly, the lab will initiate a Network Rollback to revert the changes that were implemented. The Network Rollback feature can greatly minimize downtime and gives the user the ability to restore the environment to a previous network state quickly.
-
-**If students have not completed previous lab modules or have reset their environment:**
-
-1. Log into the LabAccess jumpserver:
- 1. If starting from this lab module, type ``cvp`` at the prompt. The script will configure all devices in the lab so you can complete this lab.
-
-.. note:: Did you know → the “cvp” script is composed of python code that uses the CloudVision Portal Rest API to automate the provisioning of CVP Configlets.
-
-TASK 1: Apply a Configlet Builder to create a group of Tasks
-************************************************************
-
-We want to add several Loopbacks to each device using a Configlet Builder at the ‘Leaf’ level.
-
-1. Navigate to the 'Network Provisioning' page under the 'Provisioning' tab.
-
-.. image:: images/cvp_cc/cvp_cc01.png
- :align: center
-
-|
-|
-
-2. Right click on the 'Leaf' container and select 'Manage' -> 'Configlet'
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc02.png
- :align: center
-
-|
-|
-
-3. Select the ‘Add_Loopbacks’ from the list of configlets.
-
-|
-|
-
-4. Select 'Generate' to build a configlet for each device. View the generated configuration by expanding the Proposed Configuration on the right by selecting the '+'
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc03.png
- :align: center
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc04.png
- :align: center
-
-|
-|
-
-5. Select 'Update' to return to 'Network Provisioning' and select 'Save' at the bottom of the screen. Tasks will show up in the notifications. Now that we have Tasks created we can use Change Control feature.
-
-|
-|
-
-6. Navigate to 'Change Control' from the Provisioning Tab.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc05.png
- :align: center
-
-|
-|
-
-7. Create a new Change Control by clicking the '+ Create Change Control' in the top right.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc06.png
- :align: center
-
-|
-|
-
-8. This screen will show pending tasks that will be associated with a Change Control(CC). Select all pending Tasks and click '+ Create Change Control'.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc07.png
- :align: center
-
-|
-|
-
-9. First, we need to give the Change Control a name. Click the pencil on the top right to edit the CC name. Name it 'Add_Loopbacks_CC' and hit Enter.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc08.png
- :align: center
-
-|
-|
-
-10. Next we will create 2 new stages. Click the '+' in the top right (above the default stage) twice in order to create 2 new stages.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc09.png
- :align: center
-
-|
-|
-
-11. Drag one of the empty 'Change Control Stages' above the default stage.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc10.png
- :align: center
-
-|
-|
-
-12. Rename the top and bottom stages to 'Before Snapshot' and 'After Snapshot' respectively. Name the middle stage 'Configuration Changes'.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc11.png
- :align: center
-
-|
-|
-
-12. Next we can select a Snapshot template that we want to run before and after the change. Select 'Add Actions' under the right side menu.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc12.png
- :align: center
-
-|
-|
-
-13. Select 'Snapshot -> Validate_Routing' under 'Select action' 'and 'leaf1', 'leaf2', 'leaf3', and 'leaf4' under 'Select devices to run on'.
-Select 'Before Snapshot' under 'Assign to stage' and 'Parallel' under 'Select ordering', then click 'Add to change control'.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc13.png
- :align: center
-
-|
-|
-
-14. Repeat step 13, but select 'After Snapshot' under 'Assign to stage'. We should now have 2 stages that will take a before and after snapshot of the devices being changed.
-
-|
-|
-
-A few notes about Change Control:
- a. Each Task can be assigned to different stages if wanted. Health checks can be performed in stages before the next stage executes.
-
-|
-|
-
- b. The order of Task execution can be specified if there are dependencies. This is done by dragging tasks under the same column (Series).
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc14.png
- :align: center
-
-|
-|
-
-15. For this lab, we now want to execute the CC. First a review and approval will need to take place. Select 'Review and Approve'.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc15.png
- :align: center
-
-|
-|
-
-Here we can view all of the changes for the tasks, snapshots to be taken, and any other information relative to the change control in order to approve it.
-
-|
-|
-
-16. Once changes have been reviewed, we can click 'Approve' in the bottom right.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc16.png
- :align: center
-
-|
-|
-
-17. Once the change has been approved. We should now have a green button that says 'Execute Change Control' in the top right corner. Click this to execute the changes.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc17.png
- :align: center
-
-|
-|
-
-18. We will now be prompted with with a confirmation. Click 'Execute' to confirm the CC execution.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc18.png
- :align: center
-
-|
-|
-
-19. While the CC executes, we can see the progress of each task as it is executed.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc19.png
- :align: center
-
-|
-|
-
-20. Once the Change Control is successfully completed, we can view the snapshots under 'Devices -> -> Snapshots'
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc20.png
- :align: center
-
-|
-|
-
-21. To compare the before and after, select 'Compare against a previous snapshot in time' and select the snapshot we wish to compare to.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc21.png
- :align: center
-
-|
-|
-
-22. A diff will be shown of the before and after.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc22.png
- :align: center
-
-|
-|
-
-Note: We can also compare against any other snapshot in time by clicking on the date and selecting the snapshot to compare to.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc23.png
- :align: center
-
-|
-|
-
-TASK 2: View Telemetry
-**********************
-
-|
-
-1. Using Telemetry we can view the routes that were added as part of this change propagate across the environment. To Telemetry information, navigate to the 'Metrics' tab.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc24.png
- :align: center
-
-|
-
-2. Dashboards can be created and saved for metrics, but metrics can also be explored on demand in the metrics explorer.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc25.png
- :align: center
-
-|
-
-3. Upon login, the 'Events' tab is a quick view current state.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc26.png
- :align: center
-
-|
-
-4. On the 'Device' tab, we can select a device to drill down on device specific information. Click on 'leaf1'.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc27.png
- :align: center
-
-|
-
-5. The following page will be displayed:
-
-|
-
-.. image:: images/cvp_cc/cvp_cc28.png
- :align: center
-
-|
-
-6. Navigate to 'Routing',and 'IPv4 Routing Table' to view the routing table metrics.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc29.png
- :align: center
-
-|
-
-TASK 3: Rollback
-****************
-
-1. Initiate a Network Rollback to revert the changes that were implemented. Go to the 'Network Provisioning -> Change Control' page and find the change control we just executed: 'Add_Loopbacks_CC'.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc30.png
- :align: center
-
-|
-
-2. In the top right, click 'Rollback Change'.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc31.png
- :align: center
-
-|
-
-3. Here we will select the tasks we wish to roll back. Select all of the tasks for the leafs and click 'Create Rollback Change Control'.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc32.png
- :align: center
-
-|
-
-4. We will now have a rollback change control created. The same change control process can be followed as before. For now, we can select 'Execute Change Control' to roll back the changes.
-
-|
-
-LAB COMPLETE
-
-|
-|
diff --git a/topologies/beta-datacenter/labguides/source/cvp_configlet.rst b/topologies/beta-datacenter/labguides/source/cvp_configlet.rst
deleted file mode 100644
index 6661aa54d..000000000
--- a/topologies/beta-datacenter/labguides/source/cvp_configlet.rst
+++ /dev/null
@@ -1,164 +0,0 @@
-CVP Configlet
-=============
-
-Let’s create a new CloudVision configlet. CloudVision configlets are
-snippets of configuration that are used to create a switch
-configuration.
-
-All of the switches have a base Configlet Builder that was generated
-from the IP Address Management (IPAM) system. Additional Configlets have
-been defined for AAA and VLANs.
-
-1. Log into the Arista Demo Cloud portal with your assigned URL. If you don’t have one, please see your ATD staff.
-
-.. image:: images/cvp_configlet/cvp_configlet1.png
- :align: center
-
-|
-
-2. Click on the link "Click Here To Access Topology" and navigate to the below page. Click the CVP link on the left side of the screen and accept any SSL warning signs that may pop up.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet2.png
- :align: center
-
-|
-
-3. You will come to a login screen for CloudVision Portal. Enter the username “arista” and the password “arista”
-
-|
-
-4. For this lab, select 'Provisioning -> Configlets' from CloudVision.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet3.png
- :align: center
-
-|
-
-5. Click the '+' in the top right and select 'Configlets' to create a new configlet.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet4.png
- :align: center
-
-|
-
-6. In the configuration section enter the command information as shown:
-
-
- .. code-block:: text
-
- alias routeage bash echo show ip route | cliribd
-
-
-6. Name the Configlet 'Alias'.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet5.png
- :align: center
-
-|
-
-7. The Configlet can be validated against a device to ensure there isn’t a conflict and the configuration is validated. To validate, click the checkbox in the top right section.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet6.png
- :align: center
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet7.png
- :align: center
-
-|
-
-8. Once the configuration is validated, Click the 'Save' button to save the Configlet
-
-|
-
-9. To apply the Configlet, navigate to 'Network Provisioning' and right click on the 'Tenant' container and select 'Manage -> Configlet'.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet8.png
- :align: center
-
-|
-
-10. Select the 'Alias' Configlet and click 'Update'. This activity is to simply add a new configlet to the existing configlets applied on the 'Tenant' container. **Do not Remove** existing configlets from the Proposed Configuration section.
-
-
- *\**Expert Tip - Use search bar to find Configlets faster*
-
-.. image:: images/cvp_configlet/cvp_configlet9.png
- :align: center
-
-|
-
-11. On the 'Network Provisioning' page, Click the 'Save' button to save the changes to the topology.
-
-|
-
-12. The screen will refresh and a 'T' for task will appear above each switches; generating tasks that need to run to push the configuration change.
-
-|
-
-13. Click the 'Task' notification on the top right.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet10.png
- :align: center
-
-|
-
-14. Check each 'Pending' task and click the 'Create Change Control with 9 Tasks' button.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet11.png
- :align: center
-
-|
-
- *\**See the 'CVP Change Control, Telemetry & Rollback' lab guide for more information on Change Controls*
-
-|
-
-15. Select 'Review and Approve' in the top right, then 'Approve' in the bottom right to approve the Change Control.
-
-|
-
-16. Select 'Execute Change Control' in the top right and then 'Execute' to execute the Change Control tasks.
-
-|
-
-17. When the tasks are in-progress or completed, navigate into the task by clicking on the task object.
-
- a. The 'Info' tab includes high level information about the device.
- b. The 'Changes' tab shows the diff of the changes made with the selected task.
- c. The 'Logs' tab includes information for all interactions between CVP and the switch.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet12.png
- :align: center
-
-|
-
-18. Select 'Changes' tab to review the *Designed Configuration* vs. *Running Configuration*. The Designed Configuration is a combination of all configlets to build a full device configuration. The Running Configuration is the running-config prior to executing the task. Configuration differences are highlighted to show New Lines, Mismatch Lines, and To Reconcile.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet13.png
- :align: center
-
-|
-
-**LAB COMPLETE**
diff --git a/topologies/beta-datacenter/labguides/source/cvx.rst b/topologies/beta-datacenter/labguides/source/cvx.rst
deleted file mode 100644
index cf85fb2c1..000000000
--- a/topologies/beta-datacenter/labguides/source/cvx.rst
+++ /dev/null
@@ -1,112 +0,0 @@
-CVX
-====
-
-.. image:: images/cvx_1.png
- :align: center
-
-.. note:: Did you know the CVX stands for CloudVision eXchange? CVX is simply a virtual instance of Arista's EOS known as vEOS. CVX can be run in Standalone mode (Single VM) or Multi-node (up to 3 VMs) cluster.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``vxlan`` at the prompt. The script will configure the datacenter with the exception of Leaf3
-
- 2. On **CVX01**, verify the that CVX is really a vEOS instance:
-
- .. code-block:: text
-
- show version
-
-2. Enable the VXLAN Control Service (VCS) on **CVX01**
-
- 1. On **CVX01**:
-
- .. code-block:: text
-
- configure
- cvx
- no shutdown
- service vxlan
- no shutdown
-
- 2. Verify CVX Service is running:
-
- .. code-block:: text
-
- show cvx
-
-3. On **Leaf3**, perform these commands to complete the southbound MLAG to HOST2 and configure the VTEP & loopback1 IP address:
-
- .. code-block:: text
-
- configure
- interface Port-Channel4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
-
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-
- interface Loopback1
- ip address 172.16.0.56/32
-
- interface Vxlan 1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1212
- vxlan controller-client
-
-
-4. On **each** Leaf in the topology, configure CVX controller client and the interface vxlan1
-
- 1. On **Leaf1**, **Leaf2**, **Leaf3**, and **Leaf4**:
-
- .. code-block:: text
-
- configure
- management cvx
- server host 192.168.0.44
- no shutdown
-
- 2. On **Leaf1**, **Leaf2**, & **Leaf4** add the CVX/VCS control place config and also remove the explicit HER flood list VTEPs. Since CVX will create the flood list for us, we don't need to explicit declare it now.
-
- .. code-block:: text
-
- configure
- interface Vxlan 1
- no vxlan flood vtep
- vxlan controller-client
-
- 3. Verify VxLAN controller status on **Leaf1**, **Leaf2**, **Leaf3**, and **Leaf4**:
-
- .. code-block:: text
-
- show vxlan controller status
- show vxlan controller address-table advertised
- show vxlan controller address-table received
-
- 4. Log onto **host1** and ping **host2**:
-
- .. code-block:: text
-
- enable
- ping 172.16.112.202
-
-5. Verify that **CVX01** has established connections and is receiving VxLAN advertisements
-
- .. code-block:: text
-
- show cvx connections
- show service vxlan address-table advertised
- show service vxlan address-table received
-
-6. Verify that **CVX01** can view the network topology:
-
- .. code-block:: text
-
- show network physical-topology hosts
- show network physical-topology neighbors
-
-**LAB COMPLETE!**
diff --git a/topologies/beta-datacenter/labguides/source/day2_operations.rst b/topologies/beta-datacenter/labguides/source/day2_operations.rst
deleted file mode 100644
index dd04e8474..000000000
--- a/topologies/beta-datacenter/labguides/source/day2_operations.rst
+++ /dev/null
@@ -1,345 +0,0 @@
-Day 2 Operations
-========================
-
-If you were recall the earlier presentation, we mentioned Continuous
-Integration and Continuous Development (CI/CD). Now we’re going to show
-you an example.
-
-In this lab we’re going to go from 0-60 pretty quickly and introduce a
-couple of new tools. We’re also going to do things a little bit
-differently - we’re going to action against many switches at the same
-time.
-
-Tools used in this lab
-----------------------
-
-`Git `__\ is
-the most popular version control system. If you are familiar with SVN
-(Subversion) or CVS, it is a more modern and distributed system. Git
-keeps your source code/configurations in a repository (repo) and
-maintains a record of what changed and by whom.
-
-.. note:: Git is an incredibly powerful tool. We’re using shortcuts that
- are specific to this lab. When using Git in production - or even just
- for fun, please make sure that you understand the commands you are
- using. Some Git commands are destructive and irreversible!
-
-`Jenkins `__\ is
-one of the most popular open source automation tools with hundreds of
-plugins for building/deploying/automating pretty much anything. It’s not
-outside the realm of possibility to have it test and push changes to
-your switches and then order you a pizza if it’s successful.
-
-Git commands
-~~~~~~~~~~~~
-
-This lab makes use of a handful of git commands, and the table below
-describes their function:
-
-.. cssclass:: table-hover
-
-+-----------------------------------+-----------------------------------+
-| **Command** | **Description** |
-+-----------------------------------+-----------------------------------+
-| ``git init`` | Initializes an empty git |
-| | repository |
-+-----------------------------------+-----------------------------------+
-| ``git add`` | Adds files to the local git |
-| | repository |
-+-----------------------------------+-----------------------------------+
-| ``git commit`` | Commits the git repository |
-+-----------------------------------+-----------------------------------+
-| ``git remote add origin`` | Adds a remote repository to |
-| | commit to |
-+-----------------------------------+-----------------------------------+
-| ``git push`` | Pushes code to the repository |
-+-----------------------------------+-----------------------------------+
-| ``git reflog`` | The git reflog command lists |
-| | every commit, their checksum, |
-| | their distance from the current |
-| | commit, and the commit message. |
-+-----------------------------------+-----------------------------------+
-| ``git revert`` | Reverts the local repository to a |
-| | previous commit |
-+-----------------------------------+-----------------------------------+
-
-Making a change
----------------
-
-Our tried and true “add a VLAN” task is back in full force for this lab,
-but with a twist. We’re going to set up the usual suspects - a hosts
-file and a playbook, but this time we’re going to use group variables as
-well. Group variables are similar to the variables defined within your
-playbook in Lab #4 and Lab #5, but can be consumed by a group of hosts
-and not just the target of the play.
-
-This is particularly useful for things like adding a VLAN where you
-typically want to add the VLAN to multiple devices at a same time.
-
-Write it
-~~~~~~~~
-
-This lab is broken into steps.
-
-Step #1: Hosts File
-^^^^^^^^^^^^^^^^^^^
-
-Let’s start out with a different looking hosts file, this time with
-every one of your leaf switches in it. Take special note of ``[leafs]`` -
-we’ll be using this later.
-
-Open **Atom**, and create the file below:
-
-.. code-block:: ini
-
- [leafs]
- 192.168.0.14
- 192.168.0.15
- 192.168.0.16
- 192.168.0.17
-
-**Save** the file with the name ``hosts`` into the ``labfiles/lab6/lab`` folder found
-on your desktop.
-
-.. note:: You will notice that there are existing files and folders.
- Please don’t overwrite anything for this lab.
-
-Step #2: Playbook
-^^^^^^^^^^^^^^^^^
-
-The playbook is different from the other labs; we’re going to call a
-pre-created role that is provided by Arista on \ `Ansible
-Galaxy `__\ .
-
-Ansible Galaxy is a website where individuals and organizations can
-freely share their roles with each other. In this case, we’ll be using
-the ``arista.eos-bridging`` role to add VLANs.
-
-In **Atom**, create the file below:
-
-.. code-block:: ini
-
- - hosts: leafs
- connection: local
- roles:
- - arista.eos-bridging
-
-Save the file with the name ``vlan.yml`` into the ``labfiles/lab6/lab`` folder
-found on your desktop.
-
-Step #3: Group Variables
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-Now we’re really going to mix it up a bit. In previous labs, we
-used ``vars:`` and only actioned against a single host. This time around,
-we’re going to be using what are called group variables. Group variables
-are used for groups of hosts and not individuals.
-
-Remember how in the hosts file above we started with ``[leafs]``? If we
-create a group variable file named ``leafs.yml``, Ansible will automagically
-use it for the hosts listed below ``[leafs]``!
-
-Some more things to know about the file below:
-
-#. Notice that we’re using the same ``provider`` information as the other
- labs.
-#. ``eos_purge_vlans``: true tells the role to purge VLANs if they don’t
- exist in the variables file. This is useful for when you need to
- remove VLANs.
-#. ``vlans``, ``vlanid``, and ``name`` are what the ``arista.eos-bridging`` role take as an
- input. If you want to see every variable that the role can use, see
- the \ `readme for the
- role `__\ .
-
-Open **Atom** and create the file below:
-
-.. code-block:: yaml
-
- provider:
- host: "{{ inventory_hostname }}"
- username: arista
- password: arista
- authorize: yes
- transport: eapi
- validate_certs: no
- eos_purge_vlans: true
- vlans:
- - vlanid: 1001
- name: default
-
-Save the file with the name ``leafs.yml`` into
-the ``labfiles/lab6/lab/group_vars`` folder found on your desktop.
-
-Step #4: Jenkins
-^^^^^^^^^^^^^^^^
-
-Go back to the ATD web landing page, and click on the **Jenkins** link:
-
-.. image:: images/day2_operations_1.png
- :align: center
-
-|
-
-Jenkins will open in a new tab. Click on **New Item** in the top left of
-the window.
-
-You will be greeted with a screen like the one below. Enter **vlan** as the
-name and select **Freestyle project**.
-
-.. image:: images/day2_operations_2.png
- :align: center
-
-Click **OK**.
-
-Now comes the fun part.
-
-Under **Source Code Management**, check **Git** and
-enter ``/home/aristagui/Desktop/labfiles/lab6/repo`` in the **Repository URL** field.
-
-.. note:: You will see a warning, ignore it for now.
-
-Scroll down to **Build Triggers**, and check **Poll SCM**. Poll SCM will poll for
-changes in Git and trigger a build from it.
-
-.. note:: This is a crucial aspect of continuous delivery - once a change is made, this is the part that deploys it.
-
-In the **Schedule** field, enter in:
-
-.. code-block:: html
-
- * * * * *
-
-If you are familiar with Linux cron, this is the same format - it’s
-telling Jenkins to check every 1 minute for a change.
-
-Scroll down to **Build** and click on **Add build step**. Select **Invoke Ansible Playbook**.
-
-For **Playbook path**, enter ``vlan.yml``. Select **File** or **host list** and enter
-in ``hosts``.
-
-Click **Save**.
-
-Step #5: Git
-^^^^^^^^^^^^
-
-We have to commit our changes into a Git repository for Jenkins to
-detect a change and run our playbook. Let’s go back to our **labvm** and run
-a few of quick commands for our initial commit.
-
-Open a **terminal** window and type:
-
-.. code-block:: bash
-
- cd ~/Desktop/labfiles/lab6/lab
-
-Now enter the following:
-
-.. code-block:: bash
-
- git init
- git add .
- git commit -m "Initial commit"
- git remote add origin /home/aristagui/Desktop/labfiles/lab6/repo
- git push origin master
-
-Run it
-~~~~~~
-
-Phew, that was a lot of setup! Fortunately. unlike previous labs we’re
-not going to be running this one by hand - that wouldn’t be CI/CD! We’re
-going to use Jenkins to run the playbook.
-
-At a high level, the workflow of the “Run it” part of the lab looks like
-this:
-
-.. image:: images/day2_operations_3.png
- :align: center
-
-Let’s start with Step 1.
-
-Step #1: Add a VLAN to the variables file
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Open the ``leafs.yml`` variables file in **Atom**.
-
-Add the following highlighted lines directly below the existing text:
-
-.. code-block:: yaml
-
- vlans:
- - vlanid: 1001
- name: default
- - vlanid: 2000
- name: production
- - vlanid: 3000
- name: development
-
-**Save** the file.
-
-Step #2: Add the file to the Git commit and push it
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Now, let’s add the file into Git commit and push it.We’re going to need
-to act somewhat quickly here if you want to see it run, so get ready!
-
-In a **terminal** window, type:
-
-.. code-block:: bash
-
- cd ~/Desktop/labfiles/lab6/lab
-
-Now enter the following:
-
-.. code-block:: bash
-
- git add .
- git commit -m "Added VLAN 2000 and 3000"
- git push origin master
-
-Quickly, open Jenkins!
-
-Step #3: Jenkins
-^^^^^^^^^^^^^^^^
-
-Depending on how fast you were able to switch to Jenkins, you will see
-different things. If you were quick, you will see this:
-
-.. image:: images/day2_operations_4.png
- :align: center
-
-See the **vlan** build running? No worries if you weren’t able to see it,
-Jenkins keeps a history - handy for when you want to see how things
-went.
-
-From the main screen, click on **vlan**:
-
-.. image:: images/day2_operations_5.png
- :align: center
-
-On the left hand side, click on the latest build which should be **#3**, but
-could be a higher or lower number.
-
-.. image:: images/day2_operations_6.png
- :align: center
-
-In the left hand menu, click **Console Output**. Scroll all the way to the
-bottom to see:
-
-.. code-block:: html
-
- PLAY RECAP
- ***************************************************************************
- 192.168.0.14 : ok=7 changed=2 unreachable=0 failed=0
- 192.168.0.15 : ok=7 changed=2 unreachable=0 failed=0
- 192.168.0.16 : ok=7 changed=2 unreachable=0 failed=0
- 192.168.0.17 : ok=7 changed=2 unreachable=0 failed=0
-
-Woot, sweet success!
-
-Step #4: Switches are configured
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Now, for the final step log into a couple of the leaf switches. Notice
-the VLANs are there. Pretty cool, huh?
-
-You can do this for 1 or 1000 switches using this playbook.
diff --git a/topologies/beta-datacenter/labguides/source/eapi.rst b/topologies/beta-datacenter/labguides/source/eapi.rst
deleted file mode 100644
index 7b7f9b07e..000000000
--- a/topologies/beta-datacenter/labguides/source/eapi.rst
+++ /dev/null
@@ -1,181 +0,0 @@
-eAPI
-====
-
-This lab will walk you through using eAPI through Python. As mentioned
-in the previous lab and the presentation, eAPI works through JSON
-requests and responses. Fortunately, Python has a module that can handle
-that easily!
-
-If you haven’t used Python before, don’t worry! We will break down the
-first script to explain how it works, and what it’s doing.
-
-The scripts below leverage ``show`` commands, but you can easily modify them
-to issue configuration commands as well - just use what you learned in
-the previous lab to do that.
-
-.. note:: While Arista switches have a fully functional Python
- installation, please make sure to use the lab VM for the scripting part of this lab.
-
-Your very first script
-----------------------
-
-For the first script, we are going to issue ``show version`` to the switch,
-and then print the output.
-
-.. warning:: Please do not start writing this script until you get to the
- next section
-
-The script is the same as in the presentation you just saw:
-
-.. code-block:: python
-
- #!/usr/bin/python
-
- from jsonrpclib import Server
-
- switch = Server ("http://arista:arista@192.168.0.14/command-api")
-
- response = switch.runCmds( 1, ["show version"] )
-
- print response
-
-Let’s break down the script into individual pieces:
-
-**#!/usr/bin/python** - this is called a shebang (no, we didn’t make this
-up!). A shebang instructs the operating system what to use to run the
-script. In this case, python!
-
-**from jsonrpclib import Server** - this imports the Python
-submodule ``Server`` from the module ``jsonrpclib``. A Python module extends the
-capability of Python by adding additional functionality. There are
-Python modules for pretty much everything!
-
-**switch = Server ( "http://arista:arista@192.168.0.14/command-api")**
-this instantiates a variable - ``switch`` - and uses the ``Server`` submodule
-imported previously to create a connection to the switch. Note that it
-uses standard username/password formatting to make the connection.
-
-.. note:: You don’t have to use unencrypted HTTP in production, we also
- work with HTTPS (SSL). For this lab we use HTTP because we don’t want
- to deal with certificates.
-
-**response = switch.runCmds( 1, ["show version"] )** - instantiates a
-variable called ``response`` - that uses the previously
-created ``switch.runCmds`` variable to run commands. This is where it starts
-getting interesting.
-
-Once we create the ``switch`` connection, ``runCmds`` is the method provided by
-theswitch’s JSON-RPC interface which allows us to run commands against
-it. As a part of ``runCmds``, we also expect an API version (1) and the
-command itself, in this case ``show version``.
-
-If you rewind and go back to the Command API Explorer, you would see
-that in the **Request Viewer** pane:
-
-.. image:: images/eapi_1.png
- :align: center
-
-Note the ``method``, ``cmds``, and ``version`` keys!
-
-.. note:: The other values, such as format, timestamps, and id are
- defaults and do not need to be specified in your request.
-
-**print response** - finally, we print the ``response`` variable to screen.
-
-Write it
-~~~~~~~~
-
-Now that’s out of the way, it’s time to actually write the code! If you
-are still connected to **leaf1**, connect back to **devbox**.
-
-.. note:: To switch between your switch and the desktop, press **Ctrl + Alt +Shift**,
- click **arista** at the top right of the menu, click **Home**, and then
- double click **devbox**. To switch back, reverse the process.
-
-We have installed the very popular code editor called Atom on your lab
-machine. It can be launched with the green sphere like icon on the
-taskbar:
-
-.. image:: images/eapi_2.png
- :align: center
-
-Open **Atom** and write in the code above. Alternatively, if you’d just like
-to paste in the code, hit **Ctrl-Alt-Shift** and paste it into
-the **Clipboard** box. Then you can paste it right into Atom by right
-clicking on the screen and selecting paste:
-
-.. note:: To close the sidebar window, press **Ctrl-Alt-Shift** again.
-
-.. image:: images/eapi_3.png
- :align: center
-
-Once done, save the file to your desktop.
-
-Run it
-~~~~~~
-
-Now, let’s run it! On your lab box, click on the Terminal icon in the
-taskbar:
-
-.. image:: images/eapi_4.png
- :align: center
-
-A terminal window will open. Run your script by entering:
-
-.. code-block:: bash
-
- python ~/Desktop/your_script_name_here
-
-If this doesn’t work, make sure you replaced ``your_script_name_here`` with
-the filename of the script you saved above!
-
-.. note:: For the more Linux savvy folks, you might wonder why we’re
- calling Python directly instead of relying on the aforementioned
- shebang (``#!/usr/bin/python``) - if you want to make the file executable
- go for it!
-
-.. image:: images/eapi_5.png
- :align: center
-
-Woohoo - check out that JSON!
-
-.. note:: The “u” in front of every key/value indicates it’s unicode. When
- you actually use the key/value, this will not appear.
-
-Advanced
---------
-
-So that was cool and all, but if you want to take it one step further,
-check out the following script - this time we’re taking the output and
-doing something with it:
-
-.. code-block:: python
-
- #!/usr/bin/python
-
- from jsonrpclib import Server
-
- switch = Server ("http://arista:arista@192.168.0.14/command-api")
-
- response = switch.runCmds( 1, ["show version"] )
-
- print "The switch model name is " + response[0]["modelName"] + " and it is running " + response[0]["version"]
-
-There are plenty of other possibilities here. Think about your day to
-day operations and things that you have to do frequently that take a lot
-of time, but are tedious and error prone. Any Python script that can be
-run against one switch can be run against many more. Adding a VLAN to
-every switch in your datacenter might just involve providing a list of
-switch hostnames or IP addresses, a VLAN ID, and a name and your script
-will do it all for you!
-
-Another script idea is tracing a MAC across your network until you find
-the physical port it’s connected to. The possibilities are only limited
-by your imagination. This is about as close
-to\ `zombo.com `__ as
-you can get in the networking world!
-
-Bonus
------
-
-Print the response of ``show version`` using `PrettyPrint `__\ .
diff --git a/topologies/beta-datacenter/labguides/source/images/ansible_adhoc_and_simple_playbooks_1.png b/topologies/beta-datacenter/labguides/source/images/ansible_adhoc_and_simple_playbooks_1.png
deleted file mode 100644
index 577c319f7..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/ansible_adhoc_and_simple_playbooks_1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/ansible_and_jinja_templates_1.png b/topologies/beta-datacenter/labguides/source/images/ansible_and_jinja_templates_1.png
deleted file mode 100644
index 52edf96fa..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/ansible_and_jinja_templates_1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/arista_logo.png b/topologies/beta-datacenter/labguides/source/images/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/arista_logo.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/commandapi_1.png b/topologies/beta-datacenter/labguides/source/images/commandapi_1.png
deleted file mode 100644
index bdf71b977..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/commandapi_1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/commandapi_2.png b/topologies/beta-datacenter/labguides/source/images/commandapi_2.png
deleted file mode 100644
index 2d104a02d..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/commandapi_2.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/commandapi_3.png b/topologies/beta-datacenter/labguides/source/images/commandapi_3.png
deleted file mode 100644
index e13a9fa51..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/commandapi_3.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/commandapi_4.png b/topologies/beta-datacenter/labguides/source/images/commandapi_4.png
deleted file mode 100644
index 39fe0f630..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/commandapi_4.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/commandapi_5.png b/topologies/beta-datacenter/labguides/source/images/commandapi_5.png
deleted file mode 100644
index 8e6cb7c94..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/commandapi_5.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/connecting_1.png b/topologies/beta-datacenter/labguides/source/images/connecting_1.png
deleted file mode 100644
index 1fdeedcd0..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/connecting_1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc01.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc01.png
deleted file mode 100644
index d127a6681..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc01.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc02.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc02.png
deleted file mode 100644
index 5d9a14297..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc02.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc03.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc03.png
deleted file mode 100644
index 7164ab35f..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc03.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc04.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc04.png
deleted file mode 100644
index 2c9a0c84c..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc04.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc05.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc05.png
deleted file mode 100644
index 8f9eb2ef4..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc05.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc06.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc06.png
deleted file mode 100644
index 98d259081..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc06.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc07.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc07.png
deleted file mode 100644
index e89e69848..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc07.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc08.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc08.png
deleted file mode 100644
index b49f21760..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc08.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc09.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc09.png
deleted file mode 100644
index dfb939ade..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc09.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc10.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc10.png
deleted file mode 100644
index b4bcb7e4f..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc10.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc11.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc11.png
deleted file mode 100644
index d4409a8c4..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc11.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc12.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc12.png
deleted file mode 100644
index c50fd3ed9..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc12.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc13.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc13.png
deleted file mode 100644
index 644945eb5..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc13.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc14.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc14.png
deleted file mode 100644
index 5a000cdbb..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc14.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc15.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc15.png
deleted file mode 100644
index 71b0d54ed..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc15.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc16.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc16.png
deleted file mode 100644
index 32dd7b912..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc16.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc17.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc17.png
deleted file mode 100644
index f83068080..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc17.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc18.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc18.png
deleted file mode 100644
index 1e9f46948..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc18.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc19.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc19.png
deleted file mode 100644
index 5ca2d6935..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc19.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc20.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc20.png
deleted file mode 100644
index 05f1d4559..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc20.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc21.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc21.png
deleted file mode 100644
index 001374193..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc21.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc22.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc22.png
deleted file mode 100644
index cb6547bd2..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc22.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc23.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc23.png
deleted file mode 100644
index 3b730f4ff..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc23.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc24.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc24.png
deleted file mode 100644
index 8e2c27de1..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc24.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc25.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc25.png
deleted file mode 100644
index 6468f5c30..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc25.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc26.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc26.png
deleted file mode 100644
index c6becc0a3..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc26.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc27.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc27.png
deleted file mode 100644
index 38e22fc31..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc27.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc28.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc28.png
deleted file mode 100644
index 38aaf0f2b..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc28.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc29.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc29.png
deleted file mode 100644
index d935051e1..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc29.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc30.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc30.png
deleted file mode 100644
index 39bde9f1f..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc30.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc31.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc31.png
deleted file mode 100644
index 7e97f59cb..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc31.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc32.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc32.png
deleted file mode 100644
index a99ac12f1..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc/cvp_cc32.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc01-1.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc01-1.png
deleted file mode 100644
index 2c9a0c84c..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc01-1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc01.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc01.png
deleted file mode 100644
index 7164ab35f..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc01.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc02.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc02.png
deleted file mode 100644
index 5363a8a71..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc02.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc03.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc03.png
deleted file mode 100644
index fcaded943..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc03.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc04.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc04.png
deleted file mode 100644
index ea425c7d2..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc04.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc05.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc05.png
deleted file mode 100644
index 9e22bd4e0..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc05.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc06.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc06.png
deleted file mode 100644
index 88ebe8230..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc06.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc07.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc07.png
deleted file mode 100644
index 77457317c..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc07.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc08.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc08.png
deleted file mode 100644
index c79322b71..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc08.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc09.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc09.png
deleted file mode 100644
index 7356bcf8e..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc09.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc10.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc10.png
deleted file mode 100644
index 7433e004f..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc10.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc11.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc11.png
deleted file mode 100644
index 38e22fc31..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc11.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc12.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc12.png
deleted file mode 100644
index 38aaf0f2b..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc12.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc13.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc13.png
deleted file mode 100644
index 521b8e212..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc13.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc14.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc14.png
deleted file mode 100644
index a56052e29..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc14.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc15.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc15.png
deleted file mode 100644
index 464c6265e..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc15.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc16.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc16.png
deleted file mode 100644
index 60ccd6a26..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc16.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc17.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc17.png
deleted file mode 100644
index 03541395c..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc17.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc18.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc18.png
deleted file mode 100644
index e8b7f2a5b..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc18.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_cc19.png b/topologies/beta-datacenter/labguides/source/images/cvp_cc19.png
deleted file mode 100644
index e8126491f..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_cc19.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet1.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet1.png
deleted file mode 100644
index afc6eb108..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet10.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet10.png
deleted file mode 100644
index 9bed4fd5e..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet10.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet11.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet11.png
deleted file mode 100644
index 19ab5d312..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet11.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet12.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet12.png
deleted file mode 100644
index 0ce61c405..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet12.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet13.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet13.png
deleted file mode 100644
index 2045039b7..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet13.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet2.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet2.png
deleted file mode 100644
index 8564b5ead..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet2.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet3.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet3.png
deleted file mode 100644
index 3d61eaa8d..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet3.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet4.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet4.png
deleted file mode 100644
index 7627b96bf..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet4.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet5.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet5.png
deleted file mode 100644
index 3339988fb..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet5.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet6.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet6.png
deleted file mode 100644
index 71edc5c0a..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet6.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet7.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet7.png
deleted file mode 100644
index 0f8c2537f..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet7.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet8.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet8.png
deleted file mode 100644
index 5dbf56066..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet8.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet9.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet9.png
deleted file mode 100644
index fb02fc8e4..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet/cvp_configlet9.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet1.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet1.png
deleted file mode 100644
index afc6eb108..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet10.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet10.png
deleted file mode 100644
index a79d44882..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet10.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet11.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet11.png
deleted file mode 100644
index d9b6be699..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet11.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet12.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet12.png
deleted file mode 100644
index 2e1875e3d..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet12.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet2.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet2.png
deleted file mode 100644
index 8564b5ead..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet2.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet3.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet3.png
deleted file mode 100644
index 40677914c..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet3.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet4.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet4.png
deleted file mode 100644
index 616ec2416..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet4.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet5.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet5.png
deleted file mode 100644
index 71edc5c0a..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet5.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet6.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet6.png
deleted file mode 100644
index 0f8c2537f..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet6.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet7.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet7.png
deleted file mode 100644
index 4b6665cee..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet7.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet8.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet8.png
deleted file mode 100644
index b1e6f836d..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet8.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvp_configlet9.png b/topologies/beta-datacenter/labguides/source/images/cvp_configlet9.png
deleted file mode 100644
index ae091609a..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvp_configlet9.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/cvx_1.png b/topologies/beta-datacenter/labguides/source/images/cvx_1.png
deleted file mode 100644
index 53f74b136..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/cvx_1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/day2_operations_1.png b/topologies/beta-datacenter/labguides/source/images/day2_operations_1.png
deleted file mode 100644
index e31dffba6..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/day2_operations_1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/day2_operations_2.png b/topologies/beta-datacenter/labguides/source/images/day2_operations_2.png
deleted file mode 100644
index f45c2c668..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/day2_operations_2.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/day2_operations_3.png b/topologies/beta-datacenter/labguides/source/images/day2_operations_3.png
deleted file mode 100644
index c5f7c4731..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/day2_operations_3.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/day2_operations_4.png b/topologies/beta-datacenter/labguides/source/images/day2_operations_4.png
deleted file mode 100644
index e950b1de0..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/day2_operations_4.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/day2_operations_5.png b/topologies/beta-datacenter/labguides/source/images/day2_operations_5.png
deleted file mode 100644
index 2fc232e83..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/day2_operations_5.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/day2_operations_6.png b/topologies/beta-datacenter/labguides/source/images/day2_operations_6.png
deleted file mode 100644
index fc95bf8f3..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/day2_operations_6.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/eapi_1.png b/topologies/beta-datacenter/labguides/source/images/eapi_1.png
deleted file mode 100644
index 942dc7ecf..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/eapi_1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/eapi_2.png b/topologies/beta-datacenter/labguides/source/images/eapi_2.png
deleted file mode 100644
index 264231347..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/eapi_2.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/eapi_3.png b/topologies/beta-datacenter/labguides/source/images/eapi_3.png
deleted file mode 100644
index ce96a7dee..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/eapi_3.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/eapi_4.png b/topologies/beta-datacenter/labguides/source/images/eapi_4.png
deleted file mode 100644
index 105cfe351..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/eapi_4.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/eapi_5.png b/topologies/beta-datacenter/labguides/source/images/eapi_5.png
deleted file mode 100644
index bc12e666a..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/eapi_5.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/l2evpn.png b/topologies/beta-datacenter/labguides/source/images/l2evpn.png
deleted file mode 100644
index 540f1d1bc..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/l2evpn.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/l3evpn.png b/topologies/beta-datacenter/labguides/source/images/l3evpn.png
deleted file mode 100644
index 1ed2a1ae2..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/l3evpn.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/l3evpn_1.png b/topologies/beta-datacenter/labguides/source/images/l3evpn_1.png
deleted file mode 100644
index 970bfcb10..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/l3evpn_1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/l3evpn_2.png b/topologies/beta-datacenter/labguides/source/images/l3evpn_2.png
deleted file mode 100644
index e0b07ed2b..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/l3evpn_2.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/l3evpn_3.png b/topologies/beta-datacenter/labguides/source/images/l3evpn_3.png
deleted file mode 100644
index d9056b653..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/l3evpn_3.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/l3evpn_4.png b/topologies/beta-datacenter/labguides/source/images/l3evpn_4.png
deleted file mode 100644
index 7c5d5fb75..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/l3evpn_4.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/l3evpn_5.png b/topologies/beta-datacenter/labguides/source/images/l3evpn_5.png
deleted file mode 100644
index e6a443c35..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/l3evpn_5.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/l3evpn_6.png b/topologies/beta-datacenter/labguides/source/images/l3evpn_6.png
deleted file mode 100644
index f9e052a28..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/l3evpn_6.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/l3evpn_7.png b/topologies/beta-datacenter/labguides/source/images/l3evpn_7.png
deleted file mode 100644
index 7e0e78233..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/l3evpn_7.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/l3ls_1.png b/topologies/beta-datacenter/labguides/source/images/l3ls_1.png
deleted file mode 100644
index 0a04f4f5e..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/l3ls_1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/logo.jpg b/topologies/beta-datacenter/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/media-BGP.png b/topologies/beta-datacenter/labguides/source/images/media-BGP.png
deleted file mode 100644
index 21a00f46a..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/media-BGP.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/media-IP.Intro.png b/topologies/beta-datacenter/labguides/source/images/media-IP.Intro.png
deleted file mode 100644
index f5d7f447c..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/media-IP.Intro.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/media-OSPF.png b/topologies/beta-datacenter/labguides/source/images/media-OSPF.png
deleted file mode 100644
index 255a75dd4..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/media-OSPF.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/media-STP.&.SVI.png b/topologies/beta-datacenter/labguides/source/images/media-STP.&.SVI.png
deleted file mode 100644
index 867ed6827..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/media-STP.&.SVI.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/media-multicast.png b/topologies/beta-datacenter/labguides/source/images/media-multicast.png
deleted file mode 100644
index 42ac7f54d..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/media-multicast.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/mlag_1.png b/topologies/beta-datacenter/labguides/source/images/mlag_1.png
deleted file mode 100644
index 81f639d76..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/mlag_1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/programmability_connecting_2.png b/topologies/beta-datacenter/labguides/source/images/programmability_connecting_2.png
deleted file mode 100644
index 41119b649..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/programmability_connecting_2.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/programmability_connecting_3.png b/topologies/beta-datacenter/labguides/source/images/programmability_connecting_3.png
deleted file mode 100644
index 1ff5c4a51..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/programmability_connecting_3.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/programmability_connecting_4.png b/topologies/beta-datacenter/labguides/source/images/programmability_connecting_4.png
deleted file mode 100644
index 6827542e0..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/programmability_connecting_4.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/programmability_connecting_5.png b/topologies/beta-datacenter/labguides/source/images/programmability_connecting_5.png
deleted file mode 100644
index 15c755a65..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/programmability_connecting_5.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/pyeapi_1.png b/topologies/beta-datacenter/labguides/source/images/pyeapi_1.png
deleted file mode 100644
index 3a3768c54..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/pyeapi_1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/tshoot_intro_1.png b/topologies/beta-datacenter/labguides/source/images/tshoot_intro_1.png
deleted file mode 100644
index aae4a915e..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/tshoot_intro_1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/images/vxlan_1.png b/topologies/beta-datacenter/labguides/source/images/vxlan_1.png
deleted file mode 100644
index c0a7a78ed..000000000
Binary files a/topologies/beta-datacenter/labguides/source/images/vxlan_1.png and /dev/null differ
diff --git a/topologies/beta-datacenter/labguides/source/index.rst b/topologies/beta-datacenter/labguides/source/index.rst
deleted file mode 100644
index fb2d0040e..000000000
--- a/topologies/beta-datacenter/labguides/source/index.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-Welcome to the Arista ATD documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
- mlag.rst
- l3ls.rst
- vxlan.rst
- l2evpn.rst
- l3evpn.rst
- cvx.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: CloudVision Portal
-
- cvp_configlet.rst
- cvp_cc.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Programmability
-
- programmability_connecting.rst
- command_api.rst
- eapi.rst
- pyeapi.rst
- ansible_adhoc_and_simple_playbooks.rst
- ansible_and_jinja_templates.rst
- day2_operations.rst
- rollback.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Broadcaster Training
-
- media-IP_Intro.rst
- media-STP_SVI.rst
- media-ospf.rst
- media-bgp.rst
- media-multicast.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Troubleshooting Training
-
- tshoot-intro.rst
\ No newline at end of file
diff --git a/topologies/beta-datacenter/labguides/source/l2evpn.rst b/topologies/beta-datacenter/labguides/source/l2evpn.rst
deleted file mode 100644
index 688ec2884..000000000
--- a/topologies/beta-datacenter/labguides/source/l2evpn.rst
+++ /dev/null
@@ -1,164 +0,0 @@
-
-L2 EVPN
-=======
-
-.. image:: images/l2evpn.png
- :align: center
-
-.. note:: Based on limitations in **vEOS-LAB** data plane, EVPN with
- Multi-homing via MLAG is unsupported. As such, this lab exercise will
- not enable MLAG.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``l2evpn`` at the prompt. The script will configure the datacenter with the exception of **leaf3**
-
-2. On **leaf3**, configure ArBGP. **(Already configured and enabled on the switch)**
-
- .. code-block:: html
-
- configure
- service routing protocols model multi-agent
-
-3. Configure interfaces on **leaf3**.
-
- .. code-block:: html
-
- configure
- interface Port-Channel4
- switchport mode access
- switchport access vlan 12
- !
- interface Ethernet1
- shutdown
- !
- interface Ethernet2
- no switchport
- ip address 172.16.200.10/30
- !
- interface Ethernet3
- no switchport
- ip address 172.16.200.26/30
- !
- interface Ethernet4
- channel-group 4 mode active
- lacp timer fast
- !
- interface Ethernet5
- shutdown
- !
- interface Loopback0
- ip address 172.16.0.5/32
- !
- interface Loopback1
- ip address 3.3.3.3/32
- ip address 99.99.99.99/32 secondary
- !
-
-4. Add Underlay BGP configurations on **Leaf3**
-
- .. code-block:: html
-
- configure
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
- !
-
-5. Verify Underlay
-
- 1. On each leaf and spine
-
- .. code-block:: html
-
- show ip bgp summary
- show ip route bgp
-
-6. On **leaf3**, build BGP Overlay
-
- .. code-block:: html
-
- configure
- router bgp 65103
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT next-hop-unchanged
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community extended
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-7. Verify overlay
-
- 1. On **leaf1** and **leaf3**
-
- .. code-block:: html
-
- show bgp evpn summary
-
-8. Configure L2EVPN
-
- 1. On **leaf3**: add VLAN 12, and interface vxlan1
-
- .. code-block:: html
-
- configure
- vlan 12
- !
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1200
- !
-
- 2. On **leaf3**: add mac vrf
-
- .. code-block:: html
-
- configure
- router bgp 65103
- vlan 12
- rd 3.3.3.3:12
- route-target both 1:12
- redistribute learned
- !
-
-9. Verify VXLAN and L2EVPN
-
- 1. On **leaf1** and **leaf3** verify the IMET table
-
- .. code-block:: text
-
- show interface vxlan1
- show bgp evpn route-type imet
-
- 2. Log into **host1** and ping **host2**
-
- .. code-block:: text
-
- ping 172.16.112.202
-
- 3. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show bgp evpn route-type mac-ip
- show mac address-table dynamic
-
-**LAB COMPLETE!**
diff --git a/topologies/beta-datacenter/labguides/source/l3evpn.rst b/topologies/beta-datacenter/labguides/source/l3evpn.rst
deleted file mode 100644
index efd3f6a00..000000000
--- a/topologies/beta-datacenter/labguides/source/l3evpn.rst
+++ /dev/null
@@ -1,179 +0,0 @@
-L3 EVPN
-=======
-
-.. image:: images/l3evpn.png
- :align: center
-
-.. note:: Based on limitations in vEOS-LAB data plane, EVPN with Multi-homing via MLAG is unsupported. As such, this lab exercise will not enable MLAG.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``l3evpn`` at the prompt. The script will configure the datacenter with the exception of **leaf3**
-
-2. On **leaf3**, configure EOS to Mutli-Agent and add loopback0
-
- 1. **leaf3** enable the Multi-Agent **(Already configured and enabled on the switch)**
-
- .. code-block:: text
-
- configure
- service routing protocols model multi-agent
-
- 2. **leaf3** Underlay Interface configurations. Note the interfaces to **host2** change from previous L2EVPN lab
-
- .. code-block:: text
-
- configure
- interface Ethernet1
- shutdown
- !
- interface Ethernet2
- no switchport
- ip address 172.16.200.10/30
- !
- interface Ethernet3
- no switchport
- ip address 172.16.200.26/30
- !
- interface Ethernet4
- shutdown
- !
- interface Ethernet5
- channel-group 5 mode active
- no shutdown
- !
- interface Loopback0
- ip address 172.16.0.5/32
- !
- interface Loopback1
- ip address 3.3.3.3/32
- ip address 99.99.99.99/32 secondary
- !
-
- 3. On **leaf3** Add Underlay BGP configurations
-
- .. code-block:: text
-
- configure
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65001
- neighbor SPINE bfd
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
-
-3. Verify Underlay on **every** leaf and spine:
-
- .. code-block:: text
-
- show ip bgp summary
- show ip route bgp
-
-4. On **leaf3**, build BGP Overlay
-
- .. code-block:: text
-
- configure
- router bgp 65103
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT next-hop-unchanged
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community extended
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- !
- address-family evpn
- bgp next-hop-unchanged
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-5. Verify overlay on **leaf1** and **leaf3**:
-
- .. code-block:: text
-
- show bgp evpn summary
-
-6. Configure L3EVPN
-
- 1. Configure the VRF
-
- .. code-block:: text
-
- configure
- vrf instance vrf1
- !
- ip routing vrf vrf1
- !
- router bgp 65103
- vrf vrf1
- rd 3.3.3.3:1001
- route-target import evpn 1:1001
- route-target export evpn 1:1001
- redistribute connected
- redistribute static
- exit
- !
- exit
-
- 2. Configure vrf interfaces (start in global configuration mode not BGP)
-
- .. code-block:: text
-
- interface Port-Channel5
- switchport access vlan 2003
- no shutdown
- !
- interface Vlan2003
- mtu 9000
- no autostate
- vrf vrf1
- ip address virtual 172.16.116.1/24
- !
- interface Loopback901
- vrf vrf1
- ip address 200.200.200.2/32
- !
-
- 3. Map VRF to VNI
-
- .. code-block:: text
-
- configure
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vrf vrf1 vni 1001
- !
-
-7. Verify VRF on Leaf 1 and 3 (note route resolution over VNI and dynamic VLAN to VNI mapping)
-
- 1. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show interface vxlan1
-
- 2. Log into **host1** and ping **host2**
-
- .. code-block:: text
-
- ping 172.16.116.100
-
- 3. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show ip route vrf vrf1
- show mac address-table dynamic
-
-**LAB COMPLETE!**
diff --git a/topologies/beta-datacenter/labguides/source/l3ls.rst b/topologies/beta-datacenter/labguides/source/l3ls.rst
deleted file mode 100644
index 14f2758d6..000000000
--- a/topologies/beta-datacenter/labguides/source/l3ls.rst
+++ /dev/null
@@ -1,205 +0,0 @@
-Layer 3 Leaf-Spine
-==================
-
-.. image:: images/l3ls_1.png
- :align: center
-
-.. note:: Did you know the “bgp” script is composed of Python code that
- uses the CloudVision Portal REST API to automate the provisioning of
- CVP Configlets. The configlets that are configured via the REST API
- are ``Spine1-BGP-Lab``, ``Spine2-BGP-Lab``, ``Leaf1-BGP-Lab``,
- ``Leaf2-BGP-Lab``, ``Leaf3-BGP-Lab``, ``Leaf4-BGP-Lab``.
-
-.. note:: The manually-entered commands below that are part of this lab are
- equivalent to ``Leaf4-BGP-Lab-Full``.
-
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``bgp`` at the prompt. The script will configure the datacenter with the exception of **Leaf4**.
-
-2. Configure SVI and VARP Virtual IP on the **Leaf4** switch using the following criteria
-
- 1. Create the vARP MAC Address in Global Configuration mode
-
- .. code-block:: text
-
- configure
- ip virtual-router mac-address 00:1c:73:00:00:34
-
- 2. Create the SVI and the Virtual Router Address
-
- .. code-block:: text
-
- configure
- interface vlan 34
- ip address 172.16.116.3/24
- ip virtual-router address 172.16.116.1
-
- 3. Validate the configuration issue the following commands
-
- .. code-block:: text
-
- show ip interface brief
- show ip virtual-router
-
-3. Configure BGP on the **Leaf4** switch using the following criteria
-
- 1. Based on the diagram, configure L3 interfaces to **Spine1/Spine2** and interface Loopback0
-
- .. code-block:: text
-
- configure
- interface ethernet2
- no switchport
- ip address 172.16.200.14/30
-
- interface ethernet3
- no switchport
- ip address 172.16.200.30/30
-
- interface loopback0
- ip address 172.16.0.6/32
-
- 2. Validate the configuration issue the following commands
-
- .. code-block:: text
-
- show ip interface brief
-
- 3. Based on the diagram, turn on BGP and configure the neighbor
- relationships on **Leaf4**. eBGP to **Spine1/Spine2** and iBGP to **Leaf3**.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- router-id 172.16.0.6
- neighbor 172.16.200.13 remote-as 65000
- neighbor 172.16.200.29 remote-as 65000
- neighbor 172.16.34.1 remote-as 65002
- neighbor 172.16.34.1 next-hop-self
-
- .. note:: Since ``neighbor 172.16.34.1 remote-as 65002`` specifies an iBGP
- peering relationship (because the ASN is the same as this switch
- ``65002``) the receiving switch may not have a route to networks more
- than 1 hop away, hence the switches should each advertise that they are
- the next hop via the ``neighbor 172.16.34.1 next-hop-self`` statement. While this scenario is
- only 2 iBGP peers, in a network fabric with several iBGP peers, a
- switch inside an AS (and not on an edge) may not have a route to a
- switch in any external AS.
-
- 4. Validate the configuration and neighbor establishment
-
- .. code-block:: text
-
- show active
- show ip bgp summary
-
-4. Configure networks on **Leaf4** to advertise to **Spine1/Spine2**
-
- 1. Add the following networks to BGP announcements on **Leaf4**:
-
- .. code-block:: text
-
- configure
- router bgp 65002
- network 172.16.0.6/32
- network 172.16.116.0/24
-
- 2. Verify all of the **Spines** and **Leafs** see these new network announcements
-
- .. code-block:: text
-
- show ip route
- show ip bgp
- show ip route bgp
-
- 3. Add in multiple paths by enabling ECMP, on **Leaf4**, jump into BGP configuration mode and add:
-
- .. code-block:: text
-
- configure
- router bgp 65002
- maximum-paths 4 ecmp 4
-
- 4. Check the BGP and IP route tables on each of the **Spines** and **Leafs**
-
- .. code-block:: text
-
- show ip bgp
- show ip route
- show ip route bgp
-
- .. note:: ECMP is now working - notice the new status code in the `show ip bgp` output
-
-5. Validate connectivity from **Host1** to **Host2**. From **Host1** execute:
-
- .. code-block:: text
-
- enable
- ping 172.16.116.100
- traceroute 172.16.116.100
-
- 1. Verify Leaf4's IP address is in the traceroute path, either interface 172.16.200.14 via spine1 or interface 172.16.200.30 via spine2.
- If traffic is hashing via leaf3's 172.16.200.10 or 172.16.200.26 interfaces perform the optional ``shutdown`` steps below on **Leaf3**
-
- .. code-block:: text
-
- configure
- router bgp 65002
- neighbor 172.16.200.9 shutdown
- neighbor 172.16.200.25 shutdown
-
- 2. Rerun traceroute/verification from **Host1** to **Host2** then revert the ``shutdown`` changes on **Leaf3**
-
- .. code-block:: text
-
- configure
- router bgp 65002
- no neighbor 172.16.200.9 shutdown
- no neighbor 172.16.200.25 shutdown
-
-6. Other BGP features to play with if you have time:
-
- 1. Route Redistribution: For fun do a ``watch 1 diff show ip route | begin
- Gateway`` on **Leaf1** & **Leaf2** and let those run while you execute the
- command ``redistribute connected`` below on **Leaf3**. You will see new routes being
- injected into the route tables of **Leaf1** & **Leaf2**.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- redistribute connected
-
- 2. Route Maps:
-
- .. code-block:: text
-
- configure
- route-map etc
-
- 3. BFD: BFD is a low-overhead, protocol-independent mechanism which adjacent
- systems can use instead for faster detection of faults in the path between
- them. BFD is a simple mechanism which detects the liveness of a connection
- between adjacent systems, allowing it to quickly detect failure of any
- element in the connection.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- neighbor fall-over bfd
-
-7. Troubleshooting BGP:
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip bgp neighbor x.x.x.x
- show run section bgp
- show log
-
-**LAB COMPLETE!**
diff --git a/topologies/beta-datacenter/labguides/source/media-IP_Intro.rst b/topologies/beta-datacenter/labguides/source/media-IP_Intro.rst
deleted file mode 100644
index 8658d35e9..000000000
--- a/topologies/beta-datacenter/labguides/source/media-IP_Intro.rst
+++ /dev/null
@@ -1,155 +0,0 @@
-Media Intro to IP Lab
-=====================
-
-.. image:: images/media-IP.Intro.png
- :align: center
-
-.. note:: An IP address serves two principal functions. It identifies the host, or more specifically its network interface, and it provides the location of the host in the network, and thus the capability of establishing a path to that host. Its role has been characterized as follows: "A name indicates what we seek. An address indicates where it is. A route indicates how to get there."
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` or option ``97`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` or option ``2`` at this prompt to open the media lab section.
- 3. Type ``media-setup`` or option ``1`` at this prompt and wait for the process to run.
- 4. The script will configure the topology with the exception of **Leaf 4**. The main task is to configure the remaining device so there is connectivity between the two hosts
-
-
-2. Connect to **Leaf 4** from the menu:
-
- 1. Connect to ``Leaf 4`` by selecting option ``6`` from the ``Device SSH`` menu (Type ``ssh`` or option ``98`` at the prompt). Once in the switch we are in the *Privileged EXEC* mode, denoted by the **#** preceding the device name. This is similar to a admin user, in this mode can configure and view information on the switch. To configure devices we will need to go into the global configuration mode by typing *configure* at the prompt, in *Privileged EXEC (enable)* mode. As you do the labs you will see this *configure* command being used to ensure that you are in the *config* mode. One prompt that you may come across is the **>** this denotes that you are in EXEC mode, where you can do basic tests and view system information. EXEC mode is the default mode for all switches.
-
-
-3. Configure the proper ip address on the interfaces along with the appropriate static routes to ensure there is end-to-end connectivity for the two end hosts to reach each other. All interfaces in this lab are designed as point-to-point connections
-
- 1. On **Leaf 4** assign the appropriate ip address and ensure the adjacent devices can be reached
-
- .. code-block:: text
-
- configure
- !
- interface Ethernet 3
- no switchport
- ip address 10.127.34.4/24
- !
- interface Ethernet 4
- no switchport
- ip address 172.16.46.4/24
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#interface ethernet 3
- leaf4(config-if-Et3)#no switchport
- leaf4(config-if-Et3)#ip address 10.127.34.4/24
- leaf4(config-if-Et3)#interface ethernet 4
- leaf4(config-if-Et4)#no switchport
- leaf4(config-if-Et4)#ip address 172.16.46.4/24
-
-
- .. note::
- It is worth mentioning by default all interfaces on an Arista switch is set to be a switchport (Layer 2 interface). We need to allow it to be a routed interface and thus ``no switchport`` is added (turns into Layer 3 interface). Once the IP address has been added to the appropriate interface, ensure reachability to the adjacent device by leveraging the ``ping`` command on **Leaf 4**
-
- .. code-block:: text
-
-
- ping 10.127.34.3
- ping 172.16.46.6
-
- **Example:**
-
- .. code-block:: text
-
- leaf4# ping 10.127.34.3
- PING 10.127.34.3 (10.127.34.3) 72(100) bytes of data.
- 80 bytes from 10.127.34.3: icmp_seq=1 ttl=64 time=17.0 ms
- 80 bytes from 10.127.34.3: icmp_seq=2 ttl=64 time=18.8 ms
- 80 bytes from 10.127.34.3: icmp_seq=3 ttl=64 time=14.9 ms
- 80 bytes from 10.127.34.3: icmp_seq=4 ttl=64 time=12.6 ms
-
- --- 10.127.34.3 ping statistics ---
- 5 packets transmitted, 4 received, 20% packet loss, time 62ms
- rtt min/avg/max/mdev = 12.605/15.868/18.844/2.332 ms, pipe 2, ipg/ewma 15.602/16.435 ms
-
- leaf4# ping 172.16.46.6
- PING 172.16.46.6 (172.16.46.6) 72(100) bytes of data.
- 80 bytes from 172.16.46.6: icmp_seq=1 ttl=64 time=38.4 ms
- 80 bytes from 172.16.46.6: icmp_seq=2 ttl=64 time=32.1 ms
- 80 bytes from 172.16.46.6: icmp_seq=3 ttl=64 time=28.0 ms
- 80 bytes from 172.16.46.6: icmp_seq=4 ttl=64 time=31.6 ms
- 80 bytes from 172.16.46.6: icmp_seq=5 ttl=64 time=12.7 ms
-
- --- 172.16.46.6 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 68ms
- rtt min/avg/max/mdev = 12.797/28.603/38.419/8.584 ms, pipe 4, ipg/ewma 17.163/32.954 ms
-
-
- At this point if the adjacent devices can be reached, you have configured the IP address correctly
-
-
- 2. Once the address has been assigned to the appropriate interfaces, we can enable the routing as well as add the appropriate static routes on **Leaf 4** to allow reachability between the two host end-points.
-
-
- .. code-block:: text
-
- configure
- !
- ip routing
- !
- ip route 172.16.15.0/24 10.127.34.3
- !
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#configure
- leaf4(config)#ip routing
- leaf4(config)#ip route 172.16.15.0/24 10.127.34.3
-
- .. note::
- We added the entire prefix for the static route but we could have also put the specific host address. Normally your internal security policies will dictate which approach to take
-
-
-4. Validate end-to-end connectivity from the hosts once IP addresses and static routes have been configured from the previous steps
-
- 1. Log into **Host 2** and verify there is reachability to **Host 1**
-
- .. code-block:: text
-
- ping 172.16.15.5
-
- **Example:**
-
- .. code-block:: text
-
- host2# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=60 time=307 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=60 time=300 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=60 time=296 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=60 time=293 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=60 time=289 ms
-
- --- 172.16.15.5 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 43ms
- rtt min/avg/max/mdev = 289.129/297.583/307.932/6.497 ms, pipe 5, ipg/ewma 10.984/302.312 ms
-
- If all the IP address and routing settings have been completed correctly, then you should have reachability
-
-.. admonition:: **Test your knowledge:**
-
- When **Leaf 4** receives the incoming icmp packet from **Host 2**, what would the process be for the switch to determine the path for the packet to be fowarded?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show ip route
- - show ip arp
- - show ip interface brief
- - show interface status
diff --git a/topologies/beta-datacenter/labguides/source/media-STP_SVI.rst b/topologies/beta-datacenter/labguides/source/media-STP_SVI.rst
deleted file mode 100644
index 543515e0f..000000000
--- a/topologies/beta-datacenter/labguides/source/media-STP_SVI.rst
+++ /dev/null
@@ -1,276 +0,0 @@
-Media STP and SVI Lab
-======================
-
-.. image:: images/media-STP.&.SVI.png
- :align: center
-
-.. note:: The Spanning-Tree protocol (STP) was initially invented in 1985 and is one of the oldest networking protocols being used in Layer 2 network topologies today. STP is classified as a network protocol that builds loop-free logical topology for Ethernet (initially bridged) networks.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` or option ``97`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` or option ``2`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` or option ``97`` to go back).
- 3. If this is your first media lab, type ``media-setup`` or option ``1`` at this prompt and wait for the process to run to prepare the lab environment.
- 4. Type ``media-vlan`` or option ``3`` at the prompt. The script will configure the topology with the exception of **Leaf 4**.
-
- 5. On **Spine 2**, verify spanning-tree operation with the topology, you should see **Spine 1** as the root bridge by viewing the Bridge ID and the interfaces designated as a Root port. Root ports points towards the root bridge, which in this case would be Spine 1. When you run the following command which interfaces would you expect to be your root port(s)?
-
- .. code-block:: text
-
- show spanning-tree
-
-
- **Example:**
-
- .. code-block:: text
-
- spine2#show spanning-tree
- MST0
- Spanning tree enabled protocol mstp
- Root ID Priority 4096
- Address 2cc2.6056.df93
- Cost 0 (Ext) 2000 (Int)
- Port 1 (Ethernet1)
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Bridge ID Priority 8192 (priority 8192 sys-id-ext 0)
- Address 2cc2.6094.d76c
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Interface Role State Cost Prio.Nbr Type
- ---------------- ---------- ---------- --------- -------- --------------------
- Et1 root forwarding 2000 128.1 P2p
- Et2 designated forwarding 2000 128.2 P2p
- Et5 designated forwarding 2000 128.5 P2p
- Et6 designated forwarding 2000 128.6 P2p Edge
- Et7 designated forwarding 2000 128.7 P2p Edge
-
-2. Configure the VLAN and interface types on **Leaf 4** to allow the spanning-tree protocol to operate and have reachability for **Host 2**.
-
-
- 1. On **Leaf 4** create the Layer 2 instance of vlan 100. Creating this vlan will add itself to the spanning-tree process.
-
- .. code-block:: text
-
- configure
- vlan 100
- name v100
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#vlan 100
- leaf4(config-vlan-100)#name v100
-
- We can verify its creation with the following command. This command can also show if there are any physical interfaces associated to the vlan.
-
- .. code-block:: text
-
- show vlan
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-vlan-100)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et2, Et3, Et4, Et6, Et7, Et8
- Et9, Et10, Et11, Et12, Et13
- Et14, Et15, Et16, Et17, Et18
- Et19, Et20, Et21, Et22, Et23
- Et24, Et25, Et26, Et27, Et28
- Et29, Et30, Et31, Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 100 v100 active
-
-
-
- 2. Once the vlan is created, we can define on the uplink ports on **Leaf 4** as trunk links, as well allow vlan 100 to pass on the trunk.
-
- .. code-block:: text
-
- configure
- interface Ethernet2
- switchport trunk allowed vlan 100
- switchport mode trunk
- !
- interface Ethernet3
- switchport trunk allowed vlan 100
- switchport mode trunk
- !
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-vlan-100)#configure
- leaf4(config)#interface ethernet 2-3
- leaf4(config-if-Et2-3)#switchport mode trunk
- leaf4(config-if-Et2-3)#switchport trunk allowed vlan 100
-
- .. note::
- By default once an interface is configured as a trunk, all vlans will be associated to it. It is good security practice to associate the specific vlans to pass on the trunk links and take part in the spanning-tree process
-
- Once the interface configuration has been completed for the trunk links, you can verify the spanning-tree topology and see the root bridge is **Spine 1** and the connection to **Spine 2** has been blocked for loop prevention
-
- .. code-block:: text
-
- show spanning-tree
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et2-3)#show spanning-tree
- MST0
- Spanning tree enabled protocol mstp
- Root ID Priority 4096
- Address 2cc2.6056.df93
- Cost 0 (Ext) 2000 (Int)
- Port 2 (Ethernet2)
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Bridge ID Priority 32768 (priority 32768 sys-id-ext 0)
- Address 2cc2.60b5.96d9
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Interface Role State Cost Prio.Nbr Type
- ---------------- ---------- ---------- --------- -------- --------------------
- Et2 root forwarding 2000 128.2 P2p
- Et3 alternate discarding 2000 128.3 P2p
- Et4 designated forwarding 2000 128.4 P2p Edge
- Et6 designated forwarding 2000 128.6 P2p Edge
- Et7 designated forwarding 2000 128.7 P2p Edge
- Et8 designated forwarding 2000 128.8 P2p Edge
- Et9 designated forwarding 2000 128.9 P2p Edge
- Et10 designated forwarding 2000 128.10 P2p Edge
-
-
- 3. Once the Layer 2 topology has been setup, we can configure the connection to our host as an access port to allow **Host 2** to pass traffic onto the topology
-
- .. code-block:: text
-
- configure
- interface Ethernet4
- switchport access vlan 100
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et2-3)#configure
- leaf4(config)#interface ethernet 4
- leaf4(config-if-Et4)#switchport access vlan 100
-
-3. Validate end-to-end connectivity after configuring the Layer 2 interfaces. Once the spanning tree has converged for the topology we can observe the results.
-
- 1. Validate the vlan port association and spanning-tree topology is correct
-
- .. code-block:: text
-
- show vlan
- show spanning-tree
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et6, Et7, Et8, Et9, Et10, Et11
- Et12, Et13, Et14, Et15, Et16
- Et17, Et18, Et19, Et20, Et21
- Et22, Et23, Et24, Et25, Et26
- Et27, Et28, Et29, Et30, Et31
- Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 100 v100 active Et2, Et3, Et4
-
-
- leaf4(config-if-Et3)#show spanning-tree
- MST0
- Spanning tree enabled protocol mstp
- Root ID Priority 4096
- Address 2cc2.6056.df93
- Cost 0 (Ext) 2000 (Int)
- Port 2 (Ethernet2)
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Bridge ID Priority 32768 (priority 32768 sys-id-ext 0)
- Address 2cc2.60b5.96d9
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Interface Role State Cost Prio.Nbr Type
- ---------------- ---------- ---------- --------- -------- --------------------
- Et2 root forwarding 2000 128.2 P2p
- Et3 alternate discarding 2000 128.3 P2p
- Et4 designated forwarding 2000 128.4 P2p Edge
- Et6 designated forwarding 2000 128.6 P2p Edge
- Et7 designated forwarding 2000 128.7 P2p Edge
- Et8 designated forwarding 2000 128.8 P2p Edge
- Et9 designated forwarding 2000 128.9 P2p Edge
- Et10 designated forwarding 2000 128.10 P2p Edge
-
-
- You should see the root bridge is towards **Spine 1** and vlan 100 should be associated to interfaces eth2, eth3 and eth4
-
- 2. Log into **Host 2** and verify you can reach the SVI for vlan 100 as well as reachability to **Host 1**
-
- .. code-block:: text
-
- SVI (Vlan 100 gateway on Spine 1)
- ping 172.16.46.4
-
- host2# ping 172.16.46.4
- PING 172.16.46.4 (172.16.46.4) 72(100) bytes of data.
- 80 bytes from 172.16.46.4: icmp_seq=1 ttl=64 time=35.3 ms
- 80 bytes from 172.16.46.4: icmp_seq=2 ttl=64 time=51.3 ms
- 80 bytes from 172.16.46.4: icmp_seq=3 ttl=64 time=49.9 ms
- 80 bytes from 172.16.46.4: icmp_seq=4 ttl=64 time=48.9 ms
- 80 bytes from 172.16.46.4: icmp_seq=5 ttl=64 time=35.6 ms
-
- --- 172.16.46.4 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 73ms
- rtt min/avg/max/mdev = 35.313/44.256/51.377/7.192 ms, pipe 4, ipg/ewma 18.302/39.598 ms
-
-
- Host 1
- ping 172.16.15.5
-
- host2# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- From 172.16.46.4: icmp_seq=1 Redirect Host(New nexthop: 172.16.15.5)
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=63 time=237 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=63 time=233 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=63 time=250 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=63 time=257 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=63 time=257 ms
-
- --- 172.16.15.5 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 43ms
- rtt min/avg/max/mdev = 233.030/247.345/257.699/10.206 ms, pipe 5, ipg/ewma 10.926/243.255 ms
-
- If all the SVI and STP settings have been completed correctly you should be able to ping the remote host as well as the SVI interface itself configured on **Spine 1** which is also the root bridge for this topology.
-
-
- .. admonition:: **Test your knowledge:**
-
- When you are verifying the spanning-tree topology from **Leaf 4**, what are some of the reasons for the root bridge selection?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show vlan
- - show interfaces trunk
- - show interfaces status
- - show spanning-tree
diff --git a/topologies/beta-datacenter/labguides/source/media-bgp.rst b/topologies/beta-datacenter/labguides/source/media-bgp.rst
deleted file mode 100644
index c2a2bcfd7..000000000
--- a/topologies/beta-datacenter/labguides/source/media-bgp.rst
+++ /dev/null
@@ -1,315 +0,0 @@
-Media BGP Lab
-=============
-
-.. image:: images/media-BGP.png
- :align: center
-
-.. note:: The Border Gateway Protocol (BGP) makes routing decisions based on paths (protocol is classified as a path vector) and is widely used in the backbone of the internet to redistribute information
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` or option ``97`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` or option ``2`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` or option ``97`` to go back).
- 3. If this is your first media lab, type ``media-setup`` or option ``1`` at this prompt and wait for the process to run to prepare the lab environment.
- 4. Type ``media-bgp`` or option ``5`` at the prompt. The script will configure the topology with the exception of **Leaf 4**.
-
- 5. On **spine2**, verify the BGP operation (it should not be operating correctly) and current routing table and command outputs similar to the outputs below.
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip route
-
-
- **Example:**
-
- .. code-block:: text
-
- spine2#show ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.127.255.3, local AS number 2
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.127.23.2 4 1 7 6 0 0 00:02:03 Estab 2 2
- 10.127.34.4 4 2 0 0 0 0 00:02:10 Active
-
-
-
-
- spine2#show ip bgp
- BGP routing table information for VRF default
- Router identifier 10.127.255.3, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.255.1/32 10.127.23.2 0 100 0 1 i
- * > 172.16.15.0/24 10.127.23.2 0 100 0 1 i
-
-
-
- spine2#show ip route
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- C 10.127.23.0/24 is directly connected, Ethernet1
- C 10.127.34.0/24 is directly connected, Ethernet5
- B E 10.127.255.1/32 [200/0] via 10.127.23.2, Ethernet1
- C 10.127.255.3/32 is directly connected, Loopback0
- B E 172.16.15.0/24 [200/0] via 10.127.23.2, Ethernet1
- C 192.168.0.0/24 is directly connected, Management1
-
- All the routing entries with a preceding "B" was learned by the BGP protocol on Spine2.
-
-2. Configure Loopback 0 on **Leaf 4** with the following commands
-
- 1. Under Loopback 0 interface assign the ip. This will be used to define the Router-id in the next step. Loopbacks are used as as router-id addresses, as they are an always available interface that can be advertised reliably.
-
- .. code-block:: text
-
- configure
- interface loopback 0
- ip address 10.127.255.4/32
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#interface loopback 0
- leaf4(config-if-Lo0)#ip address 10.127.255.4/32
-
-
-3. Configure BGP on the **Leaf4** switch using the following criteria
-
- 1. Configure BGP router process (also the autonomous system number, ASN) on **Leaf4**. **Leaf 4** will be configured to communicate to adjacent BGP speakers (**Spine2** in this case). The router-id is configured so it can be consistent and not randomly chosen (normally the peering interface if not specified).
-
- .. code-block:: text
-
- configure
- router bgp 2
- router-id 10.127.255.4
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#configure
- leaf4(config)#router bgp 2
- leaf4(config-router-bgp)#router-id 10.127.255.4
-
- .. note::
- The process number for BGP corresponds to the autonomous-system number (ASN) the router is associated with and is globally significant. These values should not be chosen randomly and should be part of a larger design scheme for the environment.
-
- 2. BGP neighbours are explicitly defined so only the desired neighbors create a session with. A TCP connection is established between the two peers (using port 179) in which the routing information can be securely transported between the peers.
-
- .. code-block:: text
-
- configure
- router bgp 2
- neighbor 10.127.34.3 remote-as 2
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#configure
- leaf4(config)#router bgp 2
- leaf4(config-router-bgp)#neighbor 10.127.34.3 remote-as 2
-
- The BGP session we are setting up on **Leaf4** to **Spine2** is considered a point-to-point iBGP (Internal BGP) connection because they are a part of the same autonomous-system (AS).
-
- .. note::
- Although there are mechanisms to allow all incoming BGP sessions to be established, these are typically corner cases in which you will use that approach. It is best common practice to specify your desired neighbor to establish a session with along with a md5 hash password for an extra level of security.
-
- 3. By default, the BGP protocol will only re-advertise eBGP (external) prefixes it has leaned to its other iBGP / eBGP peers. We will need to tell the BGP process what to advertise by various methods. In this lab we want the router to advertise its connected (vlan) prefix
-
- .. code-block:: text
-
- configure
- router bgp 2
- redistribute connected
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#router bgp 2
- leaf4(config-router-bgp)#redistribute connected
-
- Once the ``redistribute connected`` command has been added, we can actually see the prefixes our switch (Leaf4) is receiving and advertising
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp neighbors 10.127.34.3 advertised-routes
- show ip bgp neighbors 10.127.34.3 received-routes
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-router-bgp)#show ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.127.34.3 4 2 22 22 0 0 00:10:37 Estab 2 2
-
-
-
- leaf4(config-router-bgp)#show ip bgp neighbors 10.127.34.3 advertised-routes
- BGP routing table information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.34.0/24 10.127.34.4 - 100 - i
- * > 10.127.255.4/32 10.127.34.4 - 100 - i
- * > 172.16.46.0/24 10.127.34.4 - 100 - i
- * > 192.168.0.0/24 10.127.34.4 - 100 - i
-
-
-
- leaf4(config-router-bgp)#show ip bgp neighbors 10.127.34.3 received-routes
- BGP routing table information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.255.1/32 10.127.34.3 - 100 - 1 i
- * > 172.16.15.0/24 10.127.34.3 - 100 - 1 i
-
-4. We will now validate the end-to-end connectivity once BGP neighbor relationship has been established
-
- 1. Confirm the BGP neighbor relationship has been established and the routing table on **Leaf4** has been populated with the appropriate entries as shown on the outputs below
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip route
- show ip route bgp
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-router-bgp)#show ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.127.34.3 4 2 22 22 0 0 00:10:37 Estab 2 2
-
-
- leaf4(config-router-bgp)#show ip bgp
- BGP routing table information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.34.0/24 - 1 0 - i
- * > 10.127.255.1/32 10.127.34.3 0 100 0 1 i
- * > 10.127.255.4/32 - 0 0 - i
- * > 172.16.15.0/24 10.127.34.3 0 100 0 1 i
- * > 172.16.46.0/24 - 1 0 - i
- * > 192.168.0.0/24 - 1 0 - i
-
-
-
- leaf4(config-router-bgp)#show ip route | Begin Gateway
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- C 10.127.34.0/24 is directly connected, Ethernet3
- B I 10.127.255.1/32 [200/0] via 10.127.34.3, Ethernet3
- C 10.127.255.4/32 is directly connected, Loopback
- B I 172.16.15.0/24 [200/0] via 10.127.34.3, Ethernet3
- C 172.16.46.0/24 is directly connected, Ethernet4
- C 192.168.0.0/24 is directly connected, Management1
-
-
-
- leaf4(config-router-bgp)#show ip route bgp
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- B I 10.127.255.1/32 [200/0] via 10.127.34.3, Ethernet3
- B I 172.16.15.0/24 [200/0] via 10.127.34.3, Ethernet3
-
-
- The routing table output should list all routing entries to ensure reachability between the 2 hosts
-
-
- 2. To confirm connectivity, log into **Host 2** and execute a ping command to **Host 1**
-
- .. code-block:: text
-
- ping 172.16.15.5
-
- **Example:**
-
- .. code-block:: text
-
- host2(config)# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=60 time=436 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=60 time=433 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=60 time=429 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=60 time=425 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=60 time=422 ms
-
- If all the BGP configuration have been applied successfully and the routing table on **Leaf 4** is correct then **Host 1** should be reachable from **Host 2**.
-
-.. admonition:: **Test your knowledge:**
-
- When **Leaf 4** receives the incoming routes from **Spine 2**, why can we not reach all the infrastructure IP addresses?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show ip route
- - show ip route bgp
- - show ip bgp summary
- - show ip bgp
- - show ip bgp neighbors advertised-routes
- - show ip bgp neighbors received-routes
diff --git a/topologies/beta-datacenter/labguides/source/media-multicast.rst b/topologies/beta-datacenter/labguides/source/media-multicast.rst
deleted file mode 100644
index 743dbe006..000000000
--- a/topologies/beta-datacenter/labguides/source/media-multicast.rst
+++ /dev/null
@@ -1,413 +0,0 @@
-Advanced Networking for Media Engineers
-=======================================
-
-.. image:: images/media-multicast.png
- :align: center
-
-.. note:: To simplify the training using our multicast topology, this exercise will disable Leaf2 and Leaf3. This lab is a continuation of the concepts from the previous Broadcast Engineer Labs
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` or option ``97`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` or option ``2`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` or option ``97`` to go back).
- 3. If this is your first media lab, type ``media-setup`` or option ``1`` at this prompt and wait for the process to run to prepare the lab environment.
- 4. Type ``media-mcast`` or option ``6`` at the prompt. The script will pre-configure the topology with the exception of Leaf4 and Hosts 1 & 2.
-
-2. Create Vlan 46 & SVI for host access vlan on **Leaf 4**.
- 1. On **Leaf 4** we will create an vlan and a SVI
-
- .. code-block:: text
-
- vlan 46
- !
- interface Vlan46
- no autostate
- ip address 172.16.46.4/24
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#vlan 46
- leaf4(config)#interface vlan 46
- leaf4(config-if-Vl46)#no autostate
- leaf4(config-if-Vl46)#ip address 172.16.46.4/24
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et6, Et7, Et8, Et9, Et10, Et11
- Et12, Et13, Et14, Et15, Et16
- Et17, Et18, Et19, Et20, Et21
- Et22, Et23, Et24, Et25, Et26
- Et27, Et28, Et29, Et30, Et31
- Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 46 VLAN0046 active Cpu
-
-
- leaf4(config)#show ip int brief
- Interface IP Address Status Protocol MTU
- Management1 192.168.0.17/24 down notpresent 1500
- Vlan46 172.16.46.4/24 up up 1500
-
-
-3. Create connectivity for **Host 2** on **Leaf 4**
- 1. On **Leaf 4**, interface *Ethernet 4* is attached to **Host 2**, associate the port as access vlan 46.
-
- .. code-block:: text
-
- interface Ethernet4
- switchport access vlan 46
- no shutdown
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#switchport access vlan 46
- leaf4(config-if-Et4)#no shutdown
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et6, Et7, Et8, Et9, Et10, Et11
- Et12, Et13, Et14, Et15, Et16
- Et17, Et18, Et19, Et20, Et21
- Et22, Et23, Et24, Et25, Et26
- Et27, Et28, Et29, Et30, Et31
- Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 46 VLAN0046 active Cpu, Et4
-
-
-4. Create uplink connectivity to **Spine 2**
- 1. On **Leaf 4**, *Ethernet 3* is connected to **Spine 2**. Create a routed port for uplink access
-
- .. code-block:: text
-
- interface Ethernet3
- no switchport
- mtu 9214
- ip address 172.16.200.26/30
- no shutdown
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#interface ethernet 3
- leaf4(config-if-Et3)#no switchport
- leaf4(config-if-Et3)#ip address 172.16.200.26/30
- leaf4(config-if-Et3)#mtu 9214
- leaf4(config-if-Et3)#no shutdown
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4#sh ip int br
- Interface IP Address Status Protocol MTU
- Ethernet3 172.16.200.26/30 up up 1500
- Management1 192.168.0.17/24 down notpresent 1500
- Vlan46 172.16.46.4/24 up up 1500
-
-
-5. Enable OSPF & verify connectivity
- 1. On **Leaf 4**, create a loopback interface & assign an IP to be used as the Router-ID. On **Leaf 4**, enable the OSPF routing process and assign the networks to be advertised
-
- .. code-block:: text
-
- interface Loopback0
- ip address 172.16.0.4/32
- !
- router ospf 6500
- router-id 172.16.0.4
- passive-interface Loopback0
- passive-interface Vlan46
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.46.0/24 area 0.0.0.0
- network 172.16.200.24/30 area 0.0.0.0
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#interface loopback 0
- leaf4(config-if-Lo0)#ip address 172.16.0.4/32
- leaf4(config-if-Lo0)#
- leaf4(config-if-Lo0)#router ospf 6500
- leaf4(config-router-ospf)#router-id 172.16.0.4
- leaf4(config-router-ospf)#passive-interface loopback 0
- leaf4(config-router-ospf)#passive-interface vlan46
- leaf4(config-router-ospf)#network 172.16.0.0/24 area 0.0.0.0
- leaf4(config-router-ospf)#network 172.16.46.0/24 area 0.0.0.0
- leaf4(config-router-ospf)#network 172.16.200.24/30 area 0.0.0.0
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config-router-ospf)#show ip int br
- Interface IP Address Status Protocol MTU
- Ethernet3 172.16.200.26/30 up up 1500
- Loopback0 172.16.0.4/32 up up 65535
- Management1 192.168.0.17/24 down notpresent 1500
- Vlan46 172.16.46.4/24 up up 1500
-
-
-
- 2. Issue a ``show ip route`` command on Leaf 4. Output should show the following networks from Leaf 1 being advertised and shows a Full/BR state with Leaf 1, its neighbor.
-
- **Routing Table Example:**
-
- .. code-block:: text
-
- leaf4#show ip route
-
- leaf4(config-if-Et3)#show ip route | begin Gateway
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- O 172.16.0.1/32 [110/40] via 172.16.200.25, Ethernet3
- O 172.16.0.2/32 [110/30] via 172.16.200.25, Ethernet3
- O 172.16.0.3/32 [110/20] via 172.16.200.25, Ethernet3
- C 172.16.0.4/32 is directly connected, Loopback0
- O 172.16.15.0/24 [110/40] via 172.16.200.25, Ethernet3
- C 172.16.46.0/24 is directly connected, Vlan46
- O 172.16.200.0/30 [110/30] via 172.16.200.25, Ethernet3
- C 172.16.200.24/30 is directly connected, Ethernet3
- O 172.16.200.32/30 [110/20] via 172.16.200.25, Ethernet3
- C 192.168.0.0/24 is directly connected, Management1
-
-
- **OSPF Neighbor Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#show ip ospf neighbor
- Neighbor ID VRF Pri State Dead Time Address Interface
- 172.16.0.3 default 1 FULL/DR 00:00:37 172.16.200.25 Ethernet3
-
-
-6. Test End to End Connectivity on From Host 2
- 1. Issue a ping command from **Host 2** in network 172.16.46.0/24 to **Host 1** on 172.16.15.0/2
-
- .. code-block:: text
-
- Select Host 2 from main menu
- Confirm Gateway of Host 1 is accessible at 172.16.15.1 and the Host 1 At 172.16.15.5
-
- ping 172.16.15.1
- ping 172.16.15.5
-
- ex.
- host2# ping 172.16.15.1
- host2# ping 172.16.15.5
-
- Ensure you have connectivity before commencing the next step
-
-7. Enabling Multicast Routing
- 1. On **Leaf 4**, enable multicast routing using the following commands; We will be enabling multicast routing on Leaf 4 and assigning the interfaces to participate in multicast routing. As well we will define the RP address on the switch.
-
-
- .. code-block:: text
-
- ip multicast-routing
- !
- ip pim rp-address 172.16.0.1
- !
- interface Vlan46
- ip pim sparse-mode
- !
- !
- interface Ethernet3
- ip pim sparse-mode
- !
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#ip multicast-routing
- leaf4(config)#ip pim rp-address 172.16.0.1
- leaf4(config)#int vlan 46
- leaf4(config-if-Vl46)#ip pim sparse-mode
- leaf4(config-if-Vl46)#int et3
- leaf4(config-if-Et3)#ip pim sparse-mode
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#sh ip pim rp
- Group: 224.0.0.0/4
- RP: 172.16.0.1
- Uptime: 0:02:56, Expires: never, Priority: 0, Override: False
-
- leaf4(config-if-Et3)#show ip pim neighbor
- PIM Neighbor Table
- Neighbor Address Interface Uptime Expires Mode
- 172.16.200.25 Ethernet3 00:02:41 00:01:32 sparse
-
-
-8. Start Server on the Host 1
- 1. Going back to the menu screen, select **Host 1**. Enter the bash prompt on from the CLI prompt and enable the source. This will run for 1800 seconds
-
- **Example:**
-
- .. code-block:: text
-
- On Host 1 type the following:
- host1# bash
- [arista@host1 ~]$ /mnt/flash/mcast-source.sh
-
- **Verification:**
-
- .. code-block:: text
-
- [arista@host1 flash]$ ./mcast-source.sh
- ------------------------------------------------------------
- [arista@host1 flash]$ Client connecting to 239.103.1.1, UDP port 5001
- Sending 1470 byte datagrams
- Setting multicast TTL to 10
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- [ 3] local 10.33.157.26 port 38605 connected with 239.103.1.1 port 5001
- ------------------------------------------------------------
- Client connecting to 239.103.1.3, UDP port 5001
- Sending 1470 byte datagrams
- Setting multicast TTL to 10
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- ------------------------------------------------------------
- Client connecting to 239.103.1.2, UDP port 5001
- Sending 1470 byte datagrams
- Setting multicast TTL to 10
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- [ 3] local 10.33.157.26 port 53682 connected with 239.103.1.2 port 5001
- [ 3] local 10.33.157.26 port 40187 connected with 239.103.1.3 port 5001
- [ ID] Interval Transfer Bandwidth
- [ 3] 0.0- 1.0 sec 31.6 KBytes 259 Kbits/sec
-
-
- Open a new ssh session leaving the source script running
-
-
-9. Start Receiver on Host 2
- 1. Going back to the menu screen, select Host 2. Enter the bash prompt on from the CLI prompt and enable the receiver.
-
- **Example:**
-
- .. code-block:: text
-
- On Host 2 type the following:
- host2# bash
- [arista@host2 ~]$ /mnt/flash/mcast-receiver.sh
-
- **Verification:**
-
- .. code-block:: text
-
- [arista@host2 ~]$ /mnt/flash/mcast-receiver.sh
- [arista@host2 ~]$ ------------------------------------------------------------
- Server listening on UDP port 5001
- Binding to local address 239.103.1.1
- Joining multicast group 239.103.1.1
- Receiving 1470 byte datagrams
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- ------------------------------------------------------------
- Server listening on UDP port 5001
- Binding to local address 239.103.1.2
- Joining multicast group 239.103.1.2
- Receiving 1470 byte datagrams
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
-
- Open a new ssh session leaving the receiver script running
-
-10. Observe the multicast table on **Leaf 1**
- 1. On **Leaf 1**, observe the multicast table for the source.
-
- **Example:**
-
- .. code-block:: text
-
- leaf1#show ip mroute
-
- RPF route: U - From unicast routing table
- M - From multicast routing table
- 239.103.1.1
- 0.0.0.0, 0:01:56, RP 172.16.0.1, flags: W
- Incoming interface: Register
- Outgoing interface list:
- Ethernet2
- 172.16.15.5, 0:02:24, flags: SLN
- Incoming interface: Vlan15
- RPF route: [U] 172.16.15.0/24 [0/1]
- Outgoing interface list:
- Ethernet2
- 239.103.1.2
- 0.0.0.0, 0:01:56, RP 172.16.0.1, flags: W
- Incoming interface: Register
- Outgoing interface list:
- Ethernet2
- 172.16.15.5, 0:02:24, flags: SLN
- Incoming interface: Vlan15
- RPF route: [U] 172.16.15.0/24 [0/1]
- Outgoing interface list:
- Ethernet2
- 239.103.1.3
- 172.16.15.5, 0:02:24, flags: SLN
- Incoming interface: Vlan15
- RPF route: [U] 172.16.15.0/24 [0/1]
- Outgoing interface list:
- Ethernet2
-
-11. Observe the multicast table on **Leaf 4**
- 1. On **Leaf 4**, observe the multicast table for the receiver using the CLI
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#show ip mroute
-
- RPF route: U - From unicast routing table
- M - From multicast routing table
- 239.103.1.1
- 0.0.0.0, 0:00:17, RP 172.16.0.1, flags: W
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.0.3/32 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
- 172.16.15.5, 0:00:13, flags: S
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.15.0/24 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
- 239.103.1.2
- 0.0.0.0, 0:00:17, RP 172.16.0.1, flags: W
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.0.3/32 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
- 172.16.15.5, 0:00:13, flags: S
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.15.0/24 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
-
-**LAB COMPLETE**
diff --git a/topologies/beta-datacenter/labguides/source/media-ospf.rst b/topologies/beta-datacenter/labguides/source/media-ospf.rst
deleted file mode 100644
index 73ffd5618..000000000
--- a/topologies/beta-datacenter/labguides/source/media-ospf.rst
+++ /dev/null
@@ -1,324 +0,0 @@
-Media OSPF Lab
-==============
-
-.. image:: images/media-OSPF.png
- :align: center
-
-.. note:: Did you know the OSPF algorithm is considered a link-state protocol, based on the Dijkstra Shortest Path Algorithm? It is a common protocol used in a number of widely deployed environments in various industries.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` or option ``97`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` or option ``2`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` or option ``97`` to go back).
- 3. If this is your first media lab, type ``media-setup`` or option ``1`` at this prompt and wait for the process to run to prepare the lab environment.
- 4. Type ``media-ospf`` or option ``4`` at the prompt. The script will configure the topology with the exception of **Leaf 4**.
-
- 5. On **Spine 2**, verify OSPF operation (it should not be operating correctly) and you will see all the routes currently in the environment.
-
- .. code-block:: text
-
- show ip ospf neighbor
- show ip ospf interface
- show ip ospf database
- show ip route
-
-
-
- **Example:**
-
- .. code-block:: text
-
- spine2#show ip ospf neighbor
- Neighbor ID VRF Pri State Dead Time Address Interface
- 10.127.255.2 default 1 FULL/BDR 00:00:35 10.127.23.2 Ethernet1
-
- spine2#show ip ospf interface
- Loopback0 is up
- Interface Address 10.127.255.3/32, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.3
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0 (Passive Interface)
- No authentication
- Ethernet5 is up
- Interface Address 10.127.34.3/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.3
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0
- No authentication
- Ethernet1 is up
- Interface Address 10.127.23.3/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.3
- Backup Designated Router is 10.127.255.2
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 1
- No authentication
-
- spine2#show ip ospf database
-
- OSPF Router with ID(10.127.255.3) (Process ID 100) (VRF default)
-
-
- Router Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum Link count
- 10.127.255.2 10.127.255.2 344 0x80000007 0x5d3 3
- 10.127.255.1 10.127.255.1 346 0x80000006 0x2433 3
- 10.127.255.3 10.127.255.3 343 0x80000006 0xbe99 3
-
- Network Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum
- 10.127.23.3 10.127.255.3 343 0x80000001 0x836e
- 10.127.12.2 10.127.255.2 344 0x80000001 0xf40c
-
- spine2#show ip route
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- O 10.127.12.0/24 [110/20] via 10.127.23.2, Ethernet1
- C 10.127.23.0/24 is directly connected, Ethernet1
- C 10.127.34.0/24 is directly connected, Ethernet5
- O 10.127.255.1/32 [110/30] via 10.127.23.2, Ethernet1
- O 10.127.255.2/32 [110/20] via 10.127.23.2, Ethernet1
- C 10.127.255.3/32 is directly connected, Loopback0
- O 172.16.15.0/24 [110/30] via 10.127.23.2, Ethernet1
- C 192.168.0.0/24 is directly connected, Management1
-
-
- All the route entries with a preceding "O" was learned by the OSPF protocol on **Spine 2**.
-
-2. Configure OSPF on the **Leaf 4** switch using the following criteria:
-
- 1. Configure the Ethernet 3, Ethernet 4, Loopback 0 interfaces and the OSPF router process on **Leaf4** to be used for OSPF communication to the adjacent devices (**Spine 2** in this case)
-
- .. code-block:: text
-
- configure
- interface loopback 0
- ip address 10.127.255.4/32
- interface ethernet 3
- no switchport
- ip address 10.127.34.4/24
- interface ethernet 4
- no switchport
- ip address 172.16.46.4/24
- router ospf 100
- router-id 10.127.255.4
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#int et 3
- leaf4(config-if-Et3)#no switchport
- leaf4(config-if-Et3)#ip address 10.127.34.4/24
- leaf4(config)#int et 4
- leaf4(config-if-Et4)#no switchport
- leaf4(config-if-Et4)#ip address 172.16.46.4/24
- leaf4(config)#int lo 0
- leaf4(config-if-Lo0)#ip address 10.127.255.4/32
- leaf4(config)#router ospf 100
- leaf4(config-router-ospf)#router-id 10.127.255.4
-
-
- .. note::
- All interfaces are point-to-point connections in the OSPF lab, no trunk or access ports
-
- 2. Specify the network statement which encompasses all the interfaces that will take part in the OSPF process.
-
- .. code-block:: text
-
- configure
- router ospf 100
- network 10.127.0.0/16 area 0.0.0.0
- network 172.16.46.0/24 area 0.0.0.0
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#configure
- leaf4(config)#router ospf 100
- leaf4(config-router-ospf)#network 10.127.0.0/16 area 0.0.0.0
- leaf4(config-router-ospf)#network 172.16.46.0/24 area 0.0.0.0
-
-
- .. note::
- All interfaces which fall into the range of the network statement will take part in the OSPF process and listen for and send out hello packets.
-
- 3. Certain interfaces do not need to take part in the OSPF process but we still want the IP's to be advertised out. This is where we leverage the "passive-interface" setting to allow this. These interfaces will still be associated in the area in which the network statement is associated to.
-
- .. code-block:: text
-
- configure
- router ospf 100
- passive-interface loopback0
- passive-interface ethernet4
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#router ospf 100
- leaf4(config-router-ospf)#passive-interface loopback 0
- leaf4(config-router-ospf)#passive-interface ethernet4
-
-
- 4. Confirm the OSPF neighbor relationship has been established and the routing table on **Leaf 4** has been populated with the appropriate entries.
-
- .. code-block:: text
-
- show ip ospf neighbor
- show ip ospf interface
- show ip ospf database
- show ip route
-
- **Example**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#show ip ospf neighbor
- Neighbor ID VRF Pri State Dead Time Address Interface
- 10.127.255.3 default 1 FULL/DR 00:00:31 10.127.34.3 Ethernet3
-
- leaf4(config-if-Et4)#show ip ospf interface
- Loopback0 is up
- Interface Address 10.127.255.4/32, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.4
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0 (Passive Interface)
- No authentication
- Ethernet3 is up
- Interface Address 10.127.34.4/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State Backup DR, Priority 1
- Designated Router is 10.127.255.3
- Backup Designated Router is 10.127.255.4
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 1
- No authentication
- Ethernet4 is up
- Interface Address 172.16.46.4/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.4
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0
- No authentication
-
- leaf4(config-if-Et4)#sh ip ospf database
-
- OSPF Router with ID(10.127.255.4) (Process ID 100) (VRF default)
-
-
- Router Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum Link count
- 10.127.255.1 10.127.255.1 863 0x80000009 0x1e36 3
- 10.127.255.2 10.127.255.2 861 0x8000000a 0xfed6 3
- 10.127.255.4 10.127.255.4 339 0x80000007 0xde1f 3
- 10.127.255.3 10.127.255.3 1181 0x80000009 0x5e46 3
-
- Network Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum
- 10.127.23.3 10.127.255.3 860 0x80000004 0x7d71
- 10.127.34.3 10.127.255.3 1181 0x80000001 0x26be
- 10.127.12.2 10.127.255.2 861 0x80000004 0xee0f
-
- leaf4(config-if-Et4)#sh ip route
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- O 10.127.12.0/24 [110/30] via 10.127.34.3, Ethernet3
- O 10.127.23.0/24 [110/20] via 10.127.34.3, Ethernet3
- C 10.127.34.0/24 is directly connected, Ethernet3
- O 10.127.255.1/32 [110/40] via 10.127.34.3, Ethernet3
- O 10.127.255.2/32 [110/30] via 10.127.34.3, Ethernet3
- O 10.127.255.3/32 [110/20] via 10.127.34.3, Ethernet3
- C 10.127.255.4/32 is directly connected, Loopback0
- O 172.16.15.0/24 [110/40] via 10.127.34.3, Ethernet3
- C 172.16.46.0/24 is directly connected, Ethernet4
- C 192.168.0.0/24 is directly connected, Management1
-
- The routing table output should list all routing entries in this topology to ensure connectivity.
-
-3. Validate end-to-end connectivity once OSPF neighbor relationship has been established.
-
- 1. Log into **Host 2** and verify connectivity with **Host 1**.
-
- .. code-block:: text
-
- ping 172.16.15.5
-
- **Example:**
-
- .. code-block:: text
-
- host2# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=60 time=99.5 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=60 time=102 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=60 time=165 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=60 time=161 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=60 time=158 ms
-
- --- 172.16.15.5 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 40ms
- rtt min/avg/max/mdev = 99.508/137.682/165.494/29.858 ms, pipe 5, ipg/ewma 10.149/120.314 ms
-
-
- If OSPF settings have been configured correctly and the routing table on **Leaf 4** has converged then **Host 1** should be reachable from **Host 2**.
-
-.. admonition:: **Test your knowledge:**
-
- When inspecting the routing table on **Leaf 4**, why are all the infrastructure IP address in there? What are the positive and negative results of that?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show ip ospf neighbor
- - show ip ospf interface
- - show ip ospf database
- - show ip route
diff --git a/topologies/beta-datacenter/labguides/source/mlag.rst b/topologies/beta-datacenter/labguides/source/mlag.rst
deleted file mode 100644
index 2b94db21b..000000000
--- a/topologies/beta-datacenter/labguides/source/mlag.rst
+++ /dev/null
@@ -1,148 +0,0 @@
-MLAG
-====
-
-.. image:: images/mlag_1.png
- :align: center
-
-.. note:: Did you know the “mlag” script is composed of Python code that
- uses the CloudVision Portal REST API to automate the provisioning of
- CVP Configlets. The configlets that are configured via the REST API
- are ``Spine1-MLAG-Lab``, ``Spine2-MLAG-Lab``, ``Leaf1-MLAG-Lab``,
- ``Leaf2-MLAG-Lab``, ``Leaf3-MLAG-Lab``. In addition each switch also
- gets the ``VLANs`` configlet.
-
-.. note:: The manually-entered commands below that are part of this lab are
- equivalent to ``Leaf4-MLAG-Lab``.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``mlag`` at the prompt. The script will configure the datacenter with the exception of **Leaf4**.
- 2. On **Leaf3**, verify MLAG operation (it should not be operating correctly)
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
-
-2. Configure MLAG on the **Leaf4** switch using the following criteria
-
- 1. Configure Port-channel on **Leaf4** to used for MLAG communication between **Leaf3** & **Leaf4**.
-
- .. code-block:: text
-
- configure
- interface port-channel 10
- switchport mode trunk
-
- interface ethernet 1
- switchport mode trunk
- channel-group 10 mode active
-
- .. note::
- A *channel-group* is a group of interfaces on a single Arista switch. A *channel-group* is associated with a *port-channel* interface immediately upon its creation. The *channel-group* command implicitly creates the matching *port-channel* with the same ID, which is *10* in this case. The *switchport mode trunk* command allows all VLANs on *port-channel 10*.
-
- 2. Verify switching operation
-
- .. code-block:: text
-
- show interfaces status
- show lldp neighbors
- show interfaces trunk
-
- .. note::
- Each switch is assigned a globally unique sysID by concatenating the 16-bit system priority to a 48-bit MAC address of one of the switch's physical ports. This sysID is used by peer devices when forming an aggregation to verify that all links are from the same switch - for environments where the MLAG peer link contains multiple physical links - which it does NOT in this example. A *trunk group* is the set of physical interfaces that comprise the trunk and the collection of VLANs whose traffic is carried on the trunk. The traffic of a VLAN that belongs to one or more trunk groups is carried only on ports that are members of trunk groups to which the VLAN belongs, i.e., VLANs configured in a *trunk group* are ‘pruned’ off all ports that are not associated with the trunk group. The spanning-tree protocol (STP) is disabled for the peer-link VLAN 4094 to prevent any potential STP disruption on the interpeer communications link. Since VLAN 4094 has been restricted to only be on the peer-link (Po10) by *trunk group MLAGPEER* & *switchport trunk group MLAGPEER* (see step #2.3) the chance of a loop is eliminated. To prevent loops do NOT add this *trunk group MLAGPEER* to any other interface links.
-
- 3. Configure the MLAG VLAN (both Layer 2 and Layer 3).
-
- .. code-block:: text
-
- configure
- vlan 4094
- trunk group MLAGPEER
-
- interface port-channel 10
- switchport trunk group MLAGPEER
- exit
-
- no spanning-tree vlan-id 4094
-
- interface vlan 4094
- description MLAG PEER LINK
- ip address 172.16.34.2/30
-
- ping 172.16.34.1
-
- .. note::
- The *ip address 172.16.34.2/30* (see step #2.3) assigned to one side of the peer-link can be any unicast address that does not conflict with any SVIs on the same switch. The *local-interface vlan 4094* command (see step #2.4) specifies the SVI upon which the switch sends MLAG control traffic. The IP address is specified within the definition of the VLAN associated with this local interface, which you already performed earlier above. While the peer-link's (designated with the command *peer-link port-channel 10* (see below)) primary purpose is to exchange MLAG control information between the 2 peer switches, it also carries dataplane traffic from devices that are attached to only 1 MLAG peer & have no alternative path. This peer-link can also carry traffic in topology failure scenarios (i.e. one of these peer-link switches loses all its uplinks to the spine switches). The *domain-id MLAG34* command determines the MLAG domain that consists of these 2 peer switches & the links that connect these 2 switches. The *domain-id* is case-sensitive and must match the same *domain-id* on the other peer switch.
-
- 4. Define the MLAG Domain.
-
- .. code-block:: text
-
- configure
- mlag
- domain-id MLAG34
- local-interface vlan 4094
- peer-address 172.16.34.1
- peer-link port-channel 10
-
- 5. Configure Port-channels and interfaces on **Leaf4** connecting to **Spine1** & **Spine2**.
-
- .. code-block:: text
-
- configure
- interface port-channel 34
- switchport mode trunk
- mlag 34
-
- interface ethernet 2-3
- channel-group 34 mode active
- switchport mode trunk
-
- .. note::
- The *mlag 34* (see #2.5) assigns an MLAG ID to *interface port-channel 34*. MLAG peer switches form an MLAG when each switch configures the same MLAG ID to a port-channel interface. This is **different** than the MLAG *domain-id* (see #2.4). The global-scope *mlag* command above (see #2.4) just enters the global MLAG configuration scope of the Arista switch.
-
- 6. Configure Port-channels on **Leaf4** connecting to **Host2**
-
- .. code-block:: text
-
- configure
- interface port-channel 4
- switchport access vlan 12
- mlag 4
-
- interface ethernet 4
- channel-group 4 mode active
-
- interface ethernet5
- shutdown
-
-3. Validate MLAG on the **Leaf4** switch using the following:
-
- 1. Verify MLAG operation
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
-
- 2. Verify switching operation
-
- .. code-block:: text
-
- show interfaces status
- show lldp neighbors
- show interfaces trunk
-
- 3. Validate connectivity from **Host1** to **Host2** by logging into **Host1** through the menu (option 7) or using screen.
-
- .. code-block:: text
-
- enable
- ping 172.16.112.202
-
-|
-
-**LAB COMPLETE!**
diff --git a/topologies/beta-datacenter/labguides/source/programmability_connecting.rst b/topologies/beta-datacenter/labguides/source/programmability_connecting.rst
deleted file mode 100644
index d858e022f..000000000
--- a/topologies/beta-datacenter/labguides/source/programmability_connecting.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-Connecting to your lab machine
-==============================
-
-1. Before we begin, let's reset the environment to clear out previous lab changes.
-If the environment was brought up fresh and you are starting from this point, you can skip step #1.
-
-SSH to the public IP address assigned to the LabAccess jumphost server (this is the IP address shown in the
-"Welcome to Arista's Demo Cloud" picture further below). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@x.x.x.x
-
-You will be greeted with the following menu:
-
-|
-
-.. image:: images/connecting_1.png
- :align: center
-
-|
-
-Select option **1** (**Reset All Devices to Base ATD**), wait til the command has completed, then log out.
-
-|
-
-2. Now we need to make sure that you can access your handy lab machine! You should have received your login
-information (a URL) from your friendly Arista SE already. If you have not, please reach out and ask for one.
-
-Once you receive your token, click on the link. You will greeted with a
-screen that looks like this:
-
-.. image:: images/programmability_connecting_2.png
- :align: center
-
-Connect to the topology by clicking the link and click on **Lab Frontend**.
-
-.. image:: images/programmability_connecting_3.png
- :align: center
-
-You will be greeted with a screen like this:
-
-.. image:: images/programmability_connecting_4.png
- :align: center
-
-Login with the username **arista** and the password **@rista123**. This will bring
-you to the ATD Lab Page.
-
-This lab uses Guacamole to front end both a Linux based desktop (**devbox**)
-and the Arista vEOS virtual leaf/spine lab network. We will primarily
-work out of **devbox**.
-
-.. image:: images/programmability_connecting_5.png
- :align: center
diff --git a/topologies/beta-datacenter/labguides/source/pyeapi.rst b/topologies/beta-datacenter/labguides/source/pyeapi.rst
deleted file mode 100644
index ae7ebf5ce..000000000
--- a/topologies/beta-datacenter/labguides/source/pyeapi.rst
+++ /dev/null
@@ -1,108 +0,0 @@
-pyeapi
-======
-
-In this lab we will still use Python, but this time with Arista’s pyeapi
-module. If you recall from the last lab, a module is a way of enhancing
-the capability of native Python.
-
-Pyeapi is a wrapper around eAPI that abstracts common EOS commands into
-a more programmatic style. This allows someone without a heavy network
-background to easily interact with an Arista device. In other words,
-instead of issuing ``enable; configure; vlan 100; name foo``, we can
-use ``vlans.set_name(100,'foo')``. While that may look similar, the
-abstracted way is easier to implement in Python because it shortcuts
-some of the steps, and someone that only knows they need to create a
-VLAN can grok it without having to know the EOS command line.
-
-Click \ `here `__\ for
-pyeapi documentation.
-
-.. note:: While Arista switches have a fully functional Python
- installation, please make sure to usedevboxfor the scripting part of this lab.
-
-Your first pyeapi script
-------------------------
-
-For your first pyeapi script, we are going to add a new user:testuser.
-We will use the following script:
-
-.. code-block:: python
-
- #!/usr/bin/python
-
- import pyeapi
-
- node = pyeapi.connect(host='192.168.0.14',username='arista',password='arista',return_node=True)
-
- users = node.api('users')
-
- users.create('testuser',secret='foo')
- users.set_privilege('testuser',value='15')
- users.set_role('testuser',value='network-admin')
-
-What does this script do?
-
-**import pyeapi** - this imports the pyeapi module.
-
-**node = pyeapi.connect(host='192.168.0.14',username='arista',password='arista',return_node=True)** -
-instantiates the variable ``node``, and uses pyeapi to create a connection to
-the switch using the username of ``arista`` and the
-password ``arista``. ``return_node`` allows you to use the node object to consume
-the API with - don’t focus on this one for now, let’s just roll with the
-rest of the script.
-
-**users = node.api('users')** - creates a new variable ``users`` and specifies
-the API submodule ``users``. This tells Python we want to create a user using
-pyeapi.
-
-**users.create('testuser',secret='foo')** - Using the Users API, we use
-the ``create`` method. ``testuser`` is the username, and the password is ``foo``.
-
-**users.set_privilege('testuser',value='15')** - Using the Users API, we use
-the ``set_privilege`` method. ``testuser`` is the username which was created in
-the last step, and the privilege level is ``15``.
-
-**users.set_role('testuser',value='network-admin')** - Using the Users API,
-we use the ``set_role`` method. ``testuser`` is the username which was created in
-the last step, and the Arista role is the predefined default role of
- ``network-admin``.
-
-Write it
-~~~~~~~~
-
-Create a new file in the Atom editor and either write or paste the code
-in. Save it to your desktop like the previous lab.
-
-Run it
-~~~~~~
-
-Run the script the same way you did in the previous lab (``python
-~/Desktop/your_script_name_here``) - allowing for the different file name.
-Wait, you didn’t save over your previous work did you?!
-
---------------
-
-Let’s take a look and see if the user has been added switch to your
-virtual switch using the Ctrl-Alt-Shift trick and type ``show run section
-user``.
-
-.. image:: images/pyeapi_1.png
- :align: center
-
-**Success!**
-
-Advanced
---------
-
-Write a script that adds more than one user.
-
-Bonus
------
-
-Using the\ `pyeapi
-documentation `__\ ,
-create a new script that creates a VLAN and then adds it to ``interface
-Ethernet1`` as a ``switchport access vlan``.
-
-.. note:: Check out the config example, as well as Modules > API > switchports and vlans.
-
diff --git a/topologies/beta-datacenter/labguides/source/rollback.rst b/topologies/beta-datacenter/labguides/source/rollback.rst
deleted file mode 100644
index 9fbaf966e..000000000
--- a/topologies/beta-datacenter/labguides/source/rollback.rst
+++ /dev/null
@@ -1,120 +0,0 @@
-Rollback
-========
-
-Oops. We’ve made a horrible mistake and we need to roll it back before
-anyone notices.
-
-Fortunately, using Git we have a record of what changed and we can
-revert everything back to the previous ``commit``. Once we revert the change,
-Jenkins will see see it and run your playbook again, undoing the changes
-that we just made.
-
-Step #1: See the diff(erence)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Before we roll back, let’s check what Git has on record. To do that,
-we’re going to have to get the checksum of the first commit in Lab #6
-and the checksum of the commit after you added VLAN 2000 and 3000. Once
-we get the checksums, we can ``diff`` them. ``Diff`` shows the difference between
-two items.
-
-To find the checksums, we need to use the ``git reflog`` command
-on **devbox**. The ``git reflog`` command lists every commit, their checksum, their
-distance from the current commit, and the commit message.
-
-Run ``git reflog`` inside your lab6 directory (``~/Desktop/labfiles/lab6/lab``):
-
-.. code-block:: bash
-
- aristagui@labvm:~/Desktop/labfiles/lab6/lab$ git reflog
- 30fed59 HEAD@{0}: commit: Added VLAN 2000 and 3000
- 524c2bb HEAD@{1}: commit: (initial): Initial commit
-
-Note the two checksums, ``30fed59`` and ``524c2bb``. Let’s diff them with ``git diff
-524c2bb 30fed59``.
-
-.. note:: Your checksums will be different than in this lab guide. Please
- make sure to use your checksums from git reflog and not the ones in
- the guide.
-
-.. code-block:: bash
-
- aristagui@labvm:~/Desktop/labfiles/lab6/lab$ git diff 524c2bb 30fed59
- diff --git a/group_vars/leafs.yml b/group_vars/leafs.yml
- index c17ea3b..6bf591e 100644
- --- a/group_vars/leafs.yml
- +++ b/group_vars/leafs.yml
- @@ -9,6 +9,10 @@ provider:
- vlans:
- - vlanid: 1001
- name: default
- - - vlanid: 2000
- - name: production
- - - vlanid: 3000
- - name: development
-
-The ``diff`` shows - next to lines that were removed. If we roll back, we would
-lose anything that’s different. We did want to roll those VLANs back,
-right? We’re good to go!
-
-Step #2: Revert the change
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To roll back, we need to use the ``git revert`` command, coupled
-with ``HEAD``. ``HEAD`` is the Git method of saying the last commit (in the
-checked out branch). If you revert the last commit it will bring you
-back to the commitbefore the latest commit.
-
-You can also use this command to revert to any other commit - useful if
-you want to roll back to 2 weeks and 30 commits ago.
-
-Let’s revert with ``git revert HEAD``.
-
-.. code-block:: bash
-
- aristagui@labvm:~/Desktop/labfiles/lab6/lab$ git revert HEAD
-
-A window will pop up asking you to enter a commit message. Let’s just
-stick with the default. Hit **Ctrl-X** to save.
-
-.. code-block:: bash
-
- aristagui@labvm:~/Desktop/labfiles/lab6/lab$ git revert HEAD
- [master b1e1694] Revert "Added VLAN 2000 and 3000"
- 1 file changed, 4 deletions(-)
-
-Note the 4 deletions - those are the 4 lines in the ``diff`` above. If you
-were to open your group_vars file, you would see that those lines are
-now missing.
-
-Now if you were to look at your log using git reflog, you will see a
-revert:
-
-.. code-block:: bash
-
- aristagui@labvm:~/Desktop/labfiles/lab6/lab$ git reflog
- b1e1694 HEAD@{0}: revert: Revert "Added VLAN 2000 and 3000"
- 30fed59 HEAD@{1}: commit: Added VLAN 2000 and 3000
- 524c2bb HEAD@{2}: commit: (initial): Initial commit
-
-Now let's push our changes to our remote repo so Jenkins can pick up on the changes
-
-.. code-block:: bash
-
- aristagui@labvm:~/Desktop/labfiles/lab6/lab$ git push origin master
- Counting objects: 6, done.
- Delta compression using up to 2 threads.
- Compressing objects: 100% (5/5), done.
- Writing objects: 100% (6/6), 783 bytes | 0 bytes/s, done.
- Total 6 (delta 1), reused 0 (delta 0)
- To /home/aristagui/Desktop/labfiles/lab6/repo
- 19404fc..983adb8 master -> master
-
-Hurray!
-
-Step #3: Watch Jenkins undo
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Go back into Jenkins and look at the job history for the latest job,
-just like you did in the previous lab. Also, log into your switches and
-notice that the VLANs are no longer present.
\ No newline at end of file
diff --git a/topologies/beta-datacenter/labguides/source/tshoot-intro.rst b/topologies/beta-datacenter/labguides/source/tshoot-intro.rst
deleted file mode 100644
index 8cacb404d..000000000
--- a/topologies/beta-datacenter/labguides/source/tshoot-intro.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Troubleshooting Introduction
-============================
-
-.. image:: images/tshoot_intro_1.png
- :align: center
-
-.. note:: A set of possible answers are available here_. This hyperlink is only available to Arista employees.
- Please work with your Arista SE for access.
-
-.. _here: https://drive.google.com/file/d/16NJ0hKy2ZfhV4Z4fdLgcp6hBnJ_iIn9P/view?usp=sharing
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` or option ``97`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``troubleshooting`` or option ``3`` at this prompt to open the troubleshooting lab section (If you were previously in the Troubleshooting Labs Menu, you can type ``back`` or option ``97`` to go back).
- 3. Type ``tshoot-intro`` or option ``1`` at the prompt. The script will configure the lab into a errored set of states. It is up to you to determine
- a solution for each of the questions below. There can be many solutions, please work with your SE.
-
-2. Questions
-
- 1. Why can’t Leaf1 ping Host1? Are there multiple ways to fix this?
-
- 2. Why is Leaf2 the spanning tree root for all VLANs?
-
- 3. Why isn’t 172.16.112.0/24 being advertised into BGP?
-
- 4. Why won’t the OSPF adjacency come up between Leaf1 & Spine1?
-
diff --git a/topologies/beta-datacenter/labguides/source/vxlan.rst b/topologies/beta-datacenter/labguides/source/vxlan.rst
deleted file mode 100644
index 9b09f8ba9..000000000
--- a/topologies/beta-datacenter/labguides/source/vxlan.rst
+++ /dev/null
@@ -1,177 +0,0 @@
-VxLAN
-=====
-
-.. image:: images/vxlan_1.png
- :align: center
-
-.. note:: Did you know the ``vxlan`` script is composed of Python code that
- uses the CloudVision Portal REST API to automate the provisioning of
- CVP configlets. The configlets that are configured via the REST API
- are ``Spine1-BGP-Lab``, ``Spine2-BGP-Lab``, ``Leaf1-VXLAN-Lab``,
- ``Leaf2-VXLAN-Lab``, ``Leaf3-VXLAN-Lab``, ``Leaf4-VXLAN-Lan``. In
- addition each leaf also gets the ``VLANs`` configlet.
-
-.. note:: The manually-entered commands below that are part of this lab are
- equivalent to ``Leaf3-VXLAN-Lab-Full``.
-
-
-1. Log into the LabAccess jumpserver:
-
- 1. Type ``vxlan`` at the prompt. The script will configure the datacenter with the exception of **Leaf3**.
-
-2. On **Leaf3**, configure Port-channels connecting to **Host2**
-
- .. code-block:: text
-
- configure
- interface port-channel 4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
-
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-
-3. Verify MLAG on **Leaf3**
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
- show port-channel
-
-4. Validate BGP operation **Leaf3**
-
- .. code-block:: text
-
- show run section bgp
- show ip route bgp
- show ip route
- show ip interface brief
- show ip bgp summary
-
-.. note:: ``show ip bgp summary`` will show that the BGP neighbors have moved to ``Estab`` state. Note the iBGP peering between Leaf3 & Leaf4. Also note the route to the shared loopback1 of Leaf1 & Leaf2. This is the remote VTEP on the other side of the leaf-spine network.
-
-5. Create Loopback 1 and the VXLAN VTEP (VTI) interfaces on **Leaf3**
-
- 1. Configuration
-
- .. code-block:: text
-
- configure
- interface Loopback1
- ip address 172.16.0.56/32
-
- interface vxlan 1
- vxlan source-interface loopback 1
- vxlan vlan 12 vni 1212
- vxlan flood vtep 172.16.0.34
-
- .. note:: ``vxlan flood vtep 172.16.0.34`` adds the shared loopback1 IP address on Leaf1 & Leaf2 to the HER list. Note that for autodiscovery of VTEPs, one must use BGP eVPN (see eVPN labs) or CVX (see CVX lab).
-
- 2. Verification
-
- .. code-block:: text
-
- show run interface vxlan 1
- show interface vxlan 1
-
-6. Log into **Host 1** and **Host 2**, ping the vARP VIP and the other host
-
- 1. Host 1 ping tests. From **Host1**:
-
- .. code-block:: text
-
- enable
- ping 172.16.112.1
- ping 172.16.112.202
-
- .. note:: The TTL in the ping outputs above. Even though .202 is many
- switches away, it appears locally connected and has the same
- TTL as the ping to .1. It's also interesting to realize that
- due to MLAG hashing of both the ARP requests and ping packet
- flows that pings to the SVI addresses of .2 & .3 may or may not
- work. Do you know why?
-
- 2. Host 1 MAC/ARP information
-
- .. code-block:: text
-
- enable
- show interface po1 | grep -i Hardware
- show arp
-
- .. note:: Note the MAC addresses returned by the commands above.
-
- 3. Host 2 ping tests. From **Host2**:
-
- .. code-block:: text
-
- enable
- ping 172.16.112.1
- ping 172.16.112.201
-
- .. note:: Note the TTL in the ping outputs above. Even though .201 is many
- switches away, it appears locally connected and has the same TTL
- as the ping to .1. Also note that the vARP VIP (172.16.112.1)
- address & and vARP MAC address (00:1c:73:00:00:ff) are the **same** for both leaf
- pairs - this IP address is known as an AnyCast IP address. If
- a VM was motioning from **Host1** to **Host2** for maintenance,
- the default GW address nor the ARP cache on that VM need to
- change.
-
- 4. Host 2 MAC/ARP information
-
- .. code-block:: text
-
- enable
- show interface po1 | grep -i Hardware
- show arp
-
- .. note:: Note the MAC addresses returned by the commands above and
- compare to the prior ``grep`` and ``arp`` commands and see that
- both hosts appear to each other as though they are on the same
- L2 broadcast domain. **For a little extra fun**, as you are
- running the pings from **host1**, on another set of windows
- for **leaf1** & **leaf2** run ``clear counters`` then run
- ``watch 1 diff show int e4 counter`` and see how MLAG hashing
- across the different pings causes the packets to choose a
- particular member of the port-channel in both the outbound &
- inbound ping flows.
-
-7. Verification – on **Leaf 1/2** and **Leaf 3/4**
-
- 1. Verify the MAC addresses and the associated VTEP IP
-
- .. code-block:: text
-
- show vxlan vtep
- show vxlan address-table
-
- .. note:: For ``show vxlan vtep`` & ``show vxlan address-table`` to be
- populated, the above ``pings`` need to have been active very
- recently so that the MAC addresses don't age out, and you'll
- notice that at least 1 (but not necessarily both) of the MLAG
- pair switches (**leaf1** or
- **leaf2**) will have knowledge of the remote VTEP. This is
- because this is the direction the pings (inbound & outbound)
- last hashed.
-
- 2. Verify the MAC address and the associated interface
-
- .. code-block:: text
-
- show mac address-table
-
-8. Let’s run some other show commands and tests to poke around VxLAN. On **Leaf1** and **Leaf3** issue the following commands:
-
- .. code-block:: text
-
- show interface vxlan 1
- show mac address-table
- show log
-
-**LAB COMPLETE!**
diff --git a/topologies/beta-datacenter/topo_build.yml b/topologies/beta-datacenter/topo_build.yml
deleted file mode 100644
index e60a2600a..000000000
--- a/topologies/beta-datacenter/topo_build.yml
+++ /dev/null
@@ -1,175 +0,0 @@
-cloud_service: aws:adc
-default_interfaces: 8
-default_ami_name: 4.24.0F
-cvp_instance: singlenode
-cvp_version: 2020.1.0
-topology_name: beta-datacenter
-external_configuration: true
-only_add_to_inventory: false
-custom_ami_names: false
-preconfigured: false
-topology_link: true
-
-nodes:
- - spine1:
- # interfaces: 8
- ip_addr: 192.168.0.10
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet5
-
- - spine2:
- # interfaces: 8
- ip_addr: 192.168.0.11
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet5
-
- - leaf1:
- # interfaces: 8
- ip_addr: 192.168.0.14
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: host1
- neighborPort: Ethernet3
- port: Ethernet5
-
-
- - leaf2:
- # interfaces: 8
- ip_addr: 192.168.0.15
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: host1
- neighborPort: Ethernet4
- port: Ethernet5
-
-
- - leaf3:
- # interfaces: 8
- ip_addr: 192.168.0.16
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: host2
- neighborPort: Ethernet3
- port: Ethernet5
-
-
- - leaf4:
- # interfaces: 8
- ip_addr: 192.168.0.17
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: host2
- neighborPort: Ethernet4
- port: Ethernet5
-
-
- - host1:
- # interfaces: 8
- ip_addr: 192.168.0.31
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
-
- - host2:
- # interfaces: 8
- ip_addr: 192.168.0.32
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet4
-
- - cvx01:
- ip_addr: 192.168.0.44
- neighbors: []
-
diff --git a/topologies/beta-routing/atd-topo.png b/topologies/beta-routing/atd-topo.png
deleted file mode 100644
index e22cfa92e..000000000
Binary files a/topologies/beta-routing/atd-topo.png and /dev/null differ
diff --git a/topologies/beta-routing/configlets/ATD-INFRA b/topologies/beta-routing/configlets/ATD-INFRA
deleted file mode 100644
index 24724178c..000000000
--- a/topologies/beta-routing/configlets/ATD-INFRA
+++ /dev/null
@@ -1,34 +0,0 @@
-daemon TerminAttr
- exec /usr/bin/TerminAttr -ingestgrpcurl=192.168.0.5:9910 -taillogs -ingestauth=key,1a38fe7df56879d685e51b6f0ff86327 -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-tacacs-server key 7 070E33455D1D18
-tacacs-server host 192.168.0.4
-!
-aaa authentication login default local
-aaa authorization exec default local
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6bJB3TkBEQZ9jNyO1kbdU0P20gZ1D72CvsPNZ5S4bbciBNTT/MHX8GwyLmM9k+ihaHK2JtRhWFcdsm9MojRgjAuzw4wn/6pa92y/93GvaYL//dOBXrHctZsX3PX7TZFL9VVBVA8aFp5iXxEM8uyKWhxnBo/D0eR25Jed4gHVHQMi6Hyh7eKRpE3E6kvRlSkhNikZ5EwdoM7lg2i6rjf7+o3G6isGtxliMZD98N6qWW79U6euS072qkK/q3dfgyHdd8a8MD5VLWbYR9ikhKwpXAmxcFn5aRllqXJ++QAW0NO78noI91ICRxpAuQSzgrntdwXdyFWiqyiD3AxK28qWZ arista@labaccess
-!
-event-handler iptables-vxlan
- trigger on-boot
- action bash sudo iptables -I INPUT 1 -p udp --dport 4789 -j ACCEPT
- asynchronous
-!
-event-handler ovs-restart
- trigger on-boot
- action bash sudo systemctl restart openvswitch
- delay 30
- asynchronous
-!
-ip routing
-!
-management api http-commands
- no shutdown
- protocol http
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS1 b/topologies/beta-routing/configlets/BaseIPv4_EOS1
deleted file mode 100644
index 3b3704d74..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS1
+++ /dev/null
@@ -1,38 +0,0 @@
-hostname eos1
-!
-interface Ethernet1
- description EOS2
- no switchport
- ip address 10.1.2.1/24
-!
-interface Ethernet2
- description EOS7
- no switchport
- ip address 10.1.7.1/24
-!
-interface Ethernet3
- description EOS11
- no switchport
- ip address 10.1.11.1/24
-!
-interface Ethernet4
- description EOS6
- no switchport
- ip address 10.1.6.1/24
-!
-interface Ethernet5
- description EOS5
- no switchport
- ip address 10.1.5.1/24
-!
-interface Ethernet6
- description EOS17
- no switchport
-!
-interface Loopback0
- ip address 1.1.1.1/32
-!
-interface Management1
- ip address 192.168.0.10/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS10 b/topologies/beta-routing/configlets/BaseIPv4_EOS10
deleted file mode 100644
index 8369af833..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS10
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname eos10
-!
-interface Ethernet1
- description EOS7
- no switchport
- ip address 10.0.0.10/24
-!
-interface Loopback0
- ip address 10.10.10.10/32
-!
-interface Management1
- ip address 192.168.0.19/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS11 b/topologies/beta-routing/configlets/BaseIPv4_EOS11
deleted file mode 100644
index ff0ebdf6c..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS11
+++ /dev/null
@@ -1,24 +0,0 @@
-hostname eos11
-!
-interface Ethernet1
- description EOS1
- no switchport
- ip address 10.1.11.11/24
-!
-interface Ethernet2
- description EOS12
- no switchport
- ip address 10.11.12.11/24
-!
-interface Ethernet3
- description EOS13
- no switchport
- ip address 10.11.13.11/24
-!
-interface Loopback0
- ip address 11.11.11.11/32
-!
-interface Management1
- ip address 192.168.0.20/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS12 b/topologies/beta-routing/configlets/BaseIPv4_EOS12
deleted file mode 100644
index a7482575f..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS12
+++ /dev/null
@@ -1,19 +0,0 @@
-hostname eos12
-!
-interface Ethernet1
- description EOS1
- no switchport
- ip address 10.12.13.12/24
-!
-interface Ethernet2
- description EOS12
- no switchport
- ip address 10.11.12.12/24
-!
-interface Loopback0
- ip address 12.12.12.12/32
-!
-interface Management1
- ip address 192.168.0.21/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS13 b/topologies/beta-routing/configlets/BaseIPv4_EOS13
deleted file mode 100644
index 3770ea4ef..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS13
+++ /dev/null
@@ -1,24 +0,0 @@
-hostname eos13
-!
-interface Ethernet1
- description EOS6
- no switchport
- ip address 10.6.13.13/24
-!
-interface Ethernet2
- description EOS12
- no switchport
- ip address 10.12.13.13/24
-!
-interface Ethernet3
- description EOS11
- no switchport
- ip address 10.11.13.13/24
-!
-interface Loopback0
- ip address 13.13.13.13/32
-!
-interface Management1
- ip address 192.168.0.22/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS14 b/topologies/beta-routing/configlets/BaseIPv4_EOS14
deleted file mode 100644
index e1d139d7b..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS14
+++ /dev/null
@@ -1,17 +0,0 @@
-hostname eos14
-!
-interface Ethernet1
- description EOS8
- no switchport
-!
-interface Ethernet2
- description EOS6
- no switchport
-!
-interface Loopback0
- ip address 14.14.14.14/32
-!
-interface Management1
- ip address 192.168.0.23/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS15 b/topologies/beta-routing/configlets/BaseIPv4_EOS15
deleted file mode 100644
index 4a8e0750c..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS15
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname eos15
-!
-interface Ethernet1
- description EOS8
- no switchport
- ip address 10.8.15.15/24
-!
-interface Loopback0
- ip address 15.15.15.15/32
-!
-interface Management1
- ip address 192.168.0.24/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS16 b/topologies/beta-routing/configlets/BaseIPv4_EOS16
deleted file mode 100644
index 6031e4ff7..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS16
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname eos16
-!
-interface Ethernet1
- no switchport
- ip address 10.16.17.16/24
-!
-interface Loopback0
- ip address 16.16.16.16/32
-!
-interface Management1
- ip address 192.168.0.25/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS17 b/topologies/beta-routing/configlets/BaseIPv4_EOS17
deleted file mode 100644
index 4af8c21df..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS17
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname eos17
-!
-interface Ethernet1
- no switchport
- ip address 10.16.17.17/24
-!
-interface Loopback0
- ip address 17.17.17.17/32
-!
-interface Management1
- ip address 192.168.0.26/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS18 b/topologies/beta-routing/configlets/BaseIPv4_EOS18
deleted file mode 100644
index 351b0078b..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS18
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname eos18
-!
-interface Ethernet1
- description EOS8
- no switchport
- ip address 10.8.18.18/24
-!
-interface Loopback0
- ip address 18.18.18.18/32
-!
-interface Management1
- ip address 192.168.0.27/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS19 b/topologies/beta-routing/configlets/BaseIPv4_EOS19
deleted file mode 100644
index 7c6c3d20a..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS19
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname eos19
-!
-interface Ethernet1
- description EOS7
- no switchport
- ip address 10.7.19.19/24
-!
-interface Loopback0
- ip address 19.19.19.19/32
-!
-interface Management1
- ip address 192.168.0.28/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS1_RING b/topologies/beta-routing/configlets/BaseIPv4_EOS1_RING
deleted file mode 100644
index b45cc6eb1..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS1_RING
+++ /dev/null
@@ -1,38 +0,0 @@
-hostname eos1
-!
-interface Ethernet1
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet2
- description EOS7
- no switchport
- ip address 10.1.7.1/24
-!
-interface Ethernet3
- description EOS11
- no switchport
- ip address 10.1.11.1/24
-!
-interface Ethernet4
- description EOS6
- no switchport
- ip address 10.1.6.1/24
-!
-interface Ethernet5
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet6
- description EOS17
- no switchport
-!
-interface Loopback0
- ip address 1.1.1.1/32
-!
-interface Management1
- ip address 192.168.0.10/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS2 b/topologies/beta-routing/configlets/BaseIPv4_EOS2
deleted file mode 100644
index 2f51db582..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS2
+++ /dev/null
@@ -1,34 +0,0 @@
-hostname eos2
-!
-interface Ethernet1
- description EOS3
- no switchport
- ip address 10.2.3.2/24
-!
-interface Ethernet2
- description EOS4
- no switchport
- ip address 10.2.4.2/24
-!
-interface Ethernet3
- description EOS5
- no switchport
- ip address 10.2.5.2/24
-!
-interface Ethernet4
- description EOS6
- no switchport
- ip address 10.2.6.2/24
-!
-interface Ethernet5
- description EOS1
- no switchport
- ip address 10.1.2.2/24
-!
-interface Loopback0
- ip address 2.2.2.2/32
-!
-interface Management1
- ip address 192.168.0.11/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS20 b/topologies/beta-routing/configlets/BaseIPv4_EOS20
deleted file mode 100644
index 5412af0c6..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS20
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname eos20
-!
-interface Ethernet1
- description EOS3
- no switchport
- ip address 10.3.20.20/24
-!
-interface Loopback0
- ip address 20.20.20.20/32
-!
-interface Management1
- ip address 192.168.0.29/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS2_RING b/topologies/beta-routing/configlets/BaseIPv4_EOS2_RING
deleted file mode 100644
index b85800ebf..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS2_RING
+++ /dev/null
@@ -1,34 +0,0 @@
-hostname eos2
-!
-interface Ethernet1
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet2
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet3
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet4
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet5
- description Unused
- shutdown
- no switchport
-!
-interface Loopback0
- ip address 2.2.2.2/32
-!
-interface Management1
- ip address 192.168.0.11/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS3 b/topologies/beta-routing/configlets/BaseIPv4_EOS3
deleted file mode 100644
index 77ed832d6..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS3
+++ /dev/null
@@ -1,37 +0,0 @@
-hostname eos3
-!
-interface Ethernet1
- description EOS9
-!
-interface Ethernet2
- description EOS7
- no switchport
- ip address 10.3.7.3/24
-!
-interface Ethernet3
- description EOS2
- no switchport
- ip address 10.2.3.3/24
-!
-interface Ethernet4
- description EOS5
- no switchport
- ip address 10.3.5.3/24
-!
-interface Ethernet5
- description EOS4
- no switchport
- ip address 10.3.4.3/24
-!
-interface Ethernet6
- description EOS20
- no switchport
- ip address 10.3.20.3/24
-!
-interface Loopback0
- ip address 3.3.3.3/32
-!
-interface Management1
- ip address 192.168.0.12/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS3_RING b/topologies/beta-routing/configlets/BaseIPv4_EOS3_RING
deleted file mode 100644
index d60494f44..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS3_RING
+++ /dev/null
@@ -1,37 +0,0 @@
-hostname eos3
-!
-interface Ethernet1
- description EOS9
-!
-interface Ethernet2
- description EOS7
- no switchport
- ip address 10.3.7.3/24
-!
-interface Ethernet3
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet4
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet5
- description EOS4
- no switchport
- ip address 10.3.4.3/24
-!
-interface Ethernet6
- description EOS20
- no switchport
- ip address 10.3.20.3/24
-!
-interface Loopback0
- ip address 3.3.3.3/32
-!
-interface Management1
- ip address 192.168.0.12/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS4 b/topologies/beta-routing/configlets/BaseIPv4_EOS4
deleted file mode 100644
index bb1f65ceb..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS4
+++ /dev/null
@@ -1,36 +0,0 @@
-hostname eos4
-!
-interface Ethernet1
- description EOS9
-!
-interface Ethernet2
- description EOS8
- no switchport
- ip address 10.4.8.4/24
-!
-interface Ethernet3
- description EOS5
- no switchport
- ip address 10.4.5.4/24
-!
-interface Ethernet4
- description EOS2
- no switchport
- ip address 10.2.4.4/24
-!
-interface Ethernet5
- description EOS3
- no switchport
- ip address 10.3.4.4/24
-!
-interface Ethernet6
- description EOS16
- no switchport
-!
-interface Loopback0
- ip address 4.4.4.4/32
-!
-interface Management1
- ip address 192.168.0.13/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS4_RING b/topologies/beta-routing/configlets/BaseIPv4_EOS4_RING
deleted file mode 100644
index 62f3628f6..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS4_RING
+++ /dev/null
@@ -1,36 +0,0 @@
-hostname eos4
-!
-interface Ethernet1
- description EOS9
-!
-interface Ethernet2
- description EOS8
- no switchport
- ip address 10.4.8.4/24
-!
-interface Ethernet3
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet4
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet5
- description EOS3
- no switchport
- ip address 10.3.4.4/24
-!
-interface Ethernet6
- description EOS16
- no switchport
-!
-interface Loopback0
- ip address 4.4.4.4/32
-!
-interface Management1
- ip address 192.168.0.13/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS5 b/topologies/beta-routing/configlets/BaseIPv4_EOS5
deleted file mode 100644
index 13ace46cd..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS5
+++ /dev/null
@@ -1,34 +0,0 @@
-hostname eos5
-!
-interface Ethernet1
- description EOS4
- no switchport
- ip address 10.4.5.5/24
-!
-interface Ethernet2
- description EOS3
- no switchport
- ip address 10.3.5.5/24
-!
-interface Ethernet3
- description EOS2
- no switchport
- ip address 10.2.5.5/24
-!
-interface Ethernet4
- description EOS1
- no switchport
- ip address 10.1.5.5/24
-!
-interface Ethernet5
- description EOS6
- no switchport
- ip address 10.5.6.5/24
-!
-interface Loopback0
- ip address 5.5.5.5/32
-!
-interface Management1
- ip address 192.168.0.14/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS5_RING b/topologies/beta-routing/configlets/BaseIPv4_EOS5_RING
deleted file mode 100644
index 10d5d2aae..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS5_RING
+++ /dev/null
@@ -1,34 +0,0 @@
-hostname eos5
-!
-interface Ethernet1
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet2
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet3
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet4
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet5
- description Unused
- shutdown
- no switchport
-!
-interface Loopback0
- ip address 5.5.5.5/32
-!
-interface Management1
- ip address 192.168.0.14/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS6 b/topologies/beta-routing/configlets/BaseIPv4_EOS6
deleted file mode 100644
index 81e582ebd..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS6
+++ /dev/null
@@ -1,37 +0,0 @@
-hostname eos6
-!
-interface Ethernet1
- description EOS5
- no switchport
- ip address 10.5.6.6/24
-!
-interface Ethernet2
- description EOS8
- no switchport
- ip address 10.6.8.6/24
-!
-interface Ethernet3
- description EOS13
- no switchport
- ip address 10.6.13.6/24
-!
-interface Ethernet4
- description EOS1
- no switchport
- ip address 10.1.6.6/24
-!
-interface Ethernet5
- description EOS2
- no switchport
- ip address 10.2.6.6/24
-!
-interface Ethernet6
- description EOS14
-!
-interface Loopback0
- ip address 6.6.6.6/32
-!
-interface Management1
- ip address 192.168.0.15/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS6_RING b/topologies/beta-routing/configlets/BaseIPv4_EOS6_RING
deleted file mode 100644
index 8e5e036a9..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS6_RING
+++ /dev/null
@@ -1,37 +0,0 @@
-hostname eos6
-!
-interface Ethernet1
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet2
- description EOS8
- no switchport
- ip address 10.6.8.6/24
-!
-interface Ethernet3
- description EOS13
- no switchport
- ip address 10.6.13.6/24
-!
-interface Ethernet4
- description EOS1
- no switchport
- ip address 10.1.6.6/24
-!
-interface Ethernet5
- description Unused
- shutdown
- no switchport
-!
-interface Ethernet6
- description EOS14
-!
-interface Loopback0
- ip address 6.6.6.6/32
-!
-interface Management1
- ip address 192.168.0.15/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS7 b/topologies/beta-routing/configlets/BaseIPv4_EOS7
deleted file mode 100644
index a8fdb5b22..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS7
+++ /dev/null
@@ -1,27 +0,0 @@
-hostname eos7
-!
-interface Ethernet1
- description EOS3
- no switchport
- ip address 10.3.7.7/24
-!
-interface Ethernet2
- description EOS10
-!
-interface Ethernet3
- description EOS1
- no switchport
- ip address 10.1.7.7/24
-!
-interface Ethernet4
- description EOS19
- no switchport
- ip address 10.7.19.7/24
-!
-interface Loopback0
- ip address 7.7.7.7/32
-!
-interface Management1
- ip address 192.168.0.16/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS8 b/topologies/beta-routing/configlets/BaseIPv4_EOS8
deleted file mode 100644
index ae30829b2..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS8
+++ /dev/null
@@ -1,32 +0,0 @@
-hostname eos8
-!
-interface Ethernet1
- description EOS4
- no switchport
- ip address 10.4.8.8/24
-!
-interface Ethernet2
- description EOS15
- no switchport
- ip address 10.8.15.8/24
-!
-interface Ethernet3
- description EOS6
- no switchport
- ip address 10.6.8.8/24
-!
-interface Ethernet4
- description EOS14
-!
-interface Ethernet5
- description EOS18
- no switchport
- ip address 10.8.18.8/24
-!
-interface Loopback0
- ip address 8.8.8.8/32
-!
-interface Management1
- ip address 192.168.0.17/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/BaseIPv4_EOS9 b/topologies/beta-routing/configlets/BaseIPv4_EOS9
deleted file mode 100644
index c48db5e6e..000000000
--- a/topologies/beta-routing/configlets/BaseIPv4_EOS9
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname eos9
-!
-interface Ethernet1
- description EOS4
-!
-interface Ethernet2
- description EOS3
-!
-interface Loopback0
- ip address 9.9.9.9/32
-!
-interface Management1
- ip address 192.168.0.18/24
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS1 b/topologies/beta-routing/configlets/Customer1_L3VPN_EOS1
deleted file mode 100644
index d4eaf4f1c..000000000
--- a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS1
+++ /dev/null
@@ -1,22 +0,0 @@
-vrf instance A
-!
-ip routing vrf A
-!
-interface Ethernet3
- description EOS11
- no switchport
- vrf A
- ip address 10.1.11.1/24
-!
-router bgp 100
- maximum-paths 2
- !
- vrf A
- rd 1.1.1.1:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- neighbor 10.1.11.11 remote-as 123
- neighbor 10.1.11.11 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.1.11.11 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS11 b/topologies/beta-routing/configlets/Customer1_L3VPN_EOS11
deleted file mode 100644
index 19dd55999..000000000
--- a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS11
+++ /dev/null
@@ -1,15 +0,0 @@
-interface Ethernet2
- ip ospf network point-to-point
-!
-router bgp 123
- router-id 11.11.11.11
- neighbor 10.1.11.1 remote-as 100
- neighbor 10.1.11.1 maximum-routes 12000
- network 11.11.11.11/32
- network 12.12.12.12/32
- network 13.13.13.13/32
-!
-router ospf 100
- redistribute bgp
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS12 b/topologies/beta-routing/configlets/Customer1_L3VPN_EOS12
deleted file mode 100644
index fb05134dd..000000000
--- a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS12
+++ /dev/null
@@ -1,9 +0,0 @@
-interface Ethernet1
- ip ospf network point-to-point
-!
-interface Ethernet2
- ip ospf network point-to-point
-!
-router ospf 100
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS13 b/topologies/beta-routing/configlets/Customer1_L3VPN_EOS13
deleted file mode 100644
index 0e3d566fd..000000000
--- a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS13
+++ /dev/null
@@ -1,15 +0,0 @@
-interface Ethernet2
- ip ospf network point-to-point
-!
-router ospf 100
- redistribute bgp
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-!
-router bgp 123
- router-id 13.13.13.13
- neighbor 10.6.13.6 remote-as 100
- neighbor 10.6.13.6 maximum-routes 12000
- network 11.11.11.11/32
- network 12.12.12.12/32
- network 13.13.13.13/32
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS15 b/topologies/beta-routing/configlets/Customer1_L3VPN_EOS15
deleted file mode 100644
index 8d3b9a41b..000000000
--- a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS15
+++ /dev/null
@@ -1,5 +0,0 @@
-router bgp 15
- router-id 15.15.15.15
- neighbor 10.8.15.8 remote-as 100
- neighbor 10.8.15.8 maximum-routes 12000
- network 15.15.15.15/32
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS6 b/topologies/beta-routing/configlets/Customer1_L3VPN_EOS6
deleted file mode 100644
index 9fb2673e1..000000000
--- a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS6
+++ /dev/null
@@ -1,25 +0,0 @@
-vrf instance A
-!
-ip routing vrf A
-!
-interface Ethernet2
- isis metric 30
-!
-interface Ethernet3
- description EOS13
- no switchport
- vrf A
- ip address 10.6.13.6/24
-!
-router bgp 100
- maximum-paths 2
- !
- vrf A
- rd 6.6.6.6:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- neighbor 10.6.13.13 remote-as 123
- neighbor 10.6.13.13 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.6.13.13 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS6_RING b/topologies/beta-routing/configlets/Customer1_L3VPN_EOS6_RING
deleted file mode 100644
index 7d3043b44..000000000
--- a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS6_RING
+++ /dev/null
@@ -1,25 +0,0 @@
-vrf instance A
-!
-ip routing vrf A
-!
-interface Ethernet2
- isis metric 40
-!
-interface Ethernet3
- description EOS13
- no switchport
- vrf A
- ip address 10.6.13.6/24
-!
-router bgp 100
- maximum-paths 2
- !
- vrf A
- rd 6.6.6.6:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- neighbor 10.6.13.13 remote-as 123
- neighbor 10.6.13.13 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.6.13.13 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS8 b/topologies/beta-routing/configlets/Customer1_L3VPN_EOS8
deleted file mode 100644
index e61c42075..000000000
--- a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS8
+++ /dev/null
@@ -1,25 +0,0 @@
-vrf instance A
-!
-ip routing vrf A
-!
-interface Ethernet2
- description EOS15
- no switchport
- vrf A
- ip address 10.8.15.8/24
-!
-interface Ethernet3
- isis metric 30
-!
-router bgp 100
- maximum-paths 2
- !
- vrf A
- rd 8.8.8.8:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- neighbor 10.8.15.15 remote-as 15
- neighbor 10.8.15.15 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.8.15.15 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS8_RING b/topologies/beta-routing/configlets/Customer1_L3VPN_EOS8_RING
deleted file mode 100644
index 0f9d880ad..000000000
--- a/topologies/beta-routing/configlets/Customer1_L3VPN_EOS8_RING
+++ /dev/null
@@ -1,25 +0,0 @@
-vrf instance A
-!
-ip routing vrf A
-!
-interface Ethernet2
- description EOS15
- no switchport
- vrf A
- ip address 10.8.15.8/24
-!
-interface Ethernet3
- isis metric 40
-!
-router bgp 100
- maximum-paths 2
- !
- vrf A
- rd 8.8.8.8:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- neighbor 10.8.15.15 remote-as 15
- neighbor 10.8.15.15 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.8.15.15 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS10 b/topologies/beta-routing/configlets/Customer2_L2VPN_EOS10
deleted file mode 100644
index d99ae9af1..000000000
--- a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS10
+++ /dev/null
@@ -1,6 +0,0 @@
-interface Ethernet1
- mac-address 00:00:00:00:10:10
-!
-router ospf 200
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS14 b/topologies/beta-routing/configlets/Customer2_L2VPN_EOS14
deleted file mode 100644
index 8a5765273..000000000
--- a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS14
+++ /dev/null
@@ -1,15 +0,0 @@
-interface Ethernet1
- no switchport
- channel-group 14 mode active
-!
-interface Ethernet2
- no switchport
- channel-group 14 mode active
-!
-interface Port-Channel14
- description PEs: EOS6,EOS8
- ip address 10.0.0.14/24
-!
-router ospf 200
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS3 b/topologies/beta-routing/configlets/Customer2_L2VPN_EOS3
deleted file mode 100644
index 3918a8983..000000000
--- a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS3
+++ /dev/null
@@ -1,24 +0,0 @@
-vlan 20
- name Customer2_E-LAN
-!
-interface Ethernet1
- description EOS9
- channel-group 9 mode active
-!
-interface Port-Channel9
- description CE-EOS9
- switchport access vlan 20
- !
- evpn ethernet-segment
- identifier 0000:0200:0200:1000:0608
- route-target import 00:02:00:01:00:20
- lacp system-id 0000.0000.0034
- spanning-tree portfast
-!
-router bgp 100
- maximum-paths 2
- !
- vlan 20
- rd 3.3.3.3:20
- route-target both 2:20
- redistribute learned
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS4 b/topologies/beta-routing/configlets/Customer2_L2VPN_EOS4
deleted file mode 100644
index 426b34f73..000000000
--- a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS4
+++ /dev/null
@@ -1,24 +0,0 @@
-vlan 20
- name Customer2_E-LAN
-!
-interface Ethernet1
- description EOS9
- channel-group 9 mode active
-!
-interface Port-Channel9
- description CE-EOS9
- switchport access vlan 20
- !
- evpn ethernet-segment
- identifier 0000:0200:0200:1000:0608
- route-target import 00:02:00:01:00:20
- lacp system-id 0000.0000.0034
- spanning-tree portfast
-!
-router bgp 100
- maximum-paths 2
- !
- vlan 20
- rd 4.4.4.4:20
- route-target both 2:20
- redistribute learned
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS6 b/topologies/beta-routing/configlets/Customer2_L2VPN_EOS6
deleted file mode 100644
index 19da58d7e..000000000
--- a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS6
+++ /dev/null
@@ -1,24 +0,0 @@
-vlan 20
- name Customer2_E-LAN
-!
-interface Ethernet6
- description EOS14
- channel-group 14 mode active
-!
-interface Port-Channel14
- description CE-EOS14
- switchport access vlan 20
- !
- evpn ethernet-segment
- identifier 0000:0200:0200:2000:0608
- route-target import 00:02:00:02:00:20
- lacp system-id 0000.0000.0068
- spanning-tree portfast
-!
-router bgp 100
- maximum-paths 2
- !
- vlan 20
- rd 6.6.6.6:20
- route-target both 2:20
- redistribute learned
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS7 b/topologies/beta-routing/configlets/Customer2_L2VPN_EOS7
deleted file mode 100644
index 93db84c72..000000000
--- a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS7
+++ /dev/null
@@ -1,15 +0,0 @@
-vlan 20
- name Customer2_E-LAN
-!
-interface Ethernet2
- description EOS10
- switchport access vlan 20
- spanning-tree portfast
-!
-router bgp 100
- maximum-paths 2
- !
- vlan 20
- rd 7.7.7.7:20
- route-target both 2:20
- redistribute learned
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS8 b/topologies/beta-routing/configlets/Customer2_L2VPN_EOS8
deleted file mode 100644
index 9eddfe1a2..000000000
--- a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS8
+++ /dev/null
@@ -1,24 +0,0 @@
-vlan 20
- name Customer2_E-LAN
-!
-interface Ethernet4
- description EOS14
- channel-group 14 mode active
-!
-interface Port-Channel14
- description CE-EOS14
- switchport access vlan 20
- !
- evpn ethernet-segment
- identifier 0000:0200:0200:2000:0608
- route-target import 00:02:00:02:00:20
- lacp system-id 0000.0000.0068
- spanning-tree portfast
-!
-router bgp 100
- maximum-paths 2
- !
- vlan 20
- rd 8.8.8.8:20
- route-target both 2:20
- redistribute learned
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS9 b/topologies/beta-routing/configlets/Customer2_L2VPN_EOS9
deleted file mode 100644
index 3544f539e..000000000
--- a/topologies/beta-routing/configlets/Customer2_L2VPN_EOS9
+++ /dev/null
@@ -1,15 +0,0 @@
-interface Ethernet1
- no switchport
- channel-group 9 mode active
-!
-interface Ethernet2
- no switchport
- channel-group 9 mode active
-!
-interface Port-Channel9
- description PEs: EOS3,EOS4
- ip address 10.0.0.9/24
-!
-router ospf 200
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer3_E-LINE_EOS1 b/topologies/beta-routing/configlets/Customer3_E-LINE_EOS1
deleted file mode 100644
index 6aea95190..000000000
--- a/topologies/beta-routing/configlets/Customer3_E-LINE_EOS1
+++ /dev/null
@@ -1,21 +0,0 @@
-mpls ldp
- router-id 1.1.1.1
- transport-address interface Loopback0
- no shutdown
- !
- pseudowires
- mtu 9000
- !
- pseudowire PW1
- neighbor 4.4.4.4
- pseudowire-id 1617
-!
-patch panel
- patch EOS4-PW1
- connector 1 interface Ethernet6
- connector 2 pseudowire ldp PW1
-!
-interface Ethernet6
- no switchport
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer3_E-LINE_EOS16 b/topologies/beta-routing/configlets/Customer3_E-LINE_EOS16
deleted file mode 100644
index 850ec456e..000000000
--- a/topologies/beta-routing/configlets/Customer3_E-LINE_EOS16
+++ /dev/null
@@ -1,6 +0,0 @@
-interface Ethernet1
- ip ospf network point-to-point
-!
-router ospf 300
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer3_E-LINE_EOS17 b/topologies/beta-routing/configlets/Customer3_E-LINE_EOS17
deleted file mode 100644
index 850ec456e..000000000
--- a/topologies/beta-routing/configlets/Customer3_E-LINE_EOS17
+++ /dev/null
@@ -1,6 +0,0 @@
-interface Ethernet1
- ip ospf network point-to-point
-!
-router ospf 300
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer3_E-LINE_EOS4 b/topologies/beta-routing/configlets/Customer3_E-LINE_EOS4
deleted file mode 100644
index 4a3d4fa42..000000000
--- a/topologies/beta-routing/configlets/Customer3_E-LINE_EOS4
+++ /dev/null
@@ -1,21 +0,0 @@
-mpls ldp
- router-id 4.4.4.4
- transport-address interface Loopback0
- no shutdown
- !
- pseudowires
- mtu 9000
- !
- pseudowire PW1
- neighbor 1.1.1.1
- pseudowire-id 1617
-!
-patch panel
- patch EOS1-PW1
- connector 1 interface Ethernet6
- connector 2 pseudowire ldp PW1
-!
-interface Ethernet6
- no switchport
- no lldp transmit
- no lldp receive
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer4_L3VPN_EOS18 b/topologies/beta-routing/configlets/Customer4_L3VPN_EOS18
deleted file mode 100644
index 65a400434..000000000
--- a/topologies/beta-routing/configlets/Customer4_L3VPN_EOS18
+++ /dev/null
@@ -1,6 +0,0 @@
-router bgp 200
- router-id 18.18.18.18
- neighbor 10.8.18.8 remote-as 100
- neighbor 10.8.18.8 allowas-in 1
- neighbor 10.8.18.8 maximum-routes 12000
- network 18.18.18.18/32
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer4_L3VPN_EOS19 b/topologies/beta-routing/configlets/Customer4_L3VPN_EOS19
deleted file mode 100644
index 072077b57..000000000
--- a/topologies/beta-routing/configlets/Customer4_L3VPN_EOS19
+++ /dev/null
@@ -1,6 +0,0 @@
-router bgp 200
- router-id 19.19.19.19
- neighbor 10.7.19.7 remote-as 100
- neighbor 10.7.19.7 allowas-in 1
- neighbor 10.7.19.7 maximum-routes 12000
- network 19.19.19.19/32
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer4_L3VPN_EOS7 b/topologies/beta-routing/configlets/Customer4_L3VPN_EOS7
deleted file mode 100644
index 2550a1208..000000000
--- a/topologies/beta-routing/configlets/Customer4_L3VPN_EOS7
+++ /dev/null
@@ -1,25 +0,0 @@
-vrf instance B
-!
-interface Ethernet4
- description EOS19
- no switchport
- vrf B
- ip address 10.7.19.7/24
-!
-ip routing vrf B
-!
-route-map RM-ASOVERRIDE permit 10
- set as-path match all replacement 100
-!
-router bgp 100
- !
- vrf B
- rd 7.7.7.7:2
- route-target import evpn 2:2
- route-target export evpn 2:2
- neighbor 10.7.19.19 remote-as 200
- neighbor 10.7.19.19 route-map RM-ASOVERRIDE out
- neighbor 10.7.19.19 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.7.19.19 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/Customer4_L3VPN_EOS8 b/topologies/beta-routing/configlets/Customer4_L3VPN_EOS8
deleted file mode 100644
index 85d9c6c6d..000000000
--- a/topologies/beta-routing/configlets/Customer4_L3VPN_EOS8
+++ /dev/null
@@ -1,25 +0,0 @@
-vrf instance B
-!
-interface Ethernet5
- description EOS18
- no switchport
- vrf B
- ip address 10.8.18.8/24
-!
-ip routing vrf B
-!
-route-map RM-ASOVERRIDE permit 10
- set as-path match all replacement 100
-!
-router bgp 100
- !
- vrf B
- rd 8.8.8.8:2
- route-target import evpn 2:2
- route-target export evpn 2:2
- neighbor 10.8.18.18 remote-as 200
- neighbor 10.8.18.18 route-map RM-ASOVERRIDE out
- neighbor 10.8.18.18 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.8.18.18 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/EVPN_PEERING_EOS1 b/topologies/beta-routing/configlets/EVPN_PEERING_EOS1
deleted file mode 100644
index 361328d4a..000000000
--- a/topologies/beta-routing/configlets/EVPN_PEERING_EOS1
+++ /dev/null
@@ -1,11 +0,0 @@
-router bgp 100
- router-id 1.1.1.1
- no bgp default ipv4-unicast
- neighbor 5.5.5.5 remote-as 100
- neighbor 5.5.5.5 update-source Loopback0
- neighbor 5.5.5.5 send-community
- neighbor 5.5.5.5 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 5.5.5.5 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/EVPN_PEERING_EOS1_RING b/topologies/beta-routing/configlets/EVPN_PEERING_EOS1_RING
deleted file mode 100644
index cabc1b85f..000000000
--- a/topologies/beta-routing/configlets/EVPN_PEERING_EOS1_RING
+++ /dev/null
@@ -1,11 +0,0 @@
-router bgp 100
- router-id 1.1.1.1
- no bgp default ipv4-unicast
- neighbor 8.8.8.8 remote-as 100
- neighbor 8.8.8.8 update-source Loopback0
- neighbor 8.8.8.8 send-community
- neighbor 8.8.8.8 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 8.8.8.8 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/EVPN_PEERING_EOS3 b/topologies/beta-routing/configlets/EVPN_PEERING_EOS3
deleted file mode 100644
index fac2bfaf1..000000000
--- a/topologies/beta-routing/configlets/EVPN_PEERING_EOS3
+++ /dev/null
@@ -1,11 +0,0 @@
-router bgp 100
- router-id 3.3.3.3
- no bgp default ipv4-unicast
- neighbor 5.5.5.5 remote-as 100
- neighbor 5.5.5.5 update-source Loopback0
- neighbor 5.5.5.5 send-community
- neighbor 5.5.5.5 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 5.5.5.5 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/EVPN_PEERING_EOS3_RING b/topologies/beta-routing/configlets/EVPN_PEERING_EOS3_RING
deleted file mode 100644
index bc41e0bf0..000000000
--- a/topologies/beta-routing/configlets/EVPN_PEERING_EOS3_RING
+++ /dev/null
@@ -1,11 +0,0 @@
-router bgp 100
- router-id 3.3.3.3
- no bgp default ipv4-unicast
- neighbor 8.8.8.8 remote-as 100
- neighbor 8.8.8.8 update-source Loopback0
- neighbor 8.8.8.8 send-community
- neighbor 8.8.8.8 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 8.8.8.8 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/EVPN_PEERING_EOS4 b/topologies/beta-routing/configlets/EVPN_PEERING_EOS4
deleted file mode 100644
index 3741aa25d..000000000
--- a/topologies/beta-routing/configlets/EVPN_PEERING_EOS4
+++ /dev/null
@@ -1,11 +0,0 @@
-router bgp 100
- router-id 4.4.4.4
- no bgp default ipv4-unicast
- neighbor 5.5.5.5 remote-as 100
- neighbor 5.5.5.5 update-source Loopback0
- neighbor 5.5.5.5 send-community
- neighbor 5.5.5.5 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 5.5.5.5 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/EVPN_PEERING_EOS4_RING b/topologies/beta-routing/configlets/EVPN_PEERING_EOS4_RING
deleted file mode 100644
index c87aff8b8..000000000
--- a/topologies/beta-routing/configlets/EVPN_PEERING_EOS4_RING
+++ /dev/null
@@ -1,11 +0,0 @@
-router bgp 100
- router-id 4.4.4.4
- no bgp default ipv4-unicast
- neighbor 8.8.8.8 remote-as 100
- neighbor 8.8.8.8 update-source Loopback0
- neighbor 8.8.8.8 send-community
- neighbor 8.8.8.8 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 8.8.8.8 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/EVPN_PEERING_EOS5 b/topologies/beta-routing/configlets/EVPN_PEERING_EOS5
deleted file mode 100644
index 56871180b..000000000
--- a/topologies/beta-routing/configlets/EVPN_PEERING_EOS5
+++ /dev/null
@@ -1,19 +0,0 @@
-router bgp 100
- router-id 5.5.5.5
- no bgp default ipv4-unicast
- neighbor PE-RRCLIENTS peer group
- neighbor PE-RRCLIENTS remote-as 100
- neighbor PE-RRCLIENTS update-source Loopback0
- neighbor PE-RRCLIENTS route-reflector-client
- neighbor PE-RRCLIENTS send-community
- neighbor PE-RRCLIENTS maximum-routes 12000
- neighbor 1.1.1.1 peer group PE-RRCLIENTS
- neighbor 3.3.3.3 peer group PE-RRCLIENTS
- neighbor 4.4.4.4 peer group PE-RRCLIENTS
- neighbor 6.6.6.6 peer group PE-RRCLIENTS
- neighbor 7.7.7.7 peer group PE-RRCLIENTS
- neighbor 8.8.8.8 peer group PE-RRCLIENTS
- !
- address-family evpn
- neighbor default encapsulation mpls
- neighbor PE-RRCLIENTS activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/EVPN_PEERING_EOS5_RING b/topologies/beta-routing/configlets/EVPN_PEERING_EOS5_RING
deleted file mode 100644
index 00fa7aa6d..000000000
--- a/topologies/beta-routing/configlets/EVPN_PEERING_EOS5_RING
+++ /dev/null
@@ -1 +0,0 @@
-! Node not used in Ring Lab Topo
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/EVPN_PEERING_EOS6 b/topologies/beta-routing/configlets/EVPN_PEERING_EOS6
deleted file mode 100644
index c1d260119..000000000
--- a/topologies/beta-routing/configlets/EVPN_PEERING_EOS6
+++ /dev/null
@@ -1,11 +0,0 @@
-router bgp 100
- router-id 6.6.6.6
- no bgp default ipv4-unicast
- neighbor 5.5.5.5 remote-as 100
- neighbor 5.5.5.5 update-source Loopback0
- neighbor 5.5.5.5 send-community
- neighbor 5.5.5.5 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 5.5.5.5 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/EVPN_PEERING_EOS6_RING b/topologies/beta-routing/configlets/EVPN_PEERING_EOS6_RING
deleted file mode 100644
index be60afeb9..000000000
--- a/topologies/beta-routing/configlets/EVPN_PEERING_EOS6_RING
+++ /dev/null
@@ -1,11 +0,0 @@
-router bgp 100
- router-id 6.6.6.6
- no bgp default ipv4-unicast
- neighbor 8.8.8.8 remote-as 100
- neighbor 8.8.8.8 update-source Loopback0
- neighbor 8.8.8.8 send-community
- neighbor 8.8.8.8 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 8.8.8.8 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/EVPN_PEERING_EOS7 b/topologies/beta-routing/configlets/EVPN_PEERING_EOS7
deleted file mode 100644
index c65a790cc..000000000
--- a/topologies/beta-routing/configlets/EVPN_PEERING_EOS7
+++ /dev/null
@@ -1,11 +0,0 @@
-router bgp 100
- router-id 7.7.7.7
- no bgp default ipv4-unicast
- neighbor 5.5.5.5 remote-as 100
- neighbor 5.5.5.5 update-source Loopback0
- neighbor 5.5.5.5 send-community
- neighbor 5.5.5.5 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 5.5.5.5 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/EVPN_PEERING_EOS7_RING b/topologies/beta-routing/configlets/EVPN_PEERING_EOS7_RING
deleted file mode 100644
index 81c9c542d..000000000
--- a/topologies/beta-routing/configlets/EVPN_PEERING_EOS7_RING
+++ /dev/null
@@ -1,11 +0,0 @@
-router bgp 100
- router-id 7.7.7.7
- no bgp default ipv4-unicast
- neighbor 8.8.8.8 remote-as 100
- neighbor 8.8.8.8 update-source Loopback0
- neighbor 8.8.8.8 send-community
- neighbor 8.8.8.8 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 8.8.8.8 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/EVPN_PEERING_EOS8 b/topologies/beta-routing/configlets/EVPN_PEERING_EOS8
deleted file mode 100644
index 9ab34c94e..000000000
--- a/topologies/beta-routing/configlets/EVPN_PEERING_EOS8
+++ /dev/null
@@ -1,11 +0,0 @@
-router bgp 100
- router-id 8.8.8.8
- no bgp default ipv4-unicast
- neighbor 5.5.5.5 remote-as 100
- neighbor 5.5.5.5 update-source Loopback0
- neighbor 5.5.5.5 send-community
- neighbor 5.5.5.5 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 5.5.5.5 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/EVPN_PEERING_EOS8_RING b/topologies/beta-routing/configlets/EVPN_PEERING_EOS8_RING
deleted file mode 100644
index 8aeb53f22..000000000
--- a/topologies/beta-routing/configlets/EVPN_PEERING_EOS8_RING
+++ /dev/null
@@ -1,18 +0,0 @@
-router bgp 100
- router-id 8.8.8.8
- no bgp default ipv4-unicast
- neighbor PE-RRCLIENTS peer group
- neighbor PE-RRCLIENTS remote-as 100
- neighbor PE-RRCLIENTS update-source Loopback0
- neighbor PE-RRCLIENTS route-reflector-client
- neighbor PE-RRCLIENTS send-community
- neighbor PE-RRCLIENTS maximum-routes 12000
- neighbor 1.1.1.1 peer group PE-RRCLIENTS
- neighbor 3.3.3.3 peer group PE-RRCLIENTS
- neighbor 4.4.4.4 peer group PE-RRCLIENTS
- neighbor 6.6.6.6 peer group PE-RRCLIENTS
- neighbor 7.7.7.7 peer group PE-RRCLIENTS
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor PE-RRCLIENTS activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/IS-IS_EOS1 b/topologies/beta-routing/configlets/IS-IS_EOS1
deleted file mode 100644
index e0cb5859d..000000000
--- a/topologies/beta-routing/configlets/IS-IS_EOS1
+++ /dev/null
@@ -1,30 +0,0 @@
-interface Ethernet1
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet2
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet4
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet5
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Loopback0
- isis enable 100
- isis passive
-!
-router isis 100
- net 49.1111.0000.0001.00
- is-type level-2
- advertise passive-only
- !
- address-family ipv4 unicast
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/IS-IS_EOS1_RING b/topologies/beta-routing/configlets/IS-IS_EOS1_RING
deleted file mode 100644
index f62b400be..000000000
--- a/topologies/beta-routing/configlets/IS-IS_EOS1_RING
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet2
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet4
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Loopback0
- isis enable 100
- isis passive
-!
-router isis 100
- net 49.1111.0000.0001.00
- is-type level-2
- advertise passive-only
- !
- address-family ipv4 unicast
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/IS-IS_EOS2 b/topologies/beta-routing/configlets/IS-IS_EOS2
deleted file mode 100644
index b423b56c5..000000000
--- a/topologies/beta-routing/configlets/IS-IS_EOS2
+++ /dev/null
@@ -1,35 +0,0 @@
-interface Ethernet1
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet2
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet3
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet4
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet5
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Loopback0
- isis enable 100
- isis passive
-!
-router isis 100
- net 49.1111.0000.0002.00
- is-type level-2
- advertise passive-only
- !
- address-family ipv4 unicast
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/IS-IS_EOS2_RING b/topologies/beta-routing/configlets/IS-IS_EOS2_RING
deleted file mode 100644
index 00fa7aa6d..000000000
--- a/topologies/beta-routing/configlets/IS-IS_EOS2_RING
+++ /dev/null
@@ -1 +0,0 @@
-! Node not used in Ring Lab Topo
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/IS-IS_EOS3 b/topologies/beta-routing/configlets/IS-IS_EOS3
deleted file mode 100644
index a4d1bbcdd..000000000
--- a/topologies/beta-routing/configlets/IS-IS_EOS3
+++ /dev/null
@@ -1,30 +0,0 @@
-interface Ethernet2
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet3
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet4
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet5
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Loopback0
- isis enable 100
- isis passive
-!
-router isis 100
- net 49.1111.0000.0003.00
- is-type level-2
- advertise passive-only
- !
- address-family ipv4 unicast
diff --git a/topologies/beta-routing/configlets/IS-IS_EOS3_RING b/topologies/beta-routing/configlets/IS-IS_EOS3_RING
deleted file mode 100644
index 354b2de83..000000000
--- a/topologies/beta-routing/configlets/IS-IS_EOS3_RING
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet2
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet5
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Loopback0
- isis enable 100
- isis passive
-!
-router isis 100
- net 49.1111.0000.0003.00
- is-type level-2
- advertise passive-only
- !
- address-family ipv4 unicast
diff --git a/topologies/beta-routing/configlets/IS-IS_EOS4 b/topologies/beta-routing/configlets/IS-IS_EOS4
deleted file mode 100644
index e291f6a86..000000000
--- a/topologies/beta-routing/configlets/IS-IS_EOS4
+++ /dev/null
@@ -1,30 +0,0 @@
-interface Ethernet2
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet3
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet4
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet5
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Loopback0
- isis enable 100
- isis passive
-!
-router isis 100
- net 49.1111.0000.0004.00
- is-type level-2
- advertise passive-only
- !
- address-family ipv4 unicast
diff --git a/topologies/beta-routing/configlets/IS-IS_EOS4_RING b/topologies/beta-routing/configlets/IS-IS_EOS4_RING
deleted file mode 100644
index c0c7368b1..000000000
--- a/topologies/beta-routing/configlets/IS-IS_EOS4_RING
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet2
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet5
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Loopback0
- isis enable 100
- isis passive
-!
-router isis 100
- net 49.1111.0000.0004.00
- is-type level-2
- advertise passive-only
- !
- address-family ipv4 unicast
diff --git a/topologies/beta-routing/configlets/IS-IS_EOS5 b/topologies/beta-routing/configlets/IS-IS_EOS5
deleted file mode 100644
index e5d45ece9..000000000
--- a/topologies/beta-routing/configlets/IS-IS_EOS5
+++ /dev/null
@@ -1,36 +0,0 @@
-interface Ethernet1
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet2
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet3
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet4
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet5
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Loopback0
- isis enable 100
- isis passive
-!
-router isis 100
- net 49.1111.0000.0005.00
- is-type level-2
- advertise passive-only
- !
- address-family ipv4 unicast
-
diff --git a/topologies/beta-routing/configlets/IS-IS_EOS5_RING b/topologies/beta-routing/configlets/IS-IS_EOS5_RING
deleted file mode 100644
index 00fa7aa6d..000000000
--- a/topologies/beta-routing/configlets/IS-IS_EOS5_RING
+++ /dev/null
@@ -1 +0,0 @@
-! Node not used in Ring Lab Topo
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/IS-IS_EOS6 b/topologies/beta-routing/configlets/IS-IS_EOS6
deleted file mode 100644
index e4f98bcfb..000000000
--- a/topologies/beta-routing/configlets/IS-IS_EOS6
+++ /dev/null
@@ -1,31 +0,0 @@
-interface Ethernet1
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet2
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet4
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet5
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Loopback0
- isis enable 100
- isis passive
-!
-router isis 100
- net 49.1111.0000.0006.00
- is-type level-2
- advertise passive-only
- !
- address-family ipv4 unicast
-
diff --git a/topologies/beta-routing/configlets/IS-IS_EOS6_RING b/topologies/beta-routing/configlets/IS-IS_EOS6_RING
deleted file mode 100644
index efc2b7a67..000000000
--- a/topologies/beta-routing/configlets/IS-IS_EOS6_RING
+++ /dev/null
@@ -1,21 +0,0 @@
-interface Ethernet2
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet4
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Loopback0
- isis enable 100
- isis passive
-!
-router isis 100
- net 49.1111.0000.0006.00
- is-type level-2
- advertise passive-only
- !
- address-family ipv4 unicast
-
diff --git a/topologies/beta-routing/configlets/IS-IS_EOS7 b/topologies/beta-routing/configlets/IS-IS_EOS7
deleted file mode 100644
index 78b09a495..000000000
--- a/topologies/beta-routing/configlets/IS-IS_EOS7
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet3
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Loopback0
- isis enable 100
- isis passive
-!
-router isis 100
- net 49.1111.0000.0007.00
- is-type level-2
- advertise passive-only
- !
- address-family ipv4 unicast
diff --git a/topologies/beta-routing/configlets/IS-IS_EOS8 b/topologies/beta-routing/configlets/IS-IS_EOS8
deleted file mode 100644
index 0aded689f..000000000
--- a/topologies/beta-routing/configlets/IS-IS_EOS8
+++ /dev/null
@@ -1,21 +0,0 @@
-interface Ethernet1
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Ethernet3
- isis enable 100
- isis circuit-type level-2
- isis network point-to-point
-!
-interface Loopback0
- isis enable 100
- isis passive
-!
-router isis 100
- net 49.1111.0000.0008.00
- is-type level-2
- advertise passive-only
- !
- address-family ipv4 unicast
-
diff --git a/topologies/beta-routing/configlets/LDP_EOS1 b/topologies/beta-routing/configlets/LDP_EOS1
deleted file mode 100644
index 07563e82b..000000000
--- a/topologies/beta-routing/configlets/LDP_EOS1
+++ /dev/null
@@ -1,6 +0,0 @@
-mpls ip
-!
-mpls ldp
- router-id interface Loopback0
- transport-address interface Loopback0
- no shutdown
diff --git a/topologies/beta-routing/configlets/LDP_EOS2 b/topologies/beta-routing/configlets/LDP_EOS2
deleted file mode 100644
index 07563e82b..000000000
--- a/topologies/beta-routing/configlets/LDP_EOS2
+++ /dev/null
@@ -1,6 +0,0 @@
-mpls ip
-!
-mpls ldp
- router-id interface Loopback0
- transport-address interface Loopback0
- no shutdown
diff --git a/topologies/beta-routing/configlets/LDP_EOS2_RING b/topologies/beta-routing/configlets/LDP_EOS2_RING
deleted file mode 100644
index 00fa7aa6d..000000000
--- a/topologies/beta-routing/configlets/LDP_EOS2_RING
+++ /dev/null
@@ -1 +0,0 @@
-! Node not used in Ring Lab Topo
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/LDP_EOS3 b/topologies/beta-routing/configlets/LDP_EOS3
deleted file mode 100644
index 07563e82b..000000000
--- a/topologies/beta-routing/configlets/LDP_EOS3
+++ /dev/null
@@ -1,6 +0,0 @@
-mpls ip
-!
-mpls ldp
- router-id interface Loopback0
- transport-address interface Loopback0
- no shutdown
diff --git a/topologies/beta-routing/configlets/LDP_EOS4 b/topologies/beta-routing/configlets/LDP_EOS4
deleted file mode 100644
index 07563e82b..000000000
--- a/topologies/beta-routing/configlets/LDP_EOS4
+++ /dev/null
@@ -1,6 +0,0 @@
-mpls ip
-!
-mpls ldp
- router-id interface Loopback0
- transport-address interface Loopback0
- no shutdown
diff --git a/topologies/beta-routing/configlets/LDP_EOS5 b/topologies/beta-routing/configlets/LDP_EOS5
deleted file mode 100644
index 07563e82b..000000000
--- a/topologies/beta-routing/configlets/LDP_EOS5
+++ /dev/null
@@ -1,6 +0,0 @@
-mpls ip
-!
-mpls ldp
- router-id interface Loopback0
- transport-address interface Loopback0
- no shutdown
diff --git a/topologies/beta-routing/configlets/LDP_EOS5_RING b/topologies/beta-routing/configlets/LDP_EOS5_RING
deleted file mode 100644
index 00fa7aa6d..000000000
--- a/topologies/beta-routing/configlets/LDP_EOS5_RING
+++ /dev/null
@@ -1 +0,0 @@
-! Node not used in Ring Lab Topo
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/LDP_EOS6 b/topologies/beta-routing/configlets/LDP_EOS6
deleted file mode 100644
index 07563e82b..000000000
--- a/topologies/beta-routing/configlets/LDP_EOS6
+++ /dev/null
@@ -1,6 +0,0 @@
-mpls ip
-!
-mpls ldp
- router-id interface Loopback0
- transport-address interface Loopback0
- no shutdown
diff --git a/topologies/beta-routing/configlets/LDP_EOS7 b/topologies/beta-routing/configlets/LDP_EOS7
deleted file mode 100644
index 07563e82b..000000000
--- a/topologies/beta-routing/configlets/LDP_EOS7
+++ /dev/null
@@ -1,6 +0,0 @@
-mpls ip
-!
-mpls ldp
- router-id interface Loopback0
- transport-address interface Loopback0
- no shutdown
diff --git a/topologies/beta-routing/configlets/LDP_EOS8 b/topologies/beta-routing/configlets/LDP_EOS8
deleted file mode 100644
index 07563e82b..000000000
--- a/topologies/beta-routing/configlets/LDP_EOS8
+++ /dev/null
@@ -1,6 +0,0 @@
-mpls ip
-!
-mpls ldp
- router-id interface Loopback0
- transport-address interface Loopback0
- no shutdown
diff --git a/topologies/beta-routing/configlets/SR_EOS1 b/topologies/beta-routing/configlets/SR_EOS1
deleted file mode 100644
index 910d2621f..000000000
--- a/topologies/beta-routing/configlets/SR_EOS1
+++ /dev/null
@@ -1,10 +0,0 @@
-mpls ip
-!
-interface Loopback0
- node-segment ipv4 index 1
-!
-router isis 100
- !
- segment-routing mpls
- router-id 1.1.1.1
- no shutdown
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SR_EOS2 b/topologies/beta-routing/configlets/SR_EOS2
deleted file mode 100644
index a1827383e..000000000
--- a/topologies/beta-routing/configlets/SR_EOS2
+++ /dev/null
@@ -1,10 +0,0 @@
-mpls ip
-!
-interface Loopback0
- node-segment ipv4 index 2
-!
-router isis 100
- !
- segment-routing mpls
- router-id 2.2.2.2
- no shutdown
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SR_EOS2_RING b/topologies/beta-routing/configlets/SR_EOS2_RING
deleted file mode 100644
index 00fa7aa6d..000000000
--- a/topologies/beta-routing/configlets/SR_EOS2_RING
+++ /dev/null
@@ -1 +0,0 @@
-! Node not used in Ring Lab Topo
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SR_EOS3 b/topologies/beta-routing/configlets/SR_EOS3
deleted file mode 100644
index 4e0aee50b..000000000
--- a/topologies/beta-routing/configlets/SR_EOS3
+++ /dev/null
@@ -1,10 +0,0 @@
-mpls ip
-!
-interface Loopback0
- node-segment ipv4 index 3
-!
-router isis 100
- !
- segment-routing mpls
- router-id 3.3.3.3
- no shutdown
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SR_EOS4 b/topologies/beta-routing/configlets/SR_EOS4
deleted file mode 100644
index 4cf4251ef..000000000
--- a/topologies/beta-routing/configlets/SR_EOS4
+++ /dev/null
@@ -1,10 +0,0 @@
-mpls ip
-!
-interface Loopback0
- node-segment ipv4 index 4
-!
-router isis 100
- !
- segment-routing mpls
- router-id 4.4.4.4
- no shutdown
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SR_EOS5 b/topologies/beta-routing/configlets/SR_EOS5
deleted file mode 100644
index 410c095ea..000000000
--- a/topologies/beta-routing/configlets/SR_EOS5
+++ /dev/null
@@ -1,10 +0,0 @@
-mpls ip
-!
-interface Loopback0
- node-segment ipv4 index 5
-!
-router isis 100
- !
- segment-routing mpls
- router-id 5.5.5.5
- no shutdown
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SR_EOS5_RING b/topologies/beta-routing/configlets/SR_EOS5_RING
deleted file mode 100644
index 00fa7aa6d..000000000
--- a/topologies/beta-routing/configlets/SR_EOS5_RING
+++ /dev/null
@@ -1 +0,0 @@
-! Node not used in Ring Lab Topo
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SR_EOS6 b/topologies/beta-routing/configlets/SR_EOS6
deleted file mode 100644
index ec18b70ed..000000000
--- a/topologies/beta-routing/configlets/SR_EOS6
+++ /dev/null
@@ -1,10 +0,0 @@
-mpls ip
-!
-interface Loopback0
- node-segment ipv4 index 6
-!
-router isis 100
- !
- segment-routing mpls
- router-id 6.6.6.6
- no shutdown
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SR_EOS7 b/topologies/beta-routing/configlets/SR_EOS7
deleted file mode 100644
index cb4e08d72..000000000
--- a/topologies/beta-routing/configlets/SR_EOS7
+++ /dev/null
@@ -1,10 +0,0 @@
-mpls ip
-!
-interface Loopback0
- node-segment ipv4 index 7
-!
-router isis 100
- !
- segment-routing mpls
- router-id 7.7.7.7
- no shutdown
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SR_EOS8 b/topologies/beta-routing/configlets/SR_EOS8
deleted file mode 100644
index b097cda5b..000000000
--- a/topologies/beta-routing/configlets/SR_EOS8
+++ /dev/null
@@ -1,10 +0,0 @@
-mpls ip
-!
-interface Loopback0
- node-segment ipv4 index 8
-!
-router isis 100
- !
- segment-routing mpls
- router-id 8.8.8.8
- no shutdown
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SharedServices_EOS1 b/topologies/beta-routing/configlets/SharedServices_EOS1
deleted file mode 100644
index f98672358..000000000
--- a/topologies/beta-routing/configlets/SharedServices_EOS1
+++ /dev/null
@@ -1,14 +0,0 @@
-ip prefix-list PL-SVCACCESS seq 10 permit 12.12.12.12/32
-ip prefix-list PL-SVCACCESS seq 20 permit 19.19.19.19/32
-!
-route-map RM-EXPORT-TO-SVC permit 10
- match ip address prefix-list PL-SVCACCESS
- set extcommunity rt 500:500 additive
-!
-route-map RM-EXPORT-TO-SVC permit 20
-!
-router bgp 100
- !
- vrf A
- route-target import evpn 3:3
- route-target export evpn route-map RM-EXPORT-TO-SVC
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SharedServices_EOS20 b/topologies/beta-routing/configlets/SharedServices_EOS20
deleted file mode 100644
index 347ebe124..000000000
--- a/topologies/beta-routing/configlets/SharedServices_EOS20
+++ /dev/null
@@ -1,5 +0,0 @@
-router bgp 500
- router-id 20.20.20.20
- neighbor 10.3.20.3 remote-as 100
- neighbor 10.3.20.3 maximum-routes 12000
- network 20.20.20.20/32
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SharedServices_EOS3 b/topologies/beta-routing/configlets/SharedServices_EOS3
deleted file mode 100644
index 0161babd1..000000000
--- a/topologies/beta-routing/configlets/SharedServices_EOS3
+++ /dev/null
@@ -1,28 +0,0 @@
-vrf instance SVC
-!
-interface Ethernet6
- description EOS20
- no switchport
- vrf SVC
- ip address 10.3.20.3/24
-!
-ip routing vrf SVC
-!
-ip prefix-list PL-ALLROUTES seq 10 permit 0.0.0.0/0 le 32
-!
-ip community-list regexp CL-CUST-SVC-IMPORT permit 500:500
-!
-route-map RM-IMPORT-CUST-SVC permit 10
- match community CL-CUST-SVC-IMPORT exact-match
-!
-router bgp 100
- !
- vrf SVC
- rd 3.3.3.3:3
- route-target import evpn 500:500
- route-target export evpn 3:3
- neighbor 10.3.20.20 remote-as 500
- neighbor 10.3.20.20 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.3.20.20 activate
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SharedServices_EOS6 b/topologies/beta-routing/configlets/SharedServices_EOS6
deleted file mode 100644
index f98672358..000000000
--- a/topologies/beta-routing/configlets/SharedServices_EOS6
+++ /dev/null
@@ -1,14 +0,0 @@
-ip prefix-list PL-SVCACCESS seq 10 permit 12.12.12.12/32
-ip prefix-list PL-SVCACCESS seq 20 permit 19.19.19.19/32
-!
-route-map RM-EXPORT-TO-SVC permit 10
- match ip address prefix-list PL-SVCACCESS
- set extcommunity rt 500:500 additive
-!
-route-map RM-EXPORT-TO-SVC permit 20
-!
-router bgp 100
- !
- vrf A
- route-target import evpn 3:3
- route-target export evpn route-map RM-EXPORT-TO-SVC
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SharedServices_EOS7 b/topologies/beta-routing/configlets/SharedServices_EOS7
deleted file mode 100644
index 716bc8232..000000000
--- a/topologies/beta-routing/configlets/SharedServices_EOS7
+++ /dev/null
@@ -1,14 +0,0 @@
-ip prefix-list PL-SVCACCESS seq 10 permit 12.12.12.12/32
-ip prefix-list PL-SVCACCESS seq 20 permit 19.19.19.19/32
-!
-route-map RM-EXPORT-TO-SVC permit 10
- match ip address prefix-list PL-SVCACCESS
- set extcommunity rt 500:500 additive
-!
-route-map RM-EXPORT-TO-SVC permit 20
-!
-router bgp 100
- !
- vrf B
- route-target import evpn 3:3
- route-target export evpn route-map RM-EXPORT-TO-SVC
\ No newline at end of file
diff --git a/topologies/beta-routing/configlets/SharedServices_EOS8 b/topologies/beta-routing/configlets/SharedServices_EOS8
deleted file mode 100644
index 35f3262cf..000000000
--- a/topologies/beta-routing/configlets/SharedServices_EOS8
+++ /dev/null
@@ -1,18 +0,0 @@
-ip prefix-list PL-SVCACCESS seq 10 permit 12.12.12.12/32
-ip prefix-list PL-SVCACCESS seq 20 permit 19.19.19.19/32
-!
-route-map RM-EXPORT-TO-SVC permit 10
- match ip address prefix-list PL-SVCACCESS
- set extcommunity rt 500:500 additive
-!
-route-map RM-EXPORT-TO-SVC permit 20
-!
-router bgp 100
- !
- vrf A
- route-target import evpn 3:3
- route-target export evpn route-map RM-EXPORT-TO-SVC
- !
- vrf B
- route-target import evpn 3:3
- route-target export evpn route-map RM-EXPORT-TO-SVC
\ No newline at end of file
diff --git a/topologies/beta-routing/files/.screenrc b/topologies/beta-routing/files/.screenrc
deleted file mode 100644
index 74976719c..000000000
--- a/topologies/beta-routing/files/.screenrc
+++ /dev/null
@@ -1,31 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.10
-screen 2 ssh 192.168.0.11
-screen 3 ssh 192.168.0.12
-screen 4 ssh 192.168.0.13
-screen 5 ssh 192.168.0.14
-screen 6 ssh 192.168.0.15
-screen 7 ssh 192.168.0.16
-screen 8 ssh 192.168.0.17
-screen 9 ssh 192.168.0.18
-screen 10 ssh 192.168.0.19
-screen 11 ssh 192.168.0.20
-screen 12 ssh 192.168.0.21
-screen 13 ssh 192.168.0.22
-screen 14 ssh 192.168.0.23
-screen 15 ssh 192.168.0.24
-screen 16 ssh 192.168.0.25
-screen 17 ssh 192.168.0.26
-screen 18 ssh 192.168.0.27
-screen 19 ssh 192.168.0.28
-screen 20 ssh 192.168.0.29
-screen 21 ssh /usr/local/bin/login.py
diff --git a/topologies/beta-routing/files/cvp/cvp_info.yaml b/topologies/beta-routing/files/cvp/cvp_info.yaml
deleted file mode 100644
index eadbd64ff..000000000
--- a/topologies/beta-routing/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,77 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- RoutingATD:
- - eos1
- - eos2
- - eos3
- - eos4
- - eos5
- - eos6
- - eos7
- - eos8
- - eos9
- - eos10
- - eos11
- - eos12
- - eos13
- - eos14
- - eos15
- - eos16
- - eos17
- - eos18
- - eos19
- - eos20
- snapshots:
- - name: Validate_IP_Addressing
- commands:
- - show ip interface brief
- - name: EOS_Upgrade
- commands:
- - show version
- - show extensions
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- eos1:
- - BaseIPv4_EOS1
- eos2:
- - BaseIPv4_EOS2
- eos3:
- - BaseIPv4_EOS3
- eos4:
- - BaseIPv4_EOS4
- eos5:
- - BaseIPv4_EOS5
- eos6:
- - BaseIPv4_EOS6
- eos7:
- - BaseIPv4_EOS7
- eos8:
- - BaseIPv4_EOS8
- eos9:
- - BaseIPv4_EOS9
- eos10:
- - BaseIPv4_EOS10
- eos11:
- - BaseIPv4_EOS11
- eos12:
- - BaseIPv4_EOS12
- eos13:
- - BaseIPv4_EOS13
- eos14:
- - BaseIPv4_EOS14
- eos15:
- - BaseIPv4_EOS15
- eos16:
- - BaseIPv4_EOS16
- eos17:
- - BaseIPv4_EOS17
- eos18:
- - BaseIPv4_EOS18
- eos19:
- - BaseIPv4_EOS19
- eos20:
- - BaseIPv4_EOS20
\ No newline at end of file
diff --git a/topologies/beta-routing/files/menus/Ring-Routing.yaml b/topologies/beta-routing/files/menus/Ring-Routing.yaml
deleted file mode 100644
index 83d164325..000000000
--- a/topologies/beta-routing/files/menus/Ring-Routing.yaml
+++ /dev/null
@@ -1,484 +0,0 @@
----
-lab_list:
- reset-ring:
- - command: "/usr/local/bin/ConfigureTopology.py -t Ring-Routing -l reset-ring"
- description: "RING TOPOLOGY - Re-configure nodes for Base RING Topology (reset-ring)"
- sr-ring:
- - command: "/usr/local/bin/ConfigureTopology.py -t Ring-Routing -l sr-ring"
- description: "RING TOPOLOGY - Start at Section 2: Segment-Routing (sr-ring)"
- evpn-ring:
- - command: "/usr/local/bin/ConfigureTopology.py -t Ring-Routing -l evpn-ring"
- description: "RING TOPOLOGY - Start at Section 3: EVPN Control-Plane (evpn-ring)"
- c1l3vpn-ring:
- - command: "/usr/local/bin/ConfigureTopology.py -t Ring-Routing -l c1l3vpn-ring"
- description: "RING TOPOLOGY - Start at Section 4: Customer-1 L3VPN (c1l3vpn-ring)"
- c2l2vpn-ring:
- - command: "/usr/local/bin/ConfigureTopology.py -t Ring-Routing -l c2l2vpn-ring"
- description: "RING TOPOLOGY - Start at Section 8: Customer-2 L2VPN (c2l2vpn-ring)"
- c3eline-ring:
- - command: "/usr/local/bin/ConfigureTopology.py -t Ring-Routing -l c3eline-ring"
- description: "RING TOPOLOGY - Start at Section 10: Customer-3 E-LINE (c3eline-ring)"
- c4l3vpn-ring:
- - command: "/usr/local/bin/ConfigureTopology.py -t Ring-Routing -l c4l3vpn-ring"
- description: "RING TOPOLOGY - Start at Section 11: Customer-4 L3VPN (c4l3vpn-ring)"
- centsvc-ring:
- - command: "/usr/local/bin/ConfigureTopology.py -t Ring-Routing -l centsvc-ring"
- description: "RING TOPOLOGY - Start at Section 13: Centralized Services (centsvc-ring)"
- complete-ring:
- - command: "/usr/local/bin/ConfigureTopology.py -t Ring-Routing -l complete-ring"
- description: "RING TOPOLOGY - Complete all Sections (complete-ring)"
-labconfiglets:
- reset-ring:
- eos1:
- - "BaseIPv4_EOS1_RING"
- eos2:
- - "BaseIPv4_EOS2_RING"
- eos3:
- - "BaseIPv4_EOS3_RING"
- eos4:
- - "BaseIPv4_EOS4_RING"
- eos5:
- - "BaseIPv4_EOS5_RING"
- eos6:
- - "BaseIPv4_EOS6_RING"
- eos7:
- - "BaseIPv4_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- eos9:
- - "BaseIPv4_EOS9"
- eos10:
- - "BaseIPv4_EOS10"
- eos11:
- - "BaseIPv4_EOS11"
- eos12:
- - "BaseIPv4_EOS12"
- eos13:
- - "BaseIPv4_EOS13"
- eos14:
- - "BaseIPv4_EOS14"
- eos15:
- - "BaseIPv4_EOS15"
- eos16:
- - "BaseIPv4_EOS16"
- eos17:
- - "BaseIPv4_EOS17"
- eos18:
- - "BaseIPv4_EOS18"
- eos19:
- - "BaseIPv4_EOS19"
- eos20:
- - "BaseIPv4_EOS20"
- sr-ring:
- eos1:
- - "BaseIPv4_EOS1_RING"
- - "IS-IS_EOS1_RING"
- eos3:
- - "BaseIPv4_EOS3_RING"
- - "IS-IS_EOS3_RING"
- eos4:
- - "BaseIPv4_EOS4_RING"
- - "IS-IS_EOS4_RING"
- eos6:
- - "BaseIPv4_EOS6_RING"
- - "IS-IS_EOS6_RING"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- evpn-ring:
- eos1:
- - "BaseIPv4_EOS1_RING"
- - "IS-IS_EOS1_RING"
- - "SR_EOS1"
- eos3:
- - "BaseIPv4_EOS3_RING"
- - "IS-IS_EOS3_RING"
- - "SR_EOS3"
- eos4:
- - "BaseIPv4_EOS4_RING"
- - "IS-IS_EOS4_RING"
- - "SR_EOS4"
- eos6:
- - "BaseIPv4_EOS6_RING"
- - "IS-IS_EOS6_RING"
- - "SR_EOS6"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- - "SR_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- - "SR_EOS8"
- c1l3vpn-ring:
- eos1:
- - "BaseIPv4_EOS1_RING"
- - "IS-IS_EOS1_RING"
- - "SR_EOS1"
- - "EVPN_PEERING_EOS1_RING"
- eos3:
- - "BaseIPv4_EOS3_RING"
- - "IS-IS_EOS3_RING"
- - "SR_EOS3"
- - "EVPN_PEERING_EOS3_RING"
- eos4:
- - "BaseIPv4_EOS4_RING"
- - "IS-IS_EOS4_RING"
- - "SR_EOS4"
- - "EVPN_PEERING_EOS4_RING"
- eos6:
- - "BaseIPv4_EOS6_RING"
- - "IS-IS_EOS6_RING"
- - "SR_EOS6"
- - "EVPN_PEERING_EOS6_RING"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- - "SR_EOS7"
- - "EVPN_PEERING_EOS7_RING"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- - "SR_EOS8"
- - "EVPN_PEERING_EOS8_RING"
- c2l2vpn-ring:
- eos1:
- - "BaseIPv4_EOS1_RING"
- - "IS-IS_EOS1_RING"
- - "SR_EOS1"
- - "EVPN_PEERING_EOS1_RING"
- - "Customer1_L3VPN_EOS1"
- eos3:
- - "BaseIPv4_EOS3_RING"
- - "IS-IS_EOS3_RING"
- - "SR_EOS3"
- - "EVPN_PEERING_EOS3_RING"
- eos4:
- - "BaseIPv4_EOS4_RING"
- - "IS-IS_EOS4_RING"
- - "SR_EOS4"
- - "EVPN_PEERING_EOS4_RING"
- eos6:
- - "BaseIPv4_EOS6_RING"
- - "IS-IS_EOS6_RING"
- - "SR_EOS6"
- - "EVPN_PEERING_EOS6_RING"
- - "Customer1_L3VPN_EOS6_RING"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- - "SR_EOS7"
- - "EVPN_PEERING_EOS7_RING"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- - "SR_EOS8"
- - "EVPN_PEERING_EOS8_RING"
- - "Customer1_L3VPN_EOS8_RING"
- eos11:
- - "BaseIPv4_EOS11"
- - "Customer1_L3VPN_EOS11"
- eos12:
- - "BaseIPv4_EOS12"
- - "Customer1_L3VPN_EOS12"
- eos13:
- - "BaseIPv4_EOS13"
- - "Customer1_L3VPN_EOS13"
- eos15:
- - "BaseIPv4_EOS15"
- - "Customer1_L3VPN_EOS15"
- c3eline-ring:
- eos1:
- - "BaseIPv4_EOS1_RING"
- - "IS-IS_EOS1_RING"
- - "SR_EOS1"
- - "EVPN_PEERING_EOS1_RING"
- - "Customer1_L3VPN_EOS1"
- eos3:
- - "BaseIPv4_EOS3_RING"
- - "IS-IS_EOS3_RING"
- - "SR_EOS3"
- - "EVPN_PEERING_EOS3_RING"
- - "Customer2_L2VPN_EOS3"
- eos4:
- - "BaseIPv4_EOS4_RING"
- - "IS-IS_EOS4_RING"
- - "SR_EOS4"
- - "EVPN_PEERING_EOS4_RING"
- - "Customer2_L2VPN_EOS4"
- eos6:
- - "BaseIPv4_EOS6_RING"
- - "IS-IS_EOS6_RING"
- - "SR_EOS6"
- - "EVPN_PEERING_EOS6_RING"
- - "Customer1_L3VPN_EOS6_RING"
- - "Customer2_L2VPN_EOS6"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- - "SR_EOS7"
- - "EVPN_PEERING_EOS7_RING"
- - "Customer2_L2VPN_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- - "SR_EOS8"
- - "EVPN_PEERING_EOS8_RING"
- - "Customer1_L3VPN_EOS8_RING"
- - "Customer2_L2VPN_EOS8"
- eos9:
- - "BaseIPv4_EOS9"
- - "Customer2_L2VPN_EOS9"
- eos10:
- - "BaseIPv4_EOS10"
- - "Customer2_L2VPN_EOS10"
- eos11:
- - "BaseIPv4_EOS11"
- - "Customer1_L3VPN_EOS11"
- eos12:
- - "BaseIPv4_EOS12"
- - "Customer1_L3VPN_EOS12"
- eos13:
- - "BaseIPv4_EOS13"
- - "Customer1_L3VPN_EOS13"
- eos14:
- - "BaseIPv4_EOS14"
- - "Customer2_L2VPN_EOS14"
- eos15:
- - "BaseIPv4_EOS15"
- - "Customer1_L3VPN_EOS15"
- c4l3vpn-ring:
- eos1:
- - "BaseIPv4_EOS1_RING"
- - "IS-IS_EOS1_RING"
- - "SR_EOS1"
- - "EVPN_PEERING_EOS1_RING"
- - "Customer1_L3VPN_EOS1"
- - "Customer3_E-LINE_EOS1"
- eos3:
- - "BaseIPv4_EOS3_RING"
- - "IS-IS_EOS3_RING"
- - "SR_EOS3"
- - "EVPN_PEERING_EOS3_RING"
- - "Customer2_L2VPN_EOS3"
- eos4:
- - "BaseIPv4_EOS4_RING"
- - "IS-IS_EOS4_RING"
- - "SR_EOS4"
- - "EVPN_PEERING_EOS4_RING"
- - "Customer2_L2VPN_EOS4"
- - "Customer3_E-LINE_EOS4"
- eos6:
- - "BaseIPv4_EOS6_RING"
- - "IS-IS_EOS6_RING"
- - "SR_EOS6"
- - "EVPN_PEERING_EOS6_RING"
- - "Customer1_L3VPN_EOS6_RING"
- - "Customer2_L2VPN_EOS6"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- - "SR_EOS7"
- - "EVPN_PEERING_EOS7_RING"
- - "Customer2_L2VPN_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- - "SR_EOS8"
- - "EVPN_PEERING_EOS8_RING"
- - "Customer1_L3VPN_EOS8_RING"
- - "Customer2_L2VPN_EOS8"
- eos9:
- - "BaseIPv4_EOS9"
- - "Customer2_L2VPN_EOS9"
- eos10:
- - "BaseIPv4_EOS10"
- - "Customer2_L2VPN_EOS10"
- eos11:
- - "BaseIPv4_EOS11"
- - "Customer1_L3VPN_EOS11"
- eos12:
- - "BaseIPv4_EOS12"
- - "Customer1_L3VPN_EOS12"
- eos13:
- - "BaseIPv4_EOS13"
- - "Customer1_L3VPN_EOS13"
- eos14:
- - "BaseIPv4_EOS14"
- - "Customer2_L2VPN_EOS14"
- eos15:
- - "BaseIPv4_EOS15"
- - "Customer1_L3VPN_EOS15"
- eos16:
- - "BaseIPv4_EOS16"
- - "Customer3_E-LINE_EOS16"
- eos17:
- - "BaseIPv4_EOS17"
- - "Customer3_E-LINE_EOS17"
- centsvc-ring:
- eos1:
- - "BaseIPv4_EOS1_RING"
- - "IS-IS_EOS1_RING"
- - "SR_EOS1"
- - "EVPN_PEERING_EOS1_RING"
- - "Customer1_L3VPN_EOS1"
- - "Customer3_E-LINE_EOS1"
- eos3:
- - "BaseIPv4_EOS3_RING"
- - "IS-IS_EOS3_RING"
- - "SR_EOS3"
- - "EVPN_PEERING_EOS3_RING"
- - "Customer2_L2VPN_EOS3"
- eos4:
- - "BaseIPv4_EOS4_RING"
- - "IS-IS_EOS4_RING"
- - "SR_EOS4"
- - "EVPN_PEERING_EOS4_RING"
- - "Customer2_L2VPN_EOS4"
- - "Customer3_E-LINE_EOS4"
- eos6:
- - "BaseIPv4_EOS6_RING"
- - "IS-IS_EOS6_RING"
- - "SR_EOS6"
- - "EVPN_PEERING_EOS6_RING"
- - "Customer1_L3VPN_EOS6_RING"
- - "Customer2_L2VPN_EOS6"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- - "SR_EOS7"
- - "EVPN_PEERING_EOS7_RING"
- - "Customer2_L2VPN_EOS7"
- - "Customer4_L3VPN_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- - "SR_EOS8"
- - "EVPN_PEERING_EOS8_RING"
- - "Customer1_L3VPN_EOS8_RING"
- - "Customer2_L2VPN_EOS8"
- - "Customer4_L3VPN_EOS8"
- eos9:
- - "BaseIPv4_EOS9"
- - "Customer2_L2VPN_EOS9"
- eos10:
- - "BaseIPv4_EOS10"
- - "Customer2_L2VPN_EOS10"
- eos11:
- - "BaseIPv4_EOS11"
- - "Customer1_L3VPN_EOS11"
- eos12:
- - "BaseIPv4_EOS12"
- - "Customer1_L3VPN_EOS12"
- eos13:
- - "BaseIPv4_EOS13"
- - "Customer1_L3VPN_EOS13"
- eos14:
- - "BaseIPv4_EOS14"
- - "Customer2_L2VPN_EOS14"
- eos15:
- - "BaseIPv4_EOS15"
- - "Customer1_L3VPN_EOS15"
- eos16:
- - "BaseIPv4_EOS16"
- - "Customer3_E-LINE_EOS16"
- eos17:
- - "BaseIPv4_EOS17"
- - "Customer3_E-LINE_EOS17"
- eos18:
- - "BaseIPv4_EOS18"
- - "Customer4_L3VPN_EOS18"
- eos19:
- - "BaseIPv4_EOS19"
- - "Customer4_L3VPN_EOS19"
- complete-ring:
- eos1:
- - "BaseIPv4_EOS1_RING"
- - "IS-IS_EOS1_RING"
- - "SR_EOS1"
- - "EVPN_PEERING_EOS1_RING"
- - "Customer1_L3VPN_EOS1"
- - "Customer3_E-LINE_EOS1"
- - "SharedServices_EOS1"
- eos2:
- - "BaseIPv4_EOS2_RING"
- eos3:
- - "BaseIPv4_EOS3_RING"
- - "IS-IS_EOS3_RING"
- - "SR_EOS3"
- - "EVPN_PEERING_EOS3_RING"
- - "Customer2_L2VPN_EOS3"
- - "SharedServices_EOS3"
- eos4:
- - "BaseIPv4_EOS4_RING"
- - "IS-IS_EOS4_RING"
- - "SR_EOS4"
- - "EVPN_PEERING_EOS4_RING"
- - "Customer2_L2VPN_EOS4"
- - "Customer3_E-LINE_EOS4"
- eos5:
- - "BaseIPv4_EOS5_RING"
- eos6:
- - "BaseIPv4_EOS6_RING"
- - "IS-IS_EOS6_RING"
- - "SR_EOS6"
- - "EVPN_PEERING_EOS6_RING"
- - "Customer1_L3VPN_EOS6_RING"
- - "Customer2_L2VPN_EOS6"
- - "SharedServices_EOS6"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- - "SR_EOS7"
- - "EVPN_PEERING_EOS7_RING"
- - "Customer2_L2VPN_EOS7"
- - "Customer4_L3VPN_EOS7"
- - "SharedServices_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- - "SR_EOS8"
- - "EVPN_PEERING_EOS8_RING"
- - "Customer1_L3VPN_EOS8_RING"
- - "Customer2_L2VPN_EOS8"
- - "Customer4_L3VPN_EOS8"
- - "SharedServices_EOS8"
- eos9:
- - "BaseIPv4_EOS9"
- - "Customer2_L2VPN_EOS9"
- eos10:
- - "BaseIPv4_EOS10"
- - "Customer2_L2VPN_EOS10"
- eos11:
- - "BaseIPv4_EOS11"
- - "Customer1_L3VPN_EOS11"
- eos12:
- - "BaseIPv4_EOS12"
- - "Customer1_L3VPN_EOS12"
- eos13:
- - "BaseIPv4_EOS13"
- - "Customer1_L3VPN_EOS13"
- eos14:
- - "BaseIPv4_EOS14"
- - "Customer2_L2VPN_EOS14"
- eos15:
- - "BaseIPv4_EOS15"
- - "Customer1_L3VPN_EOS15"
- eos16:
- - "BaseIPv4_EOS16"
- - "Customer3_E-LINE_EOS16"
- eos17:
- - "BaseIPv4_EOS17"
- - "Customer3_E-LINE_EOS17"
- eos18:
- - "BaseIPv4_EOS18"
- - "Customer4_L3VPN_EOS18"
- eos19:
- - "BaseIPv4_EOS19"
- - "Customer4_L3VPN_EOS19"
- eos20:
- - "BaseIPv4_EOS20"
- - "SharedServices_EOS20"
\ No newline at end of file
diff --git a/topologies/beta-routing/files/menus/Routing.yaml b/topologies/beta-routing/files/menus/Routing.yaml
deleted file mode 100644
index 56f8cbf42..000000000
--- a/topologies/beta-routing/files/menus/Routing.yaml
+++ /dev/null
@@ -1,548 +0,0 @@
----
-lab_list:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py -t Routing -l reset"
- description: "Reset All Devices to Base IPv4 (reset)"
- sr:
- - command: "/usr/local/bin/ConfigureTopology.py -t Routing -l sr"
- description: "Start at Section 2: Segment-Routing (sr)"
- evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t Routing -l evpn"
- description: "Start at Section 3: EVPN Control-Plane (evpn)"
- c1l3vpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t Routing -l c1l3vpn"
- description: "Start at Section 4: Customer-1 L3VPN (c1l3vpn)"
- c2l2vpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t Routing -l c2l2vpn"
- description: "Start at Section 8: Customer-2 L2VPN (c2l2vpn)"
- c3eline:
- - command: "/usr/local/bin/ConfigureTopology.py -t Routing -l c3eline"
- description: "Start at Section 10: Customer-3 E-LINE (c3eline)"
- c4l3vpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t Routing -l c4l3vpn"
- description: "Start at Section 11: Customer-4 L3VPN (c4l3vpn)"
- centsvc:
- - command: "/usr/local/bin/ConfigureTopology.py -t Routing -l centsvc"
- description: "Start at Section 13: Centralized Services (centsvc)"
- complete:
- - command: "/usr/local/bin/ConfigureTopology.py -t Routing -l complete"
- description: "Complete all Sections (complete)"
-labconfiglets:
- reset:
- eos1:
- - "BaseIPv4_EOS1"
- eos2:
- - "BaseIPv4_EOS2"
- eos3:
- - "BaseIPv4_EOS3"
- eos4:
- - "BaseIPv4_EOS4"
- eos5:
- - "BaseIPv4_EOS5"
- eos6:
- - "BaseIPv4_EOS6"
- eos7:
- - "BaseIPv4_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- eos9:
- - "BaseIPv4_EOS9"
- eos10:
- - "BaseIPv4_EOS10"
- eos11:
- - "BaseIPv4_EOS11"
- eos12:
- - "BaseIPv4_EOS12"
- eos13:
- - "BaseIPv4_EOS13"
- eos14:
- - "BaseIPv4_EOS14"
- eos15:
- - "BaseIPv4_EOS15"
- eos16:
- - "BaseIPv4_EOS16"
- eos17:
- - "BaseIPv4_EOS17"
- eos18:
- - "BaseIPv4_EOS18"
- eos19:
- - "BaseIPv4_EOS19"
- eos20:
- - "BaseIPv4_EOS20"
- sr:
- eos1:
- - "BaseIPv4_EOS1"
- - "IS-IS_EOS1"
- eos2:
- - "BaseIPv4_EOS2"
- - "IS-IS_EOS2"
- eos3:
- - "BaseIPv4_EOS3"
- - "IS-IS_EOS3"
- eos4:
- - "BaseIPv4_EOS4"
- - "IS-IS_EOS4"
- eos5:
- - "BaseIPv4_EOS5"
- - "IS-IS_EOS5"
- eos6:
- - "BaseIPv4_EOS6"
- - "IS-IS_EOS6"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- evpn:
- eos1:
- - "BaseIPv4_EOS1"
- - "IS-IS_EOS1"
- - "SR_EOS1"
- eos2:
- - "BaseIPv4_EOS2"
- - "IS-IS_EOS2"
- - "SR_EOS2"
- eos3:
- - "BaseIPv4_EOS3"
- - "IS-IS_EOS3"
- - "SR_EOS3"
- eos4:
- - "BaseIPv4_EOS4"
- - "IS-IS_EOS4"
- - "SR_EOS4"
- eos5:
- - "BaseIPv4_EOS5"
- - "IS-IS_EOS5"
- - "SR_EOS5"
- eos6:
- - "BaseIPv4_EOS6"
- - "IS-IS_EOS6"
- - "SR_EOS6"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- - "SR_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- - "SR_EOS8"
- c1l3vpn:
- eos1:
- - "BaseIPv4_EOS1"
- - "IS-IS_EOS1"
- - "SR_EOS1"
- - "EVPN_PEERING_EOS1"
- eos2:
- - "BaseIPv4_EOS2"
- - "IS-IS_EOS2"
- - "SR_EOS2"
- eos3:
- - "BaseIPv4_EOS3"
- - "IS-IS_EOS3"
- - "SR_EOS3"
- - "EVPN_PEERING_EOS3"
- eos4:
- - "BaseIPv4_EOS4"
- - "IS-IS_EOS4"
- - "SR_EOS4"
- - "EVPN_PEERING_EOS4"
- eos5:
- - "BaseIPv4_EOS5"
- - "IS-IS_EOS5"
- - "SR_EOS5"
- - "EVPN_PEERING_EOS5"
- eos6:
- - "BaseIPv4_EOS6"
- - "IS-IS_EOS6"
- - "SR_EOS6"
- - "EVPN_PEERING_EOS6"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- - "SR_EOS7"
- - "EVPN_PEERING_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- - "SR_EOS8"
- - "EVPN_PEERING_EOS8"
- c2l2vpn:
- eos1:
- - "BaseIPv4_EOS1"
- - "IS-IS_EOS1"
- - "SR_EOS1"
- - "EVPN_PEERING_EOS1"
- - "Customer1_L3VPN_EOS1"
- eos2:
- - "BaseIPv4_EOS2"
- - "IS-IS_EOS2"
- - "SR_EOS2"
- eos3:
- - "BaseIPv4_EOS3"
- - "IS-IS_EOS3"
- - "SR_EOS3"
- - "EVPN_PEERING_EOS3"
- eos4:
- - "BaseIPv4_EOS4"
- - "IS-IS_EOS4"
- - "SR_EOS4"
- - "EVPN_PEERING_EOS4"
- eos5:
- - "BaseIPv4_EOS5"
- - "IS-IS_EOS5"
- - "SR_EOS5"
- - "EVPN_PEERING_EOS5"
- eos6:
- - "BaseIPv4_EOS6"
- - "IS-IS_EOS6"
- - "SR_EOS6"
- - "EVPN_PEERING_EOS6"
- - "Customer1_L3VPN_EOS6"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- - "SR_EOS7"
- - "EVPN_PEERING_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- - "SR_EOS8"
- - "EVPN_PEERING_EOS8"
- - "Customer1_L3VPN_EOS8"
- eos11:
- - "BaseIPv4_EOS11"
- - "Customer1_L3VPN_EOS11"
- eos12:
- - "BaseIPv4_EOS12"
- - "Customer1_L3VPN_EOS12"
- eos13:
- - "BaseIPv4_EOS13"
- - "Customer1_L3VPN_EOS13"
- eos15:
- - "BaseIPv4_EOS15"
- - "Customer1_L3VPN_EOS15"
- c3eline:
- eos1:
- - "BaseIPv4_EOS1"
- - "IS-IS_EOS1"
- - "SR_EOS1"
- - "EVPN_PEERING_EOS1"
- - "Customer1_L3VPN_EOS1"
- eos2:
- - "BaseIPv4_EOS2"
- - "IS-IS_EOS2"
- - "SR_EOS2"
- eos3:
- - "BaseIPv4_EOS3"
- - "IS-IS_EOS3"
- - "SR_EOS3"
- - "EVPN_PEERING_EOS3"
- - "Customer2_L2VPN_EOS3"
- eos4:
- - "BaseIPv4_EOS4"
- - "IS-IS_EOS4"
- - "SR_EOS4"
- - "EVPN_PEERING_EOS4"
- - "Customer2_L2VPN_EOS4"
- eos5:
- - "BaseIPv4_EOS5"
- - "IS-IS_EOS5"
- - "SR_EOS5"
- - "EVPN_PEERING_EOS5"
- eos6:
- - "BaseIPv4_EOS6"
- - "IS-IS_EOS6"
- - "SR_EOS6"
- - "EVPN_PEERING_EOS6"
- - "Customer1_L3VPN_EOS6"
- - "Customer2_L2VPN_EOS6"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- - "SR_EOS7"
- - "EVPN_PEERING_EOS7"
- - "Customer2_L2VPN_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- - "SR_EOS8"
- - "EVPN_PEERING_EOS8"
- - "Customer1_L3VPN_EOS8"
- - "Customer2_L2VPN_EOS8"
- eos9:
- - "BaseIPv4_EOS9"
- - "Customer2_L2VPN_EOS9"
- eos10:
- - "BaseIPv4_EOS10"
- - "Customer2_L2VPN_EOS10"
- eos11:
- - "BaseIPv4_EOS11"
- - "Customer1_L3VPN_EOS11"
- eos12:
- - "BaseIPv4_EOS12"
- - "Customer1_L3VPN_EOS12"
- eos13:
- - "BaseIPv4_EOS13"
- - "Customer1_L3VPN_EOS13"
- eos14:
- - "BaseIPv4_EOS14"
- - "Customer2_L2VPN_EOS14"
- eos15:
- - "BaseIPv4_EOS15"
- - "Customer1_L3VPN_EOS15"
- c4l3vpn:
- eos1:
- - "BaseIPv4_EOS1"
- - "IS-IS_EOS1"
- - "SR_EOS1"
- - "EVPN_PEERING_EOS1"
- - "Customer1_L3VPN_EOS1"
- - "Customer3_E-LINE_EOS1"
- eos2:
- - "BaseIPv4_EOS2"
- - "IS-IS_EOS2"
- - "SR_EOS2"
- eos3:
- - "BaseIPv4_EOS3"
- - "IS-IS_EOS3"
- - "SR_EOS3"
- - "EVPN_PEERING_EOS3"
- - "Customer2_L2VPN_EOS3"
- eos4:
- - "BaseIPv4_EOS4"
- - "IS-IS_EOS4"
- - "SR_EOS4"
- - "EVPN_PEERING_EOS4"
- - "Customer2_L2VPN_EOS4"
- - "Customer3_E-LINE_EOS4"
- eos5:
- - "BaseIPv4_EOS5"
- - "IS-IS_EOS5"
- - "SR_EOS5"
- - "EVPN_PEERING_EOS5"
- eos6:
- - "BaseIPv4_EOS6"
- - "IS-IS_EOS6"
- - "SR_EOS6"
- - "EVPN_PEERING_EOS6"
- - "Customer1_L3VPN_EOS6"
- - "Customer2_L2VPN_EOS6"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- - "SR_EOS7"
- - "EVPN_PEERING_EOS7"
- - "Customer2_L2VPN_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- - "SR_EOS8"
- - "EVPN_PEERING_EOS8"
- - "Customer1_L3VPN_EOS8"
- - "Customer2_L2VPN_EOS8"
- eos9:
- - "BaseIPv4_EOS9"
- - "Customer2_L2VPN_EOS9"
- eos10:
- - "BaseIPv4_EOS10"
- - "Customer2_L2VPN_EOS10"
- eos11:
- - "BaseIPv4_EOS11"
- - "Customer1_L3VPN_EOS11"
- eos12:
- - "BaseIPv4_EOS12"
- - "Customer1_L3VPN_EOS12"
- eos13:
- - "BaseIPv4_EOS13"
- - "Customer1_L3VPN_EOS13"
- eos14:
- - "BaseIPv4_EOS14"
- - "Customer2_L2VPN_EOS14"
- eos15:
- - "BaseIPv4_EOS15"
- - "Customer1_L3VPN_EOS15"
- eos16:
- - "BaseIPv4_EOS16"
- - "Customer3_E-LINE_EOS16"
- eos17:
- - "BaseIPv4_EOS17"
- - "Customer3_E-LINE_EOS17"
- centsvc:
- eos1:
- - "BaseIPv4_EOS1"
- - "IS-IS_EOS1"
- - "SR_EOS1"
- - "EVPN_PEERING_EOS1"
- - "Customer1_L3VPN_EOS1"
- - "Customer3_E-LINE_EOS1"
- eos2:
- - "BaseIPv4_EOS2"
- - "IS-IS_EOS2"
- - "SR_EOS2"
- eos3:
- - "BaseIPv4_EOS3"
- - "IS-IS_EOS3"
- - "SR_EOS3"
- - "EVPN_PEERING_EOS3"
- - "Customer2_L2VPN_EOS3"
- eos4:
- - "BaseIPv4_EOS4"
- - "IS-IS_EOS4"
- - "SR_EOS4"
- - "EVPN_PEERING_EOS4"
- - "Customer2_L2VPN_EOS4"
- - "Customer3_E-LINE_EOS4"
- eos5:
- - "BaseIPv4_EOS5"
- - "IS-IS_EOS5"
- - "SR_EOS5"
- - "EVPN_PEERING_EOS5"
- eos6:
- - "BaseIPv4_EOS6"
- - "IS-IS_EOS6"
- - "SR_EOS6"
- - "EVPN_PEERING_EOS6"
- - "Customer1_L3VPN_EOS6"
- - "Customer2_L2VPN_EOS6"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- - "SR_EOS7"
- - "EVPN_PEERING_EOS7"
- - "Customer2_L2VPN_EOS7"
- - "Customer4_L3VPN_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- - "SR_EOS8"
- - "EVPN_PEERING_EOS8"
- - "Customer1_L3VPN_EOS8"
- - "Customer2_L2VPN_EOS8"
- - "Customer4_L3VPN_EOS8"
- eos9:
- - "BaseIPv4_EOS9"
- - "Customer2_L2VPN_EOS9"
- eos10:
- - "BaseIPv4_EOS10"
- - "Customer2_L2VPN_EOS10"
- eos11:
- - "BaseIPv4_EOS11"
- - "Customer1_L3VPN_EOS11"
- eos12:
- - "BaseIPv4_EOS12"
- - "Customer1_L3VPN_EOS12"
- eos13:
- - "BaseIPv4_EOS13"
- - "Customer1_L3VPN_EOS13"
- eos14:
- - "BaseIPv4_EOS14"
- - "Customer2_L2VPN_EOS14"
- eos15:
- - "BaseIPv4_EOS15"
- - "Customer1_L3VPN_EOS15"
- eos16:
- - "BaseIPv4_EOS16"
- - "Customer3_E-LINE_EOS16"
- eos17:
- - "BaseIPv4_EOS17"
- - "Customer3_E-LINE_EOS17"
- eos18:
- - "BaseIPv4_EOS18"
- - "Customer4_L3VPN_EOS18"
- eos19:
- - "BaseIPv4_EOS19"
- - "Customer4_L3VPN_EOS19"
- complete:
- eos1:
- - "BaseIPv4_EOS1"
- - "IS-IS_EOS1"
- - "SR_EOS1"
- - "EVPN_PEERING_EOS1"
- - "Customer1_L3VPN_EOS1"
- - "Customer3_E-LINE_EOS1"
- - "SharedServices_EOS1"
- eos2:
- - "BaseIPv4_EOS2"
- - "IS-IS_EOS2"
- - "SR_EOS2"
- eos3:
- - "BaseIPv4_EOS3"
- - "IS-IS_EOS3"
- - "SR_EOS3"
- - "EVPN_PEERING_EOS3"
- - "Customer2_L2VPN_EOS3"
- - "SharedServices_EOS3"
- eos4:
- - "BaseIPv4_EOS4"
- - "IS-IS_EOS4"
- - "SR_EOS4"
- - "EVPN_PEERING_EOS4"
- - "Customer2_L2VPN_EOS4"
- - "Customer3_E-LINE_EOS4"
- eos5:
- - "BaseIPv4_EOS5"
- - "IS-IS_EOS5"
- - "SR_EOS5"
- - "EVPN_PEERING_EOS5"
- eos6:
- - "BaseIPv4_EOS6"
- - "IS-IS_EOS6"
- - "SR_EOS6"
- - "EVPN_PEERING_EOS6"
- - "Customer1_L3VPN_EOS6"
- - "Customer2_L2VPN_EOS6"
- - "SharedServices_EOS6"
- eos7:
- - "BaseIPv4_EOS7"
- - "IS-IS_EOS7"
- - "SR_EOS7"
- - "EVPN_PEERING_EOS7"
- - "Customer2_L2VPN_EOS7"
- - "Customer4_L3VPN_EOS7"
- - "SharedServices_EOS7"
- eos8:
- - "BaseIPv4_EOS8"
- - "IS-IS_EOS8"
- - "SR_EOS8"
- - "EVPN_PEERING_EOS8"
- - "Customer1_L3VPN_EOS8"
- - "Customer2_L2VPN_EOS8"
- - "Customer4_L3VPN_EOS8"
- - "SharedServices_EOS8"
- eos9:
- - "BaseIPv4_EOS9"
- - "Customer2_L2VPN_EOS9"
- eos10:
- - "BaseIPv4_EOS10"
- - "Customer2_L2VPN_EOS10"
- eos11:
- - "BaseIPv4_EOS11"
- - "Customer1_L3VPN_EOS11"
- eos12:
- - "BaseIPv4_EOS12"
- - "Customer1_L3VPN_EOS12"
- eos13:
- - "BaseIPv4_EOS13"
- - "Customer1_L3VPN_EOS13"
- eos14:
- - "BaseIPv4_EOS14"
- - "Customer2_L2VPN_EOS14"
- eos15:
- - "BaseIPv4_EOS15"
- - "Customer1_L3VPN_EOS15"
- eos16:
- - "BaseIPv4_EOS16"
- - "Customer3_E-LINE_EOS16"
- eos17:
- - "BaseIPv4_EOS17"
- - "Customer3_E-LINE_EOS17"
- eos18:
- - "BaseIPv4_EOS18"
- - "Customer4_L3VPN_EOS18"
- eos19:
- - "BaseIPv4_EOS19"
- - "Customer4_L3VPN_EOS19"
- eos20:
- - "BaseIPv4_EOS20"
- - "SharedServices_EOS20"
diff --git a/topologies/beta-routing/files/menus/default.yaml b/topologies/beta-routing/files/menus/default.yaml
deleted file mode 100644
index 52ae07222..000000000
--- a/topologies/beta-routing/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: Routing.yaml
\ No newline at end of file
diff --git a/topologies/beta-routing/labguides/.gitignore b/topologies/beta-routing/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/beta-routing/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/beta-routing/labguides/Makefile b/topologies/beta-routing/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/beta-routing/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/beta-routing/labguides/readme.md b/topologies/beta-routing/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/beta-routing/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/beta-routing/labguides/source/RATD.rst b/topologies/beta-routing/labguides/source/RATD.rst
deleted file mode 100644
index b5d92e758..000000000
--- a/topologies/beta-routing/labguides/source/RATD.rst
+++ /dev/null
@@ -1,282 +0,0 @@
-Routing ATD Lab Guide
-=====================
-
-.. image:: images/RATD-Topo-Image.png
- :align: center
-
-1. Deploy IS-IS as the Service Provider Underlay IGP
-==========================================================
-
- .. image:: images/RATD-Section1+2-Image.png
- :align: center
-
- a. IS-IS will be leveraged to carry underlay IPv4 prefix reachability information
-
- b. All nodes should be within the same flooding domain
-
- c. All nodes should only maintain a Level-2 database
-
- d. Ensure that there are no unnecessary Pseudonodes within the topology
-
- e. (Optional) Only advertise reachability information for /32 loopback interfaces into the LSDB
-
- f. Once this task has been completed, all Service Provider nodes should be able to ping all other node loopback addresses
-
-2. Establish MPLS transport label distribution via Segment-Routing
-=========================================================================
-
- a. Enable Segment-Routing extensions to IS-IS, leveraging MPLS data plane encapsulation
-
- b. The Segment Routing Global Block (SRBG) label range should be 900,000 – 965,535 on all Service Provider nodes
-
- c. Each node should have a globally unique Node SID equal to 900,000 + NodeID
-
- i. For example, EOS1 should have a Node SID of 900,001
-
- d. Review IS-IS adjacency SIDs on EOS2 and EOS5
-
- i. Is there overlap?
-
- ii. If so, will this present an issue? Why or Why not?
-
- e. Validate that all Service Provider nodes have a globally unique Node SID
-
- f. To protect against black holes, and reduce convergence time:
-
- i. Enable the equivalent of IGP Sync and Session-Protection within the Segment-Routing domain
-
- g. Once this task has been completed, all Service Provider nodes should have an LSP established for reachability between loopbacks
-
- .. code-block:: text
-
- ping mpls segment-routing ip x.x.x.x/32 source y.y.y.y
-
- .. code-block:: text
-
- traceroute mpls segment-routing ip x.x.x.x/32 source y.y.y.y
-
-3. Prepare to offer VPN services to customers via MP-BGP EVPN control-plane
-==================================================================================
-
- .. image:: images/RATD-Section3-Image.png
- :align: center
-
- a. BGP Autonomous System 100 is leveraged by the Service Provider
-
- b. Do all nodes within the Service Provider need to run BGP? Why, or why not?
-
- c. Enable BGP EVPN peering within the service provider
-
- i. BGP Router-ID should be Loopback0 32-bit value
-
- ii. Loopback0 IP address should be used for all BGP peerings
-
- iii. All PE nodes must be capable of advertising and receiving reachability information to/from all other PE nodes
-
- iv. A full mesh of peerings must not be used to accomplish this task
-
- v. EOS5 should act as the peering point for all PE nodes
-
- vi. Disable any unnecessary BGP AFI/SAFI peerings
-
- vii. Use MPLS as the data-plane encapsulation / VPN label distribution
-
-4. Prepare for Customer-1 Layer3 VPN Services
-===================================================================================
-
- .. image:: images/RATD-Section4+5+6+7-Image.png
- :align: center
-
- a. Customer-1 CE Nodes: EOS11, EOS13, EOS15
-
- b. On all PE nodes that are connected to Customer-1 CE nodes:
-
- i. Define VRF “A”
-
- 1. IPv4 Unicast Forwarding
-
- 2. Route-Target for import and export should be 1:1
-
- 3. Route-Distinguisher should be X.X.X.X:1 (X = Node-ID)
-
- ii. Place the appropriate interfaces on the PE nodes into VRF “A”
-
-5. Configure Customer-1 CE devices
-=========================================================================
-
- a. EOS11, EOS12 and EOS13 should all run OSPF process 100 in area 0
-
- b. Advertise all connected interfaces into OSPF using a network statement
-
- c. Once this task is complete; EOS11, EOS12, and EOS13 should be able to ping each other’s loopbacks and directly connected interfaces
-
-6. Establish PE-CE peering with Customer-1
-=========================================================================
-
- a. EOS11 EOS12 should be in BGP AS 123
-
- i. EOS11 and EOS12 should originate the following networks via BGP (any method of network origination is acceptable)
-
- 1. 11.11.11.11/32
-
- 2. 12.12.12.12/32
-
- 3. 13.13.13.13/32
-
- b. EOS15 should be in BGP AS 15
-
- i. EOS15 should originate the following networks via BGP (any method of network origination is acceptable)
-
- 1. 15.15.15.15/32
-
- c. Establish eBGP IPv4 Unicast peering between Customer-1 CE and Service Provider PE devices. These peerings should be within the Customer-1 VPN (VRF)
-
- d. EOS12 should have the following output from a ‘show ip route ospf’ command:
-
- .. image:: images/RATD_Section6_Task_D.png
- :align: center
-
- e. EOS15 should have the following output from a ‘show ip route bgp’ command:
-
- .. image:: images/RATD_Section6_Task_E.png
- :align: center
-
- f. Once this task is complete, all Customer-1 CE devices should be able to ping each other’s Loopback0 interface when sourcing the pings from their own Loopback0 interface
-
-7. L3VPN Multi-Pathing
-=========================================================================
-
- a. When pinging from EOS15 to EOS12, multiple paths should be leveraged across the Service Provider; distributing the load between EOS1 and EOS6
-
- b. It is ok to adjust the isis metric on the link between EOS6 and EOS8 in order to force multi-pathing to occur
-
- c. EOS8 should have the following output from a ‘show ip route vrf A 12.12.12.12’ command (label may vary, this is ok):
-
- .. image:: images/RATD_Section7_Task_C.png
- :align: center
-
-8. Prepare for Customer-2 Layer2 VPN E-LAN Services
-=========================================================================
-
- .. image:: images/RATD-Section8+9.png
- :align: center
-
- a. Customer-2 CE Nodes: EOS9, EOS10, EOS14
-
- b. On all PE nodes that are connected to Customer-2 CE nodes:
-
- i. Create VLAN 20
-
- ii. Define the ‘VLAN 20’ MAC VRF
-
- 1. Route-Target for import and export should be 2:20
-
- 2. Route-Distinguisher should be X.X.X.X:20 (X = Node-ID)
-
- iii. Configure the appropriate interfaces on the PE Nodes as access interfaces in VLAN 20
-
- iv. Ensure that all known MAC addresses in VLAN 20 are originated/advertised via BGP to other PE Nodes
-
- c. EOS14 and EOS9 will be dual-homed to their PE nodes via an LACP port-channel
-
- i. Both links should be active for egress, as well as ingress traffic
-
- ii. MLAG must not be used to accomplish this task
-
-9. Configure the Customer-2 CE Nodes
-=========================================================================
-
- a. EOS9, EOS10 and EOS14 should all run OSPF process 200 in area 0
-
- b. Advertise all connected interfaces into OSPF using a network statement
-
- c. All traffic to/from multi-homed L2VPN locations should be load balanced across all PE-CE links into that location
-
- d. EOS3 and EOS6 should have the following output from a ‘show l2rib input bgp vlan 20’ command:
-
- i. Note: MAC addresses and Labels may differ in your output, this is ok. The key output is 2-way load balancing to MAC addresses that exist at remote dual-homed sites
-
- ii. EOS3:
-
- .. image:: images/RATD_Section9_Task_D_EOS3.png
- :align: center
-
- iii. EOS6:
-
- .. image:: images/RATD_Section9_Task_D_EOS6.png
- :align: center
-
- e. Once this task is complete; EOS9, EOS10 and EOS14 should all form OSPF adjacencies with each other. These devices should all be able to ping each other’s Loopback0 interfaces when sourcing the ping from their Loopback0 interface
-
-10. Configure Customer-3 E-LINE Service
-=========================================================================
-
- .. image:: images/RATD-Section10-Image.png
- :align: center
-
- a. Customer-3 requires that EOS16 and EOS17 appear as directly Layer2 adjacent to each other
-
- b. Configure a P2P E-LINE service enabling this functionality
-
- c. This solution should not require any VLAN tagging from the CE devices
-
- d. When this task is complete EOS16 and EOS17 should form an OSPF adjacency with each other, and be able to ping each other’s loopbacks
-
-11. Prepare for Customer-4 Layer3 VPN Services
-=========================================================================
-
- .. image:: images/RATD-Section11+12-Image.png
- :align: center
-
- a. Customer-4 CE Nodes: EOS18, EOS19
-
- b. On all PE nodes that are connected to Customer-4 CE nodes:
-
- i. Define VRF “B”
-
- 1. IPv4 Unicast Forwarding
-
- 2. Route-Target for import and export should be 2:2
-
- 3. Route-Distinguisher should be X.X.X.X:2 (X = Node-ID)
-
- ii. Place the appropriate interfaces on the PE nodes into VRF “B”
-
-12. Establish PE-CE peering with Customer-4
-=========================================================================
-
- a. EOS18 and EOS19 should be in BGP AS 200
-
- i. EOS18 should originate the following network via BGP (any method of network origination is acceptable)
-
- 1. 18.18.18.18/32
-
- ii. EOS19 should originate the following network via BGP (any method of network origination is acceptable)
-
- 1. 19.19.19.19/32
-
- b. Establish eBGP IPv4 Unicast peering between Customer-4 CE and Service Provider PE devices.
-
- c. Once this task is complete, Customer-4 CE devices should be able to ping each other’s Loopback0 interface when sourcing the pings from their own Loopback0 interface
-
-13. Offer Centralized Services to L3VPN Customers
-=========================================================================
-
- .. image:: images/RATD-Section13-Image.png
- :align: center
-
- a. EOS20 is providing a centralized service to L3VPN customers
-
- b. This service is accessible via 20.20.20.20/32
-
- c. The service should only be accessible from EOS12 and EOS19
-
- d. Create a centralized service offering, utilizing the VRF “SVC” on the necessary PE nodes
-
- e. When this task is complete, EOS12 and EOS19 should all be able to ping 20.20.20.20
-
- f. EOS11, EOS13, EOS15 and EOS18 must not be able to ping 20.20.20.20
-
- g. Customer-1 (VRF A) and Customer-4 (VRF B) CE devices must not see each other’s routes, and must not be able to ping each other
-
- h. ACLs must not be used to accomplish any part of this task
\ No newline at end of file
diff --git a/topologies/beta-routing/labguides/source/RATD_RING.rst b/topologies/beta-routing/labguides/source/RATD_RING.rst
deleted file mode 100644
index f19ab7808..000000000
--- a/topologies/beta-routing/labguides/source/RATD_RING.rst
+++ /dev/null
@@ -1,282 +0,0 @@
-Routing ATD Lab Guide - Ring Topology
-==========================================
-
-.. image:: images/RATD_RING-Topo-ImageNoAristaLogo.png
- :align: center
-
-1. Deploy IS-IS as the Service Provider Underlay IGP
-==========================================================
-
- .. image:: images/RATD_RING-Section1+2-Image.png
- :align: center
-
- a. IS-IS will be leveraged to carry underlay IPv4 prefix reachability information
-
- b. All nodes should be within the same flooding domain
-
- c. All nodes should only maintain a Level-2 database
-
- d. Ensure that there are no unnecessary Pseudonodes within the topology
-
- e. (Optional) Only advertise reachability information for /32 loopback interfaces into the LSDB
-
- f. Once this task has been completed, all Service Provider nodes should be able to ping all other node loopback addresses
-
-2. Establish MPLS transport label distribution via Segment-Routing
-=========================================================================
-
- a. Enable Segment-Routing extensions to IS-IS, leveraging MPLS data plane encapsulation
-
- b. The Segment Routing Global Block (SRBG) label range should be 900,000 – 965,535 on all Service Provider nodes
-
- c. Each node should have a globally unique Node SID equal to 900,000 + NodeID
-
- i. For example, EOS1 should have a Node SID of 900,001
-
- d. Review IS-IS adjacency SIDs on EOS7 and EOS8
-
- i. Is there overlap?
-
- ii. If so, will this present an issue? Why or Why not?
-
- e. Validate that all Service Provider nodes have a globally unique Node SID
-
- f. To protect against black holes, and reduce convergence time:
-
- i. Enable the equivalent of IGP Sync and Session-Protection within the Segment-Routing domain
-
- g. Once this task has been completed, all Service Provider nodes should have an LSP established for reachability between loopbacks
-
- .. code-block:: text
-
- ping mpls segment-routing ip x.x.x.x/32 source y.y.y.y
-
- .. code-block:: text
-
- traceroute mpls segment-routing ip x.x.x.x/32 source y.y.y.y
-
-3. Prepare to offer VPN services to customers via MP-BGP EVPN control-plane
-==================================================================================
-
- .. image:: images/RATD_RING-Section3-Image.png
- :align: center
-
- a. BGP Autonomous System 100 is leveraged by the Service Provider
-
- b. Do all nodes within the Service Provider need to run BGP? Why, or why not?
-
- c. Enable BGP EVPN peering within the service provider
-
- i. BGP Router-ID should be Loopback0 32-bit value
-
- ii. Loopback0 IP address should be used for all BGP peerings
-
- iii. All PE nodes must be capable of advertising and receiving reachability information to/from all other PE nodes
-
- iv. A full mesh of peerings must not be used to accomplish this task
-
- v. EOS8 should act as the peering point for all PE nodes
-
- vi. Disable any unnecessary BGP AFI/SAFI peerings
-
- vii. Use MPLS as the data-plane encapsulation / VPN label distribution
-
-4. Prepare for Customer-1 Layer3 VPN Services
-===================================================================================
-
- .. image:: images/RATD_RING-Section4+5+6+7-Image.png
- :align: center
-
- a. Customer-1 CE Nodes: EOS11, EOS13, EOS15
-
- b. On all PE nodes that are connected to Customer-1 CE nodes:
-
- i. Define VRF “A”
-
- 1. IPv4 Unicast Forwarding
-
- 2. Route-Target for import and export should be 1:1
-
- 3. Route-Distinguisher should be X.X.X.X:1 (X = Node-ID)
-
- ii. Place the appropriate interfaces on the PE nodes into VRF “A”
-
-5. Configure Customer-1 CE devices
-=========================================================================
-
- a. EOS11, EOS12 and EOS13 should all run OSPF process 100 in area 0
-
- b. Advertise all connected interfaces into OSPF using a network statement
-
- c. Once this task is complete; EOS11, EOS12, and EOS13 should be able to ping each other’s loopbacks and directly connected interfaces
-
-6. Establish PE-CE peering with Customer-1
-=========================================================================
-
- a. EOS11 EOS12 should be in BGP AS 123
-
- i. EOS11 and EOS12 should originate the following networks via BGP (any method of network origination is acceptable)
-
- 1. 11.11.11.11/32
-
- 2. 12.12.12.12/32
-
- 3. 13.13.13.13/32
-
- b. EOS15 should be in BGP AS 15
-
- i. EOS15 should originate the following networks via BGP (any method of network origination is acceptable)
-
- 1. 15.15.15.15/32
-
- c. Establish eBGP IPv4 Unicast peering between Customer-1 CE and Service Provider PE devices. These peerings should be within the Customer-1 VPN (VRF)
-
- d. EOS12 should have the following output from a ‘show ip route ospf’ command:
-
- .. image:: images/RATD_Section6_Task_D.png
- :align: center
-
- e. EOS15 should have the following output from a ‘show ip route bgp’ command:
-
- .. image:: images/RATD_Section6_Task_E.png
- :align: center
-
- f. Once this task is complete, all Customer-1 CE devices should be able to ping each other’s Loopback0 interface when sourcing the pings from their own Loopback0 interface
-
-7. L3VPN Multi-Pathing
-=========================================================================
-
- a. When pinging from EOS15 to EOS12, multiple paths should be leveraged across the Service Provider; distributing the load between EOS1 and EOS6
-
- b. It is ok to adjust the isis metric on the link between EOS6 and EOS8 in order to force multi-pathing to occur
-
- c. EOS8 should have the following output from a ‘show ip route vrf A 12.12.12.12’ command (label may vary, this is ok):
-
- .. image:: images/RATD_RING_Section7_Task_C.png
- :align: center
-
-8. Prepare for Customer-2 Layer2 VPN E-LAN Services
-=========================================================================
-
- .. image:: images/RATD_RING-Section8+9.png
- :align: center
-
- a. Customer-2 CE Nodes: EOS9, EOS10, EOS14
-
- b. On all PE nodes that are connected to Customer-2 CE nodes:
-
- i. Create VLAN 20
-
- ii. Define the ‘VLAN 20’ MAC VRF
-
- 1. Route-Target for import and export should be 2:20
-
- 2. Route-Distinguisher should be X.X.X.X:20 (X = Node-ID)
-
- iii. Configure the appropriate interfaces on the PE Nodes as access interfaces in VLAN 20
-
- iv. Ensure that all known MAC addresses in VLAN 20 are originated/advertised via BGP to other PE Nodes
-
- c. EOS14 and EOS9 will be dual-homed to their PE nodes via an LACP port-channel
-
- i. Both links should be active for egress, as well as ingress traffic
-
- ii. MLAG must not be used to accomplish this task
-
-9. Configure the Customer-2 CE Nodes
-=========================================================================
-
- a. EOS9, EOS10 and EOS14 should all run OSPF process 200 in area 0
-
- b. Advertise all connected interfaces into OSPF using a network statement
-
- c. All traffic to/from multi-homed L2VPN locations should be load balanced across all PE-CE links into that location
-
- d. EOS3 and EOS6 should have the following output from a ‘show l2rib input bgp vlan 20’ command:
-
- i. Note: MAC addresses and Labels may differ in your output, this is ok. The key output is 2-way load balancing to MAC addresses that exist at remote dual-homed sites
-
- ii. EOS3:
-
- .. image:: images/RATD_Section9_Task_D_EOS3.png
- :align: center
-
- iii. EOS6:
-
- .. image:: images/RATD_Section9_Task_D_EOS6.png
- :align: center
-
- e. Once this task is complete; EOS9, EOS10 and EOS14 should all form OSPF adjacencies with each other. These devices should all be able to ping each other’s Loopback0 interfaces when sourcing the ping from their Loopback0 interface
-
-10. Configure Customer-3 E-LINE Service
-=========================================================================
-
- .. image:: images/RATD_RING-Section10-Image.png
- :align: center
-
- a. Customer-3 requires that EOS16 and EOS17 appear as directly Layer2 adjacent to each other
-
- b. Configure a P2P E-LINE service enabling this functionality
-
- c. This solution should not require any VLAN tagging from the CE devices
-
- d. When this task is complete EOS16 and EOS17 should form an OSPF adjacency with each other, and be able to ping each other’s loopbacks
-
-11. Prepare for Customer-4 Layer3 VPN Services
-=========================================================================
-
- .. image:: images/RATD_RING-Section11+12-Image.png
- :align: center
-
- a. Customer-4 CE Nodes: EOS18, EOS19
-
- b. On all PE nodes that are connected to Customer-4 CE nodes:
-
- i. Define VRF “B”
-
- 1. IPv4 Unicast Forwarding
-
- 2. Route-Target for import and export should be 2:2
-
- 3. Route-Distinguisher should be X.X.X.X:2 (X = Node-ID)
-
- ii. Place the appropriate interfaces on the PE nodes into VRF “B”
-
-12. Establish PE-CE peering with Customer-4
-=========================================================================
-
- a. EOS18 and EOS19 should be in BGP AS 200
-
- i. EOS18 should originate the following network via BGP (any method of network origination is acceptable)
-
- 1. 18.18.18.18/32
-
- ii. EOS19 should originate the following network via BGP (any method of network origination is acceptable)
-
- 1. 19.19.19.19/32
-
- b. Establish eBGP IPv4 Unicast peering between Customer-4 CE and Service Provider PE devices.
-
- c. Once this task is complete, Customer-4 CE devices should be able to ping each other’s Loopback0 interface when sourcing the pings from their own Loopback0 interface
-
-13. Offer Centralized Services to L3VPN Customers
-=========================================================================
-
- .. image:: images/RATD_RING-Section13-Image.png
- :align: center
-
- a. EOS20 is providing a centralized service to L3VPN customers
-
- b. This service is accessible via 20.20.20.20/32
-
- c. The service should only be accessible from EOS12 and EOS19
-
- d. Create a centralized service offering, utilizing the VRF “SVC” on the necessary PE nodes
-
- e. When this task is complete, EOS12 and EOS19 should all be able to ping 20.20.20.20
-
- f. EOS11, EOS13, EOS15 and EOS18 must not be able to ping 20.20.20.20
-
- g. Customer-1 (VRF A) and Customer-4 (VRF B) CE devices must not see each other’s routes, and must not be able to ping each other
-
- h. ACLs must not be used to accomplish any part of this task
diff --git a/topologies/beta-routing/labguides/source/_static/arista_logo.png b/topologies/beta-routing/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/beta-routing/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/beta-routing/labguides/source/_static/arista_logo_160by26.png b/topologies/beta-routing/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/beta-routing/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/beta-routing/labguides/source/_static/arista_logo_320by52.png b/topologies/beta-routing/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/beta-routing/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/beta-routing/labguides/source/_static/cloudvision-icon.png b/topologies/beta-routing/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/beta-routing/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/beta-routing/labguides/source/_static/logo.jpg b/topologies/beta-routing/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/beta-routing/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/beta-routing/labguides/source/_static/my-styles.css b/topologies/beta-routing/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/beta-routing/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/beta-routing/labguides/source/conf.py b/topologies/beta-routing/labguides/source/conf.py
deleted file mode 100644
index 40121267a..000000000
--- a/topologies/beta-routing/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 2.7'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
To access the device, click on the device icon above:
-
-
-
- {% raw LABGUIDE %}
-
-
\ No newline at end of file
diff --git a/topologies/datacenter-latest/files/modules/modules.yaml b/topologies/datacenter-latest/files/modules/modules.yaml
deleted file mode 100644
index f6f2dacfd..000000000
--- a/topologies/datacenter-latest/files/modules/modules.yaml
+++ /dev/null
@@ -1,304 +0,0 @@
-ucn:
- mlag:
- name: "MLAG"
- image: "ucn-mlag.png"
- nodes:
- Spine1:
- coords: "130,56,234,105"
- ip: "192.168.0.10"
- Spine2:
- coords: "658,54,763,101"
- ip: "192.168.0.11"
- Leaf1:
- coords: "62,269,167,319"
- ip: "192.168.0.14"
- Leaf2:
- coords: "319,268,426,315"
- ip: "192.168.0.15"
- Leaf3:
- coords: "464,267,567,317"
- ip: "192.168.0.16"
- Leaf4:
- coords: "728,268,834,316"
- ip: "192.168.0.17"
- Host1:
- coords: "206,384,276,414"
- ip: "192.168.0.31"
- Host2:
- coords: "615,388,685,421"
- ip: "192.168.0.32"
- l3ls:
- name: "BGP"
- image: "ucn-l3ls.png"
- nodes:
- Spine1:
- coords: "106,29,218,83"
- ip: "192.168.0.10"
- Spine2:
- coords: "691,31,806,85"
- ip: "192.168.0.11"
- Leaf1:
- coords: "27,265,141,319"
- ip: "192.168.0.14"
- Leaf2:
- coords: "317,264,430,319"
- ip: "192.168.0.15"
- Leaf3:
- coords: "477,264,591,317"
- ip: "192.168.0.16"
- Leaf4:
- coords: "765,266,877,320"
- ip: "192.168.0.17"
- Host1:
- coords: "182,442,258,477"
- ip: "192.168.0.31"
- Host2:
- coords: "644,441,725,477"
- ip: "192.168.0.32"
- vxlan:
- name: "VxLAN"
- image: "ucn-vxlan.png"
- nodes:
- Spine1:
- coords: "96,29,208,83"
- ip: "192.168.0.10"
- Spine2:
- coords: "680,28,796,82"
- ip: "192.168.0.11"
- Leaf1:
- coords: "22,266,137,319"
- ip: "192.168.0.14"
- Leaf2:
- coords: "313,262,425,315"
- ip: "192.168.0.15"
- Leaf3:
- coords: "466,264,583,317"
- ip: "192.168.0.16"
- Leaf4:
- coords: "757,264,873,319"
- ip: "192.168.0.17"
- Host1:
- coords: "192,433,268,469"
- ip: "192.168.0.31"
- Host2:
- coords: "637,432,716,468"
- ip: "192.168.0.32"
- l2evpn:
- name: "Layer 2 EVPN"
- image: "ucn-l2evpn.png"
- nodes:
- Spine1:
- coords: "90,25,189,71"
- ip: "192.168.0.10"
- Spine2:
- coords: "594,25,691,71"
- ip: "192.168.0.11"
- Leaf1:
- coords: "26,227,127,274"
- ip: "192.168.0.14"
- Leaf3:
- coords: "411,226,511,273"
- ip: "192.168.0.16"
- Host1:
- coords: "173,373,241,404"
- ip: "192.168.0.31"
- Host2:
- coords: "555,370,624,400"
- ip: "192.168.0.32"
- l3evpn:
- name: "Layer 3 EVPN"
- image: "ucn-l3evpn.png"
- nodes:
- Spine1:
- coords: "92,24,187,72"
- ip: "192.168.0.10"
- Spine2:
- coords: "595,24,694,72"
- ip: "192.168.0.11"
- Leaf1:
- coords: "26,228,127,273"
- ip: "192.168.0.14"
- Leaf3:
- coords: "410,225,509,273"
- ip: "192.168.0.16"
- Host1:
- coords: "175,373,241,404"
- ip: "192.168.0.31"
- Host2:
- coords: "557,372,623,401"
- ip: "192.168.0.32"
-cvp:
- mlag:
- name: "MLAG"
- image: "cvp-mlag.png"
- nodes:
- Spine1:
- coords: "97,131,213,188"
- ip: "192.168.0.10"
- Spine2:
- coords: "687,128,803,183"
- ip: "192.168.0.11"
- Leaf1:
- coords: "19,371,136,427"
- ip: "192.168.0.14"
- Leaf2:
- coords: "310,368,427,424"
- ip: "192.168.0.15"
- Leaf3:
- coords: "470,370,586,423"
- ip: "192.168.0.16"
- Leaf4:
- coords: "767,368,883,425"
- ip: "192.168.0.17"
- Host1:
- coords: "181,499,261,535"
- ip: "192.168.0.31"
- Host2:
- coords: "640,505,721,543"
- ip: "192.168.0.32"
- CVP:
- coords: "381,17,525,106"
- ip: "192.168.0.5"
- l3ls:
- name: "BGP"
- image: "cvp-l3ls.png"
- nodes:
- Spine1:
- coords: "106,121,220,177"
- ip: "192.168.0.10"
- Spine2:
- coords: "691,122,806,179"
- ip: "192.168.0.11"
- Leaf1:
- coords: "25,358,139,413"
- ip: "192.168.0.14"
- Leaf2:
- coords: "316,358,427,412"
- ip: "192.168.0.15"
- Leaf3:
- coords: "477,354,591,410"
- ip: "192.168.0.16"
- Leaf4:
- coords: "764,358,880,412"
- ip: "192.168.0.17"
- Host1:
- coords: "181,535,263,571"
- ip: "192.168.0.31"
- Host2:
- coords: "645,533,723,570"
- ip: "192.168.0.32"
- CVP:
- coords: "382,17,520,103"
- ip: "192.168.0.5"
- vxlan:
- name: "VxLAN"
- image: "cvp-vxlan.png"
- nodes:
- Spine1:
- coords: "95,118,211,176"
- ip: "192.168.0.10"
- Spine2:
- coords: "680,121,797,175"
- ip: "192.168.0.11"
- Leaf1:
- coords: "21,354,136,411"
- ip: "192.168.0.14"
- Leaf2:
- coords: "311,354,425,410"
- ip: "192.168.0.15"
- Leaf3:
- coords: "467,354,582,408"
- ip: "192.168.0.16"
- Leaf4:
- coords: "757,357,872,412"
- ip: "192.168.0.17"
- Host1:
- coords: "192,525,268,561"
- ip: "192.168.0.31"
- Host2:
- coords: "637,524,718,559"
- ip: "192.168.0.32"
- CVP:
- coords: "377,17,519,104"
- ip: "192.168.0.5"
- l2evpn:
- name: "Layer 2 EVPN"
- image: "cvp-l2evpn.png"
- nodes:
- Spine1:
- coords: "92,102,189,150"
- ip: "192.168.0.10"
- Spine2:
- coords: "594,103,694,150"
- ip: "192.168.0.11"
- Leaf1:
- coords: "27,308,128,352"
- ip: "192.168.0.14"
- Leaf3:
- coords: "411,303,508,352"
- ip: "192.168.0.16"
- Host1:
- coords: "174,451,241,482"
- ip: "192.168.0.31"
- Host2:
- coords: "558,449,624,481"
- ip: "192.168.0.32"
- CVP:
- coords: "331,15,452,89"
- ip: "192.168.0.5"
- l3evpn:
- name: "Layer 3 EVPN"
- image: "cvp-l3evpn.png"
- nodes:
- Spine1:
- coords: "91,109,188,155"
- ip: "192.168.0.10"
- Spine2:
- coords: "590,107,688,155"
- ip: "192.168.0.11"
- Leaf1:
- coords: "27,311,124,356"
- ip: "192.168.0.14"
- Leaf3:
- coords: "407,310,505,354"
- ip: "192.168.0.16"
- Host1:
- coords: "172,454,236,485"
- ip: "192.168.0.31"
- Host2:
- coords: "553,453,619,483"
- ip: "192.168.0.32"
- CVP:
- coords: "331,15,451,90"
- ip: "192.168.0.5"
- cvp:
- name: "Cloud Vision Portal"
- image: "cvp-cvp.png"
- nodes:
- Spine1:
- coords: "229,68,316,110"
- ip: "192.168.0.10"
- Spine2:
- coords: "381,66,470,110"
- ip: "192.168.0.11"
- Leaf1:
- coords: "72,253,157,296"
- ip: "192.168.0.14"
- Leaf2:
- coords: "226,255,315,296"
- ip: "192.168.0.15"
- Leaf3:
- coords: "382,253,470,295"
- ip: "192.168.0.16"
- Leaf4:
- coords: "536,252,625,296"
- ip: "192.168.0.17"
- Host1:
- coords: "151,377,239,419"
- ip: "192.168.0.31"
- Host2:
- coords: "459,381,550,423"
- ip: "192.168.0.32"
- CVP:
- coords: "689,47,864,158"
- ip: "192.168.0.5"
diff --git a/topologies/datacenter-latest/labguides/.gitignore b/topologies/datacenter-latest/labguides/.gitignore
deleted file mode 100644
index 963080b75..000000000
--- a/topologies/datacenter-latest/labguides/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-.DS_Store
-build/
-_build/
diff --git a/topologies/datacenter-latest/labguides/Makefile b/topologies/datacenter-latest/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/datacenter-latest/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/datacenter-latest/labguides/readme.md b/topologies/datacenter-latest/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/datacenter-latest/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/datacenter-latest/labguides/source/EVPN_Class_Guide.rst b/topologies/datacenter-latest/labguides/source/EVPN_Class_Guide.rst
deleted file mode 100644
index 973d2b71f..000000000
--- a/topologies/datacenter-latest/labguides/source/EVPN_Class_Guide.rst
+++ /dev/null
@@ -1,229 +0,0 @@
-.. image:: images/arista_logo.png
- :align: center
-
-EVPN Lab Guide
-====================
-
-Topology Quick View:
--------------------------
-
-.. image:: images/EVPN_Class_Quick_Topology_Image.png
- :align: center
-
-Topology Detailed View:
------------------------------
-
-.. image:: images/EVPN_Class_Detailed_Topology_Image.png
- :align: center
-
-Lab 1: IP Underlay Control-Plane Buildout
-===============================================
-
- .. note:: To begin this lab, go to the ssh login menu, select the *labs* option or option *97*, then go to *EVPN Class Guide*,
- then execute option *1* or *lab1* to deploy the topology.
-
- #. Reachability between loopbacks is required, reachability to Point-to-Point underlay prefixes is optional
-
- #. Must use a routing protocol to accomplish this task
-
- #. The chosen protocol’s router-id must be a globally unique and pingable address on the device
-
- #. There is a desire to only run a single routing protocol within the Data Center
-
- #. If using an address-family aware protocol, all peerings within an AFI/SAFI must be explicitly permitted
-
- #. To prevent temporary black-holes, no switch should advertise reachability to a prefix until it is programmed into hardware
-
- .. note:: Important: This feature will not work in a virtual environment, as there is no hardware to program the prefixes into. This step can be skipped,
- but the command to accomplish this task is *update wait-install* under the bgp process.
-
- #. Though not required today, the ability to perform per-prefix traffic engineering in the underlay, based on a administrator-defined value, is desired
-
- #. Spine and Leaf switches must use ECMP within the underlay
-
- #. Regardless of routing protocol chosen, if using a dynamic peerings, all discovered neighbors must be authenticated, and be explicitly trusted sources
-
- #. Addition or Removal of Leaf switches in the future should not require any routing configuration changes on the Spines
-
-Lab 2: EVPN Control-Plane Provisioning
-==============================================
-
- .. note:: If you are starting out in this lab, go to the ssh login menu, select the *labs* option or option *97*, then go to *EVPN Class Guide*,
- then execute option *2* or *lab2* to deploy the topology.
-
- #. Enable peering in the EVPN address-family between Spine and Leaf switches
-
- #. A globally unique loopback must be used as the source of these peerings
-
- #. Fast detection of peer failure must be enabled to provide fast convergence
-
- #. Devices must be capable of establishing peerings in the EVPN address-family with devices up to three routing hops away
-
- #. Spines must not modify any fields within the payload of a transient BGP EVPN Update
-
- #. All peerings within the EVPN address-family must be explicitly permitted
-
- #. Control-plane signaling via communities must be supported
-
- #. If using a dynamic peerings, all discovered neighbors must be authenticated and explicitly trusted sources
-
- #. Addition or Removal of Leaf switches in the future should not require any routing configuration changes on the Spines
-
- #. There is a large amount of anticipated EVPN control-plane state. Ensure that peerings are not flapped or disabled due to control-plane scale
-
-Lab 3: MLAG
-========================
-
- .. note:: If you are starting out in this lab, go to the ssh login menu, select the *labs* option or option *97*, then go to *EVPN Class Guide*,
- then execute option *3* or *lab3* to deploy the topology.
-
- #. Devices will be dual-homed to VTEPs, with the expectation that an LACP port-channel will be formed, and forwarding will be active/active
-
- #. Each pair of VTEPs will be deployed with a physical interconnect between each other
-
- #. The deployed multi-homing solution must be easily repeatable across multiple VTEP pairs
-
- #. VTEPs deployed as a pair must present themselves as a single logical VTEP within the EVPN control-plane
-
- #. If both spine-facing links on a VTEP fail, that VTEP must be able to maintain it’s EVPN peerings and forwarding capabilities
-
- #. If a VTEP within a pair is rebooted, ensure that the rebooted VTEP does not transition any host-facing links into a forwarding state until the control-plane has been fully converged
-
- #. Regardless of which VTEP in the pair receives a VXLAN packet, if a routing operation is required after decap, that receiving VTEP should locally perform that routing operation.
-
- #. Once MLAG has been deployed, establish an LACP port-channel to HostA and HostC
-
- .. note:: The host-side configuration is already completed. If MLAG is configured correctly, the port-channel will come up
-
-Lab 4: Layer2 VPN Service Provisioning
-==============================================
-
- .. note:: If you are starting out in this lab, go to the ssh login menu, select the *labs* option or option *97*, then go to *EVPN Class Guide*,
- then execute option *4* or *lab4* to deploy the topology.
-
- #. All L2VPN services will be provided via VXLAN data-plane encapsulation
-
- #. Enable VTEP functionality on all Leaf switches
-
- #. Create VLANs necessary to provide bridging operations for locally attached hosts
-
- #. VXLAN:VNI mappings should be pre-provisioned to help ease future provisioning activities
-
- #. All VNIs will be 10,000 + VLAN ID
-
- #. VLANs 10 through 30 will be pre-provisioned on day 1
-
- #. Configure Route-Distinguishers in a way that enables fast convergence and provides a quick method to validate the source of an EVPN route
-
- #. L2VPN services must be provisioned in a way that enables the mapping of multiple bridge domains to a single MAC-VRF, reducing config size and the administrative overhead of future L2VPN service provisioning
-
- #. VLANs 10 through 30 should be mapped to a single MAC-VRF
-
- #. When provisioning a tenant’s MAC-VRF, import and export Route-Targets should be configured using the format “Tenant ID:Tenant ID”
-
- #. VRF A Tenant ID is “1”
-
- #. Reachability information for all locally learned MAC addresses must be automatically originated into the EVPN control-plane
-
- #. Upon completion of this lab, HostA should be able to ping HostD
-
-Lab 5: Layer3 VPN Service Provisioning
-=============================================
-
- .. note:: If you are starting out in this lab, go to the ssh login menu, select the *labs* option or option *97*, then go to *EVPN Class Guide*,
- then execute option *5* or *lab5* to deploy the topology.
-
- #. All L3VPN services will be provided via VXLAN data-plane encapsulation
-
- #. Each tenant will receive their own unique VRF
-
- #. Create a VRF for Tenant “A”
-
- #. Configure Route-Distinguishers in a way that enables fast convergence and provides a quick method to validate the source of an EVPN route
-
- #. When provisioning a tenant’s IP-VRF, import and export Route-Targets should be configured using the format “Tenant ID:Tenant ID”
-
- #. VRF A Tenant ID is “1”
-
- #. VTEPs must not require that every VLAN and SVI be locally configured for reachability between endpoints within the tenant VRF
-
- #. When traffic is crossing a subnet boundary, and the destination host is behind a remote VTEP, the ingress VTEP must never bridge towards the destination host
-
- #. First Hop Gateway IP and MAC address must exist on all VTEPs where an L3VPN services are provisioned
-
- #. Only define the SVIs that are required for locally connected hosts
-
- #. For each subnet, a consistent Gateway IP and MAC address must be used across all VTEPs where the subnet exists
-
- #. It is anticipated that the environment scale will grow over time to ~45,000 hosts. Ensure that Remote ARP forwarding entries do not limit the scale of the environment
-
- #. VTEPs must originate reachability to locally attached prefixes within a tenant VRF
-
- #. There should never be any tenant prefixes within the IPv4 Underlay Control-Plane
-
-
-Lab 6: Day-2 Ops
-======================
-
- .. note:: If you are starting out in this lab, go to the ssh login menu, select the *labs* option or option *97*, then go to *EVPN Class Guide*,
- then execute option *6* or *lab6* to deploy the topology.
-
- #. A new VLAN / L2VPN service has been requested
-
- #. VLAN 25 will be used for this task
-
- #. A new endpoint in this VLAN will be connected to interface Ethernet6 on LEAF1
-
- #. Create a new L2VPN service for VLAN 25 on all leafs, and stage the interface configuration
-
- #. Validate that the expected EVPN control-plane state
-
- #. **No changes can be made to the BGP or VXLAN interface configurations**
-
- #. Create a new L3VPN service for a new tenant (Tenant B). This tenant requires L2VPN service for vlans 31-40. L3VPN services are only required for vlans 35 and 40
-
- #. The requested L2VPN and L3VPN services must be available on all Leaf switches
-
- #. For MAC-VRF and IP-VRF, follow the same Route Distinguisher and Route-Target guidelines as Tenant ‘A’
-
- #. VRF B Tenant ID is 2
-
- #. VLAN 35 subnet: 35.35.35.0/24
-
- #. VLAN 40 subnet: 40.40.40.0/24
-
- #. Once complete, validate that the EVPN control-plane contains the expected state
-
-
- #. (Optional) The operations team would like the ability to ping any Tenant ‘A’ workload directly from any Leaf switch in the environment. This will require the response to source from an IP other than the anycast gateway.
-
- #. Use Loopback201 as the source IP with an IP address of 201.0.0.X/32 (X=Switch ID)
-
- #. (Optional) The MLAG IP addresses need to be updated on all of the switches during a change window. Reconfigure MLAG IP addresses with the new IP scheme below:
-
- #. Leaf1 and Leaf 3 IP - 192.168.255.254/31
-
- #. Leaf2 and Leaf 4 IP - 192.168.255.255/31
-
- #. Verify that MLAG status is up and the MLAG interfaces are forwarding correctly
-
-
-
-
-Lab 7: Troubleshooting
-===========================
-
- .. note:: You *must* use the ssh login menu to deploy each of these scenarios. Select the *labs* option or option *97*, then go to *EVPN Class Guide*,
- then execute the appropriate option for each scenario.
-
- #. Scenario A
-
- #. HostA cannot communicate with HostD
-
- #. Scenario B
-
- #. HostB cannot communicate with HostC
-
- #. Scenario C
-
- #. HostA cannot communicate with HostD
\ No newline at end of file
diff --git a/topologies/datacenter-latest/labguides/source/EVPN_Class_Guide_Answer_Key.rst b/topologies/datacenter-latest/labguides/source/EVPN_Class_Guide_Answer_Key.rst
deleted file mode 100644
index d814fd9a5..000000000
--- a/topologies/datacenter-latest/labguides/source/EVPN_Class_Guide_Answer_Key.rst
+++ /dev/null
@@ -1,981 +0,0 @@
-.. image:: images/arista_logo.png
- :align: center
-
-EVPN Lab Answer Key
-=======================
-
-Pre-Lab configuration on all Switches
----------------------------------------
-
- .. code-block:: html
-
- service routing-protocols model multi-agent
-
-Lab 1: IP Underlay Control-Plane Buildout
-----------------------------------------------
-
-**SPINE1:**
-
- .. code-block:: html
-
- route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
- !
- route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
- !
- peer-filter LEAF-AS-RANGE
- 10 match as-range 65001-65199 result accept
- !
- ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
- ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
- !
- router bgp 65000
- router-id 1.1.1.201
- no bgp default ipv4-unicast
- maximum-paths 2
- bgp listen range 10.0.0.0/8 peer-group IPv4-UNDERLAY-PEERS peer-filter LEAF-AS-RANGE
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
-
-**SPINE2:**
-
- .. code-block:: html
-
- route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
- !
- route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
- !
- peer-filter LEAF-AS-RANGE
- 10 match as-range 65001-65199 result accept
- !
- ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
- ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
- !
- router bgp 65000
- router-id 1.1.1.202
- no bgp default ipv4-unicast
- maximum-paths 2
- bgp listen range 10.0.0.0/8 peer-group IPv4-UNDERLAY-PEERS peer-filter LEAF-AS-RANGE
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
-
-**LEAF1:**
-
- .. code-block:: html
-
- route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
- !
- route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
- !
- ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
- ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
- ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
- !
- router bgp 65012
- router-id 1.1.1.101
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor 10.101.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.101.202.202 peer group IPv4-UNDERLAY-PEERS
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
-
-**LEAF2:**
-
- .. code-block:: html
-
- route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
- !
- route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
- !
- ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
- ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
- ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
- !
- router bgp 65012
- router-id 1.1.1.102
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor 10.102.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.102.202.202 peer group IPv4-UNDERLAY-PEERS
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
-
-**LEAF3:**
-
- .. code-block:: html
-
- route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
- !
- route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
- !
- ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
- ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
- ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
- !
- router bgp 65034
- router-id 1.1.1.103
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor 10.103.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.103.202.202 peer group IPv4-UNDERLAY-PEERS
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
-
-**LEAF4:**
-
- .. code-block:: html
-
- route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
- !
- route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
- !
- ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
- ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
- ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
- !
- router bgp 65034
- router-id 1.1.1.104
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor 10.104.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.104.202.202 peer group IPv4-UNDERLAY-PEERS
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
-
-Lab 2: EVPN Control-Plane Provisioning
--------------------------------------------------
-
-**SPINE1 and SPINE2:**
-
- .. code-block:: html
-
- router bgp 65000
- bgp listen range 1.1.1.0/24 peer-group EVPN-OVERLAY-PEERS peer-filter LEAF-AS-RANGE
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS next-hop-unchanged
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password @rista123
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
-
-**LEAF1 and LEAF2:**
-
- .. code-block:: html
-
- router bgp 65012
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS remote-as 65000
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password @rista123
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- neighbor 1.1.1.201 peer group EVPN-OVERLAY-PEERS
- neighbor 1.1.1.202 peer group EVPN-OVERLAY-PEERS
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
-
-**LEAF3 and LEAF4:**
-
- .. code-block:: html
-
- router bgp 65034
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS remote-as 65000
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password @rista123
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- neighbor 1.1.1.201 peer group EVPN-OVERLAY-PEERS
- neighbor 1.1.1.202 peer group EVPN-OVERLAY-PEERS
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
-
-Lab 3: MLAG
-------------------
-
-**LEAF1:**
-
- .. code-block:: html
-
- interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.12/32
- !
- Vlan 4093
- name MLAG_iBGP
- vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
- !
- interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.1/24
- !
- interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.1/30
- !
- no spanning-tree vlan-id 4094
- !
- interface Ethernet1
- description MLAG Link to LEAF2
- channel-group 1000 mode active
- !
- interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
- !
- mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.2
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
- !
- interface Ethernet4
- description HostA
- channel-group 10 mode active
- !
- interface Port-Channel10
- mlag 10
- spanning-tree portfast
- !
- interface vxlan1
- Vxlan virtual-router encapsulation mac-address mlag-system-id
- !
- router bgp 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password @rista123
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 192.0.0.2 peer group MLAG-IPv4-UNDERLAY-PEER
- !
- address-family ipv4
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
-
-**LEAF2:**
-
- .. code-block:: html
-
- interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.12/32
- !
- Vlan 4093
- name MLAG_iBGP
- vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
- !
- interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.2/24
- !
- interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.2/30
- !
- no spanning-tree vlan-id 4094
- !
- interface Ethernet1
- description MLAG Link to LEAF2
- channel-group 1000 mode active
- !
- interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
- !
- mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.1
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
- !
- interface Ethernet4
- description HostA
- channel-group 10 mode active
- !
- interface Port-Channel10
- mlag 10
- spanning-tree portfast
- !
- interface vxlan1
- Vxlan virtual-router encapsulation mac-address mlag-system-id
- !
- router bgp 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password @rista123
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 192.0.0.1 peer group MLAG-IPv4-UNDERLAY-PEER
- !
- address-family ipv4
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
-
-**LEAF3:**
-
- .. code-block:: html
-
- interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.34/32
- !
- Vlan 4093
- name MLAG_iBGP
- vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
- !
- interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.1/24
- !
- interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.1/30
- !
- no spanning-tree vlan-id 4094
- !
- interface Ethernet1
- description MLAG Link to LEAF2
- channel-group 1000 mode active
- !
- interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
- !
- mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.2
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
- !
- interface Ethernet4
- description HostC
- channel-group 20 mode active
- !
- interface Port-Channel20
- mlag 20
- spanning-tree portfast
- !
- interface vxlan1
- Vxlan virtual-router encapsulation mac-address mlag-system-id
- !
- router bgp 65034
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65034
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password @rista123
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 192.0.0.2 peer group MLAG-IPv4-UNDERLAY-PEER
- !
- address-family ipv4
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
-
-**LEAF4:**
-
- .. code-block:: html
-
- interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.34/32
- !
- Vlan 4093
- name MLAG_iBGP
- vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
- !
- interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.2/24
- !
- interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.2/30
- !
- no spanning-tree vlan-id 4094
- !
- interface Ethernet1
- description MLAG Link to LEAF2
- channel-group 1000 mode active
- !
- interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
- !
- mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.1
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
- !
- interface Ethernet4
- description HostC
- channel-group 20 mode active
- !
- interface Port-Channel20
- mlag 20
- spanning-tree portfast
- !
- interface vxlan1
- Vxlan virtual-router encapsulation mac-address mlag-system-id
- !
- router bgp 65034
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65034
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password @rista123
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 192.0.0.1 peer group MLAG-IPv4-UNDERLAY-PEER
- !
- address-family ipv4
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
-
-Lab 4: Layer2 VPN Service Provisioning
-------------------------------------------
-
-**LEAF1:**
-
- .. code-block:: html
-
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
- !
- vlan 10
- name Ten
- vlan 20
- name Twenty
- !
- router bgp 65012
- vlan-aware-bundle TENANT-A
- rd 1.1.1.101:1
- route-target both 1:1
- redistribute learned
- vlan 10-30
- !
- interface Port-Channel10
- switchport access vlan 10
- mlag 10
- spanning-tree portfast
- !
- interface Ethernet5
- switchport access vlan 20
-
-**LEAF2:**
-
- .. code-block:: html
-
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
- !
- vlan 10
- name Ten
- vlan 20
- name Twenty
- !
- router bgp 65012
- vlan-aware-bundle TENANT-A
- rd 1.1.1.102:1
- route-target both 1:1
- redistribute learned
- vlan 10-30
- !
- interface Port-Channel10
- switchport access vlan 10
- mlag 10
- spanning-tree portfast
- !
- interface Ethernet5
- switchport access vlan 20
-
-**LEAF3:**
-
- .. code-block:: html
-
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
- !
- vlan 10
- name Ten
- vlan 30
- name Thirty
- !
- router bgp 65034
- vlan-aware-bundle TENANT-A
- rd 1.1.1.103:1
- route-target both 1:1
- redistribute learned
- vlan 10-30
- !
- interface Port-Channel20
- switchport access vlan 30
- mlag 20
- spanning-tree portfast
- !
- interface Ethernet5
- switchport access vlan 10
-
-**LEAF4:**
-
- .. code-block:: html
-
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
- !
- vlan 10
- name Ten
- vlan 30
- name Thirty
- !
- router bgp 65034
- vlan-aware-bundle TENANT-A
- rd 1.1.1.104:1
- route-target both 1:1
- redistribute learned
- vlan 10-30
- !
- interface Port-Channel20
- switchport access vlan 30
- mlag 20
- spanning-tree portfast
- !
- interface Ethernet5
- switchport access vlan 10
-
-Lab 5: Layer3 VPN Service Provisioning
------------------------------------------
-
-**LEAF1:**
-
- .. code-block:: html
-
- ip virtual-router mac-address aaaa.bbbb.cccc
- !
- vrf instance A
- !
- ip routing vrf A
- !
- interface vlan10
- vrf A
- ip address virtual 10.10.10.1/24
- !
- interface vlan20
- vrf A
- ip address virtual 20.20.20.1/24
- !
- interface Vxlan1
- vxlan vrf A vni 50001
- !
- router bgp 65012
- vrf A
- rd 1.1.1.101:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
- !
- router l2-vpn
- arp selective-install
-
-**LEAF2:**
-
- .. code-block:: html
-
- ip virtual-router mac-address aaaa.bbbb.cccc
- !
- vrf instance A
- !
- ip routing vrf A
- !
- interface vlan10
- vrf A
- ip address virtual 10.10.10.1/24
- !
- interface vlan20
- vrf A
- ip address virtual 20.20.20.1/24
- !
- interface Vxlan1
- vxlan vrf A vni 50001
- !
- router bgp 65012
- vrf A
- rd 1.1.1.102:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
- !
- router l2-vpn
- arp selective-install
-
-**LEAF3:**
-
- .. code-block:: html
-
- ip virtual-router mac-address aaaa.bbbb.cccc
- !
- vrf instance A
- !
- ip routing vrf A
- !
- interface vlan10
- vrf A
- ip address virtual 10.10.10.1/24
- !
- interface vlan30
- vrf A
- ip address virtual 30.30.30.1/24
- !
- interface Vxlan1
- vxlan vrf A vni 50001
- !
- router bgp 65034
- vrf A
- rd 1.1.1.103:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
- !
- router l2-vpn
- arp selective-install
-
-**LEAF4:**
-
- .. code-block:: html
-
- ip virtual-router mac-address aaaa.bbbb.cccc
- !
- vrf instance A
- !
- ip routing vrf A
- !
- interface vlan10
- vrf A
- ip address virtual 10.10.10.1/24
- !
- interface vlan30
- vrf A
- ip address virtual 30.30.30.1/24
- !
- interface Vxlan1
- vxlan vrf A vni 50001
- !
- router bgp 65034
- vrf A
- rd 1.1.1.104:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
- !
- router l2-vpn
- arp selective-install
-
-Lab 6: Day-2 Ops
-------------------
-
-**Section A:**
-
-LEAF1-4:
-
- .. code-block:: html
-
- vlan 25
- name Twenty-Five
-
-LEAF1:
-
- .. code-block:: html
-
- interface Ethernet6
- switchport access vlan 25
-
-**Section B:**
-
-LEAF1:
-
- .. code-block:: html
-
- vlan 35
- name Thirty-Five
- vlan 40
- name Forty
- !
- vrf instance B
- !
- ip routing vrf B
- !
- interface Vxlan1
- vxlan vlan add 31-40 vni 10031-10040
- vxlan vrf B vni 50002
- !
- interface vlan35
- vrf B
- ip address virtual 35.35.35.1/24
- !
- interface vlan40
- vrf B
- ip address virtual 40.40.40.1/24
- !
- router bgp 65012
- vlan-aware-bundle TENANT-B
- rd 1.1.1.101:2
- route-target both 2:2
- redistribute learned
- vlan 31-40
- !
- vrf B
- rd 1.1.1.101:2
- route-target import evpn 2:2
- route-target export evpn 2:2
- redistribute connected
-
-
-LEAF2:
-
- .. code-block:: html
-
- vlan 35
- name Thirty-Five
- vlan 40
- name Forty
- !
- vrf instance B
- !
- ip routing vrf B
- !
- interface Vxlan1
- vxlan vlan add 31-40 vni 10031-10040
- vxlan vrf B vni 50002
- !
- interface vlan35
- vrf B
- ip address virtual 35.35.35.1/24
- !
- interface vlan40
- vrf B
- ip address virtual 40.40.40.1/24
- !
- router bgp 65012
- vlan-aware-bundle TENANT-B
- rd 1.1.1.102:2
- route-target both 2:2
- redistribute learned
- vlan 31-40
- !
- vrf B
- rd 1.1.1.102:2
- route-target import evpn 2:2
- route-target export evpn 2:2
- redistribute connected
-
-LEAF3:
-
- .. code-block:: html
-
- vlan 35
- name Thirty-Five
- vlan 40
- name Forty
- !
- vrf instance B
- !
- ip routing vrf B
- !
- interface Vxlan1
- vxlan vlan add 31-40 vni 10031-10040
- vxlan vrf B vni 50002
- !
- interface vlan35
- vrf B
- ip address virtual 35.35.35.1/24
- !
- interface vlan40
- vrf B
- ip address virtual 40.40.40.1/24
- !
- router bgp 65034
- vlan-aware-bundle TENANT-B
- rd 1.1.1.103:2
- route-target both 2:2
- redistribute learned
- vlan 31-40
- !
- vrf B
- rd 1.1.1.103:2
- route-target import evpn 2:2
- route-target export evpn 2:2
- redistribute connected
-
-LEAF4:
-
- .. code-block:: html
-
- vlan 35
- name Thirty-Five
- vlan 40
- name Forty
- !
- vrf instance B
- !
- ip routing vrf B
- !
- interface Vxlan1
- vxlan vlan add 31-40 vni 10031-10040
- vxlan vrf B vni 50002
- !
- interface vlan35
- vrf B
- ip address virtual 35.35.35.1/24
- !
- interface vlan40
- vrf B
- ip address virtual 40.40.40.1/24
- !
- router bgp 65034
- vlan-aware-bundle TENANT-B
- rd 1.1.1.104:2
- route-target both 2:2
- redistribute learned
- vlan 31-40
- !
- vrf B
- rd 1.1.1.104:2
- route-target import evpn 2:2
- route-target export evpn 2:2
- redistribute connected
-
-
-
-**Section C:**
-
-LEAF1:
-
- .. code-block:: html
-
- interface Loopback201
- vrf A
- ip address 201.0.0.101/32
- !
- ip address virtual source-nat vrf A address 201.0.0.101
-
-LEAF2:
-
- .. code-block:: html
-
- interface Loopback201
- vrf A
- ip address 201.0.0.102/32
- !
- ip address virtual source-nat vrf A address 201.0.0.102
-
-LEAF3:
-
- .. code-block:: html
-
- interface Loopback201
- vrf A
- ip address 201.0.0.103/32
- !
- ip address virtual source-nat vrf A address 201.0.0.103
-
-LEAF4:
-
- .. code-block:: html
-
- interface Loopback201
- vrf A
- ip address 201.0.0.104/32
- !
- ip address virtual source-nat vrf A address 201.0.0.104
\ No newline at end of file
diff --git a/topologies/datacenter-latest/labguides/source/_static/arista_logo.png b/topologies/datacenter-latest/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/datacenter-latest/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/_static/arista_logo_160by26.png b/topologies/datacenter-latest/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/datacenter-latest/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/_static/arista_logo_320by52.png b/topologies/datacenter-latest/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/datacenter-latest/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/_static/cloudvision-icon.png b/topologies/datacenter-latest/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/_static/logo.jpg b/topologies/datacenter-latest/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/_static/my-styles.css b/topologies/datacenter-latest/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/datacenter-latest/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/datacenter-latest/labguides/source/ansible_adhoc_and_simple_playbooks.rst b/topologies/datacenter-latest/labguides/source/ansible_adhoc_and_simple_playbooks.rst
deleted file mode 100644
index a0fd52ab6..000000000
--- a/topologies/datacenter-latest/labguides/source/ansible_adhoc_and_simple_playbooks.rst
+++ /dev/null
@@ -1,205 +0,0 @@
-Ad Hoc and Simple Playbooks
-===========================
-
-For the final lab, we will be playing with Ansible - both ad-hoc
-(one-off) and playbooks.
-
-.. note:: While Ansible is one of the easiest automation platforms out
- there, it is impossible to fully teach how it works in a lab or two
- in the course of a day. If you are interested in experimenting in
- this lab more, please let your SE know and they can provide you
- additional access after the event is completed.
-
- For some good reading, we recommend browsing the \ `Ansible
- website `__\.
-
-Ad-Hoc Commands
----------------
-
-The first part of the lab will show you how to issue ad-hoc commands to
-your lab switch. An ad-hoc command is essentially a one-off command;
-something you might issue once, but not ever need to repeat again.
-
-While this is handy, the real power of Ansible comes from using
-orchestrated playbooks.
-
-Before you run your first Ansible ad-hoc command, we’ll need to create a
-hosts file. Open the Atom editor, and create a new file and save it to
-your desktop with the filename ``hosts``.
-
-.. code-block:: ini
-
- [veos]
- 192.168.0.14
-
-This is an Ansible hosts file - you might recognize it as INI formatted!
-The top bracketed entry is a group, and the entry below it is a host.
-Save the file to your desktop.
-
-Now, let’s run an ad-hoc command. Open up your handy terminal window,
-and enter:
-
-.. code-block:: bash
-
- ansible veos -i ~/Desktop/hosts -m raw -a "show version" -u arista -k
-
-
-Enter the password **{REPLACE_ARISTA}** when prompted.
-
-This probably looks complicated at first, but let’s step through it:
-
-.. cssclass:: table-hover
-
-+-----------------------------------+-----------------------------------+
-| **Command** | **Description** |
-+-----------------------------------+-----------------------------------+
-| ``ansible`` | The command, duh! |
-+-----------------------------------+-----------------------------------+
-| ``veos`` | The group of hosts to run |
-| | against. Notice the [veos] from |
-| | your hosts file. If there were |
-| | more than one entry here, it |
-| | would run against more than one |
-| | host (unless you specify in |
-| | playbook to do otherwise). |
-+-----------------------------------+-----------------------------------+
-| ``-i hosts`` | Reads from the hosts file you |
-| | created. There are locations that |
-| | Ansible will look for this file |
-| | by default, but for this lab |
-| | we’re specifying one. |
-+-----------------------------------+-----------------------------------+
-| ``-m raw`` | Uses the Ansible raw SSH module |
-| | to connect to the switch |
-+-----------------------------------+-----------------------------------+
-| ``-a "show version"`` | The ad hoc command to run, in |
-| | this case ``show version``. |
-+-----------------------------------+-----------------------------------+
-| ``-u arista`` | Username ``arista`` - this can |
-| | be SSHkey based or saved |
-| | in another location |
-+-----------------------------------+-----------------------------------+
-| ``-k`` | Prompt for password - this can be |
-| | SSH key based or saved in another |
-| | location |
-+-----------------------------------+-----------------------------------+
-
-Looks a lot harder than it is, but either way when your hosts file has
-100 devices in it adding a VLAN becomes a lot easier!
-
-Playbook
---------
-
-For simplicity's sake, for this lab we have uploaded the required files
-for this lab to your lab machine. You will find them on the desktop in
-the ``lab4`` folder under ``labfiles``.
-
-Double click on the ``lab4-advanced-playbook.yml`` and let’s dive into what
-it’s doing:
-
-.. cssclass:: table-hover
-
-+-----------------------------------+-----------------------------------+
-| **Command** | **Description** |
-+-----------------------------------+-----------------------------------+
-| ``---`` | The standard beginning of an |
-| | Ansible playbook |
-+-----------------------------------+-----------------------------------+
-| ``- name: Add a VLAN`` | Names the task. This will be |
-| | displayed at runtime. |
-+-----------------------------------+-----------------------------------+
-| ``hosts: 192.168.0.14`` | Defines the host(s) to run |
-| | against. This is currently set to |
-| | one host, but could be a group! |
-+-----------------------------------+-----------------------------------+
-| ``gather_facts: no`` | Don’t gather information about |
-| | the device, just run the command. |
-| | We do this for speed, but you may |
-| | need to use it for some things |
-+-----------------------------------+-----------------------------------+
-| ``connection: local`` | Sets the task to run from the |
-| | local machine |
-+-----------------------------------+-----------------------------------+
-| ``vars:`` | Defines a variable section |
-+-----------------------------------+-----------------------------------+
-| ``provider:`` | Defines a provider section |
-+-----------------------------------+-----------------------------------+
-| ``host: "{{ ansible_host }}"``| Sets the host to run against as |
-| | an Ansible canned variable |
-| | of ``ansible_host``. This will key|
-| | off ``hosts`` above. Note that |
-| | Ansible variables use {{ curly |
-| | brackets }} |
-+-----------------------------------+-----------------------------------+
-| ``username: "arista"`` | Sets the username to ``arista`` |
-+-----------------------------------+-----------------------------------+
-| ``password: "{REPLACE_ARISTA}"`` | Sets the password to ``{REPLACE_ARISTA}`` |
-+-----------------------------------+-----------------------------------+
-| ``authorize: yes`` | Enables once connected |
-+-----------------------------------+-----------------------------------+
-| ``transport: eapi`` | Uses eAPI instead of the SSH. You |
-| | can do either |
-+-----------------------------------+-----------------------------------+
-| ``validate_certs: no`` | Don’t validate SSL certificates |
-+-----------------------------------+-----------------------------------+
-| ``tasks:`` | Begins the ``tasks`` section |
-+-----------------------------------+-----------------------------------+
-| ``- eos_config:`` | Tells Ansible to use |
-| | the \ `eos_config module |
-| | `__\ |
-+-----------------------------------+-----------------------------------+
-| ``lines:`` | Per the ``eos_config`` module, |
-| | define the configuration lines to |
-| | be issued to the switch. There can|
-| | be more than one! |
-+-----------------------------------+-----------------------------------+
-| ``- name foo`` | The actual line to issue. Note |
-| | that it starts with a -. The next |
-| | line would start with another - |
-+-----------------------------------+-----------------------------------+
-| ``parents: vlan 500`` | The parent of the lines above. |
-| | This is important for things like |
-| | interfaces or VLANs. There is |
-| | always a parent above them |
-+-----------------------------------+-----------------------------------+
-| ``provider: "{{ provider | Specifies the provider |
-| }}"`` | (connection information). This is |
-| | also a variable, and it keys in |
-| | on the provider section above |
-+-----------------------------------+-----------------------------------+
-
-For all if of its lines, all this Ansible file is really doing is
-creating a vlan named ``foo`` with an ID of ``500``. Note that while this is just
-adding it to a single device, you could use this to add it to every
-switch in your fleet!
-
-Let’s go ahead and run it. Open up a Terminal window and type the
-following and hit **Enter**:
-
-.. code-block:: html
-
- ansible-playbook -i ~/Desktop/labfiles/lab4/lab4-advanced-hosts ~/Desktop/labfiles/lab4/lab4-advanced-playbook.yml
-
-It’ll look like this when it’s run:
-
-.. image:: images/ansible_adhoc_and_simple_playbooks_1.png
- :align: center
-
-Note that it says ok=1 **changed=1**. This is telling you that it ran
-successfully and made a change. Now, you can either take our word for
-it, or log into the switch and verify the VLAN is there!
-
-Run it one more time. Notice how it just says ok=1 - this is because the
-configuration is already there and nothing needs to be changed.
-Idempotency at its finest - neat right?
-
-Bonus
------
-
-Create a new playbook (or alter the one you have) that creates a new
-VLAN and then adds it to ``interface Ethernet2`` as ``switchport access vlan``.
-
-.. note:: Check out the Ansible eos_config module \ `documentation `__\ .
diff --git a/topologies/datacenter-latest/labguides/source/ansible_and_jinja_templates.rst b/topologies/datacenter-latest/labguides/source/ansible_and_jinja_templates.rst
deleted file mode 100644
index e5dbe5776..000000000
--- a/topologies/datacenter-latest/labguides/source/ansible_and_jinja_templates.rst
+++ /dev/null
@@ -1,254 +0,0 @@
-Ansible and Jinja Templates
-===========================
-
-As you might imagine, writing Ansible playbooks that issue command after
-command to configure all 48+ interfaces on a switch can be extremely
-tedious. Enter our
-friend \ `Jinja `__\ .
-Jinja is a Python-based templating engine that works with Ansible out of
-the box.
-
-Jinja templates take variables from Ansible and then output text. To
-make an analogy, it’s a mail merge for configuration.
-
-.. note:: Jinja isn’t just used for templates in Ansible. Ansible uses Jinja for filters, tests, and other functions as well!
-
-A single command
-----------------
-
-Jinja and Ansible use cases range from single line configuration to
-intricate for loops. Let’s start with a single line template for now.
-Note that even though Ansible can handle single commands as shown above
-natively, there will be times when you will develop a single template
-that is comprised of both single commands and for loops.
-
-.. warning:: Please do not start writing this script until you get to the
- next section
-
-We’re going to create a Jinja template to configure an NTP server with
-the following in it:
-
-.. code-block:: html
-
- ntp server {{ ntp.host }}
-
-Once run, Jinja will grab the defined Ansible variable ``host`` under
-the ``ntp`` section:
-
-.. code-block:: yaml
-
- ntp:
- host: 192.168.0.1
-
-Once it finds the variable, it will generate the following:
-
-.. code-block:: html
-
- ntp server 192.168.0.1
-
-We’ll be calling this with the same Ansible module as above
-(``eos_config``), but this time we’ll be using the ``src`` parameter to pass a
-Jinja template instead of ``lines`` and ``parents`` like we did in lab #4.
-
-Write it
-~~~~~~~~
-
-We’re going to create 3 files for this lab in **Atom**. Once you have created
-them, save them to your **desktop**.
-
-#. A hosts file named ``labhosts``, though you can reuse the one you created
- earlier
-#. A Jinja2 template named ``ntp.j2``
-#. An Ansible playbook named ``ntp.yml``
-
-Hosts file (``labhosts``):
-
-.. code-block:: html
-
- [veos]
- 192.168.0.14
-
-Jinja2 template (``ntp.j2``):
-
-.. code-block:: html
-
- ntp server {{ ntp.host }} source Management1
-
-Ansible playbook (``ntp.yml``):
-
-.. code-block:: yaml
-
- ---
- - name: Add a NTP server
- hosts: veos
- gather_facts: no
- connection: local
- vars:
- provider:
- host: "{{ ansible_host }}"
- username: "arista"
- password: "{REPLACE_ARISTA}"
- authorize: yes
- transport: eapi
- validate_certs: no
- ntp:
- host: 192.168.0.1
- tasks:
- - eos_config:
- src: ntp.j2
- provider: "{{ provider }}"
-
-
-See how we’ve moved from having` `lines`` and ``parents`` in lab #4 to ``src`` to
-indicate we’re going to use a Jinja template? Fancy!
-
-Run it
-~~~~~~
-
-Assuming that you’ve saved the files to the desktop, let’s run it with
-the following command:
-
-.. code-block:: html
-
- ansible-playbook -i ~/Desktop/labhosts ~/Desktop/ntp.yml
-
-If all goes to plan, you will see ok=1 **changed=1**. If you were to run it
-again, it will show ok=1 **changed=0**. Idempotency strikes again! Feel free
-to check **Leaf1** to make sure the changes are there.
-
-.. image:: images/ansible_and_jinja_templates_1.png
- :align: center
-
-For Loops
----------
-
-Now it’s time for something a little bit more useful - Jinja
-template ``for`` loops. A ``for`` loop allows you to iterate through a template
-and generate configuration until it reaches the end. In this lab, we’re
-going to create a loop that sets the interface description on every
-port.
-
-This is a relatively benign example so that we can keep your lab
-switches operational for other labs, but this could easily be the entire
-switch - or switch port - configuration.
-
-Let’s look at the Jinja template formatting:
-
-.. code-block:: jinja
-
- {% for intf in interfaces %}
- interface {{ intf.name }}
- description {{ intf.description }}
- {% endfor %}
-
-This template is similar to any other language for loop - for arbitrary
-value ``intf`` in a list of variables named ``interfaces``, configure
-the ``name`` variable for that interface, with a description of
-the ``description`` variable. Jinja templates must have the same
-indentation as a live switch configuration. EOS devices utilize
-3 spaces for indentations.
-
-Clear as mud? Maybe this variables file will help tie it together:
-
-.. code-block:: yaml
-
- interfaces:
- - name: Ethernet1
- description: leaf2.arista.test
- - name: Ethernet2
- description: spine1.arista.test
- - name: Ethernet3
- description:s pine2.arista.test
- - name: Ethernet4
- description:h ost1
- - name: Ethernet5
- description: host2
-
-Once you run the template above, it’ll generate the following
-configuration:
-
-.. code-block:: html
-
- interface Ethernet1
- description leaf2.arista.test
- interface Ethernet2
- description spine1.arista.test
- interface Ethernet3
- description spine2.arista.test
- interface Ethernet4
- description host1
- interface Ethernet5
- description host2
-
-Write it
-~~~~~~~~
-
-We will reuse the hosts file from the last lab, so let’s start by
-creating a Jinja template in **Atom** on your desktop named **interfaces.j2**:
-
-.. warning:: Please make absolutely certain that keep the proper spacing in the Jinja template, or Ansible will fail.
- Jinja, like Ansible, is reliant on indentation.
-
-|
-
-.. code-block:: jinja
-
- {% for intf in interfaces %}
- interface {{ intf.name }}
- description {{ intf.description }}
- {% endfor %}
-
-Now let’s create the playbook on your desktop named ``interfaces.yml``:
-
-.. code-block:: yaml
-
- ---
- - name: Add interface descriptions
- hosts: veos
- gather_facts: no
- connection: local
- vars:
- provider:
- host: "{{ ansible_host }}"
- username: "arista"
- password: "{REPLACE_ARISTA}"
- authorize: yes
- transport: eapi
- validate_certs: no
- interfaces:
- - name: Ethernet1
- description: leaf2.arista.test
- - name: Ethernet2
- description: spine1.arista.test
- - name: Ethernet3
- description: spine2.arista.test
- - name: Ethernet4
- description: host1
- - name: Ethernet5
- description: host2
- tasks:
- - eos_config:
- src: interfaces.j2
- provider: "{{ provider }}"
-
-Run it
-~~~~~~
-
-Let’s run it. We’re going to reuse the hosts file created in the last
-lab.
-
-.. code-block:: bash
-
- ansible-playbook -i ~/Desktop/labhosts ~/Desktop/interfaces.yml
-
-You should see ok=1 **changed=1**. If you were to run it again, it will
-show ok=1 changed=0.
-
-Log into Leaf1 (192.168.0.14) and run ``show interface status`` to see the
-interface names.
-
-Bonus
------
-
-Modify the **For Loops** lab to add the interface name to the interface
-description.
diff --git a/topologies/datacenter-latest/labguides/source/command_api.rst b/topologies/datacenter-latest/labguides/source/command_api.rst
deleted file mode 100644
index 8a0b7e405..000000000
--- a/topologies/datacenter-latest/labguides/source/command_api.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-Command API
-===========
-
-The first lab will demonstrate the on-switch Command API explorer
-feature. The Command API provides an interface to experiment with
-commands and view their request and response structure without having to
-write a script or program to test it with.
-
-Connect to **labvm** by clicking on labvm in the **Lab Frontend**.
-
-.. image:: images/commandapi_1.png
- :align: center
-
-Launch **Google Chrome** from DevBox (not your laptop) via the Guacamole interface. Chrome should automatically connect to the demo
-switch’s Command API. If it doesn’t, log onto the switch via
-HTTPS: `https://192.168.0.14 `_
-
-.. image:: images/commandapi_2.png
- :align: center
-
-When prompted, enter in the username ``arista`` and ``{REPLACE_ARISTA}`` as the password.
-Accept the self-signed SSL certificate, please do so.
-
-You will be greeted with the following window:
-
-.. image:: images/commandapi_3.png
- :align: center
-
-Get familiar with the interface. Try entering in ``show interfaces`` and
-clicking **Submit POST** request. Note that it requires the full command to
-work properly; shorthand commands, such as ``sh int`` do not work. Any API
-action is the same way.
-
-.. note:: Technically, you can use the AutoComplete command to use shorthand, but it’s a good practice to use long form. When writing
- code it’s always important to think about the next person to look at it!
-
-When you successfully issue a command, notice what the response looks
-like:
-
-.. image:: images/commandapi_4.png
- :align: center
-
-The format above is in JSON (JavaScript Object Notation). Every line has
-a *key*, and a *value*. This is why JSON is nice to use; it’s easy to
-reference and use key/value pairs. We will play with this more in the
-next lab.
-
-Now try to issue a configuration command. Try:
-
-.. code-block:: html
-
- vlan 1000
- name test
-
-Hit **Submit POST Request**.
-
-What does the response viewer say? Note there’s an error, in this
-case ``"message": "CLI command 1 of 2 'vlan 1000' failed: invalid command"``
-
-If you were to log into the switch right now and issue that command without using an API, what would cause this?
-
-Now try it with the following:
-
-.. code-block:: html
-
- enable
- configure
- vlan 1000
- name test
-
-Just like if you were to login to a switch and issue those commands
-normally, the same applies here. The response indicates a success now.
-Log into your switch and observe that the VLAN is present:
-
-.. image:: images/commandapi_5.png
- :align: center
-
-.. note:: To switch between your desktop and the switch, press **Control+Alt+Shift**, click **arista** at the top right of the menu, click **Home** and
- then expand **veos** and double click on **leaf1**. To switch back, reverse the process.
-
-Play around some more if you’d like! Check out the **Overview** and **Command Documentation**
-tabs. Also, this is running on a virtual edition of our switch, so you can also do this at home or in your work lab!
diff --git a/topologies/datacenter-latest/labguides/source/conf.py b/topologies/datacenter-latest/labguides/source/conf.py
deleted file mode 100644
index 40121267a..000000000
--- a/topologies/datacenter-latest/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 2.7'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/datacenter-latest/labguides/source/connecting.rst b/topologies/datacenter-latest/labguides/source/connecting.rst
deleted file mode 100644
index de4c55b9e..000000000
--- a/topologies/datacenter-latest/labguides/source/connecting.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Demo Cloud portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/cvp_configlet/cvp_configlet1.png
-
-2. SSH to the public IP address assigned to the LabAccess jumphost server (this is the IP address shown in the "Welcome to Arista's
- Demo Cloud" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@x.x.x.x
-
-|
-
-.. image:: images/connecting_1.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
diff --git a/topologies/datacenter-latest/labguides/source/cvp-l2evpn.rst b/topologies/datacenter-latest/labguides/source/cvp-l2evpn.rst
deleted file mode 100644
index 94a340e63..000000000
--- a/topologies/datacenter-latest/labguides/source/cvp-l2evpn.rst
+++ /dev/null
@@ -1,485 +0,0 @@
-.. # define a hard line break for HTML
-.. |br| raw:: html
-
-
-
-L2 EVPN
-=======
-
-1. Log into CloudVision and find **leaf3** on the **Devices** page
-
-* The username to access CloudVision is ``arista`` and the password is ``{REPLACE_ARISTA}``
-
-* Search for ``leaf3`` in the **Device** column of the **inventory** table.
-
-.. image:: images/cvp-l2vpn/leaf3-inventory-table.png
- :align: center
- :width: 50 %
-|br|
-
-* Click on **leaf3**
-|br|
-
-2. Review the current **running-config** routing agent information in CVP
-
-* Click on **Running Config** in the left selection column under **Device Overview**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-running-config.png
- :align: center
- :width: 50%
-|br|
-
-* Verify that ``service routing protocols model multi-agent`` line is in the current **running-config**
-|br|
-
-3. Review the current VXLAN information in CVP
-
-* Click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-pre.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** leaf3 currently has no VXLAN configuration
-
-* Click on **Topology** in the navigation bar at the top of the page
-* Click the **Link Overlay** dropdown in the left selection column
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-before.png
- :align: center
- :width: 50%
-|br|
-
-* Click the **VXLANs** selection, also click and view the **VLANs** selection
-* **Note:** You should see VLAN 1 on ``leaf3`` & ``leaf1``
-* **Note:** You should not see VLAN 12 or VNI 1200 as a dashed line from ``leaf3`` to other leaf switches
-|br|
-
-4. Create the EVPN L2VPN configlet
-
-* Click on **Provisioning**, click on **Configlets** in the left selection column
-* Click the **+** sign in the Configlets list toolbar
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-list.png
- :align: center
- :width: 50%
-|br|
-
-* Create a configlet called ``Leaf3-l2vpn-Lab-Full-user``
-
-.. code-block:: text
-
- !! Configure physical interface et4 for LACP and Port-Channel4 in access vlan 12
- interface Port-Channel4
- switchport mode access
- switchport access vlan 12
- !
- interface Ethernet1
- shutdown
- !
- !! Configure interface et2 as a p2p leaf to spine L3 link
- interface Ethernet2
- no switchport
- ip address 172.16.200.10/30
- !
- !! Configure interface et3 as a p2p leaf to spine L3 link
- interface Ethernet3
- no switchport
- ip address 172.16.200.26/30
- !
- !! Configure physical interface et4 for LACP (active) in Port-Channel4
- interface Ethernet4
- channel-group 4 mode active
- lacp timer fast
- !
- interface Ethernet5
- shutdown
- !
- !! Configure loopback0 interface for use with routing protocol (BGP)
- interface Loopback0
- ip address 172.16.0.5/32
- !
- !! Configure loopback1 interface for use as the VTEP IP interface
- interface Loopback1
- ip address 3.3.3.3/32
- ip address 99.99.99.99/32 secondary
- !
-
- !! Configure routing protocol BGP Underlay
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- !! Configure routing protocol BGP overlay
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- redistribute connected
- !
- !! Enable address family evpn for the SPINE-EVPN-TRANSIT peer group
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- !! Disable address family ipv4 on SPINE-EVPN-TRANSIT peer group
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-* Add the CLI text from above to the new configlet
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet.png
- :align: center
- :width: 50%
-|br|
-
-* Validate configlet syntax on ``leaf3``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-validate.png
- :align: center
- :width: 50%
-|br|
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-validate2.png
- :align: center
- :width: 50%
-|br|
-
-5. Assign the EVPN configlet to ``leaf3``
-
-* Click on **Provisioning**, then click on **Network Provisioning** in the left selection column
-* Right click on **leaf3**, Click on **Manage->Configlets** and then search for ``Leaf3-l2vpn``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-manage.png
- :align: center
- :width: 50%
-|br|
-
-* Click the checkbox next to ``Leaf3-l2vpn-Lab-Full-user``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-assign.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Validate**, review the new lines added to the **Designed Configuration**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-assign-validate.png
- :align: center
- :width: 35%
-|br|
-
-* click **Save**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-assign-validate-compare.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Save** on the **Network Provisioning** main view
-
-* **Note:** a Task will be generated
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-main-save.png
- :align: center
- :width: 50%
-|br|
-
-6. Create a **Change Control** with the generated Task
-
-* Click **Tasks** from the left selection column
-
-* Click the checkbox next to the generated task from the pool of **Assignable Tasks**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-task.png
- :align: center
- :width: 50%
-|br|
-
-* Click **+ Create Change Control with 1 Task**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-create-cc.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Review and Approve** on the newly created **Change Control**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-review-approve.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Execute Change Control** in upper right of the UI
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-execute.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Execute** in the resulting confirmation dialog box
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-execute-confirm.png
- :align: center
- :width: 50%
-|br|
-
-7. Verify the EVPN BGP protocol overlay
-
-* **Note:** This verification step can also be done on the CLI of ``leaf3``
-* Click **Provisioning**, then click **Snapshot Configuration**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-config.png
- :align: center
- :width: 50%
-|br|
-
-* Click **or create a new configuration** in the center of the **Snapshot Configuration** screen
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-config-new.png
- :align: center
- :width: 50%
-|br|
-
-
-* Under **Snapshot Configuration** enter ``ip-bgp-evpn-summary`` under Name
-* In the **Commands** dialog enter the following commands
-
-.. code-block:: text
-
- show bgp evpn summary
- show ip bgp summary
- show ip route bgp
-
-* Under devices, select ``leaf3``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-config-content.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Save**
-
-* Click **Devices**, then click **leaf3**
-* Click **Snapshots** in the left selection column
-* Click **ip-bgp-evpn-summary**
-* **Note:** Under ``show bgp evpn summary`` you should see that there are two **overlay** BGP peers, peered with the loopback0 interface IP address
-* **Note:** Under ``show ip bgp summary`` you should see that there are two **underlay** BGP peers, peered with the p2p interfaces (Et2 & Et3) IP addresses
-* **Note:** Under ``show ip route bgp`` you should see that there are a number of ECMP routes to networks via the p2p interfaces (ET2 & ET3) of the peers
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-ip-bgp-evpn-summary.png
- :align: center
- :width: 50%
-|br|
-
-8. Add the L2VPN VXLAN configuration to the previously created configlet ``Leaf3-l2vpn-Lab-Full-user``
-
-* Click **Provisioning**, then click **Configlets**
-* Search for ``l2vpn`` then click **Leaf3-l2vpn-Lab-Full-user**
-* Click the **edit** button and add the following configuration lines in **bold** below, to the configlet created in step (4.)
-* **Note:** For simplicity add the new lines in the same position and order as they appear in **bold** below
-* **Note:** This step will add an L2VPN to ``leaf3`` to extend VLAN 12 using VXLAN from ``leaf3`` to ``leaf1``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-edit-configlet.png
- :align: center
- :width: 50%
-|br|
-
-
-.. raw:: html
-
-
- !! Configure physical interface et4 for LACP and Port-Channel4 in access vlan 12
- interface Port-Channel4
- switchport mode access
- switchport access vlan 12
- !
- interface Ethernet1
- shutdown
- !
- !! Configure interface et2 as a p2p leaf to spine L3 link
- interface Ethernet2
- no switchport
- ip address 172.16.200.10/30
- !
- !! Configure interface et3 as a p2p leaf to spine L3 link
- interface Ethernet3
- no switchport
- ip address 172.16.200.26/30
- !
- !! Configure physical interface et4 for LACP (active) in Port-Channel4
- interface Ethernet4
- channel-group 4 mode active
- lacp timer fast
- !
- interface Ethernet5
- shutdown
- !
- !! Configure loopback0 interface for use with routing protocol (BGP)
- interface Loopback0
- ip address 172.16.0.5/32
- !
- !! Configure loopback1 interface for use as the VTEP IP interface
- interface Loopback1
- ip address 3.3.3.3/32
- ip address 99.99.99.99/32 secondary
- !
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1200
- !
- !! Configure routing protocol BGP Underlay
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- !! Configure routing protocol BGP overlay
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT next-hop-unchanged
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community extended
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- redistribute connected
- !
- vlan 12
- rd 3.3.3.3:12
- route-target both 1:12
- redistribute learned
- !
- !! Enable address family evpn for the SPINE-EVPN-TRANSIT peer group
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- !! Disable address family ipv4 on SPINE-EVPN-TRANSIT peer group
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-
-* Repeat the process described in step (6.) to push the additional configuration to ``leaf3``
-|br|
-
-9. Verify l2vpn VXLAN operation with CVP Telemetry
-
-* Using the method described in step (7.), create a new snapshot called ``vxlan-info``
-
- **Note:** This verification can also be done on the CLI of ``leaf1`` and ``leaf3``
-
-* Select ``leaf1`` and ``leaf3`` under the **Devices** dropdown of the new Snapshot configuration
-
-* Add the following commands to the **Commands** field of the new snapshot
-
-.. code-block:: text
-
- show bgp evpn route-type imet
- show bgp evpn route-type mac-ip
- show vxlan address-table
-
-* Wait 5-10 minutes you will see the snapshot data populated
-
- **Note:** wait for the snapshot to run and until after you ping from ``host1`` to ``host2`` before viewing this snapshot
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-vxlan-info.png
- :align: center
- :width: 50%
-|br|
-
-* From **Device** page **Inventory** click on **leaf3**
-* Click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** you should now see the VLANs to VNI mappings related the to VXLAN configuration on ``leaf3``
-
-* Ping ``host1`` from ``host2``
-
-.. code-block:: text
-
- host1# ping 172.16.112.201
- PING 172.16.112.201 (172.16.112.201) 72(100) bytes of data.
- 80 bytes from 172.16.112.201: icmp_seq=1 ttl=64 time=0.248 ms
- 80 bytes from 172.16.112.201: icmp_seq=2 ttl=64 time=0.165 ms
- 80 bytes from 172.16.112.201: icmp_seq=3 ttl=64 time=0.181 ms
- 80 bytes from 172.16.112.201: icmp_seq=4 ttl=64 time=0.150 ms
- 80 bytes from 172.16.112.201: icmp_seq=5 ttl=64 time=0.146 ms
-
- --- 172.16.112.201 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 1ms
- rtt min/avg/max/mdev = 0.146/0.178/0.248/0.037 ms, ipg/ewma 0.421/0.211 ms
- host1#
-
-* Again, click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification-mac.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** In addition to the VLAN to VNI Mappings, you will see an entry in the ``VXLAN MAC Address Table`` section
-
-* Click on the **MAC Address Table** for ``leaf3`` in left selection column
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification-mac-table.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** You will see the local MAC Address of Host2 on Port-Channel 4 and the remote MAC Address of Host1 via port ``Vxlan1``
-
-* Review the snapshot ``vxlan-info`` created earlier in step (9.)
-* **Note:** ``show bgp evpn route-type imet`` will show the VXLAN flood lists dynamically built and distributed by BGP EVPN
-* **Note:** ``show bgp evpn route-type mac-ip`` will show the VXLAN mac to IP bindings being sent via BGP EVPN
-* **Note:** ``show vxlan address-table`` will show the VLAN, MAC Address and VXLAN interface and remote VTEP IP
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-info-snapshot.png
- :align: center
- :width: 50%
-|br|
-
-* Click on **Topology View**
-* Click the **Link Overlay** dropdown in the left selection column
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-before.png
- :align: center
- :width: 50%
-|br|
-
-* Click the **VXLANs** selection, also click and view the **VLANs** selection
-* **Note:** You should see VLAN 12 on ``leaf3`` & ``leaf1``
-* **Note:** You should see that ``leaf3`` has both VLAN 12 and VNI 1200 with a dashed line to ``leaf1``
-* **Note:** You should **now** see VLAN 12 and VNI 1200 as a dashed line from leaf3 to leaf1, indicating VLAN 12 is extended via VNI 1200
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-vlan-after.png
- :align: center
- :width: 50%
-|br|
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-vni-after.png
- :align: center
- :width: 50%
-|br|
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/labguides/source/cvp-l3ls.rst b/topologies/datacenter-latest/labguides/source/cvp-l3ls.rst
deleted file mode 100644
index 86be92cad..000000000
--- a/topologies/datacenter-latest/labguides/source/cvp-l3ls.rst
+++ /dev/null
@@ -1,162 +0,0 @@
-Layer 3 Leaf-Spine
-==================
-
-.. note:: For more details on the configuration we will apply to Leaf4, check out the UCN MLAG Lab.
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. Log into CloudVision and find Leaf4 on the **Devices** page.
-
- 1. The username to access CloudVision is ``arista`` and the password is ``{REPLACE_ARISTA}``
-
- 2. Search for ``leaf4`` in the **Device** column of the inventory table.
-
- .. image:: images/cvp-l3ls/leaf4-inventory-table.png
- :align: center
- :width: 50 %
-
- 3. Click on **leaf4**.
-
-2. Click on the **BGP** section on the left side navigation bar.
-
- 1. Here we can see details for the BGP state of leaf4.
-
- .. image:: images/cvp-l3ls/leaf4-bgp-overview-pre.png
- :align: center
- :width: 50 %
-
- 2. Notice that BGP does not appear to be configured on leaf4.
-
- 3. Switch to **spine1** to see the status of spine1's BGP configuration.
-
- .. image:: images/cvp-l3ls/spine1-bgp-overview-pre.png
- :align: center
- :width: 50 %
-
- 3. See that there is 1 unestablished peer and we can see the details for that attempted neighborship in the table.
-
- 4. View these details for **spine2** as well.
-
-3. Click **Metrics** at the top of the page
-
- 1. In this section of CloudVision, users can create custom Dashboards to refer to particular telemetry data they find noteworthy.
-
- 2. Click **create a new dashboard**.
-
- 3. In the view builder on the left, select the values for each dropdown as listed below:
-
- .. .. table::
- :widths: auto
- :align: center
-
- ============== =========================
- Dashboard View
- -----------------------------------------
- View Mode Table
- Metric Type Devices
- Metrics BGP
- - Established Peers
- - Unestablished Peers
- - Learned Paths
- - AS Number
- - Router-ID
- Devices - leaf1
- - leaf2
- - leaf3
- - leaf4
- - spine1
- - spine2
- ============== =========================
-
- .. image:: images/cvp-l3ls/bgp-dashboard-setup.png
- :align: center
- :width: 50 %
-
- 4. Click **Save Dashboard** in the bottom left corner.
-
- 5. If prompted to name the dashboard, give a name and click **Save**.
-
- 6. Now there is a dashboard that displays BGP information for all switches in our leaf-spine network in one place.
-
-4. Configure BGP on leaf4.
-
- 1. Click **Provisioning** at the top of the page.
-
- 2. Find **leaf4**, right click on it, and click **Manage -> Configlet**.
-
- .. image:: images/cvp-l3ls/leaf4-manage-configlet.png
- :align: center
- :width: 50 %
-
- 3. Search for ``Leaf4-BGP-Lab-Full`` in the search bar, select the configlet, and click **Validate**.
-
- .. image:: images/cvp-l3ls/leaf4-add-bgp-configlet.png
- :align: center
- :width: 50 %
-
- 4. Validate the Designed Configuration created by CloudVision from the Proposed Configlets against Leaf4's running configuration and click **Save**.
-
- .. image:: images/cvp-l3ls/leaf4-validate-bgp-configlet.png
- :align: center
- :width: 50 %
-
- 5. There should now be a temporary action for leaf4 indicated by the green outline around leaf4. Click **Save**.
-
- .. image:: images/cvp-l3ls/leaf4-pending-task.png
- :align: center
- :width: 50 %
-
- 6. A task should have been created. Click **Tasks** on the left side to navigate to the **Tasks** page.
-
- 7. Check the assignable task for leaf4 and click **Create Change Control with 1 Task**.
-
- .. image:: images/cvp-l3ls/bgp-create-cc.png
- :align: center
- :width: 50 %
-
- 8. At this point, you should be on the Change Control page. Click **Review and Approve** towards the upper right corner to view the effects of each task in the change control.
-
- .. image:: images/cvp-l3ls/bgp-cc-page.png
- :align: center
- :width: 50 %
-
- 9. Review the changes you are about to push and click **Approve** in the bottom right corner of the window.
-
- .. image:: images/cvp-l3ls/bgp-review-and-approve.png
- :align: center
- :width: 50 %
-
- 10. The **Review and Approve** button has now changed to an **Execute** button. Click **Execute** to push the configuration update for leaf4.
-
- .. image:: images/cvp-l3ls/bgp-execute-cc.png
- :align: center
- :width: 50 %
-
-5. Verify that BGP is properly configured
-
- 1. Head back over to **Metrics** and select the dashboard we created earlier.
-
- .. image:: images/cvp-l3ls/bgp-dashboard-done.png
- :align: center
- :width: 50 %
-
- 2. Make sure all of the switches have the proper BGP configuration and number of peers.
-
- .. image:: images/cvp-l3ls/leaf4-bgp-overview-post.png
- :align: center
- :width: 50 %
-
- 3. Navigate to the BGP Overview page for **leaf4** as well as both **spine1** and **spine2**.
-
- .. image:: images/cvp-l3ls/spine1-bgp-overview-post.png
- :align: center
- :width: 50 %
-
-6. Validate connectivity from **Host1** to **Host2**. From **Host1** execute:
-
- .. code-block:: text
-
- ping 172.16.116.100
- traceroute 172.16.116.100
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/labguides/source/cvp-mlag.rst b/topologies/datacenter-latest/labguides/source/cvp-mlag.rst
deleted file mode 100644
index 21ec1be1e..000000000
--- a/topologies/datacenter-latest/labguides/source/cvp-mlag.rst
+++ /dev/null
@@ -1,110 +0,0 @@
-MLAG
-====
-
-.. note:: For more details on the configuration we will apply to Leaf4, check out the UCN MLAG Lab.
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-
-1. Log into CloudVision and find Leaf3 on the **Devices** page.
-
- 1. The username to access CloudVision is ``arista`` and the password is ``{REPLACE_ARISTA}``
-
- 2. Search for ``Leaf3`` in the **Device** column of the inventory table.
-
- .. image:: images/cvp-mlag/mlag-leaf3-inventory-table.png
- :align: center
- :width: 50 %
-
- 3. Click on ``Leaf3``.
-
-2. View the MLAG status for Leaf3.
-
- 1. Click on the **MLAG** section on the left side navigation bar.
-
- 2. Here we can see details for the fundamental components of our MLAG configuration for **Leaf3** along with each MLAG component's status.
-
- .. image:: images/cvp-mlag/leaf3-mlag-overview-pre.png
- :align: center
- :width: 50 %
-
- 3. Notice that our MLAG status is inactive. This is because we don't have an MLAG configuration in place on Leaf4, Leaf3's peer.
-
-3. To fix this we'll configure MLAG on Leaf4.
-
- 1. Head over to the Network Provisioning section of CloudVision by clicking **Provisioning** at the top of the page.
-
- 2. Find **Leaf4** and right click on its icon. Select ``Manage`` -> ``Configlet``.
-
- .. image:: images/cvp-mlag/leaf4-manage-configlet.png
- :align: center
- :width: 50 %
-
- 3. Search for the Configlet Builder ``Leaf4-MLAG-Lab`` in the search bar, select the configlet, and click **Validate**.
-
- .. image:: images/cvp-mlag/mlag-leaf4-add-configlet.png
- :align: center
- :width: 50 %
-
- 4. On the **Validate and Compare** page, CloudVision uses all of the configlets applied to the device to create a Designed Configuration. It then compares this Designed Configuration to the Running Configuration on the device. If everything looks good, click **Save**.
-
- .. image:: images/cvp-mlag/mlag-leaf4-validate-and-compare.png
- :align: center
- :width: 50 %
-
- 5. We now have a pending action. You can optionally view this pending action by clicking **Preview**. Click **Save** once more to create a task.
-
- .. image:: images/cvp-mlag/mlag-leaf4-pending-task.png
- :align: center
- :width: 50 %
-
- 6. Head over to the **Tasks** section in **Provisioning** by clicking **Tasks** on the left side bar.
-
- 7. Select our recently created task for Leaf4 and click 'Create Change Coontrool'.
-
- .. image:: images/cvp-mlag/leaf4-mlag-create-cc.png
- :align: center
- :width: 50 %
-
- 8. Here we can review, approve, and execute the configuration update change control. Click **Review** toward the right side to confirm the changes we are about to push.
-
- .. image:: images/cvp-mlag/leaf4-mlag-cc.png
- :align: center
- :width: 50 %
-
- 9. If the changes look good, click **Approve**.
-
- .. image:: images/cvp-mlag/leaf4-mlag-cc-review.png
- :align: center
- :width: 50 %
-
- 10. The **Review** button has now changed to an **Execute** button. Click **Execute** to execute the change control.
-
- .. image:: images/cvp-mlag/leaf4-mlag-cc-execute.png
- :align: center
- :width: 50 %
-
-4. Once our change control has successfully completed, navigate back to our Device overview page to check out **Leaf3**'s MLAG status.
-
- 1. If you aren't there already, on the Devices page, select **Leaf3** -> **Switching** -> **MLAG**
-
- .. image:: images/cvp-mlag/leaf3-mlag-overview-post.png
- :align: center
- :width: 50 %
-
- 2. Everything should look okay now.
-
- 3. Jump over to **Leaf4**'s MLAG section, we see the everything looks okay too.
-
-5. Log in to Host1 and ping Host2
- .. code-block:: text
-
- ping 172.16.112.202
-
-6. Click **Devices** at the top of the page to navigate back to the main **Devices** page.
- 1. Click **Comparison** on the left side bar.
- 2. At the center of the page, select **Leaf3** for one of our devices and **Leaf4** for the other.
- 3. Here we can compare different metrics for these two devices side by side to see similarities and differences between the two members of this MLAG pair.
-
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/labguides/source/cvp-vxlan.rst b/topologies/datacenter-latest/labguides/source/cvp-vxlan.rst
deleted file mode 100644
index 87e7328e5..000000000
--- a/topologies/datacenter-latest/labguides/source/cvp-vxlan.rst
+++ /dev/null
@@ -1,260 +0,0 @@
-.. # define a hard line break for HTML
-.. |br| raw:: html
-
-
-
-VxLAN
-=====
-
-.. note:: The manually-entered configlet below as part of this lab is equivalent to ``Leaf3-VXLAN-Lab-Full``.
-
-**To access the command line of particular switch, click on that switch or CloudVision in the topology diagram at the top of the lab guide.**
-
-
-1. Log into CloudVision and find **leaf3** on the **Devices** page
-
-* The username to access CloudVision is ``arista`` and the password is ``{REPLACE_ARISTA}``
-
-* Search for ``leaf3`` in the **Device** column of the **inventory** table.
-
-.. image:: images/cvp-vxlan/leaf3-inventory-table.png
- :align: center
- :width: 50 %
-|br|
-
-* Click on **leaf3**
-|br|
-
-2. Review the current VXLAN information in CVP
-
-* Click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-pre.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** leaf3 currently has no VXLAN configuration
-
-* Click on **Topology** in the navigation bar at the top of the page
-* Click the **Link Overlay** dropdown in the left selection column
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-before.png
- :align: center
- :width: 50%
-|br|
-
-* Click the **VXLANs** selection, also click and view the **VLANs** selection
-* **Note:** You should see VLAN 12 on ``leaf3`` & ``leaf4``
-* **Note:** You should see that ``leaf4`` has both VLAN 12 and VNI 1212 with a dashed line to ``leaf2``
-* **Note:** You should not see VLAN 12 or VNI 1212 as a dashed line from leaf3 to leaf2
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-vlan-before.png
- :align: center
- :width: 50%
-|br|
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-vni-before.png
- :align: center
- :width: 50%
-|br|
-
-3. Create the VXLAN configlet
-
-* Click on **Provisioning**, click on **Configlets** in the left selection column
-* Click the **+** sign in the Configlets list toolbar
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-list.png
- :align: center
- :width: 50%
-|br|
-
-* Create a configlet called ``Leaf3-VXLAN-Lab-Full-user``
-
-.. code-block:: text
-
- !! Configure physical interface et4 and port-channel 4 for host2 in access vlan4
- interface port-channel 4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
- !
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-
- !! Configure a loopback interface to be used with interface vxlan1 for vxlan encapsulation
- interface Loopback1
- ip address 172.16.0.56/32
- !
- interface vxlan 1
- vxlan source-interface loopback 1
- !! Map vlan 12 to vni 1212
- vxlan vlan 12 vni 1212
- !! Send BUM traffic to vtep(s)
- vxlan flood vtep 172.16.0.34
-
-
-* Add the CLI text from above to the new configlet
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet.png
- :align: center
- :width: 50%
-|br|
-
-* Validate configlet syntax on **leaf3**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-validate.png
- :align: center
- :width: 50%
-|br|
-
-4. Assign the VXLAN configlet to **leaf3**
-
-* Click on **Provisioning**, then click on **Network Provisioning** in the left selection column
-* Right click on **leaf3**, Click on **Manage->Configlets** and then search for ``Leaf3-VXLAN``
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-manage.png
- :align: center
- :width: 50%
-|br|
-
-* Click the checkbox next to ``Leaf3-VXLAN-Lab-Full-user``
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-assign.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Validate**, review the new lines added to the **Designed Configuration**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-assign-validate.png
- :align: center
- :width: 50%
-|br|
-
-* click **Save**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-assign-validate-compare.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Save** on the **Network Provisioning** main view
- **Note:** a Task will be generated
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-main-save.png
- :align: center
- :width: 50%
-|br|
-
-5. Create a Change Control with the generated Task
-
-* Click **Tasks** from the left selection column
-
-* Click the checkbox next to the generated task from the pool of **Assignable Tasks**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-task.png
- :align: center
- :width: 50%
-|br|
-
-* Click **+ Create Change Control with 1 Task**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-create-cc.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Review and Approve** on the newly created **Change Control**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-review-approve.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Execute Change Control** in upper right of the UI
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-execute.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Execute** in the resulting confirmation dialog box
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-execute-confirm.png
- :align: center
- :width: 50%
-|br|
-
-6. Verify VXLAN operation with CVP Telemetry
-
-* From **Device** page **Inventory** click on **leaf3**
-* Click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-verification.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** you should now see the VLANs to VNI mappings related the to VXLAN configuration on ``leaf3``
-
-* Ping ``host1`` from ``host2``
-
-.. code-block:: text
-
- host1# ping 172.16.112.201
- PING 172.16.112.201 (172.16.112.201) 72(100) bytes of data.
- 80 bytes from 172.16.112.201: icmp_seq=1 ttl=64 time=0.248 ms
- 80 bytes from 172.16.112.201: icmp_seq=2 ttl=64 time=0.165 ms
- 80 bytes from 172.16.112.201: icmp_seq=3 ttl=64 time=0.181 ms
- 80 bytes from 172.16.112.201: icmp_seq=4 ttl=64 time=0.150 ms
- 80 bytes from 172.16.112.201: icmp_seq=5 ttl=64 time=0.146 ms
-
- --- 172.16.112.201 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 1ms
- rtt min/avg/max/mdev = 0.146/0.178/0.248/0.037 ms, ipg/ewma 0.421/0.211 ms
- host1#
-
-* Again, click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-verification-mac.png
- :align: center
- :width: 50%
-
-* **Note:** In addition to the VLAN to VNI Mappings, you will see an entry in the ``VXLAN MAC Address Table`` section
-
-* Click on the **MAC Address Table** for ``leaf3`` in left selection column
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-verification-mac-table.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** You will see the local MAC Address of Host2 on Port-Channel 4 and the remote MAC Address of Host1 showing port ``Vxlan1``
-
-* Click on **Topology View**
-* Click the **Link Overlay** dropdown in the left selection column
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-before.png
- :align: center
- :width: 50%
-|br|
-
-* Click the **VXLANs** selection, also click and view the **VLANs** selection
-* **Note:** You should see VLAN 12 on ``leaf3`` & ``leaf4``
-* **Note:** You should see that ``leaf4`` has both VLAN 12 and VNI 1212 with a dashed line to ``leaf2``
-* **Note:** You should **now** see VLAN 12 and VNI 1212 as a dashed line from leaf3 to leaf2, indicating VLAN 12 is extended via VNI 1212
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-vlan-after.png
- :align: center
- :width: 50%
-|br|
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-vni-after.png
- :align: center
- :width: 50%
-|br|
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/labguides/source/cvp_cc.rst b/topologies/datacenter-latest/labguides/source/cvp_cc.rst
deleted file mode 100644
index 7d6466f98..000000000
--- a/topologies/datacenter-latest/labguides/source/cvp_cc.rst
+++ /dev/null
@@ -1,491 +0,0 @@
-CVP Change Control, Telemetry & Rollback
-==========================================
-
-Learn how to use CloudVision’s Change Control. A Change Control (CC) can be associated with one or mores Tasks. CloudVision will take pre and post snapshots when a CC is executed to give us a state to revert back should there be any issues after the change.
-
-Next, the lab will review Telemetry state-streaming information of the change of adding routes and how the routes propagate across the environment.
-
-Lastly, the lab will initiate a Network Rollback to revert the changes that were implemented. The Network Rollback feature can greatly minimize downtime and gives the user the ability to restore the environment to a previous network state quickly.
-
-
-.. note:: Did you know → the “cvp” script is composed of python code that uses the CloudVision Portal Rest API to automate the provisioning of CVP Configlets.
-
-TASK 1: Apply a Configlet Builder to create a group of Tasks
-************************************************************
-
-1. Log into the LabAccess jumpserver:
- 1. If starting from this lab module, type ``cvp`` at the prompt. The script will configure all devices in the lab so you can complete this lab.
-
-
-Now we want to add several Loopbacks to each device using a Configlet Builder at the ‘Leaf’ level.
-
-2. Navigate to the 'Network Provisioning' page under the 'Provisioning' tab.
-
-.. image:: images/cvp_cc/cvp_cc01.png
- :align: center
-
-|
-|
-
-3. Right click on the 'Leaf' container and select 'Manage' -> 'Configlet'
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc02.png
- :align: center
-
-|
-|
-
-4. Select the ‘Add_Loopbacks’ from the list of configlets.
-
-|
-|
-
-5. Select 'Generate' to build a configlet for each device. View the generated configuration by expanding the Proposed Configuration on the right by selecting the '+'
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc03.png
- :align: center
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc04.png
- :align: center
-
-|
-|
-
-6. Select 'Update' to return to 'Network Provisioning' and select 'Save' at the bottom of the screen. Tasks will be generated and a notifcation will show next to the 'Tasks' option in the Navigation column. Now that we have Tasks created we can use Change Control feature.
-
-|
-|
-
-7. Navigate to 'Change Control' from the Provisioning Tab.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc05.png
- :align: center
-
-|
-|
-
-8. Create a new Change Control by clicking the '+ Create Change Control' in the top right.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc06.png
- :align: center
-
-|
-|
-
-9. This screen will show pending tasks that will be associated with a Change Control(CC). Select all pending Tasks and click '+ Create Change Control with 4 Tasks'.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc07.png
- :align: center
-
-|
-|
-
-10. First, we need to give the Change Control a name. Click the pencil on the top right to edit the CC name. Name it 'Add_Loopbacks_CC' and hit Enter.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc08.png
- :align: center
-
-|
-|
-
-11. Next we will create 2 new stages. Click the '+' in the top right (above the default stage) twice in order to create 2 new stages.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc09.png
- :align: center
-
-|
-|
-
-12. Drag one of the empty 'Change Control Stages' above the default stage.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc10.png
- :align: center
-
-|
-|
-
-13. Rename the top and bottom stages to 'Before Snapshot' and 'After Snapshot' respectively by clicking the Pencil icon. Name the middle stage 'Configuration Changes'.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc11.png
- :align: center
-
-|
-|
-
-14. Next we can select a Snapshot template that we want to run before and after the change. Select 'Add Actions' under the right side menu.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc12.png
- :align: center
-
-|
-|
-
-15. Under 'Select action', select 'Snapshot -> Validate_Routing' and 'leaf1', 'leaf2', 'leaf3', and 'leaf4' under 'Select devices to run on'.
-Select 'Before Snapshot' under 'Assign to stage' and 'Parallel' under 'Select ordering', then click 'Add to change control'.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc13-1.png
- :align: center
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc13-2.png
- :align: center
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc13-3.png
- :align: center
-
-|
-|
-
-16. Repeat step 15, but select 'After Snapshot' under 'Assign to stage'. We should now have 2 stages that will take a before and after snapshot of the devices being changed.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc13-4.png
- :align: center
-
-|
-|
-
-A few notes about Change Control:
- a. Each Task can be assigned to different stages if wanted. Health checks can be performed in stages before the next stage executes.
- b. The order of Task execution can be specified if there are dependencies. This is done by dragging tasks under the same column (Series).
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc14.png
- :align: center
-
-|
-|
-
-17. For this lab, we now want to execute the CC. First a review and approval will need to take place. Select 'Review and Approve'. Here we can view all of the changes for the tasks, snapshots to be taken, and any other information relative to the change control in order to approve it.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc15.png
- :align: center
-
-|
-|
-
-18. Once changes have been reviewed, we can click 'Approve' in the bottom right.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc16.png
- :align: center
-
-|
-|
-
-19. Once the change has been approved, we should now have a button that says 'Execute Change Control' in the top right corner. Click this to execute the changes.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc17.png
- :align: center
-
-|
-|
-
-20. We will now be prompted with with a confirmation. Click 'Execute' to confirm the CC execution.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc18.png
- :align: center
-
-|
-|
-
-21. While the CC executes, we can see the progress of each task as it is executed.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc19.png
- :align: center
-
-|
-|
-
-22. Once the Change Control is successfully completed, we can view and compare the snapshots under 'Devices' -> 'Comparison'
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc20-1.png
- :align: center
-
-|
-|
-
-23. To compare the before and after from our CC, select the 'Two times' option to compare two points in time for the same device. Select 'leaf1' from the dropdown menu and click the Quick link for '30 minutes ago'. Then hit 'Compare'.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc21-2.png
- :align: center
-
-|
-|
-
-24. CVP will bring up a variety of views that allows you to compare the state of the device from 30 minutes ago to the current time. Select 'Snapshots' from the left Navigation column.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc22.png
- :align: center
-
-|
-|
-
-25. In the 'Comparing Data...' heading, select the first time to bring up a list of optional times to compare the Snapshot from. The top option represents the 'Before Change' Snapshot taken when the Change Control was executed. Select that to see a comparison of the command outputs from before and after the change.
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc23-1.png
- :align: center
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc23-2.png
- :align: center
-
-|
-|
-
-TASK 2: View Telemetry
-**********************
-
-|
-
-1. Using Telemetry, we can view the routes that were added as part of this change propagate across the environment. One way to view telemetry information is per device in the 'Devices' tab. Navigate to the 'Devices' tab and select 'leaf1' to view detailed information.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc24.png
- :align: center
-
-|
-
-2. On the left Navigation column, select 'IPv4 Routing Table' to see a live view of the device's routing table. Using the timeline at the bottom of the screen, you can navigate to any point in time to see what the route table was at that exact moment. You can also see a running list of changes to the routing table on the right.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc25.png
- :align: center
-
-|
-
-3. By clicking on the 'compare against 30m ago' link, you can navigate back to the Comparison view of the routing table to see all the routes added in green as part of the Change Control pushed earlier.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc26-1.png
- :align: center
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc26-2.png
- :align: center
-
-|
-
-4. To view Telemetry information for multiple devices in a common dashboard, select the 'Metrics' tab.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc27.png
- :align: center
-
-|
-
-5. To build a dashboard, select 'Explorer' in the left column to bring up a list of available telemetry metrics to add.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc28.png
- :align: center
-
-|
-
-6. Under the 'Metrics' dropdown, select 'IPv4 Total Route Count' and select 'leaf1', 'leaf2', 'leaf3' and 'leaf4' to add them to the dashboard view.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc29-1.png
- :align: center
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc29-2.png
- :align: center
-
-|
-
-7. This will bring up a live rolling view of the selected metric. In the timeline at the bottom, select 'Show Last: 1h' to view metric data for the last hour. You will see a graphical representation of the increase in routes for each device.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc29-3.png
- :align: center
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc29-4.png
- :align: center
-
-|
-
-8. Select the 'Add View' button to save this metric view and add another if desired. Using the same process, add a view for 'IPv4 BGP Learned Routes' and 'IP Interfaces' to see other results of the Change Control. Then hit the 'Save Dashboard' button in the bottom left.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc29-6.png
- :align: center
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc29-5.png
- :align: center
-
-|
-
-9. Name the dashboard 'Leaf Routing Metrics' and hit 'Save'. The dashboard is now saved and can be pulled up by other users of CVP at any time to view the consolidated metrics selected.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc29-7.png
- :align: center
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc29-8.png
- :align: center
-
-|
-
-TASK 3: Rollback
-****************
-
-1. Initiate a Network Rollback to revert the changes that were implemented. Go to the 'Provisioning -> Change Control' page and find the change control we just executed: 'Add_Loopbacks_CC'.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc30-1.png
- :align: center
-
-|
-|
-
-.. image:: images/cvp_cc/cvp_cc30-2.png
- :align: center
-
-|
-
-2. In the top right, click 'Rollback Change'.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc31.png
- :align: center
-
-|
-
-3. Here we will select the tasks we wish to roll back. Select all of the tasks for the leafs and click 'Create Rollback Change Control'.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc32.png
- :align: center
-
-|
-
-4. We will now have a rollback change control created. The same change control process can be followed as before. Select 'Review and Approve' to see a reflection of the changes that will be executed. Note that the config lines are now red as they will be removed when the Rollback Change is pushed. Select 'Approve' to move to the next step.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc33.png
- :align: center
-
-|
-
-5. Hit 'Execute Change Control' to push the change to rollback the configuration of the devices to the previous state.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc34.png
- :align: center
-
-|
-
-6. Navigate back to 'Metrics' then the 'Leaf Routing Metrics' dashboard. Select 'Show Last: 5m" in the timeline to see your telemetry reflect in real-time the removal of the IPv4 routes and interfaces.
-
-|
-
-.. image:: images/cvp_cc/cvp_cc35.png
- :align: center
-
-|
-
-LAB COMPLETE
-
-|
-|
diff --git a/topologies/datacenter-latest/labguides/source/cvp_configlet.rst b/topologies/datacenter-latest/labguides/source/cvp_configlet.rst
deleted file mode 100644
index d451e202e..000000000
--- a/topologies/datacenter-latest/labguides/source/cvp_configlet.rst
+++ /dev/null
@@ -1,169 +0,0 @@
-CVP Configlet
-=============
-
-Let’s create a new CloudVision configlet. CloudVision configlets are
-snippets of configuration that are used to create a switch
-configuration.
-
-All of the switches have a base Configlet Builder that was generated
-from the IP Address Management (IPAM) system. Additional Configlets have
-been defined for AAA and VLANs.
-
-1. Log into the Arista Demo Cloud portal with your assigned URL. If you don’t have one, please see your ATD staff.
-
-.. image:: images/cvp_configlet/cvp_configlet1.png
- :align: center
-
-|
-
-2. Click on the link "Click Here To Access Topology" and navigate to the below page. Click the CVP link on the left side of the screen and accept any SSL warning signs that may pop up.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet2.png
- :align: center
-
-|
-
-3. You will come to a login screen for CloudVision Portal. Enter the username “arista” and the password “{REPLACE_ARISTA}”
-
-|
-
-4. For this lab, select 'Provisioning -> Configlets' from CloudVision.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet3.png
- :align: center
-
-|
-
-5. Click the '+' in the top right and select 'Configlets' to create a new configlet.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet4.png
- :align: center
-
-|
-
-6. In the configuration section enter the command information as shown:
-
-
- .. code-block:: text
-
- alias routeage bash echo show ip route | cliribd
-
-
-6. Name the Configlet 'Alias'.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet5.png
- :align: center
-
-|
-
-7. The Configlet can be validated against a device to ensure there isn’t a conflict and the configuration is validated. To validate, click the checkbox in the top right section.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet6-1.png
- :align: center
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet6-2.png
- :align: center
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet7.png
- :align: center
-
-|
-
-8. Once the configuration is validated, Click the 'Save' button to save the Configlet
-
-|
-
-9. To apply the Configlet, navigate to 'Network Provisioning' and right click on the 'Tenant' container and select 'Manage -> Configlet'.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet8.png
- :align: center
-
-|
-
-10. Select the 'Alias' Configlet and click 'Update'. This activity is to simply add a new configlet to the existing configlets applied on the 'Tenant' container. **Do not Remove** existing configlets from the Proposed Configuration section.
-
-
- *\**Expert Tip - Use search bar to find Configlets faster*
-
-.. image:: images/cvp_configlet/cvp_configlet9.png
- :align: center
-
-|
-
-11. On the 'Network Provisioning' page, Click the 'Save' button to save the changes to the topology.
-
-|
-
-12. The screen will refresh and a 'T' for task will appear above each device, representing that tasks have been generated that need to run to push the configuration change.
-
-|
-
-13. Click 'Tasks' in the left navigation column.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet10.png
- :align: center
-
-|
-
-14. Check each Task in the 'Assignable Tasks' section, then click the 'Create Change Control with 9 Tasks' button.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet11.png
- :align: center
-
-|
-
- *\**See the 'CVP Change Control, Telemetry & Rollback' lab guide for more information on Change Controls*
-
-|
-
-15. Select 'Review and Approve' in the top right, then 'Approve' in the bottom right to approve the Change Control.
-
-|
-
-16. Select 'Execute Change Control' in the top right and then 'Execute' to execute the Change Control tasks.
-
-|
-
-17. When the tasks are in-progress or completed, navigate into the task by clicking on the task object.
-
- a. The 'Info' tab includes high level information about the device.
- b. The 'Changes' tab shows the diff of the changes made with the selected task.
- c. The 'Logs' tab includes information for all interactions between CVP and the switch.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet12.png
- :align: center
-
-|
-
-18. Select 'Changes' tab to review the *Designed Configuration* vs. *Running Configuration*. The Designed Configuration is a combination of all configlets to build a full device configuration. The Running Configuration is the running-config prior to executing the task. Configuration differences are highlighted to show New Lines, Mismatch Lines, and To Reconcile.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet13.png
- :align: center
-
-|
-
-**LAB COMPLETE**
diff --git a/topologies/datacenter-latest/labguides/source/cvx.rst b/topologies/datacenter-latest/labguides/source/cvx.rst
deleted file mode 100644
index 0ee7d6278..000000000
--- a/topologies/datacenter-latest/labguides/source/cvx.rst
+++ /dev/null
@@ -1,112 +0,0 @@
-CVX
-====
-
-.. image:: images/cvx_1.png
- :align: center
-
-.. note:: Did you know the CVX stands for CloudVision eXchange? CVX is simply a virtual instance of Arista's EOS known as vEOS. CVX can be run in Standalone mode (Single VM) or Multi-node (up to 3 VMs) cluster.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``vxlan`` at the prompt. The script will configure the datacenter with the exception of Leaf3
-
- 2. On **CVX01**, verify the that CVX is really a vEOS instance:
-
- .. code-block:: text
-
- show version
-
-2. Enable the VXLAN Control Service (VCS) on **CVX01**
-
- 1. On **CVX01**:
-
- .. code-block:: text
-
- configure
- cvx
- no shutdown
-
- service vxlan
- no shutdown
-
- 2. Verify CVX Service is running:
-
- .. code-block:: text
-
- show cvx
-
-3. On **Leaf3**, perform these commands to complete the southbound MLAG to HOST2 and configure the VTEP & loopback1 IP address:
-
- .. code-block:: text
-
- configure
- interface Port-Channel4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
-
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-
- interface Loopback1
- ip address 172.16.0.56/32
-
- interface Vxlan 1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1212
- vxlan controller-client
-
-
-4. On **each** Leaf in the topology, configure CVX controller client and the interface vxlan1
-
- 1. On **Leaf1**, **Leaf2**, **Leaf3**, and **Leaf4**:
-
- .. code-block:: text
-
- configure
- management cvx
- server host 192.168.0.44
- no shutdown
-
- 2. On **Leaf1**, **Leaf2**, & **Leaf4** add the CVX/VCS control place config and also remove the explicit HER flood list VTEPs. Since CVX will create the flood list for us, we don't need to explicit declare it now.
-
- .. code-block:: text
-
- configure
- interface Vxlan 1
- no vxlan flood vtep
- vxlan controller-client
-
- 3. Verify VxLAN controller status on **Leaf1**, **Leaf2**, **Leaf3**, and **Leaf4**:
-
- .. code-block:: text
-
- show vxlan controller status
- show vxlan controller address-table advertised
- show vxlan controller address-table received
-
- 4. Log onto **host1** and ping **host2**:
-
- .. code-block:: text
-
- ping 172.16.112.202
-
-5. Verify that **CVX01** has established connections and is receiving VxLAN advertisements
-
- .. code-block:: text
-
- show cvx connections
- show service vxlan address-table advertised
- show service vxlan address-table received
-
-6. Verify that **CVX01** can view the network topology:
-
- .. code-block:: text
-
- show network physical-topology hosts
- show network physical-topology neighbors
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/labguides/source/day2_operations.rst b/topologies/datacenter-latest/labguides/source/day2_operations.rst
deleted file mode 100644
index 515ae7d56..000000000
--- a/topologies/datacenter-latest/labguides/source/day2_operations.rst
+++ /dev/null
@@ -1,345 +0,0 @@
-Day 2 Operations
-========================
-
-If you were recall the earlier presentation, we mentioned Continuous
-Integration and Continuous Development (CI/CD). Now we’re going to show
-you an example.
-
-In this lab we’re going to go from 0-60 pretty quickly and introduce a
-couple of new tools. We’re also going to do things a little bit
-differently - we’re going to action against many switches at the same
-time.
-
-Tools used in this lab
-----------------------
-
-`Git `__\ is
-the most popular version control system. If you are familiar with SVN
-(Subversion) or CVS, it is a more modern and distributed system. Git
-keeps your source code/configurations in a repository (repo) and
-maintains a record of what changed and by whom.
-
-.. note:: Git is an incredibly powerful tool. We’re using shortcuts that
- are specific to this lab. When using Git in production - or even just
- for fun, please make sure that you understand the commands you are
- using. Some Git commands are destructive and irreversible!
-
-`Jenkins `__\ is
-one of the most popular open source automation tools with hundreds of
-plugins for building/deploying/automating pretty much anything. It’s not
-outside the realm of possibility to have it test and push changes to
-your switches and then order you a pizza if it’s successful.
-
-Git commands
-~~~~~~~~~~~~
-
-This lab makes use of a handful of git commands, and the table below
-describes their function:
-
-.. cssclass:: table-hover
-
-+-----------------------------------+-----------------------------------+
-| **Command** | **Description** |
-+-----------------------------------+-----------------------------------+
-| ``git init`` | Initializes an empty git |
-| | repository |
-+-----------------------------------+-----------------------------------+
-| ``git add`` | Adds files to the local git |
-| | repository |
-+-----------------------------------+-----------------------------------+
-| ``git commit`` | Commits the git repository |
-+-----------------------------------+-----------------------------------+
-| ``git remote add origin`` | Adds a remote repository to |
-| | commit to |
-+-----------------------------------+-----------------------------------+
-| ``git push`` | Pushes code to the repository |
-+-----------------------------------+-----------------------------------+
-| ``git reflog`` | The git reflog command lists |
-| | every commit, their checksum, |
-| | their distance from the current |
-| | commit, and the commit message. |
-+-----------------------------------+-----------------------------------+
-| ``git revert`` | Reverts the local repository to a |
-| | previous commit |
-+-----------------------------------+-----------------------------------+
-
-Making a change
----------------
-
-Our tried and true “add a VLAN” task is back in full force for this lab,
-but with a twist. We’re going to set up the usual suspects - a hosts
-file and a playbook, but this time we’re going to use group variables as
-well. Group variables are similar to the variables defined within your
-playbook in Lab #4 and Lab #5, but can be consumed by a group of hosts
-and not just the target of the play.
-
-This is particularly useful for things like adding a VLAN where you
-typically want to add the VLAN to multiple devices at a same time.
-
-Write it
-~~~~~~~~
-
-This lab is broken into steps.
-
-Step #1: Hosts File
-^^^^^^^^^^^^^^^^^^^
-
-Let’s start out with a different looking hosts file, this time with
-every one of your leaf switches in it. Take special note of ``[leafs]`` -
-we’ll be using this later.
-
-Open **Atom**, and create the file below:
-
-.. code-block:: ini
-
- [leafs]
- 192.168.0.14
- 192.168.0.15
- 192.168.0.16
- 192.168.0.17
-
-**Save** the file with the name ``hosts`` into the ``labfiles/lab6/lab`` folder found
-on your desktop.
-
-.. note:: You will notice that there are existing files and folders.
- Please don’t overwrite anything for this lab.
-
-Step #2: Playbook
-^^^^^^^^^^^^^^^^^
-
-The playbook is different from the other labs; we’re going to call a
-pre-created role that is provided by Arista on \ `Ansible
-Galaxy `__\ .
-
-Ansible Galaxy is a website where individuals and organizations can
-freely share their roles with each other. In this case, we’ll be using
-the ``arista.eos-bridging`` role to add VLANs.
-
-In **Atom**, create the file below:
-
-.. code-block:: ini
-
- - hosts: leafs
- connection: local
- roles:
- - arista.eos-bridging
-
-Save the file with the name ``vlan.yml`` into the ``labfiles/lab6/lab`` folder
-found on your desktop.
-
-Step #3: Group Variables
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-Now we’re really going to mix it up a bit. In previous labs, we
-used ``vars:`` and only actioned against a single host. This time around,
-we’re going to be using what are called group variables. Group variables
-are used for groups of hosts and not individuals.
-
-Remember how in the hosts file above we started with ``[leafs]``? If we
-create a group variable file named ``leafs.yml``, Ansible will automagically
-use it for the hosts listed below ``[leafs]``!
-
-Some more things to know about the file below:
-
-#. Notice that we’re using the same ``provider`` information as the other
- labs.
-#. ``eos_purge_vlans``: true tells the role to purge VLANs if they don’t
- exist in the variables file. This is useful for when you need to
- remove VLANs.
-#. ``vlans``, ``vlanid``, and ``name`` are what the ``arista.eos-bridging`` role take as an
- input. If you want to see every variable that the role can use, see
- the \ `readme for the
- role `__\ .
-
-Open **Atom** and create the file below:
-
-.. code-block:: yaml
-
- provider:
- host: "{{ inventory_hostname }}"
- username: arista
- password: {REPLACE_ARISTA}
- authorize: yes
- transport: eapi
- validate_certs: no
- eos_purge_vlans: true
- vlans:
- - vlanid: 1001
- name: default
-
-Save the file with the name ``leafs.yml`` into
-the ``labfiles/lab6/lab/group_vars`` folder found on your desktop.
-
-Step #4: Jenkins
-^^^^^^^^^^^^^^^^
-
-Go back to the ATD web landing page, and click on the **Jenkins** link:
-
-.. image:: images/day2_operations_1.png
- :align: center
-
-|
-
-Jenkins will open in a new tab. Click on **New Item** in the top left of
-the window.
-
-You will be greeted with a screen like the one below. Enter **vlan** as the
-name and select **Freestyle project**.
-
-.. image:: images/day2_operations_2.png
- :align: center
-
-Click **OK**.
-
-Now comes the fun part.
-
-Under **Source Code Management**, check **Git** and
-enter ``/home/aristagui/Desktop/labfiles/lab6/repo`` in the **Repository URL** field.
-
-.. note:: You will see a warning, ignore it for now.
-
-Scroll down to **Build Triggers**, and check **Poll SCM**. Poll SCM will poll for
-changes in Git and trigger a build from it.
-
-.. note:: This is a crucial aspect of continuous delivery - once a change is made, this is the part that deploys it.
-
-In the **Schedule** field, enter in:
-
-.. code-block:: html
-
- * * * * *
-
-If you are familiar with Linux cron, this is the same format - it’s
-telling Jenkins to check every 1 minute for a change.
-
-Scroll down to **Build** and click on **Add build step**. Select **Invoke Ansible Playbook**.
-
-For **Playbook path**, enter ``vlan.yml``. Select **File** or **host list** and enter
-in ``hosts``.
-
-Click **Save**.
-
-Step #5: Git
-^^^^^^^^^^^^
-
-We have to commit our changes into a Git repository for Jenkins to
-detect a change and run our playbook. Let’s go back to our **labvm** and run
-a few of quick commands for our initial commit.
-
-Open a **terminal** window and type:
-
-.. code-block:: bash
-
- cd ~/Desktop/labfiles/lab6/lab
-
-Now enter the following:
-
-.. code-block:: bash
-
- git init
- git add .
- git commit -m "Initial commit"
- git remote add origin /home/aristagui/Desktop/labfiles/lab6/repo
- git push origin master
-
-Run it
-~~~~~~
-
-Phew, that was a lot of setup! Fortunately. unlike previous labs we’re
-not going to be running this one by hand - that wouldn’t be CI/CD! We’re
-going to use Jenkins to run the playbook.
-
-At a high level, the workflow of the “Run it” part of the lab looks like
-this:
-
-.. image:: images/day2_operations_3.png
- :align: center
-
-Let’s start with Step 1.
-
-Step #1: Add a VLAN to the variables file
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Open the ``leafs.yml`` variables file in **Atom**.
-
-Add the following highlighted lines directly below the existing text:
-
-.. code-block:: yaml
-
- vlans:
- - vlanid: 1001
- name: default
- - vlanid: 2000
- name: production
- - vlanid: 3000
- name: development
-
-**Save** the file.
-
-Step #2: Add the file to the Git commit and push it
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Now, let’s add the file into Git commit and push it.We’re going to need
-to act somewhat quickly here if you want to see it run, so get ready!
-
-In a **terminal** window, type:
-
-.. code-block:: bash
-
- cd ~/Desktop/labfiles/lab6/lab
-
-Now enter the following:
-
-.. code-block:: bash
-
- git add .
- git commit -m "Added VLAN 2000 and 3000"
- git push origin master
-
-Quickly, open Jenkins!
-
-Step #3: Jenkins
-^^^^^^^^^^^^^^^^
-
-Depending on how fast you were able to switch to Jenkins, you will see
-different things. If you were quick, you will see this:
-
-.. image:: images/day2_operations_4.png
- :align: center
-
-See the **vlan** build running? No worries if you weren’t able to see it,
-Jenkins keeps a history - handy for when you want to see how things
-went.
-
-From the main screen, click on **vlan**:
-
-.. image:: images/day2_operations_5.png
- :align: center
-
-On the left hand side, click on the latest build which should be **#3**, but
-could be a higher or lower number.
-
-.. image:: images/day2_operations_6.png
- :align: center
-
-In the left hand menu, click **Console Output**. Scroll all the way to the
-bottom to see:
-
-.. code-block:: html
-
- PLAY RECAP
- ***************************************************************************
- 192.168.0.14 : ok=7 changed=2 unreachable=0 failed=0
- 192.168.0.15 : ok=7 changed=2 unreachable=0 failed=0
- 192.168.0.16 : ok=7 changed=2 unreachable=0 failed=0
- 192.168.0.17 : ok=7 changed=2 unreachable=0 failed=0
-
-Woot, sweet success!
-
-Step #4: Switches are configured
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Now, for the final step log into a couple of the leaf switches. Notice
-the VLANs are there. Pretty cool, huh?
-
-You can do this for 1 or 1000 switches using this playbook.
diff --git a/topologies/datacenter-latest/labguides/source/eapi.rst b/topologies/datacenter-latest/labguides/source/eapi.rst
deleted file mode 100644
index f1fed0a2b..000000000
--- a/topologies/datacenter-latest/labguides/source/eapi.rst
+++ /dev/null
@@ -1,181 +0,0 @@
-eAPI
-====
-
-This lab will walk you through using eAPI through Python. As mentioned
-in the previous lab and the presentation, eAPI works through JSON
-requests and responses. Fortunately, Python has a module that can handle
-that easily!
-
-If you haven’t used Python before, don’t worry! We will break down the
-first script to explain how it works, and what it’s doing.
-
-The scripts below leverage ``show`` commands, but you can easily modify them
-to issue configuration commands as well - just use what you learned in
-the previous lab to do that.
-
-.. note:: While Arista switches have a fully functional Python
- installation, please make sure to use the lab VM for the scripting part of this lab.
-
-Your very first script
-----------------------
-
-For the first script, we are going to issue ``show version`` to the switch,
-and then print the output.
-
-.. warning:: Please do not start writing this script until you get to the
- next section
-
-The script is the same as in the presentation you just saw:
-
-.. code-block:: python
-
- #!/usr/bin/python
-
- from jsonrpclib import Server
-
- switch = Server ("http://arista:{REPLACE_ARISTA}@192.168.0.14/command-api")
-
- response = switch.runCmds( 1, ["show version"] )
-
- print response
-
-Let’s break down the script into individual pieces:
-
-**#!/usr/bin/python** - this is called a shebang (no, we didn’t make this
-up!). A shebang instructs the operating system what to use to run the
-script. In this case, python!
-
-**from jsonrpclib import Server** - this imports the Python
-submodule ``Server`` from the module ``jsonrpclib``. A Python module extends the
-capability of Python by adding additional functionality. There are
-Python modules for pretty much everything!
-
-**switch = Server ( "http://arista:{REPLACE_ARISTA}@192.168.0.14/command-api")**
-this instantiates a variable - ``switch`` - and uses the ``Server`` submodule
-imported previously to create a connection to the switch. Note that it
-uses standard username/password formatting to make the connection.
-
-.. note:: You don’t have to use unencrypted HTTP in production, we also
- work with HTTPS (SSL). For this lab we use HTTP because we don’t want
- to deal with certificates.
-
-**response = switch.runCmds( 1, ["show version"] )** - instantiates a
-variable called ``response`` - that uses the previously
-created ``switch.runCmds`` variable to run commands. This is where it starts
-getting interesting.
-
-Once we create the ``switch`` connection, ``runCmds`` is the method provided by
-theswitch’s JSON-RPC interface which allows us to run commands against
-it. As a part of ``runCmds``, we also expect an API version (1) and the
-command itself, in this case ``show version``.
-
-If you rewind and go back to the Command API Explorer, you would see
-that in the **Request Viewer** pane:
-
-.. image:: images/eapi_1.png
- :align: center
-
-Note the ``method``, ``cmds``, and ``version`` keys!
-
-.. note:: The other values, such as format, timestamps, and id are
- defaults and do not need to be specified in your request.
-
-**print response** - finally, we print the ``response`` variable to screen.
-
-Write it
-~~~~~~~~
-
-Now that’s out of the way, it’s time to actually write the code! If you
-are still connected to **leaf1**, connect back to **devbox**.
-
-.. note:: To switch between your switch and the desktop, press **Ctrl + Alt +Shift**,
- click **arista** at the top right of the menu, click **Home**, and then
- double click **devbox**. To switch back, reverse the process.
-
-We have installed the very popular code editor called Atom on your lab
-machine. It can be launched with the green sphere like icon on the
-taskbar:
-
-.. image:: images/eapi_2.png
- :align: center
-
-Open **Atom** and write in the code above. Alternatively, if you’d just like
-to paste in the code, hit **Ctrl-Alt-Shift** and paste it into
-the **Clipboard** box. Then you can paste it right into Atom by right
-clicking on the screen and selecting paste:
-
-.. note:: To close the sidebar window, press **Ctrl-Alt-Shift** again.
-
-.. image:: images/eapi_3.png
- :align: center
-
-Once done, save the file to your desktop.
-
-Run it
-~~~~~~
-
-Now, let’s run it! On your lab box, click on the Terminal icon in the
-taskbar:
-
-.. image:: images/eapi_4.png
- :align: center
-
-A terminal window will open. Run your script by entering:
-
-.. code-block:: bash
-
- python ~/Desktop/your_script_name_here
-
-If this doesn’t work, make sure you replaced ``your_script_name_here`` with
-the filename of the script you saved above!
-
-.. note:: For the more Linux savvy folks, you might wonder why we’re
- calling Python directly instead of relying on the aforementioned
- shebang (``#!/usr/bin/python``) - if you want to make the file executable
- go for it!
-
-.. image:: images/eapi_5.png
- :align: center
-
-Woohoo - check out that JSON!
-
-.. note:: The “u” in front of every key/value indicates it’s unicode. When
- you actually use the key/value, this will not appear.
-
-Advanced
---------
-
-So that was cool and all, but if you want to take it one step further,
-check out the following script - this time we’re taking the output and
-doing something with it:
-
-.. code-block:: python
-
- #!/usr/bin/python
-
- from jsonrpclib import Server
-
- switch = Server ("http://arista:{REPLACE_ARISTA}@192.168.0.14/command-api")
-
- response = switch.runCmds( 1, ["show version"] )
-
- print "The switch model name is " + response[0]["modelName"] + " and it is running " + response[0]["version"]
-
-There are plenty of other possibilities here. Think about your day to
-day operations and things that you have to do frequently that take a lot
-of time, but are tedious and error prone. Any Python script that can be
-run against one switch can be run against many more. Adding a VLAN to
-every switch in your datacenter might just involve providing a list of
-switch hostnames or IP addresses, a VLAN ID, and a name and your script
-will do it all for you!
-
-Another script idea is tracing a MAC across your network until you find
-the physical port it’s connected to. The possibilities are only limited
-by your imagination. This is about as close
-to\ `zombo.com `__ as
-you can get in the networking world!
-
-Bonus
------
-
-Print the response of ``show version`` using `PrettyPrint `__\ .
diff --git a/topologies/datacenter-latest/labguides/source/images/EVPN_Class_Detailed_Topology_Image.png b/topologies/datacenter-latest/labguides/source/images/EVPN_Class_Detailed_Topology_Image.png
deleted file mode 100644
index 867d0d0dc..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/EVPN_Class_Detailed_Topology_Image.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/EVPN_Class_Quick_Topology_Image.png b/topologies/datacenter-latest/labguides/source/images/EVPN_Class_Quick_Topology_Image.png
deleted file mode 100644
index ffb228e8f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/EVPN_Class_Quick_Topology_Image.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/ansible_adhoc_and_simple_playbooks_1.png b/topologies/datacenter-latest/labguides/source/images/ansible_adhoc_and_simple_playbooks_1.png
deleted file mode 100644
index 577c319f7..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/ansible_adhoc_and_simple_playbooks_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/ansible_and_jinja_templates_1.png b/topologies/datacenter-latest/labguides/source/images/ansible_and_jinja_templates_1.png
deleted file mode 100644
index 52edf96fa..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/ansible_and_jinja_templates_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc01-1.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc01-1.png
deleted file mode 100644
index 2c9a0c84c..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc01-1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc01.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc01.png
deleted file mode 100644
index 7164ab35f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc01.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc02.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc02.png
deleted file mode 100644
index 5363a8a71..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc02.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc03.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc03.png
deleted file mode 100644
index fcaded943..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc03.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc04.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc04.png
deleted file mode 100644
index ea425c7d2..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc04.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc05.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc05.png
deleted file mode 100644
index 9e22bd4e0..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc05.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc06.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc06.png
deleted file mode 100644
index 88ebe8230..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc06.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc07.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc07.png
deleted file mode 100644
index 77457317c..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc07.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc08.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc08.png
deleted file mode 100644
index c79322b71..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc08.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc09.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc09.png
deleted file mode 100644
index 7356bcf8e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc09.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc10.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc10.png
deleted file mode 100644
index 7433e004f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc10.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc11.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc11.png
deleted file mode 100644
index 38e22fc31..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc11.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc12.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc12.png
deleted file mode 100644
index 38aaf0f2b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc12.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc13.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc13.png
deleted file mode 100644
index 521b8e212..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc13.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc14.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc14.png
deleted file mode 100644
index a56052e29..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc14.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc15.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc15.png
deleted file mode 100644
index 464c6265e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc15.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc16.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc16.png
deleted file mode 100644
index 60ccd6a26..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc16.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc17.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc17.png
deleted file mode 100644
index 03541395c..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc17.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc18.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc18.png
deleted file mode 100644
index e8b7f2a5b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc18.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc19.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc19.png
deleted file mode 100644
index e8126491f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_cc19.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet1.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet1.png
deleted file mode 100644
index afc6eb108..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet10.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet10.png
deleted file mode 100644
index a79d44882..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet10.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet11.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet11.png
deleted file mode 100644
index d9b6be699..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet11.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet12.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet12.png
deleted file mode 100644
index 2e1875e3d..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet12.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet2.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet2.png
deleted file mode 100644
index 8564b5ead..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet3.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet3.png
deleted file mode 100644
index 40677914c..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet3.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet4.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet4.png
deleted file mode 100644
index 616ec2416..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet4.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet5.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet5.png
deleted file mode 100644
index 71edc5c0a..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet5.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet6.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet6.png
deleted file mode 100644
index 0f8c2537f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet6.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet7.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet7.png
deleted file mode 100644
index 4b6665cee..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet7.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet8.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet8.png
deleted file mode 100644
index b1e6f836d..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet8.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet9.png b/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet9.png
deleted file mode 100644
index ae091609a..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/archive/cvp_configlet9.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/arista_logo.png b/topologies/datacenter-latest/labguides/source/images/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/arista_logo.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/commandapi_1.png b/topologies/datacenter-latest/labguides/source/images/commandapi_1.png
deleted file mode 100644
index bdf71b977..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/commandapi_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/commandapi_2.png b/topologies/datacenter-latest/labguides/source/images/commandapi_2.png
deleted file mode 100644
index 2d104a02d..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/commandapi_2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/commandapi_3.png b/topologies/datacenter-latest/labguides/source/images/commandapi_3.png
deleted file mode 100644
index e13a9fa51..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/commandapi_3.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/commandapi_4.png b/topologies/datacenter-latest/labguides/source/images/commandapi_4.png
deleted file mode 100644
index 39fe0f630..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/commandapi_4.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/commandapi_5.png b/topologies/datacenter-latest/labguides/source/images/commandapi_5.png
deleted file mode 100644
index 8e6cb7c94..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/commandapi_5.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/connecting_1.png b/topologies/datacenter-latest/labguides/source/images/connecting_1.png
deleted file mode 100644
index 1fdeedcd0..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/connecting_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-inventory-table.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-inventory-table.png
deleted file mode 100644
index c3985026e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-inventory-table.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-create-cc.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-create-cc.png
deleted file mode 100644
index e1b794790..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-create-cc.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-execute-confirm.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-execute-confirm.png
deleted file mode 100644
index 091410d2d..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-execute-confirm.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-execute.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-execute.png
deleted file mode 100644
index 23e3fcc6d..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-execute.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-review-approve.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-review-approve.png
deleted file mode 100644
index 10092f431..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-review-approve.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-task.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-task.png
deleted file mode 100644
index 7aff09bb6..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-cc-task.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-assign-validate-compare.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-assign-validate-compare.png
deleted file mode 100644
index 800ef6a55..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-assign-validate-compare.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-assign-validate.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-assign-validate.png
deleted file mode 100644
index 786c0d55e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-assign-validate.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-assign.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-assign.png
deleted file mode 100644
index bb2a44e25..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-assign.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-list.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-list.png
deleted file mode 100644
index 75ecd80ee..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-list.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-main-save.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-main-save.png
deleted file mode 100644
index 98a9b394f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-main-save.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-manage.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-manage.png
deleted file mode 100644
index da451aa78..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-manage.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-validate-compare.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-validate-compare.png
deleted file mode 100644
index 89743450b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-validate-compare.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-validate.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-validate.png
deleted file mode 100644
index 89743450b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-validate.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-validate2.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-validate2.png
deleted file mode 100644
index 3d14ba97a..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet-validate2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet.png
deleted file mode 100644
index e4e0e0166..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-configlet.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-edit-configlet.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-edit-configlet.png
deleted file mode 100644
index 39fcf224a..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-edit-configlet.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-running-config.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-running-config.png
deleted file mode 100644
index 8875f244e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-running-config.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-config-content.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-config-content.png
deleted file mode 100644
index 159d66c4b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-config-content.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-config-new.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-config-new.png
deleted file mode 100644
index 6543b3a4a..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-config-new.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-config.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-config.png
deleted file mode 100644
index 6437f3a8b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-config.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-ip-bgp-evpn-summary.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-ip-bgp-evpn-summary.png
deleted file mode 100644
index 1b4a08ad4..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-ip-bgp-evpn-summary.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-vxlan-info.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-vxlan-info.png
deleted file mode 100644
index 6c50c4369..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-snapshot-vxlan-info.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-before.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-before.png
deleted file mode 100644
index db7fe658f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-before.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-info-snapshot.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-info-snapshot.png
deleted file mode 100644
index 5f75509fb..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-info-snapshot.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-pre.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-pre.png
deleted file mode 100644
index 5aceb39fe..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-pre.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification-mac-table.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification-mac-table.png
deleted file mode 100644
index b1af3d6ad..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification-mac-table.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification-mac.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification-mac.png
deleted file mode 100644
index 00de2369f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification-mac.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification.png
deleted file mode 100644
index 92d70b71e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-vlan-after.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-vlan-after.png
deleted file mode 100644
index 5f3454a84..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-vlan-after.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-vni-after.png b/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-vni-after.png
deleted file mode 100644
index 5cb10deec..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l2vpn/leaf3-l2vpn-vxlan-vni-after.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-cc-page.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-cc-page.png
deleted file mode 100644
index faae9c0a7..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-cc-page.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-create-cc.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-create-cc.png
deleted file mode 100644
index ad48dfd12..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-create-cc.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-dashboard-done.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-dashboard-done.png
deleted file mode 100644
index a74e9ac2b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-dashboard-done.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-dashboard-setup.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-dashboard-setup.png
deleted file mode 100644
index 3c4701424..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-dashboard-setup.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-execute-cc.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-execute-cc.png
deleted file mode 100644
index 99a86e3ca..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-execute-cc.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-review-and-approve.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-review-and-approve.png
deleted file mode 100644
index fed5b1316..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/bgp-review-and-approve.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/create-new-dashboard.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/create-new-dashboard.png
deleted file mode 100644
index 859bca112..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/create-new-dashboard.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/l3ls_1.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/l3ls_1.png
deleted file mode 100644
index 0a04f4f5e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/l3ls_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-add-bgp-configlet.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-add-bgp-configlet.png
deleted file mode 100644
index 5eb5c7ca7..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-add-bgp-configlet.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-bgp-overview-post.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-bgp-overview-post.png
deleted file mode 100644
index dd15efdbb..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-bgp-overview-post.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-bgp-overview-pre.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-bgp-overview-pre.png
deleted file mode 100644
index c3df8c2cc..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-bgp-overview-pre.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-inventory-table.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-inventory-table.png
deleted file mode 100644
index 08419b275..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-inventory-table.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-manage-configlet.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-manage-configlet.png
deleted file mode 100644
index 212650cfb..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-manage-configlet.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-pending-task.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-pending-task.png
deleted file mode 100644
index ac5a4af85..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-pending-task.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-validate-bgp-configlet.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-validate-bgp-configlet.png
deleted file mode 100644
index 3b2df486b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/leaf4-validate-bgp-configlet.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/spine1-bgp-overview-post.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/spine1-bgp-overview-post.png
deleted file mode 100644
index 890c8ac13..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/spine1-bgp-overview-post.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/spine1-bgp-overview-pre.png b/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/spine1-bgp-overview-pre.png
deleted file mode 100644
index 2141e6a94..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-l3ls/spine1-bgp-overview-pre.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/DeviceComparison.png b/topologies/datacenter-latest/labguides/source/images/cvp-mlag/DeviceComparison.png
deleted file mode 100644
index e84146acf..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/DeviceComparison.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf3-mlag-overview-post.png b/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf3-mlag-overview-post.png
deleted file mode 100644
index 8fd7f4393..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf3-mlag-overview-post.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf3-mlag-overview-pre.png b/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf3-mlag-overview-pre.png
deleted file mode 100644
index 68c3445e5..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf3-mlag-overview-pre.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-manage-configlet.png b/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-manage-configlet.png
deleted file mode 100644
index 212650cfb..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-manage-configlet.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-mlag-cc-execute.png b/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-mlag-cc-execute.png
deleted file mode 100644
index 539f972ed..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-mlag-cc-execute.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-mlag-cc-review.png b/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-mlag-cc-review.png
deleted file mode 100644
index 80a2bf3a7..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-mlag-cc-review.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-mlag-cc.png b/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-mlag-cc.png
deleted file mode 100644
index 29e9b1a5f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-mlag-cc.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-mlag-create-cc.png b/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-mlag-create-cc.png
deleted file mode 100644
index fe0bea458..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/leaf4-mlag-create-cc.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf3-inventory-table.png b/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf3-inventory-table.png
deleted file mode 100644
index 0361a618b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf3-inventory-table.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf4-add-configlet.png b/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf4-add-configlet.png
deleted file mode 100644
index 4f337492d..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf4-add-configlet.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf4-pending-task.png b/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf4-pending-task.png
deleted file mode 100644
index ac5a4af85..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf4-pending-task.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf4-preview-action.png b/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf4-preview-action.png
deleted file mode 100644
index 015ae3352..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf4-preview-action.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf4-validate-and-compare.png b/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf4-validate-and-compare.png
deleted file mode 100644
index 6ccc237f4..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag-leaf4-validate-and-compare.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag_1.png b/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag_1.png
deleted file mode 100644
index ff515b338..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-mlag/mlag_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-inventory-table.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-inventory-table.png
deleted file mode 100644
index c3985026e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-inventory-table.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-before.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-before.png
deleted file mode 100644
index fa653601a..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-before.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-create-cc.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-create-cc.png
deleted file mode 100644
index e1b794790..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-create-cc.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-execute-confirm.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-execute-confirm.png
deleted file mode 100644
index ebe1e9780..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-execute-confirm.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-execute.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-execute.png
deleted file mode 100644
index fcf4e00b4..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-execute.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-review-approve.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-review-approve.png
deleted file mode 100644
index ff13fdfe8..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-review-approve.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-task.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-task.png
deleted file mode 100644
index c5f8e2f8c..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-cc-task.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-assign-validate-compare.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-assign-validate-compare.png
deleted file mode 100644
index 495c665b2..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-assign-validate-compare.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-assign-validate.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-assign-validate.png
deleted file mode 100644
index d123186d3..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-assign-validate.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-assign.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-assign.png
deleted file mode 100644
index ea8cfb1b5..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-assign.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-list.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-list.png
deleted file mode 100644
index 75ecd80ee..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-list.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-main-save.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-main-save.png
deleted file mode 100644
index 98a9b394f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-main-save.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-manage.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-manage.png
deleted file mode 100644
index da451aa78..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-manage.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-validate.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-validate.png
deleted file mode 100644
index 033946876..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet-validate.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet.png
deleted file mode 100644
index 20a406d9d..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-configlet.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-pre.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-pre.png
deleted file mode 100644
index bf3460252..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-pre.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-verification-mac-table.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-verification-mac-table.png
deleted file mode 100644
index 0167cb9fd..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-verification-mac-table.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-verification-mac.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-verification-mac.png
deleted file mode 100644
index 7aba6f96c..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-verification-mac.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-verification.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-verification.png
deleted file mode 100644
index 42c1f3317..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-verification.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-vlan-after.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-vlan-after.png
deleted file mode 100644
index bc0007eb1..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-vlan-after.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-vlan-before.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-vlan-before.png
deleted file mode 100644
index d6112d6a2..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-vlan-before.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-vni-after.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-vni-after.png
deleted file mode 100644
index 07b1bcb80..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-vni-after.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-vni-before.png b/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-vni-before.png
deleted file mode 100644
index d7a5690e6..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp-vxlan/leaf3-vxlan-vni-before.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc01.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc01.png
deleted file mode 100644
index 7500d071b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc01.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc02.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc02.png
deleted file mode 100644
index 5d9a14297..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc02.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc03.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc03.png
deleted file mode 100644
index 77d73ca1e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc03.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc04.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc04.png
deleted file mode 100644
index c1f2d09f4..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc04.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc05.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc05.png
deleted file mode 100644
index 79f26e6f0..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc05.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc06.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc06.png
deleted file mode 100644
index bd3ff7b5f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc06.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc07.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc07.png
deleted file mode 100644
index dbbe8c952..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc07.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc08.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc08.png
deleted file mode 100644
index caa001f69..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc08.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc09.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc09.png
deleted file mode 100644
index 9e0de2c82..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc09.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc10.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc10.png
deleted file mode 100644
index 85b25bab2..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc10.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc11.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc11.png
deleted file mode 100644
index 16f427e25..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc11.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc12.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc12.png
deleted file mode 100644
index 8cbed0141..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc12.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13-1.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13-1.png
deleted file mode 100644
index 6bc4169ec..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13-1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13-2.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13-2.png
deleted file mode 100644
index 2b3284ed1..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13-2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13-3.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13-3.png
deleted file mode 100644
index 73eb6d0ea..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13-3.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13-4.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13-4.png
deleted file mode 100644
index dd05ebbfc..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13-4.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13.png
deleted file mode 100644
index 644945eb5..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc13.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc14.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc14.png
deleted file mode 100644
index 5a000cdbb..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc14.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc15.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc15.png
deleted file mode 100644
index e59d6a3cf..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc15.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc16.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc16.png
deleted file mode 100644
index 61e53f520..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc16.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc17.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc17.png
deleted file mode 100644
index 611ceb1ef..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc17.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc18.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc18.png
deleted file mode 100644
index a06d0a13b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc18.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc19.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc19.png
deleted file mode 100644
index 042906854..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc19.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc20-1.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc20-1.png
deleted file mode 100644
index 6200767ba..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc20-1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc20.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc20.png
deleted file mode 100644
index 05f1d4559..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc20.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc21-2.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc21-2.png
deleted file mode 100644
index 8df21eacb..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc21-2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc21.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc21.png
deleted file mode 100644
index 001374193..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc21.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc22.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc22.png
deleted file mode 100644
index 633ab1edc..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc22.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc23-1.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc23-1.png
deleted file mode 100644
index 7a12c3243..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc23-1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc23-2.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc23-2.png
deleted file mode 100644
index 8e8f75a56..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc23-2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc23.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc23.png
deleted file mode 100644
index 3b730f4ff..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc23.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc24.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc24.png
deleted file mode 100644
index 25345ca22..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc24.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc25.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc25.png
deleted file mode 100644
index a50f9a630..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc25.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc26-1.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc26-1.png
deleted file mode 100644
index 0c51290c6..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc26-1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc26-2.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc26-2.png
deleted file mode 100644
index ac105bd72..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc26-2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc26.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc26.png
deleted file mode 100644
index c6becc0a3..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc26.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc27.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc27.png
deleted file mode 100644
index db513aaff..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc27.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc28.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc28.png
deleted file mode 100644
index ee0b157a3..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc28.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-1.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-1.png
deleted file mode 100644
index b6cddb84c..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-2.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-2.png
deleted file mode 100644
index da9bb9bb9..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-3.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-3.png
deleted file mode 100644
index 9a83923db..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-3.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-4.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-4.png
deleted file mode 100644
index 1881b9810..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-4.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-5.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-5.png
deleted file mode 100644
index 875240fcc..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-5.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-6.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-6.png
deleted file mode 100644
index f19f5da10..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-6.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-7.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-7.png
deleted file mode 100644
index efa5c72a6..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-7.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-8.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-8.png
deleted file mode 100644
index 6e8b0b2ab..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29-8.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29.png
deleted file mode 100644
index d935051e1..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc29.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc30-1.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc30-1.png
deleted file mode 100644
index fe62da252..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc30-1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc30-2.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc30-2.png
deleted file mode 100644
index f5dce90c0..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc30-2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc30.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc30.png
deleted file mode 100644
index 39bde9f1f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc30.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc31.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc31.png
deleted file mode 100644
index 755d0e3e0..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc31.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc32.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc32.png
deleted file mode 100644
index c79a660a2..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc32.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc33.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc33.png
deleted file mode 100644
index 82e616a96..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc33.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc34.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc34.png
deleted file mode 100644
index 59ca57ba1..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc34.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc35.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc35.png
deleted file mode 100644
index b343f4279..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc/cvp_cc35.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc01-1.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc01-1.png
deleted file mode 100644
index 2c9a0c84c..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc01-1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc01.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc01.png
deleted file mode 100644
index 7164ab35f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc01.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc02.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc02.png
deleted file mode 100644
index 5363a8a71..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc02.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc03.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc03.png
deleted file mode 100644
index fcaded943..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc03.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc04.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc04.png
deleted file mode 100644
index ea425c7d2..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc04.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc05.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc05.png
deleted file mode 100644
index 9e22bd4e0..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc05.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc06.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc06.png
deleted file mode 100644
index 88ebe8230..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc06.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc07.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc07.png
deleted file mode 100644
index 77457317c..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc07.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc08.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc08.png
deleted file mode 100644
index c79322b71..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc08.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc09.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc09.png
deleted file mode 100644
index 7356bcf8e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc09.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc10.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc10.png
deleted file mode 100644
index 7433e004f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc10.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc11.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc11.png
deleted file mode 100644
index 38e22fc31..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc11.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc12.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc12.png
deleted file mode 100644
index 38aaf0f2b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc12.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc13.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc13.png
deleted file mode 100644
index 521b8e212..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc13.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc14.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc14.png
deleted file mode 100644
index a56052e29..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc14.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc15.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc15.png
deleted file mode 100644
index 464c6265e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc15.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc16.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc16.png
deleted file mode 100644
index 60ccd6a26..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc16.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc17.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc17.png
deleted file mode 100644
index 03541395c..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc17.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc18.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc18.png
deleted file mode 100644
index e8b7f2a5b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc18.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_cc19.png b/topologies/datacenter-latest/labguides/source/images/cvp_cc19.png
deleted file mode 100644
index e8126491f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_cc19.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet1.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet1.png
deleted file mode 100644
index 1aec6deac..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet10.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet10.png
deleted file mode 100644
index 6c01b7f25..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet10.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet11.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet11.png
deleted file mode 100644
index 3ff951c24..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet11.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet12.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet12.png
deleted file mode 100644
index ff0dba79d..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet12.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet13.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet13.png
deleted file mode 100644
index c2b6cd4b2..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet13.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet2.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet2.png
deleted file mode 100644
index 8564b5ead..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet3.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet3.png
deleted file mode 100644
index fe7bcd138..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet3.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet4.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet4.png
deleted file mode 100644
index 7627b96bf..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet4.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet5.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet5.png
deleted file mode 100644
index 3339988fb..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet5.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet6-1.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet6-1.png
deleted file mode 100644
index 86472b8c2..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet6-1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet6-2.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet6-2.png
deleted file mode 100644
index d26d1e490..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet6-2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet6.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet6.png
deleted file mode 100644
index 71edc5c0a..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet6.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet7.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet7.png
deleted file mode 100644
index 9fb6282c6..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet7.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet8.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet8.png
deleted file mode 100644
index 5dbf56066..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet8.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet9.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet9.png
deleted file mode 100644
index fb02fc8e4..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet/cvp_configlet9.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet1.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet1.png
deleted file mode 100644
index afc6eb108..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet10.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet10.png
deleted file mode 100644
index a79d44882..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet10.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet11.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet11.png
deleted file mode 100644
index d9b6be699..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet11.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet12.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet12.png
deleted file mode 100644
index 2e1875e3d..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet12.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet2.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet2.png
deleted file mode 100644
index 8564b5ead..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet3.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet3.png
deleted file mode 100644
index 40677914c..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet3.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet4.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet4.png
deleted file mode 100644
index 616ec2416..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet4.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet5.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet5.png
deleted file mode 100644
index 71edc5c0a..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet5.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet6.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet6.png
deleted file mode 100644
index 0f8c2537f..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet6.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet7.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet7.png
deleted file mode 100644
index 4b6665cee..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet7.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet8.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet8.png
deleted file mode 100644
index b1e6f836d..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet8.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvp_configlet9.png b/topologies/datacenter-latest/labguides/source/images/cvp_configlet9.png
deleted file mode 100644
index ae091609a..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvp_configlet9.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/cvx_1.png b/topologies/datacenter-latest/labguides/source/images/cvx_1.png
deleted file mode 100644
index 6dc33e197..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/cvx_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/day2_operations_1.png b/topologies/datacenter-latest/labguides/source/images/day2_operations_1.png
deleted file mode 100644
index e31dffba6..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/day2_operations_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/day2_operations_2.png b/topologies/datacenter-latest/labguides/source/images/day2_operations_2.png
deleted file mode 100644
index f45c2c668..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/day2_operations_2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/day2_operations_3.png b/topologies/datacenter-latest/labguides/source/images/day2_operations_3.png
deleted file mode 100644
index c5f7c4731..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/day2_operations_3.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/day2_operations_4.png b/topologies/datacenter-latest/labguides/source/images/day2_operations_4.png
deleted file mode 100644
index e950b1de0..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/day2_operations_4.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/day2_operations_5.png b/topologies/datacenter-latest/labguides/source/images/day2_operations_5.png
deleted file mode 100644
index 2fc232e83..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/day2_operations_5.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/day2_operations_6.png b/topologies/datacenter-latest/labguides/source/images/day2_operations_6.png
deleted file mode 100644
index fc95bf8f3..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/day2_operations_6.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/eapi_1.png b/topologies/datacenter-latest/labguides/source/images/eapi_1.png
deleted file mode 100644
index 942dc7ecf..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/eapi_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/eapi_2.png b/topologies/datacenter-latest/labguides/source/images/eapi_2.png
deleted file mode 100644
index 264231347..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/eapi_2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/eapi_3.png b/topologies/datacenter-latest/labguides/source/images/eapi_3.png
deleted file mode 100644
index ce96a7dee..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/eapi_3.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/eapi_4.png b/topologies/datacenter-latest/labguides/source/images/eapi_4.png
deleted file mode 100644
index 105cfe351..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/eapi_4.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/eapi_5.png b/topologies/datacenter-latest/labguides/source/images/eapi_5.png
deleted file mode 100644
index bc12e666a..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/eapi_5.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/l2evpn.png b/topologies/datacenter-latest/labguides/source/images/l2evpn.png
deleted file mode 100644
index 85205667e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/l2evpn.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/l3evpn.png b/topologies/datacenter-latest/labguides/source/images/l3evpn.png
deleted file mode 100644
index 5e54c63e8..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/l3evpn.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/l3evpn_1.png b/topologies/datacenter-latest/labguides/source/images/l3evpn_1.png
deleted file mode 100644
index 970bfcb10..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/l3evpn_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/l3evpn_2.png b/topologies/datacenter-latest/labguides/source/images/l3evpn_2.png
deleted file mode 100644
index e0b07ed2b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/l3evpn_2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/l3evpn_3.png b/topologies/datacenter-latest/labguides/source/images/l3evpn_3.png
deleted file mode 100644
index d9056b653..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/l3evpn_3.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/l3evpn_4.png b/topologies/datacenter-latest/labguides/source/images/l3evpn_4.png
deleted file mode 100644
index 7c5d5fb75..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/l3evpn_4.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/l3evpn_5.png b/topologies/datacenter-latest/labguides/source/images/l3evpn_5.png
deleted file mode 100644
index e6a443c35..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/l3evpn_5.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/l3evpn_6.png b/topologies/datacenter-latest/labguides/source/images/l3evpn_6.png
deleted file mode 100644
index f9e052a28..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/l3evpn_6.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/l3evpn_7.png b/topologies/datacenter-latest/labguides/source/images/l3evpn_7.png
deleted file mode 100644
index 7e0e78233..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/l3evpn_7.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/l3ls_1.png b/topologies/datacenter-latest/labguides/source/images/l3ls_1.png
deleted file mode 100644
index 42a5010e7..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/l3ls_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/logo.jpg b/topologies/datacenter-latest/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/media-BGP.png b/topologies/datacenter-latest/labguides/source/images/media-BGP.png
deleted file mode 100644
index 21a00f46a..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/media-BGP.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/media-IP.Intro.png b/topologies/datacenter-latest/labguides/source/images/media-IP.Intro.png
deleted file mode 100644
index f5d7f447c..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/media-IP.Intro.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/media-OSPF.png b/topologies/datacenter-latest/labguides/source/images/media-OSPF.png
deleted file mode 100644
index 255a75dd4..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/media-OSPF.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/media-STP.&.SVI.png b/topologies/datacenter-latest/labguides/source/images/media-STP.&.SVI.png
deleted file mode 100644
index 867ed6827..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/media-STP.&.SVI.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/media-multicast.png b/topologies/datacenter-latest/labguides/source/images/media-multicast.png
deleted file mode 100644
index 42ac7f54d..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/media-multicast.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/mlag_1.png b/topologies/datacenter-latest/labguides/source/images/mlag_1.png
deleted file mode 100644
index ff515b338..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/mlag_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/modules/cvp-cvp.png b/topologies/datacenter-latest/labguides/source/images/modules/cvp-cvp.png
deleted file mode 100644
index d6b8ee9d2..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/modules/cvp-cvp.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/modules/cvp-l2evpn.png b/topologies/datacenter-latest/labguides/source/images/modules/cvp-l2evpn.png
deleted file mode 100644
index e8000715b..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/modules/cvp-l2evpn.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/modules/cvp-l3epvn.png b/topologies/datacenter-latest/labguides/source/images/modules/cvp-l3epvn.png
deleted file mode 100644
index 3a9a46883..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/modules/cvp-l3epvn.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/modules/cvp-l3ls.png b/topologies/datacenter-latest/labguides/source/images/modules/cvp-l3ls.png
deleted file mode 100644
index 3783a8ecd..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/modules/cvp-l3ls.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/modules/cvp-mlag.png b/topologies/datacenter-latest/labguides/source/images/modules/cvp-mlag.png
deleted file mode 100644
index 8859e4e23..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/modules/cvp-mlag.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/modules/cvp-vxlan.png b/topologies/datacenter-latest/labguides/source/images/modules/cvp-vxlan.png
deleted file mode 100644
index 3e1d33c3e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/modules/cvp-vxlan.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/modules/ucn-l2evpn.png b/topologies/datacenter-latest/labguides/source/images/modules/ucn-l2evpn.png
deleted file mode 100644
index 85205667e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/modules/ucn-l2evpn.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/modules/ucn-l3evpn.png b/topologies/datacenter-latest/labguides/source/images/modules/ucn-l3evpn.png
deleted file mode 100644
index 2db689711..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/modules/ucn-l3evpn.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/modules/ucn-l3ls.png b/topologies/datacenter-latest/labguides/source/images/modules/ucn-l3ls.png
deleted file mode 100644
index 42a5010e7..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/modules/ucn-l3ls.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/modules/ucn-mlag.png b/topologies/datacenter-latest/labguides/source/images/modules/ucn-mlag.png
deleted file mode 100644
index ff515b338..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/modules/ucn-mlag.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/modules/ucn-vxlan.png b/topologies/datacenter-latest/labguides/source/images/modules/ucn-vxlan.png
deleted file mode 100644
index 9b4d015e0..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/modules/ucn-vxlan.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/programmability_connecting_2.png b/topologies/datacenter-latest/labguides/source/images/programmability_connecting_2.png
deleted file mode 100644
index 41119b649..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/programmability_connecting_2.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/programmability_connecting_3.png b/topologies/datacenter-latest/labguides/source/images/programmability_connecting_3.png
deleted file mode 100644
index 1ff5c4a51..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/programmability_connecting_3.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/programmability_connecting_4.png b/topologies/datacenter-latest/labguides/source/images/programmability_connecting_4.png
deleted file mode 100644
index 6827542e0..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/programmability_connecting_4.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/programmability_connecting_5.png b/topologies/datacenter-latest/labguides/source/images/programmability_connecting_5.png
deleted file mode 100644
index 15c755a65..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/programmability_connecting_5.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/pyeapi_1.png b/topologies/datacenter-latest/labguides/source/images/pyeapi_1.png
deleted file mode 100644
index 3a3768c54..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/pyeapi_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/tshoot_intro_1.png b/topologies/datacenter-latest/labguides/source/images/tshoot_intro_1.png
deleted file mode 100644
index aae4a915e..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/tshoot_intro_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/images/vxlan_1.png b/topologies/datacenter-latest/labguides/source/images/vxlan_1.png
deleted file mode 100644
index 9b4d015e0..000000000
Binary files a/topologies/datacenter-latest/labguides/source/images/vxlan_1.png and /dev/null differ
diff --git a/topologies/datacenter-latest/labguides/source/index.rst b/topologies/datacenter-latest/labguides/source/index.rst
deleted file mode 100644
index 48a94760c..000000000
--- a/topologies/datacenter-latest/labguides/source/index.rst
+++ /dev/null
@@ -1,62 +0,0 @@
-Welcome to the Arista ATD documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
- mlag.rst
- l3ls.rst
- vxlan.rst
- l2evpn.rst
- l3evpn.rst
- cvx.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: CloudVision Portal
-
- cvp_configlet.rst
- cvp_cc.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Programmability
-
- programmability_connecting.rst
- command_api.rst
- eapi.rst
- pyeapi.rst
- ansible_adhoc_and_simple_playbooks.rst
- ansible_and_jinja_templates.rst
- day2_operations.rst
- rollback.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Broadcaster Training
-
- media-IP_Intro.rst
- media-STP_SVI.rst
- media-ospf.rst
- media-bgp.rst
- media-multicast.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Troubleshooting Training
-
- tshoot-intro.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: EVPN Class Guide
-
- EVPN_Class_Guide.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: EVPN Class Guide Answer Key
-
- EVPN_Class_Guide_Answer_Key.rst
\ No newline at end of file
diff --git a/topologies/datacenter-latest/labguides/source/l2evpn.rst b/topologies/datacenter-latest/labguides/source/l2evpn.rst
deleted file mode 100644
index d02854c54..000000000
--- a/topologies/datacenter-latest/labguides/source/l2evpn.rst
+++ /dev/null
@@ -1,164 +0,0 @@
-
-L2 EVPN
-=======
-
-.. image:: images/l2evpn.png
- :align: center
-
-.. note:: This lab exercise will not enable MLAG.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``l2evpn`` at the prompt. The script will configure the datacenter with the exception of **leaf3**
-
-2. On **leaf3**, configure ArBGP. **(Already configured and enabled on the switch)**
-
- .. code-block:: html
-
- configure
- service routing protocols model multi-agent
-
-3. Configure interfaces on **leaf3**.
-
- .. code-block:: html
-
- configure
- interface Port-Channel4
- description HOST2
- switchport mode access
- switchport access vlan 12
- !
- interface Ethernet1
- shutdown
- !
- interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.10/30
- !
- interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.26/30
- !
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
- !
- interface Ethernet5
- shutdown
- !
- interface Loopback0
- ip address 172.16.0.5/32
- !
- interface Loopback1
- ip address 3.3.3.3/32
- !
-
-4. Add Underlay BGP configurations on **Leaf3**
-
- .. code-block:: html
-
- configure
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
- !
-
-5. Verify Underlay
-
- 1. On each leaf and spine
-
- .. code-block:: html
-
- show ip bgp summary
- show ip route bgp
-
-6. On **leaf3**, build BGP Overlay
-
- .. code-block:: html
-
- configure
- router bgp 65103
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-7. Verify overlay
-
- 1. On **leaf1** and **leaf3**
-
- .. code-block:: html
-
- show bgp evpn summary
-
-8. Configure L2EVPN
-
- 1. On **leaf3**: add VLAN 12, and interface vxlan1
-
- .. code-block:: html
-
- configure
- vlan 12
- !
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1200
- !
-
- 2. On **leaf3**: add mac vrf
-
- .. code-block:: html
-
- configure
- router bgp 65103
- vlan 12
- rd 3.3.3.3:12
- route-target both 1:12
- redistribute learned
- !
-
-9. Verify VXLAN and L2EVPN
-
- 1. On **leaf1** and **leaf3** verify the IMET table
-
- .. code-block:: text
-
- show interface vxlan1
- show bgp evpn route-type imet
-
- 2. Log into **host1** and ping **host2**
-
- .. code-block:: text
-
- ping 172.16.112.202
-
- 3. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show bgp evpn route-type mac-ip
- show mac address-table dynamic
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/labguides/source/l3evpn.rst b/topologies/datacenter-latest/labguides/source/l3evpn.rst
deleted file mode 100644
index cb30ea29a..000000000
--- a/topologies/datacenter-latest/labguides/source/l3evpn.rst
+++ /dev/null
@@ -1,178 +0,0 @@
-L3 EVPN
-=======
-
-.. image:: images/l3evpn.png
- :align: center
-
-.. note:: This lab exercise will not enable MLAG.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``l3evpn`` at the prompt. The script will configure the datacenter with the exception of **leaf3**
-
-2. On **leaf3**, configure EOS to Mutli-Agent and add loopback0
-
- 1. **leaf3** enable the Multi-Agent **(Already configured and enabled on the switch)**
-
- .. code-block:: text
-
- configure
- service routing protocols model multi-agent
-
- 2. **leaf3** Underlay Interface configurations. Note the interfaces to **host2** change from previous L2EVPN lab
-
- .. code-block:: text
-
- configure
- interface Port-Channel5
- description HOST2
- switchport access vlan 2003
- no shutdown
- !
- interface Ethernet1
- shutdown
- !
- interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.10/30
- !
- interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.26/30
- !
- interface Ethernet4
- shutdown
- !
- interface Ethernet5
- description HOST2
- channel-group 5 mode active
- no shutdown
- !
- interface Loopback0
- ip address 172.16.0.5/32
- !
- interface Loopback1
- ip address 3.3.3.3/32
- !
-
- 3. On **leaf3** Add Underlay BGP configurations
-
- .. code-block:: text
-
- configure
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65001
- neighbor SPINE bfd
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
-
-3. Verify Underlay on **every** leaf and spine:
-
- .. code-block:: text
-
- show ip bgp summary
- show ip route bgp
-
-4. On **leaf3**, build BGP Overlay
-
- .. code-block:: text
-
- configure
- router bgp 65103
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-5. Verify overlay on **leaf1** and **leaf3**:
-
- .. code-block:: text
-
- show bgp evpn summary
-
-6. Configure L3EVPN
-
- 1. Configure the VRF
-
- .. code-block:: text
-
- configure
- vrf instance vrf1
- !
- ip routing vrf vrf1
- !
- router bgp 65103
- vrf vrf1
- rd 3.3.3.3:1001
- route-target import evpn 1:1001
- route-target export evpn 1:1001
- redistribute connected
- redistribute static
- !
-
- 2. Configure vrf interfaces (start in global configuration mode not BGP)
-
- .. code-block:: text
-
- interface Vlan2003
- mtu 9000
- no autostate
- vrf vrf1
- ip address virtual 172.16.116.1/24
- !
- interface Loopback901
- vrf vrf1
- ip address 200.200.200.2/32
- !
-
- 3. Map VRF to VNI
-
- .. code-block:: text
-
- configure
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vrf vrf1 vni 1001
- !
-
-7. Verify VRF on Leaf 1 and 3 (note route resolution over VNI and dynamic VLAN to VNI mapping)
-
- 1. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show interface vxlan1
-
- 2. Log into **host1** and ping **host2**
-
- .. code-block:: text
-
- ping 172.16.116.100
-
- 3. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show ip route vrf vrf1
- show mac address-table dynamic
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/labguides/source/l3ls.rst b/topologies/datacenter-latest/labguides/source/l3ls.rst
deleted file mode 100644
index 204d2a0eb..000000000
--- a/topologies/datacenter-latest/labguides/source/l3ls.rst
+++ /dev/null
@@ -1,206 +0,0 @@
-Layer 3 Leaf-Spine
-==================
-
-.. image:: images/l3ls_1.png
- :align: center
-
-.. note:: Did you know the “bgp” script is composed of Python code that
- uses the CloudVision Portal REST API to automate the provisioning of
- CVP Configlets. The configlets that are configured via the REST API
- are ``Spine1-BGP-Lab``, ``Spine2-BGP-Lab``, ``Leaf1-BGP-Lab``,
- ``Leaf2-BGP-Lab``, ``Leaf3-BGP-Lab``, ``Leaf4-BGP-Lab``.
-
-.. note:: The manually-entered commands below that are part of this lab are
- equivalent to ``Leaf4-BGP-Lab-Full``.
-
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``bgp`` at the prompt. The script will configure the datacenter with the exception of **Leaf4**.
-
-2. Configure SVI and VARP Virtual IP on the **Leaf4** switch using the following criteria
-
- 1. Create the vARP MAC Address in Global Configuration mode
-
- .. code-block:: text
-
- configure
- ip virtual-router mac-address 00:1c:73:00:00:34
-
- 2. Create the SVI and the Virtual Router Address
-
- .. code-block:: text
-
- configure
- interface vlan 34
- ip address 172.16.116.3/24
- ip virtual-router address 172.16.116.1
-
- 3. Validate the configuration issue the following commands
-
- .. code-block:: text
-
- show ip interface brief
- show ip virtual-router
-
-3. Configure BGP on the **Leaf4** switch using the following criteria
-
- 1. Based on the diagram, configure L3 interfaces to **Spine1/Spine2** and interface Loopback0
-
- .. code-block:: text
-
- configure
- interface ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.14/30
-
- interface ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.30/30
-
- interface loopback0
- ip address 172.16.0.6/32
-
- 2. Validate the configuration issue the following commands
-
- .. code-block:: text
-
- show ip interface brief
-
- 3. Based on the diagram, turn on BGP and configure the neighbor
- relationships on **Leaf4**. eBGP to **Spine1/Spine2** and iBGP to **Leaf3**.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- router-id 172.16.0.6
- neighbor 172.16.200.13 remote-as 65000
- neighbor 172.16.200.29 remote-as 65000
- neighbor 172.16.34.1 remote-as 65002
- neighbor 172.16.34.1 next-hop-self
-
- .. note:: Since ``neighbor 172.16.34.1 remote-as 65002`` specifies an iBGP
- peering relationship (because the ASN is the same as this switch
- ``65002``) the receiving switch may not have a route to networks more
- than 1 hop away, hence the switches should each advertise that they are
- the next hop via the ``neighbor 172.16.34.1 next-hop-self`` statement. While this scenario is
- only 2 iBGP peers, in a network fabric with several iBGP peers, a
- switch inside an AS (and not on an edge) may not have a route to a
- switch in any external AS.
-
- 4. Validate the configuration and neighbor establishment
-
- .. code-block:: text
-
- show active
- show ip bgp summary
-
-4. Configure networks on **Leaf4** to advertise to **Spine1/Spine2**
-
- 1. Add the following networks to BGP announcements on **Leaf4**:
-
- .. code-block:: text
-
- configure
- router bgp 65002
- network 172.16.0.6/32
- network 172.16.116.0/24
-
- 2. Verify all of the **Spines** and **Leafs** see these new network announcements
-
- .. code-block:: text
-
- show ip route
- show ip bgp
- show ip route bgp
-
- 3. Add in multiple paths by enabling ECMP, on **Leaf4**, jump into BGP configuration mode and add:
-
- .. code-block:: text
-
- configure
- router bgp 65002
- maximum-paths 4 ecmp 4
-
- 4. Check the BGP and IP route tables on each of the **Spines** and **Leafs**
-
- .. code-block:: text
-
- show ip bgp
- show ip route
- show ip route bgp
-
- .. note:: ECMP is now working - notice the new status code in the `show ip bgp` output
-
-5. Validate connectivity from **Host1** to **Host2**. From **Host1** execute:
-
- .. code-block:: text
-
- ping 172.16.116.100
- traceroute 172.16.116.100
-
- 1. Verify Leaf4's IP address is in the traceroute path, either interface 172.16.200.14 via spine1 or interface 172.16.200.30 via spine2.
- If traffic is hashing via leaf3's 172.16.200.10 or 172.16.200.26 interfaces perform the optional ``shutdown`` steps below on **Leaf3**
-
- .. code-block:: text
-
- configure
- router bgp 65002
- neighbor 172.16.200.9 shutdown
- neighbor 172.16.200.25 shutdown
-
- 2. Rerun traceroute/verification from **Host1** to **Host2** then revert the ``shutdown`` changes on **Leaf3**
-
- .. code-block:: text
-
- configure
- router bgp 65002
- no neighbor 172.16.200.9 shutdown
- no neighbor 172.16.200.25 shutdown
-
-6. Other BGP features to play with if you have time:
-
- 1. Route Redistribution: For fun do a ``watch 1 diff show ip route | begin
- Gateway`` on **Leaf1** & **Leaf2** and let those run while you execute the
- command ``redistribute connected`` below on **Leaf3**. You will see new routes being
- injected into the route tables of **Leaf1** & **Leaf2**.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- redistribute connected
-
- 2. Route Maps:
-
- .. code-block:: text
-
- configure
- route-map etc
-
- 3. BFD: BFD is a low-overhead, protocol-independent mechanism which adjacent
- systems can use instead for faster detection of faults in the path between
- them. BFD is a simple mechanism which detects the liveness of a connection
- between adjacent systems, allowing it to quickly detect failure of any
- element in the connection.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- neighbor bfd
-
-7. Troubleshooting BGP:
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip bgp neighbor x.x.x.x
- show run section bgp
- show log
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/labguides/source/media-IP_Intro.rst b/topologies/datacenter-latest/labguides/source/media-IP_Intro.rst
deleted file mode 100644
index 9fd7c80e5..000000000
--- a/topologies/datacenter-latest/labguides/source/media-IP_Intro.rst
+++ /dev/null
@@ -1,155 +0,0 @@
-Media Intro to IP Lab
-=====================
-
-.. image:: images/media-IP.Intro.png
- :align: center
-
-.. note:: An IP address serves two principal functions. It identifies the host, or more specifically its network interface, and it provides the location of the host in the network, and thus the capability of establishing a path to that host. Its role has been characterized as follows: "A name indicates what we seek. An address indicates where it is. A route indicates how to get there."
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section.
- 3. Type ``media-intro`` at this prompt and wait for the process to run.
- 4. The script will configure the topology with the exception of **Leaf 4**. The main task is to configure the remaining device so there is connectivity between the two hosts
-
-
-2. Connect to **Leaf 4** from the menu:
-
- 1. Connect to ``Leaf 4`` by selecting option ``6`` from the ``Device SSH`` menu (Type ``ssh`` at the prompt). Once in the switch we are in the *Privileged EXEC* mode, denoted by the **#** preceding the device name. This is similar to a admin user, in this mode can configure and view information on the switch. To configure devices we will need to go into the global configuration mode by typing *configure* at the prompt, in *Privileged EXEC (enable)* mode. As you do the labs you will see this *configure* command being used to ensure that you are in the *config* mode. One prompt that you may come across is the **>** this denotes that you are in EXEC mode, where you can do basic tests and view system information. EXEC mode is the default mode for all switches.
-
-
-3. Configure the proper ip address on the interfaces along with the appropriate static routes to ensure there is end-to-end connectivity for the two end hosts to reach each other. All interfaces in this lab are designed as point-to-point connections
-
- 1. On **Leaf 4** assign the appropriate ip address and ensure the adjacent devices can be reached
-
- .. code-block:: text
-
- configure
- !
- interface Ethernet 3
- no switchport
- ip address 10.127.34.4/24
- !
- interface Ethernet 4
- no switchport
- ip address 172.16.46.4/24
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#interface ethernet 3
- leaf4(config-if-Et3)#no switchport
- leaf4(config-if-Et3)#ip address 10.127.34.4/24
- leaf4(config-if-Et3)#interface ethernet 4
- leaf4(config-if-Et4)#no switchport
- leaf4(config-if-Et4)#ip address 172.16.46.4/24
-
-
- .. note::
- It is worth mentioning by default all interfaces on an Arista switch is set to be a switchport (Layer 2 interface). We need to allow it to be a routed interface and thus ``no switchport`` is added (turns into Layer 3 interface). Once the IP address has been added to the appropriate interface, ensure reachability to the adjacent device by leveraging the ``ping`` command on **Leaf 4**
-
- .. code-block:: text
-
-
- ping 10.127.34.3
- ping 172.16.46.6
-
- **Example:**
-
- .. code-block:: text
-
- leaf4# ping 10.127.34.3
- PING 10.127.34.3 (10.127.34.3) 72(100) bytes of data.
- 80 bytes from 10.127.34.3: icmp_seq=1 ttl=64 time=17.0 ms
- 80 bytes from 10.127.34.3: icmp_seq=2 ttl=64 time=18.8 ms
- 80 bytes from 10.127.34.3: icmp_seq=3 ttl=64 time=14.9 ms
- 80 bytes from 10.127.34.3: icmp_seq=4 ttl=64 time=12.6 ms
-
- --- 10.127.34.3 ping statistics ---
- 5 packets transmitted, 4 received, 20% packet loss, time 62ms
- rtt min/avg/max/mdev = 12.605/15.868/18.844/2.332 ms, pipe 2, ipg/ewma 15.602/16.435 ms
-
- leaf4# ping 172.16.46.6
- PING 172.16.46.6 (172.16.46.6) 72(100) bytes of data.
- 80 bytes from 172.16.46.6: icmp_seq=1 ttl=64 time=38.4 ms
- 80 bytes from 172.16.46.6: icmp_seq=2 ttl=64 time=32.1 ms
- 80 bytes from 172.16.46.6: icmp_seq=3 ttl=64 time=28.0 ms
- 80 bytes from 172.16.46.6: icmp_seq=4 ttl=64 time=31.6 ms
- 80 bytes from 172.16.46.6: icmp_seq=5 ttl=64 time=12.7 ms
-
- --- 172.16.46.6 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 68ms
- rtt min/avg/max/mdev = 12.797/28.603/38.419/8.584 ms, pipe 4, ipg/ewma 17.163/32.954 ms
-
-
- At this point if the adjacent devices can be reached, you have configured the IP address correctly
-
-
- 2. Once the address has been assigned to the appropriate interfaces, we can enable the routing as well as add the appropriate static routes on **Leaf 4** to allow reachability between the two host end-points.
-
-
- .. code-block:: text
-
- configure
- !
- ip routing
- !
- ip route 172.16.15.0/24 10.127.34.3
- !
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#configure
- leaf4(config)#ip routing
- leaf4(config)#ip route 172.16.15.0/24 10.127.34.3
-
- .. note::
- We added the entire prefix for the static route but we could have also put the specific host address. Normally your internal security policies will dictate which approach to take
-
-
-4. Validate end-to-end connectivity from the hosts once IP addresses and static routes have been configured from the previous steps
-
- 1. Log into **Host 2** and verify there is reachability to **Host 1**
-
- .. code-block:: text
-
- ping 172.16.15.5
-
- **Example:**
-
- .. code-block:: text
-
- host2# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=60 time=307 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=60 time=300 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=60 time=296 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=60 time=293 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=60 time=289 ms
-
- --- 172.16.15.5 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 43ms
- rtt min/avg/max/mdev = 289.129/297.583/307.932/6.497 ms, pipe 5, ipg/ewma 10.984/302.312 ms
-
- If all the IP address and routing settings have been completed correctly, then you should have reachability
-
-.. admonition:: **Test your knowledge:**
-
- When **Leaf 4** receives the incoming icmp packet from **Host 2**, what would the process be for the switch to determine the path for the packet to be fowarded?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show ip route
- - show ip arp
- - show ip interface brief
- - show interface status
diff --git a/topologies/datacenter-latest/labguides/source/media-STP_SVI.rst b/topologies/datacenter-latest/labguides/source/media-STP_SVI.rst
deleted file mode 100644
index 00ba411d0..000000000
--- a/topologies/datacenter-latest/labguides/source/media-STP_SVI.rst
+++ /dev/null
@@ -1,275 +0,0 @@
-Media STP and SVI Lab
-======================
-
-.. image:: images/media-STP.&.SVI.png
- :align: center
-
-.. note:: The Spanning-Tree protocol (STP) was initially invented in 1985 and is one of the oldest networking protocols being used in Layer 2 network topologies today. STP is classified as a network protocol that builds loop-free logical topology for Ethernet (initially bridged) networks.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` to go back).
- 3. Type ``media-vlan`` at the prompt. The script will configure the topology with the exception of **Leaf 4**.
-
- 4. On **Spine 2**, verify spanning-tree operation with the topology, you should see **Spine 1** as the root bridge by viewing the Bridge ID and the interfaces designated as a Root port. Root ports points towards the root bridge, which in this case would be Spine 1. When you run the following command which interfaces would you expect to be your root port(s)?
-
- .. code-block:: text
-
- show spanning-tree
-
-
- **Example:**
-
- .. code-block:: text
-
- spine2#show spanning-tree
- MST0
- Spanning tree enabled protocol mstp
- Root ID Priority 4096
- Address 2cc2.6056.df93
- Cost 0 (Ext) 2000 (Int)
- Port 1 (Ethernet1)
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Bridge ID Priority 8192 (priority 8192 sys-id-ext 0)
- Address 2cc2.6094.d76c
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Interface Role State Cost Prio.Nbr Type
- ---------------- ---------- ---------- --------- -------- --------------------
- Et1 root forwarding 2000 128.1 P2p
- Et2 designated forwarding 2000 128.2 P2p
- Et5 designated forwarding 2000 128.5 P2p
- Et6 designated forwarding 2000 128.6 P2p Edge
- Et7 designated forwarding 2000 128.7 P2p Edge
-
-2. Configure the VLAN and interface types on **Leaf 4** to allow the spanning-tree protocol to operate and have reachability for **Host 2**.
-
-
- 1. On **Leaf 4** create the Layer 2 instance of vlan 100. Creating this vlan will add itself to the spanning-tree process.
-
- .. code-block:: text
-
- configure
- vlan 100
- name v100
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#vlan 100
- leaf4(config-vlan-100)#name v100
-
- We can verify its creation with the following command. This command can also show if there are any physical interfaces associated to the vlan.
-
- .. code-block:: text
-
- show vlan
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-vlan-100)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et2, Et3, Et4, Et6, Et7, Et8
- Et9, Et10, Et11, Et12, Et13
- Et14, Et15, Et16, Et17, Et18
- Et19, Et20, Et21, Et22, Et23
- Et24, Et25, Et26, Et27, Et28
- Et29, Et30, Et31, Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 100 v100 active
-
-
-
- 2. Once the vlan is created, we can define on the uplink ports on **Leaf 4** as trunk links, as well allow vlan 100 to pass on the trunk.
-
- .. code-block:: text
-
- configure
- interface Ethernet2
- switchport trunk allowed vlan 100
- switchport mode trunk
- !
- interface Ethernet3
- switchport trunk allowed vlan 100
- switchport mode trunk
- !
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-vlan-100)#configure
- leaf4(config)#interface ethernet 2-3
- leaf4(config-if-Et2-3)#switchport mode trunk
- leaf4(config-if-Et2-3)#switchport trunk allowed vlan 100
-
- .. note::
- By default once an interface is configured as a trunk, all vlans will be associated to it. It is good security practice to associate the specific vlans to pass on the trunk links and take part in the spanning-tree process
-
- Once the interface configuration has been completed for the trunk links, you can verify the spanning-tree topology and see the root bridge is **Spine 1** and the connection to **Spine 2** has been blocked for loop prevention
-
- .. code-block:: text
-
- show spanning-tree
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et2-3)#show spanning-tree
- MST0
- Spanning tree enabled protocol mstp
- Root ID Priority 4096
- Address 2cc2.6056.df93
- Cost 0 (Ext) 2000 (Int)
- Port 2 (Ethernet2)
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Bridge ID Priority 32768 (priority 32768 sys-id-ext 0)
- Address 2cc2.60b5.96d9
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Interface Role State Cost Prio.Nbr Type
- ---------------- ---------- ---------- --------- -------- --------------------
- Et2 root forwarding 2000 128.2 P2p
- Et3 alternate discarding 2000 128.3 P2p
- Et4 designated forwarding 2000 128.4 P2p Edge
- Et6 designated forwarding 2000 128.6 P2p Edge
- Et7 designated forwarding 2000 128.7 P2p Edge
- Et8 designated forwarding 2000 128.8 P2p Edge
- Et9 designated forwarding 2000 128.9 P2p Edge
- Et10 designated forwarding 2000 128.10 P2p Edge
-
-
- 3. Once the Layer 2 topology has been setup, we can configure the connection to our host as an access port to allow **Host 2** to pass traffic onto the topology
-
- .. code-block:: text
-
- configure
- interface Ethernet4
- switchport access vlan 100
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et2-3)#configure
- leaf4(config)#interface ethernet 4
- leaf4(config-if-Et4)#switchport access vlan 100
-
-3. Validate end-to-end connectivity after configuring the Layer 2 interfaces. Once the spanning tree has converged for the topology we can observe the results.
-
- 1. Validate the vlan port association and spanning-tree topology is correct
-
- .. code-block:: text
-
- show vlan
- show spanning-tree
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et6, Et7, Et8, Et9, Et10, Et11
- Et12, Et13, Et14, Et15, Et16
- Et17, Et18, Et19, Et20, Et21
- Et22, Et23, Et24, Et25, Et26
- Et27, Et28, Et29, Et30, Et31
- Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 100 v100 active Et2, Et3, Et4
-
-
- leaf4(config-if-Et3)#show spanning-tree
- MST0
- Spanning tree enabled protocol mstp
- Root ID Priority 4096
- Address 2cc2.6056.df93
- Cost 0 (Ext) 2000 (Int)
- Port 2 (Ethernet2)
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Bridge ID Priority 32768 (priority 32768 sys-id-ext 0)
- Address 2cc2.60b5.96d9
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Interface Role State Cost Prio.Nbr Type
- ---------------- ---------- ---------- --------- -------- --------------------
- Et2 root forwarding 2000 128.2 P2p
- Et3 alternate discarding 2000 128.3 P2p
- Et4 designated forwarding 2000 128.4 P2p Edge
- Et6 designated forwarding 2000 128.6 P2p Edge
- Et7 designated forwarding 2000 128.7 P2p Edge
- Et8 designated forwarding 2000 128.8 P2p Edge
- Et9 designated forwarding 2000 128.9 P2p Edge
- Et10 designated forwarding 2000 128.10 P2p Edge
-
-
- You should see the root bridge is towards **Spine 1** and vlan 100 should be associated to interfaces eth2, eth3 and eth4
-
- 2. Log into **Host 2** and verify you can reach the SVI for vlan 100 as well as reachability to **Host 1**
-
- .. code-block:: text
-
- SVI (Vlan 100 gateway on Spine 1)
- ping 172.16.46.4
-
- host2# ping 172.16.46.4
- PING 172.16.46.4 (172.16.46.4) 72(100) bytes of data.
- 80 bytes from 172.16.46.4: icmp_seq=1 ttl=64 time=35.3 ms
- 80 bytes from 172.16.46.4: icmp_seq=2 ttl=64 time=51.3 ms
- 80 bytes from 172.16.46.4: icmp_seq=3 ttl=64 time=49.9 ms
- 80 bytes from 172.16.46.4: icmp_seq=4 ttl=64 time=48.9 ms
- 80 bytes from 172.16.46.4: icmp_seq=5 ttl=64 time=35.6 ms
-
- --- 172.16.46.4 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 73ms
- rtt min/avg/max/mdev = 35.313/44.256/51.377/7.192 ms, pipe 4, ipg/ewma 18.302/39.598 ms
-
-
- Host 1
- ping 172.16.15.5
-
- host2# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- From 172.16.46.4: icmp_seq=1 Redirect Host(New nexthop: 172.16.15.5)
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=63 time=237 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=63 time=233 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=63 time=250 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=63 time=257 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=63 time=257 ms
-
- --- 172.16.15.5 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 43ms
- rtt min/avg/max/mdev = 233.030/247.345/257.699/10.206 ms, pipe 5, ipg/ewma 10.926/243.255 ms
-
- If all the SVI and STP settings have been completed correctly you should be able to ping the remote host as well as the SVI interface itself configured on **Spine 1** which is also the root bridge for this topology.
-
-
- .. admonition:: **Test your knowledge:**
-
- When you are verifying the spanning-tree topology from **Leaf 4**, what are some of the reasons for the root bridge selection?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show vlan
- - show interfaces trunk
- - show interfaces status
- - show spanning-tree
diff --git a/topologies/datacenter-latest/labguides/source/media-bgp.rst b/topologies/datacenter-latest/labguides/source/media-bgp.rst
deleted file mode 100644
index f13ff3d25..000000000
--- a/topologies/datacenter-latest/labguides/source/media-bgp.rst
+++ /dev/null
@@ -1,314 +0,0 @@
-Media BGP Lab
-=============
-
-.. image:: images/media-BGP.png
- :align: center
-
-.. note:: The Border Gateway Protocol (BGP) makes routing decisions based on paths (protocol is classified as a path vector) and is widely used in the backbone of the internet to redistribute information
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` to go back).
- 3. Type ``media-bgp`` at the prompt. The script will configure the topology with the exception of **Leaf 4**.
-
- 4. On **spine2**, verify the BGP operation (it should not be operating correctly) and current routing table and command outputs similar to the outputs below.
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip route
-
-
- **Example:**
-
- .. code-block:: text
-
- spine2#show ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.127.255.3, local AS number 2
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.127.23.2 4 1 7 6 0 0 00:02:03 Estab 2 2
- 10.127.34.4 4 2 0 0 0 0 00:02:10 Active
-
-
-
-
- spine2#show ip bgp
- BGP routing table information for VRF default
- Router identifier 10.127.255.3, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.255.1/32 10.127.23.2 0 100 0 1 i
- * > 172.16.15.0/24 10.127.23.2 0 100 0 1 i
-
-
-
- spine2#show ip route
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- C 10.127.23.0/24 is directly connected, Ethernet1
- C 10.127.34.0/24 is directly connected, Ethernet5
- B E 10.127.255.1/32 [200/0] via 10.127.23.2, Ethernet1
- C 10.127.255.3/32 is directly connected, Loopback0
- B E 172.16.15.0/24 [200/0] via 10.127.23.2, Ethernet1
- C 192.168.0.0/24 is directly connected, Management1
-
- All the routing entries with a preceding "B" was learned by the BGP protocol on Spine2.
-
-2. Configure Loopback 0 on **Leaf 4** with the following commands
-
- 1. Under Loopback 0 interface assign the ip. This will be used to define the Router-id in the next step. Loopbacks are used as as router-id addresses, as they are an always available interface that can be advertised reliably.
-
- .. code-block:: text
-
- configure
- interface loopback 0
- ip address 10.127.255.4/32
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#interface loopback 0
- leaf4(config-if-Lo0)#ip address 10.127.255.4/32
-
-
-3. Configure BGP on the **Leaf4** switch using the following criteria
-
- 1. Configure BGP router process (also the autonomous system number, ASN) on **Leaf4**. **Leaf 4** will be configured to communicate to adjacent BGP speakers (**Spine2** in this case). The router-id is configured so it can be consistent and not randomly chosen (normally the peering interface if not specified).
-
- .. code-block:: text
-
- configure
- router bgp 2
- router-id 10.127.255.4
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#configure
- leaf4(config)#router bgp 2
- leaf4(config-router-bgp)#router-id 10.127.255.4
-
- .. note::
- The process number for BGP corresponds to the autonomous-system number (ASN) the router is associated with and is globally significant. These values should not be chosen randomly and should be part of a larger design scheme for the environment.
-
- 2. BGP neighbours are explicitly defined so only the desired neighbors create a session with. A TCP connection is established between the two peers (using port 179) in which the routing information can be securely transported between the peers.
-
- .. code-block:: text
-
- configure
- router bgp 2
- neighbor 10.127.34.3 remote-as 2
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#configure
- leaf4(config)#router bgp 2
- leaf4(config-router-bgp)#neighbor 10.127.34.3 remote-as 2
-
- The BGP session we are setting up on **Leaf4** to **Spine2** is considered a point-to-point iBGP (Internal BGP) connection because they are a part of the same autonomous-system (AS).
-
- .. note::
- Although there are mechanisms to allow all incoming BGP sessions to be established, these are typically corner cases in which you will use that approach. It is best common practice to specify your desired neighbor to establish a session with along with a md5 hash password for an extra level of security.
-
- 3. By default, the BGP protocol will only re-advertise eBGP (external) prefixes it has leaned to its other iBGP / eBGP peers. We will need to tell the BGP process what to advertise by various methods. In this lab we want the router to advertise its connected (vlan) prefix
-
- .. code-block:: text
-
- configure
- router bgp 2
- redistribute connected
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#router bgp 2
- leaf4(config-router-bgp)#redistribute connected
-
- Once the ``redistribute connected`` command has been added, we can actually see the prefixes our switch (Leaf4) is receiving and advertising
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp neighbors 10.127.34.3 advertised-routes
- show ip bgp neighbors 10.127.34.3 received-routes
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-router-bgp)#show ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.127.34.3 4 2 22 22 0 0 00:10:37 Estab 2 2
-
-
-
- leaf4(config-router-bgp)#show ip bgp neighbors 10.127.34.3 advertised-routes
- BGP routing table information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.34.0/24 10.127.34.4 - 100 - i
- * > 10.127.255.4/32 10.127.34.4 - 100 - i
- * > 172.16.46.0/24 10.127.34.4 - 100 - i
- * > 192.168.0.0/24 10.127.34.4 - 100 - i
-
-
-
- leaf4(config-router-bgp)#show ip bgp neighbors 10.127.34.3 received-routes
- BGP routing table information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.255.1/32 10.127.34.3 - 100 - 1 i
- * > 172.16.15.0/24 10.127.34.3 - 100 - 1 i
-
-4. We will now validate the end-to-end connectivity once BGP neighbor relationship has been established
-
- 1. Confirm the BGP neighbor relationship has been established and the routing table on **Leaf4** has been populated with the appropriate entries as shown on the outputs below
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip route
- show ip route bgp
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-router-bgp)#show ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.127.34.3 4 2 22 22 0 0 00:10:37 Estab 2 2
-
-
- leaf4(config-router-bgp)#show ip bgp
- BGP routing table information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.34.0/24 - 1 0 - i
- * > 10.127.255.1/32 10.127.34.3 0 100 0 1 i
- * > 10.127.255.4/32 - 0 0 - i
- * > 172.16.15.0/24 10.127.34.3 0 100 0 1 i
- * > 172.16.46.0/24 - 1 0 - i
- * > 192.168.0.0/24 - 1 0 - i
-
-
-
- leaf4(config-router-bgp)#show ip route | Begin Gateway
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- C 10.127.34.0/24 is directly connected, Ethernet3
- B I 10.127.255.1/32 [200/0] via 10.127.34.3, Ethernet3
- C 10.127.255.4/32 is directly connected, Loopback
- B I 172.16.15.0/24 [200/0] via 10.127.34.3, Ethernet3
- C 172.16.46.0/24 is directly connected, Ethernet4
- C 192.168.0.0/24 is directly connected, Management1
-
-
-
- leaf4(config-router-bgp)#show ip route bgp
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- B I 10.127.255.1/32 [200/0] via 10.127.34.3, Ethernet3
- B I 172.16.15.0/24 [200/0] via 10.127.34.3, Ethernet3
-
-
- The routing table output should list all routing entries to ensure reachability between the 2 hosts
-
-
- 2. To confirm connectivity, log into **Host 2** and execute a ping command to **Host 1**
-
- .. code-block:: text
-
- ping 172.16.15.5
-
- **Example:**
-
- .. code-block:: text
-
- host2(config)# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=60 time=436 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=60 time=433 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=60 time=429 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=60 time=425 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=60 time=422 ms
-
- If all the BGP configuration have been applied successfully and the routing table on **Leaf 4** is correct then **Host 1** should be reachable from **Host 2**.
-
-.. admonition:: **Test your knowledge:**
-
- When **Leaf 4** receives the incoming routes from **Spine 2**, why can we not reach all the infrastructure IP addresses?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show ip route
- - show ip route bgp
- - show ip bgp summary
- - show ip bgp
- - show ip bgp neighbors advertised-routes
- - show ip bgp neighbors received-routes
diff --git a/topologies/datacenter-latest/labguides/source/media-multicast.rst b/topologies/datacenter-latest/labguides/source/media-multicast.rst
deleted file mode 100644
index 653eb6f46..000000000
--- a/topologies/datacenter-latest/labguides/source/media-multicast.rst
+++ /dev/null
@@ -1,412 +0,0 @@
-Advanced Networking for Media Engineers
-=======================================
-
-.. image:: images/media-multicast.png
- :align: center
-
-.. note:: To simplify the training using our multicast topology, this exercise will disable Leaf2 and Leaf3. This lab is a continuation of the concepts from the previous Broadcast Engineer Labs
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` to go back).
- 3. Type ``media-mcast`` at the prompt. The script will pre-configure the topology with the exception of Leaf4 and Hosts 1 & 2.
-
-2. Create Vlan 46 & SVI for host access vlan on **Leaf 4**.
- 1. On **Leaf 4** we will create an vlan and a SVI
-
- .. code-block:: text
-
- vlan 46
- !
- interface Vlan46
- no autostate
- ip address 172.16.46.4/24
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#vlan 46
- leaf4(config)#interface vlan 46
- leaf4(config-if-Vl46)#no autostate
- leaf4(config-if-Vl46)#ip address 172.16.46.4/24
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et6, Et7, Et8, Et9, Et10, Et11
- Et12, Et13, Et14, Et15, Et16
- Et17, Et18, Et19, Et20, Et21
- Et22, Et23, Et24, Et25, Et26
- Et27, Et28, Et29, Et30, Et31
- Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 46 VLAN0046 active Cpu
-
-
- leaf4(config)#show ip int brief
- Interface IP Address Status Protocol MTU
- Management1 192.168.0.17/24 down notpresent 1500
- Vlan46 172.16.46.4/24 up up 1500
-
-
-3. Create connectivity for **Host 2** on **Leaf 4**
- 1. On **Leaf 4**, interface *Ethernet 4* is attached to **Host 2**, associate the port as access vlan 46.
-
- .. code-block:: text
-
- interface Ethernet4
- switchport access vlan 46
- no shutdown
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#switchport access vlan 46
- leaf4(config-if-Et4)#no shutdown
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et6, Et7, Et8, Et9, Et10, Et11
- Et12, Et13, Et14, Et15, Et16
- Et17, Et18, Et19, Et20, Et21
- Et22, Et23, Et24, Et25, Et26
- Et27, Et28, Et29, Et30, Et31
- Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 46 VLAN0046 active Cpu, Et4
-
-
-4. Create uplink connectivity to **Spine 2**
- 1. On **Leaf 4**, *Ethernet 3* is connected to **Spine 2**. Create a routed port for uplink access
-
- .. code-block:: text
-
- interface Ethernet3
- no switchport
- mtu 9214
- ip address 172.16.200.26/30
- no shutdown
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#interface ethernet 3
- leaf4(config-if-Et3)#no switchport
- leaf4(config-if-Et3)#ip address 172.16.200.26/30
- leaf4(config-if-Et3)#mtu 9214
- leaf4(config-if-Et3)#no shutdown
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4#sh ip int br
- Interface IP Address Status Protocol MTU
- Ethernet3 172.16.200.26/30 up up 1500
- Management1 192.168.0.17/24 down notpresent 1500
- Vlan46 172.16.46.4/24 up up 1500
-
-
-5. Enable OSPF & verify connectivity
- 1. On **Leaf 4**, create a loopback interface & assign an IP to be used as the Router-ID. On **Leaf 4**, enable the OSPF routing process and assign the networks to be advertised
-
- .. code-block:: text
-
- interface Loopback0
- ip address 172.16.0.4/32
- !
- router ospf 6500
- router-id 172.16.0.4
- passive-interface Loopback0
- passive-interface Vlan46
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.46.0/24 area 0.0.0.0
- network 172.16.200.24/30 area 0.0.0.0
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#interface loopback 0
- leaf4(config-if-Lo0)#ip address 172.16.0.4/32
- leaf4(config-if-Lo0)#
- leaf4(config-if-Lo0)#router ospf 6500
- leaf4(config-router-ospf)#router-id 172.16.0.4
- leaf4(config-router-ospf)#passive-interface loopback 0
- leaf4(config-router-ospf)#passive-interface vlan46
- leaf4(config-router-ospf)#network 172.16.0.0/24 area 0.0.0.0
- leaf4(config-router-ospf)#network 172.16.46.0/24 area 0.0.0.0
- leaf4(config-router-ospf)#network 172.16.200.24/30 area 0.0.0.0
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config-router-ospf)#show ip int br
- Interface IP Address Status Protocol MTU
- Ethernet3 172.16.200.26/30 up up 1500
- Loopback0 172.16.0.4/32 up up 65535
- Management1 192.168.0.17/24 down notpresent 1500
- Vlan46 172.16.46.4/24 up up 1500
-
-
-
- 2. Issue a ``show ip route`` command on Leaf 4. Output should show the following networks from Leaf 1 being advertised and shows a Full/BR state with Leaf 1, its neighbor.
-
- **Routing Table Example:**
-
- .. code-block:: text
-
- leaf4#show ip route
-
- leaf4(config-if-Et3)#show ip route | begin Gateway
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- O 172.16.0.1/32 [110/40] via 172.16.200.25, Ethernet3
- O 172.16.0.2/32 [110/30] via 172.16.200.25, Ethernet3
- O 172.16.0.3/32 [110/20] via 172.16.200.25, Ethernet3
- C 172.16.0.4/32 is directly connected, Loopback0
- O 172.16.15.0/24 [110/40] via 172.16.200.25, Ethernet3
- C 172.16.46.0/24 is directly connected, Vlan46
- O 172.16.200.0/30 [110/30] via 172.16.200.25, Ethernet3
- C 172.16.200.24/30 is directly connected, Ethernet3
- O 172.16.200.32/30 [110/20] via 172.16.200.25, Ethernet3
- C 192.168.0.0/24 is directly connected, Management1
-
-
- **OSPF Neighbor Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#show ip ospf neighbor
- Neighbor ID VRF Pri State Dead Time Address Interface
- 172.16.0.3 default 1 FULL/DR 00:00:37 172.16.200.25 Ethernet3
-
-
-6. Test End to End Connectivity on From Host 2
- 1. Issue a ping command from **Host 2** in network 172.16.46.0/24 to **Host 1** on 172.16.15.0/2
-
- .. code-block:: text
-
- Select Host 2 from main menu
- Confirm Gateway of Host 1 is accessible at 172.16.15.1 and the Host 1 At 172.16.15.5
-
- ping 172.16.15.1
- ping 172.16.15.5
-
- ex.
- host2# ping 172.16.15.1
- host2# ping 172.16.15.5
-
- Ensure you have connectivity before commencing the next step
-
-7. Enabling Multicast Routing
- 1. On **Leaf 4**, enable multicast routing using the following commands; We will be enabling multicast routing on Leaf 4 and assigning the interfaces to participate in multicast routing. As well we will define the RP address on the switch.
-
-
- .. code-block:: text
-
- ip multicast-routing
- !
- ip pim rp-address 172.16.0.1
- !
- interface Vlan46
- ip pim sparse-mode
- !
- !
- interface Ethernet3
- ip pim sparse-mode
- !
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#ip multicast-routing
- leaf4(config)#ip pim rp-address 172.16.0.1
- leaf4(config)#int vlan 46
- leaf4(config-if-Vl46)#ip pim sparse-mode
- leaf4(config-if-Vl46)#int et3
- leaf4(config-if-Et3)#ip pim sparse-mode
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#sh ip pim rp
- Group: 224.0.0.0/4
- RP: 172.16.0.1
- Uptime: 0:02:56, Expires: never, Priority: 0, Override: False
-
- leaf4(config-if-Et3)#show ip pim neighbor
- PIM Neighbor Table
- Neighbor Address Interface Uptime Expires Mode
- 172.16.200.25 Ethernet3 00:02:41 00:01:32 sparse
-
-
-8. Start Server on the Host 1
- 1. Going back to the menu screen, select **Host 1**. Enter the bash prompt on from the CLI prompt and enable the source. This will run for 1800 seconds
-
- **Example:**
-
- .. code-block:: text
-
- On Host 1 type the following:
- host1# bash
- [arista@host1 ~]$ /mnt/flash/mcast-source.sh
-
- **Verification:**
-
- .. code-block:: text
-
- [arista@host1 flash]$ ./mcast-source.sh
- ------------------------------------------------------------
- [arista@host1 flash]$ Client connecting to 239.103.1.1, UDP port 5001
- Sending 1470 byte datagrams
- Setting multicast TTL to 10
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- [ 3] local 10.33.157.26 port 38605 connected with 239.103.1.1 port 5001
- ------------------------------------------------------------
- Client connecting to 239.103.1.3, UDP port 5001
- Sending 1470 byte datagrams
- Setting multicast TTL to 10
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- ------------------------------------------------------------
- Client connecting to 239.103.1.2, UDP port 5001
- Sending 1470 byte datagrams
- Setting multicast TTL to 10
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- [ 3] local 10.33.157.26 port 53682 connected with 239.103.1.2 port 5001
- [ 3] local 10.33.157.26 port 40187 connected with 239.103.1.3 port 5001
- [ ID] Interval Transfer Bandwidth
- [ 3] 0.0- 1.0 sec 31.6 KBytes 259 Kbits/sec
-
-
- Open a new ssh session leaving the source script running
-
-
-9. Start Receiver on Host 2
- 1. Going back to the menu screen, select Host 2. Enter the bash prompt on from the CLI prompt and enable the receiver.
-
- **Example:**
-
- .. code-block:: text
-
- On Host 2 type the following:
- host2# bash
- [arista@host2 ~]$ /mnt/flash/mcast-receiver.sh
-
- **Verification:**
-
- .. code-block:: text
-
- [arista@host2 ~]$ /mnt/flash/mcast-receiver.sh
- [arista@host2 ~]$ ------------------------------------------------------------
- Server listening on UDP port 5001
- Binding to local address 239.103.1.1
- Joining multicast group 239.103.1.1
- Receiving 1470 byte datagrams
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- ------------------------------------------------------------
- Server listening on UDP port 5001
- Binding to local address 239.103.1.2
- Joining multicast group 239.103.1.2
- Receiving 1470 byte datagrams
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
-
- Open a new ssh session leaving the receiver script running
-
-10. Observe the multicast table on **Leaf 1**
- 1. On **Leaf 1**, observe the multicast table for the source.
-
- **Example:**
-
- .. code-block:: text
-
- leaf1#show ip mroute
-
- RPF route: U - From unicast routing table
- M - From multicast routing table
- 239.103.1.1
- 0.0.0.0, 0:01:56, RP 172.16.0.1, flags: W
- Incoming interface: Register
- Outgoing interface list:
- Ethernet2
- 172.16.15.5, 0:02:24, flags: SLN
- Incoming interface: Vlan15
- RPF route: [U] 172.16.15.0/24 [0/1]
- Outgoing interface list:
- Ethernet2
- 239.103.1.2
- 0.0.0.0, 0:01:56, RP 172.16.0.1, flags: W
- Incoming interface: Register
- Outgoing interface list:
- Ethernet2
- 172.16.15.5, 0:02:24, flags: SLN
- Incoming interface: Vlan15
- RPF route: [U] 172.16.15.0/24 [0/1]
- Outgoing interface list:
- Ethernet2
- 239.103.1.3
- 172.16.15.5, 0:02:24, flags: SLN
- Incoming interface: Vlan15
- RPF route: [U] 172.16.15.0/24 [0/1]
- Outgoing interface list:
- Ethernet2
-
-11. Observe the multicast table on **Leaf 4**
- 1. On **Leaf 4**, observe the multicast table for the receiver using the CLI
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#show ip mroute
-
- RPF route: U - From unicast routing table
- M - From multicast routing table
- 239.103.1.1
- 0.0.0.0, 0:00:17, RP 172.16.0.1, flags: W
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.0.3/32 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
- 172.16.15.5, 0:00:13, flags: S
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.15.0/24 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
- 239.103.1.2
- 0.0.0.0, 0:00:17, RP 172.16.0.1, flags: W
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.0.3/32 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
- 172.16.15.5, 0:00:13, flags: S
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.15.0/24 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
-
-**LAB COMPLETE**
diff --git a/topologies/datacenter-latest/labguides/source/media-ospf.rst b/topologies/datacenter-latest/labguides/source/media-ospf.rst
deleted file mode 100644
index 0e3ac0a86..000000000
--- a/topologies/datacenter-latest/labguides/source/media-ospf.rst
+++ /dev/null
@@ -1,323 +0,0 @@
-Media OSPF Lab
-==============
-
-.. image:: images/media-OSPF.png
- :align: center
-
-.. note:: Did you know the OSPF algorithm is considered a link-state protocol, based on the Dijkstra Shortest Path Algorithm? It is a common protocol used in a number of widely deployed environments in various industries.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` to go back).
- 3. Type ``media-ospf`` at the prompt. The script will configure the topology with the exception of **Leaf 4**.
-
- 4. On **Spine 2**, verify OSPF operation (it should not be operating correctly) and you will see all the routes currently in the environment.
-
- .. code-block:: text
-
- show ip ospf neighbor
- show ip ospf interface
- show ip ospf database
- show ip route
-
-
-
- **Example:**
-
- .. code-block:: text
-
- spine2#show ip ospf neighbor
- Neighbor ID VRF Pri State Dead Time Address Interface
- 10.127.255.2 default 1 FULL/BDR 00:00:35 10.127.23.2 Ethernet1
-
- spine2#show ip ospf interface
- Loopback0 is up
- Interface Address 10.127.255.3/32, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.3
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0 (Passive Interface)
- No authentication
- Ethernet5 is up
- Interface Address 10.127.34.3/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.3
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0
- No authentication
- Ethernet1 is up
- Interface Address 10.127.23.3/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.3
- Backup Designated Router is 10.127.255.2
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 1
- No authentication
-
- spine2#show ip ospf database
-
- OSPF Router with ID(10.127.255.3) (Process ID 100) (VRF default)
-
-
- Router Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum Link count
- 10.127.255.2 10.127.255.2 344 0x80000007 0x5d3 3
- 10.127.255.1 10.127.255.1 346 0x80000006 0x2433 3
- 10.127.255.3 10.127.255.3 343 0x80000006 0xbe99 3
-
- Network Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum
- 10.127.23.3 10.127.255.3 343 0x80000001 0x836e
- 10.127.12.2 10.127.255.2 344 0x80000001 0xf40c
-
- spine2#show ip route
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- O 10.127.12.0/24 [110/20] via 10.127.23.2, Ethernet1
- C 10.127.23.0/24 is directly connected, Ethernet1
- C 10.127.34.0/24 is directly connected, Ethernet5
- O 10.127.255.1/32 [110/30] via 10.127.23.2, Ethernet1
- O 10.127.255.2/32 [110/20] via 10.127.23.2, Ethernet1
- C 10.127.255.3/32 is directly connected, Loopback0
- O 172.16.15.0/24 [110/30] via 10.127.23.2, Ethernet1
- C 192.168.0.0/24 is directly connected, Management1
-
-
- All the route entries with a preceding "O" was learned by the OSPF protocol on **Spine 2**.
-
-2. Configure OSPF on the **Leaf 4** switch using the following criteria:
-
- 1. Configure the Ethernet 3, Ethernet 4, Loopback 0 interfaces and the OSPF router process on **Leaf4** to be used for OSPF communication to the adjacent devices (**Spine 2** in this case)
-
- .. code-block:: text
-
- configure
- interface loopback 0
- ip address 10.127.255.4/32
- interface ethernet 3
- no switchport
- ip address 10.127.34.4/24
- interface ethernet 4
- no switchport
- ip address 172.16.46.4/24
- router ospf 100
- router-id 10.127.255.4
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#int et 3
- leaf4(config-if-Et3)#no switchport
- leaf4(config-if-Et3)#ip address 10.127.34.4/24
- leaf4(config)#int et 4
- leaf4(config-if-Et4)#no switchport
- leaf4(config-if-Et4)#ip address 172.16.46.4/24
- leaf4(config)#int lo 0
- leaf4(config-if-Lo0)#ip address 10.127.255.4/32
- leaf4(config)#router ospf 100
- leaf4(config-router-ospf)#router-id 10.127.255.4
-
-
- .. note::
- All interfaces are point-to-point connections in the OSPF lab, no trunk or access ports
-
- 2. Specify the network statement which encompasses all the interfaces that will take part in the OSPF process.
-
- .. code-block:: text
-
- configure
- router ospf 100
- network 10.127.0.0/16 area 0.0.0.0
- network 172.16.46.0/24 area 0.0.0.0
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#configure
- leaf4(config)#router ospf 100
- leaf4(config-router-ospf)#network 10.127.0.0/16 area 0.0.0.0
- leaf4(config-router-ospf)#network 172.16.46.0/24 area 0.0.0.0
-
-
- .. note::
- All interfaces which fall into the range of the network statement will take part in the OSPF process and listen for and send out hello packets.
-
- 3. Certain interfaces do not need to take part in the OSPF process but we still want the IP's to be advertised out. This is where we leverage the "passive-interface" setting to allow this. These interfaces will still be associated in the area in which the network statement is associated to.
-
- .. code-block:: text
-
- configure
- router ospf 100
- passive-interface loopback0
- passive-interface ethernet4
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#router ospf 100
- leaf4(config-router-ospf)#passive-interface loopback 0
- leaf4(config-router-ospf)#passive-interface ethernet4
-
-
- 4. Confirm the OSPF neighbor relationship has been established and the routing table on **Leaf 4** has been populated with the appropriate entries.
-
- .. code-block:: text
-
- show ip ospf neighbor
- show ip ospf interface
- show ip ospf database
- show ip route
-
- **Example**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#show ip ospf neighbor
- Neighbor ID VRF Pri State Dead Time Address Interface
- 10.127.255.3 default 1 FULL/DR 00:00:31 10.127.34.3 Ethernet3
-
- leaf4(config-if-Et4)#show ip ospf interface
- Loopback0 is up
- Interface Address 10.127.255.4/32, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.4
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0 (Passive Interface)
- No authentication
- Ethernet3 is up
- Interface Address 10.127.34.4/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State Backup DR, Priority 1
- Designated Router is 10.127.255.3
- Backup Designated Router is 10.127.255.4
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 1
- No authentication
- Ethernet4 is up
- Interface Address 172.16.46.4/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.4
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0
- No authentication
-
- leaf4(config-if-Et4)#sh ip ospf database
-
- OSPF Router with ID(10.127.255.4) (Process ID 100) (VRF default)
-
-
- Router Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum Link count
- 10.127.255.1 10.127.255.1 863 0x80000009 0x1e36 3
- 10.127.255.2 10.127.255.2 861 0x8000000a 0xfed6 3
- 10.127.255.4 10.127.255.4 339 0x80000007 0xde1f 3
- 10.127.255.3 10.127.255.3 1181 0x80000009 0x5e46 3
-
- Network Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum
- 10.127.23.3 10.127.255.3 860 0x80000004 0x7d71
- 10.127.34.3 10.127.255.3 1181 0x80000001 0x26be
- 10.127.12.2 10.127.255.2 861 0x80000004 0xee0f
-
- leaf4(config-if-Et4)#sh ip route
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- O 10.127.12.0/24 [110/30] via 10.127.34.3, Ethernet3
- O 10.127.23.0/24 [110/20] via 10.127.34.3, Ethernet3
- C 10.127.34.0/24 is directly connected, Ethernet3
- O 10.127.255.1/32 [110/40] via 10.127.34.3, Ethernet3
- O 10.127.255.2/32 [110/30] via 10.127.34.3, Ethernet3
- O 10.127.255.3/32 [110/20] via 10.127.34.3, Ethernet3
- C 10.127.255.4/32 is directly connected, Loopback0
- O 172.16.15.0/24 [110/40] via 10.127.34.3, Ethernet3
- C 172.16.46.0/24 is directly connected, Ethernet4
- C 192.168.0.0/24 is directly connected, Management1
-
- The routing table output should list all routing entries in this topology to ensure connectivity.
-
-3. Validate end-to-end connectivity once OSPF neighbor relationship has been established.
-
- 1. Log into **Host 2** and verify connectivity with **Host 1**.
-
- .. code-block:: text
-
- ping 172.16.15.5
-
- **Example:**
-
- .. code-block:: text
-
- host2# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=60 time=99.5 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=60 time=102 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=60 time=165 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=60 time=161 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=60 time=158 ms
-
- --- 172.16.15.5 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 40ms
- rtt min/avg/max/mdev = 99.508/137.682/165.494/29.858 ms, pipe 5, ipg/ewma 10.149/120.314 ms
-
-
- If OSPF settings have been configured correctly and the routing table on **Leaf 4** has converged then **Host 1** should be reachable from **Host 2**.
-
-.. admonition:: **Test your knowledge:**
-
- When inspecting the routing table on **Leaf 4**, why are all the infrastructure IP address in there? What are the positive and negative results of that?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show ip ospf neighbor
- - show ip ospf interface
- - show ip ospf database
- - show ip route
diff --git a/topologies/datacenter-latest/labguides/source/mlag.rst b/topologies/datacenter-latest/labguides/source/mlag.rst
deleted file mode 100644
index ea3359e72..000000000
--- a/topologies/datacenter-latest/labguides/source/mlag.rst
+++ /dev/null
@@ -1,154 +0,0 @@
-MLAG
-====
-
-.. image:: images/mlag_1.png
- :align: center
-
-.. note:: Did you know the “mlag” script is composed of Python code that
- uses the CloudVision Portal REST API to automate the provisioning of
- CVP Configlets. The configlets that are configured via the REST API
- are ``Spine1-MLAG-Lab``, ``Spine2-MLAG-Lab``, ``Leaf1-MLAG-Lab``,
- ``Leaf2-MLAG-Lab``, ``Leaf3-MLAG-Lab``. In addition each switch also
- gets the ``VLANs`` configlet.
-
-.. note:: The manually-entered commands below that are part of this lab are
- equivalent to ``Leaf4-MLAG-Lab``.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``mlag`` at the prompt. The script will configure the datacenter with the exception of **Leaf4**.
- 2. On **Leaf3**, verify MLAG operation (it should not be operating correctly)
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
-
-2. Configure MLAG on the **Leaf4** switch using the following criteria
-
- 1. Configure Port-channel on **Leaf4** to used for MLAG communication between **Leaf3** & **Leaf4**.
-
- .. code-block:: text
-
- configure
- interface port-channel 10
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
-
- interface ethernet 1
- description MLAG PEER LINK - LEAF3
- channel-group 10 mode active
-
- .. note::
- A *channel-group* is a group of interfaces on a single Arista switch. A *channel-group* is associated with a *port-channel* interface immediately upon its creation. The *channel-group* command implicitly creates the matching *port-channel* with the same ID, which is *10* in this case. The *switchport mode trunk* command allows all VLANs on *port-channel 10*.
-
- 2. Verify switching operation
-
- .. code-block:: text
-
- show interfaces status
- show lldp neighbors
- show interfaces trunk
-
- .. note::
- Each switch is assigned a globally unique sysID by concatenating the 16-bit system priority to a 48-bit MAC address of one of the switch's physical ports. This sysID is used by peer devices when forming an aggregation to verify that all links are from the same switch - for environments where the MLAG peer link contains multiple physical links - which it does NOT in this example. A *trunk group* is the set of physical interfaces that comprise the trunk and the collection of VLANs whose traffic is carried on the trunk. The traffic of a VLAN that belongs to one or more trunk groups is carried only on ports that are members of trunk groups to which the VLAN belongs, i.e., VLANs configured in a *trunk group* are ‘pruned’ off all ports that are not associated with the trunk group. The spanning-tree protocol (STP) is disabled for the peer-link VLAN 4094 to prevent any potential STP disruption on the interpeer communications link. Since VLAN 4094 has been restricted to only be on the peer-link (Po10) by *trunk group MLAGPEER* & *switchport trunk group MLAGPEER* (see step #2.3) the chance of a loop is eliminated. To prevent loops do NOT add this *trunk group MLAGPEER* to any other interface links.
-
- 3. Configure the MLAG VLAN (both Layer 2 and Layer 3).
-
- .. code-block:: text
-
- configure
- vlan 4094
- trunk group MLAGPEER
-
- interface port-channel 10
- switchport trunk group MLAGPEER
-
- no spanning-tree vlan-id 4094
-
- interface vlan 4094
- description MLAG PEER LINK
- ip address 172.16.34.2/30
-
- ping 172.16.34.1
-
- .. note::
- The *ip address 172.16.34.2/30* (see step #2.3) assigned to one side of the peer-link can be any unicast address that does not conflict with any SVIs on the same switch. The *local-interface vlan 4094* command (see step #2.4) specifies the SVI upon which the switch sends MLAG control traffic. The IP address is specified within the definition of the VLAN associated with this local interface, which you already performed earlier above. While the peer-link's (designated with the command *peer-link port-channel 10* (see below)) primary purpose is to exchange MLAG control information between the 2 peer switches, it also carries dataplane traffic from devices that are attached to only 1 MLAG peer & have no alternative path. This peer-link can also carry traffic in topology failure scenarios (i.e. one of these peer-link switches loses all its uplinks to the spine switches). The *domain-id MLAG34* command determines the MLAG domain that consists of these 2 peer switches & the links that connect these 2 switches. The *domain-id* is case-sensitive and must match the same *domain-id* on the other peer switch.
-
- 4. Define the MLAG Domain.
-
- .. code-block:: text
-
- configure
- mlag
- domain-id MLAG34
- local-interface vlan 4094
- peer-address 172.16.34.1
- peer-link port-channel 10
-
- 5. Configure Port-channels and interfaces on **Leaf4** connecting to **Spine1** & **Spine2**.
-
- .. code-block:: text
-
- configure
- interface port-channel 34
- description MLAG - SPINE1 & 2
- switchport mode trunk
- mlag 34
-
- interface ethernet 2
- description SPINE1
- channel-group 34 mode active
-
- interface ethernet 3
- description SPINE2
- channel-group 34 mode active
-
- .. note::
- The *mlag 34* (see #2.5) assigns an MLAG ID to *interface port-channel 34*. MLAG peer switches form an MLAG when each switch configures the same MLAG ID to a port-channel interface. This is **different** than the MLAG *domain-id* (see #2.4). The global-scope *mlag* command above (see #2.4) just enters the global MLAG configuration scope of the Arista switch.
-
- 6. Configure Port-channels on **Leaf4** connecting to **Host2**
-
- .. code-block:: text
-
- configure
- interface port-channel 4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
-
- interface ethernet 4
- description HOST2
- channel-group 4 mode active
-
- interface ethernet5
- shutdown
-
-3. Validate MLAG on the **Leaf4** switch using the following:
-
- 1. Verify MLAG operation
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
-
- 2. Verify switching operation
-
- .. code-block:: text
-
- show interfaces status
- show lldp neighbors
- show interfaces trunk
-
- 3. Validate connectivity from **Host1** to **Host2** by logging into **Host1** through the menu (option 1 in ssh menu) or using screen.
-
- .. code-block:: text
-
- ping 172.16.112.202
-
-|
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/labguides/source/programmability_connecting.rst b/topologies/datacenter-latest/labguides/source/programmability_connecting.rst
deleted file mode 100644
index d858e022f..000000000
--- a/topologies/datacenter-latest/labguides/source/programmability_connecting.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-Connecting to your lab machine
-==============================
-
-1. Before we begin, let's reset the environment to clear out previous lab changes.
-If the environment was brought up fresh and you are starting from this point, you can skip step #1.
-
-SSH to the public IP address assigned to the LabAccess jumphost server (this is the IP address shown in the
-"Welcome to Arista's Demo Cloud" picture further below). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@x.x.x.x
-
-You will be greeted with the following menu:
-
-|
-
-.. image:: images/connecting_1.png
- :align: center
-
-|
-
-Select option **1** (**Reset All Devices to Base ATD**), wait til the command has completed, then log out.
-
-|
-
-2. Now we need to make sure that you can access your handy lab machine! You should have received your login
-information (a URL) from your friendly Arista SE already. If you have not, please reach out and ask for one.
-
-Once you receive your token, click on the link. You will greeted with a
-screen that looks like this:
-
-.. image:: images/programmability_connecting_2.png
- :align: center
-
-Connect to the topology by clicking the link and click on **Lab Frontend**.
-
-.. image:: images/programmability_connecting_3.png
- :align: center
-
-You will be greeted with a screen like this:
-
-.. image:: images/programmability_connecting_4.png
- :align: center
-
-Login with the username **arista** and the password **@rista123**. This will bring
-you to the ATD Lab Page.
-
-This lab uses Guacamole to front end both a Linux based desktop (**devbox**)
-and the Arista vEOS virtual leaf/spine lab network. We will primarily
-work out of **devbox**.
-
-.. image:: images/programmability_connecting_5.png
- :align: center
diff --git a/topologies/datacenter-latest/labguides/source/pyeapi.rst b/topologies/datacenter-latest/labguides/source/pyeapi.rst
deleted file mode 100644
index d69bee9b8..000000000
--- a/topologies/datacenter-latest/labguides/source/pyeapi.rst
+++ /dev/null
@@ -1,108 +0,0 @@
-pyeapi
-======
-
-In this lab we will still use Python, but this time with Arista’s pyeapi
-module. If you recall from the last lab, a module is a way of enhancing
-the capability of native Python.
-
-Pyeapi is a wrapper around eAPI that abstracts common EOS commands into
-a more programmatic style. This allows someone without a heavy network
-background to easily interact with an Arista device. In other words,
-instead of issuing ``enable; configure; vlan 100; name foo``, we can
-use ``vlans.set_name(100,'foo')``. While that may look similar, the
-abstracted way is easier to implement in Python because it shortcuts
-some of the steps, and someone that only knows they need to create a
-VLAN can grok it without having to know the EOS command line.
-
-Click \ `here `__\ for
-pyeapi documentation.
-
-.. note:: While Arista switches have a fully functional Python
- installation, please make sure to usedevboxfor the scripting part of this lab.
-
-Your first pyeapi script
-------------------------
-
-For your first pyeapi script, we are going to add a new user:testuser.
-We will use the following script:
-
-.. code-block:: python
-
- #!/usr/bin/python
-
- import pyeapi
-
- node = pyeapi.connect(host='192.168.0.14',username='arista',password='{REPLACE_ARISTA}',return_node=True)
-
- users = node.api('users')
-
- users.create('testuser',secret='foo')
- users.set_privilege('testuser',value='15')
- users.set_role('testuser',value='network-admin')
-
-What does this script do?
-
-**import pyeapi** - this imports the pyeapi module.
-
-**node = pyeapi.connect(host='192.168.0.14',username='arista',password='{REPLACE_ARISTA}',return_node=True)** -
-instantiates the variable ``node``, and uses pyeapi to create a connection to
-the switch using the username of ``arista`` and the
-password ``{REPLACE_ARISTA}``. ``return_node`` allows you to use the node object to consume
-the API with - don’t focus on this one for now, let’s just roll with the
-rest of the script.
-
-**users = node.api('users')** - creates a new variable ``users`` and specifies
-the API submodule ``users``. This tells Python we want to create a user using
-pyeapi.
-
-**users.create('testuser',secret='foo')** - Using the Users API, we use
-the ``create`` method. ``testuser`` is the username, and the password is ``foo``.
-
-**users.set_privilege('testuser',value='15')** - Using the Users API, we use
-the ``set_privilege`` method. ``testuser`` is the username which was created in
-the last step, and the privilege level is ``15``.
-
-**users.set_role('testuser',value='network-admin')** - Using the Users API,
-we use the ``set_role`` method. ``testuser`` is the username which was created in
-the last step, and the Arista role is the predefined default role of
- ``network-admin``.
-
-Write it
-~~~~~~~~
-
-Create a new file in the Atom editor and either write or paste the code
-in. Save it to your desktop like the previous lab.
-
-Run it
-~~~~~~
-
-Run the script the same way you did in the previous lab (``python
-~/Desktop/your_script_name_here``) - allowing for the different file name.
-Wait, you didn’t save over your previous work did you?!
-
---------------
-
-Let’s take a look and see if the user has been added switch to your
-virtual switch using the Ctrl-Alt-Shift trick and type ``show run section
-user``.
-
-.. image:: images/pyeapi_1.png
- :align: center
-
-**Success!**
-
-Advanced
---------
-
-Write a script that adds more than one user.
-
-Bonus
------
-
-Using the\ `pyeapi
-documentation `__\ ,
-create a new script that creates a VLAN and then adds it to ``interface
-Ethernet1`` as a ``switchport access vlan``.
-
-.. note:: Check out the config example, as well as Modules > API > switchports and vlans.
-
diff --git a/topologies/datacenter-latest/labguides/source/rollback.rst b/topologies/datacenter-latest/labguides/source/rollback.rst
deleted file mode 100644
index 81e904c8f..000000000
--- a/topologies/datacenter-latest/labguides/source/rollback.rst
+++ /dev/null
@@ -1,120 +0,0 @@
-Rollback
-========
-
-Oops. We’ve made a horrible mistake and we need to roll it back before
-anyone notices.
-
-Fortunately, using Git we have a record of what changed and we can
-revert everything back to the previous ``commit``. Once we revert the change,
-Jenkins will see see it and run your playbook again, undoing the changes
-that we just made.
-
-Step #1: See the diff(erence)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Before we roll back, let’s check what Git has on record. To do that,
-we’re going to have to get the checksum of the first commit in Lab #6
-and the checksum of the commit after you added VLAN 2000 and 3000. Once
-we get the checksums, we can ``diff`` them. ``Diff`` shows the difference between
-two items.
-
-To find the checksums, we need to use the ``git reflog`` command
-on **devbox**. The ``git reflog`` command lists every commit, their checksum, their
-distance from the current commit, and the commit message.
-
-Run ``git reflog`` inside your lab6 directory (``~/Desktop/labfiles/lab6/lab``):
-
-.. code-block:: bash
-
- aristagui@labvm:~/Desktop/labfiles/lab6/lab$ git reflog
- 30fed59 HEAD@{0}: commit: Added VLAN 2000 and 3000
- 524c2bb HEAD@{1}: commit: (initial): Initial commit
-
-Note the two checksums, ``30fed59`` and ``524c2bb``. Let’s diff them with ``git diff
-524c2bb 30fed59``.
-
-.. note:: Your checksums will be different than in this lab guide. Please
- make sure to use your checksums from git reflog and not the ones in
- the guide.
-
-.. code-block:: bash
-
- aristagui@labvm:~/Desktop/labfiles/lab6/lab$ git diff 524c2bb 30fed59
- diff --git a/group_vars/leafs.yml b/group_vars/leafs.yml
- index c17ea3b..6bf591e 100644
- --- a/group_vars/leafs.yml
- +++ b/group_vars/leafs.yml
- @@ -9,6 +9,10 @@ provider:
- vlans:
- - vlanid: 1001
- name: default
- - - vlanid: 2000
- - name: production
- - - vlanid: 3000
- - name: development
-
-The ``diff`` shows - next to lines that were removed. If we roll back, we would
-lose anything that’s different. We did want to roll those VLANs back,
-right? We’re good to go!
-
-Step #2: Revert the change
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To roll back, we need to use the ``git revert`` command, coupled
-with ``HEAD``. ``HEAD`` is the Git method of saying the last commit (in the
-checked out branch). If you revert the last commit it will bring you
-back to the commit before the latest commit.
-
-You can also use this command to revert to any other commit - useful if
-you want to roll back to 2 weeks and 30 commits ago.
-
-Let’s revert with ``git revert HEAD``.
-
-.. code-block:: bash
-
- aristagui@labvm:~/Desktop/labfiles/lab6/lab$ git revert HEAD
-
-A window will pop up asking you to enter a commit message. Let’s just
-stick with the default. Hit **Ctrl-X** to save.
-
-.. code-block:: bash
-
- aristagui@labvm:~/Desktop/labfiles/lab6/lab$ git revert HEAD
- [master b1e1694] Revert "Added VLAN 2000 and 3000"
- 1 file changed, 4 deletions(-)
-
-Note the 4 deletions - those are the 4 lines in the ``diff`` above. If you
-were to open your group_vars file, you would see that those lines are
-now missing.
-
-Now if you were to look at your log using git reflog, you will see a
-revert:
-
-.. code-block:: bash
-
- aristagui@labvm:~/Desktop/labfiles/lab6/lab$ git reflog
- b1e1694 HEAD@{0}: revert: Revert "Added VLAN 2000 and 3000"
- 30fed59 HEAD@{1}: commit: Added VLAN 2000 and 3000
- 524c2bb HEAD@{2}: commit: (initial): Initial commit
-
-Now let's push our changes to our remote repo so Jenkins can pick up on the changes
-
-.. code-block:: bash
-
- aristagui@labvm:~/Desktop/labfiles/lab6/lab$ git push origin master
- Counting objects: 6, done.
- Delta compression using up to 2 threads.
- Compressing objects: 100% (5/5), done.
- Writing objects: 100% (6/6), 783 bytes | 0 bytes/s, done.
- Total 6 (delta 1), reused 0 (delta 0)
- To /home/aristagui/Desktop/labfiles/lab6/repo
- 19404fc..983adb8 master -> master
-
-Hurray!
-
-Step #3: Watch Jenkins undo
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Go back into Jenkins and look at the job history for the latest job,
-just like you did in the previous lab. Also, log into your switches and
-notice that the VLANs are no longer present.
\ No newline at end of file
diff --git a/topologies/datacenter-latest/labguides/source/tshoot-intro.rst b/topologies/datacenter-latest/labguides/source/tshoot-intro.rst
deleted file mode 100644
index 8cacb404d..000000000
--- a/topologies/datacenter-latest/labguides/source/tshoot-intro.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Troubleshooting Introduction
-============================
-
-.. image:: images/tshoot_intro_1.png
- :align: center
-
-.. note:: A set of possible answers are available here_. This hyperlink is only available to Arista employees.
- Please work with your Arista SE for access.
-
-.. _here: https://drive.google.com/file/d/16NJ0hKy2ZfhV4Z4fdLgcp6hBnJ_iIn9P/view?usp=sharing
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` or option ``97`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``troubleshooting`` or option ``3`` at this prompt to open the troubleshooting lab section (If you were previously in the Troubleshooting Labs Menu, you can type ``back`` or option ``97`` to go back).
- 3. Type ``tshoot-intro`` or option ``1`` at the prompt. The script will configure the lab into a errored set of states. It is up to you to determine
- a solution for each of the questions below. There can be many solutions, please work with your SE.
-
-2. Questions
-
- 1. Why can’t Leaf1 ping Host1? Are there multiple ways to fix this?
-
- 2. Why is Leaf2 the spanning tree root for all VLANs?
-
- 3. Why isn’t 172.16.112.0/24 being advertised into BGP?
-
- 4. Why won’t the OSPF adjacency come up between Leaf1 & Spine1?
-
diff --git a/topologies/datacenter-latest/labguides/source/ucn-l2evpn.rst b/topologies/datacenter-latest/labguides/source/ucn-l2evpn.rst
deleted file mode 100644
index 6db5eff41..000000000
--- a/topologies/datacenter-latest/labguides/source/ucn-l2evpn.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-
-L2 EVPN
-=======
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. On **leaf3**, configure ArBGP. **(Already configured and enabled on the switch)**
-
- .. code-block:: html
-
- configure
- service routing protocols model multi-agent
-
-2. Configure interfaces on **leaf3**.
-
- .. code-block:: html
-
- configure
- interface Port-Channel4
- description HOST2
- switchport mode access
- switchport access vlan 12
- !
- interface Ethernet1
- shutdown
- !
- interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.10/30
- !
- interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.26/30
- !
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
- !
- interface Ethernet5
- shutdown
- !
- interface Loopback0
- ip address 172.16.0.5/32
- !
- interface Loopback1
- ip address 3.3.3.3/32
- !
-
-3. Add Underlay BGP configurations on **Leaf3**
-
- .. code-block:: html
-
- configure
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
- !
-
-4. Verify Underlay
-
- 1. On each leaf and spine
-
- .. code-block:: html
-
- show ip bgp summary
- show ip route bgp
-
-5. On **leaf3**, build BGP Overlay
-
- .. code-block:: html
-
- configure
- router bgp 65103
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-6. Verify overlay
-
- 1. On **leaf1** and **leaf3**
-
- .. code-block:: html
-
- show bgp evpn summary
-
-7. Configure L2EVPN
-
- 1. On **leaf3**: add VLAN 12, and interface vxlan1
-
- .. code-block:: html
-
- configure
- vlan 12
- !
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1200
- !
-
- 2. On **leaf3**: add mac vrf
-
- .. code-block:: html
-
- configure
- router bgp 65103
- vlan 12
- rd 3.3.3.3:12
- route-target both 1:12
- redistribute learned
- !
-
-8. Verify VXLAN and L2EVPN
-
- 1. On **leaf1** and **leaf3** verify the IMET table
-
- .. code-block:: text
-
- show interface vxlan1
- show bgp evpn route-type imet
-
- 2. Log into **host1** and ping **host2**
-
- .. code-block:: text
-
- ping 172.16.112.202
-
- 3. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show bgp evpn route-type mac-ip
- show mac address-table dynamic
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/labguides/source/ucn-l3evpn.rst b/topologies/datacenter-latest/labguides/source/ucn-l3evpn.rst
deleted file mode 100644
index 51bab1cc3..000000000
--- a/topologies/datacenter-latest/labguides/source/ucn-l3evpn.rst
+++ /dev/null
@@ -1,171 +0,0 @@
-L3 EVPN
-=======
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. On **leaf3**, configure EOS to Mutli-Agent and add loopback0
-
- 1. **leaf3** enable the Multi-Agent **(Already configured and enabled on the switch)**
-
- .. code-block:: text
-
- configure
- service routing protocols model multi-agent
-
- 2. **leaf3** Underlay Interface configurations. Note the interfaces to **host2** change from previous L2EVPN lab
-
- .. code-block:: text
-
- configure
- interface Port-Channel5
- description HOST2
- switchport access vlan 2003
- no shutdown
- !
- interface Ethernet1
- shutdown
- !
- interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.10/30
- !
- interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.26/30
- !
- interface Ethernet4
- shutdown
- !
- interface Ethernet5
- description HOST2
- channel-group 5 mode active
- no shutdown
- !
- interface Loopback0
- ip address 172.16.0.5/32
- !
- interface Loopback1
- ip address 3.3.3.3/32
- !
-
- 3. On **leaf3** Add Underlay BGP configurations
-
- .. code-block:: text
-
- configure
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65001
- neighbor SPINE bfd
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
-
-2. Verify Underlay on **every** leaf and spine:
-
- .. code-block:: text
-
- show ip bgp summary
- show ip route bgp
-
-3. On **leaf3**, build BGP Overlay
-
- .. code-block:: text
-
- configure
- router bgp 65103
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-4. Verify overlay on **leaf1** and **leaf3**:
-
- .. code-block:: text
-
- show bgp evpn summary
-
-5. Configure L3EVPN
-
- 1. Configure the VRF
-
- .. code-block:: text
-
- configure
- vrf instance vrf1
- !
- ip routing vrf vrf1
- !
- router bgp 65103
- vrf vrf1
- rd 3.3.3.3:1001
- route-target import evpn 1:1001
- route-target export evpn 1:1001
- redistribute connected
- redistribute static
- !
-
- 2. Configure vrf interfaces (start in global configuration mode not BGP)
-
- .. code-block:: text
-
- interface Vlan2003
- mtu 9000
- no autostate
- vrf vrf1
- ip address virtual 172.16.116.1/24
- !
- interface Loopback901
- vrf vrf1
- ip address 200.200.200.2/32
- !
-
- 3. Map VRF to VNI
-
- .. code-block:: text
-
- configure
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vrf vrf1 vni 1001
- !
-
-6. Verify VRF on Leaf 1 and 3 (note route resolution over VNI and dynamic VLAN to VNI mapping)
-
- 1. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show interface vxlan1
-
- 2. Log into **host1** and ping **host2**
-
- .. code-block:: text
-
- ping 172.16.116.100
-
- 3. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show ip route vrf vrf1
- show mac address-table dynamic
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/labguides/source/ucn-l3ls.rst b/topologies/datacenter-latest/labguides/source/ucn-l3ls.rst
deleted file mode 100644
index b1daea2f5..000000000
--- a/topologies/datacenter-latest/labguides/source/ucn-l3ls.rst
+++ /dev/null
@@ -1,191 +0,0 @@
-Layer 3 Leaf-Spine
-==================
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. Configure SVI and VARP Virtual IP on the **Leaf4** switch using the following criteria
-
- 1. Create the vARP MAC Address in Global Configuration mode
-
- .. code-block:: text
-
- configure
- ip virtual-router mac-address 00:1c:73:00:00:34
-
- 2. Create the SVI and the Virtual Router Address
-
- .. code-block:: text
-
- configure
- interface vlan 34
- ip address 172.16.116.3/24
- ip virtual-router address 172.16.116.1
-
- 3. Validate the configuration issue the following commands
-
- .. code-block:: text
-
- show ip interface brief
- show ip virtual-router
-
-2. Configure BGP on the **Leaf4** switch using the following criteria
-
- 1. Based on the diagram, configure L3 interfaces to **Spine1/Spine2** and interface Loopback0
-
- .. code-block:: text
-
- configure
- interface ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.14/30
-
- interface ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.30/30
-
- interface loopback0
- ip address 172.16.0.6/32
-
- 2. Validate the configuration issue the following commands
-
- .. code-block:: text
-
- show ip interface brief
-
- 3. Based on the diagram, turn on BGP and configure the neighbor
- relationships on **Leaf4**. eBGP to **Spine1/Spine2** and iBGP to **Leaf3**.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- router-id 172.16.0.6
- neighbor 172.16.200.13 remote-as 65000
- neighbor 172.16.200.29 remote-as 65000
- neighbor 172.16.34.1 remote-as 65002
- neighbor 172.16.34.1 next-hop-self
-
- .. note:: Since ``neighbor 172.16.34.1 remote-as 65002`` specifies an iBGP
- peering relationship (because the ASN is the same as this switch
- ``65002``) the receiving switch may not have a route to networks more
- than 1 hop away, hence the switches should each advertise that they are
- the next hop via the ``neighbor 172.16.34.1 next-hop-self`` statement. While this scenario is
- only 2 iBGP peers, in a network fabric with several iBGP peers, a
- switch inside an AS (and not on an edge) may not have a route to a
- switch in any external AS.
-
- 4. Validate the configuration and neighbor establishment
-
- .. code-block:: text
-
- show active
- show ip bgp summary
-
-3. Configure networks on **Leaf4** to advertise to **Spine1/Spine2**
-
- 1. Add the following networks to BGP announcements on **Leaf4**:
-
- .. code-block:: text
-
- configure
- router bgp 65002
- network 172.16.0.6/32
- network 172.16.116.0/24
-
- 2. Verify all of the **Spines** and **Leafs** see these new network announcements
-
- .. code-block:: text
-
- show ip route
- show ip bgp
- show ip route bgp
-
- 3. Add in multiple paths by enabling ECMP, on **Leaf4**, jump into BGP configuration mode and add:
-
- .. code-block:: text
-
- configure
- router bgp 65002
- maximum-paths 4 ecmp 4
-
- 4. Check the BGP and IP route tables on each of the **Spines** and **Leafs**
-
- .. code-block:: text
-
- show ip bgp
- show ip route
- show ip route bgp
-
- .. note:: ECMP is now working - notice the new status code in the `show ip bgp` output
-
-4. Validate connectivity from **Host1** to **Host2**. From **Host1** execute:
-
- .. code-block:: text
-
- ping 172.16.116.100
- traceroute 172.16.116.100
-
- 1. Verify Leaf4's IP address is in the traceroute path, either interface 172.16.200.14 via spine1 or interface 172.16.200.30 via spine2.
- If traffic is hashing via leaf3's 172.16.200.10 or 172.16.200.26 interfaces perform the optional ``shutdown`` steps below on **Leaf3**
-
- .. code-block:: text
-
- configure
- router bgp 65002
- neighbor 172.16.200.9 shutdown
- neighbor 172.16.200.25 shutdown
-
- 2. Rerun traceroute/verification from **Host1** to **Host2** then revert the ``shutdown`` changes on **Leaf3**
-
- .. code-block:: text
-
- configure
- router bgp 65002
- no neighbor 172.16.200.9 shutdown
- no neighbor 172.16.200.25 shutdown
-
-5. Other BGP features to play with if you have time:
-
- 1. Route Redistribution: For fun do a ``watch 1 diff show ip route | begin
- Gateway`` on **Leaf1** & **Leaf2** and let those run while you execute the
- command ``redistribute connected`` below on **Leaf3**. You will see new routes being
- injected into the route tables of **Leaf1** & **Leaf2**.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- redistribute connected
-
- 2. Route Maps:
-
- .. code-block:: text
-
- configure
- route-map etc
-
- 3. BFD: BFD is a low-overhead, protocol-independent mechanism which adjacent
- systems can use instead for faster detection of faults in the path between
- them. BFD is a simple mechanism which detects the liveness of a connection
- between adjacent systems, allowing it to quickly detect failure of any
- element in the connection.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- neighbor bfd
-
-6. Troubleshooting BGP:
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip bgp neighbor x.x.x.x
- show run section bgp
- show log
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/labguides/source/ucn-mlag.rst b/topologies/datacenter-latest/labguides/source/ucn-mlag.rst
deleted file mode 100644
index 01fc090d9..000000000
--- a/topologies/datacenter-latest/labguides/source/ucn-mlag.rst
+++ /dev/null
@@ -1,140 +0,0 @@
-MLAG
-====
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. On **Leaf3**, verify MLAG operation (it should not be operating correctly)
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
-
-2. Configure MLAG on the **Leaf4** switch using the following criteria
-
- 1. Configure Port-channel on **Leaf4** to used for MLAG communication between **Leaf3** & **Leaf4**.
-
- .. code-block:: text
-
- configure
- interface port-channel 10
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
-
- interface ethernet 1
- description MLAG PEER LINK - LEAF3
- channel-group 10 mode active
-
- .. note::
- A *channel-group* is a group of interfaces on a single Arista switch. A *channel-group* is associated with a *port-channel* interface immediately upon its creation. The *channel-group* command implicitly creates the matching *port-channel* with the same ID, which is *10* in this case. The *switchport mode trunk* command allows all VLANs on *port-channel 10*.
-
- 2. Verify switching operation
-
- .. code-block:: text
-
- show interfaces status
- show lldp neighbors
- show interfaces trunk
-
- .. note::
- Each switch is assigned a globally unique sysID by concatenating the 16-bit system priority to a 48-bit MAC address of one of the switch's physical ports. This sysID is used by peer devices when forming an aggregation to verify that all links are from the same switch - for environments where the MLAG peer link contains multiple physical links - which it does NOT in this example. A *trunk group* is the set of physical interfaces that comprise the trunk and the collection of VLANs whose traffic is carried on the trunk. The traffic of a VLAN that belongs to one or more trunk groups is carried only on ports that are members of trunk groups to which the VLAN belongs, i.e., VLANs configured in a *trunk group* are ‘pruned’ off all ports that are not associated with the trunk group. The spanning-tree protocol (STP) is disabled for the peer-link VLAN 4094 to prevent any potential STP disruption on the interpeer communications link. Since VLAN 4094 has been restricted to only be on the peer-link (Po10) by *trunk group MLAGPEER* & *switchport trunk group MLAGPEER* (see step #2.3) the chance of a loop is eliminated. To prevent loops do NOT add this *trunk group MLAGPEER* to any other interface links.
-
- 3. Configure the MLAG VLAN (both Layer 2 and Layer 3).
-
- .. code-block:: text
-
- configure
- vlan 4094
- trunk group MLAGPEER
-
- interface port-channel 10
- switchport trunk group MLAGPEER
-
- no spanning-tree vlan-id 4094
-
- interface vlan 4094
- description MLAG PEER LINK
- ip address 172.16.34.2/30
-
- ping 172.16.34.1
-
- .. note::
- The *ip address 172.16.34.2/30* (see step #2.3) assigned to one side of the peer-link can be any unicast address that does not conflict with any SVIs on the same switch. The *local-interface vlan 4094* command (see step #2.4) specifies the SVI upon which the switch sends MLAG control traffic. The IP address is specified within the definition of the VLAN associated with this local interface, which you already performed earlier above. While the peer-link's (designated with the command *peer-link port-channel 10* (see below)) primary purpose is to exchange MLAG control information between the 2 peer switches, it also carries dataplane traffic from devices that are attached to only 1 MLAG peer & have no alternative path. This peer-link can also carry traffic in topology failure scenarios (i.e. one of these peer-link switches loses all its uplinks to the spine switches). The *domain-id MLAG34* command determines the MLAG domain that consists of these 2 peer switches & the links that connect these 2 switches. The *domain-id* is case-sensitive and must match the same *domain-id* on the other peer switch.
-
- 4. Define the MLAG Domain.
-
- .. code-block:: text
-
- configure
- mlag
- domain-id MLAG34
- local-interface vlan 4094
- peer-address 172.16.34.1
- peer-link port-channel 10
-
- 5. Configure Port-channels and interfaces on **Leaf4** connecting to **Spine1** & **Spine2**.
-
- .. code-block:: text
-
- configure
- interface port-channel 34
- description MLAG - SPINE1 & 2
- switchport mode trunk
- mlag 34
-
- interface ethernet 2
- description SPINE1
- channel-group 34 mode active
-
- interface ethernet 3
- description SPINE2
- channel-group 34 mode active
-
- .. note::
- The *mlag 34* (see #2.5) assigns an MLAG ID to *interface port-channel 34*. MLAG peer switches form an MLAG when each switch configures the same MLAG ID to a port-channel interface. This is **different** than the MLAG *domain-id* (see #2.4). The global-scope *mlag* command above (see #2.4) just enters the global MLAG configuration scope of the Arista switch.
-
- 6. Configure Port-channels on **Leaf4** connecting to **Host2**
-
- .. code-block:: text
-
- configure
- interface port-channel 4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
-
- interface ethernet 4
- description HOST2
- channel-group 4 mode active
-
- interface ethernet5
- shutdown
-
-3. Validate MLAG on the **Leaf4** switch using the following:
-
- 1. Verify MLAG operation
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
-
- 2. Verify switching operation
-
- .. code-block:: text
-
- show interfaces status
- show lldp neighbors
- show interfaces trunk
-
- 3. Validate connectivity from **Host1** to **Host2** by logging into **Host1** through the menu (option 1 in ssh menu) or using screen.
-
- .. code-block:: text
-
- ping 172.16.112.202
-
-|
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/labguides/source/ucn-vxlan.rst b/topologies/datacenter-latest/labguides/source/ucn-vxlan.rst
deleted file mode 100644
index 700c445ed..000000000
--- a/topologies/datacenter-latest/labguides/source/ucn-vxlan.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-VxLAN
-=====
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. On **Leaf3**, configure Port-channels connecting to **Host2**
-
- .. code-block:: text
-
- configure
- interface port-channel 4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
-
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-
-2. Verify MLAG on **Leaf3**
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
- show port-channel
-
-3. Validate BGP operation **Leaf3**
-
- .. code-block:: text
-
- show run section bgp
- show ip route bgp
- show ip route
- show ip interface brief
- show ip bgp summary
-
-.. note:: ``show ip bgp summary`` will show that the BGP neighbors have moved to ``Estab`` state. Note the iBGP peering between Leaf3 & Leaf4. Also note the route to the shared loopback1 of Leaf1 & Leaf2. This is the remote VTEP on the other side of the leaf-spine network.
-
-4. Create Loopback 1 and the VXLAN VTEP (VTI) interfaces on **Leaf3**
-
- 1. Configuration
-
- .. code-block:: text
-
- configure
- interface Loopback1
- ip address 172.16.0.56/32
-
- interface vxlan 1
- vxlan source-interface loopback 1
- vxlan vlan 12 vni 1212
- vxlan flood vtep 172.16.0.34
-
- .. note:: ``vxlan flood vtep 172.16.0.34`` adds the shared loopback1 IP address on Leaf1 & Leaf2 to the HER list. Note that for autodiscovery of VTEPs, one must use BGP eVPN (see eVPN labs) or CVX (see CVX lab).
-
- 2. Verification
-
- .. code-block:: text
-
- show run interface vxlan 1
- show interface vxlan 1
-
-5. Log into **Host 1** and **Host 2**, ping the vARP VIP and the other host
-
- 1. Host 1 ping tests. From **Host1**:
-
- .. code-block:: text
-
- ping 172.16.112.1
- ping 172.16.112.202
-
- .. note:: The TTL in the ping outputs above. Even though .202 is many
- switches away, it appears locally connected and has the same
- TTL as the ping to .1. It's also interesting to realize that
- due to MLAG hashing of both the ARP requests and ping packet
- flows that pings to the SVI addresses of .2 & .3 may or may not
- work. Do you know why?
-
- 2. Host 1 MAC/ARP information
-
- .. code-block:: text
-
- show interface po1 | grep -i Hardware
- show arp
-
- .. note:: Note the MAC addresses returned by the commands above.
-
- 3. Host 2 ping tests. From **Host2**:
-
- .. code-block:: text
-
- ping 172.16.112.1
- ping 172.16.112.201
-
- .. note:: Note the TTL in the ping outputs above. Even though .201 is many
- switches away, it appears locally connected and has the same TTL
- as the ping to .1. Also note that the vARP VIP (172.16.112.1)
- address & and vARP MAC address (00:1c:73:00:00:ff) are the **same** for both leaf
- pairs - this IP address is known as an AnyCast IP address. If
- a VM was motioning from **Host1** to **Host2** for maintenance,
- the default GW address nor the ARP cache on that VM need to
- change.
-
- 4. Host 2 MAC/ARP information
-
- .. code-block:: text
-
- show interface po1 | grep -i Hardware
- show arp
-
- .. note:: Note the MAC addresses returned by the commands above and
- compare to the prior ``grep`` and ``arp`` commands and see that
- both hosts appear to each other as though they are on the same
- L2 broadcast domain. **For a little extra fun**, as you are
- running the pings from **host1**, on another set of windows
- for **leaf1** & **leaf2** run ``clear counters`` then run
- ``watch 1 diff show int e4 counter`` and see how MLAG hashing
- across the different pings causes the packets to choose a
- particular member of the port-channel in both the outbound &
- inbound ping flows.
-
-6. Verification – on **Leaf 1/2** and **Leaf 3/4**
-
- 1. Verify the MAC addresses and the associated VTEP IP
-
- .. code-block:: text
-
- show vxlan vtep
- show vxlan address-table
-
- .. note:: For ``show vxlan vtep`` & ``show vxlan address-table`` to be
- populated, the above ``pings`` need to have been active very
- recently so that the MAC addresses don't age out, and you'll
- notice that at least 1 (but not necessarily both) of the MLAG
- pair switches (**leaf1** or
- **leaf2**) will have knowledge of the remote VTEP. This is
- because this is the direction the pings (inbound & outbound)
- last hashed.
-
- 2. Verify the MAC address and the associated interface
-
- .. code-block:: text
-
- show mac address-table
-
-7. Let’s run some other show commands and tests to poke around VxLAN. On **Leaf1** and **Leaf3** issue the following commands:
-
- .. code-block:: text
-
- show interface vxlan 1
- show mac address-table
- show log
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/labguides/source/vxlan.rst b/topologies/datacenter-latest/labguides/source/vxlan.rst
deleted file mode 100644
index 8be8fc5dc..000000000
--- a/topologies/datacenter-latest/labguides/source/vxlan.rst
+++ /dev/null
@@ -1,173 +0,0 @@
-VxLAN
-=====
-
-.. image:: images/vxlan_1.png
- :align: center
-
-.. note:: Did you know the ``vxlan`` script is composed of Python code that
- uses the CloudVision Portal REST API to automate the provisioning of
- CVP configlets. The configlets that are configured via the REST API
- are ``Spine1-BGP-Lab``, ``Spine2-BGP-Lab``, ``Leaf1-VXLAN-Lab``,
- ``Leaf2-VXLAN-Lab``, ``Leaf3-VXLAN-Lab``, ``Leaf4-VXLAN-Lan``. In
- addition each leaf also gets the ``VLANs`` configlet.
-
-.. note:: The manually-entered commands below that are part of this lab are
- equivalent to ``Leaf3-VXLAN-Lab-Full``.
-
-
-1. Log into the LabAccess jumpserver:
-
- 1. Type ``vxlan`` at the prompt. The script will configure the datacenter with the exception of **Leaf3**.
-
-2. On **Leaf3**, configure Port-channels connecting to **Host2**
-
- .. code-block:: text
-
- configure
- interface port-channel 4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
-
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-
-3. Verify MLAG on **Leaf3**
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
- show port-channel
-
-4. Validate BGP operation **Leaf3**
-
- .. code-block:: text
-
- show run section bgp
- show ip route bgp
- show ip route
- show ip interface brief
- show ip bgp summary
-
-.. note:: ``show ip bgp summary`` will show that the BGP neighbors have moved to ``Estab`` state. Note the iBGP peering between Leaf3 & Leaf4. Also note the route to the shared loopback1 of Leaf1 & Leaf2. This is the remote VTEP on the other side of the leaf-spine network.
-
-5. Create Loopback 1 and the VXLAN VTEP (VTI) interfaces on **Leaf3**
-
- 1. Configuration
-
- .. code-block:: text
-
- configure
- interface Loopback1
- ip address 172.16.0.56/32
-
- interface vxlan 1
- vxlan source-interface loopback 1
- vxlan vlan 12 vni 1212
- vxlan flood vtep 172.16.0.34
-
- .. note:: ``vxlan flood vtep 172.16.0.34`` adds the shared loopback1 IP address on Leaf1 & Leaf2 to the HER list. Note that for autodiscovery of VTEPs, one must use BGP eVPN (see eVPN labs) or CVX (see CVX lab).
-
- 2. Verification
-
- .. code-block:: text
-
- show run interface vxlan 1
- show interface vxlan 1
-
-6. Log into **Host 1** and **Host 2**, ping the vARP VIP and the other host
-
- 1. Host 1 ping tests. From **Host1**:
-
- .. code-block:: text
-
- ping 172.16.112.1
- ping 172.16.112.202
-
- .. note:: The TTL in the ping outputs above. Even though .202 is many
- switches away, it appears locally connected and has the same
- TTL as the ping to .1. It's also interesting to realize that
- due to MLAG hashing of both the ARP requests and ping packet
- flows that pings to the SVI addresses of .2 & .3 may or may not
- work. Do you know why?
-
- 2. Host 1 MAC/ARP information
-
- .. code-block:: text
-
- show interface po1 | grep -i Hardware
- show arp
-
- .. note:: Note the MAC addresses returned by the commands above.
-
- 3. Host 2 ping tests. From **Host2**:
-
- .. code-block:: text
-
- ping 172.16.112.1
- ping 172.16.112.201
-
- .. note:: Note the TTL in the ping outputs above. Even though .201 is many
- switches away, it appears locally connected and has the same TTL
- as the ping to .1. Also note that the vARP VIP (172.16.112.1)
- address & and vARP MAC address (00:1c:73:00:00:ff) are the **same** for both leaf
- pairs - this IP address is known as an AnyCast IP address. If
- a VM was motioning from **Host1** to **Host2** for maintenance,
- the default GW address nor the ARP cache on that VM need to
- change.
-
- 4. Host 2 MAC/ARP information
-
- .. code-block:: text
-
- show interface po1 | grep -i Hardware
- show arp
-
- .. note:: Note the MAC addresses returned by the commands above and
- compare to the prior ``grep`` and ``arp`` commands and see that
- both hosts appear to each other as though they are on the same
- L2 broadcast domain. **For a little extra fun**, as you are
- running the pings from **host1**, on another set of windows
- for **leaf1** & **leaf2** run ``clear counters`` then run
- ``watch 1 diff show int e4 counter`` and see how MLAG hashing
- across the different pings causes the packets to choose a
- particular member of the port-channel in both the outbound &
- inbound ping flows.
-
-7. Verification – on **Leaf 1/2** and **Leaf 3/4**
-
- 1. Verify the MAC addresses and the associated VTEP IP
-
- .. code-block:: text
-
- show vxlan vtep
- show vxlan address-table
-
- .. note:: For ``show vxlan vtep`` & ``show vxlan address-table`` to be
- populated, the above ``pings`` need to have been active very
- recently so that the MAC addresses don't age out, and you'll
- notice that at least 1 (but not necessarily both) of the MLAG
- pair switches (**leaf1** or
- **leaf2**) will have knowledge of the remote VTEP. This is
- because this is the direction the pings (inbound & outbound)
- last hashed.
-
- 2. Verify the MAC address and the associated interface
-
- .. code-block:: text
-
- show mac address-table
-
-8. Let’s run some other show commands and tests to poke around VxLAN. On **Leaf1** and **Leaf3** issue the following commands:
-
- .. code-block:: text
-
- show interface vxlan 1
- show mac address-table
- show log
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter-latest/topo_build.yml b/topologies/datacenter-latest/topo_build.yml
deleted file mode 100644
index 540af68f4..000000000
--- a/topologies/datacenter-latest/topo_build.yml
+++ /dev/null
@@ -1,178 +0,0 @@
-cloud_service: aws:adc
-default_interfaces: 8
-default_ami_name: 4.23.0.1F-E
-cvp_instance: singlenode
-cvp_version: 2019.1.2
-topology_name: datacenter-latest
-external_configuration: true
-only_add_to_inventory: false
-custom_ami_names: false
-preconfigured: false
-topology_link: true
-host_cpu: 4
-cvp_cpu: 16
-veos_cpu: 1
-
-nodes:
- - spine1:
- # interfaces: 8
- ip_addr: 192.168.0.10
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet5
-
- - spine2:
- # interfaces: 8
- ip_addr: 192.168.0.11
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet5
-
- - leaf1:
- # interfaces: 8
- ip_addr: 192.168.0.12
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: host1
- neighborPort: Ethernet3
- port: Ethernet5
-
-
- - leaf2:
- # interfaces: 8
- ip_addr: 192.168.0.13
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: host1
- neighborPort: Ethernet4
- port: Ethernet5
-
-
- - leaf3:
- # interfaces: 8
- ip_addr: 192.168.0.14
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: host2
- neighborPort: Ethernet3
- port: Ethernet5
-
-
- - leaf4:
- # interfaces: 8
- ip_addr: 192.168.0.15
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: host2
- neighborPort: Ethernet4
- port: Ethernet5
-
-
- - host1:
- # interfaces: 8
- ip_addr: 192.168.0.16
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
-
- - host2:
- # interfaces: 8
- ip_addr: 192.168.0.17
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet4
-
- - cvx01:
- ip_addr: 192.168.0.18
- neighbors: []
-
\ No newline at end of file
diff --git a/topologies/datacenter/Datacenter-nocvp.yml b/topologies/datacenter/Datacenter-nocvp.yml
deleted file mode 100644
index 8b8325373..000000000
--- a/topologies/datacenter/Datacenter-nocvp.yml
+++ /dev/null
@@ -1,179 +0,0 @@
-cloud_service: aws:adc
-default_interfaces: 8
-default_ami_name: cloud-deploy-veos-4.24.1F
-topology_name: datacenter-latest
-external_configuration: true
-only_add_to_inventory: false
-custom_ami_names: true
-preconfigured: false
-topology_link: true
-reboot_veos_nodes: true
-
-nodes:
- - spine1:
- # interfaces: 8
- ip_addr: 192.168.0.10
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet5
-
- - spine2:
- # interfaces: 8
- ip_addr: 192.168.0.11
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet5
-
- - leaf1:
- # interfaces: 8
- ip_addr: 192.168.0.14
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: host1
- neighborPort: Ethernet3
- port: Ethernet5
-
-
- - leaf2:
- # interfaces: 8
- ip_addr: 192.168.0.15
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: host1
- neighborPort: Ethernet4
- port: Ethernet5
-
-
- - leaf3:
- # interfaces: 8
- ip_addr: 192.168.0.16
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: host2
- neighborPort: Ethernet3
- port: Ethernet5
-
-
- - leaf4:
- # interfaces: 8
- ip_addr: 192.168.0.17
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: host2
- neighborPort: Ethernet4
- port: Ethernet5
-
-
- - host1:
- # interfaces: 8
- ip_addr: 192.168.0.31
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
-
- - host2:
- # interfaces: 8
- ip_addr: 192.168.0.32
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet4
-
- - cvx01:
- ip_addr: 192.168.0.44
- neighbors: []
-
- - atd_jump_host:
- neighbors: []
- ami_name: "cloud-deploy-jh-2020-11-13"
- ip_addr: 192.168.0.4
-
diff --git a/topologies/datacenter/Datacenter.yml b/topologies/datacenter/Datacenter.yml
deleted file mode 100644
index ca7cef5f1..000000000
--- a/topologies/datacenter/Datacenter.yml
+++ /dev/null
@@ -1,179 +0,0 @@
-cloud_service: aws:adc
-default_interfaces: 8
-default_ami_name: cloud-deploy-veos-4.24.1F
-cvp_instance: singlenode
-cvp_version: cloud-deploy-cvp-2020.1.1
-topology_name: datacenter-latest
-external_configuration: true
-only_add_to_inventory: false
-custom_ami_names: true
-preconfigured: false
-topology_link: true
-
-nodes:
- - spine1:
- # interfaces: 8
- ip_addr: 192.168.0.10
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet5
-
- - spine2:
- # interfaces: 8
- ip_addr: 192.168.0.11
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet5
-
- - leaf1:
- # interfaces: 8
- ip_addr: 192.168.0.14
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: host1
- neighborPort: Ethernet3
- port: Ethernet5
-
-
- - leaf2:
- # interfaces: 8
- ip_addr: 192.168.0.15
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: host1
- neighborPort: Ethernet4
- port: Ethernet5
-
-
- - leaf3:
- # interfaces: 8
- ip_addr: 192.168.0.16
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: host2
- neighborPort: Ethernet3
- port: Ethernet5
-
-
- - leaf4:
- # interfaces: 8
- ip_addr: 192.168.0.17
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: host2
- neighborPort: Ethernet4
- port: Ethernet5
-
-
- - host1:
- # interfaces: 8
- ip_addr: 192.168.0.31
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
-
- - host2:
- # interfaces: 8
- ip_addr: 192.168.0.32
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet4
-
- - cvx01:
- ip_addr: 192.168.0.44
- neighbors: []
-
- - atd_jump_host:
- neighbors: []
- ami_name: "cloud-deploy-jh-2020-11-13"
- ip_addr: 192.168.0.4
\ No newline at end of file
diff --git a/topologies/datacenter/atd-topo.png b/topologies/datacenter/atd-topo.png
deleted file mode 100644
index 16d24d219..000000000
Binary files a/topologies/datacenter/atd-topo.png and /dev/null differ
diff --git a/topologies/datacenter/configlets/ATD-INFRA b/topologies/datacenter/configlets/ATD-INFRA
deleted file mode 100644
index e06947ed8..000000000
--- a/topologies/datacenter/configlets/ATD-INFRA
+++ /dev/null
@@ -1,33 +0,0 @@
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management1
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management1
-!
-management api http-commands
- no shutdown
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Add_Loopbacks.py b/topologies/datacenter/configlets/Add_Loopbacks.py
deleted file mode 100644
index 0e29654bd..000000000
--- a/topologies/datacenter/configlets/Add_Loopbacks.py
+++ /dev/null
@@ -1,52 +0,0 @@
-from sys import path
-path.append('/usr/lib64/python2.7/site-packages/')
-import yaml
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Device
-
-ztp = CVPGlobalVariables.getValue(GlobalVariableNames.ZTP_STATE)
-ip = CVPGlobalVariables.getValue(GlobalVariableNames.CVP_IP)
-
-if ztp == 'true':
- user = CVPGlobalVariables.getValue(GlobalVariableNames.ZTP_USERNAME)
- passwd = CVPGlobalVariables.getValue(GlobalVariableNames.ZTP_PASSWORD)
-else:
- user = CVPGlobalVariables.getValue(GlobalVariableNames.CVP_USERNAME)
- passwd = CVPGlobalVariables.getValue(GlobalVariableNames.CVP_PASSWORD)
-
-ss = Device(ip,user,passwd)
-
-def get_hostname():
- show_hostname = ss.runCmds(["enable", {"cmd": "show hostname"}])[1]
- hostname = show_hostname['response']['hostname']
- return hostname
-
-def get_bgpasn():
- show_ip_bgp_summary = ss.runCmds(["enable", {"cmd": "show ip bgp summary"}])[1]
- asn = show_ip_bgp_summary['response']['vrfs']['default']['asn']
- return asn
-
-def create_routes(hostname):
- number = hostname[-1:]
- if hostname.startswith("leaf"):
- switch_type = "10"
- elif hostname.startswith("spine"):
- switch_type = "20"
- for x in range(100, 200):
- print "interface Loopback%d" % (x)
- print " ip add 10.%s.%s.%d/32" % (switch_type, number, x)
- return
-
-def add_bgp_conf(asn):
- print 'router bgp %s' % asn
- print ' redistribute connected'
- return
-
-def main():
- hostname = get_hostname()
- if hostname.startswith("leaf" or "spine"):
- create_routes(hostname)
- asn = get_bgpasn()
- add_bgp_conf(asn)
-
-if __name__ == "__main__":
- main()
diff --git a/topologies/datacenter/configlets/BaseIPv4_Cvx01 b/topologies/datacenter/configlets/BaseIPv4_Cvx01
deleted file mode 100644
index 8a296a572..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Cvx01
+++ /dev/null
@@ -1,4 +0,0 @@
-hostname cvx01
-!
-interface Management1
- ip address 192.168.0.18/24
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/BaseIPv4_Host1 b/topologies/datacenter/configlets/BaseIPv4_Host1
deleted file mode 100644
index a2b65b11f..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Host1
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname host1
-!
-interface Management1
- ip address 192.168.0.16/24
-!
-ip routing
diff --git a/topologies/datacenter/configlets/BaseIPv4_Host1_EVPN_GUIDE b/topologies/datacenter/configlets/BaseIPv4_Host1_EVPN_GUIDE
deleted file mode 100644
index dd332f98d..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Host1_EVPN_GUIDE
+++ /dev/null
@@ -1,42 +0,0 @@
-alias a cli vrf HostA
-alias b cli vrf HostB
-alias def cli vrf default
-!
-hostname host1
-!
-vlan 10
- name Ten
-!
-vrf instance HostA
-!
-vrf instance HostB
-!
-interface Port-Channel10
- description HostA
- no switchport
- vrf HostA
- ip address 10.10.10.100/24
-!
-interface Ethernet1
- no switchport
- channel-group 10 mode active
- lacp timer fast
-!
-interface Ethernet2
- no switchport
- channel-group 10 mode active
- lacp timer fast
-!
-interface Ethernet4
- no switchport
- vrf HostB
- ip address 20.20.20.100/24
-!
-interface Management1
- ip address 192.168.0.16/24
-!
-ip route vrf HostB 0.0.0.0/0 20.20.20.1
-ip route vrf HostA 0.0.0.0/0 10.10.10.1
-!
-ip routing vrf HostB
-ip routing vrf HostA
diff --git a/topologies/datacenter/configlets/BaseIPv4_Host2 b/topologies/datacenter/configlets/BaseIPv4_Host2
deleted file mode 100644
index 4935b9d07..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Host2
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname host2
-!
-interface Management1
- ip address 192.168.0.17/24
-!
-ip routing
diff --git a/topologies/datacenter/configlets/BaseIPv4_Host2_EVPN_GUIDE b/topologies/datacenter/configlets/BaseIPv4_Host2_EVPN_GUIDE
deleted file mode 100644
index 3d1b4e932..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Host2_EVPN_GUIDE
+++ /dev/null
@@ -1,38 +0,0 @@
-alias c cli vrf HostC
-alias d cli vrf HostD
-alias def cli vrf default
-!
-hostname host2
-!
-vrf instance HostC
-!
-vrf instance HostD
-!
-interface Port-Channel20
- no switchport
- vrf HostC
- ip address 30.30.30.100/24
-!
-interface Ethernet1
- no switchport
- channel-group 20 mode active
-!
-interface Ethernet2
- no switchport
- channel-group 20 mode active
-!
-interface Ethernet3
-!
-interface Ethernet4
- no switchport
- vrf HostD
- ip address 10.10.10.200/24
-!
-interface Management1
- ip address 192.168.0.17/24
-!
-ip route vrf HostC 0.0.0.0/0 30.30.30.1
-ip route vrf HostD 0.0.0.0/0 10.10.10.1
-!
-ip routing vrf HostC
-ip routing vrf HostD
diff --git a/topologies/datacenter/configlets/BaseIPv4_Leaf1 b/topologies/datacenter/configlets/BaseIPv4_Leaf1
deleted file mode 100644
index f4aecec37..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Leaf1
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname leaf1
-!
-interface Management1
- ip address 192.168.0.12/24
-!
-ip routing
diff --git a/topologies/datacenter/configlets/BaseIPv4_Leaf1_EVPN_GUIDE b/topologies/datacenter/configlets/BaseIPv4_Leaf1_EVPN_GUIDE
deleted file mode 100644
index 81f2ae7cb..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Leaf1_EVPN_GUIDE
+++ /dev/null
@@ -1,21 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname leaf1
-!
-interface Ethernet1
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 10.101.201.101/24
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 10.101.202.101/24
-!
-interface Loopback0
- ip address 1.1.1.101/32
-!
-interface Management1
- ip address 192.168.0.12/24
diff --git a/topologies/datacenter/configlets/BaseIPv4_Leaf2 b/topologies/datacenter/configlets/BaseIPv4_Leaf2
deleted file mode 100644
index 1e36f4b7b..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Leaf2
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname leaf2
-!
-interface Management1
- ip address 192.168.0.13/24
-!
-ip routing
diff --git a/topologies/datacenter/configlets/BaseIPv4_Leaf2_EVPN_GUIDE b/topologies/datacenter/configlets/BaseIPv4_Leaf2_EVPN_GUIDE
deleted file mode 100644
index 415adebbe..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Leaf2_EVPN_GUIDE
+++ /dev/null
@@ -1,21 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname leaf2
-!
-interface Ethernet1
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 10.102.201.102/24
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 10.102.202.102/24
-!
-interface Loopback0
- ip address 1.1.1.102/32
-!
-interface Management1
- ip address 192.168.0.13/24
diff --git a/topologies/datacenter/configlets/BaseIPv4_Leaf3 b/topologies/datacenter/configlets/BaseIPv4_Leaf3
deleted file mode 100644
index e3b9bee61..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Leaf3
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname leaf3
-!
-interface Management1
- ip address 192.168.0.14/24
-!
-ip routing
diff --git a/topologies/datacenter/configlets/BaseIPv4_Leaf3_EVPN_GUIDE b/topologies/datacenter/configlets/BaseIPv4_Leaf3_EVPN_GUIDE
deleted file mode 100644
index 4f6bbbb74..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Leaf3_EVPN_GUIDE
+++ /dev/null
@@ -1,21 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname leaf3
-!
-interface Ethernet1
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 10.103.201.103/24
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 10.103.202.103/24
-!
-interface Loopback0
- ip address 1.1.1.103/32
-!
-interface Management1
- ip address 192.168.0.14/24
diff --git a/topologies/datacenter/configlets/BaseIPv4_Leaf4 b/topologies/datacenter/configlets/BaseIPv4_Leaf4
deleted file mode 100644
index b03ef3784..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Leaf4
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname leaf4
-!
-interface Management1
- ip address 192.168.0.15/24
-!
-ip routing
diff --git a/topologies/datacenter/configlets/BaseIPv4_Leaf4_EVPN_GUIDE b/topologies/datacenter/configlets/BaseIPv4_Leaf4_EVPN_GUIDE
deleted file mode 100644
index 0ac803856..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Leaf4_EVPN_GUIDE
+++ /dev/null
@@ -1,19 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname leaf4
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 10.104.201.104/24
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 10.104.202.104/24
-!
-interface Loopback0
- ip address 1.1.1.104/32
-!
-interface Management1
- ip address 192.168.0.15/24
diff --git a/topologies/datacenter/configlets/BaseIPv4_Spine1 b/topologies/datacenter/configlets/BaseIPv4_Spine1
deleted file mode 100644
index cd011b148..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Spine1
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname spine1
-!
-interface Management1
- ip address 192.168.0.10/24
-!
-ip routing
diff --git a/topologies/datacenter/configlets/BaseIPv4_Spine1_EVPN_GUIDE b/topologies/datacenter/configlets/BaseIPv4_Spine1_EVPN_GUIDE
deleted file mode 100644
index 78157421d..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Spine1_EVPN_GUIDE
+++ /dev/null
@@ -1,32 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname spine1
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description LEAF1
- no switchport
- ip address 10.101.201.201/24
-!
-interface Ethernet3
- description LEAF2
- no switchport
- ip address 10.102.201.201/24
-!
-interface Ethernet4
- description LEAF3
- no switchport
- ip address 10.103.201.201/24
-!
-interface Ethernet5
- description LEAF4
- no switchport
- ip address 10.104.201.201/24
-!
-interface Loopback0
- ip address 1.1.1.201/32
-!
-interface Management1
- ip address 192.168.0.10/24
diff --git a/topologies/datacenter/configlets/BaseIPv4_Spine2 b/topologies/datacenter/configlets/BaseIPv4_Spine2
deleted file mode 100644
index b4b916a73..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Spine2
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname spine2
-!
-interface Management1
- ip address 192.168.0.11/24
-!
-ip routing
diff --git a/topologies/datacenter/configlets/BaseIPv4_Spine2_EVPN_GUIDE b/topologies/datacenter/configlets/BaseIPv4_Spine2_EVPN_GUIDE
deleted file mode 100644
index 547afa157..000000000
--- a/topologies/datacenter/configlets/BaseIPv4_Spine2_EVPN_GUIDE
+++ /dev/null
@@ -1,32 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname spine2
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description LEAF1
- no switchport
- ip address 10.101.202.202/24
-!
-interface Ethernet3
- description LEAF2
- no switchport
- ip address 10.102.202.202/24
-!
-interface Ethernet4
- description LEAF3
- no switchport
- ip address 10.103.202.202/24
-!
-interface Ethernet5
- description LEAF4
- no switchport
- ip address 10.104.202.202/24
-!
-interface Loopback0
- ip address 1.1.1.202/32
-!
-interface Management1
- ip address 192.168.0.11/24
diff --git a/topologies/datacenter/configlets/Host1-ATD b/topologies/datacenter/configlets/Host1-ATD
deleted file mode 100644
index eef24fc04..000000000
--- a/topologies/datacenter/configlets/Host1-ATD
+++ /dev/null
@@ -1,26 +0,0 @@
-interface Port-Channel1
- no switchport
- ip address 172.16.112.201/24
-!
-interface Port-Channel2
- no switchport
- ip address 172.16.115.100/24
-!
-interface Ethernet1
- channel-group 1 mode active
- lacp timer fast
-!
-interface Ethernet2
- channel-group 1 mode active
- lacp timer fast
-!
-interface Ethernet3
- channel-group 2 mode active
- lacp timer fast
-!
-interface Ethernet4
- channel-group 2 mode active
- lacp timer fast
-!
-ip route 172.16.116.0/24 172.16.115.1
-ip route 172.16.134.0/24 172.16.112.1
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Host1-Media b/topologies/datacenter/configlets/Host1-Media
deleted file mode 100644
index ef98e98de..000000000
--- a/topologies/datacenter/configlets/Host1-Media
+++ /dev/null
@@ -1,15 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 172.16.15.5/24
-!
-interface Ethernet2
- shutdown
-!
-interface Ethernet3
- shutdown
-!
-interface Ethernet4
- shutdown
-!
-ip route 10.127.0.0/16 172.16.15.1
-ip route 172.16.0.0/16 172.16.15.1
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Host1_STUDIO_L3LS_EVPN b/topologies/datacenter/configlets/Host1_STUDIO_L3LS_EVPN
deleted file mode 100644
index 8754e502f..000000000
--- a/topologies/datacenter/configlets/Host1_STUDIO_L3LS_EVPN
+++ /dev/null
@@ -1,18 +0,0 @@
-vlan 60
-vlan 70
-
-
-interface E1-E4
- lacp timer fast
-channel-group 1 mode active
-
-interface port-channel 1
-switchport mode trunk
-
-interface vlan 60
-ip address 10.60.60.160/24
-
-interface vlan 70
-ip address 10.70.70.170/24
-
-ip route 0.0.0.0/0 10.60.60.1
diff --git a/topologies/datacenter/configlets/Host2-ATD b/topologies/datacenter/configlets/Host2-ATD
deleted file mode 100644
index 640061cfc..000000000
--- a/topologies/datacenter/configlets/Host2-ATD
+++ /dev/null
@@ -1,23 +0,0 @@
-interface Port-Channel1
- no switchport
- ip address 172.16.112.202/24
-!
-interface Port-Channel2
- no switchport
- ip address 172.16.116.100/24
-!
-interface Ethernet1
- channel-group 1 mode active
-!
-interface Ethernet2
- channel-group 1 mode active
-!
-interface Ethernet3
- channel-group 2 mode active
-!
-interface Ethernet4
- channel-group 2 mode active
-!
-!
-ip route 172.16.115.0/24 172.16.116.1
-ip route 172.16.112.0/24 172.16.134.1
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Host2-Media b/topologies/datacenter/configlets/Host2-Media
deleted file mode 100644
index b5bb8ed49..000000000
--- a/topologies/datacenter/configlets/Host2-Media
+++ /dev/null
@@ -1,23 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.46.6/24
-!
-!
-interface Ethernet3
- shutdown
-!
-interface Ethernet4
- shutdown
-!
-ip route 10.127.0.0/16 172.16.46.4
-ip route 172.16.0.0/16 172.16.46.4
-!
-ip routing
-!
-!
-router multicast
- ipv4
- software-forwarding sfe
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Host2_STUDIO_L3LS_EVPN b/topologies/datacenter/configlets/Host2_STUDIO_L3LS_EVPN
deleted file mode 100644
index 750f66a58..000000000
--- a/topologies/datacenter/configlets/Host2_STUDIO_L3LS_EVPN
+++ /dev/null
@@ -1,18 +0,0 @@
-vlan 60
-vlan 70
-
-
-interface E1-E4
- lacp timer fast
-channel-group 1 mode active
-
-interface port-channel 1
-switchport mode trunk
-
-interface vlan 60
-ip address 10.60.60.161/24
-
-interface vlan 70
-ip address 10.70.70.171/24
-
-ip route 0.0.0.0/0 10.60.60.1
diff --git a/topologies/datacenter/configlets/L3LS and VARP Builder.py b/topologies/datacenter/configlets/L3LS and VARP Builder.py
deleted file mode 100644
index c96eaeec1..000000000
--- a/topologies/datacenter/configlets/L3LS and VARP Builder.py
+++ /dev/null
@@ -1,119 +0,0 @@
-import sys, jsonrpclib
-sys.path.append('/usr/lib64/python2.7/site-packages/')
-import yaml
-from cvplibrary import CVPGlobalVariables as cvpGV
-from cvplibrary import GlobalVariableNames as GVN
-
-def sendCmd(commands):
- ztp = cvpGV.getValue(GVN.ZTP_STATE)
- hostip = cvpGV.getValue(GVN.CVP_IP)
- if ztp == 'true':
- user = cvpGV.getValue(GVN.ZTP_USERNAME)
- passwd = cvpGV.getValue(GVN.ZTP_PASSWORD)
- else:
- user = cvpGV.getValue(GVN.CVP_USERNAME)
- passwd = cvpGV.getValue(GVN.CVP_PASSWORD)
-
- url = "https://%s:%s@%s/command-api" % (user, passwd, hostip)
- switch = jsonrpclib.Server(url)
- response = switch.runCmds(1, commands)[0]
- return response
-
-
-hostname = sendCmd(['show hostname'])['hostname']
-f = open('hostvars/%s.yml' % hostname )
-info = yaml.load(f)
-
-if 'interfaces' not in info.keys():
- print ''
-else:
- print 'ip routing'
- print '!'
- for d in info['interfaces']:
- print 'interface %s' % d['interface']
- if 'Loopback' not in d['interface']:
- print ' no switchport'
- print ' ip address %s/%s' % (d['ip'], d['cidr'])
- print '!'
-
-if 'bgp' not in info.keys():
- print ''
-else:
- print 'router bgp %s' % info['bgp']['as']
- print ' maximum-paths 4 ecmp 4'
- for d in info['bgp']['bgp_neighbors']:
- print ' neighbor %s remote-as %s' % (d['ip'], d['remote-as'])
- for n in info['bgp']['networks']:
- print ' network %s' % n
- print '!'
-
-if 'mlag' not in info.keys():
- print ''
-elif 'spine' in hostname:
- print ''
-else:
- print 'vlan %s' % info['mlag']['peer_vlan']
- print ' name MLAGPeerLink'
- print ' trunk group mlagPeer'
- print '!'
- print 'no spanning-tree vlan-id %s' % info['mlag']['peer_vlan']
- print '!'
- for i in info['mlag']['peer_interfaces']:
- print 'interface %s' % i
- print ' channel-group %s mode active' % info['mlag']['peer_link'].replace('Port-Channel','')
- print '!'
-
- print 'interface %s' % info['mlag']['peer_link']
- print ' description MLAGPeerLink'
- print ' switchport mode trunk'
- print ' switchport trunk group mlagPeer'
- print '!'
-
- print 'interface Vlan%s' % info['mlag']['peer_vlan']
- print ' description MLAGPeerIP'
- print ' ip address %s/%s' % (info['mlag']['ip'], info['mlag']['cidr'])
- print '!'
-
- print 'mlag configuration'
- print ' domain %s' % info['mlag']['domain']
- print ' local-interface Vlan%s' % info['mlag']['peer_vlan']
- print ' peer-address %s' % info['mlag']['peer_ip']
- print ' peer-link %s' % info['mlag']['peer_link']
- print '!'
-
- for m in info['mlag']['mlags']:
- for i in m['interfaces']:
- if m['mlag'] == 12 or m['mlag'] == 34:
- continue
- else:
- print 'interface %s' % i
- print ' channel-group %s mode active' % m['mlag']
- print '!'
- print 'interface Port-Channel%s' % m['mlag']
- print ' mlag %s' % m['mlag']
- if m['trunk']:
- print ' switchport mode trunk'
- elif m['access']:
- print ' switchport mode access'
- print ' switchport access vlan %s' % m['vlan']
- print '!'
-
-if 'l3ls_svis' not in info.keys():
- print ''
-else:
- varp = False
- for s in info['l3ls_svis']:
- print 'interface Vlan%s' % s['vlan']
- print ' description VLAN%sSVI' % s['vlan']
- print ' ip address %s/%s' % (s['ip'], s['cidr'])
- print ' no autostate'
- if s['varp']:
- varp = True
- print ' ip virtual-router address %s' % s['varp_ip']
- print '!'
-
- if varp:
- print 'ip virtual-router mac-address 00:1C:73:00:00:01'
- print '!'
-
-
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/L3LS and VXLAN Builder.py b/topologies/datacenter/configlets/L3LS and VXLAN Builder.py
deleted file mode 100644
index 8b18d3bef..000000000
--- a/topologies/datacenter/configlets/L3LS and VXLAN Builder.py
+++ /dev/null
@@ -1,131 +0,0 @@
-import sys, jsonrpclib
-sys.path.append('/usr/lib64/python2.7/site-packages/')
-import yaml
-from cvplibrary import CVPGlobalVariables as cvpGV
-from cvplibrary import GlobalVariableNames as GVN
-
-def sendCmd(commands):
- ztp = cvpGV.getValue(GVN.ZTP_STATE)
- hostip = cvpGV.getValue(GVN.CVP_IP)
- if ztp == 'true':
- user = cvpGV.getValue(GVN.ZTP_USERNAME)
- passwd = cvpGV.getValue(GVN.ZTP_PASSWORD)
- else:
- user = cvpGV.getValue(GVN.CVP_USERNAME)
- passwd = cvpGV.getValue(GVN.CVP_PASSWORD)
-
- url = "https://%s:%s@%s/command-api" % (user, passwd, hostip)
- switch = jsonrpclib.Server(url)
- response = switch.runCmds(1, commands)[0]
- return response
-
-
-hostname = sendCmd(['show hostname'])['hostname']
-f = open('hostvars/%s.yml' % hostname )
-info = yaml.load(f)
-
-if 'interfaces' not in info.keys():
- print ''
-else:
- print 'ip routing'
- print '!'
- for d in info['interfaces']:
- print 'interface %s' % d['interface']
- if 'Loopback' not in d['interface']:
- print ' no switchport'
- print ' ip address %s/%s' % (d['ip'], d['cidr'])
- print '!'
-
-if 'bgp' not in info.keys():
- print ''
-else:
- print 'router bgp %s' % info['bgp']['as']
- print ' maximum-paths 4 ecmp 4'
- for d in info['bgp']['bgp_neighbors']:
- print ' neighbor %s remote-as %s' % (d['ip'], d['remote-as'])
- for n in info['bgp']['networks']:
- if n == '172.16.134.0/24' or n == '172.16.112.0/24':
- continue
- print ' network %s' % n
- print '!'
-
-if 'mlag' not in info.keys():
- print ''
-elif 'spine' in hostname:
- print ''
-else:
- print 'vlan %s' % info['mlag']['peer_vlan']
- print ' name MLAGPeerLink'
- print ' trunk group mlagPeer'
- print '!'
- print 'no spanning-tree vlan-id %s' % info['mlag']['peer_vlan']
- print '!'
- for i in info['mlag']['peer_interfaces']:
- print 'interface %s' % i
- print ' channel-group %s mode active' % info['mlag']['peer_link'].replace('Port-Channel','')
- print '!'
-
- print 'interface %s' % info['mlag']['peer_link']
- print ' description MLAGPeerLink'
- print ' switchport mode trunk'
- print ' switchport trunk group mlagPeer'
- print '!'
-
- print 'interface Vlan%s' % info['mlag']['peer_vlan']
- print ' description MLAGPeerIP'
- print ' ip address %s/%s' % (info['mlag']['ip'], info['mlag']['cidr'])
- print '!'
-
- print 'mlag configuration'
- print ' domain %s' % info['mlag']['domain']
- print ' local-interface Vlan%s' % info['mlag']['peer_vlan']
- print ' peer-address %s' % info['mlag']['peer_ip']
- print ' peer-link %s' % info['mlag']['peer_link']
- print '!'
-
- for m in info['mlag']['mlags']:
- for i in m['interfaces']:
- if m['mlag'] == 12 or m['mlag'] == 34:
- continue
- else:
- print 'interface %s' % i
- if (hostname == 'leaf2' and i == 'Ethernet4'):
- print ' shutdown'
- print ' channel-group %s mode active' % m['mlag']
- print '!'
- print 'interface Port-Channel%s' % m['mlag']
- print ' mlag %s' % m['mlag']
- if m['trunk']:
- print ' switchport mode trunk'
- elif m['access']:
- print ' switchport mode access'
- print ' switchport access vlan %s' % m['vlan']
- print '!'
-
-if 'vxlan_svis' not in info.keys():
- print ''
-else:
- varp = False
- for s in info['vxlan_svis']:
- print 'interface Vlan%s' % s['vlan']
- print ' description VLAN%sSVI' % s['vlan']
- print ' ip address %s/%s' % (s['ip'], s['cidr'])
- print ' no autostate'
- if s['varp']:
- varp = True
- print ' ip virtual-router address %s' % s['varp_ip']
- print '!'
-
- if varp:
- print 'ip virtual-router mac-address 00:1C:73:00:00:01'
- print '!'
-
-if 'vxlan' not in info.keys():
- print ''
-else:
- print 'interface Vxlan1'
- print ' vxlan source-interface %s' % info['vxlan']['vtep']
- print ' vxlan flood vtep %s' % ' '.join(info['vxlan']['flood_vteps'])
- for v in info['vxlan']['vnis']:
- print ' vxlan vlan %s vni %s' % (v['vlan'], v['vni'])
- print '!'
diff --git a/topologies/datacenter/configlets/Leaf1-BGP-Lab b/topologies/datacenter/configlets/Leaf1-BGP-Lab
deleted file mode 100644
index a549c4589..000000000
--- a/topologies/datacenter/configlets/Leaf1-BGP-Lab
+++ /dev/null
@@ -1,75 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG - HOST1
- switchport mode access
- switchport access vlan 12
- mlag 5
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.2/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.18/30
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- description HOST1
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK - LEAF2
- ip address 172.16.12.1/30
-!
-mlag configuration
- domain-id MLAG12
- local-interface Vlan4094
- peer-address 172.16.12.2
- peer-link Port-Channel10
-!
-interface Loopback0
- ip address 172.16.0.3/32
-!
-interface Vlan12
- ip address 172.16.115.2/24
- ip virtual-router address 172.16.115.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:12
-!
-router bgp 65001
- router-id 172.16.0.3
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.1 remote-as 65000
- neighbor 172.16.200.1 maximum-routes 12000
- neighbor 172.16.200.1 send-community extended
- neighbor 172.16.200.17 remote-as 65000
- neighbor 172.16.200.17 maximum-routes 12000
- neighbor 172.16.200.17 send-community extended
- neighbor 172.16.12.2 remote-as 65001
- neighbor 172.16.12.2 next-hop-self
- network 172.16.0.3/32
- network 172.16.115.0/24
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf1-L2EVPN-Lab b/topologies/datacenter/configlets/Leaf1-L2EVPN-Lab
deleted file mode 100644
index 7ea1ce102..000000000
--- a/topologies/datacenter/configlets/Leaf1-L2EVPN-Lab
+++ /dev/null
@@ -1,72 +0,0 @@
-interface Vlan12
- ip address virtual 172.16.112.1/24
-!
-interface Port-Channel4
- description HOST1
- switchport access vlan 12
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.2/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.18/30
-!
-interface Ethernet4
- description HOST1
- channel-group 4 mode active
- lacp timer fast
-!
-interface Ethernet5
- shutdown
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- ip address 172.16.0.3/32
-!
-interface Loopback1
- ip address 1.1.1.1/32
- ip address 99.99.99.99/32 secondary
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1200
-!
-router bgp 65101
- router-id 172.16.0.3
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.200.1 peer group SPINE
- neighbor 172.16.200.17 peer group SPINE
- redistribute connected
- !
- vlan 12
- rd 1.1.1.1:12
- route-target both 1:12
- redistribute learned
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf1-L3EVPN-Lab b/topologies/datacenter/configlets/Leaf1-L3EVPN-Lab
deleted file mode 100644
index 411d2e463..000000000
--- a/topologies/datacenter/configlets/Leaf1-L3EVPN-Lab
+++ /dev/null
@@ -1,86 +0,0 @@
-vlan 2001
-!
-vrf instance vrf1
-!
-interface Port-Channel5
- description HOST1
- switchport access vlan 2001
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.2/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.18/30
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- description HOST1
- channel-group 5 mode active
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- ip address 172.16.0.3/32
-!
-interface Loopback1
- ip address 1.1.1.1/32
- ip address 99.99.99.99/32 secondary
-!
-interface Loopback901
- vrf vrf1
- ip address 200.200.200.1/32
-!
-interface Vlan2001
- mtu 9000
- no autostate
- vrf vrf1
- ip address virtual 172.16.115.1/24
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vrf vrf1 vni 1001
-!
-ip routing vrf vrf1
-!
-router bgp 65101
- router-id 172.16.0.3
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.200.1 peer group SPINE
- neighbor 172.16.200.17 peer group SPINE
- redistribute connected
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
- vrf vrf1
- rd 1.1.1.1:1001
- route-target import 1:1001
- route-target export 1:1001
- redistribute connected
- redistribute static
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf1-MLAG-Lab b/topologies/datacenter/configlets/Leaf1-MLAG-Lab
deleted file mode 100644
index 2ecb96126..000000000
--- a/topologies/datacenter/configlets/Leaf1-MLAG-Lab
+++ /dev/null
@@ -1,57 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG - HOST1
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel12
- description MLAG - SPINE1 & 2
- switchport mode trunk
- mlag 12
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet3
- description SPINE2
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet4
- description HOST1
- channel-group 4 mode active
-!
-interface Ethernet5
- shutdown
-!
-interface Ethernet6
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.12.1/30
-!
-mlag configuration
- domain-id MLAG12
- local-interface Vlan4094
- peer-address 172.16.12.2
- peer-link Port-Channel10
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf1-VXLAN-Lab b/topologies/datacenter/configlets/Leaf1-VXLAN-Lab
deleted file mode 100644
index 14a8c77c1..000000000
--- a/topologies/datacenter/configlets/Leaf1-VXLAN-Lab
+++ /dev/null
@@ -1,83 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG - HOST1
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.2/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.18/30
-!
-interface Ethernet4
- description HOST1
- channel-group 4 mode active
- lacp timer fast
-!
-interface Ethernet5
- shutdown
-!
-interface Ethernet6
- description MLAG PEER LINK - LEAF2
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK - LEAF2
- ip address 172.16.12.1/30
-!
-mlag configuration
- domain-id MLAG12
- local-interface Vlan4094
- peer-address 172.16.12.2
- peer-link Port-Channel10
-!
-interface Loopback0
- ip address 172.16.0.3/32
-!
-interface Loopback1
- ip address 172.16.0.34/32
-!
-interface Vlan12
- ip address 172.16.112.2/24
- ip virtual-router address 172.16.112.1
-!
-interface Vxlan1
- vxlan source-interface loopback 1
- vxlan flood vtep 172.16.0.56
- vxlan vlan 12 vni 1212
-!
-ip virtual-router mac-address 00:1c:73:00:00:ff
-!
-router bgp 65001
- router-id 172.16.0.3
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.1 remote-as 65000
- neighbor 172.16.200.1 maximum-routes 12000
- neighbor 172.16.200.17 remote-as 65000
- neighbor 172.16.200.17 maximum-routes 12000
- neighbor 172.16.12.2 remote-as 65001
- neighbor 172.16.12.2 next-hop-self
- network 172.16.0.3/32
- network 172.16.0.34/32
- network 172.16.112.0/24
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf1-cvx01-Controller b/topologies/datacenter/configlets/Leaf1-cvx01-Controller
deleted file mode 100644
index 6f71d71b0..000000000
--- a/topologies/datacenter/configlets/Leaf1-cvx01-Controller
+++ /dev/null
@@ -1,9 +0,0 @@
-management cvx
- no shutdown
- server host 192.168.0.18
-!
-interface vxlan 1
- vxlan source-interface Loopback1
- vxlan controller-client
- vxlan udp-port 4789
- vxlan vlan 12 vni 1212
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB1 b/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB1
deleted file mode 100644
index 0857858a4..000000000
--- a/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB1
+++ /dev/null
@@ -1,25 +0,0 @@
-route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
-!
-route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
-!
-ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
-ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
-ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
-!
-router bgp 65012
- router-id 1.1.1.101
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor 10.101.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.101.202.202 peer group IPv4-UNDERLAY-PEERS
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB2 b/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB2
deleted file mode 100644
index 214cef895..000000000
--- a/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB2
+++ /dev/null
@@ -1,14 +0,0 @@
-router bgp 65012
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS remote-as 65000
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password @rista123
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- neighbor 1.1.1.201 peer group EVPN-OVERLAY-PEERS
- neighbor 1.1.1.202 peer group EVPN-OVERLAY-PEERS
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB3 b/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB3
deleted file mode 100644
index ca300a7d2..000000000
--- a/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB3
+++ /dev/null
@@ -1,64 +0,0 @@
-interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.12/32
-!
-Vlan 4093
- name MLAG_iBGP
-vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
-!
-interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.1/24
-!
-interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.1/30
-!
-no spanning-tree vlan-id 4094
-!
-interface Ethernet1
- description MLAG Link to LEAF2
- channel-group 1000 mode active
-!
-interface Ethernet6
- description MLAG Link to LEAF2
- channel-group 1000 mode active
-!
-interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.2
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
-!
-interface Ethernet4
- description HostA
- channel-group 10 mode active
-!
-interface Port-Channel10
- mlag 10
- spanning-tree portfast
-!
-interface vxlan1
- vxlan virtual-router encapsulation mac-address mlag-system-id
-!
-router bgp 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password @rista123
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 192.0.0.2 peer group MLAG-IPv4-UNDERLAY-PEER
-!
- address-family ipv4
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
diff --git a/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB4 b/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB4
deleted file mode 100644
index 1dc32315b..000000000
--- a/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB4
+++ /dev/null
@@ -1,24 +0,0 @@
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
-!
-vlan 10
- name Ten
-vlan 20
- name Twenty
-!
-router bgp 65012
- vlan-aware-bundle TENANT-A
- rd 1.1.1.101:1
- route-target both 1:1
- redistribute learned
- vlan 10-30
-!
-interface Port-Channel10
- switchport access vlan 10
- mlag 10
- spanning-tree portfast
-!
-interface Ethernet5
- switchport access vlan 20
diff --git a/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB5 b/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB5
deleted file mode 100644
index 45d86ca1d..000000000
--- a/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_LAB5
+++ /dev/null
@@ -1,26 +0,0 @@
-ip virtual-router mac-address aaaa.bbbb.cccc
-!
-vrf instance A
-!
-ip routing vrf A
-!
-interface vlan10
- vrf A
- ip address virtual 10.10.10.1/24
-!
-interface vlan20
- vrf A
- ip address virtual 20.20.20.1/24
-!
-interface Vxlan1
- vxlan vrf A vni 50001
-!
-router bgp 65012
- vrf A
- rd 1.1.1.101:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
-!
-router l2-vpn
- arp selective-install
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_TSHOOTB b/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_TSHOOTB
deleted file mode 100644
index fa08bbac1..000000000
--- a/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_TSHOOTB
+++ /dev/null
@@ -1,163 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname leaf1
-!
-no spanning-tree vlan-id 4094
-!
-vlan 10
- name Ten
-!
-vlan 20
- name Twenty
-!
-vlan 4093
- name MLAG_iBGP
-!
-vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
-!
-vrf instance A
-!
-interface Port-Channel10
- switchport access vlan 10
- mlag 10
- spanning-tree portfast
-!
-interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG Link to LEAF2
- channel-group 1000 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 10.101.201.101/24
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 10.101.202.101/24
-!
-interface Ethernet4
- description HostA
- channel-group 10 mode active
-!
-interface Ethernet5
- switchport access vlan 20
-!
-interface Ethernet6
- description MLAG Link to LEAF2
- channel-group 1000 mode active
-!
-interface Loopback0
- ip address 1.1.1.101/32
-!
-interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.12/32
-!
-interface Management1
- ip address 192.168.0.12/24
-!
-interface Vlan10
- vrf A
- ip address virtual 10.10.10.1/24
-!
-interface Vlan20
- vrf A
- ip address virtual 20.20.20.1/24
-!
-interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.1/24
-!
-interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.1/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
-!
-ip virtual-router mac-address aa:aa:bb:bb:cc:cc
-!
-ip routing
-ip routing vrf A
-!
-ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
-ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
-ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
-!
-mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.2
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
-!
-route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
-!
-route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
-!
-router bgp 65012
- router-id 1.1.1.101
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS remote-as 65000
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password 7 Jvf4RYGH+51PCxaLRIwJLA==
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password 7 euk/Aq5jGSKaHeBB3dpt4A==
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password 7 XOF6i6+qGGIs6rLk2hODlg==
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 1.1.1.201 peer group EVPN-OVERLAY-PEERS
- neighbor 1.1.1.202 peer group EVPN-OVERLAY-PEERS
- neighbor 10.101.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.101.202.202 peer group IPv4-UNDERLAY-PEERS
- neighbor 192.0.0.2 peer group MLAG-IPv4-UNDERLAY-PEER
- redistribute connected route-map RM-CONN-2-BGP
- !
- vlan-aware-bundle TENANT-A
- rd 1.1.1.101:1
- route-target both 1:1
- redistribute learned
- vlan 10-30
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
- !
- vrf A
- rd 1.1.1.101:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
-!
-management api http-commands
- protocol http
- no shutdown
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_TSHOOTC b/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_TSHOOTC
deleted file mode 100644
index 8cfd20584..000000000
--- a/topologies/datacenter/configlets/Leaf1_EVPN_GUIDE_TSHOOTC
+++ /dev/null
@@ -1,169 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname leaf1
-!
-no spanning-tree vlan-id 4094
-!
-vlan 10
- name Ten
-!
-vlan 20
- name Twenty
-!
-vlan 4093
- name MLAG_iBGP
-!
-vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
-!
-vrf instance A
-!
-interface Port-Channel10
- switchport access vlan 10
- mlag 10
- spanning-tree portfast
-!
-interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG Link to LEAF2
- channel-group 1000 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 10.101.201.101/24
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 10.101.202.101/24
-!
-interface Ethernet4
- description HostA
- channel-group 10 mode active
-!
-interface Ethernet5
- switchport access vlan 20
-!
-interface Ethernet6
- description MLAG Link to LEAF2
- channel-group 1000 mode active
-!
-interface Loopback0
- ip address 1.1.1.101/32
-!
-interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.12/32
-!
-interface Management1
- ip address 192.168.0.12/24
-!
-interface Vlan10
- vrf A
- ip address virtual 10.10.10.1/24
-!
-interface Vlan20
- vrf A
- ip address virtual 20.20.20.1/24
-!
-interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.1/24
-!
-interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.1/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
- vxlan vrf A vni 50001
-!
-ip virtual-router mac-address aa:aa:bb:bb:cc:cc
-!
-ip routing
-ip routing vrf A
-!
-ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
-ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
-ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
-!
-mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.2
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
-!
-route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
-!
-route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
-!
-router bgp 65012
- router-id 1.1.1.101
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS remote-as 65000
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password 7 Jvf4RYGH+51PCxaLRIwJLA==
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password 7 euk/Aq5jGSKaHeBB3dpt4A==
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password 7 XOF6i6+qGGIs6rLk2hODlg==
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 1.1.1.201 peer group EVPN-OVERLAY-PEERS
- neighbor 1.1.1.202 peer group EVPN-OVERLAY-PEERS
- neighbor 10.101.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.101.202.202 peer group IPv4-UNDERLAY-PEERS
- neighbor 192.0.0.2 peer group MLAG-IPv4-UNDERLAY-PEER
- redistribute connected route-map RM-CONN-2-BGP
- !
- vlan 10
- rd 1.1.1.101:10001
- route-target both 10010:1
- redistribute learned
- !
- vlan-aware-bundle TENANT-A
- rd 1.1.1.101:1
- route-target both 1:1
- redistribute learned
- vlan 11-30
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
- !
- vrf A
- rd 1.1.1.101:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
-!
-management api http-commands
- protocol http
- no shutdown
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf2-BGP-Lab b/topologies/datacenter/configlets/Leaf2-BGP-Lab
deleted file mode 100644
index e9700d200..000000000
--- a/topologies/datacenter/configlets/Leaf2-BGP-Lab
+++ /dev/null
@@ -1,73 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG - HOST1
- switchport mode access
- switchport access vlan 12
- mlag 5
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.6/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.22/30
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- description HOST1
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.12.2/30
-!
-mlag configuration
- domain-id MLAG12
- local-interface Vlan4094
- peer-address 172.16.12.1
- peer-link Port-Channel10
-!
-interface Loopback0
- ip address 172.16.0.4/32
-!
-interface Vlan12
- ip address 172.16.115.3/24
- ip virtual-router address 172.16.115.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:12
-!
-router bgp 65001
- router-id 172.16.0.4
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.5 remote-as 65000
- neighbor 172.16.200.5 maximum-routes 12000
- neighbor 172.16.200.21 remote-as 65000
- neighbor 172.16.200.21 maximum-routes 12000
- neighbor 172.16.12.1 remote-as 65001
- neighbor 172.16.12.1 next-hop-self
- network 172.16.0.4/32
- network 172.16.115.0/24
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf2-L2EVPN-Lab b/topologies/datacenter/configlets/Leaf2-L2EVPN-Lab
deleted file mode 100644
index f65a77c58..000000000
--- a/topologies/datacenter/configlets/Leaf2-L2EVPN-Lab
+++ /dev/null
@@ -1,17 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- shutdown
-!
-interface Ethernet3
- shutdown
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- shutdown
-!
-interface Ethernet6
- shutdown
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf2-L3EVPN-Lab b/topologies/datacenter/configlets/Leaf2-L3EVPN-Lab
deleted file mode 100644
index f65a77c58..000000000
--- a/topologies/datacenter/configlets/Leaf2-L3EVPN-Lab
+++ /dev/null
@@ -1,17 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- shutdown
-!
-interface Ethernet3
- shutdown
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- shutdown
-!
-interface Ethernet6
- shutdown
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf2-MLAG-Lab b/topologies/datacenter/configlets/Leaf2-MLAG-Lab
deleted file mode 100644
index 44e456399..000000000
--- a/topologies/datacenter/configlets/Leaf2-MLAG-Lab
+++ /dev/null
@@ -1,57 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG - HOST1
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel12
- description MLAG - SPINE1 & 2
- switchport mode trunk
- mlag 12
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet3
- description SPINE2
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet4
- description HOST1
- channel-group 4 mode active
-!
-interface Ethernet5
- shutdown
-!
-interface Ethernet6
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.12.2/30
-!
-mlag configuration
- domain-id MLAG12
- local-interface Vlan4094
- peer-address 172.16.12.1
- peer-link Port-Channel10
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf2-VXLAN-Lab b/topologies/datacenter/configlets/Leaf2-VXLAN-Lab
deleted file mode 100644
index 2de2e5be9..000000000
--- a/topologies/datacenter/configlets/Leaf2-VXLAN-Lab
+++ /dev/null
@@ -1,83 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG - HOST1
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.6/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.22/30
-!
-interface Ethernet4
- description HOST1
- channel-group 4 mode active
- lacp timer fast
-!
-interface Ethernet5
- shutdown
-!
-interface Ethernet6
- description MLAG PEER LINK - LEAF1
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.12.2/30
-!
-mlag configuration
- domain-id MLAG12
- local-interface Vlan4094
- peer-address 172.16.12.1
- peer-link Port-Channel10
-!
-interface Loopback0
- ip address 172.16.0.4/32
-!
-interface Loopback1
- ip address 172.16.0.34/32
-!
-interface Vlan12
- ip address 172.16.112.3/24
- ip virtual-router address 172.16.112.1
-!
-interface Vxlan1
- vxlan source-interface loopback 1
- vxlan vlan 12 vni 1212
- vxlan flood vtep 172.16.0.56
-!
-ip virtual-router mac-address 00:1c:73:00:00:ff
-!
-router bgp 65001
- router-id 172.16.0.4
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.5 remote-as 65000
- neighbor 172.16.200.5 maximum-routes 12000
- neighbor 172.16.200.21 remote-as 65000
- neighbor 172.16.200.21 maximum-routes 12000
- neighbor 172.16.12.1 remote-as 65001
- neighbor 172.16.12.1 next-hop-self
- network 172.16.0.4/32
- network 172.16.0.34/32
- network 172.16.112.0/24
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf2-cvx01-Controller b/topologies/datacenter/configlets/Leaf2-cvx01-Controller
deleted file mode 100644
index 6f71d71b0..000000000
--- a/topologies/datacenter/configlets/Leaf2-cvx01-Controller
+++ /dev/null
@@ -1,9 +0,0 @@
-management cvx
- no shutdown
- server host 192.168.0.18
-!
-interface vxlan 1
- vxlan source-interface Loopback1
- vxlan controller-client
- vxlan udp-port 4789
- vxlan vlan 12 vni 1212
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB1 b/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB1
deleted file mode 100644
index 349241450..000000000
--- a/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB1
+++ /dev/null
@@ -1,25 +0,0 @@
-route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
-!
-route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
-!
-ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
-ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
-ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
-!
-router bgp 65012
- router-id 1.1.1.102
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor 10.102.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.102.202.202 peer group IPv4-UNDERLAY-PEERS
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB2 b/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB2
deleted file mode 100644
index 214cef895..000000000
--- a/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB2
+++ /dev/null
@@ -1,14 +0,0 @@
-router bgp 65012
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS remote-as 65000
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password @rista123
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- neighbor 1.1.1.201 peer group EVPN-OVERLAY-PEERS
- neighbor 1.1.1.202 peer group EVPN-OVERLAY-PEERS
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB3 b/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB3
deleted file mode 100644
index f5406be19..000000000
--- a/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB3
+++ /dev/null
@@ -1,64 +0,0 @@
-interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.12/32
-!
-Vlan 4093
- name MLAG_iBGP
-vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
-!
-interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.2/24
-!
-interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.2/30
-!
-no spanning-tree vlan-id 4094
-!
-interface Ethernet1
- description MLAG Link to LEAF1
- channel-group 1000 mode active
-!
-interface Ethernet6
- description MLAG Link to LEAF1
- channel-group 1000 mode active
-!
-interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.1
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
-!
-interface Ethernet4
- description HostA
- channel-group 10 mode active
-!
-interface Port-Channel10
- mlag 10
- spanning-tree portfast
-!
-interface vxlan1
- vxlan virtual-router encapsulation mac-address mlag-system-id
-!
-router bgp 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password @rista123
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 192.0.0.1 peer group MLAG-IPv4-UNDERLAY-PEER
-!
- address-family ipv4
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
diff --git a/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB4 b/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB4
deleted file mode 100644
index ccedc16b7..000000000
--- a/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB4
+++ /dev/null
@@ -1,24 +0,0 @@
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
-!
-vlan 10
- name Ten
-vlan 20
- name Twenty
-!
-router bgp 65012
- vlan-aware-bundle TENANT-A
- rd 1.1.1.102:1
- route-target both 1:1
- redistribute learned
- vlan 10-30
-!
-interface Port-Channel10
- switchport access vlan 10
- mlag 10
- spanning-tree portfast
-!
-interface Ethernet5
- switchport access vlan 20
diff --git a/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB5 b/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB5
deleted file mode 100644
index 8e72bdf8b..000000000
--- a/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_LAB5
+++ /dev/null
@@ -1,26 +0,0 @@
-ip virtual-router mac-address aaaa.bbbb.cccc
-!
-vrf instance A
-!
-ip routing vrf A
-!
-interface vlan10
- vrf A
- ip address virtual 10.10.10.1/24
-!
-interface vlan20
- vrf A
- ip address virtual 20.20.20.1/24
-!
-interface Vxlan1
- vxlan vrf A vni 50001
-!
-router bgp 65012
- vrf A
- rd 1.1.1.102:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
-!
-router l2-vpn
- arp selective-install
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_TSHOOTB b/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_TSHOOTB
deleted file mode 100644
index b1f8598fb..000000000
--- a/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_TSHOOTB
+++ /dev/null
@@ -1,162 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname leaf2
-!
-no spanning-tree vlan-id 4094
-!
-vlan 10
- name Ten
-!
-vlan 20
- name Twenty
-!
-vlan 4093
- name MLAG_iBGP
-!
-vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
-!
-vrf instance A
-!
-interface Port-Channel10
- switchport access vlan 10
- mlag 10
- spanning-tree portfast
-!
-interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG Link to LEAF1
- channel-group 1000 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 10.102.201.102/24
-!
-interface Ethernet3
- no switchport
- ip address 10.102.202.102/24
-!
-interface Ethernet4
- description HostA
- channel-group 10 mode active
-!
-interface Ethernet5
- switchport access vlan 20
-!
-interface Ethernet6
- description MLAG Link to LEAF1
- channel-group 1000 mode active
-!
-interface Loopback0
- ip address 1.1.1.102/32
-!
-interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.12/32
-!
-interface Management1
- ip address 192.168.0.13/24
-!
-interface Vlan10
- vrf A
- ip address virtual 10.10.10.1/24
-!
-interface Vlan20
- vrf A
- ip address virtual 20.20.20.1/24
-!
-interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.2/24
-!
-interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.2/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
-!
-ip virtual-router mac-address aa:aa:bb:bb:cc:cc
-!
-ip routing
-ip routing vrf A
-!
-ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
-ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
-ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
-!
-mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.1
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
-!
-route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
-!
-route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
-!
-router bgp 65012
- router-id 1.1.1.102
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS remote-as 65000
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password 7 Jvf4RYGH+51PCxaLRIwJLA==
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password 7 euk/Aq5jGSKaHeBB3dpt4A==
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password 7 XOF6i6+qGGIs6rLk2hODlg==
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 1.1.1.201 peer group EVPN-OVERLAY-PEERS
- neighbor 1.1.1.202 peer group EVPN-OVERLAY-PEERS
- neighbor 10.102.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.102.202.202 peer group IPv4-UNDERLAY-PEERS
- neighbor 192.0.0.1 peer group MLAG-IPv4-UNDERLAY-PEER
- redistribute connected route-map RM-CONN-2-BGP
- !
- vlan-aware-bundle TENANT-A
- rd 1.1.1.102:1
- route-target both 1:1
- redistribute learned
- vlan 10-30
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
- !
- vrf A
- rd 1.1.1.102:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
-!
-management api http-commands
- protocol http
- no shutdown
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_TSHOOTC b/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_TSHOOTC
deleted file mode 100644
index a9248ef7c..000000000
--- a/topologies/datacenter/configlets/Leaf2_EVPN_GUIDE_TSHOOTC
+++ /dev/null
@@ -1,168 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname leaf2
-!
-no spanning-tree vlan-id 4094
-!
-vlan 10
- name Ten
-!
-vlan 20
- name Twenty
-!
-vlan 4093
- name MLAG_iBGP
-!
-vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
-!
-vrf instance A
-!
-interface Port-Channel10
- switchport access vlan 10
- mlag 10
- spanning-tree portfast
-!
-interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG Link to LEAF1
- channel-group 1000 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 10.102.201.102/24
-!
-interface Ethernet3
- no switchport
- ip address 10.102.202.102/24
-!
-interface Ethernet4
- description HostA
- channel-group 10 mode active
-!
-interface Ethernet5
- switchport access vlan 20
-!
-interface Ethernet6
- description MLAG Link to LEAF1
- channel-group 1000 mode active
-!
-interface Loopback0
- ip address 1.1.1.102/32
-!
-interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.12/32
-!
-interface Management1
- ip address 192.168.0.13/24
-!
-interface Vlan10
- vrf A
- ip address virtual 10.10.10.1/24
-!
-interface Vlan20
- vrf A
- ip address virtual 20.20.20.1/24
-!
-interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.2/24
-!
-interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.2/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
- vxlan vrf A vni 50001
-!
-ip virtual-router mac-address aa:aa:bb:bb:cc:cc
-!
-ip routing
-ip routing vrf A
-!
-ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
-ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
-ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
-!
-mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.1
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
-!
-route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
-!
-route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
-!
-router bgp 65012
- router-id 1.1.1.102
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS remote-as 65000
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password 7 Jvf4RYGH+51PCxaLRIwJLA==
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password 7 euk/Aq5jGSKaHeBB3dpt4A==
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password 7 XOF6i6+qGGIs6rLk2hODlg==
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 1.1.1.201 peer group EVPN-OVERLAY-PEERS
- neighbor 1.1.1.202 peer group EVPN-OVERLAY-PEERS
- neighbor 10.102.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.102.202.202 peer group IPv4-UNDERLAY-PEERS
- neighbor 192.0.0.1 peer group MLAG-IPv4-UNDERLAY-PEER
- redistribute connected route-map RM-CONN-2-BGP
- !
- vlan 10
- rd 1.1.1.102:10001
- route-target both 10010:1
- redistribute learned
- !
- vlan-aware-bundle TENANT-A
- rd 1.1.1.102:1
- route-target both 1:1
- redistribute learned
- vlan 11-30
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
- !
- vrf A
- rd 1.1.1.102:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
-!
-management api http-commands
- protocol http
- no shutdown
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf3-BGP-Lab b/topologies/datacenter/configlets/Leaf3-BGP-Lab
deleted file mode 100644
index b0e296c96..000000000
--- a/topologies/datacenter/configlets/Leaf3-BGP-Lab
+++ /dev/null
@@ -1,73 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG - HOST2
- switchport mode access
- switchport access vlan 34
- mlag 5
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description - SPINE1
- no switchport
- ip address 172.16.200.10/30
-!
-interface Ethernet3
- description - SPINE2
- no switchport
- ip address 172.16.200.26/30
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- description HOST2
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.34.1/30
-!
-mlag configuration
- domain-id MLAG34
- local-interface Vlan4094
- peer-address 172.16.34.2
- peer-link Port-Channel10
-!
-interface Loopback0
- ip address 172.16.0.5/32
-!
-interface Vlan34
- ip address 172.16.116.2/24
- ip virtual-router address 172.16.116.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:34
-!
-router bgp 65002
- router-id 172.16.0.5
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.9 remote-as 65000
- neighbor 172.16.200.9 maximum-routes 12000
- neighbor 172.16.200.25 remote-as 65000
- neighbor 172.16.200.25 maximum-routes 12000
- neighbor 172.16.34.2 remote-as 65002
- neighbor 172.16.34.2 next-hop-self
- network 172.16.0.5/32
- network 172.16.116.0/24
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf3-L2EVPN-Lab b/topologies/datacenter/configlets/Leaf3-L2EVPN-Lab
deleted file mode 100644
index aaccb5b4a..000000000
--- a/topologies/datacenter/configlets/Leaf3-L2EVPN-Lab
+++ /dev/null
@@ -1,73 +0,0 @@
-interface Vlan12
- ip address virtual 172.16.112.1/24
-!
-interface Port-Channel4
- description HOST2
- switchport access vlan 12
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.10/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.26/30
-!
-interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-!
-interface Ethernet5
- shutdown
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- ip address 172.16.0.5/32
-!
-interface Loopback1
- ip address 3.3.3.3/32
- ip address 99.99.99.99/32 secondary
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1200
-!
-router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
- !
- vlan 12
- rd 3.3.3.3:12
- route-target both 1:12
- redistribute learned
- !
- address-family evpn
- bgp next-hop-unchanged
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf3-L3EVPN-Lab b/topologies/datacenter/configlets/Leaf3-L3EVPN-Lab
deleted file mode 100644
index d5c3c84e6..000000000
--- a/topologies/datacenter/configlets/Leaf3-L3EVPN-Lab
+++ /dev/null
@@ -1,87 +0,0 @@
-vlan 2003
-!
-vrf instance vrf1
-!
-interface Port-Channel5
- description HOST2
- switchport access vlan 2003
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.10/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.26/30
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- description HOST2
- channel-group 5 mode active
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- ip address 172.16.0.5/32
-!
-interface Loopback1
- ip address 3.3.3.3/32
- ip address 99.99.99.99/32 secondary
-!
-interface Loopback901
- vrf vrf1
- ip address 200.200.200.2/32
-!
-interface Vlan2003
- mtu 9000
- no autostate
- vrf vrf1
- ip address virtual 172.16.116.1/24
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vrf vrf1 vni 1001
-!
-ip routing vrf vrf1
-!
-router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
- !
- address-family evpn
- bgp next-hop-unchanged
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
- vrf vrf1
- rd 3.3.3.3:1001
- route-target import 1:1001
- route-target export 1:1001
- redistribute connected
- redistribute static
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf3-MLAG-Lab b/topologies/datacenter/configlets/Leaf3-MLAG-Lab
deleted file mode 100644
index d84777830..000000000
--- a/topologies/datacenter/configlets/Leaf3-MLAG-Lab
+++ /dev/null
@@ -1,57 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG - HOST2
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel34
- description MLAG - SPINE1 & 2
- switchport mode trunk
- mlag 34
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Ethernet3
- description SPINE2
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Ethernet4
- description HOST2
- channel-group 4 mode active
-!
-interface Ethernet5
- shutdown
-!
-interface Ethernet6
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.34.1/30
-!
-mlag configuration
- domain-id MLAG34
- local-interface Vlan4094
- peer-address 172.16.34.2
- peer-link Port-Channel10
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf3-VXLAN-Lab b/topologies/datacenter/configlets/Leaf3-VXLAN-Lab
deleted file mode 100644
index fb6b1db19..000000000
--- a/topologies/datacenter/configlets/Leaf3-VXLAN-Lab
+++ /dev/null
@@ -1,64 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.10/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.26/30
-!
-interface Ethernet5
- shutdown
-!
-interface Ethernet6
- description MLAG PEER LINK - LEAF4
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.34.1/30
-!
-mlag configuration
- domain-id MLAG34
- local-interface Vlan4094
- peer-address 172.16.34.2
- peer-link Port-Channel10
-!
-interface Loopback0
- ip address 172.16.0.5/32
-!
-interface Vlan12
- ip address 172.16.112.4/24
- ip virtual-router address 172.16.112.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:ff
-!
-router bgp 65002
- router-id 172.16.0.5
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.9 remote-as 65000
- neighbor 172.16.200.9 maximum-routes 12000
- neighbor 172.16.200.25 remote-as 65000
- neighbor 172.16.200.25 maximum-routes 12000
- neighbor 172.16.34.2 remote-as 65002
- neighbor 172.16.34.2 next-hop-self
- network 172.16.0.5/32
- network 172.16.0.56/32
- network 172.16.112.0/24
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf3-VXLAN-Lab-Full b/topologies/datacenter/configlets/Leaf3-VXLAN-Lab-Full
deleted file mode 100644
index 239d0505a..000000000
--- a/topologies/datacenter/configlets/Leaf3-VXLAN-Lab-Full
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Port-Channel4
- description MLAG - HOST2
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-!
-interface Loopback1
- ip address 172.16.0.56/32
-!
-interface Vxlan1
- vxlan source-interface loopback 1
- vxlan vlan 12 vni 1212
- vxlan flood vtep 172.16.0.34
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf3-cvx01-Controller b/topologies/datacenter/configlets/Leaf3-cvx01-Controller
deleted file mode 100644
index 6f71d71b0..000000000
--- a/topologies/datacenter/configlets/Leaf3-cvx01-Controller
+++ /dev/null
@@ -1,9 +0,0 @@
-management cvx
- no shutdown
- server host 192.168.0.18
-!
-interface vxlan 1
- vxlan source-interface Loopback1
- vxlan controller-client
- vxlan udp-port 4789
- vxlan vlan 12 vni 1212
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB1 b/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB1
deleted file mode 100644
index 4c4c06272..000000000
--- a/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB1
+++ /dev/null
@@ -1,25 +0,0 @@
-route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
-!
-route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
-!
-ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
-ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
-ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
-!
-router bgp 65034
- router-id 1.1.1.103
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor 10.103.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.103.202.202 peer group IPv4-UNDERLAY-PEERS
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB2 b/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB2
deleted file mode 100644
index f24678c71..000000000
--- a/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB2
+++ /dev/null
@@ -1,14 +0,0 @@
-router bgp 65034
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS remote-as 65000
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password @rista123
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- neighbor 1.1.1.201 peer group EVPN-OVERLAY-PEERS
- neighbor 1.1.1.202 peer group EVPN-OVERLAY-PEERS
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB3 b/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB3
deleted file mode 100644
index 172396c09..000000000
--- a/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB3
+++ /dev/null
@@ -1,64 +0,0 @@
-interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.34/32
-!
-Vlan 4093
- name MLAG_iBGP
-vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
-!
-interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.1/24
-!
-interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.1/30
-!
-no spanning-tree vlan-id 4094
-!
-interface Ethernet1
- description MLAG Link to LEAF4
- channel-group 1000 mode active
-!
-interface Ethernet6
- description MLAG Link to LEAF4
- channel-group 1000 mode active
-!
-interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface vxlan1
- vxlan virtual-router encapsulation mac-address mlag-system-id
-!
-mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.2
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
-!
-interface Ethernet4
- description HostC
- channel-group 20 mode active
-!
-interface Port-Channel20
- mlag 20
- spanning-tree portfast
-!
-router bgp 65034
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65034
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password @rista123
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 192.0.0.2 peer group MLAG-IPv4-UNDERLAY-PEER
-!
- address-family ipv4
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
diff --git a/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB4 b/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB4
deleted file mode 100644
index e17bea604..000000000
--- a/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB4
+++ /dev/null
@@ -1,24 +0,0 @@
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
-!
-vlan 10
- name Ten
-vlan 30
- name Thirty
-!
-router bgp 65034
- vlan-aware-bundle TENANT-A
- rd 1.1.1.103:1
- route-target both 1:1
- redistribute learned
- vlan 10-30
-!
-interface Port-Channel20
- switchport access vlan 30
- mlag 20
- spanning-tree portfast
-!
-interface Ethernet5
- switchport access vlan 10
diff --git a/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB5 b/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB5
deleted file mode 100644
index b05c36a61..000000000
--- a/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_LAB5
+++ /dev/null
@@ -1,26 +0,0 @@
-ip virtual-router mac-address aaaa.bbbb.cccc
-!
-vrf instance A
-!
-ip routing vrf A
-!
-interface vlan10
- vrf A
- ip address virtual 10.10.10.1/24
-!
-interface vlan30
- vrf A
- ip address virtual 30.30.30.1/24
-!
-interface Vxlan1
- vxlan vrf A vni 50001
-!
-router bgp 65034
- vrf A
- rd 1.1.1.103:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
-!
-router l2-vpn
- arp selective-install
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_TSHOOTA b/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_TSHOOTA
deleted file mode 100644
index b8e3a6ae6..000000000
--- a/topologies/datacenter/configlets/Leaf3_EVPN_GUIDE_TSHOOTA
+++ /dev/null
@@ -1,164 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname leaf3
-!
-no spanning-tree vlan-id 4094
-!
-vlan 10
- name Ten
-!
-vlan 30
- name Thirty
-!
-vlan 4093
- name MLAG_iBGP
-!
-vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
-!
-vrf instance A
-!
-interface Port-Channel20
- switchport access vlan 30
- mlag 20
- spanning-tree portfast
-!
-interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG Link to LEAF4
- channel-group 1000 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 10.103.201.103/24
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 10.103.202.103/24
-!
-interface Ethernet4
- description HostC
- channel-group 20 mode active
-!
-interface Ethernet5
- switchport access vlan 10
-!
-interface Ethernet6
- description MLAG Link to LEAF4
- channel-group 1000 mode active
-!
-interface Loopback0
- ip address 1.1.1.103/32
-!
-interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.34/32
-!
-interface Management1
- ip address 192.168.0.14/24
-!
-interface Vlan10
- vrf A
- ip address virtual 10.10.10.1/24
-!
-interface Vlan30
- vrf A
- ip address virtual 30.30.30.1/24
-!
-interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.1/24
-!
-interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.1/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
- vxlan vrf A vni 50001
-!
-ip virtual-router mac-address aa:aa:bb:bb:cc:cc
-!
-ip routing
-ip routing vrf A
-!
-ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
-ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
-ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
-!
-mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.2
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
-!
-route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
-!
-route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
-!
-router bgp 65034
- router-id 1.1.1.103
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS remote-as 65000
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password 7 Jvf4RYGH+51PCxaLRIwJLA==
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password 7 euk/Aq5jGSKaHeBB3dpt4A==
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65034
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password 7 XOF6i6+qGGIs6rLk2hODlg==
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 1.1.1.201 peer group EVPN-OVERLAY-PEERS
- neighbor 1.1.1.202 peer group EVPN-OVERLAY-PEERS
- neighbor 10.103.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.103.202.202 peer group IPv4-UNDERLAY-PEERS
- neighbor 192.0.0.2 peer group MLAG-IPv4-UNDERLAY-PEER
- redistribute connected route-map RM-CONN-2-BGP
- !
- vlan-aware-bundle TENANT-A
- rd 1.1.1.103:1
- route-target both 1:2
- redistribute learned
- vlan 10-30
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
- !
- vrf A
- rd 1.1.1.103:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
-!
-management api http-commands
- protocol http
- no shutdown
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf4-BGP-Lab b/topologies/datacenter/configlets/Leaf4-BGP-Lab
deleted file mode 100644
index 99fb1e321..000000000
--- a/topologies/datacenter/configlets/Leaf4-BGP-Lab
+++ /dev/null
@@ -1,42 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG - HOST2
- switchport mode access
- switchport access vlan 34
- mlag 5
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- description HOST2
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.34.2/30
-!
-mlag configuration
- domain-id MLAG34
- local-interface Vlan4094
- peer-address 172.16.34.1
- peer-link Port-Channel10
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf4-BGP-Lab-Full b/topologies/datacenter/configlets/Leaf4-BGP-Lab-Full
deleted file mode 100644
index 42b1587e0..000000000
--- a/topologies/datacenter/configlets/Leaf4-BGP-Lab-Full
+++ /dev/null
@@ -1,30 +0,0 @@
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.14/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.30/30
-!
-interface Loopback0
- ip address 172.16.0.6/32
-!
-interface Vlan34
- ip address 172.16.116.3/24
- ip virtual-router address 172.16.116.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:34
-!
-router bgp 65002
- router-id 172.16.0.6
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.13 remote-as 65000
- neighbor 172.16.200.13 maximum-routes 12000
- neighbor 172.16.200.29 remote-as 65000
- neighbor 172.16.200.29 maximum-routes 12000
- neighbor 172.16.34.1 remote-as 65002
- neighbor 172.16.34.1 next-hop-self
- network 172.16.0.6/32
- network 172.16.116.0/24
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf4-L2EVPN-Lab b/topologies/datacenter/configlets/Leaf4-L2EVPN-Lab
deleted file mode 100644
index f65a77c58..000000000
--- a/topologies/datacenter/configlets/Leaf4-L2EVPN-Lab
+++ /dev/null
@@ -1,17 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- shutdown
-!
-interface Ethernet3
- shutdown
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- shutdown
-!
-interface Ethernet6
- shutdown
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf4-L3EVPN-Lab b/topologies/datacenter/configlets/Leaf4-L3EVPN-Lab
deleted file mode 100644
index f65a77c58..000000000
--- a/topologies/datacenter/configlets/Leaf4-L3EVPN-Lab
+++ /dev/null
@@ -1,17 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- shutdown
-!
-interface Ethernet3
- shutdown
-!
-interface Ethernet4
- shutdown
-!
-interface Ethernet5
- shutdown
-!
-interface Ethernet6
- shutdown
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf4-MLAG-Lab b/topologies/datacenter/configlets/Leaf4-MLAG-Lab
deleted file mode 100644
index e289a5dea..000000000
--- a/topologies/datacenter/configlets/Leaf4-MLAG-Lab
+++ /dev/null
@@ -1,57 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG - HOST2
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel34
- description MLAG - SPINE1 & 2
- switchport mode trunk
- mlag 34
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Ethernet3
- description SPINE2
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Ethernet4
- description HOST2
- channel-group 4 mode active
-!
-interface Ethernet5
- shutdown
-!
-interface Ethernet6
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.34.2/30
-!
-mlag configuration
- domain-id MLAG34
- local-interface Vlan4094
- peer-address 172.16.34.1
- peer-link Port-Channel10
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf4-VXLAN-Lab b/topologies/datacenter/configlets/Leaf4-VXLAN-Lab
deleted file mode 100644
index 9979ac908..000000000
--- a/topologies/datacenter/configlets/Leaf4-VXLAN-Lab
+++ /dev/null
@@ -1,83 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG - HOST2
- switchport mode access
- switchport access vlan 12
- mlag 4
-!
-interface Port-Channel10
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.14/30
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.30/30
-!
-interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-!
-interface Ethernet5
- shutdown
-!
-interface Ethernet6
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.34.2/30
-!
-mlag configuration
- domain-id MLAG34
- local-interface Vlan4094
- peer-address 172.16.34.1
- peer-link Port-Channel10
-!
-interface Loopback0
- ip address 172.16.0.6/32
-!
-interface Loopback1
- ip address 172.16.0.56/32
-!
-interface Vlan12
- ip address 172.16.112.5/24
- ip virtual-router address 172.16.112.1
-!
-interface Vxlan1
- vxlan source-interface loopback 1
- vxlan vlan 12 vni 1212
- vxlan flood vtep 172.16.0.34
-!
-ip virtual-router mac-address 00:1c:73:00:00:ff
-!
-router bgp 65002
- router-id 172.16.0.6
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.13 remote-as 65000
- neighbor 172.16.200.13 maximum-routes 12000
- neighbor 172.16.200.29 remote-as 65000
- neighbor 172.16.200.29 maximum-routes 12000
- neighbor 172.16.34.1 remote-as 65002
- neighbor 172.16.34.1 next-hop-self
- network 172.16.0.6/32
- network 172.16.0.56/32
- network 172.16.112.0/24
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf4-cvx01-Controller b/topologies/datacenter/configlets/Leaf4-cvx01-Controller
deleted file mode 100644
index 6f71d71b0..000000000
--- a/topologies/datacenter/configlets/Leaf4-cvx01-Controller
+++ /dev/null
@@ -1,9 +0,0 @@
-management cvx
- no shutdown
- server host 192.168.0.18
-!
-interface vxlan 1
- vxlan source-interface Loopback1
- vxlan controller-client
- vxlan udp-port 4789
- vxlan vlan 12 vni 1212
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB1 b/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB1
deleted file mode 100644
index 6449d99d5..000000000
--- a/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB1
+++ /dev/null
@@ -1,25 +0,0 @@
-route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
-!
-route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
-!
-ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
-ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
-ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
-!
-router bgp 65034
- router-id 1.1.1.104
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor 10.104.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.104.202.202 peer group IPv4-UNDERLAY-PEERS
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB2 b/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB2
deleted file mode 100644
index f24678c71..000000000
--- a/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB2
+++ /dev/null
@@ -1,14 +0,0 @@
-router bgp 65034
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS remote-as 65000
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password @rista123
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- neighbor 1.1.1.201 peer group EVPN-OVERLAY-PEERS
- neighbor 1.1.1.202 peer group EVPN-OVERLAY-PEERS
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB3 b/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB3
deleted file mode 100644
index 6f7715ea3..000000000
--- a/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB3
+++ /dev/null
@@ -1,64 +0,0 @@
-interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.34/32
-!
-Vlan 4093
- name MLAG_iBGP
-vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
-!
-interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.2/24
-!
-interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.2/30
-!
-no spanning-tree vlan-id 4094
-!
-interface Ethernet1
- description MLAG Link to LEAF3
- channel-group 1000 mode active
-!
-interface Ethernet6
- description MLAG Link to LEAF3
- channel-group 1000 mode active
-!
-interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.1
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
-!
-interface Ethernet4
- description HostC
- channel-group 20 mode active
-!
-interface Port-Channel20
- mlag 20
- spanning-tree portfast
-!
-interface vxlan1
- vxlan virtual-router encapsulation mac-address mlag-system-id
-!
-router bgp 65034
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65034
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password @rista123
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 192.0.0.1 peer group MLAG-IPv4-UNDERLAY-PEER
-!
- address-family ipv4
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
diff --git a/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB4 b/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB4
deleted file mode 100644
index adf329c9d..000000000
--- a/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB4
+++ /dev/null
@@ -1,24 +0,0 @@
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
-!
-vlan 10
- name Ten
-vlan 30
- name Thirty
-!
-router bgp 65034
- vlan-aware-bundle TENANT-A
- rd 1.1.1.104:1
- route-target both 1:1
- redistribute learned
- vlan 10-30
-!
-interface Port-Channel20
- switchport access vlan 30
- mlag 20
- spanning-tree portfast
-!
-interface Ethernet5
- switchport access vlan 10
diff --git a/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB5 b/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB5
deleted file mode 100644
index 78125743f..000000000
--- a/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_LAB5
+++ /dev/null
@@ -1,26 +0,0 @@
-ip virtual-router mac-address aaaa.bbbb.cccc
-!
-vrf instance A
-!
-ip routing vrf A
-!
-interface vlan10
- vrf A
- ip address virtual 10.10.10.1/24
-!
-interface vlan30
- vrf A
- ip address virtual 30.30.30.1/24
-!
-interface Vxlan1
- vxlan vrf A vni 50001
-!
-router bgp 65034
- vrf A
- rd 1.1.1.104:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
-!
-router l2-vpn
- arp selective-install
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_TSHOOTA b/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_TSHOOTA
deleted file mode 100644
index 47d506467..000000000
--- a/topologies/datacenter/configlets/Leaf4_EVPN_GUIDE_TSHOOTA
+++ /dev/null
@@ -1,164 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname leaf4
-!
-no spanning-tree vlan-id 4094
-!
-vlan 10
- name Ten
-!
-vlan 30
- name Thirty
-!
-vlan 4093
- name MLAG_iBGP
-!
-vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
-!
-vrf instance A
-!
-interface Port-Channel20
- switchport access vlan 30
- mlag 20
- spanning-tree portfast
-!
-interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG Link to LEAF3
- channel-group 1000 mode active
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 10.104.201.104/24
-!
-interface Ethernet3
- description SPINE2
- no switchport
- ip address 10.104.202.104/24
-!
-interface Ethernet4
- description HostC
- channel-group 20 mode active
-!
-interface Ethernet5
- switchport access vlan 10
-!
-interface Ethernet6
- description MLAG Link to LEAF3
- channel-group 1000 mode active
-!
-interface Loopback0
- ip address 1.1.1.104/32
-!
-interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.34/32
-!
-interface Management1
- ip address 192.168.0.15/24
-!
-interface Vlan10
- vrf A
- ip address virtual 10.10.10.1/24
-!
-interface Vlan30
- vrf A
- ip address virtual 30.30.30.1/24
-!
-interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.2/24
-!
-interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.2/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
- vxlan vrf A vni 50001
-!
-ip virtual-router mac-address aa:aa:bb:bb:cc:cc
-!
-ip routing
-ip routing vrf A
-!
-ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
-ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
-ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
-!
-mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.1
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
-!
-route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
-!
-route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
-!
-router bgp 65034
- router-id 1.1.1.104
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS remote-as 65000
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password 7 Jvf4RYGH+51PCxaLRIwJLA==
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password 7 euk/Aq5jGSKaHeBB3dpt4A==
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65034
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password 7 XOF6i6+qGGIs6rLk2hODlg==
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 1.1.1.201 peer group EVPN-OVERLAY-PEERS
- neighbor 1.1.1.202 peer group EVPN-OVERLAY-PEERS
- neighbor 10.104.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.104.202.202 peer group IPv4-UNDERLAY-PEERS
- neighbor 192.0.0.1 peer group MLAG-IPv4-UNDERLAY-PEER
- redistribute connected route-map RM-CONN-2-BGP
- !
- vlan-aware-bundle TENANT-A
- rd 1.1.1.104:1
- route-target both 1:2
- redistribute learned
- vlan 10-30
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
- !
- vrf A
- rd 1.1.1.104:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
-!
-management api http-commands
- protocol http
- no shutdown
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/MLAG and VARP Builder.py b/topologies/datacenter/configlets/MLAG and VARP Builder.py
deleted file mode 100644
index 228e8d180..000000000
--- a/topologies/datacenter/configlets/MLAG and VARP Builder.py
+++ /dev/null
@@ -1,89 +0,0 @@
-import sys, jsonrpclib
-sys.path.append('/usr/lib64/python2.7/site-packages/')
-import yaml
-from cvplibrary import CVPGlobalVariables as cvpGV
-from cvplibrary import GlobalVariableNames as GVN
-
-def sendCmd(commands):
- ztp = cvpGV.getValue(GVN.ZTP_STATE)
- hostip = cvpGV.getValue(GVN.CVP_IP)
- if ztp == 'true':
- user = cvpGV.getValue(GVN.ZTP_USERNAME)
- passwd = cvpGV.getValue(GVN.ZTP_PASSWORD)
- else:
- user = cvpGV.getValue(GVN.CVP_USERNAME)
- passwd = cvpGV.getValue(GVN.CVP_PASSWORD)
-
- url = "https://%s:%s@%s/command-api" % (user, passwd, hostip)
- switch = jsonrpclib.Server(url)
- response = switch.runCmds(1, commands)[0]
- return response
-
-hostname = sendCmd(['show hostname'])['hostname']
-f = open('hostvars/%s.yml' % hostname )
-info = yaml.load(f)
-
-if 'mlag' not in info.keys():
- print ''
-else:
- print 'vlan %s' % info['mlag']['peer_vlan']
- print ' name MLAGPeerLink'
- print ' trunk group mlagPeer'
- print '!'
- print 'no spanning-tree vlan-id %s' % info['mlag']['peer_vlan']
- print '!'
- for i in info['mlag']['peer_interfaces']:
- print 'interface %s' % i
- print ' channel-group %s mode active' % info['mlag']['peer_link'].replace('Port-Channel','')
- print '!'
-
- print 'interface %s' % info['mlag']['peer_link']
- print ' description MLAGPeerLink'
- print ' switchport mode trunk'
- print ' switchport trunk group mlagPeer'
- print '!'
-
- print 'interface Vlan%s' % info['mlag']['peer_vlan']
- print ' description MLAGPeerIP'
- print ' ip address %s/%s' % (info['mlag']['ip'], info['mlag']['cidr'])
- print '!'
-
- print 'mlag configuration'
- print ' domain %s' % info['mlag']['domain']
- print ' local-interface Vlan%s' % info['mlag']['peer_vlan']
- print ' peer-address %s' % info['mlag']['peer_ip']
- print ' peer-link %s' % info['mlag']['peer_link']
- print '!'
-
- for m in info['mlag']['mlags']:
- for i in m['interfaces']:
- print 'interface %s' % i
- print ' channel-group %s mode active' % m['mlag']
- print '!'
- print 'interface Port-Channel%s' % m['mlag']
- print ' mlag %s' % m['mlag']
- if m['trunk']:
- print ' switchport mode trunk'
- elif m['access']:
- print ' switchport mode access'
- print ' switchport access vlan %s' % m['vlan']
- print '!'
-
-if 'mlag_svis' not in info.keys():
- print ''
-else:
- varp = False
- for s in info['mlag_svis']:
- print 'interface Vlan%s' % s['vlan']
- print ' description VLAN%sSVI' % s['vlan']
- print ' ip address %s/%s' % (s['ip'], s['cidr'])
- print ' no autostate'
- if s['varp']:
- varp = True
- print ' ip virtual-router address %s' % s['varp_ip']
- print '!'
-
- if varp:
- print 'ip virtual-router mac-address 00:1C:73:00:00:01'
- print '!'
-
diff --git a/topologies/datacenter/configlets/SYS_BaseConfig.py b/topologies/datacenter/configlets/SYS_BaseConfig.py
deleted file mode 100644
index fcbecb573..000000000
--- a/topologies/datacenter/configlets/SYS_BaseConfig.py
+++ /dev/null
@@ -1,53 +0,0 @@
-import urllib2, json, jsonrpclib, ssl
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames
-
-# Get this devices MAC address
-mac = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_MAC )
-ztp = CVPGlobalVariables.getValue( GlobalVariableNames.ZTP_STATE )
-hostip = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_IP )
-
-if ztp == 'true':
- user = CVPGlobalVariables.getValue( GlobalVariableNames.ZTP_USERNAME )
- passwd = CVPGlobalVariables.getValue( GlobalVariableNames.ZTP_PASSWORD )
-else:
- user = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_USERNAME )
- passwd = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_PASSWORD )
-
-# setup context to disable SSL verification
-# Request to send to IPAM for Ma1 address
-url = "http://192.168.0.4/ipam/arista/mgmtbymac.php?mac=%s" % mac
-response = urllib2.urlopen(url)
-hostjson = json.loads(response.read())
-
-
-
-# Process JSON from IPAM for some reason cvx doesn't appear to be in json
-if mac == '2c:c2:60:5c:a3:5e':
- hostname = "cvx01"
- ip = "192.168.0.44"
- mask = 24
-else:
- host = hostjson['host']
- hostname = host['hostname']
- ip = host['ip']
- mask = host['mask']
-
-# Generate and print config
-print 'hostname %s' % hostname
-print '!'
-
-print 'interface Management 1'
-print ' ip address %s/%s' % ( ip, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-print 'ip domain-name arista.test'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.254'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Spine1-BGP-Lab b/topologies/datacenter/configlets/Spine1-BGP-Lab
deleted file mode 100644
index f5eda79bd..000000000
--- a/topologies/datacenter/configlets/Spine1-BGP-Lab
+++ /dev/null
@@ -1,45 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description LEAF1
- no switchport
- ip address 172.16.200.1/30
-!
-interface Ethernet3
- description LEAF2
- no switchport
- ip address 172.16.200.5/30
-!
-interface Ethernet4
- description LEAF3
- no switchport
- ip address 172.16.200.9/30
-!
-interface Ethernet5
- description LEAF4
- no switchport
- ip address 172.16.200.13/30
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- ip address 172.16.0.1/32
-!
-router bgp 65000
- router-id 172.16.0.1
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.2 remote-as 65001
- neighbor 172.16.200.2 maximum-routes 12000
- neighbor 172.16.200.2 send-community extended
- neighbor 172.16.200.6 remote-as 65001
- neighbor 172.16.200.6 maximum-routes 12000
- neighbor 172.16.200.6 send-community extended
- neighbor 172.16.200.10 remote-as 65002
- neighbor 172.16.200.10 maximum-routes 12000
- neighbor 172.16.200.10 send-community extended
- neighbor 172.16.200.14 remote-as 65002
- neighbor 172.16.200.14 maximum-routes 12000
- neighbor 172.16.200.14 send-community extended
- network 172.16.0.1/32
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Spine1-L2EVPN-Lab b/topologies/datacenter/configlets/Spine1-L2EVPN-Lab
deleted file mode 100644
index 7f8232ad1..000000000
--- a/topologies/datacenter/configlets/Spine1-L2EVPN-Lab
+++ /dev/null
@@ -1,60 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.200.1/30
-!
-interface Ethernet3
- no switchport
- ip address 172.16.200.5/30
-!
-interface Ethernet4
- no switchport
- ip address 172.16.200.9/30
-!
-interface Ethernet5
- no switchport
- ip address 172.16.200.13/30
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- ip address 172.16.0.1/32
-!
-ip prefix-list rt-conn
- seq 10 permit 172.16.0.1/32
-!
-route-map rt-conn permit 10
- match ip address prefix-list rt-conn
-!
-router bgp 65001
- router-id 172.16.0.1
- maximum-paths 2 ecmp 2
- neighbor VTEP peer group
- neighbor VTEP bfd
- neighbor VTEP send-community
- neighbor VTEP maximum-routes 12000
- neighbor VTEP-EVPN-TRANSIT peer group
- neighbor VTEP-EVPN-TRANSIT next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT update-source Loopback0
- neighbor VTEP-EVPN-TRANSIT ebgp-multihop
- neighbor VTEP-EVPN-TRANSIT send-community extended
- neighbor VTEP-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.3 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.3 remote-as 65101
- neighbor 172.16.0.5 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.5 remote-as 65103
- neighbor 172.16.200.2 peer group VTEP
- neighbor 172.16.200.2 remote-as 65101
- neighbor 172.16.200.10 peer group VTEP
- neighbor 172.16.200.10 remote-as 65103
- redistribute connected route-map rt-conn
- !
- address-family evpn
- bgp next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor VTEP-EVPN-TRANSIT activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Spine1-L3EVPN-Lab b/topologies/datacenter/configlets/Spine1-L3EVPN-Lab
deleted file mode 100644
index 7f8232ad1..000000000
--- a/topologies/datacenter/configlets/Spine1-L3EVPN-Lab
+++ /dev/null
@@ -1,60 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.200.1/30
-!
-interface Ethernet3
- no switchport
- ip address 172.16.200.5/30
-!
-interface Ethernet4
- no switchport
- ip address 172.16.200.9/30
-!
-interface Ethernet5
- no switchport
- ip address 172.16.200.13/30
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- ip address 172.16.0.1/32
-!
-ip prefix-list rt-conn
- seq 10 permit 172.16.0.1/32
-!
-route-map rt-conn permit 10
- match ip address prefix-list rt-conn
-!
-router bgp 65001
- router-id 172.16.0.1
- maximum-paths 2 ecmp 2
- neighbor VTEP peer group
- neighbor VTEP bfd
- neighbor VTEP send-community
- neighbor VTEP maximum-routes 12000
- neighbor VTEP-EVPN-TRANSIT peer group
- neighbor VTEP-EVPN-TRANSIT next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT update-source Loopback0
- neighbor VTEP-EVPN-TRANSIT ebgp-multihop
- neighbor VTEP-EVPN-TRANSIT send-community extended
- neighbor VTEP-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.3 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.3 remote-as 65101
- neighbor 172.16.0.5 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.5 remote-as 65103
- neighbor 172.16.200.2 peer group VTEP
- neighbor 172.16.200.2 remote-as 65101
- neighbor 172.16.200.10 peer group VTEP
- neighbor 172.16.200.10 remote-as 65103
- redistribute connected route-map rt-conn
- !
- address-family evpn
- bgp next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor VTEP-EVPN-TRANSIT activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Spine1-MLAG-Lab b/topologies/datacenter/configlets/Spine1-MLAG-Lab
deleted file mode 100644
index 71a476424..000000000
--- a/topologies/datacenter/configlets/Spine1-MLAG-Lab
+++ /dev/null
@@ -1,65 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel10
- description MLAG PEER LINK - SPINE2
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel12
- description MLAG - LEAF1 & 2
- switchport mode trunk
- mlag 12
-!
-interface Port-Channel34
- description MLAG - LEAF3 & 4
- switchport mode trunk
- mlag 34
-!
-interface Ethernet1
- description SPINE2
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description LEAF1
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet3
- description LEAF2
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet4
- description LEAF3
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Ethernet5
- description LEAF4
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Ethernet6
- description SPINE2
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Vlan12
- ip address 172.16.112.2/24
- ip virtual-router address 172.16.112.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:12
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.11.1/30
-!
-mlag configuration
- domain-id MLAG01
- local-interface Vlan4094
- peer-address 172.16.11.2
- peer-link Port-Channel10
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Spine1_EVPN_GUIDE_LAB1 b/topologies/datacenter/configlets/Spine1_EVPN_GUIDE_LAB1
deleted file mode 100644
index abf79d06a..000000000
--- a/topologies/datacenter/configlets/Spine1_EVPN_GUIDE_LAB1
+++ /dev/null
@@ -1,25 +0,0 @@
-route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
-!
-route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
-!
-peer-filter LEAF-AS-RANGE
- 10 match as-range 65001-65199 result accept
-!
-ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
-ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
-!
-router bgp 65000
- router-id 1.1.1.201
- no bgp default ipv4-unicast
- maximum-paths 2
- bgp listen range 10.0.0.0/8 peer-group IPv4-UNDERLAY-PEERS peer-filter LEAF-AS-RANGE
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Spine1_EVPN_GUIDE_LAB2 b/topologies/datacenter/configlets/Spine1_EVPN_GUIDE_LAB2
deleted file mode 100644
index 909b49f18..000000000
--- a/topologies/datacenter/configlets/Spine1_EVPN_GUIDE_LAB2
+++ /dev/null
@@ -1,13 +0,0 @@
-router bgp 65000
- bgp listen range 1.1.1.0/24 peer-group EVPN-OVERLAY-PEERS peer-filter LEAF-AS-RANGE
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS next-hop-unchanged
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password @rista123
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Spine2-BGP-Lab b/topologies/datacenter/configlets/Spine2-BGP-Lab
deleted file mode 100644
index 72a77b81f..000000000
--- a/topologies/datacenter/configlets/Spine2-BGP-Lab
+++ /dev/null
@@ -1,45 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description LEAF1
- no switchport
- ip address 172.16.200.17/30
-!
-interface Ethernet3
- description LEAF2
- no switchport
- ip address 172.16.200.21/30
-!
-interface Ethernet4
- description LEAF3
- no switchport
- ip address 172.16.200.25/30
-!
-interface Ethernet5
- description LEAF4
- no switchport
- ip address 172.16.200.29/30
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- ip address 172.16.0.2/32
-!
-router bgp 65000
- router-id 172.16.0.2
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.18 remote-as 65001
- neighbor 172.16.200.18 maximum-routes 12000
- neighbor 172.16.200.18 send-community extended
- neighbor 172.16.200.22 remote-as 65001
- neighbor 172.16.200.22 maximum-routes 12000
- neighbor 172.16.200.22 send-community extended
- neighbor 172.16.200.26 remote-as 65002
- neighbor 172.16.200.26 maximum-routes 12000
- neighbor 172.16.200.26 send-community extended
- neighbor 172.16.200.30 remote-as 65002
- neighbor 172.16.200.30 maximum-routes 12000
- neighbor 172.16.200.30 send-community extended
- network 172.16.0.2/32
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Spine2-L2EVPN-Lab b/topologies/datacenter/configlets/Spine2-L2EVPN-Lab
deleted file mode 100644
index 93df908b8..000000000
--- a/topologies/datacenter/configlets/Spine2-L2EVPN-Lab
+++ /dev/null
@@ -1,60 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.200.17/30
-!
-interface Ethernet3
- no switchport
- ip address 172.16.200.21/30
-!
-interface Ethernet4
- no switchport
- ip address 172.16.200.25/30
-!
-interface Ethernet5
- no switchport
- ip address 172.16.200.29/30
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- ip address 172.16.0.2/32
-!
-ip prefix-list rt-conn
- seq 10 permit 172.16.0.2/32
-!
-route-map rt-conn permit 10
- match ip address prefix-list rt-conn
-!
-router bgp 65001
- router-id 172.16.0.2
- maximum-paths 2 ecmp 2
- neighbor VTEP peer group
- neighbor VTEP bfd
- neighbor VTEP send-community
- neighbor VTEP maximum-routes 12000
- neighbor VTEP-EVPN-TRANSIT peer group
- neighbor VTEP-EVPN-TRANSIT next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT update-source Loopback0
- neighbor VTEP-EVPN-TRANSIT ebgp-multihop
- neighbor VTEP-EVPN-TRANSIT send-community extended
- neighbor VTEP-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.3 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.3 remote-as 65101
- neighbor 172.16.0.5 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.5 remote-as 65103
- neighbor 172.16.200.18 peer group VTEP
- neighbor 172.16.200.18 remote-as 65101
- neighbor 172.16.200.26 peer group VTEP
- neighbor 172.16.200.26 remote-as 65103
- redistribute connected route-map rt-conn
- !
- address-family evpn
- bgp next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor VTEP-EVPN-TRANSIT activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Spine2-L3EVPN-Lab b/topologies/datacenter/configlets/Spine2-L3EVPN-Lab
deleted file mode 100644
index 93df908b8..000000000
--- a/topologies/datacenter/configlets/Spine2-L3EVPN-Lab
+++ /dev/null
@@ -1,60 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.200.17/30
-!
-interface Ethernet3
- no switchport
- ip address 172.16.200.21/30
-!
-interface Ethernet4
- no switchport
- ip address 172.16.200.25/30
-!
-interface Ethernet5
- no switchport
- ip address 172.16.200.29/30
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- ip address 172.16.0.2/32
-!
-ip prefix-list rt-conn
- seq 10 permit 172.16.0.2/32
-!
-route-map rt-conn permit 10
- match ip address prefix-list rt-conn
-!
-router bgp 65001
- router-id 172.16.0.2
- maximum-paths 2 ecmp 2
- neighbor VTEP peer group
- neighbor VTEP bfd
- neighbor VTEP send-community
- neighbor VTEP maximum-routes 12000
- neighbor VTEP-EVPN-TRANSIT peer group
- neighbor VTEP-EVPN-TRANSIT next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT update-source Loopback0
- neighbor VTEP-EVPN-TRANSIT ebgp-multihop
- neighbor VTEP-EVPN-TRANSIT send-community extended
- neighbor VTEP-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.3 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.3 remote-as 65101
- neighbor 172.16.0.5 peer group VTEP-EVPN-TRANSIT
- neighbor 172.16.0.5 remote-as 65103
- neighbor 172.16.200.18 peer group VTEP
- neighbor 172.16.200.18 remote-as 65101
- neighbor 172.16.200.26 peer group VTEP
- neighbor 172.16.200.26 remote-as 65103
- redistribute connected route-map rt-conn
- !
- address-family evpn
- bgp next-hop-unchanged
- neighbor VTEP-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor VTEP-EVPN-TRANSIT activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Spine2-MLAG-Lab b/topologies/datacenter/configlets/Spine2-MLAG-Lab
deleted file mode 100644
index 374b63bd8..000000000
--- a/topologies/datacenter/configlets/Spine2-MLAG-Lab
+++ /dev/null
@@ -1,65 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel10
- description MLAG PEER LINK - SPINE1
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel12
- description MLAG - LEAF1 & 2
- switchport mode trunk
- mlag 12
-!
-interface Port-Channel34
- description MLAG - LEAF3 & 4
- switchport mode trunk
- mlag 34
-!
-interface Ethernet1
- description MLAG PEER LINK - SPINE1
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Ethernet2
- description LEAF1
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet3
- description LEAF2
- switchport mode trunk
- channel-group 12 mode active
-!
-interface Ethernet4
- description LEAF3
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Ethernet5
- description LEAF4
- switchport mode trunk
- channel-group 34 mode active
-!
-interface Ethernet6
- description MLAG PEER LINK - SPINE1
- switchport mode trunk
- channel-group 10 mode active
-!
-interface Vlan12
- ip address 172.16.112.3/24
- ip virtual-router address 172.16.112.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:12
-!
-interface Vlan4094
- description MLAG PEER LINK
- ip address 172.16.11.2/30
-!
-mlag configuration
- domain-id MLAG01
- local-interface Vlan4094
- peer-address 172.16.11.1
- peer-link Port-Channel10
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Spine2_EVPN_GUIDE_LAB1 b/topologies/datacenter/configlets/Spine2_EVPN_GUIDE_LAB1
deleted file mode 100644
index 9ddf0d315..000000000
--- a/topologies/datacenter/configlets/Spine2_EVPN_GUIDE_LAB1
+++ /dev/null
@@ -1,25 +0,0 @@
-route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
-!
-route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
-!
-peer-filter LEAF-AS-RANGE
- 10 match as-range 65001-65199 result accept
-!
-ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
-ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
-!
-router bgp 65000
- router-id 1.1.1.202
- no bgp default ipv4-unicast
- maximum-paths 2
- bgp listen range 10.0.0.0/8 peer-group IPv4-UNDERLAY-PEERS peer-filter LEAF-AS-RANGE
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/Spine2_EVPN_GUIDE_LAB2 b/topologies/datacenter/configlets/Spine2_EVPN_GUIDE_LAB2
deleted file mode 100644
index 909b49f18..000000000
--- a/topologies/datacenter/configlets/Spine2_EVPN_GUIDE_LAB2
+++ /dev/null
@@ -1,13 +0,0 @@
-router bgp 65000
- bgp listen range 1.1.1.0/24 peer-group EVPN-OVERLAY-PEERS peer-filter LEAF-AS-RANGE
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS next-hop-unchanged
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password @rista123
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/VLANs b/topologies/datacenter/configlets/VLANs
deleted file mode 100644
index fb374c041..000000000
--- a/topologies/datacenter/configlets/VLANs
+++ /dev/null
@@ -1,3 +0,0 @@
-vlan 12
-!
-vlan 34
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/VMTracer b/topologies/datacenter/configlets/VMTracer
deleted file mode 100644
index 8582a5145..000000000
--- a/topologies/datacenter/configlets/VMTracer
+++ /dev/null
@@ -1,8 +0,0 @@
-vmtracer session ATD
- url https://192.168.0.20/sdk
- username root
- password vmware
-!
-interface Ethernet5
- vmtracer vmware-esx
-!
diff --git a/topologies/datacenter/configlets/cvx01-Controller b/topologies/datacenter/configlets/cvx01-Controller
deleted file mode 100644
index 767d97320..000000000
--- a/topologies/datacenter/configlets/cvx01-Controller
+++ /dev/null
@@ -1,5 +0,0 @@
-cvx
- no shutdown
- !
- service vxlan
- no shutdown
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/media-leaf1-BGP-start b/topologies/datacenter/configlets/media-leaf1-BGP-start
deleted file mode 100644
index bdad8b798..000000000
--- a/topologies/datacenter/configlets/media-leaf1-BGP-start
+++ /dev/null
@@ -1,21 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- no switchport
- ip address 10.127.12.1/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- no switchport
- ip address 172.16.15.1/24
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 10.127.255.1/32
-router bgp 1
- router-id 10.127.255.1
- neighbor 10.127.12.2 remote-as 1
- neighbor 10.127.12.2 maximum-routes 12000
- redistribute connected
diff --git a/topologies/datacenter/configlets/media-leaf1-IP-Intro-start b/topologies/datacenter/configlets/media-leaf1-IP-Intro-start
deleted file mode 100644
index b9978dc6c..000000000
--- a/topologies/datacenter/configlets/media-leaf1-IP-Intro-start
+++ /dev/null
@@ -1,15 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- no switchport
- ip address 10.127.12.1/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- no switchport
- ip address 172.16.15.1/24
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-ip route 172.16.46.0/24 10.127.12.2
diff --git a/topologies/datacenter/configlets/media-leaf1-Multicast-Lab b/topologies/datacenter/configlets/media-leaf1-Multicast-Lab
deleted file mode 100644
index 0d028e85c..000000000
--- a/topologies/datacenter/configlets/media-leaf1-Multicast-Lab
+++ /dev/null
@@ -1,38 +0,0 @@
-ip pim rp-address 172.16.0.1
-vlan 15
-interface Ethernet1
- shutdown
-interface Ethernet2
- mtu 9214
- no switchport
- ip address 172.16.200.2/30
- ip pim sparse-mode
-interface Ethernet3
- shutdown
-interface Ethernet4
- switchport access vlan 15
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 172.16.0.1/32
-interface Vlan15
- no autostate
- ip address 172.16.15.1/24
- ip pim sparse-mode
-!
-ip routing
-!
-router multicast
- ipv4
- software-forwarding sfe
-!
-router ospf 6500
- router-id 172.16.0.1
- passive-interface Loopback0
- passive-interface Vlan11
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.15.0/24 area 0.0.0.0
- network 172.16.200.0/30 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/datacenter/configlets/media-leaf1-OSPF-start b/topologies/datacenter/configlets/media-leaf1-OSPF-start
deleted file mode 100644
index 764340fca..000000000
--- a/topologies/datacenter/configlets/media-leaf1-OSPF-start
+++ /dev/null
@@ -1,23 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- no switchport
- ip address 10.127.12.1/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- no switchport
- ip address 172.16.15.1/24
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 10.127.255.1/32
-router ospf 100
- router-id 10.127.255.1
- passive-interface Ethernet4
- passive-interface Loopback0
- network 10.127.0.0/16 area 0.0.0.0
- network 172.16.15.0/24 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/datacenter/configlets/media-leaf1-VLAN-STP-start b/topologies/datacenter/configlets/media-leaf1-VLAN-STP-start
deleted file mode 100644
index 705f83af1..000000000
--- a/topologies/datacenter/configlets/media-leaf1-VLAN-STP-start
+++ /dev/null
@@ -1,16 +0,0 @@
-vlan 100
- name v100
-interface Ethernet1
- shutdown
-interface Ethernet2
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet3
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet4
- switchport access vlan 100
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
diff --git a/topologies/datacenter/configlets/media-leaf2-BGP-start b/topologies/datacenter/configlets/media-leaf2-BGP-start
deleted file mode 100644
index 41af6e458..000000000
--- a/topologies/datacenter/configlets/media-leaf2-BGP-start
+++ /dev/null
@@ -1,22 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
- no switchport
-interface Ethernet4
- shutdown
- no switchport
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/datacenter/configlets/media-leaf2-IP-Intro-start b/topologies/datacenter/configlets/media-leaf2-IP-Intro-start
deleted file mode 100644
index 41af6e458..000000000
--- a/topologies/datacenter/configlets/media-leaf2-IP-Intro-start
+++ /dev/null
@@ -1,22 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
- no switchport
-interface Ethernet4
- shutdown
- no switchport
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/datacenter/configlets/media-leaf2-Multicast-Lab b/topologies/datacenter/configlets/media-leaf2-Multicast-Lab
deleted file mode 100644
index caaeee6ee..000000000
--- a/topologies/datacenter/configlets/media-leaf2-Multicast-Lab
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/media-leaf2-OSPF-start b/topologies/datacenter/configlets/media-leaf2-OSPF-start
deleted file mode 100644
index 2d3baf226..000000000
--- a/topologies/datacenter/configlets/media-leaf2-OSPF-start
+++ /dev/null
@@ -1,22 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
- no switchport
-interface Ethernet4
- shutdown
- no switchport
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/media-leaf2-VLAN-STP-start b/topologies/datacenter/configlets/media-leaf2-VLAN-STP-start
deleted file mode 100644
index caaeee6ee..000000000
--- a/topologies/datacenter/configlets/media-leaf2-VLAN-STP-start
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/media-leaf3-BGP-start b/topologies/datacenter/configlets/media-leaf3-BGP-start
deleted file mode 100644
index 0b6c44a7e..000000000
--- a/topologies/datacenter/configlets/media-leaf3-BGP-start
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/datacenter/configlets/media-leaf3-IP-Intro-start b/topologies/datacenter/configlets/media-leaf3-IP-Intro-start
deleted file mode 100644
index 09b14d88c..000000000
--- a/topologies/datacenter/configlets/media-leaf3-IP-Intro-start
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/media-leaf3-Multicast-Lab b/topologies/datacenter/configlets/media-leaf3-Multicast-Lab
deleted file mode 100644
index 09b14d88c..000000000
--- a/topologies/datacenter/configlets/media-leaf3-Multicast-Lab
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/media-leaf3-OSPF-start b/topologies/datacenter/configlets/media-leaf3-OSPF-start
deleted file mode 100644
index 0b6c44a7e..000000000
--- a/topologies/datacenter/configlets/media-leaf3-OSPF-start
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/datacenter/configlets/media-leaf3-VLAN-STP-start b/topologies/datacenter/configlets/media-leaf3-VLAN-STP-start
deleted file mode 100644
index 09b14d88c..000000000
--- a/topologies/datacenter/configlets/media-leaf3-VLAN-STP-start
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/media-leaf4-BGP-start b/topologies/datacenter/configlets/media-leaf4-BGP-start
deleted file mode 100644
index 6beb84062..000000000
--- a/topologies/datacenter/configlets/media-leaf4-BGP-start
+++ /dev/null
@@ -1,14 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.127.34.4/24
-interface Ethernet4
- no switchport
- ip address 172.16.46.4/24
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
diff --git a/topologies/datacenter/configlets/media-leaf4-IP-Intro-start b/topologies/datacenter/configlets/media-leaf4-IP-Intro-start
deleted file mode 100644
index c04c86e6e..000000000
--- a/topologies/datacenter/configlets/media-leaf4-IP-Intro-start
+++ /dev/null
@@ -1,8 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
diff --git a/topologies/datacenter/configlets/media-leaf4-Multicast-Lab b/topologies/datacenter/configlets/media-leaf4-Multicast-Lab
deleted file mode 100644
index fc476cc8f..000000000
--- a/topologies/datacenter/configlets/media-leaf4-Multicast-Lab
+++ /dev/null
@@ -1,12 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
\ No newline at end of file
diff --git a/topologies/datacenter/configlets/media-leaf4-Multicast-Lab-Completed b/topologies/datacenter/configlets/media-leaf4-Multicast-Lab-Completed
deleted file mode 100644
index 719d62134..000000000
--- a/topologies/datacenter/configlets/media-leaf4-Multicast-Lab-Completed
+++ /dev/null
@@ -1,37 +0,0 @@
-ip pim rp-address 172.16.0.1
-vlan 46
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- mtu 9214
- no switchport
- ip address 172.16.200.26/30
- ip pim sparse-mode
-interface Ethernet4
- switchport access vlan 46
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 172.16.0.4/32
-interface Vlan46
- no autostate
- ip address 172.16.46.4/24
- ip pim sparse-mode
-ip routing
-!
-router multicast
- ipv4
- software-forwarding sfe
-!
-router ospf 6500
- router-id 172.16.0.4
- passive-interface Loopback0
- passive-interface Vlan46
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.46.0/24 area 0.0.0.0
- network 172.16.200.24/30 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/datacenter/configlets/media-leaf4-OSPF-start b/topologies/datacenter/configlets/media-leaf4-OSPF-start
deleted file mode 100644
index c04c86e6e..000000000
--- a/topologies/datacenter/configlets/media-leaf4-OSPF-start
+++ /dev/null
@@ -1,8 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
diff --git a/topologies/datacenter/configlets/media-leaf4-VLAN-STP-start b/topologies/datacenter/configlets/media-leaf4-VLAN-STP-start
deleted file mode 100644
index 2fce8d19f..000000000
--- a/topologies/datacenter/configlets/media-leaf4-VLAN-STP-start
+++ /dev/null
@@ -1,6 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
diff --git a/topologies/datacenter/configlets/media-spine1-BGP-start b/topologies/datacenter/configlets/media-spine1-BGP-start
deleted file mode 100644
index a64203fcc..000000000
--- a/topologies/datacenter/configlets/media-spine1-BGP-start
+++ /dev/null
@@ -1,23 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.2/24
-interface Ethernet2
- no switchport
- ip address 10.127.12.2/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 10.127.255.2/32
-router bgp 1
- router-id 10.127.255.2
- neighbor 10.127.12.1 remote-as 1
- neighbor 10.127.12.1 next-hop-self
- neighbor 10.127.12.1 maximum-routes 12000
- neighbor 10.127.23.3 remote-as 2
- neighbor 10.127.23.3 maximum-routes 12000
diff --git a/topologies/datacenter/configlets/media-spine1-IP-Intro-start b/topologies/datacenter/configlets/media-spine1-IP-Intro-start
deleted file mode 100644
index e28f0cadd..000000000
--- a/topologies/datacenter/configlets/media-spine1-IP-Intro-start
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.2/24
-interface Ethernet2
- no switchport
- ip address 10.127.12.2/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-ip route 172.16.15.0/24 10.127.12.1
-ip route 172.16.46.0/24 10.127.23.3
diff --git a/topologies/datacenter/configlets/media-spine1-Multicast-Lab b/topologies/datacenter/configlets/media-spine1-Multicast-Lab
deleted file mode 100644
index 372b2611c..000000000
--- a/topologies/datacenter/configlets/media-spine1-Multicast-Lab
+++ /dev/null
@@ -1,34 +0,0 @@
-ip pim rp-address 172.16.0.1
-interface Ethernet1
- mtu 9214
- no switchport
- ip address 172.16.200.33/30
- ip pim sparse-mode
-interface Ethernet2
- mtu 9214
- no switchport
- ip address 172.16.200.1/30
- ip pim sparse-mode
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 172.16.0.2/32
-ip routing
-!
-router multicast
- ipv4
- software-forwarding sfe
-!
-router ospf 6500
- router-id 172.16.0.2
- passive-interface Loopback0
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.200.0/30 area 0.0.0.0
- network 172.16.200.32/30 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/datacenter/configlets/media-spine1-OSPF-start b/topologies/datacenter/configlets/media-spine1-OSPF-start
deleted file mode 100644
index c52f5f533..000000000
--- a/topologies/datacenter/configlets/media-spine1-OSPF-start
+++ /dev/null
@@ -1,21 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.2/24
-interface Ethernet2
- no switchport
- ip address 10.127.12.2/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 10.127.255.2/32
-router ospf 100
- router-id 10.127.255.2
- passive-interface Loopback0
- network 10.127.0.0/16 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/datacenter/configlets/media-spine1-VLAN-STP-start b/topologies/datacenter/configlets/media-spine1-VLAN-STP-start
deleted file mode 100644
index 64c19f7e6..000000000
--- a/topologies/datacenter/configlets/media-spine1-VLAN-STP-start
+++ /dev/null
@@ -1,21 +0,0 @@
-spanning-tree mst 0 priority 4096
-vlan 100
- name v100
-interface Ethernet1
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet2
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet6
- shutdown
-interface Vlan100
- ip address 172.16.15.1/24
- ip address 172.16.46.4/24 secondary
diff --git a/topologies/datacenter/configlets/media-spine2-BGP-start b/topologies/datacenter/configlets/media-spine2-BGP-start
deleted file mode 100644
index 2382d3a5f..000000000
--- a/topologies/datacenter/configlets/media-spine2-BGP-start
+++ /dev/null
@@ -1,23 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.3/24
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- no switchport
- ip address 10.127.34.3/24
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 10.127.255.3/32
-router bgp 2
- router-id 10.127.255.3
- neighbor 10.127.23.2 remote-as 1
- neighbor 10.127.23.2 maximum-routes 12000
- neighbor 10.127.34.4 remote-as 2
- neighbor 10.127.34.4 next-hop-self
- neighbor 10.127.34.4 maximum-routes 12000
diff --git a/topologies/datacenter/configlets/media-spine2-IP-Intro-start b/topologies/datacenter/configlets/media-spine2-IP-Intro-start
deleted file mode 100644
index 8b1d0dfd7..000000000
--- a/topologies/datacenter/configlets/media-spine2-IP-Intro-start
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.3/24
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- no switchport
- ip address 10.127.34.3/24
-interface Ethernet6
- shutdown
-ip route 172.16.15.0/24 10.127.23.2
-ip route 172.16.46.0/24 10.127.34.4
diff --git a/topologies/datacenter/configlets/media-spine2-Multicast-Lab b/topologies/datacenter/configlets/media-spine2-Multicast-Lab
deleted file mode 100644
index b9ae5c2b1..000000000
--- a/topologies/datacenter/configlets/media-spine2-Multicast-Lab
+++ /dev/null
@@ -1,34 +0,0 @@
-ip pim rp-address 172.16.0.1
-interface Ethernet1
- mtu 9214
- no switchport
- ip address 172.16.200.34/30
- ip pim sparse-mode
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- mtu 9214
- no switchport
- ip address 172.16.200.25/30
- ip pim sparse-mode
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 172.16.0.3/32
-ip routing
-!
-router multicast
- ipv4
- software-forwarding sfe
-!
-router ospf 6500
- router-id 172.16.0.3
- passive-interface Loopback0
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.200.24/30 area 0.0.0.0
- network 172.16.200.32/30 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/datacenter/configlets/media-spine2-OSPF-start b/topologies/datacenter/configlets/media-spine2-OSPF-start
deleted file mode 100644
index 4e78285dd..000000000
--- a/topologies/datacenter/configlets/media-spine2-OSPF-start
+++ /dev/null
@@ -1,21 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.3/24
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- no switchport
- ip address 10.127.34.3/24
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 10.127.255.3/32
-router ospf 100
- router-id 10.127.255.3
- passive-interface Loopback0
- network 10.127.0.0/16 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/datacenter/configlets/media-spine2-VLAN-STP-start b/topologies/datacenter/configlets/media-spine2-VLAN-STP-start
deleted file mode 100644
index da952ff29..000000000
--- a/topologies/datacenter/configlets/media-spine2-VLAN-STP-start
+++ /dev/null
@@ -1,18 +0,0 @@
-spanning-tree mst 0 priority 8192
-vlan 100
- name v100
-interface Ethernet1
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet2
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet6
- shutdown
diff --git a/topologies/datacenter/configlets/tshoot-default b/topologies/datacenter/configlets/tshoot-default
deleted file mode 100644
index 3548f05f6..000000000
--- a/topologies/datacenter/configlets/tshoot-default
+++ /dev/null
@@ -1,27 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-interface Ethernet7
- shutdown
-interface Ethernet8
- shutdown
-interface Ethernet9
- shutdown
-interface Ethernet10
-!
-banner motd
-******************************
-*** Note this switch is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/datacenter/configlets/tshoot-host1-Tshoot-intro b/topologies/datacenter/configlets/tshoot-host1-Tshoot-intro
deleted file mode 100755
index d1078d4fa..000000000
--- a/topologies/datacenter/configlets/tshoot-host1-Tshoot-intro
+++ /dev/null
@@ -1,18 +0,0 @@
-vlan 22
-!
-interface Ethernet1
-!
-interface Ethernet2
-!
-interface Ethernet3
- description LEAF1
- switchport trunk allowed vlan 12
- switchport mode trunk
-!
-interface Ethernet4
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Vlan22
- ip address 172.16.112.201/24
diff --git a/topologies/datacenter/configlets/tshoot-host1-Tshoot-sp b/topologies/datacenter/configlets/tshoot-host1-Tshoot-sp
deleted file mode 100644
index 7b326865d..000000000
--- a/topologies/datacenter/configlets/tshoot-host1-Tshoot-sp
+++ /dev/null
@@ -1,27 +0,0 @@
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-interface Ethernet1
- no switchport
- ip address 10.127.100.2/24
-!
-interface Ethernet2
-shut
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
-shut
-!
-interface Ethernet5
-shut
-!
-!
-ip routing
-!
-ip route 10.127.0.0/16 10.127.100.1
-!
-end
diff --git a/topologies/datacenter/configlets/tshoot-host2-Tshoot-sp b/topologies/datacenter/configlets/tshoot-host2-Tshoot-sp
deleted file mode 100644
index e43c41145..000000000
--- a/topologies/datacenter/configlets/tshoot-host2-Tshoot-sp
+++ /dev/null
@@ -1,25 +0,0 @@
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
- no switchport
- ip address 10.127.200.2/24
-!
-!
-interface Ethernet3
-!
-interface Ethernet4
-!
-interface Ethernet5
-!
-!
-ip routing
-!
-ip route 10.127.0.0/16 10.127.200.1
-!
-end
diff --git a/topologies/datacenter/configlets/tshoot-leaf1-Tshoot-intro b/topologies/datacenter/configlets/tshoot-leaf1-Tshoot-intro
deleted file mode 100755
index df4bc2e39..000000000
--- a/topologies/datacenter/configlets/tshoot-leaf1-Tshoot-intro
+++ /dev/null
@@ -1,55 +0,0 @@
-vlan 12,34
-!
-interface Ethernet1
- description LEAF2
- switchport mode trunk
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.2/30
- ip ospf network point-to-point
-!
-interface Ethernet3
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet4
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet5
- description HOST1
- switchport trunk allowed vlan 12
- switchport mode trunk
-!
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 172.16.0.3/32
-!
-interface Vlan12
- ip address 172.16.112.1/24
- ip virtual-router address 172.16.115.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:12
-!
-!ip route 0.0.0.0/0 192.168.0.254
-!
-router bgp 65001
- router-id 172.16.0.3
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.1 remote-as 65000
- neighbor 172.16.200.1 send-community extended
- neighbor 172.16.200.1 maximum-routes 12000
- network 172.16.0.3/32
- network 172.16.112.0/25
-!
-router ospf 1
- router-id 172.16.0.3
- passive-interface default
- no passive-interface Ethernet2
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/datacenter/configlets/tshoot-leaf1-Tshoot-sp b/topologies/datacenter/configlets/tshoot-leaf1-Tshoot-sp
deleted file mode 100644
index 18df7d841..000000000
--- a/topologies/datacenter/configlets/tshoot-leaf1-Tshoot-sp
+++ /dev/null
@@ -1,81 +0,0 @@
-!
-service routing protocols model multi-agent
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-!
-vlan 100
- name v100
-!
-vrf instance host
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
- description << p2p Core-1 >>
- no switchport
- ip address 10.127.12.1/24
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
- description << p2p host1 >>
- switchport access vlan 100
-!
-interface Ethernet5
-shut
-interface Ethernet6
- shutdown
-!
-!
-interface Loopback0
- description BGP router-Id
- ip address 10.127.255.1/32
-!
-interface Management1
-!
-interface Vlan100
- vrf host
- ip address 10.127.100.1/24
-!
-ip routing
-ip routing vrf host
-!
-!
-mpls ip
-!
-mpls ldp
- router-id 10.127.255.1
- transport-address interface Loopback0
- password 7 070E33455D1D18544541
- neighbor 10.127.255.2 targeted
- no shutdown
-!
-router bgp 64500
- router-id 10.127.255.1
- neighbor 10.127.255.3 remote-as 64500
- neighbor 10.127.255.3 update-source Loopback0
- neighbor 10.127.255.3 send-community extended
- neighbor 10.127.255.3 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- !
- vrf host
- rd 10.127.255.1:1
- route-target import evpn 65400:1
- route-target export evpn 65400:1
- redistribute connected
-!
-router ospf 100
- router-id 10.127.255.1
- passive-interface Loopback0
- network 10.127.12.0/24 area 0.0.0.0
- network 10.127.255.0/24 area 0.0.0.0
- max-lsa 12000
-!
-end
diff --git a/topologies/datacenter/configlets/tshoot-leaf2-Tshoot-intro b/topologies/datacenter/configlets/tshoot-leaf2-Tshoot-intro
deleted file mode 100755
index 4b39ad1e2..000000000
--- a/topologies/datacenter/configlets/tshoot-leaf2-Tshoot-intro
+++ /dev/null
@@ -1,41 +0,0 @@
-spanning-tree mode mstp
-spanning-tree mst 0 priority 4096
-!
-vlan 12,34
-!
-interface Ethernet1
- description LEAF1
- switchport mode trunk
-!
-interface Ethernet2
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet3
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet4
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet5
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 172.16.0.4/32
-!
-interface Vlan12
- ip address 172.16.115.3/24
- ip virtual-router address 172.16.115.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:12
-!
-!ip route 0.0.0.0/0 192.168.0.254
diff --git a/topologies/datacenter/configlets/tshoot-leaf2-Tshoot-sp b/topologies/datacenter/configlets/tshoot-leaf2-Tshoot-sp
deleted file mode 100644
index 703cd6edd..000000000
--- a/topologies/datacenter/configlets/tshoot-leaf2-Tshoot-sp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-!
-!
-no aaa root
-!
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
-shut
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
-shut
-!
-interface Ethernet5
-shut
-interface Ethernet6
- shutdown
-!
-!
-end
diff --git a/topologies/datacenter/configlets/tshoot-leaf3-Tshoot-sp b/topologies/datacenter/configlets/tshoot-leaf3-Tshoot-sp
deleted file mode 100644
index 703cd6edd..000000000
--- a/topologies/datacenter/configlets/tshoot-leaf3-Tshoot-sp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-!
-!
-no aaa root
-!
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
-shut
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
-shut
-!
-interface Ethernet5
-shut
-interface Ethernet6
- shutdown
-!
-!
-end
diff --git a/topologies/datacenter/configlets/tshoot-leaf4-Tshoot-sp b/topologies/datacenter/configlets/tshoot-leaf4-Tshoot-sp
deleted file mode 100644
index 2525a3bef..000000000
--- a/topologies/datacenter/configlets/tshoot-leaf4-Tshoot-sp
+++ /dev/null
@@ -1,86 +0,0 @@
-!
-service routing protocols model multi-agent
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-vlan 200
- name v200
-!
-vrf instance host
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
- description << p2p Core-1 >>
- no switchport
- ip address 10.127.24.4/24
-!
-interface Ethernet3
- description << p2p Core-2 >>
- no switchport
- ip address 10.127.34.4/24
-!
-interface Ethernet4
- description << p2p host2 >>
- switchport access vlan 200
-!
-interface Ethernet5
-shut
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- description BGP router-Id
- ip address 10.127.255.4/32
-!
-!
-interface Vlan200
- vrf host
- ip address 10.127.200.1/24
-!
-ip routing
-ip routing vrf host
-!
-!
-mpls ip
-!
-mpls ldp
- router-id 10.127.255.4
- transport-address interface Loopback0
- password 7 070E33455D1D18544541
- neighbor 10.127.255.3 targeted
- neighbor 10.127.255.2 targeted
- no shutdown
-!
-router bgp 64500
- router-id 10.127.255.4
- neighbor 10.127.255.1 remote-as 64500
- neighbor 10.127.255.1 update-source Loopback0
- neighbor 10.127.255.1 send-community extended
- neighbor 10.127.255.1 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 10.127.255.1 activate
- !
- address-family ipv4
- no neighbor 10.127.255.1 activate
- !
- vrf host
- rd 10.127.255.4:1
- route-target import evpn 64500:1
- route-target export evpn 64500:1
- redistribute connected
-!
-router ospf 100
- router-id 10.127.255.4
- passive-interface Loopback0
- network 10.127.34.0/24 area 0.0.0.0
- network 10.127.255.0/24 area 0.0.0.0
- max-lsa 12000
-!
-!
-end
diff --git a/topologies/datacenter/configlets/tshoot-spine1-Tshoot-intro b/topologies/datacenter/configlets/tshoot-spine1-Tshoot-intro
deleted file mode 100755
index 5261cd7f3..000000000
--- a/topologies/datacenter/configlets/tshoot-spine1-Tshoot-intro
+++ /dev/null
@@ -1,50 +0,0 @@
-vlan 12,34
-!
-interface Ethernet1
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet2
- description LEAF1
- mtu 9000
- no switchport
- ip address 172.16.200.1/30
- ip ospf network point-to-point
-!
-interface Ethernet3
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet4
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet5
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 172.16.0.1/32
-!
-! ip route 0.0.0.0/0 192.168.0.254
-!
-router bgp 65000
- router-id 172.16.0.1
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.2 remote-as 65001
- neighbor 172.16.200.2 send-community extended
- neighbor 172.16.200.2 maximum-routes 12000
- network 172.16.0.1/32
-!
-router ospf 1
- router-id 172.16.0.1
- passive-interface default
- no passive-interface Ethernet2
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/datacenter/configlets/tshoot-spine1-Tshoot-sp b/topologies/datacenter/configlets/tshoot-spine1-Tshoot-sp
deleted file mode 100644
index e17d8e1fc..000000000
--- a/topologies/datacenter/configlets/tshoot-spine1-Tshoot-sp
+++ /dev/null
@@ -1,61 +0,0 @@
-!
-service routing protocols model multi-agent
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-!
-interface Ethernet1
- description << p2p Core-2 >>
- no switchport
- ip address 10.127.23.2/24
-!
-interface Ethernet2
- description << p2p PE-1 >>
- no switchport
- ip address 10.127.12.2/24
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
-shut
-!
-interface Ethernet5
- description << p2p PE-2 >>
- no switchport
- ip address 10.127.24.2/24
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- description BGP router-Id
- ip address 10.127.255.2/32
-!
-!
-ip routing
-!
-!
-mpls ip
-!
-mpls ldp
- router-id 10.127.255.2
- transport-address interface Loopback0
- password 7 070E33455D1D18544541
- neighbor 10.127.255.4 targeted
- neighbor 10.127.255.1 targeted
- no shutdown
-!
-router ospf 100
- router-id 10.127.255.2
- passive-interface Loopback0
- network 10.127.12.0/24 area 0.0.0.0
- network 10.127.23.0/24 area 0.0.0.0
- network 10.127.24.0/24 area 0.0.0.0
- network 10.127.255.0/24 area 0.0.0.0
- max-lsa 12000
-!
-!
-end
diff --git a/topologies/datacenter/configlets/tshoot-spine2-Tshoot-sp b/topologies/datacenter/configlets/tshoot-spine2-Tshoot-sp
deleted file mode 100644
index 4920014ca..000000000
--- a/topologies/datacenter/configlets/tshoot-spine2-Tshoot-sp
+++ /dev/null
@@ -1,52 +0,0 @@
-!
-service routing protocols model multi-agent
-!
-spanning-tree mode mstp
-!
-interface Ethernet1
- description << p2p Core-1 >>
- no switchport
- ip address 10.127.23.3/24
-!
-interface Ethernet2
-shut
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
-shut
-!
-interface Ethernet5
- description << p2p PE-2 >>
- no switchport
- ip address 10.127.34.3/24
-!
-interface Ethernet6
- shutdown
-interface Loopback0
- description BGP router-Id
- ip address 10.127.255.3/32
-!
-ip routing
-!
-!
-mpls ip
-!
-mpls ldp
- router-id 10.127.255.3
- transport-address interface Loopback0
- password 7 070E33455D1D18544541
- neighbor 10.127.255.4 targeted
- neighbor 10.127.255.2 targeted
- no shutdown
-!
-router ospf 100
- router-id 10.127.255.3
- passive-interface Loopback0
- network 10.127.23.0/24 area 0.0.0.0
- network 10.127.34.0/24 area 0.0.0.0
- network 10.127.255.0/24 area 0.0.0.0
- max-lsa 12000
-!
-end
diff --git a/topologies/datacenter/files/.ansible.cfg b/topologies/datacenter/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/datacenter/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/datacenter/files/.screenrc b/topologies/datacenter/files/.screenrc
deleted file mode 100644
index f9c087d91..000000000
--- a/topologies/datacenter/files/.screenrc
+++ /dev/null
@@ -1,20 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.10
-screen 2 ssh 192.168.0.11
-screen 3 ssh 192.168.0.12
-screen 4 ssh 192.168.0.13
-screen 5 ssh 192.168.0.14
-screen 6 ssh 192.168.0.15
-screen 7 ssh 192.168.0.16
-screen 8 ssh 192.168.0.17
-screen 9 ssh 192.168.0.18
-screen 10 /usr/local/bin/login.py
\ No newline at end of file
diff --git a/topologies/datacenter/files/Broadcaster/mcast-receiver.sh b/topologies/datacenter/files/Broadcaster/mcast-receiver.sh
deleted file mode 100755
index 926fa6200..000000000
--- a/topologies/datacenter/files/Broadcaster/mcast-receiver.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-echo "Starting Receivers"
-sudo ip route add 239.103.1.1/32 dev et2
-sudo ip route add 239.103.1.2/32 dev et2
-sudo ip route add 239.103.1.3/32 dev et2
-iperf -s -u -B 239.103.1.1 -i 1 &
-iperf -s -u -B 239.103.1.2 -i 1 &
diff --git a/topologies/datacenter/files/Broadcaster/mcast-source.sh b/topologies/datacenter/files/Broadcaster/mcast-source.sh
deleted file mode 100755
index 20634a056..000000000
--- a/topologies/datacenter/files/Broadcaster/mcast-source.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-#echo Starting source 239.103.1.1-3 for 1800 seconds
-echo "Starting Sources"
-#adding routes in kernel to prefer et1 instead of ATD underlay interface
-sudo ip route add 239.103.1.1/32 dev et1
-sudo ip route add 239.103.1.2/32 dev et1
-sudo ip route add 239.103.1.3/32 dev et1
-
-for i in {1..3} ; do
- IP='239.103.1'
- IP=$IP.$i
- iperf -c $IP -u -b 0.125m -T 10 -t 1800 -i 1 -&
-done
diff --git a/topologies/datacenter/files/Broadcaster/pushHostDefaultConfig.sh b/topologies/datacenter/files/Broadcaster/pushHostDefaultConfig.sh
deleted file mode 100755
index abf8cf8d0..000000000
--- a/topologies/datacenter/files/Broadcaster/pushHostDefaultConfig.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-rm -f ~/enable-media
-
-# echo "Prepping host vms and enabling eAPI"
-# ssh -t 192.168.0.31 "
-# enable
-# configure
-# aaa authorization exec default local"
-
-# ssh -t 192.168.0.32 "
-# enable
-# configure
-# aaa authorization exec default local"
-
-# echo "Loading Configs"
-# #config replace
-# ssh -t 192.168.0.31 "configure replace flash:default-host1.cfg"
-# ssh -t 192.168.0.32 "configure replace flash:default-host2.cfg"
diff --git a/topologies/datacenter/files/Broadcaster/pushHostMediaConfig.sh b/topologies/datacenter/files/Broadcaster/pushHostMediaConfig.sh
deleted file mode 100755
index 91b42c9ab..000000000
--- a/topologies/datacenter/files/Broadcaster/pushHostMediaConfig.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-
-touch ~/enable-media
-
-# echo "Prepping host vms and enabling eAPI"
-# ssh -t 192.168.0.31 "
-# enable
-# configure
-# aaa authorization exec default local"
-
-# ssh -t 192.168.0.32 "
-# enable
-# configure
-# aaa authorization exec default local"
-
-echo "Updating File Permissions"
-#sudo chown -R arista:arista /home/arista/Broadcaster/
-# chmod +x /home/arista/Broadcaster/configletPushToCVP.sh
-chmod +x /home/arista/Broadcaster/mcast-source.sh
-chmod +x /home/arista/Broadcaster/mcast-receiver.sh
-
-echo "Copying Configs"
-#copy files over
-# scp /home/arista/Broadcaster/media-host1.cfg 192.168.0.31:/mnt/flash
-# scp /home/arista/Broadcaster/media-host2.cfg 192.168.0.32:/mnt/flash
-# scp /home/arista/Broadcaster/default-host1.cfg 192.168.0.31:/mnt/flash
-# scp /home/arista/Broadcaster/default-host2.cfg 192.168.0.32:/mnt/flash
-scp -o StrictHostKeyChecking=no /home/arista/Broadcaster/mcast-source.sh 192.168.0.16:/mnt/flash
-scp -o StrictHostKeyChecking=no /home/arista/Broadcaster/mcast-receiver.sh 192.168.0.17:/mnt/flash
-
-# echo "Loading Configs"
-# #config replace
-# ssh -t 192.168.0.31 "configure replace flash:media-host1.cfg"
-# ssh -t 192.168.0.32 "configure replace flash:media-host2.cfg"
-
diff --git a/topologies/datacenter/files/apps/coder/coder.yaml b/topologies/datacenter/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/datacenter/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/datacenter/files/apps/coder/labfiles/lab4/lab4-advanced-hosts b/topologies/datacenter/files/apps/coder/labfiles/lab4/lab4-advanced-hosts
deleted file mode 100644
index 23c3ff3f4..000000000
--- a/topologies/datacenter/files/apps/coder/labfiles/lab4/lab4-advanced-hosts
+++ /dev/null
@@ -1,2 +0,0 @@
-[veos]
-192.168.0.14
diff --git a/topologies/datacenter/files/apps/coder/labfiles/lab4/lab4-advanced-playbook.yml b/topologies/datacenter/files/apps/coder/labfiles/lab4/lab4-advanced-playbook.yml
deleted file mode 100644
index 34b8c5480..000000000
--- a/topologies/datacenter/files/apps/coder/labfiles/lab4/lab4-advanced-playbook.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-- name: Add a VLAN
- hosts: 192.168.0.14
- gather_facts: 'no'
- connection: local
- vars:
- provider:
- host: "{{ ansible_host }}"
- username: "arista"
- password: "arista"
- authorize: 'yes'
- transport: eapi
- validate_certs: 'no'
- tasks:
- - eos_config:
- lines:
- - name foo
- parents: vlan 500
- provider: "{{ provider }}"
diff --git a/topologies/datacenter/files/apps/coder/labfiles/lab6/lab/group_vars/.placeholder b/topologies/datacenter/files/apps/coder/labfiles/lab6/lab/group_vars/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/datacenter/files/apps/ssh/web.json b/topologies/datacenter/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/datacenter/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/datacenter/files/apps/uilanding/modules.yaml b/topologies/datacenter/files/apps/uilanding/modules.yaml
deleted file mode 100644
index 72e586417..000000000
--- a/topologies/datacenter/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "242,86,327,127"
- ip: "192.168.0.10"
- Spine2:
- coords: "387,82,468,126"
- ip: "192.168.0.11"
- Leaf1:
- coords: "90,259,175,302"
- ip: "192.168.0.12"
- Leaf2:
- coords: "239,262,322,302"
- ip: "192.168.0.13"
- Leaf3:
- coords: "385,261,469,301"
- ip: "192.168.0.14"
- Leaf4:
- coords: "532,262,615,301"
- ip: "192.168.0.15"
- Host1:
- coords: "167,379,253,420"
- ip: "192.168.0.16"
- Host2:
- coords: "460,381,546,424"
- ip: "192.168.0.17"
- CVP:
- coords: "654,60,852,182"
- ip: "192.168.0.5"
\ No newline at end of file
diff --git a/topologies/datacenter/files/apps/webui/.vncpass_clear b/topologies/datacenter/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/datacenter/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/datacenter/files/ceos/cvx01/ceos-config b/topologies/datacenter/files/ceos/cvx01/ceos-config
deleted file mode 100644
index aabbd8279..000000000
--- a/topologies/datacenter/files/ceos/cvx01/ceos-config
+++ /dev/null
@@ -1 +0,0 @@
-SERIALNUMBER=cvx01
diff --git a/topologies/datacenter/files/ceos/cvx01/startup-config b/topologies/datacenter/files/ceos/cvx01/startup-config
deleted file mode 100644
index bd5614c49..000000000
--- a/topologies/datacenter/files/ceos/cvx01/startup-config
+++ /dev/null
@@ -1,25 +0,0 @@
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username arista privilege 15 secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-service routing protocols model multi-agent
-interface Management0
- ip address 192.168.0.18/24
-!
-hostname cvx01
diff --git a/topologies/datacenter/files/ceos/cvx01/system_mac_address b/topologies/datacenter/files/ceos/cvx01/system_mac_address
deleted file mode 100644
index e19062033..000000000
--- a/topologies/datacenter/files/ceos/cvx01/system_mac_address
+++ /dev/null
@@ -1 +0,0 @@
-00:1c:73:b8:d5:01
\ No newline at end of file
diff --git a/topologies/datacenter/files/ceos/host1/ceos-config b/topologies/datacenter/files/ceos/host1/ceos-config
deleted file mode 100644
index 0fc2a64f4..000000000
--- a/topologies/datacenter/files/ceos/host1/ceos-config
+++ /dev/null
@@ -1 +0,0 @@
-SERIALNUMBER=host1
diff --git a/topologies/datacenter/files/ceos/host1/startup-config b/topologies/datacenter/files/ceos/host1/startup-config
deleted file mode 100644
index b18896a88..000000000
--- a/topologies/datacenter/files/ceos/host1/startup-config
+++ /dev/null
@@ -1,25 +0,0 @@
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username arista privilege 15 secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-service routing protocols model multi-agent
-interface Management0
- ip address 192.168.0.16/24
-!
-hostname host1
diff --git a/topologies/datacenter/files/ceos/host1/system_mac_address b/topologies/datacenter/files/ceos/host1/system_mac_address
deleted file mode 100644
index afba76cc7..000000000
--- a/topologies/datacenter/files/ceos/host1/system_mac_address
+++ /dev/null
@@ -1 +0,0 @@
-00:1c:73:b6:d5:01
\ No newline at end of file
diff --git a/topologies/datacenter/files/ceos/host2/ceos-config b/topologies/datacenter/files/ceos/host2/ceos-config
deleted file mode 100644
index 70762812f..000000000
--- a/topologies/datacenter/files/ceos/host2/ceos-config
+++ /dev/null
@@ -1 +0,0 @@
-SERIALNUMBER=host2
diff --git a/topologies/datacenter/files/ceos/host2/startup-config b/topologies/datacenter/files/ceos/host2/startup-config
deleted file mode 100644
index e1548b169..000000000
--- a/topologies/datacenter/files/ceos/host2/startup-config
+++ /dev/null
@@ -1,25 +0,0 @@
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username arista privilege 15 secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-service routing protocols model multi-agent
-interface Management0
- ip address 192.168.0.17/24
-!
-hostname host2
diff --git a/topologies/datacenter/files/ceos/host2/system_mac_address b/topologies/datacenter/files/ceos/host2/system_mac_address
deleted file mode 100644
index 7551cd237..000000000
--- a/topologies/datacenter/files/ceos/host2/system_mac_address
+++ /dev/null
@@ -1 +0,0 @@
-00:1c:73:b7:d5:01
\ No newline at end of file
diff --git a/topologies/datacenter/files/ceos/leaf1/ceos-config b/topologies/datacenter/files/ceos/leaf1/ceos-config
deleted file mode 100644
index 19f179389..000000000
--- a/topologies/datacenter/files/ceos/leaf1/ceos-config
+++ /dev/null
@@ -1 +0,0 @@
-SERIALNUMBER=leaf1
diff --git a/topologies/datacenter/files/ceos/leaf1/startup-config b/topologies/datacenter/files/ceos/leaf1/startup-config
deleted file mode 100644
index 2f16630f3..000000000
--- a/topologies/datacenter/files/ceos/leaf1/startup-config
+++ /dev/null
@@ -1,25 +0,0 @@
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username arista privilege 15 secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-service routing protocols model multi-agent
-interface Management0
- ip address 192.168.0.12/24
-!
-hostname leaf1
diff --git a/topologies/datacenter/files/ceos/leaf1/system_mac_address b/topologies/datacenter/files/ceos/leaf1/system_mac_address
deleted file mode 100644
index ccdafc462..000000000
--- a/topologies/datacenter/files/ceos/leaf1/system_mac_address
+++ /dev/null
@@ -1 +0,0 @@
-00:1c:73:b2:d5:01
\ No newline at end of file
diff --git a/topologies/datacenter/files/ceos/leaf2/ceos-config b/topologies/datacenter/files/ceos/leaf2/ceos-config
deleted file mode 100644
index 87949c8cb..000000000
--- a/topologies/datacenter/files/ceos/leaf2/ceos-config
+++ /dev/null
@@ -1 +0,0 @@
-SERIALNUMBER=leaf2
diff --git a/topologies/datacenter/files/ceos/leaf2/startup-config b/topologies/datacenter/files/ceos/leaf2/startup-config
deleted file mode 100644
index 08ea6f50c..000000000
--- a/topologies/datacenter/files/ceos/leaf2/startup-config
+++ /dev/null
@@ -1,25 +0,0 @@
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username arista privilege 15 secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-service routing protocols model multi-agent
-interface Management0
- ip address 192.168.0.13/24
-!
-hostname leaf2
diff --git a/topologies/datacenter/files/ceos/leaf2/system_mac_address b/topologies/datacenter/files/ceos/leaf2/system_mac_address
deleted file mode 100644
index f1641cbdb..000000000
--- a/topologies/datacenter/files/ceos/leaf2/system_mac_address
+++ /dev/null
@@ -1 +0,0 @@
-00:1c:73:b3:d5:01
\ No newline at end of file
diff --git a/topologies/datacenter/files/ceos/leaf3/ceos-config b/topologies/datacenter/files/ceos/leaf3/ceos-config
deleted file mode 100644
index b49a7756c..000000000
--- a/topologies/datacenter/files/ceos/leaf3/ceos-config
+++ /dev/null
@@ -1 +0,0 @@
-SERIALNUMBER=leaf3
diff --git a/topologies/datacenter/files/ceos/leaf3/startup-config b/topologies/datacenter/files/ceos/leaf3/startup-config
deleted file mode 100644
index ec57bd5fa..000000000
--- a/topologies/datacenter/files/ceos/leaf3/startup-config
+++ /dev/null
@@ -1,25 +0,0 @@
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username arista privilege 15 secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-service routing protocols model multi-agent
-interface Management0
- ip address 192.168.0.14/24
-!
-hostname leaf3
diff --git a/topologies/datacenter/files/ceos/leaf3/system_mac_address b/topologies/datacenter/files/ceos/leaf3/system_mac_address
deleted file mode 100644
index 8bf32229e..000000000
--- a/topologies/datacenter/files/ceos/leaf3/system_mac_address
+++ /dev/null
@@ -1 +0,0 @@
-00:1c:73:b4:d5:01
\ No newline at end of file
diff --git a/topologies/datacenter/files/ceos/leaf4/ceos-config b/topologies/datacenter/files/ceos/leaf4/ceos-config
deleted file mode 100644
index cb0663d7c..000000000
--- a/topologies/datacenter/files/ceos/leaf4/ceos-config
+++ /dev/null
@@ -1 +0,0 @@
-SERIALNUMBER=leaf4
diff --git a/topologies/datacenter/files/ceos/leaf4/startup-config b/topologies/datacenter/files/ceos/leaf4/startup-config
deleted file mode 100644
index 89e44e453..000000000
--- a/topologies/datacenter/files/ceos/leaf4/startup-config
+++ /dev/null
@@ -1,25 +0,0 @@
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username arista privilege 15 secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-service routing protocols model multi-agent
-interface Management0
- ip address 192.168.0.15/24
-!
-hostname leaf4
diff --git a/topologies/datacenter/files/ceos/leaf4/system_mac_address b/topologies/datacenter/files/ceos/leaf4/system_mac_address
deleted file mode 100644
index e80fb7231..000000000
--- a/topologies/datacenter/files/ceos/leaf4/system_mac_address
+++ /dev/null
@@ -1 +0,0 @@
-00:1c:73:b5:d5:01
\ No newline at end of file
diff --git a/topologies/datacenter/files/ceos/spine1/ceos-config b/topologies/datacenter/files/ceos/spine1/ceos-config
deleted file mode 100644
index a406e8a05..000000000
--- a/topologies/datacenter/files/ceos/spine1/ceos-config
+++ /dev/null
@@ -1 +0,0 @@
-SERIALNUMBER=spine1
diff --git a/topologies/datacenter/files/ceos/spine1/startup-config b/topologies/datacenter/files/ceos/spine1/startup-config
deleted file mode 100644
index 9b3b6b3b0..000000000
--- a/topologies/datacenter/files/ceos/spine1/startup-config
+++ /dev/null
@@ -1,25 +0,0 @@
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username arista privilege 15 secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-service routing protocols model multi-agent
-interface Management0
- ip address 192.168.0.10/24
-!
-hostname spine1
diff --git a/topologies/datacenter/files/ceos/spine1/system_mac_address b/topologies/datacenter/files/ceos/spine1/system_mac_address
deleted file mode 100644
index a74f8303b..000000000
--- a/topologies/datacenter/files/ceos/spine1/system_mac_address
+++ /dev/null
@@ -1 +0,0 @@
-00:1c:73:b0:d5:01
\ No newline at end of file
diff --git a/topologies/datacenter/files/ceos/spine2/ceos-config b/topologies/datacenter/files/ceos/spine2/ceos-config
deleted file mode 100644
index 44a874ff1..000000000
--- a/topologies/datacenter/files/ceos/spine2/ceos-config
+++ /dev/null
@@ -1 +0,0 @@
-SERIALNUMBER=spine2
diff --git a/topologies/datacenter/files/ceos/spine2/startup-config b/topologies/datacenter/files/ceos/spine2/startup-config
deleted file mode 100644
index d57a9552c..000000000
--- a/topologies/datacenter/files/ceos/spine2/startup-config
+++ /dev/null
@@ -1,25 +0,0 @@
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username arista privilege 15 secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-service routing protocols model multi-agent
-interface Management0
- ip address 192.168.0.11/24
-!
-hostname spine2
diff --git a/topologies/datacenter/files/ceos/spine2/system_mac_address b/topologies/datacenter/files/ceos/spine2/system_mac_address
deleted file mode 100644
index 6c9f9c18a..000000000
--- a/topologies/datacenter/files/ceos/spine2/system_mac_address
+++ /dev/null
@@ -1 +0,0 @@
-00:1c:73:b1:d5:01
\ No newline at end of file
diff --git a/topologies/datacenter/files/cvp/cvp_info.yaml b/topologies/datacenter/files/cvp/cvp_info.yaml
deleted file mode 100644
index e38a7d3b9..000000000
--- a/topologies/datacenter/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf:
- parent: Tenant
- nodes:
- - leaf1
- - leaf2
- - leaf3
- - leaf4
- Spine:
- parent: Tenant
- nodes:
- - spine1
- - spine2
- CVX:
- parent: Tenant
- nodes:
- - cvx01
- Hosts:
- parent: Tenant
- nodes:
- - host1
- - host2
- snapshots:
- - name: Validate_Routing
- commands:
- - show ip route summary
- - show ip bgp summary
- - name: EOS_Upgrade
- commands:
- - show version
- - show extensions
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- spine1:
- - BaseIPv4_Spine1
- spine2:
- - BaseIPv4_Spine2
- leaf1:
- - BaseIPv4_Leaf1
- leaf2:
- - BaseIPv4_Leaf2
- leaf3:
- - BaseIPv4_Leaf3
- leaf4:
- - BaseIPv4_Leaf4
- host1:
- - BaseIPv4_Host1
- - Host1-ATD
- host2:
- - BaseIPv4_Host2
- - Host2-ATD
- cvx01:
- - BaseIPv4_Cvx01
- - cvx01-Controller
-
\ No newline at end of file
diff --git a/topologies/datacenter/files/hosts b/topologies/datacenter/files/hosts
deleted file mode 100644
index c294d1e20..000000000
--- a/topologies/datacenter/files/hosts
+++ /dev/null
@@ -1,11 +0,0 @@
-127.0.0.1 localhost
-192.168.0.10 spine1
-192.168.0.11 spine2
-192.168.0.12 leaf1
-192.168.0.13 leaf2
-192.168.0.14 leaf3
-192.168.0.15 leaf4
-192.168.0.16 host1
-192.168.0.17 host2
-192.168.0.18 cvx
-192.168.0.5 cvp
diff --git a/topologies/datacenter/files/infra/user-mapping.xml b/topologies/datacenter/files/infra/user-mapping.xml
deleted file mode 100644
index 7ae982041..000000000
--- a/topologies/datacenter/files/infra/user-mapping.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
-
-
-
-
-
-
- rdp
- atd-desktop
- 3389
- arista
- arista
- true
-
-
- rdp
- atd-ansible-avd
- 3389
- arista
- arista
- true
-
-
- ssh
- 192.168.0.1
- 22
- arista
- {ARISTA_REPLACE}
-
-
- ssh
- 192.168.0.5
- 22
- root
- cvproot
-
-
- ssh
- 192.168.0.10
- 22
- arista
- arista
-
-
- ssh
- 192.168.0.11
- 22
- arista
- arista
-
-
- ssh
- 192.168.0.12
- 22
- arista
- arista
-
-
- ssh
- 192.168.0.13
- 22
- arista
- arista
-
-
- ssh
- 192.168.0.14
- 22
- arista
- arista
-
-
- ssh
- 192.168.0.15
- 22
- arista
- arista
-
-
- ssh
- 192.168.0.16
- 22
- arista
- arista
-
-
- ssh
- 192.168.0.17
- 22
- arista
- arista
-
-
- ssh
- 192.168.0.18
- 22
- arista
- arista
-
-
-
-
-
\ No newline at end of file
diff --git a/topologies/datacenter/files/menus/Datacenter.yaml b/topologies/datacenter/files/menus/Datacenter.yaml
deleted file mode 100644
index 532e9d9fc..000000000
--- a/topologies/datacenter/files/menus/Datacenter.yaml
+++ /dev/null
@@ -1,250 +0,0 @@
----
-lab_list:
- reset:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- mlag:
- description: "MLAG Lab (mlag)"
- bgp:
- description: "BGP Lab (bgp)"
- vxlan:
- description: "VXLAN Lab (vxlan) excludes leaf3 instead of leaf4"
- l2evpn:
- description: "EVPN Type 2 Lab (l2evpn) excludes leaf3 instead of leaf4"
- l3evpn:
- description: "EVPN Type 5 Lab (l3evpn) excludes leaf3 instead of leaf4"
- cvp:
- description: "CVP lab (cvp)"
- cvpstudl3lsevpn:
- description: "CVP lab for Studios L3LS/EVPN (cvpstudl3lsevpn)"
-
-labconfiglets:
- reset:
- spine1:
- - "BaseIPv4_Spine1"
- spine2:
- - "BaseIPv4_Spine2"
- leaf1:
- - "BaseIPv4_Leaf1"
- leaf2:
- - "BaseIPv4_Leaf2"
- leaf3:
- - "BaseIPv4_Leaf3"
- leaf4:
- - "BaseIPv4_Leaf4"
- cvx01:
- - "BaseIPv4_Cvx01"
- - "cvx01-Controller"
- host1:
- - "BaseIPv4_Host1"
- - "Host1-ATD"
- host2:
- - "BaseIPv4_Host2"
- - "Host2-ATD"
- mlag:
- spine1:
- - "BaseIPv4_Spine1"
- - "Spine1-MLAG-Lab"
- - "VLANs"
- spine2:
- - "BaseIPv4_Spine2"
- - "Spine2-MLAG-Lab"
- - "VLANs"
- leaf1:
- - "BaseIPv4_Leaf1"
- - "Leaf1-MLAG-Lab"
- - "VLANs"
- leaf2:
- - "BaseIPv4_Leaf2"
- - "Leaf2-MLAG-Lab"
- - "VLANs"
- leaf3:
- - "BaseIPv4_Leaf3"
- - "Leaf3-MLAG-Lab"
- - "VLANs"
- leaf4:
- - "BaseIPv4_Leaf4"
- - "VLANs"
- cvx01:
- - "BaseIPv4_Cvx01"
- - "cvx01-Controller"
- host1:
- - "BaseIPv4_Host1"
- - "Host1-ATD"
- host2:
- - "BaseIPv4_Host2"
- - "Host2-ATD"
- bgp:
- spine1:
- - "BaseIPv4_Spine1"
- - "Spine1-BGP-Lab"
- spine2:
- - "BaseIPv4_Spine2"
- - "Spine2-BGP-Lab"
- leaf1:
- - "BaseIPv4_Leaf1"
- - "Leaf1-BGP-Lab"
- - "VLANs"
- leaf2:
- - "BaseIPv4_Leaf2"
- - "Leaf2-BGP-Lab"
- - "VLANs"
- leaf3:
- - "BaseIPv4_Leaf3"
- - "Leaf3-BGP-Lab"
- - "VLANs"
- leaf4:
- - "BaseIPv4_Leaf4"
- - "Leaf4-BGP-Lab"
- - "VLANs"
- cvx01:
- - "BaseIPv4_Cvx01"
- - "cvx01-Controller"
- host1:
- - "BaseIPv4_Host1"
- - "Host1-ATD"
- host2:
- - "BaseIPv4_Host2"
- - "Host2-ATD"
- vxlan:
- spine1:
- - "BaseIPv4_Spine1"
- - "Spine1-BGP-Lab"
- spine2:
- - "BaseIPv4_Spine2"
- - "Spine2-BGP-Lab"
- leaf1:
- - "BaseIPv4_Leaf1"
- - "Leaf1-VXLAN-Lab"
- - "VLANs"
- leaf2:
- - "BaseIPv4_Leaf2"
- - "Leaf2-VXLAN-Lab"
- - "VLANs"
- leaf3:
- - "BaseIPv4_Leaf3"
- - "Leaf3-VXLAN-Lab"
- - "VLANs"
- leaf4:
- - "BaseIPv4_Leaf4"
- - "Leaf4-VXLAN-Lab"
- - "VLANs"
- cvx01:
- - "BaseIPv4_Cvx01"
- - "cvx01-Controller"
- host1:
- - "BaseIPv4_Host1"
- - "Host1-ATD"
- host2:
- - "BaseIPv4_Host2"
- - "Host2-ATD"
- l2evpn:
- spine1:
- - "BaseIPv4_Spine1"
- - "Spine1-L2EVPN-Lab"
- spine2:
- - "BaseIPv4_Spine2"
- - "Spine2-L2EVPN-Lab"
- leaf1:
- - "BaseIPv4_Leaf1"
- - "Leaf1-L2EVPN-Lab"
- - "VLANs"
- leaf2:
- - "BaseIPv4_Leaf2"
- - "Leaf2-L2EVPN-Lab"
- - "VLANs"
- leaf3:
- - "BaseIPv4_Leaf3"
- - "VLANs"
- leaf4:
- - "BaseIPv4_Leaf4"
- - "Leaf4-L2EVPN-Lab"
- - "VLANs"
- cvx01:
- - "BaseIPv4_Cvx01"
- - "cvx01-Controller"
- host1:
- - "BaseIPv4_Host1"
- - "Host1-ATD"
- host2:
- - "BaseIPv4_Host2"
- - "Host2-ATD"
- l3evpn:
- spine1:
- - "BaseIPv4_Spine1"
- - "Spine1-L3EVPN-Lab"
- spine2:
- - "BaseIPv4_Spine2"
- - "Spine2-L3EVPN-Lab"
- leaf1:
- - "BaseIPv4_Leaf1"
- - "Leaf1-L3EVPN-Lab"
- leaf2:
- - "BaseIPv4_Leaf2"
- - "Leaf2-L3EVPN-Lab"
- leaf3:
- - "BaseIPv4_Leaf3"
- - "VLANs"
- leaf4:
- - "BaseIPv4_Leaf4"
- - "Leaf4-L3EVPN-Lab"
- cvx01:
- - "BaseIPv4_Cvx01"
- - "cvx01-Controller"
- host1:
- - "BaseIPv4_Host1"
- - "Host1-ATD"
- host2:
- - "BaseIPv4_Host2"
- - "Host2-ATD"
- cvp:
- spine1:
- - "BaseIPv4_Spine1"
- - "Spine1-BGP-Lab"
- spine2:
- - "BaseIPv4_Spine2"
- - "Spine2-BGP-Lab"
- leaf1:
- - "BaseIPv4_Leaf1"
- - "Leaf1-BGP-Lab"
- leaf2:
- - "BaseIPv4_Leaf2"
- - "Leaf2-BGP-Lab"
- leaf3:
- - "BaseIPv4_Leaf3"
- - "Leaf3-BGP-Lab"
- leaf4:
- - "BaseIPv4_Leaf4"
- - "Leaf4-BGP-Lab-Full"
- cvx01:
- - "BaseIPv4_Cvx01"
- - "cvx01-Controller"
- host1:
- - "BaseIPv4_Host1"
- - "Host1-ATD"
- host2:
- - "BaseIPv4_Host2"
- - "Host2-ATD"
- cvpstudl3lsevpn:
- spine1:
- - "BaseIPv4_Spine1"
- spine2:
- - "BaseIPv4_Spine2"
- leaf1:
- - "BaseIPv4_Leaf1"
- leaf2:
- - "BaseIPv4_Leaf2"
- leaf3:
- - "BaseIPv4_Leaf3"
- leaf4:
- - "BaseIPv4_Leaf4"
- cvx01:
- - "BaseIPv4_Cvx01"
- - "cvx01-Controller"
- host1:
- - "BaseIPv4_Host1"
- - "Host1_STUDIO_L3LS_EVPN"
- host2:
- - "BaseIPv4_Host2"
- - "Host2_STUDIO_L3LS_EVPN"
\ No newline at end of file
diff --git a/topologies/datacenter/files/menus/EVPN-Class-Guide.yaml b/topologies/datacenter/files/menus/EVPN-Class-Guide.yaml
deleted file mode 100644
index 2c2781359..000000000
--- a/topologies/datacenter/files/menus/EVPN-Class-Guide.yaml
+++ /dev/null
@@ -1,333 +0,0 @@
----
-lab_list:
- lab1:
- description: "Lab 1: Underlay Control-Plane Buildout (lab1)"
- lab2:
- description: "Lab 2: EVPN Control-Plane Provisioning (lab2)"
- lab3:
- description: "Lab 3: MLAG (lab3)"
- lab4:
- description: "Lab 4: Layer2 VPN Service Provisioning (lab4)"
- lab5:
- description: "Lab 5: Layer3 VPN Service Provisioning (lab5)"
- complete:
- description: "Deploy complete lab configurations (complete) - **Use this if starting Day-2 Ops Section**"
- tshoota:
- description: "Deploy troubleshooting scenario A (tshoota)"
- tshootb:
- description: "Deploy troubleshooting scenario B (tshootb)"
- tshootc:
- description: "Deploy troubleshooting scenario C (tshootc)"
- reset:
- description: "Reset All Devices to Base IPv4 (reset)"
-labconfiglets:
- reset:
- spine1:
- - "BaseIPv4_Spine1_EVPN_GUIDE"
- spine2:
- - "BaseIPv4_Spine2_EVPN_GUIDE"
- leaf1:
- - "BaseIPv4_Leaf1_EVPN_GUIDE"
- leaf2:
- - "BaseIPv4_Leaf2_EVPN_GUIDE"
- leaf3:
- - "BaseIPv4_Leaf3_EVPN_GUIDE"
- leaf4:
- - "BaseIPv4_Leaf4_EVPN_GUIDE"
- cvx01:
- - "BaseIPv4_Cvx01"
- host1:
- - "BaseIPv4_Host1_EVPN_GUIDE"
- host2:
- - "BaseIPv4_Host2_EVPN_GUIDE"
- lab1:
- spine1:
- - "BaseIPv4_Spine1_EVPN_GUIDE"
- spine2:
- - "BaseIPv4_Spine2_EVPN_GUIDE"
- leaf1:
- - "BaseIPv4_Leaf1_EVPN_GUIDE"
- leaf2:
- - "BaseIPv4_Leaf2_EVPN_GUIDE"
- leaf3:
- - "BaseIPv4_Leaf3_EVPN_GUIDE"
- leaf4:
- - "BaseIPv4_Leaf4_EVPN_GUIDE"
- cvx01:
- - "BaseIPv4_Cvx01"
- host1:
- - "BaseIPv4_Host1_EVPN_GUIDE"
- host2:
- - "BaseIPv4_Host2_EVPN_GUIDE"
- lab2:
- spine1:
- - "BaseIPv4_Spine1_EVPN_GUIDE"
- - "Spine1_EVPN_GUIDE_LAB1"
- spine2:
- - "BaseIPv4_Spine2_EVPN_GUIDE"
- - "Spine2_EVPN_GUIDE_LAB1"
- leaf1:
- - "BaseIPv4_Leaf1_EVPN_GUIDE"
- - "Leaf1_EVPN_GUIDE_LAB1"
- leaf2:
- - "BaseIPv4_Leaf2_EVPN_GUIDE"
- - "Leaf2_EVPN_GUIDE_LAB1"
- leaf3:
- - "BaseIPv4_Leaf3_EVPN_GUIDE"
- - "Leaf3_EVPN_GUIDE_LAB1"
- leaf4:
- - "BaseIPv4_Leaf4_EVPN_GUIDE"
- - "Leaf4_EVPN_GUIDE_LAB1"
- cvx01:
- - "BaseIPv4_Cvx01"
- host1:
- - "BaseIPv4_Host1_EVPN_GUIDE"
- host2:
- - "BaseIPv4_Host2_EVPN_GUIDE"
- lab3:
- spine1:
- - "BaseIPv4_Spine1_EVPN_GUIDE"
- - "Spine1_EVPN_GUIDE_LAB1"
- - "Spine1_EVPN_GUIDE_LAB2"
- spine2:
- - "BaseIPv4_Spine2_EVPN_GUIDE"
- - "Spine2_EVPN_GUIDE_LAB1"
- - "Spine2_EVPN_GUIDE_LAB2"
- leaf1:
- - "BaseIPv4_Leaf1_EVPN_GUIDE"
- - "Leaf1_EVPN_GUIDE_LAB1"
- - "Leaf1_EVPN_GUIDE_LAB2"
- leaf2:
- - "BaseIPv4_Leaf2_EVPN_GUIDE"
- - "Leaf2_EVPN_GUIDE_LAB1"
- - "Leaf2_EVPN_GUIDE_LAB2"
- leaf3:
- - "BaseIPv4_Leaf3_EVPN_GUIDE"
- - "Leaf3_EVPN_GUIDE_LAB1"
- - "Leaf3_EVPN_GUIDE_LAB2"
- leaf4:
- - "BaseIPv4_Leaf4_EVPN_GUIDE"
- - "Leaf4_EVPN_GUIDE_LAB1"
- - "Leaf4_EVPN_GUIDE_LAB2"
- cvx01:
- - "BaseIPv4_Cvx01"
- host1:
- - "BaseIPv4_Host1_EVPN_GUIDE"
- host2:
- - "BaseIPv4_Host2_EVPN_GUIDE"
- lab4:
- spine1:
- - "BaseIPv4_Spine1_EVPN_GUIDE"
- - "Spine1_EVPN_GUIDE_LAB1"
- - "Spine1_EVPN_GUIDE_LAB2"
- spine2:
- - "BaseIPv4_Spine2_EVPN_GUIDE"
- - "Spine2_EVPN_GUIDE_LAB1"
- - "Spine2_EVPN_GUIDE_LAB2"
- leaf1:
- - "BaseIPv4_Leaf1_EVPN_GUIDE"
- - "Leaf1_EVPN_GUIDE_LAB1"
- - "Leaf1_EVPN_GUIDE_LAB2"
- - "Leaf1_EVPN_GUIDE_LAB3"
- leaf2:
- - "BaseIPv4_Leaf2_EVPN_GUIDE"
- - "Leaf2_EVPN_GUIDE_LAB1"
- - "Leaf2_EVPN_GUIDE_LAB2"
- - "Leaf2_EVPN_GUIDE_LAB3"
- leaf3:
- - "BaseIPv4_Leaf3_EVPN_GUIDE"
- - "Leaf3_EVPN_GUIDE_LAB1"
- - "Leaf3_EVPN_GUIDE_LAB2"
- - "Leaf3_EVPN_GUIDE_LAB3"
- leaf4:
- - "BaseIPv4_Leaf4_EVPN_GUIDE"
- - "Leaf4_EVPN_GUIDE_LAB1"
- - "Leaf4_EVPN_GUIDE_LAB2"
- - "Leaf4_EVPN_GUIDE_LAB3"
- cvx01:
- - "BaseIPv4_Cvx01"
- host1:
- - "BaseIPv4_Host1_EVPN_GUIDE"
- host2:
- - "BaseIPv4_Host2_EVPN_GUIDE"
- lab5:
- spine1:
- - "BaseIPv4_Spine1_EVPN_GUIDE"
- - "Spine1_EVPN_GUIDE_LAB1"
- - "Spine1_EVPN_GUIDE_LAB2"
- spine2:
- - "BaseIPv4_Spine2_EVPN_GUIDE"
- - "Spine2_EVPN_GUIDE_LAB1"
- - "Spine2_EVPN_GUIDE_LAB2"
- leaf1:
- - "BaseIPv4_Leaf1_EVPN_GUIDE"
- - "Leaf1_EVPN_GUIDE_LAB1"
- - "Leaf1_EVPN_GUIDE_LAB2"
- - "Leaf1_EVPN_GUIDE_LAB3"
- - "Leaf1_EVPN_GUIDE_LAB4"
- leaf2:
- - "BaseIPv4_Leaf2_EVPN_GUIDE"
- - "Leaf2_EVPN_GUIDE_LAB1"
- - "Leaf2_EVPN_GUIDE_LAB2"
- - "Leaf2_EVPN_GUIDE_LAB3"
- - "Leaf2_EVPN_GUIDE_LAB4"
- leaf3:
- - "BaseIPv4_Leaf3_EVPN_GUIDE"
- - "Leaf3_EVPN_GUIDE_LAB1"
- - "Leaf3_EVPN_GUIDE_LAB2"
- - "Leaf3_EVPN_GUIDE_LAB3"
- - "Leaf3_EVPN_GUIDE_LAB4"
- leaf4:
- - "BaseIPv4_Leaf4_EVPN_GUIDE"
- - "Leaf4_EVPN_GUIDE_LAB1"
- - "Leaf4_EVPN_GUIDE_LAB2"
- - "Leaf4_EVPN_GUIDE_LAB3"
- - "Leaf4_EVPN_GUIDE_LAB4"
- cvx01:
- - "BaseIPv4_Cvx01"
- host1:
- - "BaseIPv4_Host1_EVPN_GUIDE"
- host2:
- - "BaseIPv4_Host2_EVPN_GUIDE"
- complete:
- spine1:
- - "BaseIPv4_Spine1_EVPN_GUIDE"
- - "Spine1_EVPN_GUIDE_LAB1"
- - "Spine1_EVPN_GUIDE_LAB2"
- spine2:
- - "BaseIPv4_Spine2_EVPN_GUIDE"
- - "Spine2_EVPN_GUIDE_LAB1"
- - "Spine2_EVPN_GUIDE_LAB2"
- leaf1:
- - "BaseIPv4_Leaf1_EVPN_GUIDE"
- - "Leaf1_EVPN_GUIDE_LAB1"
- - "Leaf1_EVPN_GUIDE_LAB2"
- - "Leaf1_EVPN_GUIDE_LAB3"
- - "Leaf1_EVPN_GUIDE_LAB4"
- - "Leaf1_EVPN_GUIDE_LAB5"
- leaf2:
- - "BaseIPv4_Leaf2_EVPN_GUIDE"
- - "Leaf2_EVPN_GUIDE_LAB1"
- - "Leaf2_EVPN_GUIDE_LAB2"
- - "Leaf2_EVPN_GUIDE_LAB3"
- - "Leaf2_EVPN_GUIDE_LAB4"
- - "Leaf2_EVPN_GUIDE_LAB5"
- leaf3:
- - "BaseIPv4_Leaf3_EVPN_GUIDE"
- - "Leaf3_EVPN_GUIDE_LAB1"
- - "Leaf3_EVPN_GUIDE_LAB2"
- - "Leaf3_EVPN_GUIDE_LAB3"
- - "Leaf3_EVPN_GUIDE_LAB4"
- - "Leaf3_EVPN_GUIDE_LAB5"
- leaf4:
- - "BaseIPv4_Leaf4_EVPN_GUIDE"
- - "Leaf4_EVPN_GUIDE_LAB1"
- - "Leaf4_EVPN_GUIDE_LAB2"
- - "Leaf4_EVPN_GUIDE_LAB3"
- - "Leaf4_EVPN_GUIDE_LAB4"
- - "Leaf4_EVPN_GUIDE_LAB5"
- cvx01:
- - "BaseIPv4_Cvx01"
- host1:
- - "BaseIPv4_Host1_EVPN_GUIDE"
- host2:
- - "BaseIPv4_Host2_EVPN_GUIDE"
- tshoota:
- spine1:
- - "BaseIPv4_Spine1_EVPN_GUIDE"
- - "Spine1_EVPN_GUIDE_LAB1"
- - "Spine1_EVPN_GUIDE_LAB2"
- spine2:
- - "BaseIPv4_Spine2_EVPN_GUIDE"
- - "Spine2_EVPN_GUIDE_LAB1"
- - "Spine2_EVPN_GUIDE_LAB2"
- leaf1:
- - "BaseIPv4_Leaf1_EVPN_GUIDE"
- - "Leaf1_EVPN_GUIDE_LAB1"
- - "Leaf1_EVPN_GUIDE_LAB2"
- - "Leaf1_EVPN_GUIDE_LAB3"
- - "Leaf1_EVPN_GUIDE_LAB4"
- - "Leaf1_EVPN_GUIDE_LAB5"
- leaf2:
- - "BaseIPv4_Leaf2_EVPN_GUIDE"
- - "Leaf2_EVPN_GUIDE_LAB1"
- - "Leaf2_EVPN_GUIDE_LAB2"
- - "Leaf2_EVPN_GUIDE_LAB3"
- - "Leaf2_EVPN_GUIDE_LAB4"
- - "Leaf2_EVPN_GUIDE_LAB5"
- leaf3:
- - "Leaf3_EVPN_GUIDE_TSHOOTA"
- leaf4:
- - "Leaf4_EVPN_GUIDE_TSHOOTA"
- cvx01:
- - "BaseIPv4_Cvx01"
- host1:
- - "BaseIPv4_Host1_EVPN_GUIDE"
- host2:
- - "BaseIPv4_Host2_EVPN_GUIDE"
- tshootb:
- spine1:
- - "BaseIPv4_Spine1_EVPN_GUIDE"
- - "Spine1_EVPN_GUIDE_LAB1"
- - "Spine1_EVPN_GUIDE_LAB2"
- spine2:
- - "BaseIPv4_Spine2_EVPN_GUIDE"
- - "Spine2_EVPN_GUIDE_LAB1"
- - "Spine2_EVPN_GUIDE_LAB2"
- leaf1:
- - "Leaf1_EVPN_GUIDE_TSHOOTB"
- leaf2:
- - "Leaf2_EVPN_GUIDE_TSHOOTB"
- leaf3:
- - "BaseIPv4_Leaf3_EVPN_GUIDE"
- - "Leaf3_EVPN_GUIDE_LAB1"
- - "Leaf3_EVPN_GUIDE_LAB2"
- - "Leaf3_EVPN_GUIDE_LAB3"
- - "Leaf3_EVPN_GUIDE_LAB4"
- - "Leaf3_EVPN_GUIDE_LAB5"
- leaf4:
- - "BaseIPv4_Leaf4_EVPN_GUIDE"
- - "Leaf4_EVPN_GUIDE_LAB1"
- - "Leaf4_EVPN_GUIDE_LAB2"
- - "Leaf4_EVPN_GUIDE_LAB3"
- - "Leaf4_EVPN_GUIDE_LAB4"
- - "Leaf4_EVPN_GUIDE_LAB5"
- cvx01:
- - "BaseIPv4_Cvx01"
- host1:
- - "BaseIPv4_Host1_EVPN_GUIDE"
- host2:
- - "BaseIPv4_Host2_EVPN_GUIDE"
- tshootc:
- spine1:
- - "BaseIPv4_Spine1_EVPN_GUIDE"
- - "Spine1_EVPN_GUIDE_LAB1"
- - "Spine1_EVPN_GUIDE_LAB2"
- spine2:
- - "BaseIPv4_Spine2_EVPN_GUIDE"
- - "Spine2_EVPN_GUIDE_LAB1"
- - "Spine2_EVPN_GUIDE_LAB2"
- leaf1:
- - "Leaf1_EVPN_GUIDE_TSHOOTC"
- leaf2:
- - "Leaf2_EVPN_GUIDE_TSHOOTC"
- leaf3:
- - "BaseIPv4_Leaf3_EVPN_GUIDE"
- - "Leaf3_EVPN_GUIDE_LAB1"
- - "Leaf3_EVPN_GUIDE_LAB2"
- - "Leaf3_EVPN_GUIDE_LAB3"
- - "Leaf3_EVPN_GUIDE_LAB4"
- - "Leaf3_EVPN_GUIDE_LAB5"
- leaf4:
- - "BaseIPv4_Leaf4_EVPN_GUIDE"
- - "Leaf4_EVPN_GUIDE_LAB1"
- - "Leaf4_EVPN_GUIDE_LAB2"
- - "Leaf4_EVPN_GUIDE_LAB3"
- - "Leaf4_EVPN_GUIDE_LAB4"
- - "Leaf4_EVPN_GUIDE_LAB5"
- cvx01:
- - "BaseIPv4_Cvx01"
- host1:
- - "BaseIPv4_Host1_EVPN_GUIDE"
- host2:
- - "BaseIPv4_Host2_EVPN_GUIDE"
\ No newline at end of file
diff --git a/topologies/datacenter/files/menus/Media.yaml b/topologies/datacenter/files/menus/Media.yaml
deleted file mode 100644
index be6b405eb..000000000
--- a/topologies/datacenter/files/menus/Media.yaml
+++ /dev/null
@@ -1,189 +0,0 @@
----
-lab_list:
- media-intro:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostMediaConfig.sh"
- description: "Media - IP Intro (media-intro)"
- media-vlan:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostMediaConfig.sh"
- description: "Media - VLAN STP (media-vlan)"
- media-ospf:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostMediaConfig.sh"
- description: "Media - OSPF (media-ospf)"
- media-bgp:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostMediaConfig.sh"
- description: "Media - BGP (media-bgp)"
- media-mcast:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostMediaConfig.sh"
- description: "Media - Multicast (media-mcast)"
- media-reset:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostMediaConfig.sh"
- description: "Media - Reset All Devices to Broadcaster Base (media-reset)"
-labconfiglets:
- media-reset:
- spine1:
- - "BaseIPv4_Spine1"
- - "media-spine1-IP-Intro-start"
- spine2:
- - "BaseIPv4_Spine2"
- - "media-spine2-IP-Intro-start"
- leaf1:
- - "BaseIPv4_Leaf1"
- - "media-leaf1-IP-Intro-start"
- leaf2:
- - "BaseIPv4_Leaf2"
- - "media-leaf2-IP-Intro-start"
- leaf3:
- - "BaseIPv4_Leaf3"
- - "media-leaf3-IP-Intro-start"
- leaf4:
- - "BaseIPv4_Leaf4"
- - "media-leaf4-IP-Intro-start"
- host1:
- - "BaseIPv4_Host1"
- - "Host1-Media"
- host2:
- - "BaseIPv4_Host2"
- - "Host2-Media"
- cvx01:
- - "BaseIPv4_Cvx01"
- media-intro:
- spine1:
- - "BaseIPv4_Spine1"
- - "media-spine1-IP-Intro-start"
- spine2:
- - "BaseIPv4_Spine2"
- - "media-spine2-IP-Intro-start"
- leaf1:
- - "BaseIPv4_Leaf1"
- - "media-leaf1-IP-Intro-start"
- leaf2:
- - "BaseIPv4_Leaf2"
- - "media-leaf2-IP-Intro-start"
- leaf3:
- - "BaseIPv4_Leaf3"
- - "media-leaf3-IP-Intro-start"
- leaf4:
- - "BaseIPv4_Leaf4"
- - "media-leaf4-IP-Intro-start"
- host1:
- - "BaseIPv4_Host1"
- - "Host1-Media"
- host2:
- - "BaseIPv4_Host2"
- - "Host2-Media"
- cvx01:
- - "BaseIPv4_Cvx01"
- media-vlan:
- spine1:
- - "BaseIPv4_Spine1"
- - "media-spine1-VLAN-STP-start"
- spine2:
- - "BaseIPv4_Spine2"
- - "media-spine2-VLAN-STP-start"
- leaf1:
- - "BaseIPv4_Leaf1"
- - "media-leaf1-VLAN-STP-start"
- leaf2:
- - "BaseIPv4_Leaf2"
- - "media-leaf2-VLAN-STP-start"
- leaf3:
- - "BaseIPv4_Leaf3"
- - "media-leaf3-VLAN-STP-start"
- leaf4:
- - "BaseIPv4_Leaf4"
- - "media-leaf4-VLAN-STP-start"
- host1:
- - "BaseIPv4_Host1"
- - "Host1-Media"
- host2:
- - "BaseIPv4_Host2"
- - "Host2-Media"
- cvx01:
- - "BaseIPv4_Cvx01"
- media-ospf:
- spine1:
- - "BaseIPv4_Spine1"
- - "media-spine1-OSPF-start"
- spine2:
- - "BaseIPv4_Spine2"
- - "media-spine2-OSPF-start"
- leaf1:
- - "BaseIPv4_Leaf1"
- - "media-leaf1-OSPF-start"
- leaf2:
- - "BaseIPv4_Leaf2"
- - "media-leaf2-OSPF-start"
- leaf3:
- - "BaseIPv4_Leaf3"
- - "media-leaf3-OSPF-start"
- leaf4:
- - "BaseIPv4_Leaf4"
- - "media-leaf4-OSPF-start"
- host1:
- - "BaseIPv4_Host1"
- - "Host1-Media"
- host2:
- - "BaseIPv4_Host2"
- - "Host2-Media"
- cvx01:
- - "BaseIPv4_Cvx01"
- media-bgp:
- spine1:
- - "BaseIPv4_Spine1"
- - "media-spine1-BGP-start"
- spine2:
- - "BaseIPv4_Spine2"
- - "media-spine2-BGP-start"
- leaf1:
- - "BaseIPv4_Leaf1"
- - "media-leaf1-BGP-start"
- leaf2:
- - "BaseIPv4_Leaf2"
- - "media-leaf2-BGP-start"
- leaf3:
- - "BaseIPv4_Leaf3"
- - "media-leaf3-BGP-start"
- leaf4:
- - "BaseIPv4_Leaf4"
- - "media-leaf4-BGP-start"
- host1:
- - "BaseIPv4_Host1"
- - "Host1-Media"
- host2:
- - "BaseIPv4_Host2"
- - "Host2-Media"
- cvx01:
- - "BaseIPv4_Cvx01"
- media-mcast:
- spine1:
- - "BaseIPv4_Spine1"
- - "media-spine1-Multicast-lab"
- spine2:
- - "BaseIPv4_Spine2"
- - "media-spine2-Multicast-lab"
- leaf1:
- - "BaseIPv4_Leaf1"
- - "media-leaf1-Multicast-lab"
- leaf2:
- - "BaseIPv4_Leaf2"
- - "media-leaf2-Multicast-lab"
- leaf3:
- - "BaseIPv4_Leaf3"
- - "media-leaf3-Multicast-lab"
- leaf4:
- - "BaseIPv4_Leaf4"
- - "media-leaf4-Multicast-lab"
- host1:
- - "BaseIPv4_Host1"
- - "Host1-Media"
- host2:
- - "BaseIPv4_Host2"
- - "Host2-Media"
- cvx01:
- - "BaseIPv4_Cvx01"
\ No newline at end of file
diff --git a/topologies/datacenter/files/menus/Troubleshooting.yaml b/topologies/datacenter/files/menus/Troubleshooting.yaml
deleted file mode 100644
index 6fcc69afe..000000000
--- a/topologies/datacenter/files/menus/Troubleshooting.yaml
+++ /dev/null
@@ -1,84 +0,0 @@
----
-lab_list:
- tshoot-intro:
- description: "Troubleshooting Lab 1 (tshoot-intro)"
-# tshoot-sp:
-# description: "Troubleshooting Lab 2 (tshoot-sp)"
-# tshoot-automation:
-# description: "Troubleshooting Lab 3 (tshoot-automation)"
-labconfiglets:
- tshoot-intro:
- spine1:
- - "BaseIPv4_Spine1"
- - "tshoot-spine1-Tshoot-intro"
- spine2:
- - "BaseIPv4_Spine2"
- - "tshoot-default"
- leaf1:
- - "BaseIPv4_Leaf1"
- - "tshoot-leaf1-Tshoot-intro"
- leaf2:
- - "BaseIPv4_Leaf2"
- - "tshoot-leaf2-Tshoot-intro"
- leaf3:
- - "BaseIPv4_Leaf3"
- - "tshoot-default"
- leaf4:
- - "BaseIPv4_Leaf4"
- - "tshoot-default"
- host1:
- - "BaseIPv4_Host1"
- - "tshoot-host1-Tshoot-intro"
- host2:
- - "BaseIPv4_Host2"
- - "tshoot-default"
- cvx01:
- - "BaseIPv4_Cvx01"
- tshoot-sp:
- spine1:
- - "BaseIPv4_Spine1"
- - "tshoot-spine1-Tshoot-sp"
- spine2:
- - "BaseIPv4_Spine2"
- - "tshoot-spine2-Tshoot-sp"
- leaf1:
- - "BaseIPv4_Leaf1"
- - "tshoot-leaf1-Tshoot-sp"
- leaf2:
- - "BaseIPv4_Leaf2"
- - "tshoot-default"
- leaf3:
- - "BaseIPv4_Leaf3"
- - "tshoot-default"
- leaf4:
- - "BaseIPv4_Leaf4"
- - "tshoot-leaf4-Tshoot-sp"
- host1:
- - "BaseIPv4_Host1"
- - "tshoot-host1-Tshoot-sp"
- host2:
- - "BaseIPv4_Host2"
- - "tshoot-host2-Tshoot-sp"
- cvx01:
- - "BaseIPv4_Cvx01"
-# tshoot-automation:
-# spine1:
-# - "BaseIPv4_Spine1"
-# - "tshoot-spine1-Tshoot-automation"
-# spine2:
-# - "BaseIPv4_Spine2"
-# - "tshoot-spine2-Tshoot-automation"
-# leaf1:
-# - "BaseIPv4_Leaf1"
-# - "tshoot-leaf1-Tshoot-automation"
-# leaf2:
-# - "BaseIPv4_Leaf2"
-# - "tshoot-leaf2-Tshoot-automation"
-# leaf3:
-# - "BaseIPv4_Leaf3"
-# - "tshoot-leaf3-Tshoot-automation"
-# leaf4:
-# - "BaseIPv4_Leaf4"
-# - "tshoot-leaf4-Tshoot-automation"
-# cvx01:
-# - "BaseIPv4_Cvx01"
\ No newline at end of file
diff --git a/topologies/datacenter/files/menus/default.yaml b/topologies/datacenter/files/menus/default.yaml
deleted file mode 100644
index b831de997..000000000
--- a/topologies/datacenter/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: Datacenter.yaml
\ No newline at end of file
diff --git a/topologies/datacenter/files/modules/atd.css b/topologies/datacenter/files/modules/atd.css
deleted file mode 100644
index 075e4f6aa..000000000
--- a/topologies/datacenter/files/modules/atd.css
+++ /dev/null
@@ -1,31 +0,0 @@
-body {
- width: 1000px;
- margin: auto;
- line-height:21px;
- font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
-}
-
-#content {
- width: 100%;
-}
-
-#content h4 {
- color:rgb(147,149,152);
-}
-
-.access {
- display: block;
- width: 100%;
- background-color: rgb(156, 207, 151);
- margin: 10px;
- padding: 10px;
- border-radius: 4px;
- border-style: none;
-}
-
-.detail {
- position: absolute;
- background-color: rgb(230, 230, 230);
- margin: 20px;
- padding: 5px;
-}
\ No newline at end of file
diff --git a/topologies/datacenter/files/modules/index.html b/topologies/datacenter/files/modules/index.html
deleted file mode 100644
index 3a31aeda8..000000000
--- a/topologies/datacenter/files/modules/index.html
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
- Arista Test Drive | {{ MOD_NAME }}
- {% for script in JS %}
- {% raw script %}
- {% end %}
- {% for style in CSS %}
- {% raw style %}
- {% end %}
-
-
-
-
-
-
Arista Test Drive | {{ MOD_NAME }}
-
-
Click on the node for access:
-
-
-
To access the device, click on the device icon above:
-
-
-
- {% raw LABGUIDE %}
-
-
\ No newline at end of file
diff --git a/topologies/datacenter/files/modules/modules.yaml b/topologies/datacenter/files/modules/modules.yaml
deleted file mode 100644
index f6f2dacfd..000000000
--- a/topologies/datacenter/files/modules/modules.yaml
+++ /dev/null
@@ -1,304 +0,0 @@
-ucn:
- mlag:
- name: "MLAG"
- image: "ucn-mlag.png"
- nodes:
- Spine1:
- coords: "130,56,234,105"
- ip: "192.168.0.10"
- Spine2:
- coords: "658,54,763,101"
- ip: "192.168.0.11"
- Leaf1:
- coords: "62,269,167,319"
- ip: "192.168.0.14"
- Leaf2:
- coords: "319,268,426,315"
- ip: "192.168.0.15"
- Leaf3:
- coords: "464,267,567,317"
- ip: "192.168.0.16"
- Leaf4:
- coords: "728,268,834,316"
- ip: "192.168.0.17"
- Host1:
- coords: "206,384,276,414"
- ip: "192.168.0.31"
- Host2:
- coords: "615,388,685,421"
- ip: "192.168.0.32"
- l3ls:
- name: "BGP"
- image: "ucn-l3ls.png"
- nodes:
- Spine1:
- coords: "106,29,218,83"
- ip: "192.168.0.10"
- Spine2:
- coords: "691,31,806,85"
- ip: "192.168.0.11"
- Leaf1:
- coords: "27,265,141,319"
- ip: "192.168.0.14"
- Leaf2:
- coords: "317,264,430,319"
- ip: "192.168.0.15"
- Leaf3:
- coords: "477,264,591,317"
- ip: "192.168.0.16"
- Leaf4:
- coords: "765,266,877,320"
- ip: "192.168.0.17"
- Host1:
- coords: "182,442,258,477"
- ip: "192.168.0.31"
- Host2:
- coords: "644,441,725,477"
- ip: "192.168.0.32"
- vxlan:
- name: "VxLAN"
- image: "ucn-vxlan.png"
- nodes:
- Spine1:
- coords: "96,29,208,83"
- ip: "192.168.0.10"
- Spine2:
- coords: "680,28,796,82"
- ip: "192.168.0.11"
- Leaf1:
- coords: "22,266,137,319"
- ip: "192.168.0.14"
- Leaf2:
- coords: "313,262,425,315"
- ip: "192.168.0.15"
- Leaf3:
- coords: "466,264,583,317"
- ip: "192.168.0.16"
- Leaf4:
- coords: "757,264,873,319"
- ip: "192.168.0.17"
- Host1:
- coords: "192,433,268,469"
- ip: "192.168.0.31"
- Host2:
- coords: "637,432,716,468"
- ip: "192.168.0.32"
- l2evpn:
- name: "Layer 2 EVPN"
- image: "ucn-l2evpn.png"
- nodes:
- Spine1:
- coords: "90,25,189,71"
- ip: "192.168.0.10"
- Spine2:
- coords: "594,25,691,71"
- ip: "192.168.0.11"
- Leaf1:
- coords: "26,227,127,274"
- ip: "192.168.0.14"
- Leaf3:
- coords: "411,226,511,273"
- ip: "192.168.0.16"
- Host1:
- coords: "173,373,241,404"
- ip: "192.168.0.31"
- Host2:
- coords: "555,370,624,400"
- ip: "192.168.0.32"
- l3evpn:
- name: "Layer 3 EVPN"
- image: "ucn-l3evpn.png"
- nodes:
- Spine1:
- coords: "92,24,187,72"
- ip: "192.168.0.10"
- Spine2:
- coords: "595,24,694,72"
- ip: "192.168.0.11"
- Leaf1:
- coords: "26,228,127,273"
- ip: "192.168.0.14"
- Leaf3:
- coords: "410,225,509,273"
- ip: "192.168.0.16"
- Host1:
- coords: "175,373,241,404"
- ip: "192.168.0.31"
- Host2:
- coords: "557,372,623,401"
- ip: "192.168.0.32"
-cvp:
- mlag:
- name: "MLAG"
- image: "cvp-mlag.png"
- nodes:
- Spine1:
- coords: "97,131,213,188"
- ip: "192.168.0.10"
- Spine2:
- coords: "687,128,803,183"
- ip: "192.168.0.11"
- Leaf1:
- coords: "19,371,136,427"
- ip: "192.168.0.14"
- Leaf2:
- coords: "310,368,427,424"
- ip: "192.168.0.15"
- Leaf3:
- coords: "470,370,586,423"
- ip: "192.168.0.16"
- Leaf4:
- coords: "767,368,883,425"
- ip: "192.168.0.17"
- Host1:
- coords: "181,499,261,535"
- ip: "192.168.0.31"
- Host2:
- coords: "640,505,721,543"
- ip: "192.168.0.32"
- CVP:
- coords: "381,17,525,106"
- ip: "192.168.0.5"
- l3ls:
- name: "BGP"
- image: "cvp-l3ls.png"
- nodes:
- Spine1:
- coords: "106,121,220,177"
- ip: "192.168.0.10"
- Spine2:
- coords: "691,122,806,179"
- ip: "192.168.0.11"
- Leaf1:
- coords: "25,358,139,413"
- ip: "192.168.0.14"
- Leaf2:
- coords: "316,358,427,412"
- ip: "192.168.0.15"
- Leaf3:
- coords: "477,354,591,410"
- ip: "192.168.0.16"
- Leaf4:
- coords: "764,358,880,412"
- ip: "192.168.0.17"
- Host1:
- coords: "181,535,263,571"
- ip: "192.168.0.31"
- Host2:
- coords: "645,533,723,570"
- ip: "192.168.0.32"
- CVP:
- coords: "382,17,520,103"
- ip: "192.168.0.5"
- vxlan:
- name: "VxLAN"
- image: "cvp-vxlan.png"
- nodes:
- Spine1:
- coords: "95,118,211,176"
- ip: "192.168.0.10"
- Spine2:
- coords: "680,121,797,175"
- ip: "192.168.0.11"
- Leaf1:
- coords: "21,354,136,411"
- ip: "192.168.0.14"
- Leaf2:
- coords: "311,354,425,410"
- ip: "192.168.0.15"
- Leaf3:
- coords: "467,354,582,408"
- ip: "192.168.0.16"
- Leaf4:
- coords: "757,357,872,412"
- ip: "192.168.0.17"
- Host1:
- coords: "192,525,268,561"
- ip: "192.168.0.31"
- Host2:
- coords: "637,524,718,559"
- ip: "192.168.0.32"
- CVP:
- coords: "377,17,519,104"
- ip: "192.168.0.5"
- l2evpn:
- name: "Layer 2 EVPN"
- image: "cvp-l2evpn.png"
- nodes:
- Spine1:
- coords: "92,102,189,150"
- ip: "192.168.0.10"
- Spine2:
- coords: "594,103,694,150"
- ip: "192.168.0.11"
- Leaf1:
- coords: "27,308,128,352"
- ip: "192.168.0.14"
- Leaf3:
- coords: "411,303,508,352"
- ip: "192.168.0.16"
- Host1:
- coords: "174,451,241,482"
- ip: "192.168.0.31"
- Host2:
- coords: "558,449,624,481"
- ip: "192.168.0.32"
- CVP:
- coords: "331,15,452,89"
- ip: "192.168.0.5"
- l3evpn:
- name: "Layer 3 EVPN"
- image: "cvp-l3evpn.png"
- nodes:
- Spine1:
- coords: "91,109,188,155"
- ip: "192.168.0.10"
- Spine2:
- coords: "590,107,688,155"
- ip: "192.168.0.11"
- Leaf1:
- coords: "27,311,124,356"
- ip: "192.168.0.14"
- Leaf3:
- coords: "407,310,505,354"
- ip: "192.168.0.16"
- Host1:
- coords: "172,454,236,485"
- ip: "192.168.0.31"
- Host2:
- coords: "553,453,619,483"
- ip: "192.168.0.32"
- CVP:
- coords: "331,15,451,90"
- ip: "192.168.0.5"
- cvp:
- name: "Cloud Vision Portal"
- image: "cvp-cvp.png"
- nodes:
- Spine1:
- coords: "229,68,316,110"
- ip: "192.168.0.10"
- Spine2:
- coords: "381,66,470,110"
- ip: "192.168.0.11"
- Leaf1:
- coords: "72,253,157,296"
- ip: "192.168.0.14"
- Leaf2:
- coords: "226,255,315,296"
- ip: "192.168.0.15"
- Leaf3:
- coords: "382,253,470,295"
- ip: "192.168.0.16"
- Leaf4:
- coords: "536,252,625,296"
- ip: "192.168.0.17"
- Host1:
- coords: "151,377,239,419"
- ip: "192.168.0.31"
- Host2:
- coords: "459,381,550,423"
- ip: "192.168.0.32"
- CVP:
- coords: "689,47,864,158"
- ip: "192.168.0.5"
diff --git a/topologies/datacenter/labguides/.gitignore b/topologies/datacenter/labguides/.gitignore
deleted file mode 100644
index 963080b75..000000000
--- a/topologies/datacenter/labguides/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-.DS_Store
-build/
-_build/
diff --git a/topologies/datacenter/labguides/Makefile b/topologies/datacenter/labguides/Makefile
deleted file mode 100644
index 469e9ce7a..000000000
--- a/topologies/datacenter/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python3 -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/datacenter/labguides/readme.md b/topologies/datacenter/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/datacenter/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/datacenter/labguides/source/EVPN_Class_Guide.rst b/topologies/datacenter/labguides/source/EVPN_Class_Guide.rst
deleted file mode 100644
index 68561ef8d..000000000
--- a/topologies/datacenter/labguides/source/EVPN_Class_Guide.rst
+++ /dev/null
@@ -1,233 +0,0 @@
-.. image:: images/arista_logo.png
- :align: center
-
-EVPN Lab Guide
-====================
-
-Topology Quick View:
--------------------------
-
-.. thumbnail:: images/evpn_class_guide/evpn_class_quick_topo.png
- :align: center
-
- Click image to enlarge
-
-Topology Detailed View:
------------------------------
-
-.. thumbnail:: images/evpn_class_guide/evpn_class_detailed_topo.png
- :align: center
-
- Click image to enlarge
-
-Lab 1: IP Underlay Control-Plane Buildout
-===============================================
-
- .. note:: To begin this lab, go to the ssh login menu, select the *labs* option or option *97*, then go to *EVPN Class Guide*,
- then execute option *1* or *lab1* to deploy the topology.
-
- #. Reachability between loopbacks is required, reachability to Point-to-Point underlay prefixes is optional
-
- #. Must use a routing protocol to accomplish this task
-
- #. The chosen protocol’s router-id must be a globally unique and pingable address on the device
-
- #. There is a desire to only run a single routing protocol within the Data Center
-
- #. If using an address-family aware protocol, all peerings within an AFI/SAFI must be explicitly permitted
-
- #. To prevent temporary black-holes, no switch should advertise reachability to a prefix until it is programmed into hardware
-
- .. note:: Important: This feature will not work in a virtual environment, as there is no hardware to program the prefixes into. This step can be skipped,
- but the command to accomplish this task is *update wait-install* under the bgp process.
-
- #. Though not required today, the ability to perform per-prefix traffic engineering in the underlay, based on a administrator-defined value, is desired
-
- #. Spine and Leaf switches must use ECMP within the underlay
-
- #. Regardless of routing protocol chosen, if using a dynamic peerings, all discovered neighbors must be authenticated, and be explicitly trusted sources
-
- #. Addition or Removal of Leaf switches in the future should not require any routing configuration changes on the Spines
-
-Lab 2: EVPN Control-Plane Provisioning
-==============================================
-
- .. note:: If you are starting out in this lab, go to the ssh login menu, select the *labs* option or option *97*, then go to *EVPN Class Guide*,
- then execute option *2* or *lab2* to deploy the topology.
-
- #. Enable peering in the EVPN address-family between Spine and Leaf switches
-
- #. A globally unique loopback must be used as the source of these peerings
-
- #. Fast detection of peer failure must be enabled to provide fast convergence
-
- #. Devices must be capable of establishing peerings in the EVPN address-family with devices up to three routing hops away
-
- #. Spines must not modify any fields within the payload of a transient BGP EVPN Update
-
- #. All peerings within the EVPN address-family must be explicitly permitted
-
- #. Control-plane signaling via communities must be supported
-
- #. If using a dynamic peerings, all discovered neighbors must be authenticated and explicitly trusted sources
-
- #. Addition or Removal of Leaf switches in the future should not require any routing configuration changes on the Spines
-
- #. There is a large amount of anticipated EVPN control-plane state. Ensure that peerings are not flapped or disabled due to control-plane scale
-
-Lab 3: MLAG
-========================
-
- .. note:: If you are starting out in this lab, go to the ssh login menu, select the *labs* option or option *97*, then go to *EVPN Class Guide*,
- then execute option *3* or *lab3* to deploy the topology.
-
- #. Devices will be dual-homed to VTEPs, with the expectation that an LACP port-channel will be formed, and forwarding will be active/active
-
- #. Each pair of VTEPs will be deployed with a physical interconnect between each other
-
- #. The deployed multi-homing solution must be easily repeatable across multiple VTEP pairs
-
- #. VTEPs deployed as a pair must present themselves as a single logical VTEP within the EVPN control-plane
-
- #. If both spine-facing links on a VTEP fail, that VTEP must be able to maintain it’s EVPN peerings and forwarding capabilities
-
- #. If a VTEP within a pair is rebooted, ensure that the rebooted VTEP does not transition any host-facing links into a forwarding state until the control-plane has been fully converged
-
- #. Regardless of which VTEP in the pair receives a VXLAN packet, if a routing operation is required after decap, that receiving VTEP should locally perform that routing operation.
-
- #. Once MLAG has been deployed, establish an LACP port-channel to HostA and HostC
-
- .. note:: The host-side configuration is already completed. If MLAG is configured correctly, the port-channel will come up
-
-Lab 4: Layer2 VPN Service Provisioning
-==============================================
-
- .. note:: If you are starting out in this lab, go to the ssh login menu, select the *labs* option or option *97*, then go to *EVPN Class Guide*,
- then execute option *4* or *lab4* to deploy the topology.
-
- #. All L2VPN services will be provided via VXLAN data-plane encapsulation
-
- #. Enable VTEP functionality on all Leaf switches
-
- #. Create VLANs necessary to provide bridging operations for locally attached hosts
-
- #. VXLAN:VNI mappings should be pre-provisioned to help ease future provisioning activities
-
- #. All VNIs will be 10,000 + VLAN ID
-
- #. VLANs 10 through 30 will be pre-provisioned on day 1
-
- #. Configure Route-Distinguishers in a way that enables fast convergence and provides a quick method to validate the source of an EVPN route
-
- #. L2VPN services must be provisioned in a way that enables the mapping of multiple bridge domains to a single MAC-VRF, reducing config size and the administrative overhead of future L2VPN service provisioning
-
- #. VLANs 10 through 30 should be mapped to a single MAC-VRF
-
- #. When provisioning a tenant’s MAC-VRF, import and export Route-Targets should be configured using the format “Tenant ID:Tenant ID”
-
- #. VRF A Tenant ID is “1”
-
- #. Reachability information for all locally learned MAC addresses must be automatically originated into the EVPN control-plane
-
- #. Upon completion of this lab, HostA should be able to ping HostD
-
-Lab 5: Layer3 VPN Service Provisioning
-=============================================
-
- .. note:: If you are starting out in this lab, go to the ssh login menu, select the *labs* option or option *97*, then go to *EVPN Class Guide*,
- then execute option *5* or *lab5* to deploy the topology.
-
- #. All L3VPN services will be provided via VXLAN data-plane encapsulation
-
- #. Each tenant will receive their own unique VRF
-
- #. Create a VRF for Tenant “A”
-
- #. Configure Route-Distinguishers in a way that enables fast convergence and provides a quick method to validate the source of an EVPN route
-
- #. When provisioning a tenant’s IP-VRF, import and export Route-Targets should be configured using the format “Tenant ID:Tenant ID”
-
- #. VRF A Tenant ID is “1”
-
- #. VTEPs must not require that every VLAN and SVI be locally configured for reachability between endpoints within the tenant VRF
-
- #. When traffic is crossing a subnet boundary, and the destination host is behind a remote VTEP, the ingress VTEP must never bridge towards the destination host
-
- #. First Hop Gateway IP and MAC address must exist on all VTEPs where an L3VPN services are provisioned
-
- #. Only define the SVIs that are required for locally connected hosts
-
- #. For each subnet, a consistent Gateway IP and MAC address must be used across all VTEPs where the subnet exists
-
- #. It is anticipated that the environment scale will grow over time to ~45,000 hosts. Ensure that Remote ARP forwarding entries do not limit the scale of the environment
-
- #. VTEPs must originate reachability to locally attached prefixes within a tenant VRF
-
- #. There should never be any tenant prefixes within the IPv4 Underlay Control-Plane
-
-
-Lab 6: Day-2 Ops
-======================
-
- .. note:: If you are starting out in this lab, go to the ssh login menu, select the *labs* option or option *97*, then go to *EVPN Class Guide*,
- then execute option *6* or *lab6* to deploy the topology.
-
- #. A new VLAN / L2VPN service has been requested
-
- #. VLAN 25 will be used for this task
-
- #. A new endpoint in this VLAN will be connected to interface Ethernet6 on LEAF1
-
- #. Create a new L2VPN service for VLAN 25 on all leafs, and stage the interface configuration
-
- #. Validate that the expected EVPN control-plane state
-
- #. **No changes can be made to the BGP or VXLAN interface configurations**
-
- #. Create a new L3VPN service for a new tenant (Tenant B). This tenant requires L2VPN service for vlans 31-40. L3VPN services are only required for vlans 35 and 40
-
- #. The requested L2VPN and L3VPN services must be available on all Leaf switches
-
- #. For MAC-VRF and IP-VRF, follow the same Route Distinguisher and Route-Target guidelines as Tenant ‘A’
-
- #. VRF B Tenant ID is 2
-
- #. VLAN 35 subnet: 35.35.35.0/24
-
- #. VLAN 40 subnet: 40.40.40.0/24
-
- #. Once complete, validate that the EVPN control-plane contains the expected state
-
-
- #. (Optional) The operations team would like the ability to ping any Tenant ‘A’ workload directly from any Leaf switch in the environment. This will require the response to source from an IP other than the anycast gateway.
-
- #. Use Loopback201 as the source IP with an IP address of 201.0.0.X/32 (X=Switch ID)
-
- #. (Optional) The MLAG IP addresses need to be updated on all of the switches during a change window. Reconfigure MLAG IP addresses with the new IP scheme below:
-
- #. Leaf1 and Leaf 3 IP - 192.168.255.254/31
-
- #. Leaf2 and Leaf 4 IP - 192.168.255.255/31
-
- #. Verify that MLAG status is up and the MLAG interfaces are forwarding correctly
-
-
-
-
-Lab 7: Troubleshooting
-===========================
-
- .. note:: You *must* use the ssh login menu to deploy each of these scenarios. Select the *labs* option or option *97*, then go to *EVPN Class Guide*,
- then execute the appropriate option for each scenario.
-
- #. Scenario A
-
- #. HostA cannot communicate with HostD
-
- #. Scenario B
-
- #. HostB cannot communicate with HostC
-
- #. Scenario C
-
- #. HostA cannot communicate with HostD
\ No newline at end of file
diff --git a/topologies/datacenter/labguides/source/EVPN_Class_Guide_Answer_Key.rst b/topologies/datacenter/labguides/source/EVPN_Class_Guide_Answer_Key.rst
deleted file mode 100644
index d814fd9a5..000000000
--- a/topologies/datacenter/labguides/source/EVPN_Class_Guide_Answer_Key.rst
+++ /dev/null
@@ -1,981 +0,0 @@
-.. image:: images/arista_logo.png
- :align: center
-
-EVPN Lab Answer Key
-=======================
-
-Pre-Lab configuration on all Switches
----------------------------------------
-
- .. code-block:: html
-
- service routing-protocols model multi-agent
-
-Lab 1: IP Underlay Control-Plane Buildout
-----------------------------------------------
-
-**SPINE1:**
-
- .. code-block:: html
-
- route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
- !
- route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
- !
- peer-filter LEAF-AS-RANGE
- 10 match as-range 65001-65199 result accept
- !
- ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
- ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
- !
- router bgp 65000
- router-id 1.1.1.201
- no bgp default ipv4-unicast
- maximum-paths 2
- bgp listen range 10.0.0.0/8 peer-group IPv4-UNDERLAY-PEERS peer-filter LEAF-AS-RANGE
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
-
-**SPINE2:**
-
- .. code-block:: html
-
- route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
- !
- route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
- !
- peer-filter LEAF-AS-RANGE
- 10 match as-range 65001-65199 result accept
- !
- ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
- ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
- !
- router bgp 65000
- router-id 1.1.1.202
- no bgp default ipv4-unicast
- maximum-paths 2
- bgp listen range 10.0.0.0/8 peer-group IPv4-UNDERLAY-PEERS peer-filter LEAF-AS-RANGE
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
-
-**LEAF1:**
-
- .. code-block:: html
-
- route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
- !
- route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
- !
- ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
- ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
- ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
- !
- router bgp 65012
- router-id 1.1.1.101
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor 10.101.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.101.202.202 peer group IPv4-UNDERLAY-PEERS
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
-
-**LEAF2:**
-
- .. code-block:: html
-
- route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
- !
- route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
- !
- ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
- ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
- ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
- !
- router bgp 65012
- router-id 1.1.1.102
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor 10.102.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.102.202.202 peer group IPv4-UNDERLAY-PEERS
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
-
-**LEAF3:**
-
- .. code-block:: html
-
- route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
- !
- route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
- !
- ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
- ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
- ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
- !
- router bgp 65034
- router-id 1.1.1.103
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor 10.103.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.103.202.202 peer group IPv4-UNDERLAY-PEERS
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
-
-**LEAF4:**
-
- .. code-block:: html
-
- route-map RM-CONN-2-BGP permit 10
- match ip address prefix-list PL-LOOPBACKS
- !
- route-map RM-CONN-2-BGP permit 20
- match ip address prefix-list PL-P2P-UNDERLAY
- !
- ip prefix-list PL-LOOPBACKS seq 10 permit 1.1.1.0/24 eq 32
- ip prefix-list PL-LOOPBACKS seq 20 permit 2.2.2.0/24 eq 32
- ip prefix-list PL-P2P-UNDERLAY seq 10 permit 10.0.0.0/8 le 31
- !
- router bgp 65034
- router-id 1.1.1.104
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor IPv4-UNDERLAY-PEERS peer group
- neighbor IPv4-UNDERLAY-PEERS remote-as 65000
- neighbor IPv4-UNDERLAY-PEERS password @rista123
- neighbor IPv4-UNDERLAY-PEERS send-community
- neighbor IPv4-UNDERLAY-PEERS maximum-routes 12000
- neighbor 10.104.201.201 peer group IPv4-UNDERLAY-PEERS
- neighbor 10.104.202.202 peer group IPv4-UNDERLAY-PEERS
- redistribute connected route-map RM-CONN-2-BGP
- !
- address-family ipv4
- neighbor IPv4-UNDERLAY-PEERS activate
-
-Lab 2: EVPN Control-Plane Provisioning
--------------------------------------------------
-
-**SPINE1 and SPINE2:**
-
- .. code-block:: html
-
- router bgp 65000
- bgp listen range 1.1.1.0/24 peer-group EVPN-OVERLAY-PEERS peer-filter LEAF-AS-RANGE
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS next-hop-unchanged
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password @rista123
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
-
-**LEAF1 and LEAF2:**
-
- .. code-block:: html
-
- router bgp 65012
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS remote-as 65000
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password @rista123
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- neighbor 1.1.1.201 peer group EVPN-OVERLAY-PEERS
- neighbor 1.1.1.202 peer group EVPN-OVERLAY-PEERS
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
-
-**LEAF3 and LEAF4:**
-
- .. code-block:: html
-
- router bgp 65034
- neighbor EVPN-OVERLAY-PEERS peer group
- neighbor EVPN-OVERLAY-PEERS remote-as 65000
- neighbor EVPN-OVERLAY-PEERS update-source Loopback0
- neighbor EVPN-OVERLAY-PEERS bfd
- neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
- neighbor EVPN-OVERLAY-PEERS password @rista123
- neighbor EVPN-OVERLAY-PEERS send-community
- neighbor EVPN-OVERLAY-PEERS maximum-routes 0
- neighbor 1.1.1.201 peer group EVPN-OVERLAY-PEERS
- neighbor 1.1.1.202 peer group EVPN-OVERLAY-PEERS
- !
- address-family evpn
- neighbor EVPN-OVERLAY-PEERS activate
-
-Lab 3: MLAG
-------------------
-
-**LEAF1:**
-
- .. code-block:: html
-
- interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.12/32
- !
- Vlan 4093
- name MLAG_iBGP
- vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
- !
- interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.1/24
- !
- interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.1/30
- !
- no spanning-tree vlan-id 4094
- !
- interface Ethernet1
- description MLAG Link to LEAF2
- channel-group 1000 mode active
- !
- interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
- !
- mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.2
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
- !
- interface Ethernet4
- description HostA
- channel-group 10 mode active
- !
- interface Port-Channel10
- mlag 10
- spanning-tree portfast
- !
- interface vxlan1
- Vxlan virtual-router encapsulation mac-address mlag-system-id
- !
- router bgp 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password @rista123
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 192.0.0.2 peer group MLAG-IPv4-UNDERLAY-PEER
- !
- address-family ipv4
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
-
-**LEAF2:**
-
- .. code-block:: html
-
- interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.12/32
- !
- Vlan 4093
- name MLAG_iBGP
- vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
- !
- interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.2/24
- !
- interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.2/30
- !
- no spanning-tree vlan-id 4094
- !
- interface Ethernet1
- description MLAG Link to LEAF2
- channel-group 1000 mode active
- !
- interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
- !
- mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.1
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
- !
- interface Ethernet4
- description HostA
- channel-group 10 mode active
- !
- interface Port-Channel10
- mlag 10
- spanning-tree portfast
- !
- interface vxlan1
- Vxlan virtual-router encapsulation mac-address mlag-system-id
- !
- router bgp 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65012
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password @rista123
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 192.0.0.1 peer group MLAG-IPv4-UNDERLAY-PEER
- !
- address-family ipv4
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
-
-**LEAF3:**
-
- .. code-block:: html
-
- interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.34/32
- !
- Vlan 4093
- name MLAG_iBGP
- vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
- !
- interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.1/24
- !
- interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.1/30
- !
- no spanning-tree vlan-id 4094
- !
- interface Ethernet1
- description MLAG Link to LEAF2
- channel-group 1000 mode active
- !
- interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
- !
- mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.2
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
- !
- interface Ethernet4
- description HostC
- channel-group 20 mode active
- !
- interface Port-Channel20
- mlag 20
- spanning-tree portfast
- !
- interface vxlan1
- Vxlan virtual-router encapsulation mac-address mlag-system-id
- !
- router bgp 65034
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65034
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password @rista123
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 192.0.0.2 peer group MLAG-IPv4-UNDERLAY-PEER
- !
- address-family ipv4
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
-
-**LEAF4:**
-
- .. code-block:: html
-
- interface Loopback1
- description Shared MLAG VTEP Loopback
- ip address 2.2.2.34/32
- !
- Vlan 4093
- name MLAG_iBGP
- vlan 4094
- name MLAGPEER
- trunk group MLAGPEER
- !
- interface Vlan4093
- description MLAG iBGP Peering
- ip address 192.0.0.2/24
- !
- interface Vlan4094
- description MLAG PEER SYNC
- no autostate
- ip address 10.0.0.2/30
- !
- no spanning-tree vlan-id 4094
- !
- interface Ethernet1
- description MLAG Link to LEAF2
- channel-group 1000 mode active
- !
- interface Port-Channel1000
- description MLAG PEER-LINK
- switchport mode trunk
- switchport trunk group MLAGPEER
- !
- mlag configuration
- domain-id 1000
- local-interface Vlan4094
- peer-address 10.0.0.1
- peer-link Port-Channel1000
- reload-delay mlag 330
- reload-delay non-mlag 300
- !
- interface Ethernet4
- description HostC
- channel-group 20 mode active
- !
- interface Port-Channel20
- mlag 20
- spanning-tree portfast
- !
- interface vxlan1
- Vxlan virtual-router encapsulation mac-address mlag-system-id
- !
- router bgp 65034
- neighbor MLAG-IPv4-UNDERLAY-PEER peer group
- neighbor MLAG-IPv4-UNDERLAY-PEER remote-as 65034
- neighbor MLAG-IPv4-UNDERLAY-PEER next-hop-self
- neighbor MLAG-IPv4-UNDERLAY-PEER password @rista123
- neighbor MLAG-IPv4-UNDERLAY-PEER send-community
- neighbor MLAG-IPv4-UNDERLAY-PEER maximum-routes 12000
- neighbor 192.0.0.1 peer group MLAG-IPv4-UNDERLAY-PEER
- !
- address-family ipv4
- neighbor MLAG-IPv4-UNDERLAY-PEER activate
-
-Lab 4: Layer2 VPN Service Provisioning
-------------------------------------------
-
-**LEAF1:**
-
- .. code-block:: html
-
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
- !
- vlan 10
- name Ten
- vlan 20
- name Twenty
- !
- router bgp 65012
- vlan-aware-bundle TENANT-A
- rd 1.1.1.101:1
- route-target both 1:1
- redistribute learned
- vlan 10-30
- !
- interface Port-Channel10
- switchport access vlan 10
- mlag 10
- spanning-tree portfast
- !
- interface Ethernet5
- switchport access vlan 20
-
-**LEAF2:**
-
- .. code-block:: html
-
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
- !
- vlan 10
- name Ten
- vlan 20
- name Twenty
- !
- router bgp 65012
- vlan-aware-bundle TENANT-A
- rd 1.1.1.102:1
- route-target both 1:1
- redistribute learned
- vlan 10-30
- !
- interface Port-Channel10
- switchport access vlan 10
- mlag 10
- spanning-tree portfast
- !
- interface Ethernet5
- switchport access vlan 20
-
-**LEAF3:**
-
- .. code-block:: html
-
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
- !
- vlan 10
- name Ten
- vlan 30
- name Thirty
- !
- router bgp 65034
- vlan-aware-bundle TENANT-A
- rd 1.1.1.103:1
- route-target both 1:1
- redistribute learned
- vlan 10-30
- !
- interface Port-Channel20
- switchport access vlan 30
- mlag 20
- spanning-tree portfast
- !
- interface Ethernet5
- switchport access vlan 10
-
-**LEAF4:**
-
- .. code-block:: html
-
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 10-30 vni 10010-10030
- !
- vlan 10
- name Ten
- vlan 30
- name Thirty
- !
- router bgp 65034
- vlan-aware-bundle TENANT-A
- rd 1.1.1.104:1
- route-target both 1:1
- redistribute learned
- vlan 10-30
- !
- interface Port-Channel20
- switchport access vlan 30
- mlag 20
- spanning-tree portfast
- !
- interface Ethernet5
- switchport access vlan 10
-
-Lab 5: Layer3 VPN Service Provisioning
------------------------------------------
-
-**LEAF1:**
-
- .. code-block:: html
-
- ip virtual-router mac-address aaaa.bbbb.cccc
- !
- vrf instance A
- !
- ip routing vrf A
- !
- interface vlan10
- vrf A
- ip address virtual 10.10.10.1/24
- !
- interface vlan20
- vrf A
- ip address virtual 20.20.20.1/24
- !
- interface Vxlan1
- vxlan vrf A vni 50001
- !
- router bgp 65012
- vrf A
- rd 1.1.1.101:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
- !
- router l2-vpn
- arp selective-install
-
-**LEAF2:**
-
- .. code-block:: html
-
- ip virtual-router mac-address aaaa.bbbb.cccc
- !
- vrf instance A
- !
- ip routing vrf A
- !
- interface vlan10
- vrf A
- ip address virtual 10.10.10.1/24
- !
- interface vlan20
- vrf A
- ip address virtual 20.20.20.1/24
- !
- interface Vxlan1
- vxlan vrf A vni 50001
- !
- router bgp 65012
- vrf A
- rd 1.1.1.102:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
- !
- router l2-vpn
- arp selective-install
-
-**LEAF3:**
-
- .. code-block:: html
-
- ip virtual-router mac-address aaaa.bbbb.cccc
- !
- vrf instance A
- !
- ip routing vrf A
- !
- interface vlan10
- vrf A
- ip address virtual 10.10.10.1/24
- !
- interface vlan30
- vrf A
- ip address virtual 30.30.30.1/24
- !
- interface Vxlan1
- vxlan vrf A vni 50001
- !
- router bgp 65034
- vrf A
- rd 1.1.1.103:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
- !
- router l2-vpn
- arp selective-install
-
-**LEAF4:**
-
- .. code-block:: html
-
- ip virtual-router mac-address aaaa.bbbb.cccc
- !
- vrf instance A
- !
- ip routing vrf A
- !
- interface vlan10
- vrf A
- ip address virtual 10.10.10.1/24
- !
- interface vlan30
- vrf A
- ip address virtual 30.30.30.1/24
- !
- interface Vxlan1
- vxlan vrf A vni 50001
- !
- router bgp 65034
- vrf A
- rd 1.1.1.104:1
- route-target import evpn 1:1
- route-target export evpn 1:1
- redistribute connected
- !
- router l2-vpn
- arp selective-install
-
-Lab 6: Day-2 Ops
-------------------
-
-**Section A:**
-
-LEAF1-4:
-
- .. code-block:: html
-
- vlan 25
- name Twenty-Five
-
-LEAF1:
-
- .. code-block:: html
-
- interface Ethernet6
- switchport access vlan 25
-
-**Section B:**
-
-LEAF1:
-
- .. code-block:: html
-
- vlan 35
- name Thirty-Five
- vlan 40
- name Forty
- !
- vrf instance B
- !
- ip routing vrf B
- !
- interface Vxlan1
- vxlan vlan add 31-40 vni 10031-10040
- vxlan vrf B vni 50002
- !
- interface vlan35
- vrf B
- ip address virtual 35.35.35.1/24
- !
- interface vlan40
- vrf B
- ip address virtual 40.40.40.1/24
- !
- router bgp 65012
- vlan-aware-bundle TENANT-B
- rd 1.1.1.101:2
- route-target both 2:2
- redistribute learned
- vlan 31-40
- !
- vrf B
- rd 1.1.1.101:2
- route-target import evpn 2:2
- route-target export evpn 2:2
- redistribute connected
-
-
-LEAF2:
-
- .. code-block:: html
-
- vlan 35
- name Thirty-Five
- vlan 40
- name Forty
- !
- vrf instance B
- !
- ip routing vrf B
- !
- interface Vxlan1
- vxlan vlan add 31-40 vni 10031-10040
- vxlan vrf B vni 50002
- !
- interface vlan35
- vrf B
- ip address virtual 35.35.35.1/24
- !
- interface vlan40
- vrf B
- ip address virtual 40.40.40.1/24
- !
- router bgp 65012
- vlan-aware-bundle TENANT-B
- rd 1.1.1.102:2
- route-target both 2:2
- redistribute learned
- vlan 31-40
- !
- vrf B
- rd 1.1.1.102:2
- route-target import evpn 2:2
- route-target export evpn 2:2
- redistribute connected
-
-LEAF3:
-
- .. code-block:: html
-
- vlan 35
- name Thirty-Five
- vlan 40
- name Forty
- !
- vrf instance B
- !
- ip routing vrf B
- !
- interface Vxlan1
- vxlan vlan add 31-40 vni 10031-10040
- vxlan vrf B vni 50002
- !
- interface vlan35
- vrf B
- ip address virtual 35.35.35.1/24
- !
- interface vlan40
- vrf B
- ip address virtual 40.40.40.1/24
- !
- router bgp 65034
- vlan-aware-bundle TENANT-B
- rd 1.1.1.103:2
- route-target both 2:2
- redistribute learned
- vlan 31-40
- !
- vrf B
- rd 1.1.1.103:2
- route-target import evpn 2:2
- route-target export evpn 2:2
- redistribute connected
-
-LEAF4:
-
- .. code-block:: html
-
- vlan 35
- name Thirty-Five
- vlan 40
- name Forty
- !
- vrf instance B
- !
- ip routing vrf B
- !
- interface Vxlan1
- vxlan vlan add 31-40 vni 10031-10040
- vxlan vrf B vni 50002
- !
- interface vlan35
- vrf B
- ip address virtual 35.35.35.1/24
- !
- interface vlan40
- vrf B
- ip address virtual 40.40.40.1/24
- !
- router bgp 65034
- vlan-aware-bundle TENANT-B
- rd 1.1.1.104:2
- route-target both 2:2
- redistribute learned
- vlan 31-40
- !
- vrf B
- rd 1.1.1.104:2
- route-target import evpn 2:2
- route-target export evpn 2:2
- redistribute connected
-
-
-
-**Section C:**
-
-LEAF1:
-
- .. code-block:: html
-
- interface Loopback201
- vrf A
- ip address 201.0.0.101/32
- !
- ip address virtual source-nat vrf A address 201.0.0.101
-
-LEAF2:
-
- .. code-block:: html
-
- interface Loopback201
- vrf A
- ip address 201.0.0.102/32
- !
- ip address virtual source-nat vrf A address 201.0.0.102
-
-LEAF3:
-
- .. code-block:: html
-
- interface Loopback201
- vrf A
- ip address 201.0.0.103/32
- !
- ip address virtual source-nat vrf A address 201.0.0.103
-
-LEAF4:
-
- .. code-block:: html
-
- interface Loopback201
- vrf A
- ip address 201.0.0.104/32
- !
- ip address virtual source-nat vrf A address 201.0.0.104
\ No newline at end of file
diff --git a/topologies/datacenter/labguides/source/_static/arista_logo.png b/topologies/datacenter/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/datacenter/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/_static/arista_logo_160by26.png b/topologies/datacenter/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/datacenter/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/_static/arista_logo_320by52.png b/topologies/datacenter/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/datacenter/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/_static/cloudvision-icon.png b/topologies/datacenter/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/datacenter/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/_static/logo.jpg b/topologies/datacenter/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/datacenter/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/_static/my-styles.css b/topologies/datacenter/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/datacenter/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/datacenter/labguides/source/ansible_adhoc_and_simple_playbooks.rst b/topologies/datacenter/labguides/source/ansible_adhoc_and_simple_playbooks.rst
deleted file mode 100644
index 63200cdc1..000000000
--- a/topologies/datacenter/labguides/source/ansible_adhoc_and_simple_playbooks.rst
+++ /dev/null
@@ -1,225 +0,0 @@
-Ad Hoc and Simple Playbooks
-===========================
-
-For this lab, we will be playing with Ansible - both ad-hoc
-(one-off) and playbooks.
-
-.. note:: While Ansible is one of the easiest automation platforms out
- there, it is impossible to fully teach how it works in a lab or two
- in the course of a day. If you are interested in experimenting in
- this lab more, please let your SE know and they can provide you
- additional access after the event is completed.
-
- For some good reading, we recommend browsing the \ `Ansible
- website `__\.
-
-Ad-Hoc Commands
----------------
-
-The first part of the lab will show you how to issue ad-hoc commands to
-your lab switch. An ad-hoc command is essentially a one-off command;
-something you might issue once, but not ever need to repeat again.
-
-While this is handy, the real power of Ansible comes from using
-orchestrated playbooks.
-
-Before you run your first Ansible ad-hoc command, we’ll need to create a
-hosts file. Open the Atom editor, and create a new file and save it to
-your desktop with the filename ``hosts``.
-
-.. code-block:: ini
-
- [veos]
- 192.168.0.12
-
-This is an Ansible hosts file - you might recognize it as INI formatted!
-The top bracketed entry is a group, and the entry below it is a host.
-Save the file to your project directory.
-
-Now, let’s run an ad-hoc command. Open up your handy terminal window,
-and enter:
-
-.. code-block:: bash
-
- ansible veos -i hosts -m raw -a "show version" -u arista -k
-
-
-Enter the password **{REPLACE_PWD}** when prompted.
-
-This probably looks complicated at first, but let’s step through it:
-
-.. cssclass:: table-hover
-
-+-----------------------------------+-----------------------------------+
-| **Command** | **Description** |
-+-----------------------------------+-----------------------------------+
-| ``ansible`` | The command, duh! |
-+-----------------------------------+-----------------------------------+
-| ``veos`` | The group of hosts to run |
-| | against. Notice the [veos] from |
-| | your hosts file. If there were |
-| | more than one entry here, it |
-| | would run against more than one |
-| | host (unless you specify in |
-| | playbook to do otherwise). |
-+-----------------------------------+-----------------------------------+
-| ``-i hosts`` | Reads from the hosts file you |
-| | created. There are locations that |
-| | Ansible will look for this file |
-| | by default, but for this lab |
-| | we’re specifying one. |
-+-----------------------------------+-----------------------------------+
-| ``-m raw`` | Uses the Ansible raw SSH module |
-| | to connect to the switch |
-+-----------------------------------+-----------------------------------+
-| ``-a "show version"`` | The ad hoc command to run, in |
-| | this case ``show version``. |
-+-----------------------------------+-----------------------------------+
-| ``-u arista`` | Username ``arista`` - this can |
-| | be SSHkey based or saved |
-| | in another location |
-+-----------------------------------+-----------------------------------+
-| ``-k`` | Prompt for password - this can be |
-| | SSH key based or saved in another |
-| | location |
-+-----------------------------------+-----------------------------------+
-
-Looks a lot harder than it is, but either way when your hosts file has
-100 devices in it adding a VLAN becomes a lot easier!
-
-Playbook
---------
-
-For simplicity's sake, for this lab we have uploaded the required files
-for this lab to your lab machine. You will find them on the desktop in
-the ``lab4`` folder under ``labfiles``.
-
-Double click on the ``lab4-advanced-playbook.yml`` and let’s dive into what
-it’s doing:
-
-.. cssclass:: table-hover
-
-+-----------------------------------+--------------------------------------+
-| **Command** | **Description** |
-+-----------------------------------+--------------------------------------+
-| ``---`` | The standard beginning of an |
-| | Ansible playbook |
-+-----------------------------------+--------------------------------------+
-| ``- name: Add a VLAN`` | Names the task. This will be |
-| | displayed at runtime. |
-+-----------------------------------+--------------------------------------+
-| ``hosts: 192.168.0.14`` | Defines the host(s) to run |
-| | against. This is currently set to |
-| | one host, but could be a group! |
-+-----------------------------------+--------------------------------------+
-| ``gather_facts: no`` | Don’t gather information about |
-| | the device, just run the command. |
-| | We do this for speed, but you may |
-| | need to use it for some things |
-+-----------------------------------+--------------------------------------+
-| ``connection: local`` | Sets the task to run from the |
-| | local machine |
-+-----------------------------------+--------------------------------------+
-| ``vars:`` | Defines a variable section |
-+-----------------------------------+--------------------------------------+
-| ``provider:`` | Defines a provider section |
-+-----------------------------------+--------------------------------------+
-| ``host: "{{ ansible_host }}"``| Sets the host to run against as |
-| | an Ansible canned variable |
-| | of ``ansible_host``. This will key |
-| | off ``hosts`` above. Note that |
-| | Ansible variables use {{ curly |
-| | brackets }} |
-+-----------------------------------+--------------------------------------+
-| ``username: "arista"`` | Sets the username to ``arista`` |
-+-----------------------------------+--------------------------------------+
-| ``password: "{REPLACE_PWD}"`` | Sets the password to ``{REPLACE_PWD}`` |
-+-----------------------------------+--------------------------------------+
-| ``authorize: yes`` | Enables once connected |
-+-----------------------------------+--------------------------------------+
-| ``transport: eapi`` | Uses eAPI instead of the SSH. You |
-| | can do either |
-+-----------------------------------+--------------------------------------+
-| ``validate_certs: no`` | Don’t validate SSL certificates |
-+-----------------------------------+--------------------------------------+
-| ``tasks:`` | Begins the ``tasks`` section |
-+-----------------------------------+--------------------------------------+
-| ``- eos_config:`` | Tells Ansible to use |
-| | the \ `eos_config module |
-| | `__\ |
-+-----------------------------------+--------------------------------------+
-| ``lines:`` | Per the ``eos_config`` module, |
-| | define the configuration lines to |
-| | be issued to the switch. There can |
-| | be more than one! |
-+-----------------------------------+--------------------------------------+
-| ``- name foo`` | The actual line to issue. Note |
-| | that it starts with a -. The next |
-| | line would start with another - |
-+-----------------------------------+--------------------------------------+
-| ``parents: vlan 500`` | The parent of the lines above. |
-| | This is important for things like |
-| | interfaces or VLANs. There is |
-| | always a parent above them |
-+-----------------------------------+--------------------------------------+
-| ``provider: "{{ provider | Specifies the provider |
-| }}"`` | (connection information). This is |
-| | also a variable, and it keys in |
-| | on the provider section above |
-+-----------------------------------+--------------------------------------+
-
-For all if of its lines, all this Ansible file is really doing is
-creating a vlan named ``foo`` with an ID of ``500``. Note that while this is just
-adding it to a single device, you could use this to add it to every
-switch in your fleet!
-
-First we will need to update the ``password`` value in the ``provider`` section.
-
-Replace ``password: arista`` with ``password: {REPLACE_PWD}``
-
-Then save the file.
-
-Let’s go ahead and run it. Open up a Terminal window and type the
-following and hit **Enter**:
-
-.. code-block:: html
-
- ansible-playbook -i labfiles/lab4/lab4-advanced-hosts labfiles/lab4/lab4-advanced-playbook.yml
-
-It’ll look like this when it’s run:
-
-.. image:: images/ansible_adhoc/nested_adhoc_1.png
- :align: center
-
-Note that it says ok=1 **changed=1**. This is telling you that it ran
-successfully and made a change. Now, you can either take our word for
-it, or log into the switch and verify the VLAN is there!
-
-Run it one more time. Notice how it just says ok=1 - this is because the
-configuration is already there and nothing needs to be changed.
-Idempotency at its finest - neat right?
-
-Change the playbook to use a group instead of a single host.
-1. Change ``hosts: 192.168.0.14`` in ``lab4-advanced-playbook.yml`` to ``hosts: veos``
-2. Add ``192.168.0.12`` and ``192.168.0.13`` to ``labfiles/lab4/lab4-advanced-hosts`` under the ``[veos]`` group.
-
-Now, rerun the playbook
-
-.. code-block:: html
-
- ansible-playbook -i labfiles/lab4/lab4-advanced-hosts labfiles/lab4/lab4-advanced-playbook.yml
-
-.. note:: Notice that the changes occur on the newly added hosts ``192.168.0.12`` and ``192.168.0.13``. Again, Ansible is Idempotent, only the devices lacking vlan 500 will be changed upon sebsequent runs.
-
-Bonus
------
-
-
-
-Create a new playbook (or alter the one you have) that creates a new
-VLAN and then adds it to ``interface Ethernet2`` as ``switchport access vlan``.
-
-.. note:: Check out the Ansible eos_config module \ `documentation `__\ .
diff --git a/topologies/datacenter/labguides/source/ansible_and_jinja_templates.rst b/topologies/datacenter/labguides/source/ansible_and_jinja_templates.rst
deleted file mode 100644
index 2aaf17b90..000000000
--- a/topologies/datacenter/labguides/source/ansible_and_jinja_templates.rst
+++ /dev/null
@@ -1,256 +0,0 @@
-Ansible and Jinja Templates
-===========================
-
-As you might imagine, writing Ansible playbooks that issue command after
-command to configure all 48+ interfaces on a switch can be extremely
-tedious. Enter our
-friend \ `Jinja `__\ .
-Jinja is a Python-based templating engine that works with Ansible out of
-the box.
-
-Jinja templates take variables from Ansible and then output text. To
-make an analogy, it’s a mail merge for configuration.
-
-.. note:: Jinja isn’t just used for templates in Ansible. Ansible uses Jinja for filters, tests, and other functions as well!
-
-A single command
-----------------
-
-Jinja and Ansible use cases range from single line configuration to
-intricate for loops. Let’s start with a single line template for now.
-Note that even though Ansible can handle single commands as shown above
-natively, there will be times when you will develop a single template
-that is comprised of both single commands and for loops.
-
-.. warning:: Please do not start writing this script until you get to the
- next section
-
-We’re going to create a Jinja template to configure an NTP server with
-the following in it:
-
-.. code-block:: html
-
- ntp server {{ ntp.host }}
-
-Once run, Jinja will grab the defined Ansible variable ``host`` under
-the ``ntp`` section:
-
-.. code-block:: yaml
-
- ntp:
- host: 192.168.0.1
-
-Once it finds the variable, it will generate the following:
-
-.. code-block:: html
-
- ntp server 192.168.0.1
-
-We’ll be calling this with the same Ansible module as above
-(``eos_config``), but this time we’ll be using the ``src`` parameter to pass a
-Jinja template instead of ``lines`` and ``parents`` like we did in lab #4.
-
-Write it
-~~~~~~~~
-
-We’re going to create 3 files for this lab in the **IDE**. Once you have created
-them, save them to your **project** directory.
-
-#. A hosts file named ``labhosts``, though you can reuse the one you created
- earlier
-#. A Jinja2 template named ``ntp.j2``
-#. An Ansible playbook named ``ntp.yml``
-
-.. note:: Save these files to path: ``/home/coder/project/labfiles``
-
-Hosts file (``labhosts``):
-
-.. code-block:: html
-
- [veos]
- 192.168.0.12
-
-Jinja2 template (``ntp.j2``):
-
-.. code-block:: html
-
- ntp server {{ ntp.host }} source Management1
-
-Ansible playbook (``ntp.yml``):
-
-.. code-block:: yaml
-
- ---
- - name: Add a NTP server
- hosts: veos
- gather_facts: no
- connection: local
- vars:
- provider:
- host: "{{ ansible_host }}"
- username: "arista"
- password: "{REPLACE_PWD}"
- authorize: yes
- transport: eapi
- validate_certs: no
- ntp:
- host: 192.168.0.1
- tasks:
- - eos_config:
- src: ntp.j2
- provider: "{{ provider }}"
-
-
-See how we’ve moved from having` `lines`` and ``parents`` in lab #4 to ``src`` to
-indicate we’re going to use a Jinja template? Fancy!
-
-Run it
-~~~~~~
-
-Assuming that you’ve saved the files to the project directory, let’s run it with
-the following command:
-
-.. code-block:: html
-
- ansible-playbook -i labhosts ntp.yml
-
-If all goes to plan, you will see ok=1 **changed=1**. If you were to run it
-again, it will show ok=1 **changed=0**. Idempotency strikes again! Feel free
-to check **Leaf1** to make sure the changes are there.
-
-.. image:: images/ansible_adhoc/nested_adhoc_2.png
- :align: center
-
-For Loops
----------
-
-Now it’s time for something a little bit more useful - Jinja
-template ``for`` loops. A ``for`` loop allows you to iterate through a template
-and generate configuration until it reaches the end. In this lab, we’re
-going to create a loop that sets the interface description on every
-port.
-
-This is a relatively benign example so that we can keep your lab
-switches operational for other labs, but this could easily be the entire
-switch - or switch port - configuration.
-
-Let’s look at the Jinja template formatting:
-
-.. code-block:: jinja
-
- {% for intf in interfaces %}
- interface {{ intf.name }}
- description {{ intf.description }}
- {% endfor %}
-
-This template is similar to any other language for loop - for arbitrary
-value ``intf`` in a list of variables named ``interfaces``, configure
-the ``name`` variable for that interface, with a description of
-the ``description`` variable. Jinja templates must have the same
-indentation as a live switch configuration. EOS devices utilize
-3 spaces for indentations.
-
-Clear as mud? Maybe this variables file will help tie it together:
-
-.. code-block:: yaml
-
- interfaces:
- - name: Ethernet1
- description: leaf2.atd.lab
- - name: Ethernet2
- description: spine1.atd.lab
- - name: Ethernet3
- description: spine2.atd.lab
- - name: Ethernet4
- description: host1
- - name: Ethernet6
- description: leaf2.atd.lab
-
-Once you run the template above, it’ll generate the following
-configuration:
-
-.. code-block:: html
-
- interface Ethernet1
- description leaf2.atd.lab
- interface Ethernet2
- description spine1.atd.lab
- interface Ethernet3
- description spine2.atd.lab
- interface Ethernet4
- description host1
- interface Ethernet6
- description leaf2.atd.lab
-
-Write it
-~~~~~~~~
-
-We will reuse the hosts file from the last lab, so let’s start by
-creating a Jinja template in the **IDE** on in your project directory named **interfaces.j2**:
-
-.. warning:: Please make absolutely certain that keep the proper spacing in the Jinja template, or Ansible will fail.
- Jinja, like Ansible, is reliant on indentation.
-
-|
-
-.. code-block:: jinja
-
- {% for intf in interfaces %}
- interface {{ intf.name }}
- description {{ intf.description }}
- {% endfor %}
-
-Now let’s create the playbook on your desktop named ``interfaces.yml``:
-
-.. code-block:: yaml
-
- ---
- - name: Add interface descriptions
- hosts: veos
- gather_facts: no
- connection: local
- vars:
- provider:
- host: "{{ ansible_host }}"
- username: "arista"
- password: "{REPLACE_PWD}"
- authorize: yes
- transport: eapi
- validate_certs: no
- interfaces:
- - name: Ethernet1
- description: leaf2.atd.lab
- - name: Ethernet2
- description: spine1.atd.lab
- - name: Ethernet3
- description: spine2.atd.lab
- - name: Ethernet4
- description: host1
- - name: Ethernet6
- description: leaf2.atd.lab
- tasks:
- - eos_config:
- src: interfaces.j2
- provider: "{{ provider }}"
-
-Run it
-~~~~~~
-
-Let’s run it. We’re going to reuse the hosts file created in the last
-lab.
-
-.. code-block:: bash
-
- ansible-playbook -i labhosts interfaces.yml
-
-You should see ok=1 **changed=1**. If you were to run it again, it will
-show ok=1 changed=0.
-
-Log into Leaf1 (192.168.0.12) and run ``show interface status`` to see the
-interface names.
-
-Bonus
------
-
-Modify the **For Loops** lab to add the interface name to the interface
-description.
diff --git a/topologies/datacenter/labguides/source/command_api.rst b/topologies/datacenter/labguides/source/command_api.rst
deleted file mode 100644
index b3b5f97c9..000000000
--- a/topologies/datacenter/labguides/source/command_api.rst
+++ /dev/null
@@ -1,89 +0,0 @@
-Command API
-===========
-
-The first lab will demonstrate the on-switch Command API explorer
-feature. The Command API provides an interface to experiment with
-commands and view their request and response structure without having to
-write a script or program to test it with.
-
-Connect to the **WebUI** service by clicking on the already open tab, or clicking on the **WebUI** link on the topology landing page.
-
-.. image:: images/command_api/nested_connecting_1.png
- :align: center
-|
-This will launch a **Firefox** instance in your browser located in your topology, not your laptop. Once logged in to access Firefox, to access the switch's Command API, type should automatically connect to the demo
-switch’s Command API. If it doesn’t, log onto the switch enter the below address into Firefox.
-HTTPS: ``https://192.168.0.12``
-
-.. image:: images/command_api/nested_firefox_1.png
- :align: center
-
-When prompted, enter in the username ``arista`` and ``{REPLACE_PWD}`` as the password.
-Accept the self-signed SSL certificate, please do so.
-
-.. note:: Username and password prompt may not occur until you click in the command dialog box
-
-You will be greeted with the following window:
-
-.. image:: images/command_api/nested_firefox_2.png
- :align: center
-
-Get familiar with the interface. Try entering in ``show interfaces`` and
-clicking **Submit POST** request. Note that it requires the full command to
-work properly; shorthand commands, such as ``sh int`` do not work. Any API
-action is the same way.
-
-.. note:: Technically, you can use the AutoComplete command to use shorthand, but it’s a good practice to use long form. When writing
- code it’s always important to think about the next person to look at it!
-
-When you successfully issue a command, notice what the response looks
-like:
-
-.. image:: images/command_api/commandapi_4.png
- :align: center
-
-The format above is in JSON (JavaScript Object Notation). Every line has
-a *key*, and a *value*. This is why JSON is nice to use; it’s easy to
-reference and use key/value pairs. We will play with this more in the
-next lab.
-
-Now try to issue a configuration command. Try:
-
-.. code-block:: html
-
- vlan 1000
- name test
-
-Hit **Submit POST Request**.
-
-What does the response viewer say? Note there’s an error, in this
-case ``"message": "CLI command 1 of 2 'vlan 1000' failed: invalid command"``
-
-If you were to log into the switch right now and issue that command without using an API, what would cause this?
-
-Now try it with the following:
-
-.. code-block:: html
-
- configure
- vlan 1000
- name test
-
-Just like if you were to login to a switch and issue those commands
-normally, the same applies here. The response indicates a success now.
-
-Log into your switch, with a ssh session, or by leveraging the opened tab for the **Console Access** service.
-
-To get to the ssh menu, type in the menu option **ssh** and press Enter. Next we will connect to **leaf1**, by typing **leaf1** in the menu.
-
-When prompted, enter the arista user's password: ``{REPLACE_PWD}``
-
-Now type ``show run sec vlan`` to observe that the VLAN is present:
-
-.. image:: images/command_api/nested_eos_1.png
- :align: center
-
-.. note:: To exit out of the EOS CLI, simply type ``exit`` and you will return the ssh menu.
-
-Play around some more if you’d like! Check out the **Overview** and **Command Documentation**
-tabs. Also, this is running on a virtual edition of our switch, so you can also do this at home or in your work lab!
diff --git a/topologies/datacenter/labguides/source/conf.py b/topologies/datacenter/labguides/source/conf.py
deleted file mode 100644
index 8dfa38306..000000000
--- a/topologies/datacenter/labguides/source/conf.py
+++ /dev/null
@@ -1,250 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# Add extensions
-extensions = ['sphinx_copybutton', 'sphinxcontrib.images']
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/datacenter/labguides/source/connecting.rst b/topologies/datacenter/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/datacenter/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/datacenter/labguides/source/cvp-l2evpn.rst b/topologies/datacenter/labguides/source/cvp-l2evpn.rst
deleted file mode 100644
index a30cca1a6..000000000
--- a/topologies/datacenter/labguides/source/cvp-l2evpn.rst
+++ /dev/null
@@ -1,485 +0,0 @@
-.. # define a hard line break for HTML
-.. |br| raw:: html
-
-
-
-L2 EVPN
-=======
-
-1. Log into CloudVision and find **leaf3** on the **Devices** page
-
-* The username to access CloudVision is ``arista`` and the password is ``{REPLACE_PWD}``
-
-* Search for ``leaf3`` in the **Device** column of the **inventory** table.
-
-.. image:: images/cvp-l2vpn/leaf3-inventory-table.png
- :align: center
- :width: 50 %
-|br|
-
-* Click on **leaf3**
-|br|
-
-2. Review the current **running-config** routing agent information in CVP
-
-* Click on **Running Config** in the left selection column under **Device Overview**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-running-config.png
- :align: center
- :width: 50%
-|br|
-
-* Verify that ``service routing protocols model multi-agent`` line is in the current **running-config**
-|br|
-
-3. Review the current VXLAN information in CVP
-
-* Click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-pre.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** leaf3 currently has no VXLAN configuration
-
-* Click on **Topology** in the navigation bar at the top of the page
-* Click the **Link Overlay** dropdown in the left selection column
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-before.png
- :align: center
- :width: 50%
-|br|
-
-* Click the **VXLANs** selection, also click and view the **VLANs** selection
-* **Note:** You should see VLAN 1 on ``leaf3`` & ``leaf1``
-* **Note:** You should not see VLAN 12 or VNI 1200 as a dashed line from ``leaf3`` to other leaf switches
-|br|
-
-4. Create the EVPN L2VPN configlet
-
-* Click on **Provisioning**, click on **Configlets** in the left selection column
-* Click the **+** sign in the Configlets list toolbar
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-list.png
- :align: center
- :width: 50%
-|br|
-
-* Create a configlet called ``Leaf3-l2vpn-Lab-Full-user``
-
-.. code-block:: text
-
- !! Configure physical interface et4 for LACP and Port-Channel4 in access vlan 12
- interface Port-Channel4
- switchport mode access
- switchport access vlan 12
- !
- interface Ethernet1
- shutdown
- !
- !! Configure interface et2 as a p2p leaf to spine L3 link
- interface Ethernet2
- no switchport
- ip address 172.16.200.10/30
- !
- !! Configure interface et3 as a p2p leaf to spine L3 link
- interface Ethernet3
- no switchport
- ip address 172.16.200.26/30
- !
- !! Configure physical interface et4 for LACP (active) in Port-Channel4
- interface Ethernet4
- channel-group 4 mode active
- lacp timer fast
- !
- interface Ethernet5
- shutdown
- !
- !! Configure loopback0 interface for use with routing protocol (BGP)
- interface Loopback0
- ip address 172.16.0.5/32
- !
- !! Configure loopback1 interface for use as the VTEP IP interface
- interface Loopback1
- ip address 3.3.3.3/32
- ip address 99.99.99.99/32 secondary
- !
-
- !! Configure routing protocol BGP Underlay
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- !! Configure routing protocol BGP overlay
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- redistribute connected
- !
- !! Enable address family evpn for the SPINE-EVPN-TRANSIT peer group
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- !! Disable address family ipv4 on SPINE-EVPN-TRANSIT peer group
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-* Add the CLI text from above to the new configlet
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet.png
- :align: center
- :width: 50%
-|br|
-
-* Validate configlet syntax on ``leaf3``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-validate.png
- :align: center
- :width: 50%
-|br|
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-validate2.png
- :align: center
- :width: 50%
-|br|
-
-5. Assign the EVPN configlet to ``leaf3``
-
-* Click on **Provisioning**, then click on **Network Provisioning** in the left selection column
-* Right click on **leaf3**, Click on **Manage->Configlets** and then search for ``Leaf3-l2vpn``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-manage.png
- :align: center
- :width: 50%
-|br|
-
-* Click the checkbox next to ``Leaf3-l2vpn-Lab-Full-user``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-assign.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Validate**, review the new lines added to the **Designed Configuration**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-assign-validate.png
- :align: center
- :width: 35%
-|br|
-
-* click **Save**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-assign-validate-compare.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Save** on the **Network Provisioning** main view
-
-* **Note:** a Task will be generated
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-main-save.png
- :align: center
- :width: 50%
-|br|
-
-6. Create a **Change Control** with the generated Task
-
-* Click **Tasks** from the left selection column
-
-* Click the checkbox next to the generated task from the pool of **Assignable Tasks**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-task.png
- :align: center
- :width: 50%
-|br|
-
-* Click **+ Create Change Control with 1 Task**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-create-cc.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Review and Approve** on the newly created **Change Control**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-review-approve.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Execute Change Control** in upper right of the UI
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-execute.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Execute** in the resulting confirmation dialog box
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-execute-confirm.png
- :align: center
- :width: 50%
-|br|
-
-7. Verify the EVPN BGP protocol overlay
-
-* **Note:** This verification step can also be done on the CLI of ``leaf3``
-* Click **Provisioning**, then click **Snapshot Configuration**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-config.png
- :align: center
- :width: 50%
-|br|
-
-* Click **or create a new configuration** in the center of the **Snapshot Configuration** screen
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-config-new.png
- :align: center
- :width: 50%
-|br|
-
-
-* Under **Snapshot Configuration** enter ``ip-bgp-evpn-summary`` under Name
-* In the **Commands** dialog enter the following commands
-
-.. code-block:: text
-
- show bgp evpn summary
- show ip bgp summary
- show ip route bgp
-
-* Under devices, select ``leaf3``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-config-content.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Save**
-
-* Click **Devices**, then click **leaf3**
-* Click **Snapshots** in the left selection column
-* Click **ip-bgp-evpn-summary**
-* **Note:** Under ``show bgp evpn summary`` you should see that there are two **overlay** BGP peers, peered with the loopback0 interface IP address
-* **Note:** Under ``show ip bgp summary`` you should see that there are two **underlay** BGP peers, peered with the p2p interfaces (Et2 & Et3) IP addresses
-* **Note:** Under ``show ip route bgp`` you should see that there are a number of ECMP routes to networks via the p2p interfaces (ET2 & ET3) of the peers
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-ip-bgp-evpn-summary.png
- :align: center
- :width: 50%
-|br|
-
-8. Add the L2VPN VXLAN configuration to the previously created configlet ``Leaf3-l2vpn-Lab-Full-user``
-
-* Click **Provisioning**, then click **Configlets**
-* Search for ``l2vpn`` then click **Leaf3-l2vpn-Lab-Full-user**
-* Click the **edit** button and add the following configuration lines in **bold** below, to the configlet created in step (4.)
-* **Note:** For simplicity add the new lines in the same position and order as they appear in **bold** below
-* **Note:** This step will add an L2VPN to ``leaf3`` to extend VLAN 12 using VXLAN from ``leaf3`` to ``leaf1``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-edit-configlet.png
- :align: center
- :width: 50%
-|br|
-
-
-.. raw:: html
-
-
- !! Configure physical interface et4 for LACP and Port-Channel4 in access vlan 12
- interface Port-Channel4
- switchport mode access
- switchport access vlan 12
- !
- interface Ethernet1
- shutdown
- !
- !! Configure interface et2 as a p2p leaf to spine L3 link
- interface Ethernet2
- no switchport
- ip address 172.16.200.10/30
- !
- !! Configure interface et3 as a p2p leaf to spine L3 link
- interface Ethernet3
- no switchport
- ip address 172.16.200.26/30
- !
- !! Configure physical interface et4 for LACP (active) in Port-Channel4
- interface Ethernet4
- channel-group 4 mode active
- lacp timer fast
- !
- interface Ethernet5
- shutdown
- !
- !! Configure loopback0 interface for use with routing protocol (BGP)
- interface Loopback0
- ip address 172.16.0.5/32
- !
- !! Configure loopback1 interface for use as the VTEP IP interface
- interface Loopback1
- ip address 3.3.3.3/32
- ip address 99.99.99.99/32 secondary
- !
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1200
- !
- !! Configure routing protocol BGP Underlay
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- !! Configure routing protocol BGP overlay
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT next-hop-unchanged
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community extended
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- redistribute connected
- !
- vlan 12
- rd 3.3.3.3:12
- route-target both 1:12
- redistribute learned
- !
- !! Enable address family evpn for the SPINE-EVPN-TRANSIT peer group
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- !! Disable address family ipv4 on SPINE-EVPN-TRANSIT peer group
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-
-* Repeat the process described in step (6.) to push the additional configuration to ``leaf3``
-|br|
-
-9. Verify l2vpn VXLAN operation with CVP Telemetry
-
-* Using the method described in step (7.), create a new snapshot called ``vxlan-info``
-
- **Note:** This verification can also be done on the CLI of ``leaf1`` and ``leaf3``
-
-* Select ``leaf1`` and ``leaf3`` under the **Devices** dropdown of the new Snapshot configuration
-
-* Add the following commands to the **Commands** field of the new snapshot
-
-.. code-block:: text
-
- show bgp evpn route-type imet
- show bgp evpn route-type mac-ip
- show vxlan address-table
-
-* Wait 5-10 minutes you will see the snapshot data populated
-
- **Note:** wait for the snapshot to run and until after you ping from ``host1`` to ``host2`` before viewing this snapshot
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-vxlan-info.png
- :align: center
- :width: 50%
-|br|
-
-* From **Device** page **Inventory** click on **leaf3**
-* Click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** you should now see the VLANs to VNI mappings related the to VXLAN configuration on ``leaf3``
-
-* Ping ``host1`` from ``host2``
-
-.. code-block:: text
-
- host1# ping 172.16.112.201
- PING 172.16.112.201 (172.16.112.201) 72(100) bytes of data.
- 80 bytes from 172.16.112.201: icmp_seq=1 ttl=64 time=0.248 ms
- 80 bytes from 172.16.112.201: icmp_seq=2 ttl=64 time=0.165 ms
- 80 bytes from 172.16.112.201: icmp_seq=3 ttl=64 time=0.181 ms
- 80 bytes from 172.16.112.201: icmp_seq=4 ttl=64 time=0.150 ms
- 80 bytes from 172.16.112.201: icmp_seq=5 ttl=64 time=0.146 ms
-
- --- 172.16.112.201 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 1ms
- rtt min/avg/max/mdev = 0.146/0.178/0.248/0.037 ms, ipg/ewma 0.421/0.211 ms
- host1#
-
-* Again, click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification-mac.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** In addition to the VLAN to VNI Mappings, you will see an entry in the ``VXLAN MAC Address Table`` section
-
-* Click on the **MAC Address Table** for ``leaf3`` in left selection column
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification-mac-table.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** You will see the local MAC Address of Host2 on Port-Channel 4 and the remote MAC Address of Host1 via port ``Vxlan1``
-
-* Review the snapshot ``vxlan-info`` created earlier in step (9.)
-* **Note:** ``show bgp evpn route-type imet`` will show the VXLAN flood lists dynamically built and distributed by BGP EVPN
-* **Note:** ``show bgp evpn route-type mac-ip`` will show the VXLAN mac to IP bindings being sent via BGP EVPN
-* **Note:** ``show vxlan address-table`` will show the VLAN, MAC Address and VXLAN interface and remote VTEP IP
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-info-snapshot.png
- :align: center
- :width: 50%
-|br|
-
-* Click on **Topology View**
-* Click the **Link Overlay** dropdown in the left selection column
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-before.png
- :align: center
- :width: 50%
-|br|
-
-* Click the **VXLANs** selection, also click and view the **VLANs** selection
-* **Note:** You should see VLAN 12 on ``leaf3`` & ``leaf1``
-* **Note:** You should see that ``leaf3`` has both VLAN 12 and VNI 1200 with a dashed line to ``leaf1``
-* **Note:** You should **now** see VLAN 12 and VNI 1200 as a dashed line from leaf3 to leaf1, indicating VLAN 12 is extended via VNI 1200
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-vlan-after.png
- :align: center
- :width: 50%
-|br|
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-vni-after.png
- :align: center
- :width: 50%
-|br|
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/labguides/source/cvp-l3ls.rst b/topologies/datacenter/labguides/source/cvp-l3ls.rst
deleted file mode 100644
index 016c0c45a..000000000
--- a/topologies/datacenter/labguides/source/cvp-l3ls.rst
+++ /dev/null
@@ -1,162 +0,0 @@
-Layer 3 Leaf-Spine
-==================
-
-.. note:: For more details on the configuration we will apply to Leaf4, check out the UCN MLAG Lab.
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. Log into CloudVision and find Leaf4 on the **Devices** page.
-
- 1. The username to access CloudVision is ``arista`` and the password is ``{REPLACE_PWD}``
-
- 2. Search for ``leaf4`` in the **Device** column of the inventory table.
-
- .. image:: images/cvp-l3ls/leaf4-inventory-table.png
- :align: center
- :width: 50 %
-
- 3. Click on **leaf4**.
-
-2. Click on the **BGP** section on the left side navigation bar.
-
- 1. Here we can see details for the BGP state of leaf4.
-
- .. image:: images/cvp-l3ls/leaf4-bgp-overview-pre.png
- :align: center
- :width: 50 %
-
- 2. Notice that BGP does not appear to be configured on leaf4.
-
- 3. Switch to **spine1** to see the status of spine1's BGP configuration.
-
- .. image:: images/cvp-l3ls/spine1-bgp-overview-pre.png
- :align: center
- :width: 50 %
-
- 3. See that there is 1 unestablished peer and we can see the details for that attempted neighborship in the table.
-
- 4. View these details for **spine2** as well.
-
-3. Click **Metrics** at the top of the page
-
- 1. In this section of CloudVision, users can create custom Dashboards to refer to particular telemetry data they find noteworthy.
-
- 2. Click **create a new dashboard**.
-
- 3. In the view builder on the left, select the values for each dropdown as listed below:
-
- .. .. table::
- :widths: auto
- :align: center
-
- ============== =========================
- Dashboard View
- -----------------------------------------
- View Mode Table
- Metric Type Devices
- Metrics BGP
- - Established Peers
- - Unestablished Peers
- - Learned Paths
- - AS Number
- - Router-ID
- Devices - leaf1
- - leaf2
- - leaf3
- - leaf4
- - spine1
- - spine2
- ============== =========================
-
- .. image:: images/cvp-l3ls/bgp-dashboard-setup.png
- :align: center
- :width: 50 %
-
- 4. Click **Save Dashboard** in the bottom left corner.
-
- 5. If prompted to name the dashboard, give a name and click **Save**.
-
- 6. Now there is a dashboard that displays BGP information for all switches in our leaf-spine network in one place.
-
-4. Configure BGP on leaf4.
-
- 1. Click **Provisioning** at the top of the page.
-
- 2. Find **leaf4**, right click on it, and click **Manage -> Configlet**.
-
- .. image:: images/cvp-l3ls/leaf4-manage-configlet.png
- :align: center
- :width: 50 %
-
- 3. Search for ``Leaf4-BGP-Lab-Full`` in the search bar, select the configlet, and click **Validate**.
-
- .. image:: images/cvp-l3ls/leaf4-add-bgp-configlet.png
- :align: center
- :width: 50 %
-
- 4. Validate the Designed Configuration created by CloudVision from the Proposed Configlets against Leaf4's running configuration and click **Save**.
-
- .. image:: images/cvp-l3ls/leaf4-validate-bgp-configlet.png
- :align: center
- :width: 50 %
-
- 5. There should now be a temporary action for leaf4 indicated by the green outline around leaf4. Click **Save**.
-
- .. image:: images/cvp-l3ls/leaf4-pending-task.png
- :align: center
- :width: 50 %
-
- 6. A task should have been created. Click **Tasks** on the left side to navigate to the **Tasks** page.
-
- 7. Check the assignable task for leaf4 and click **Create Change Control with 1 Task**.
-
- .. image:: images/cvp-l3ls/bgp-create-cc.png
- :align: center
- :width: 50 %
-
- 8. At this point, you should be on the Change Control page. Click **Review and Approve** towards the upper right corner to view the effects of each task in the change control.
-
- .. image:: images/cvp-l3ls/bgp-cc-page.png
- :align: center
- :width: 50 %
-
- 9. Review the changes you are about to push and click **Approve** in the bottom right corner of the window.
-
- .. image:: images/cvp-l3ls/bgp-review-and-approve.png
- :align: center
- :width: 50 %
-
- 10. The **Review and Approve** button has now changed to an **Execute** button. Click **Execute** to push the configuration update for leaf4.
-
- .. image:: images/cvp-l3ls/bgp-execute-cc.png
- :align: center
- :width: 50 %
-
-5. Verify that BGP is properly configured
-
- 1. Head back over to **Metrics** and select the dashboard we created earlier.
-
- .. image:: images/cvp-l3ls/bgp-dashboard-done.png
- :align: center
- :width: 50 %
-
- 2. Make sure all of the switches have the proper BGP configuration and number of peers.
-
- .. image:: images/cvp-l3ls/leaf4-bgp-overview-post.png
- :align: center
- :width: 50 %
-
- 3. Navigate to the BGP Overview page for **leaf4** as well as both **spine1** and **spine2**.
-
- .. image:: images/cvp-l3ls/spine1-bgp-overview-post.png
- :align: center
- :width: 50 %
-
-6. Validate connectivity from **Host1** to **Host2**. From **Host1** execute:
-
- .. code-block:: text
-
- ping 172.16.116.100
- traceroute 172.16.116.100
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/labguides/source/cvp-mlag.rst b/topologies/datacenter/labguides/source/cvp-mlag.rst
deleted file mode 100644
index 143ba08f3..000000000
--- a/topologies/datacenter/labguides/source/cvp-mlag.rst
+++ /dev/null
@@ -1,110 +0,0 @@
-MLAG
-====
-
-.. note:: For more details on the configuration we will apply to Leaf4, check out the UCN MLAG Lab.
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-
-1. Log into CloudVision and find Leaf3 on the **Devices** page.
-
- 1. The username to access CloudVision is ``arista`` and the password is ``{REPLACE_PWD}``
-
- 2. Search for ``Leaf3`` in the **Device** column of the inventory table.
-
- .. image:: images/cvp-mlag/mlag-leaf3-inventory-table.png
- :align: center
- :width: 50 %
-
- 3. Click on ``Leaf3``.
-
-2. View the MLAG status for Leaf3.
-
- 1. Click on the **MLAG** section on the left side navigation bar.
-
- 2. Here we can see details for the fundamental components of our MLAG configuration for **Leaf3** along with each MLAG component's status.
-
- .. image:: images/cvp-mlag/leaf3-mlag-overview-pre.png
- :align: center
- :width: 50 %
-
- 3. Notice that our MLAG status is inactive. This is because we don't have an MLAG configuration in place on Leaf4, Leaf3's peer.
-
-3. To fix this we'll configure MLAG on Leaf4.
-
- 1. Head over to the Network Provisioning section of CloudVision by clicking **Provisioning** at the top of the page.
-
- 2. Find **Leaf4** and right click on its icon. Select ``Manage`` -> ``Configlet``.
-
- .. image:: images/cvp-mlag/leaf4-manage-configlet.png
- :align: center
- :width: 50 %
-
- 3. Search for the Configlet Builder ``Leaf4-MLAG-Lab`` in the search bar, select the configlet, and click **Validate**.
-
- .. image:: images/cvp-mlag/mlag-leaf4-add-configlet.png
- :align: center
- :width: 50 %
-
- 4. On the **Validate and Compare** page, CloudVision uses all of the configlets applied to the device to create a Designed Configuration. It then compares this Designed Configuration to the Running Configuration on the device. If everything looks good, click **Save**.
-
- .. image:: images/cvp-mlag/mlag-leaf4-validate-and-compare.png
- :align: center
- :width: 50 %
-
- 5. We now have a pending action. You can optionally view this pending action by clicking **Preview**. Click **Save** once more to create a task.
-
- .. image:: images/cvp-mlag/mlag-leaf4-pending-task.png
- :align: center
- :width: 50 %
-
- 6. Head over to the **Tasks** section in **Provisioning** by clicking **Tasks** on the left side bar.
-
- 7. Select our recently created task for Leaf4 and click 'Create Change Coontrool'.
-
- .. image:: images/cvp-mlag/leaf4-mlag-create-cc.png
- :align: center
- :width: 50 %
-
- 8. Here we can review, approve, and execute the configuration update change control. Click **Review** toward the right side to confirm the changes we are about to push.
-
- .. image:: images/cvp-mlag/leaf4-mlag-cc.png
- :align: center
- :width: 50 %
-
- 9. If the changes look good, click **Approve**.
-
- .. image:: images/cvp-mlag/leaf4-mlag-cc-review.png
- :align: center
- :width: 50 %
-
- 10. The **Review** button has now changed to an **Execute** button. Click **Execute** to execute the change control.
-
- .. image:: images/cvp-mlag/leaf4-mlag-cc-execute.png
- :align: center
- :width: 50 %
-
-4. Once our change control has successfully completed, navigate back to our Device overview page to check out **Leaf3**'s MLAG status.
-
- 1. If you aren't there already, on the Devices page, select **Leaf3** -> **Switching** -> **MLAG**
-
- .. image:: images/cvp-mlag/leaf3-mlag-overview-post.png
- :align: center
- :width: 50 %
-
- 2. Everything should look okay now.
-
- 3. Jump over to **Leaf4**'s MLAG section, we see the everything looks okay too.
-
-5. Log in to Host1 and ping Host2
- .. code-block:: text
-
- ping 172.16.112.202
-
-6. Click **Devices** at the top of the page to navigate back to the main **Devices** page.
- 1. Click **Comparison** on the left side bar.
- 2. At the center of the page, select **Leaf3** for one of our devices and **Leaf4** for the other.
- 3. Here we can compare different metrics for these two devices side by side to see similarities and differences between the two members of this MLAG pair.
-
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/labguides/source/cvp-vxlan.rst b/topologies/datacenter/labguides/source/cvp-vxlan.rst
deleted file mode 100644
index 9dea760f0..000000000
--- a/topologies/datacenter/labguides/source/cvp-vxlan.rst
+++ /dev/null
@@ -1,260 +0,0 @@
-.. # define a hard line break for HTML
-.. |br| raw:: html
-
-
-
-VxLAN
-=====
-
-.. note:: The manually-entered configlet below as part of this lab is equivalent to ``Leaf3-VXLAN-Lab-Full``.
-
-**To access the command line of particular switch, click on that switch or CloudVision in the topology diagram at the top of the lab guide.**
-
-
-1. Log into CloudVision and find **leaf3** on the **Devices** page
-
-* The username to access CloudVision is ``arista`` and the password is ``{REPLACE_PWD}``
-
-* Search for ``leaf3`` in the **Device** column of the **inventory** table.
-
-.. image:: images/cvp-vxlan/leaf3-inventory-table.png
- :align: center
- :width: 50 %
-|br|
-
-* Click on **leaf3**
-|br|
-
-2. Review the current VXLAN information in CVP
-
-* Click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-pre.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** leaf3 currently has no VXLAN configuration
-
-* Click on **Topology** in the navigation bar at the top of the page
-* Click the **Link Overlay** dropdown in the left selection column
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-before.png
- :align: center
- :width: 50%
-|br|
-
-* Click the **VXLANs** selection, also click and view the **VLANs** selection
-* **Note:** You should see VLAN 12 on ``leaf3`` & ``leaf4``
-* **Note:** You should see that ``leaf4`` has both VLAN 12 and VNI 1212 with a dashed line to ``leaf2``
-* **Note:** You should not see VLAN 12 or VNI 1212 as a dashed line from leaf3 to leaf2
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-vlan-before.png
- :align: center
- :width: 50%
-|br|
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-vni-before.png
- :align: center
- :width: 50%
-|br|
-
-3. Create the VXLAN configlet
-
-* Click on **Provisioning**, click on **Configlets** in the left selection column
-* Click the **+** sign in the Configlets list toolbar
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-list.png
- :align: center
- :width: 50%
-|br|
-
-* Create a configlet called ``Leaf3-VXLAN-Lab-Full-user``
-
-.. code-block:: text
-
- !! Configure physical interface et4 and port-channel 4 for host2 in access vlan4
- interface port-channel 4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
- !
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-
- !! Configure a loopback interface to be used with interface vxlan1 for vxlan encapsulation
- interface Loopback1
- ip address 172.16.0.56/32
- !
- interface vxlan 1
- vxlan source-interface loopback 1
- !! Map vlan 12 to vni 1212
- vxlan vlan 12 vni 1212
- !! Send BUM traffic to vtep(s)
- vxlan flood vtep 172.16.0.34
-
-
-* Add the CLI text from above to the new configlet
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet.png
- :align: center
- :width: 50%
-|br|
-
-* Validate configlet syntax on **leaf3**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-validate.png
- :align: center
- :width: 50%
-|br|
-
-4. Assign the VXLAN configlet to **leaf3**
-
-* Click on **Provisioning**, then click on **Network Provisioning** in the left selection column
-* Right click on **leaf3**, Click on **Manage->Configlets** and then search for ``Leaf3-VXLAN``
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-manage.png
- :align: center
- :width: 50%
-|br|
-
-* Click the checkbox next to ``Leaf3-VXLAN-Lab-Full-user``
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-assign.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Validate**, review the new lines added to the **Designed Configuration**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-assign-validate.png
- :align: center
- :width: 50%
-|br|
-
-* click **Save**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-assign-validate-compare.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Save** on the **Network Provisioning** main view
- **Note:** a Task will be generated
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-main-save.png
- :align: center
- :width: 50%
-|br|
-
-5. Create a Change Control with the generated Task
-
-* Click **Tasks** from the left selection column
-
-* Click the checkbox next to the generated task from the pool of **Assignable Tasks**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-task.png
- :align: center
- :width: 50%
-|br|
-
-* Click **+ Create Change Control with 1 Task**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-create-cc.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Review and Approve** on the newly created **Change Control**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-review-approve.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Execute Change Control** in upper right of the UI
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-execute.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Execute** in the resulting confirmation dialog box
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-execute-confirm.png
- :align: center
- :width: 50%
-|br|
-
-6. Verify VXLAN operation with CVP Telemetry
-
-* From **Device** page **Inventory** click on **leaf3**
-* Click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-verification.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** you should now see the VLANs to VNI mappings related the to VXLAN configuration on ``leaf3``
-
-* Ping ``host1`` from ``host2``
-
-.. code-block:: text
-
- host1# ping 172.16.112.201
- PING 172.16.112.201 (172.16.112.201) 72(100) bytes of data.
- 80 bytes from 172.16.112.201: icmp_seq=1 ttl=64 time=0.248 ms
- 80 bytes from 172.16.112.201: icmp_seq=2 ttl=64 time=0.165 ms
- 80 bytes from 172.16.112.201: icmp_seq=3 ttl=64 time=0.181 ms
- 80 bytes from 172.16.112.201: icmp_seq=4 ttl=64 time=0.150 ms
- 80 bytes from 172.16.112.201: icmp_seq=5 ttl=64 time=0.146 ms
-
- --- 172.16.112.201 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 1ms
- rtt min/avg/max/mdev = 0.146/0.178/0.248/0.037 ms, ipg/ewma 0.421/0.211 ms
- host1#
-
-* Again, click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-verification-mac.png
- :align: center
- :width: 50%
-
-* **Note:** In addition to the VLAN to VNI Mappings, you will see an entry in the ``VXLAN MAC Address Table`` section
-
-* Click on the **MAC Address Table** for ``leaf3`` in left selection column
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-verification-mac-table.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** You will see the local MAC Address of Host2 on Port-Channel 4 and the remote MAC Address of Host1 showing port ``Vxlan1``
-
-* Click on **Topology View**
-* Click the **Link Overlay** dropdown in the left selection column
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-before.png
- :align: center
- :width: 50%
-|br|
-
-* Click the **VXLANs** selection, also click and view the **VLANs** selection
-* **Note:** You should see VLAN 12 on ``leaf3`` & ``leaf4``
-* **Note:** You should see that ``leaf4`` has both VLAN 12 and VNI 1212 with a dashed line to ``leaf2``
-* **Note:** You should **now** see VLAN 12 and VNI 1212 as a dashed line from leaf3 to leaf2, indicating VLAN 12 is extended via VNI 1212
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-vlan-after.png
- :align: center
- :width: 50%
-|br|
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-vni-after.png
- :align: center
- :width: 50%
-|br|
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/labguides/source/cvp_cc.rst b/topologies/datacenter/labguides/source/cvp_cc.rst
deleted file mode 100644
index 043ffbb1c..000000000
--- a/topologies/datacenter/labguides/source/cvp_cc.rst
+++ /dev/null
@@ -1,182 +0,0 @@
-CVP Change Control, Telemetry & Rollback
-==========================================
-
-Learn how to use CloudVision’s Change Control. A Change Control (CC) can be associated with one or mores Tasks. CloudVision will take pre and post snapshots when a CC is executed to give us a state to revert back should there be any issues after the change.
-
-Next, the lab will review Telemetry state-streaming information of the change of adding routes and how the routes propagate across the environment.
-
-Lastly, the lab will initiate a Network Rollback to revert the changes that were implemented. The Network Rollback feature can greatly minimize downtime and gives the user the ability to restore the environment to a previous network state quickly.
-
-
-.. note:: Did you know → the “cvp” script is composed of python code that uses the CloudVision Portal Rest API to automate the provisioning of CVP Configlets.
-
-TASK 1: Apply a Configlet Builder to create a group of Tasks
-************************************************************
-
-1. Log into the LabAccess jumpserver:
-
- .. note:: If starting from this lab module, type ``cvp`` at the prompt. The script will configure all devices in the lab so you can complete this lab.
-
- Now we want to add several Loopbacks to each device using a Configlet Builder at the ‘Leaf’ level.
-
-|
-
-.. thumbnail:: images/cvp_cc/cvp_cc_1.gif
- :align: center
-
- Click image to enlarge
-
-|
-
-2. Navigate to the 'Network Provisioning' page under the 'Provisioning' tab.
-
-3. Right click on the 'Leaf' container and select 'Manage' -> 'Configlet'
-
-4. Select the ‘Add_Loopbacks’ from the list of configlets.
-
-5. Select 'Generate' to build a configlet for each device. View the generated configuration by expanding the Proposed Configuration on the right by selecting the '+'
-
-6. Select 'Update' to return to 'Network Provisioning' and select 'Save' at the bottom of the screen. Tasks will be generated and a notification will show next to the 'Tasks' option in the Navigation column. Now that we have Tasks created we can use Change Control feature.
-
-|
-
-.. thumbnail:: images/cvp_cc/cvp_cc_2.gif
- :align: center
-
- Click image to enlarge
-
-|
-
-7. Navigate to 'Change Control' from the Provisioning Tab.
-
-8. Create a new Change Control by clicking the '+ Create Change Control' in the top right.
-
-9. This screen will show pending tasks that will be associated with a Change Control(CC). Select all pending Tasks.
-
-10. First, we need to give the Change Control a name. Click the pencil on the top right to edit the CC name. Name it 'Add_Loopbacks_CC' and hit Enter. Click '+ Create Change Control with 4 Tasks'
-
-11. Next we will create 3 new child stages. Click the '+' on the right side of the screen three times in order to create 3 new stages.
-
-12. Rename the top and bottom stages to 'Before Snapshot' and 'After Snapshot' respectively by clicking the Pencil icon. Name the middle stage 'Configuration Changes'.
-
-13. Next we can select a Snapshot template that we want to run before and after the change. Select the 'Before Snapshot' stage and click 'Add Actions' under the right side menu.
-
-14. Under 'Select action', select 'Snapshot -> Validate_Routing' and 'leaf1', 'leaf2', 'leaf3', and 'leaf4' under 'Select devices to run on', then click 'Add to change control'.
-
-15. Now click and drag each of the four leaf switch tasks to the 'Configuration Changes' task.
-
-16. Repeat step 15, but select 'After Snapshot'. We should now have 2 stages that will take a before and after snapshot of the devices being changed.
-
- .. note::
- A few notes about Change Control:
-
- a. Each Task can be assigned to different stages if wanted. Health checks can be performed in stages before the next stage executes.
-
- b. The order of Task execution can be specified if there are dependencies. This is done by clicking the tasks and selecting the option in the drop-down menu.
-
- c. Each stage can be executed in ‘Series’ or ‘Parallel’ by selecting the action in the drop-down menu.
-
- d. Check the 'Execute Immediatelly' option for a faster change execution.
-
-|
-
-17. For this lab, we now want to execute the CC. First a review and approval will need to take place. Select 'Review and Approve'. Here we can view all of the changes for the tasks, snapshots to be taken, and any other information relative to the change control in order to approve it.
-
-18. Once changes have been reviewed, we can click 'Approve' in the bottom right.
-
-19. Once the change has been approved, we should now have a button that says 'Execute Change Control' in the top right corner. Click this to execute the changes.
-
-20. We will now be prompted with with a confirmation. Click 'Execute' to confirm the CC execution.
-
-21. While the CC executes, we can see the progress of each task as it is executed.
-
-|
-
-.. thumbnail:: images/cvp_cc/cvp_cc_3.gif
- :align: center
-
-Click image to enlarge
-
-|
-
-22. Once the Change Control is successfully completed, we can view and compare the snapshots under 'Devices' -> 'Comparison'
-
-23. To compare the before and after from our CC, select the 'Two times' option to compare two points in time for the same device. Select 'leaf1' from the dropdown menu and click the Quick link for '30 minutes ago'. Then hit 'Compare'.
-
-24. CVP will bring up a variety of views that allows you to compare the state of the device from 30 minutes ago to the current time. Select 'Snapshots' from the left Navigation column.
-
-25. In the 'Comparing Data...' heading, select the first time to bring up a list of optional times to compare the Snapshot from. The top option represents the 'Before Change' Snapshot taken when the Change Control was executed. Select that to see a comparison of the command outputs from before and after the change.
-
-|
-
-TASK 2: View Telemetry
-**********************
-
-
-.. thumbnail:: images/cvp_cc/cvp_cc_4.gif
- :align: center
-
-Click image to enlarge
-
-|
-
-1. Using Telemetry, we can view the routes that were added as part of this change propagate across the environment. One way to view telemetry information is per device in the 'Devices' tab. Navigate to the 'Devices' tab and select 'leaf1' to view detailed information.
-
-2. On the left Navigation column, select 'IPv4 Routing Table' to see a live view of the device's routing table. Using the timeline at the bottom of the screen, you can navigate to any point in time to see what the route table was at that exact moment. You can also see a running list of changes to the routing table on the right.
-
-3. By clicking on the 'compare against 30m ago' link, you can navigate back to the Comparison view of the routing table to see all the routes added in green as part of the Change Control pushed earlier.
-
-4. To view Telemetry information for multiple devices in a common dashboard, select the 'Dashboards' tab.
-
-5. To build a dashboard, click + New Dashboard in the top right of the CVP UI.
-
-6. Under the 'Metrics' heading, click on the Table icon, then click in the new table where it says Click to Configure.
-
-7. Under Metric Source, choose IPv4 Total Route Count under Routing.
-
-8. All devices will be selected by default. Optionally, type `leaf` in the Devices section, and filter by tags, example: Container: Leaf.
-
-9. Once you have selected all the devices they will appear in a preview of the table. Click in the portion of the window that is grayed out to leave this dialog. You will see the devices in the table of the custom dashboard.
-
-10. Next, click the Horizon Graph icon, to add another view to the dashboard.
-
-11. Then, click where it says Click to configure, and add the same devices to this horizon graph view, and add to the dashboard.
-
-12. Now, make sure View Type is Single Metric for Multiple Sources, and Metric Source is Devices. Then, in Metric Data Type, type "route" and choose IPv4 Total Route Count.
-
-13. Then, Click again in the grayed out part of the window. You should now have a table and a horizon graph for IPv4 Total Route Count.
-
-14. Click the pencil icon where it shows "Untitled Dashboard" and give the custom dashboard an appropriate name.
-
-15. Last, click Save in the lower right to save the custom dashboard.
-
-16. You can now use the CVP time slider to view the this custom Dashboard at different points in time and see it change.
-
-|
-
-TASK 3: Rollback
-****************
-
-
-.. thumbnail:: images/cvp_cc/cvp_cc_5.gif
- :align: center
-
-Click image to enlarge
-
-|
-
-1. Initiate a Network Rollback to revert the changes that were implemented. Go to the 'Provisioning -> Change Control' page and find the change control we just executed: 'Add_Loopbacks_CC'.
-
-2. In the top right, click 'Rollback Change'.
-
-3. Here we will select the tasks we wish to roll back. Select all of the tasks for the leafs and click 'Create Rollback Change Control'.
-
-4. We will now have a rollback change control created. The same change control process can be followed as before. Select 'Review and Approve' to see a reflection of the changes that will be executed. Note that the config lines are now red as they will be removed when the Rollback Change is pushed. Select 'Approve' to move to the next step.
-
-5. Hit 'Execute Change Control' to push the change to rollback the configuration of the devices to the previous state.
-
-6. Navigate back to 'Metrics' then the 'Leaf Routing Metrics' dashboard. Select 'Show Last: 5m" in the timeline to see your telemetry reflect in real-time the removal of the IPv4 routes and interfaces.
-
-LAB COMPLETE
-
-|
diff --git a/topologies/datacenter/labguides/source/cvp_configlet.rst b/topologies/datacenter/labguides/source/cvp_configlet.rst
deleted file mode 100644
index f426bf77e..000000000
--- a/topologies/datacenter/labguides/source/cvp_configlet.rst
+++ /dev/null
@@ -1,113 +0,0 @@
-CVP Configlet
-=============
-
-Let’s create a new CloudVision configlet. CloudVision configlets are
-snippets of configuration that are used to create a switch
-configuration.
-
-All of the switches have a base Configlet. Additional Configlets have
-been defined for AAA and VLANs.
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. thumbnail:: images/cvp_configlet/nested_cvp_overview_1.png
- :align: center
-
- Click image to enlarge
-
-|
-
-2. Click on the link "Click Here To Access Topology" and navigate to the below page. Click the CVP link on the left side of the screen.
-
-|
-
-.. thumbnail:: images/cvp_configlet/nested_cvp_landing_1.png
- :align: center
-
- Click image to enlarge
-
-|
-
-1. You will come to a login screen for CloudVision Portal. Enter the username ``arista`` and the password ``{REPLACE_PWD}``
-
-|
-
-.. thumbnail:: images/cvp_configlet/cvp_configlet_1.gif
- :align: center
-
- Click image to enlarge
-
-
-|
-
-1. For this lab, select 'Provisioning -> Configlets' from CloudVision.
-
-2. Click the '+' in the top right and select 'Configlets' to create a new configlet.
-
-3. In the configuration section enter the command information as shown:
-
-
- .. code-block:: text
-
- alias snz show interface counter | nz
-
-
-4. Name the Configlet 'Alias'.
-
-5. The Configlet can be validated against a device to ensure there isn’t a conflict and the configuration is validated. To validate, click the checkbox in the top right section.
-
-6. Once the configuration is validated, Click the 'Save' button to save the Configlet
-
-|
-
-.. thumbnail:: images/cvp_configlet/cvp_configlet_2.gif
- :align: center
-
- Click image to enlarge
-
-|
-
-1. To apply the Configlet, navigate to 'Network Provisioning' and right click on the 'Tenant' container and select 'Manage -> Configlet'.
-
-2. Select the 'Alias' Configlet and click 'Update'. This activity is to simply add a new configlet to the existing configlets applied on the 'Tenant' container. **Do not Remove** existing configlets from the Proposed Configuration section.
-
-
- *\**Expert Tip - Use search bar to find Configlets faster*
-
-
-3. On the 'Network Provisioning' page, Click the 'Save' button to save the changes to the topology.
-
-4. The screen will refresh and a 'T' for task will appear at the right column of each device, representing that tasks have been generated that need to run to push the configuration change.
-
-|
-
-.. thumbnail:: images/cvp_configlet/cvp_configlet_3.gif
- :align: center
-
- Click image to enlarge
-
-|
-
-1. Click 'Tasks' in the left navigation column.
-
-2. Check each Task in the 'Assignable Tasks' section, then click the 'Create Change Control with 9 Tasks' button.
-
- *\**See the 'CVP Change Control, Telemetry & Rollback' lab guide for more information on Change Controls*
-
-
-3. Select 'Review and Approve' in the top right, then 'Approve' in the bottom right to approve the Change Control.
-
-4. Select 'Execute Change Control' in the top right and then 'Execute' to execute the Change Control tasks.
-
-5. When the tasks are completed, navigate into the task by clicking on the task object.
-
-6. Select 'Show Details' icon on the righ side of the screen to review the *Designed Configuration* vs. *Running Configuration*. The Designed Configuration is a combination of all configlets to build a full device configuration. The Running Configuration is the running-config prior to executing the task. Configuration differences are highlighted to show New Lines, Mismatch Lines, and To Reconcile.
-
-|
-
-.. note:: We can see the unchanged configuration by clicking on the down arrows next to the designed configuration.
-
-|
-
- **LAB COMPLETE**
diff --git a/topologies/datacenter/labguides/source/cvp_studios_l3ls_evpn.rst b/topologies/datacenter/labguides/source/cvp_studios_l3ls_evpn.rst
deleted file mode 100644
index e2bd6c5ce..000000000
--- a/topologies/datacenter/labguides/source/cvp_studios_l3ls_evpn.rst
+++ /dev/null
@@ -1,352 +0,0 @@
-.. # define a hard line break for HTML
-.. |br| raw:: html
-
-
-
-.. raw:: html
-
-
-.. role:: red
-
-
-
-*NOTE: Ongoing WIP, document should be treated as early release and incomplete.*
-
-|br|:red:`If you are running the lab from ATD-DEV, disregard the disclaimer below.`
-|br|:red:`Option 8 on the ATD-DEV console will format the hosts.`
-|br|:red:`If running from standard ATD, please ensure you follow the below section.`
-
-
-**To successfully run this lab in the Datacenter ATD, once the environment is up,**
-|br| **do not initalize any of the preset labs, instead follow the steps below:**
-
-
-|br| **1. SSH into Host1 and Host2 and remove the existing port channels.**
-|br| **2. Reconfigure as trunks with interfaces E1-E4 in PO1 for each Host.**
-|br| **3. Create vlan60 and vlan70 with the SVIs as shown.**
-|br| **4. Set a default route to 10.60.60.1**
-
-
-
-===========================================
-CloudVision Studios - L3LS/EVPN LAB GUIDE
-===========================================
-*CVP Version 2021.3.0*
-
-Our topology consists of two spines, four leafs, and two "hosts" for reachability testing.
-Our hosts will be pre-configured as L2 LACP trunk port-channels up to their respective leafs.
-VLAN 60 and 70 will be pre-configured with SVIs on each host for post change reachability testing.
-All underlay addressing will be performed by CVPS.
-
-The hosts are already configured via lab configlets, we will not be involving them in the Studios process.
-
-.. image:: images/cvp_studios_l3ls_evpn/3TOPO.PNG
- :align: center
-
-Let’s open CVP, and get started!
---------------------------------
-
-**1. Workspace Creation**
---------------------------------------------------------------------------------------------
-
-- Navigate to **Provisioning>Studios>Create Workspace**. Name it anything you want.
-
-Once created, let's go to the **"Inventory Studio"**
-
-
-
-.. image:: images/cvp_studios_l3ls_evpn/4WorkspaceIntro.gif
- :align: center
-
-**2. Inventory studio.**
---------------------------------------------------------------------------
-
-- Navigate to **Provisioning>Studios>Inventory and Topology**.
-
-
- NOTE:
- |br| This is where we will tell studios which devices to include, and the studio will know how the physical topology is built.
- |br| This allows the other studios to auto detect links to assign properly for a functional network.
- |br| All of our devices should be there. Ignore anything that isn’t the ``Spines`` or ``Leaf1-4``.
-
-
-- Enter the studio and click the *“add updates”* tab.
-
-
-|br| Now, notice that there are devices in the *“onboarded devices”* section.
-|br| You can enter the device and see how Studios has detected the topology connections.
-
-.. image:: images/cvp_studios_l3ls_evpn/5Inventory.gif
- :align: center
-
-**3. Workspace review**
------------------------
-
-- Click on *“Review Workspace”* on the upper right. This will take us to the *"Workspace Summary"* page to save our inputs for this studio to the staging area for later use.
- |br| Once we hit review, it will run through the checks and tell us if we are good to proceed. You can see in the workspace summary what studios have been modified.
- |br| **In the current CVPS build the build process will only kick off automatically the first time. As we modify other studios, we will manually start this process by clicking "Start Build".**
-
- NOTE:
- |br| You can absolutely make a separate workspace for every studio if you wish, however for this lab we are going to do all this work in the same workspace, because I want to demonstrate how this process builds on itself in our staging area.
-
-
- .. image:: images/cvp_studios_l3ls_evpn/6InventoryBuild.PNG
- :align: center
-
-
-
-**4. Device Tagging**
----------------------
-
-- Go to the Provisioning tab and click *"Tags"* on the lower left
-
-Tagging is used to easily group devices and assign them to a studio.
-Tagging can be done from within a workspace even though it's technically not a studio.
-
-
-
-
-
- .. image:: images/cvp_studios_l3ls_evpn/7tagslocation.PNG
- :align: center
-
-
-There are user tags and tags the system creates using the *"auto tagger"* as we move through our studio configurations.
-|br| Tags are formed in a **label:value format.**
-|br| For this lab, we will be using ``“DC:DC1”`` for all assets in ``DC1``, Let's go ahead and tag our devices now.
-
- NOTE:
- |br| You can use almost any naming convention that makes sense for your use case. Examples are for this lab.
-
-
-
-.. image:: images/cvp_studios_l3ls_evpn/8tagsprocess.gif
- :align: center
-
-Click on **"Review Workspace"** in the upper right and observe that the workspace now shows we have two tag changes.
-
-|br| Now, let's trigger the *“start build”* and allow the build process to complete.
-|br| Let's move on with the lab, we are going to focus on **L3LS** first, then do **EVPN** after.
-
-
-**5. L3LS Studio**
-------------------
-
-- Navigate to the **Provisioning>Studios>L3 Leaf-Spine Fabric** studio.
-
-First, we need to set our tag query to assign our devices.
-|br| Let’s include all devices with the ``DC:DC1`` tag pair. You’ll see the number of devices it finds and their IDs.
-
-
-
-Once the query is complete and you verify all devices are included, let's create our Datacenter.
-|br| In the "Data Centers" section, let's use a value of **"1"** *(this can be a name or an integer, but for the lab let's use the aforementioned value)*
-|br| Once complete, click the arrow to proceed into the configuration.
-
-**Important Tip:**
-|br| **Anytime you see “create” in a field the autotagger is automatically creating a tag for the devices included in the studio. We’ll come back to this later.**
-
-
-
-.. image:: images/cvp_studios_l3ls_evpn/9L3LSPT1.gif
- :align: center
-
-
-
-|br| Now, we need to assign the individual devices from our query, assign the **fabric device roles**, and create our pod.
-|br| The Fabric Device section is critical. Here we will set our **roles** and **ID** numbers. Every Spine and Leaf requires a unique number.
-
-|br| Let’s do this now.
-
-
- Note: The devices in the Fabric Device section will auto fill important sections later in the EVPN Studio.
-
-
-
-
-
-.. image:: images/cvp_studios_l3ls_evpn/10L3LSPT2.gif
- :align: center
-
-Once complete, let's *“Add Pod”*, give it a name of *“1”* then make use of the arrow in the pod field to move on.
-
-Once again, you’ll find we have to manually assign our devices.
-|br| Add the spines first, and you’ll see them automatically get added! Now add the leafs. Once done, we need to make our **leaf domains.**
-|br| A leaf domain can be a pair of switches or a standalone. So in this lab, we need to make two.
-|br| ``Leaf1`` and ``Leaf2`` will be in ``Leaf Domain 1``, and ``Leaf3`` and ``Leaf4`` will be in ``Leaf Domain 2``.
-|br| Let’s do this now.
-
- Note: Leaf Domains must be an integer or the build process will fail.
-
-.. image:: images/cvp_studios_l3ls_evpn/11L3LSPT3.gif
- :align: center
-
-And that’s it!
-
-|br| Our next step is to review the workspace. But before we do that, let's have a good look at the lower section.
-|br| These are all the variables that the topology will be built on. For this lab we’ll leave it all at defaults.
-|br| Also noteworthy are those blue knobs below.
-
-|br| They set BGP dynamic listeners on the Spines,configure the VXLAN Overlay and get the topology ready for EVPN.
-|br| If all you wanted was strictly L3LS as a foundation you could turn off VXLAN/EVPN if you so chose.
-
-.. image:: images/cvp_studios_l3ls_evpn/12L3LSPT4.PNG
- :align: center
-
-Let's start our build! Now remember, we need to manually kick the build off, and if everything went according to plan, we will get three green checks.
-
- Note: Notice the tag changes have increased, and L3 Leaf-Spine Fabric is in the list of modified studios.
-
-.. image:: images/cvp_studios_l3ls_evpn/13L3LSPT5.gif
- :align: center
-
-Success! Now that we have these changes saved to our workspace, let’s work on EVPN, which will pull data from this configuration.
-
-**6. EVPN Studio**
-------------------
-
-- Navigate to the **Provisioning>Studios>EVPN Services** studio.
-
-Once again, we need to add our device query. But seeing as how this is EVPN, our focus is on the leafs.
-|br| Let’s use ``Role:Leaf AND DC:DC1`` as our query, then create our tenant, which we’ll call **“A”**.
-
-.. image:: images/cvp_studios_l3ls_evpn/14EVPNPT1.gif
- :align: center
-
-Then, let’s enter our tenant and set up our VRF, let’s also call this one **“A”**, and enter the configuration.
-|br| The only required entry here is the **VNI**. Your **VNI** can be whatever you want, just ensure it does not conflict with the VNI the VLANS will get auto assigned with (though you can override the VNI on the VLAN page)
-|br| As best practice we will set our **VNI** as **50000**.
-
-
-.. image:: images/cvp_studios_l3ls_evpn/15EVPNPT2.gif
- :align: center
-
-
-Our next step is to create the vlans in the VRF, and assign them to the devices that will carry them.
-|br| We can also use VLAN Aware Bundles if all devices support it *(if you are cross vendor, you might not be able to use bundles)*
-|br| We will configure a VLAN Aware Bundle for this lab in a moment.
-|br| Let’s add ``vlan60`` and ``vlan70``, then configure them. Let’s start with ``vlan60``.
-|br| Enter 60 in the VLAN ID field and enter the configuration. Let's make a name. Let’s call it “PROD” and then set our SVI of **10.60.60.1/24**
-
- Note: The CIDR is required.
-
-|br| Now, let's choose our VRF to ``“A”``, and assign our device assignments. Use ``Role:Leaf AND DC:DC1`` as our search. Enter the vlan area and mark all to “Yes”.
-|br| Repeat with creation of ``vlan70`` with a SVI of **10.70.70.1/24** and description of “PROD2.”
-
- Note:
- |br| Notice how when you add the leafs to the vlan the router_bgp.router_id and router_bgp.as variables auto-filled.
- |br| The studio is pulling this information directly from our information stored from our L3LS studio!
-
-.. image:: images/cvp_studios_l3ls_evpn/16EVPNPT3.gif
- :align: center
-
-
-
-
-
-As the final step of this studio, let's quickly create our vlan aware bundle.
-|br| As our value, let's call it **"BUNDLE”** then enter the configuration.
-|br| Use 60,70 as our vlan range for this example.
-
-.. image:: images/cvp_studios_l3ls_evpn/16.1EVPNPT3.png
- :align: center
-
-We’re done with the EVPN studio! Let’s spin the wheel of build and see how we did. Click review workspace and then start the build.
-
-.. image:: images/cvp_studios_l3ls_evpn/17EVPNPT4.gif
- :align: center
-
-Success! We now have a working L3LS/EVPN topology, but not for the hosts yet. We need to configure the port-channels on the leafs to the hosts below them.
-|br| For that, let’s use the **Interface Configuration Studio** and then we’ll test connectivity across the fabric.
-
-
-**7. Interface Studio**
------------------------
-
-- Navigate to the **'Provisioning>Studios>Interface Configuration”** studio.
-
-Let’s take a look at our topology. The hosts are already pre configured for PO1 on ports ``E1-4`` in LACP. Our yet to be configured Leafs are connected to the hosts on ``E4`` and ``E5``.
-
-.. image:: images/cvp_studios_l3ls_evpn/18-topoforPO.PNG
- :align: center
-
-The hosts are also configured in vlan 60 and 70 with respective SVIs for testing.
-Let’s navigate to our Interface Studio and start our configuration.
-
-Let’s start by adding our search query ``Role:Leaf AND DC:DC1``.
-|br| Then make a profile, let’s call it **“MLAG-PO”**. Let’s make it a **trunk port**, set native VLAN of **“1”**, allow ``vlan60`` and ``vlan70``, and give the PO a number of **"1"**, and check **“yes”** for mlag.
-
-.. image:: images/cvp_studios_l3ls_evpn/19-intstudio1.gif
- :align: center
-
-
-Now, let’s apply our profile to ports ``E4`` and ``E5`` on each leaf pair.
-
-
- .. image:: images/cvp_studios_l3ls_evpn/20-intstudio1.gif
- :align: center
-
-
-Let’s review our workspace so we can kick off a build! Hit “Start Build” and you should get a successful build.
-|br| Once your build is successful, we are going to “Submit Workspace”.
-
- Note:
- |br| As discussed previously, we are going to commit this workspace as a final build to studios.
- |br| Once we submit, this workspace will close out and it cannot be modified.
- |br| However, because our inputs are committed to Studios (the repository) we can open up a new workspace and make/add/remove new changes.
-
-
-Hit “Submit Workspace” to close out and create our Change Control.
-
- .. image:: images/cvp_studios_l3ls_evpn/21-CC1.gif
- :align: center
-
-After the Workspace has been submitted and the Change Control created, you’ll see a *“View Change Control”* option.
-|br| Hit that to be taken to Change Control. Now we are going to *“Review and Approve”* and apply our changes to the network.
-|br| We are going to run these changes in parallel, and execute them immediately.
-|br| Click *“Review and Approve”*. All tasks should complete successfully, and we can move onto the verification part of the lab.
-
-
-
- .. image:: images/cvp_studios_l3ls_evpn/22-CC1.gif
- :align: center
-
-Let’s log into our Spines and run “sh bgp summary” and verify our underlay and overlay BGP adjacencies are “Established” Repeat for Leafs.
-
-SPINES - BGP Summary
-=================================
- .. image:: images/cvp_studios_l3ls_evpn/23-Verification1.PNG
- :align: center
-
-LEAFS - BGP Summary
-=================================
-
- .. image:: images/cvp_studios_l3ls_evpn/23-Verification2.PNG
- :align: center
-
-Now, let’s verify MLAG on our Leafs. On Leafs 1-4 run the **“show mlag”** command and verify all Leafs show as **“Active”** and **“Up-Up.”**
-
-.. image:: images/cvp_studios_l3ls_evpn/24-Verification2.PNG
- :align: center
-
-Now, on Leafs 1 and 3 let's verify our Port-Channel status.
-|br| Run the command **“sh port-channel dense”**
-
- Note: MLAG has an enhancement where the port-channel command will show the status of the port channel across both switches in the pair. See the highlighted section below. (P) shows the status and configuration of the MLAG PortChannel of the local switch as well as the peer.
-
-.. image:: images/cvp_studios_l3ls_evpn/25-Verification2.PNG
- :align: center
-
-Now that we’ve confirmed all our base connectivity, let’s test our fabric and look at some outputs.
-
-
-Let’s start with ``Host1``, and ensure we can ping our gateway at **10.60.60.1**. This should be successful.
-|br| Next, let's ensure we can ping our local SVI at **10.60.60.160**. This should also be successful. Let’s ping across the fabric now in the same vlan, from **.160 to .161.** This should be successful as well.
-
-Do a **“show int vlan 60”** on ``Host1`` and on ``Host2`` and make note of their **mac**. On ``Host1``, do ``“show mac address-table vlan 60”`` and notice ``Host1’s`` mac comes across PO1 and ``Host2’s`` comes across Vx1.
-
-Next, let’s ping inter-vlan from **.160** to **.171**, which should be successful. On ``leaf1``, review the EVPN routing table using **“show bgp evpn“**
-
-
-LAB COMPLETE!
-=============
diff --git a/topologies/datacenter/labguides/source/cvx.rst b/topologies/datacenter/labguides/source/cvx.rst
deleted file mode 100644
index dfd4c17da..000000000
--- a/topologies/datacenter/labguides/source/cvx.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-CVX
-====
-
-.. thumbnail:: images/cvx/nested_cvx_topo_1.png
- :align: center
-
- Click image to enlarge
-
-.. note:: Did you know the CVX stands for CloudVision eXchange? CVX is simply a virtual instance of Arista's EOS known as vEOS. CVX can be run in Standalone mode (Single VM) or Multi-node (up to 3 VMs) cluster.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``vxlan`` at the prompt. The script will configure the datacenter with the exception of Leaf3
-
- 2. On **CVX01**, verify the that CVX is really a vEOS instance:
-
- .. code-block:: text
-
- show version
-
-2. Enable the VXLAN Control Service (VCS) on **CVX01**
-
- 1. On **CVX01**:
-
- .. code-block:: text
-
- configure
- cvx
- no shutdown
-
- service vxlan
- no shutdown
-
- 2. Verify CVX Service is running:
-
- .. code-block:: text
-
- show cvx
-
-3. On **Leaf3**, perform these commands to complete the southbound MLAG to HOST2 and configure the VTEP & loopback1 IP address:
-
- .. code-block:: text
-
- configure
- interface Port-Channel4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
-
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-
- interface Loopback1
- ip address 172.16.0.56/32
-
- interface Vxlan 1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1212
- vxlan controller-client
-
-
-4. On **each** Leaf in the topology, configure CVX controller client and the interface vxlan1
-
- 1. On **Leaf1**, **Leaf2**, **Leaf3**, and **Leaf4**:
-
- .. code-block:: text
-
- configure
- management cvx
- server host 192.168.0.18
- no shutdown
-
- 2. On **Leaf1**, **Leaf2**, & **Leaf4** add the CVX/VCS control place config and also remove the explicit HER flood list VTEPs. Since CVX will create the flood list for us, we don't need to explicit declare it now.
-
- .. code-block:: text
-
- configure
- interface Vxlan 1
- no vxlan flood vtep
- vxlan controller-client
-
- 3. Verify VxLAN controller status on **Leaf1**, **Leaf2**, **Leaf3**, and **Leaf4**:
-
- .. code-block:: text
-
- show vxlan controller status
- show vxlan controller address-table advertised
- show vxlan controller address-table received
-
- 4. Log onto **host1** and ping **host2**:
-
- .. code-block:: text
-
- ping 172.16.112.202
-
-5. Verify that **CVX01** has established connections and is receiving VxLAN advertisements
-
- .. code-block:: text
-
- show cvx connections
- show service vxlan address-table advertised
- show service vxlan address-table received
-
-6. Verify that **CVX01** can view the network topology:
-
- .. code-block:: text
-
- show network physical-topology hosts
- show network physical-topology neighbors
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/labguides/source/day2_operations.rst b/topologies/datacenter/labguides/source/day2_operations.rst
deleted file mode 100644
index 3d3be9e5c..000000000
--- a/topologies/datacenter/labguides/source/day2_operations.rst
+++ /dev/null
@@ -1,355 +0,0 @@
-Day 2 Operations
-========================
-
-If you were recall the earlier presentation, we mentioned Continuous
-Integration and Continuous Development (CI/CD). Now we’re going to show
-you an example.
-
-In this lab we’re going to go from 0-60 pretty quickly and introduce a
-couple of new tools. We’re also going to do things a little bit
-differently - we’re going to action against many switches at the same
-time.
-
-Tools used in this lab
-----------------------
-
-`Git `__\ is
-the most popular version control system. If you are familiar with SVN
-(Subversion) or CVS, it is a more modern and distributed system. Git
-keeps your source code/configurations in a repository (repo) and
-maintains a record of what changed and by whom.
-
-.. note:: Git is an incredibly powerful tool. We’re using shortcuts that
- are specific to this lab. When using Git in production - or even just
- for fun, please make sure that you understand the commands you are
- using. Some Git commands are destructive and irreversible!
-
-`Jenkins `__\ is
-one of the most popular open source automation tools with hundreds of
-plugins for building/deploying/automating pretty much anything. It’s not
-outside the realm of possibility to have it test and push changes to
-your switches and then order you a pizza if it’s successful.
-
-Git commands
-~~~~~~~~~~~~
-
-This lab makes use of a handful of git commands, and the table below
-describes their function:
-
-.. cssclass:: table-hover
-
-+-----------------------------------+-----------------------------------+
-| **Command** | **Description** |
-+-----------------------------------+-----------------------------------+
-| ``git init`` | Initializes an empty git |
-| | repository |
-+-----------------------------------+-----------------------------------+
-| ``git add`` | Adds files to the local git |
-| | repository |
-+-----------------------------------+-----------------------------------+
-| ``git commit`` | Commits the git repository |
-+-----------------------------------+-----------------------------------+
-| ``git remote add origin`` | Adds a remote repository to |
-| | commit to |
-+-----------------------------------+-----------------------------------+
-| ``git push`` | Pushes code to the repository |
-+-----------------------------------+-----------------------------------+
-| ``git reflog`` | The git reflog command lists |
-| | every commit, their checksum, |
-| | their distance from the current |
-| | commit, and the commit message. |
-+-----------------------------------+-----------------------------------+
-| ``git revert`` | Reverts the local repository to a |
-| | previous commit |
-+-----------------------------------+-----------------------------------+
-
-Making a change
----------------
-
-Our tried and true “add a VLAN” task is back in full force for this lab,
-but with a twist. We’re going to set up the usual suspects - a hosts
-file and a playbook, but this time we’re going to use group variables as
-well. Group variables are similar to the variables defined within your
-playbook in Lab #4 and Lab #5, but can be consumed by a group of hosts
-and not just the target of the play.
-
-This is particularly useful for things like adding a VLAN where you
-typically want to add the VLAN to multiple devices at a same time.
-
-Write it
-~~~~~~~~
-
-This lab is broken into steps.
-
-Step #1: Hosts File
-^^^^^^^^^^^^^^^^^^^
-
-Let’s start out with a different looking hosts file, this time with
-every one of your leaf switches in it. Take special note of ``[leafs]`` -
-we’ll be using this later.
-
-Open the **Programmability IDE**, and create the file below:
-
-.. code-block:: ini
-
- [leafs]
- 192.168.0.12
- 192.168.0.13
- 192.168.0.14
- 192.168.0.15
-
-**Save** the file with the name ``hosts`` into the ``/home/coder/project/labfiles/lab6/lab`` folder.
-
-.. note:: You will notice that there are existing files and folders.
- Please don’t overwrite anything for this lab.
-
-Step #2: Playbook
-^^^^^^^^^^^^^^^^^
-
-The playbook is different from the other labs; we’re going to call a
-pre-created role that is provided by Arista on \ `Ansible
-Galaxy `__\ .
-
-Ansible Galaxy is a website where individuals and organizations can
-freely share their roles with each other. In this case, we’ll be using
-the ``arista.eos.eos_vlans`` module from the ``arista.eos`` Ansible Collection to add VLANs.
-
-In the **IDE**, create the file below:
-
-.. code-block:: ini
-
- - hosts: leafs
- connection: local
- tasks:
- - name: Create vlans
- arista.eos.eos_vlans:
- config:
- - vlan_id: "{{ item.vlanid }}"
- name: "{{ item.name }}"
- state: replaced
- loop: "{{ vlans }}"
-
-
-Save the file with the name ``vlan.yml`` into the ``/home/coder/project/labfiles/lab6/lab`` folder.
-
-Step #3: Group Variables
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-Now we’re really going to mix it up a bit. In previous labs, we
-used ``vars:`` and only actioned against a single host. This time around,
-we’re going to be using what are called group variables. Group variables
-are used for groups of hosts and not individuals.
-
-Remember how in the hosts file above we started with ``[leafs]``? If we
-create a group variable file named ``leafs.yml``, Ansible will automagically
-use it for the hosts listed below ``[leafs]``!
-
-Some more things to know about the file below:
-
-#. Notice that we’re using the Ansible Collections methodology and approach for this lab.
-#. ``vlans``, ``vlan_id``, and ``name`` are what the ``arista.eos.eos_vlans`` collections module take as an
- input. If you want to see every module and variable that the collection can use, see
- the \ `readme for the
- role `__\ .
-
-In the **IDE**, and create the file below:
-
-.. code-block:: ini
-
-
- ansible_connection: ansible.netcommon.httpapi
- ansible_httpapi_use_ssl: True
- ansible_httpapi_validate_certs: False
- ansible_network_os: arista.eos.eos
- ansible_user: arista
- ansible_password: {REPLACE_PWD}
- vlans:
- - vlanid: 1001
- name: default
-
-
-Save the file with the name ``leafs.yml`` into
-the ``/home/coder/project/labfiles/lab6/lab/group_vars`` folder.
-
-Step #4: Jenkins
-^^^^^^^^^^^^^^^^
-
-Go back to the ATD web landing page, and click on the **Jenkins** link:
-
-Once Jenkins has loaded, click on the **Login** link for access with:
-
-Username: ``arista`` Password: ``{REPLACE_PWD}``
-
-.. image:: images/day2/nested_jenkins_1.png
- :align: center
-
-|
-
-Jenkins will open in a new tab. Click on **New Item** in the top left of
-the window.
-
-You will be greeted with a screen like the one below. Enter **vlan** as the
-name and select **Freestyle project**.
-
-.. image:: images/day2/nested_jenkins_2.png
- :align: center
-
-Click **OK**.
-
-Now comes the fun part.
-
-Under **Source Code Management**, check **Git** and
-enter ``/opt/labfiles/lab6/repo`` in the **Repository URL** field.
-
-.. note:: You will see a warning, ignore it for now.
-
-Scroll down to **Build Triggers**, and check **Poll SCM**. Poll SCM will poll for
-changes in Git and trigger a build from it.
-
-.. note:: This is a crucial aspect of continuous delivery - once a change is made, this is the part that deploys it.
-
-In the **Schedule** field, enter in:
-
-.. code-block:: html
-
- * * * * *
-
-If you are familiar with Linux cron, this is the same format - it’s
-telling Jenkins to check every 1 minute for a change.
-
-Scroll down to **Build** and click on **Add build step**. Select **Invoke Ansible Playbook**.
-
-For **Playbook path**, enter ``vlan.yml``. Select **File** or **host list** and enter
-in ``hosts``.
-
-Click **Save**.
-
-Step #5: Git
-^^^^^^^^^^^^
-
-We have to commit our changes into a Git repository for Jenkins to
-detect a change and run our playbook. Let’s go back to our **IDE** and run
-a few of quick commands for our initial commit.
-
-Open a **terminal** window and type:
-
-.. code-block:: bash
-
- cd ~/project/labfiles/lab6/lab
-
-First we will need to prep our "remote" git repository. Type the following command:
-
-.. code-block:: bash
-
- git init --bare /home/coder/project/labfiles/lab6/repo
-
-Now enter the following:
-
-.. code-block:: bash
-
- git init
- git add .
- git commit -m "Initial commit"
- git remote add origin /home/coder/project/labfiles/lab6/repo
- git push origin master
-
-Run it
-~~~~~~
-
-Phew, that was a lot of setup! Fortunately. unlike previous labs we’re
-not going to be running this one by hand - that wouldn’t be CI/CD! We’re
-going to use Jenkins to run the playbook.
-
-At a high level, the workflow of the “Run it” part of the lab looks like
-this:
-
-.. image:: images/day2/nested_jenkins_3.png
- :align: center
-
-Let’s start with Step 1.
-
-Step #1: Add a VLAN to the variables file
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Open the ``leafs.yml`` variables file in the **IDE**.
-
-Add the following highlighted lines directly below the existing text:
-
-.. code-block:: ini
-
- vlans:
- - vlanid: 1001
- name: default
- - vlanid: 2000
- name: production
- - vlanid: 3000
- name: development
-
-**Save** the file.
-
-Step #2: Add the file to the Git commit and push it
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Now, let’s add the file into Git commit and push it.We’re going to need
-to act somewhat quickly here if you want to see it run, so get ready!
-
-In the **terminal** window, type:
-
-.. code-block:: bash
-
- cd ~/project/labfiles/lab6/lab
-
-Now enter the following:
-
-.. code-block:: bash
-
- git add .
- git commit -m "Added VLAN 2000 and 3000"
- git push origin master
-
-Quickly, open Jenkins!
-
-Step #3: Jenkins
-^^^^^^^^^^^^^^^^
-
-Depending on how fast you were able to switch to Jenkins, you will see
-different things. If you were quick, you will see this:
-
-.. image:: images/day2/nested_jenkins_4.png
- :align: center
-
-See the **vlan** build running? No worries if you weren’t able to see it,
-Jenkins keeps a history - handy for when you want to see how things
-went.
-
-From the main screen, click on **vlan**:
-
-.. image:: images/day2/nested_jenkins_5.png
- :align: center
-
-On the left hand side, click on the latest build which should be **#3**, but
-could be a higher or lower number.
-
-.. image:: images/day2/nested_jenkins_6.png
- :align: center
-
-In the left hand menu, click **Console Output**. Scroll all the way to the
-bottom to see:
-
-.. code-block:: html
-
- PLAY RECAP *********************************************************************
- 192.168.0.12 : ok=7 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
- 192.168.0.13 : ok=7 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
- 192.168.0.14 : ok=7 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
- 192.168.0.15 : ok=7 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
-
-Woot, sweet success!
-
-Step #4: Switches are configured
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Now, for the final step log into a couple of the leaf switches. Notice
-the VLANs are there. Pretty cool, huh?
-
-You can do this for 1 or 1000 switches using this playbook.
diff --git a/topologies/datacenter/labguides/source/eapi.rst b/topologies/datacenter/labguides/source/eapi.rst
deleted file mode 100644
index c40c2f2b9..000000000
--- a/topologies/datacenter/labguides/source/eapi.rst
+++ /dev/null
@@ -1,181 +0,0 @@
-eAPI
-====
-
-This lab will walk you through using eAPI through Python. As mentioned
-in the previous lab and the presentation, eAPI works through JSON
-requests and responses. Fortunately, Python has a module that can handle
-that easily!
-
-If you haven’t used Python before, don’t worry! We will break down the
-first script to explain how it works, and what it’s doing.
-
-The scripts below leverage ``show`` commands, but you can easily modify them
-to issue configuration commands as well - just use what you learned in
-the previous lab to do that.
-
-.. note:: While Arista switches have a fully functional Python
- installation, please make sure to use the lab VM for the scripting part of this lab.
-
-Your very first script
-----------------------
-
-For the first script, we are going to issue ``show version`` to the switch,
-and then print the output.
-
-.. warning:: Please do not start writing this script until you get to the
- next section
-
-The script is the same as in the presentation you just saw:
-
-.. code-block:: python
-
- #!/usr/bin/env python3
-
- from jsonrpclib import Server
- import ssl
-
- ssl._create_default_https_context = ssl._create_unverified_context
-
- switch = Server ("https://arista:{REPLACE_PWD}@192.168.0.12/command-api")
-
- response = switch.runCmds( 1, ["show version"] )
-
- print(response)
-
-Let’s break down the script into individual pieces:
-
-**#!/usr/bin/env python3** - this is called a shebang (no, we didn’t make this
-up!). A shebang instructs the operating system what to use to run the
-script. In this case, python!
-
-**from jsonrpclib import Server** - this imports the Python
-submodule ``Server`` from the module ``jsonrpclib``. A Python module extends the
-capability of Python by adding additional functionality. There are
-Python modules for pretty much everything!
-
-**import ssl**- this imports the Python ``ssl`` module.
-
-**ssl._create_default_https_context = ssl._create_unverified_context** - This command is used to ignore
-self-signed certificates within this lab.
-
-**switch = Server ( "https://arista:{REPLACE_PWD}@192.168.0.12/command-api")**
-this instantiates a variable - ``switch`` - and uses the ``Server`` submodule
-imported previously to create a connection to the switch. Note that it
-uses standard username/password formatting to make the connection.
-
-**response = switch.runCmds( 1, ["show version"] )** - instantiates a
-variable called ``response`` - that uses the previously
-created ``switch.runCmds`` variable to run commands. This is where it starts
-getting interesting.
-
-Once we create the ``switch`` connection, ``runCmds`` is the method provided by
-theswitch’s JSON-RPC interface which allows us to run commands against
-it. As a part of ``runCmds``, we also expect an API version (1) and the
-command itself, in this case ``show version``.
-
-If you rewind and go back to the Command API Explorer, you would see
-that in the **Request Viewer** pane:
-
-.. image:: images/eapi/eapi_1.png
- :align: center
-
-Note the ``method``, ``cmds``, and ``version`` keys!
-
-.. note:: The other values, such as format, timestamps, and id are
- defaults and do not need to be specified in your request.
-
-**print(response)** - finally, we print the ``response`` variable to screen.
-
-Write it
-~~~~~~~~
-
-Now that’s out of the way, it’s time to actually write the code! Connect to
-the **Programmability IDE** service. This IDE is running VS Code. If prompted for a password, enter in your
-lab password: ``{REPLACE_PWD}``
-
-.. image:: images/eapi/nested_eapi_ide_1.png
- :align: center
-
-
-To start writing our first script, click on ``New file`` to open a new file. Then start typing in the code from above.
-Alternatively, if you’d just like to paste in the code, you can copy and paste it right into VS Code by pressing:
-
-**Ctrl+v** on Windows
--- or --
-**Cmd+v** on Macs.
-
-
-Once done, save the file to your project directory.
-
-``/home/coder/project/labfiles/show_version.py``
-
-Run it
-~~~~~~
-
-Now, let’s run it! Within the IDE, you can use any of the following to open a **Terminal** window:
-
-**Ctrl+Shift+`**
-
-Open it via the IDE Menus.
-
-.. image:: images/eapi/nested_eapi_ide_2.png
- :align: center
-
-A terminal window will open. Run your script by entering:
-
-.. code-block:: bash
-
- python3 labfiles/show_version.py
-
-If this doesn’t work, make sure you replaced ``show_version.py`` with
-the filename of the script you saved above!
-
-.. note:: For the more Linux savvy folks, you might wonder why we’re
- calling Python directly instead of relying on the aforementioned
- shebang (``#!/usr/bin/env python3``) - if you want to make the file executable
- go for it!
-
-.. image:: images/eapi/nested_eapi_ide_3.png
- :align: center
-
-Woohoo - check out that JSON!
-
-
-Advanced
---------
-
-So that was cool and all, but if you want to take it one step further,
-check out the following script - this time we’re taking the output and
-doing something with it:
-
-.. code-block:: python
-
- #!/usr/bin/env python3
-
- from jsonrpclib import Server
- import ssl
-
- ssl._create_default_https_context = ssl._create_unverified_context
-
- switch = Server ("https://arista:{REPLACE_PWD}@192.168.0.12/command-api")
-
- response = switch.runCmds( 1, ["show version"] )
-
- print("The switch model name is " + response[0]["modelName"] + " and it is running " + response[0]["version"])
-
-There are plenty of other possibilities here. Think about your day to
-day operations and things that you have to do frequently that take a lot
-of time, but are tedious and error prone. Any Python script that can be
-run against one switch can be run against many more. Adding a VLAN to
-every switch in your datacenter might just involve providing a list of
-switch hostnames or IP addresses, a VLAN ID, and a name and your script
-will do it all for you!
-
-Another script idea is tracing a MAC across your network until you find
-the physical port it’s connected to. The possibilities are only limited
-by your imagination.
-
-Bonus
------
-
-Print the response of ``show version`` using `PrettyPrint `__\ .
diff --git a/topologies/datacenter/labguides/source/gnmi.rst b/topologies/datacenter/labguides/source/gnmi.rst
deleted file mode 100644
index 88eb6bb12..000000000
--- a/topologies/datacenter/labguides/source/gnmi.rst
+++ /dev/null
@@ -1,298 +0,0 @@
-Openconfig gNMI Lab
-===================
-.. thumbnail:: images/gnmi/gnmi-cvp-streaming.png
-
-.. thumbnail:: images/gnmi/gnmi-eos-streaming.png
-
-Summary
--------
-This lab will walk a user through connecting to both a Arista EOS device and a Arista CloudVision instance to test streaming telemetry of common metrics all through a standard Openconfig streaming interface known as gNMI. These simply scratch the surface of what is available. More complex and better examples are maintained by Arista on the open management page. Examples will be using the gNMIC binary.
-
-Lab changes for gNMIC that need to be made prior to this lab.
--------------------------------------------------------------
-
-**Per switch the following needs to be added.**
-
-.. Note:: You can save some time by adding these lines to the existing intrastructure configlet, since the Terminattr change below is within this configlet. Feel free to create a new gNMI configlet if you prefer.
-
-.. code-block:: bash
-
- management api gnmi
- transport grpc default
- provider eos-native
- !
- management api models
- provider aft
- ipv4-unicast
- Ipv6-unicast
-
-**management api gnmi** - This command turns on the gNMI service which is needed for gNMI
-
-**management api models** - This command turns on airstream /streaming route tables through gNMI
-
-|
-
-**Terminattr changes.**
-
-.. code-block:: bash
-
- daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvgnmi
- no shutdown
-
-.. note::
- Notice the -cnmi flag at the end. This is the flag that tells Terminattr to tunnel its openconfig traffic to CVP. For example, it will stream all of its Openconfig traffic gNMI through Terminattr so it is accessible via CVP as well.
-|
-Installation of gNMIC
- To install gNMIC we will first need to go to the Programmability IDE and open a new terminal. We do this once we are within the IDE by clicking the 3 line menu in the upper left > Terminal > New Terminal.
-
-.. thumbnail:: images/gnmi/gNMI-terminal.png
- :width: 75%
-|
-Once in the terminal we simply need to install the binary by the following one liner command.
-
-.. code-block:: bash
-
- bash -c "$(curl -sL https://get-gnmic.kmrd.dev)"
-
-
-To verify installation issue a which gnmic.
-
-.. code-block:: bash
-
- ➜ project which gnmic
- /usr/local/bin/gnmic
-
-Connecting to an EOS device.
-----------------------------
-
-Capabilities
- To test what the device is capable of ie which YANG models are currently supported and which encapsulations are available we will need to show the capabilities. In this task we will check to see the capabilities of leaf1.
-
-.. code-block:: bash
-
- gnmic -a 192.168.0.12:6030 -u arista -p password --insecure capabilities
-
-
-Truncated response
-
-.. code-block:: bash
-
- gNMI version: 0.7.0
- supported models:
- - openconfig-platform-port, OpenConfig working group, 0.4.2
- - openconfig-platform-transceiver, OpenConfig working group, 0.8.0
- - arista-bfd-augments, Arista Networks , 1.0.4
- - ietf-yang-metadata, IETF NETMOD (NETCONF Data Modeling Language) Working Group,
- - openconfig-segment-routing-types, OpenConfig working group, 0.2.0
-
-Get
----
-A get request within gNMI is a good way to get a one way communication of a specific gNMI path. For example, if we want to get Ethernet's current status we would issue the following.
-
-.. code-block:: bash
-
- gnmic -a 192.168.0.12:6030 -u arista -p password --insecure get --path \
- "/interfaces/interface[name=Ethernet1]/state/oper-status"
-
-
-
-**Response**
-
-.. code-block:: bash
-
- [
- {
- "source": "192.168.0.12:6030",
- "timestamp": 1653401690344274357,
- "time": "2022-05-24T14:14:50.344274357Z",
- "updates": [
- {
- "Path": "interfaces/interface[name=Ethernet1]/state/oper-status",
- "values": {
- "interfaces/interface/state/oper-status": "UP"
- }
- }
- ]
- }
- ]
-
-To get all possible paths within gNMI we would issue the following command.
-
-.. code-block:: bash
-
- gnmic -a 192.168.0.12:6030 -u arista -p password --insecure get --path /
-
-Subscribe
----------
-
-The most powerful portion of gNMI and Openconfig is the ability to subscribe to a specific path. The most common path to subscribe to would be all interface counters.
-
-.. code-block:: bash
-
- gnmic -a 192.168.0.12:6030 -u arista -p password --insecure subscribe --path \
- "/interfaces/interface/state/counters"
-
-**Truncated output of stream.**
-
-.. code-block:: bash
-
- {
- "source": "192.168.0.12:6030",
- "subscription-name": "default-1653401885",
- "timestamp": 1653401886216521708,
- "time": "2022-05-24T14:18:06.216521708Z",
- "updates": [
- {
- "Path": "interfaces/interface[name=Ethernet2]/state/counters/in-octets",
- "values": {
- "interfaces/interface/state/counters/in-octets": 424932
- }
- }
- ]
- }
- {
- "source": "192.168.0.12:6030",
- "subscription-name": "default-1653401885",
- "timestamp": 1653401886216521708,
- "time": "2022-05-24T14:18:06.216521708Z",
- "updates": [
- {
- "Path": "interfaces/interface[name=Ethernet2]/state/counters/in-multicast-pkts",
- "values": {
- "interfaces/interface/state/counters/in-multicast-pkts": 3310
- }
- }
- ]
- }
-
-The stream will run endlessly until the user cancels it by pressing ctrl+c. You can subscribe to any path within EOS.
-
-Subscribe to the routing tables.
-
-.. code-block:: bash
-
- gnmic -a 192.168.0.12:6030 -u arista -p password --insecure subscribe --path \
- "/interfaces/interface/state/counters"
-
-**Truncated output of stream.**
-
-.. code-block:: bash
-
- {
- "source": "192.168.0.12:6030",
- "subscription-name": "default-1653402161",
- "timestamp": 1653402062845675336,
- "time": "2022-05-24T14:21:02.845675336Z",
- "prefix": "network-instances/network-instance[name=default]/afts/ipv4-unicast/ipv4-entry[prefix=192.168.0.0/24]/state",
- "updates": [
- {
- "Path": "next-hop-group",
- "values": {
- "next-hop-group": 4294967297
- }
- },
- {
- "Path": "origin-protocol",
- "values": {
- "origin-protocol": "openconfig-policy-types:DIRECTLY_CONNECTED"
- }
- },
- {
- "Path": "prefix",
- "values": {
- "prefix": "192.168.0.0/24"
- }
- }
- ]
- }
-
-
-Press crtl+c to stop the stream.
-
-If you'd like to see the administrative status of an interface change in real time, you can use the GET command we used above, but replace "get" with "subscribe". The command should look like this:
-
-.. code-block:: bash
-
- gnmic -a 192.168.0.12:6030 -u arista -p password --insecure subscribe --path \
- "/interfaces/interface[name=Ethernet1]/state/oper-status"
-
-
-Once you've run this command, open an SSH session to leaf1 and shutdown Ethernet1. The change is reflected instantly in gNMI.
-
-
-Connecting to CVP For device telemetry.
----------------------------------------
-
-**Intro for CVP**
-
-The same gNMI service that we use for EOS we are able to move to CVP. In the use case of CVP we use the Path Target field to distinguish between different EOS devices. For example, every outgoing request of gNMI stream we have to embed the serial or deviceID of the EOS device to stream data from it. This offers the tremendous advantage of talking simply only to CVP for all of the devices we want to stream device telemetry for versus going to every device individually.
-
-Get a token
- Since CVP does not use a username/password for the gNMI service a service account and token are required. On the **Settings gear** in the upper right hand corner click on that. Then on the left click under **Service Accounts.**
-
-.. thumbnail:: images/gnmi/gnmi-serviceaccount1.png
-
-|
-
-Click **+ Add Service Account.** Service Account name **test** Description **test**. Roles **network-admin**. Status **Enabled**.
-
-
-.. thumbnail:: images/gnmi/gnmi-serviceaccount2.png
-
-|
-
-Click **Add**. Now create a token for test. Click **test**.
-
-.. thumbnail:: images/gnmi/gnmi-serviceaccount3.png
-|
-Under the **Generate Service Account Token** section, give your token a description, Select a date in the future for valid Until.
-Click **Generate**.
-
-Copy the token to somewhere like your text editor. For example, my token is as follows.
-eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJkaWQiOjcwNjA4OTkyMTQ5ODQ3NDEwMDQsImRzbiI6InRlc3QiLCJkc3QiOiJhY2NvdW50IiwiZXhwIjoxNjU1OTk1NDA1LCJpYXQiOjE2NTM0MDM1MTIsInNpZCI6IjQxMDQ3MzYyMDAzZmFkY2RkZWEyOTlhMGQ5NTMxOGUwYTQ5NjRiNzg4YzFmYzI2YTJlYmM2ZGJmZWMwNjM4ODQtMkZmOG40eEtubE5JZ19tS2J3Y0VHQzhLOWxFZ3lYYUY0SFVtOUpMWiJ9.SxrLU2rMNUQteqTtrfZaRye35z2OvxbK-S-wTtmDmLt8uZzEdK9i7uxOBFTYKT97w7DQY1SnRr2M1nZT0e5yxhKm-joDfzCpfZZE2WLsPszqozYrOZYgOms3vO3_oJH-_VaEj_J_dpAKTCfM7m2aBv62SfiOzXBBOx_CjqOQvJHKZPDQLUlJMtO7MiCdStRs2WxVleJrhiLjTvYy8qlRP4Od2OhSgnaRvW6S8optXO9DWMhadhmzDQvzXcYMl3JCFtDo4v_ae3SaiUvhh_j8itBjikaYyoZyNxhCxDEsh47fCYMyJGF7bhZN53UCq9mzXou-fMVD_lELKw-l2MIUQVyzFdTvuhc8cOUsrud1aYfL8vubB_s6F_rIE5p5Atj43Uy3hXz-gpZcUfbZRVUWEold44CrVJyjscVkcjdBlPCKsBvQ6EBCx-BcHjNci4r3ADPcyQuyLcch1BSphhIUjkv451FPOY82TsraGxmbomjZ1OWAI9T_9B5OR1ERKSLKlmJQXL2izk7lnfCz2C9YOW5NMFC_FFT4EPV58K9Mk1Phhfv1Gtclu4iFZHdNUwS63FJbbww5xvs5ZioHAfUqqqgjyCpcwpK73ZNhHLsS858Tcpa3msDdpY9fLAj2P8Fz0rZuZkHzw1-OPoDJtWaiBWbX3vfZ1gDelSyok_5Kk4Y
-
-Click **okay**.
-
-|
-
-**Subscribe to leaf1’s interface counters.**
-
-First we need to create an environmental variable for the token. Let's go back to Programmability IDE and run the following, pasting your own token value on the **export TOKEN** line
-
-.. code-block:: bash
-
- export TOKEN=
- gnmic -a 192.168.0.5:443 subscribe --path "openconfig:/interfaces/interface/state/counters" --token=$TOKEN --target=leaf1 --skip-verify
-
-In this example, we are asking CVP to subscribe to the path of interface state counters using our Token for the target of leaf1. If this is tested against a device that is not standard cEOS it is typically going to be the devices serial number.
-
-Truncated output
-
-.. code-block:: bash
-
- {
- "source": "192.168.0.5:443",
- "subscription-name": "default-1653404149",
- "timestamp": 1653402066603530716,
- "time": "2022-05-24T14:21:06.603530716Z",
- "target": "leaf1",
- "updates": [
- {
- "Path": "interfaces/interface[name=Ethernet4]/state/counters/in-fcs-errors",
- "values": {
- "interfaces/interface/state/counters/in-fcs-errors": 0
- }
- },
- {
- "Path": "interfaces/interface[name=Ethernet4]/state/counters/in-unicast-pkts",
- "values": {
- "interfaces/interface/state/counters/in-unicast-pkts": 0
- }
- }
-
-Press ctrl+c to stop the stream of data.
-
-
-
-
diff --git a/topologies/datacenter/labguides/source/images/ansible_adhoc/nested_adhoc_1.png b/topologies/datacenter/labguides/source/images/ansible_adhoc/nested_adhoc_1.png
deleted file mode 100644
index c6fe4ee9a..000000000
Binary files a/topologies/datacenter/labguides/source/images/ansible_adhoc/nested_adhoc_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/ansible_adhoc/nested_adhoc_2.png b/topologies/datacenter/labguides/source/images/ansible_adhoc/nested_adhoc_2.png
deleted file mode 100644
index 81271ad66..000000000
Binary files a/topologies/datacenter/labguides/source/images/ansible_adhoc/nested_adhoc_2.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/arista_logo.png b/topologies/datacenter/labguides/source/images/arista_logo.png
deleted file mode 100644
index ae141f37e..000000000
Binary files a/topologies/datacenter/labguides/source/images/arista_logo.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/command_api/commandapi_4.png b/topologies/datacenter/labguides/source/images/command_api/commandapi_4.png
deleted file mode 100644
index 3eb58f0c5..000000000
Binary files a/topologies/datacenter/labguides/source/images/command_api/commandapi_4.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/command_api/nested_connecting_1.png b/topologies/datacenter/labguides/source/images/command_api/nested_connecting_1.png
deleted file mode 100644
index a15f53156..000000000
Binary files a/topologies/datacenter/labguides/source/images/command_api/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/command_api/nested_eos_1.png b/topologies/datacenter/labguides/source/images/command_api/nested_eos_1.png
deleted file mode 100644
index 9b6387540..000000000
Binary files a/topologies/datacenter/labguides/source/images/command_api/nested_eos_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/command_api/nested_firefox_1.png b/topologies/datacenter/labguides/source/images/command_api/nested_firefox_1.png
deleted file mode 100644
index 2164b2ace..000000000
Binary files a/topologies/datacenter/labguides/source/images/command_api/nested_firefox_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/command_api/nested_firefox_2.png b/topologies/datacenter/labguides/source/images/command_api/nested_firefox_2.png
deleted file mode 100644
index 5fa1ec7a0..000000000
Binary files a/topologies/datacenter/labguides/source/images/command_api/nested_firefox_2.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/connecting/nested_connecting_1.png b/topologies/datacenter/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/datacenter/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/connecting/nested_connecting_2.png b/topologies/datacenter/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/datacenter/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/connecting/nested_connecting_3.png b/topologies/datacenter/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/datacenter/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_1.gif b/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_1.gif
deleted file mode 100644
index e476bddbc..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_1.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_2.gif b/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_2.gif
deleted file mode 100644
index b3a584097..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_2.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_3.gif b/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_3.gif
deleted file mode 100644
index 1961ca105..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_3.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_4.gif b/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_4.gif
deleted file mode 100644
index b2dfbbaaa..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_4.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_5.gif b/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_5.gif
deleted file mode 100644
index 76b1b9bac..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_cc/cvp_cc_5.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_configlet/cvp_configlet_1.gif b/topologies/datacenter/labguides/source/images/cvp_configlet/cvp_configlet_1.gif
deleted file mode 100644
index 7e156b3f4..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_configlet/cvp_configlet_1.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_configlet/cvp_configlet_2.gif b/topologies/datacenter/labguides/source/images/cvp_configlet/cvp_configlet_2.gif
deleted file mode 100644
index e3844bf6e..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_configlet/cvp_configlet_2.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_configlet/cvp_configlet_3.gif b/topologies/datacenter/labguides/source/images/cvp_configlet/cvp_configlet_3.gif
deleted file mode 100644
index ce1ac07fc..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_configlet/cvp_configlet_3.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_configlet/nested_cvp_landing_1.png b/topologies/datacenter/labguides/source/images/cvp_configlet/nested_cvp_landing_1.png
deleted file mode 100644
index 9ee70ef15..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_configlet/nested_cvp_landing_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_configlet/nested_cvp_overview_1.png b/topologies/datacenter/labguides/source/images/cvp_configlet/nested_cvp_overview_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_configlet/nested_cvp_overview_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/10L3LSPT2.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/10L3LSPT2.gif
deleted file mode 100644
index db9ab696f..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/10L3LSPT2.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/11L3LSPT3.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/11L3LSPT3.gif
deleted file mode 100644
index c1d93d71c..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/11L3LSPT3.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/12L3LSPT4.PNG b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/12L3LSPT4.PNG
deleted file mode 100644
index ecd65d280..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/12L3LSPT4.PNG and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/13L3LSPT5.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/13L3LSPT5.gif
deleted file mode 100644
index 06ba4ba25..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/13L3LSPT5.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/14EVPNPT1.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/14EVPNPT1.gif
deleted file mode 100644
index adc31c87e..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/14EVPNPT1.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/15EVPNPT2.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/15EVPNPT2.gif
deleted file mode 100644
index 7c78d8252..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/15EVPNPT2.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/16.1EVPNPT3.png b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/16.1EVPNPT3.png
deleted file mode 100644
index 0f87c4b23..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/16.1EVPNPT3.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/16EVPNPT3.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/16EVPNPT3.gif
deleted file mode 100644
index 984e4a00f..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/16EVPNPT3.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/17EVPNPT4.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/17EVPNPT4.gif
deleted file mode 100644
index 4f5e4fb9c..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/17EVPNPT4.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/18-topoforPO.PNG b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/18-topoforPO.PNG
deleted file mode 100644
index 92ed3d073..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/18-topoforPO.PNG and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/19-intstudio1.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/19-intstudio1.gif
deleted file mode 100644
index 58711171b..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/19-intstudio1.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/1GIT.png b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/1GIT.png
deleted file mode 100644
index ba7a1205c..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/1GIT.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/20-intstudio1.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/20-intstudio1.gif
deleted file mode 100644
index 51d9ec49c..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/20-intstudio1.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/21-CC1.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/21-CC1.gif
deleted file mode 100644
index 034198e6a..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/21-CC1.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/22-CC1.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/22-CC1.gif
deleted file mode 100644
index 8abaa2814..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/22-CC1.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/23-Verification1.PNG b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/23-Verification1.PNG
deleted file mode 100644
index cd5470010..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/23-Verification1.PNG and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/23-Verification2.PNG b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/23-Verification2.PNG
deleted file mode 100644
index 9f8c9b274..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/23-Verification2.PNG and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/24-Verification2.PNG b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/24-Verification2.PNG
deleted file mode 100644
index b32383b10..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/24-Verification2.PNG and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/25-Verification2.PNG b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/25-Verification2.PNG
deleted file mode 100644
index 3991ae35d..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/25-Verification2.PNG and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/2CVPSASGIT.png b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/2CVPSASGIT.png
deleted file mode 100644
index f75cd5068..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/2CVPSASGIT.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/3TOPO.PNG b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/3TOPO.PNG
deleted file mode 100644
index 40a98f892..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/3TOPO.PNG and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/4WorkspaceIntro.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/4WorkspaceIntro.gif
deleted file mode 100644
index 275f5d6a0..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/4WorkspaceIntro.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/5Inventory.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/5Inventory.gif
deleted file mode 100644
index bb8817574..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/5Inventory.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/6InventoryBuild.PNG b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/6InventoryBuild.PNG
deleted file mode 100644
index cc18a096c..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/6InventoryBuild.PNG and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/7tagslocation.PNG b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/7tagslocation.PNG
deleted file mode 100644
index ba88d5752..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/7tagslocation.PNG and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/8tagsprocess.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/8tagsprocess.gif
deleted file mode 100644
index abc1a1f20..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/8tagsprocess.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/9L3LSPT1.gif b/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/9L3LSPT1.gif
deleted file mode 100644
index 36f31bd13..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvp_studios_l3ls_evpn/9L3LSPT1.gif and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/cvx/nested_cvx_topo_1.png b/topologies/datacenter/labguides/source/images/cvx/nested_cvx_topo_1.png
deleted file mode 100644
index 447c6e540..000000000
Binary files a/topologies/datacenter/labguides/source/images/cvx/nested_cvx_topo_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/day2/nested_jenkins_1.png b/topologies/datacenter/labguides/source/images/day2/nested_jenkins_1.png
deleted file mode 100644
index 7b0660363..000000000
Binary files a/topologies/datacenter/labguides/source/images/day2/nested_jenkins_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/day2/nested_jenkins_2.png b/topologies/datacenter/labguides/source/images/day2/nested_jenkins_2.png
deleted file mode 100644
index f45c2c668..000000000
Binary files a/topologies/datacenter/labguides/source/images/day2/nested_jenkins_2.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/day2/nested_jenkins_3.png b/topologies/datacenter/labguides/source/images/day2/nested_jenkins_3.png
deleted file mode 100644
index c5f7c4731..000000000
Binary files a/topologies/datacenter/labguides/source/images/day2/nested_jenkins_3.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/day2/nested_jenkins_4.png b/topologies/datacenter/labguides/source/images/day2/nested_jenkins_4.png
deleted file mode 100644
index e950b1de0..000000000
Binary files a/topologies/datacenter/labguides/source/images/day2/nested_jenkins_4.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/day2/nested_jenkins_5.png b/topologies/datacenter/labguides/source/images/day2/nested_jenkins_5.png
deleted file mode 100644
index 2fc232e83..000000000
Binary files a/topologies/datacenter/labguides/source/images/day2/nested_jenkins_5.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/day2/nested_jenkins_6.png b/topologies/datacenter/labguides/source/images/day2/nested_jenkins_6.png
deleted file mode 100644
index fc95bf8f3..000000000
Binary files a/topologies/datacenter/labguides/source/images/day2/nested_jenkins_6.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/eapi/eapi_1.png b/topologies/datacenter/labguides/source/images/eapi/eapi_1.png
deleted file mode 100644
index 64eb18dfd..000000000
Binary files a/topologies/datacenter/labguides/source/images/eapi/eapi_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/eapi/nested_eapi_ide_1.png b/topologies/datacenter/labguides/source/images/eapi/nested_eapi_ide_1.png
deleted file mode 100644
index 92da51fe3..000000000
Binary files a/topologies/datacenter/labguides/source/images/eapi/nested_eapi_ide_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/eapi/nested_eapi_ide_2.png b/topologies/datacenter/labguides/source/images/eapi/nested_eapi_ide_2.png
deleted file mode 100644
index aa2e967e1..000000000
Binary files a/topologies/datacenter/labguides/source/images/eapi/nested_eapi_ide_2.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/eapi/nested_eapi_ide_3.png b/topologies/datacenter/labguides/source/images/eapi/nested_eapi_ide_3.png
deleted file mode 100644
index 921ae4c8c..000000000
Binary files a/topologies/datacenter/labguides/source/images/eapi/nested_eapi_ide_3.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/evpn_class_guide/evpn_class_detailed_topo.png b/topologies/datacenter/labguides/source/images/evpn_class_guide/evpn_class_detailed_topo.png
deleted file mode 100644
index 867d0d0dc..000000000
Binary files a/topologies/datacenter/labguides/source/images/evpn_class_guide/evpn_class_detailed_topo.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/evpn_class_guide/evpn_class_quick_topo.png b/topologies/datacenter/labguides/source/images/evpn_class_guide/evpn_class_quick_topo.png
deleted file mode 100644
index ffb228e8f..000000000
Binary files a/topologies/datacenter/labguides/source/images/evpn_class_guide/evpn_class_quick_topo.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/gnmi/gNMI-terminal.png b/topologies/datacenter/labguides/source/images/gnmi/gNMI-terminal.png
deleted file mode 100644
index dfb6b1561..000000000
Binary files a/topologies/datacenter/labguides/source/images/gnmi/gNMI-terminal.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/gnmi/gnmi-cvp-streaming.png b/topologies/datacenter/labguides/source/images/gnmi/gnmi-cvp-streaming.png
deleted file mode 100644
index 80f5cbb0f..000000000
Binary files a/topologies/datacenter/labguides/source/images/gnmi/gnmi-cvp-streaming.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/gnmi/gnmi-eos-streaming.png b/topologies/datacenter/labguides/source/images/gnmi/gnmi-eos-streaming.png
deleted file mode 100644
index 36dfd1515..000000000
Binary files a/topologies/datacenter/labguides/source/images/gnmi/gnmi-eos-streaming.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/gnmi/gnmi-serviceaccount1.png b/topologies/datacenter/labguides/source/images/gnmi/gnmi-serviceaccount1.png
deleted file mode 100644
index 8cdb50f0b..000000000
Binary files a/topologies/datacenter/labguides/source/images/gnmi/gnmi-serviceaccount1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/gnmi/gnmi-serviceaccount2.png b/topologies/datacenter/labguides/source/images/gnmi/gnmi-serviceaccount2.png
deleted file mode 100644
index 8d7cb5300..000000000
Binary files a/topologies/datacenter/labguides/source/images/gnmi/gnmi-serviceaccount2.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/gnmi/gnmi-serviceaccount3.png b/topologies/datacenter/labguides/source/images/gnmi/gnmi-serviceaccount3.png
deleted file mode 100644
index 6ad636631..000000000
Binary files a/topologies/datacenter/labguides/source/images/gnmi/gnmi-serviceaccount3.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/l2evpn/nested_l2evpn_topo_1.png b/topologies/datacenter/labguides/source/images/l2evpn/nested_l2evpn_topo_1.png
deleted file mode 100644
index 60ca67f71..000000000
Binary files a/topologies/datacenter/labguides/source/images/l2evpn/nested_l2evpn_topo_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/l3evpn/nested_l3evpn_topo_1.png b/topologies/datacenter/labguides/source/images/l3evpn/nested_l3evpn_topo_1.png
deleted file mode 100644
index 9d159bc35..000000000
Binary files a/topologies/datacenter/labguides/source/images/l3evpn/nested_l3evpn_topo_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/l3ls/nested_l3ls_topo_1.png b/topologies/datacenter/labguides/source/images/l3ls/nested_l3ls_topo_1.png
deleted file mode 100644
index 237feb3eb..000000000
Binary files a/topologies/datacenter/labguides/source/images/l3ls/nested_l3ls_topo_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/logo.jpg b/topologies/datacenter/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/datacenter/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/media_bgp/media_bgp.png b/topologies/datacenter/labguides/source/images/media_bgp/media_bgp.png
deleted file mode 100644
index 21a00f46a..000000000
Binary files a/topologies/datacenter/labguides/source/images/media_bgp/media_bgp.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/media_intro/media_ip_intro.png b/topologies/datacenter/labguides/source/images/media_intro/media_ip_intro.png
deleted file mode 100644
index f5d7f447c..000000000
Binary files a/topologies/datacenter/labguides/source/images/media_intro/media_ip_intro.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/media_multicast/media_multicast.png b/topologies/datacenter/labguides/source/images/media_multicast/media_multicast.png
deleted file mode 100644
index 42ac7f54d..000000000
Binary files a/topologies/datacenter/labguides/source/images/media_multicast/media_multicast.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/media_ospf/media_ospf.png b/topologies/datacenter/labguides/source/images/media_ospf/media_ospf.png
deleted file mode 100644
index 255a75dd4..000000000
Binary files a/topologies/datacenter/labguides/source/images/media_ospf/media_ospf.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/media_stp_svi/media_stp_svi.png b/topologies/datacenter/labguides/source/images/media_stp_svi/media_stp_svi.png
deleted file mode 100644
index 867ed6827..000000000
Binary files a/topologies/datacenter/labguides/source/images/media_stp_svi/media_stp_svi.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/mlag/nested_mlag_topo_1.png b/topologies/datacenter/labguides/source/images/mlag/nested_mlag_topo_1.png
deleted file mode 100644
index dd5de08df..000000000
Binary files a/topologies/datacenter/labguides/source/images/mlag/nested_mlag_topo_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/program_connecting/nested_connecting_1.png b/topologies/datacenter/labguides/source/images/program_connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/datacenter/labguides/source/images/program_connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/program_connecting/nested_connecting_2.png b/topologies/datacenter/labguides/source/images/program_connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/datacenter/labguides/source/images/program_connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/program_connecting/nested_connecting_landing_1.png b/topologies/datacenter/labguides/source/images/program_connecting/nested_connecting_landing_1.png
deleted file mode 100644
index 81105ec8e..000000000
Binary files a/topologies/datacenter/labguides/source/images/program_connecting/nested_connecting_landing_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/program_connecting/nested_connecting_overview_1.png b/topologies/datacenter/labguides/source/images/program_connecting/nested_connecting_overview_1.png
deleted file mode 100644
index 65e7c0547..000000000
Binary files a/topologies/datacenter/labguides/source/images/program_connecting/nested_connecting_overview_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/pyeapi/nested_pyeapi_1.png b/topologies/datacenter/labguides/source/images/pyeapi/nested_pyeapi_1.png
deleted file mode 100644
index 7f8b7b4e5..000000000
Binary files a/topologies/datacenter/labguides/source/images/pyeapi/nested_pyeapi_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/pyeapi/nested_pyeapi_2.png b/topologies/datacenter/labguides/source/images/pyeapi/nested_pyeapi_2.png
deleted file mode 100644
index ffd77dd48..000000000
Binary files a/topologies/datacenter/labguides/source/images/pyeapi/nested_pyeapi_2.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/tshoot_intro/tshoot_intro_1.png b/topologies/datacenter/labguides/source/images/tshoot_intro/tshoot_intro_1.png
deleted file mode 100644
index 52b76d978..000000000
Binary files a/topologies/datacenter/labguides/source/images/tshoot_intro/tshoot_intro_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/images/vxlan/nested_vxlan_topo_1.png b/topologies/datacenter/labguides/source/images/vxlan/nested_vxlan_topo_1.png
deleted file mode 100644
index c3c696827..000000000
Binary files a/topologies/datacenter/labguides/source/images/vxlan/nested_vxlan_topo_1.png and /dev/null differ
diff --git a/topologies/datacenter/labguides/source/index.rst b/topologies/datacenter/labguides/source/index.rst
deleted file mode 100644
index e14ac0239..000000000
--- a/topologies/datacenter/labguides/source/index.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-Welcome to the Arista ATD documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
- mlag.rst
- l3ls.rst
- vxlan.rst
- l2evpn.rst
- l3evpn.rst
- cvx.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: CloudVision Portal
-
- cvp_configlet.rst
- cvp_cc.rst
- cvp_studios_l3ls_evpn.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Programmability
-
- programmability_connecting.rst
- command_api.rst
- eapi.rst
- pyeapi.rst
- gnmi.rst
- ansible_adhoc_and_simple_playbooks.rst
- ansible_and_jinja_templates.rst
- day2_operations.rst
- rollback.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Broadcaster Training
-
- media-IP_Intro.rst
- media-STP_SVI.rst
- media-ospf.rst
- media-bgp.rst
- media-multicast.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Troubleshooting Training
-
- tshoot-intro.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: EVPN Class Guide
-
- EVPN_Class_Guide.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: EVPN Class Guide Answer Key
-
- EVPN_Class_Guide_Answer_Key.rst
\ No newline at end of file
diff --git a/topologies/datacenter/labguides/source/l2evpn.rst b/topologies/datacenter/labguides/source/l2evpn.rst
deleted file mode 100644
index 0e12d886f..000000000
--- a/topologies/datacenter/labguides/source/l2evpn.rst
+++ /dev/null
@@ -1,169 +0,0 @@
-
-L2 EVPN
-=======
-
-.. thumbnail:: images/l2evpn/nested_l2evpn_topo_1.png
- :align: center
-
- Click image to enlarge
-
-.. note:: This lab exercise will not enable MLAG.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``l2evpn`` at the prompt. The script will configure the datacenter with the exception of **leaf3**
-
-2. On **leaf3**, configure ArBGP. **(Already configured and enabled on the switch)**
-
- .. code-block:: html
-
- configure
- service routing protocols model multi-agent
-
-3. Configure interfaces on **leaf3**.
-
- .. code-block:: html
-
- configure
- interface Port-Channel4
- description HOST2
- switchport mode access
- switchport access vlan 12
- !
- interface Ethernet1
- shutdown
- !
- interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.10/30
- !
- interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.26/30
- !
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
- !
- interface Ethernet5
- shutdown
- !
- interface Ethernet6
- shutdown
- !
- interface Loopback0
- ip address 172.16.0.5/32
- !
- interface Loopback1
- ip address 3.3.3.3/32
- !
-
-4. Add Underlay BGP configurations on **Leaf3**
-
- .. code-block:: html
-
- configure
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
- !
-
-5. Verify Underlay
-
- 1. On each leaf and spine
-
- .. code-block:: html
-
- show ip bgp summary
- show ip route bgp
-
-6. On **leaf3**, build BGP Overlay
-
- .. code-block:: html
-
- configure
- router bgp 65103
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-7. Verify overlay
-
- 1. On **leaf1** and **leaf3**
-
- .. code-block:: html
-
- show bgp evpn summary
-
-8. Configure L2EVPN
-
- 1. On **leaf3**: add VLAN 12, and interface vxlan1
-
- .. code-block:: html
-
- configure
- vlan 12
- !
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1200
- !
-
- 2. On **leaf3**: add mac vrf
-
- .. code-block:: html
-
- configure
- router bgp 65103
- vlan 12
- rd 3.3.3.3:12
- route-target both 1:12
- redistribute learned
- !
-
-9. Verify VXLAN and L2EVPN
-
- 1. On **leaf1** and **leaf3** verify the IMET table
-
- .. code-block:: text
-
- show interface vxlan1
- show bgp evpn route-type imet
-
- 2. Log into **host1** and ping **host2**
-
- .. code-block:: text
-
- ping 172.16.112.202
-
- 3. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show bgp evpn route-type mac-ip
- show mac address-table dynamic
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/labguides/source/l3evpn.rst b/topologies/datacenter/labguides/source/l3evpn.rst
deleted file mode 100644
index 81e96c042..000000000
--- a/topologies/datacenter/labguides/source/l3evpn.rst
+++ /dev/null
@@ -1,183 +0,0 @@
-L3 EVPN
-=======
-
-.. thumbnail:: images/l3evpn/nested_l3evpn_topo_1.png
- :align: center
-
- Click image to enlarge
-
-.. note:: This lab exercise will not enable MLAG.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``l3evpn`` at the prompt. The script will configure the datacenter with the exception of **leaf3**
-
-2. On **leaf3**, configure EOS to Mutli-Agent and add loopback0
-
- 1. **leaf3** enable the Multi-Agent **(Already configured and enabled on the switch)**
-
- .. code-block:: text
-
- configure
- service routing protocols model multi-agent
-
- 2. **leaf3** Underlay Interface configurations. Note the interfaces to **host2** change from previous L2EVPN lab
-
- .. code-block:: text
-
- configure
- interface Port-Channel5
- description HOST2
- switchport access vlan 2003
- no shutdown
- !
- interface Ethernet1
- shutdown
- !
- interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.10/30
- !
- interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.26/30
- !
- interface Ethernet4
- shutdown
- !
- interface Ethernet5
- description HOST2
- channel-group 5 mode active
- no shutdown
- !
- interface Ethernet6
- shutdown
- !
- interface Loopback0
- ip address 172.16.0.5/32
- !
- interface Loopback1
- ip address 3.3.3.3/32
- !
-
- 3. On **leaf3** Add Underlay BGP configurations
-
- .. code-block:: text
-
- configure
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65001
- neighbor SPINE bfd
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
-
-3. Verify Underlay on **every** leaf and spine:
-
- .. code-block:: text
-
- show ip bgp summary
- show ip route bgp
-
-4. On **leaf3**, build BGP Overlay
-
- .. code-block:: text
-
- configure
- router bgp 65103
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-5. Verify overlay on **leaf1** and **leaf3**:
-
- .. code-block:: text
-
- show bgp evpn summary
-
-6. Configure L3EVPN
-
- 1. Configure the VRF
-
- .. code-block:: text
-
- configure
- vrf instance vrf1
- !
- ip routing vrf vrf1
- !
- router bgp 65103
- vrf vrf1
- rd 3.3.3.3:1001
- route-target import evpn 1:1001
- route-target export evpn 1:1001
- redistribute connected
- redistribute static
- !
-
- 2. Configure vrf interfaces (start in global configuration mode not BGP)
-
- .. code-block:: text
-
- interface Vlan2003
- mtu 9000
- no autostate
- vrf vrf1
- ip address virtual 172.16.116.1/24
- !
- interface Loopback901
- vrf vrf1
- ip address 200.200.200.2/32
- !
-
- 3. Map VRF to VNI
-
- .. code-block:: text
-
- configure
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vrf vrf1 vni 1001
- !
-
-7. Verify VRF on Leaf 1 and 3 (note route resolution over VNI and dynamic VLAN to VNI mapping)
-
- 1. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show interface vxlan1
-
- 2. Log into **host1** and ping **host2**
-
- .. code-block:: text
-
- ping 172.16.116.100
-
- 3. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show ip route vrf vrf1
- show mac address-table dynamic
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/labguides/source/l3ls.rst b/topologies/datacenter/labguides/source/l3ls.rst
deleted file mode 100644
index 58c52cc8e..000000000
--- a/topologies/datacenter/labguides/source/l3ls.rst
+++ /dev/null
@@ -1,208 +0,0 @@
-Layer 3 Leaf-Spine
-==================
-
-.. thumbnail:: images/l3ls/nested_l3ls_topo_1.png
- :align: center
-
- Click image to enlarge
-
-.. note:: Did you know the “bgp” script is composed of Python code that
- uses the CloudVision Portal REST API to automate the provisioning of
- CVP Configlets. The configlets that are configured via the REST API
- are ``Spine1-BGP-Lab``, ``Spine2-BGP-Lab``, ``Leaf1-BGP-Lab``,
- ``Leaf2-BGP-Lab``, ``Leaf3-BGP-Lab``, ``Leaf4-BGP-Lab``.
-
-.. note:: The manually-entered commands below that are part of this lab are
- equivalent to ``Leaf4-BGP-Lab-Full``.
-
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``bgp`` at the prompt. The script will configure the datacenter with the exception of **Leaf4**.
-
-2. Configure SVI and VARP Virtual IP on the **Leaf4** switch using the following criteria
-
- 1. Create the vARP MAC Address in Global Configuration mode
-
- .. code-block:: text
-
- configure
- ip virtual-router mac-address 00:1c:73:00:00:34
-
- 2. Create the SVI and the Virtual Router Address
-
- .. code-block:: text
-
- configure
- interface vlan 34
- ip address 172.16.116.3/24
- ip virtual-router address 172.16.116.1
-
- 3. Validate the configuration issue the following commands
-
- .. code-block:: text
-
- show ip interface brief
- show ip virtual-router
-
-3. Configure BGP on the **Leaf4** switch using the following criteria
-
- 1. Based on the diagram, configure L3 interfaces to **Spine1/Spine2** and interface Loopback0
-
- .. code-block:: text
-
- configure
- interface ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.14/30
-
- interface ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.30/30
-
- interface loopback0
- ip address 172.16.0.6/32
-
- 2. Validate the configuration issue the following commands
-
- .. code-block:: text
-
- show ip interface brief
-
- 3. Based on the diagram, turn on BGP and configure the neighbor
- relationships on **Leaf4**. eBGP to **Spine1/Spine2** and iBGP to **Leaf3**.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- router-id 172.16.0.6
- neighbor 172.16.200.13 remote-as 65000
- neighbor 172.16.200.29 remote-as 65000
- neighbor 172.16.34.1 remote-as 65002
- neighbor 172.16.34.1 next-hop-self
-
- .. note:: Since ``neighbor 172.16.34.1 remote-as 65002`` specifies an iBGP
- peering relationship (because the ASN is the same as this switch
- ``65002``) the receiving switch may not have a route to networks more
- than 1 hop away, hence the switches should each advertise that they are
- the next hop via the ``neighbor 172.16.34.1 next-hop-self`` statement. While this scenario is
- only 2 iBGP peers, in a network fabric with several iBGP peers, a
- switch inside an AS (and not on an edge) may not have a route to a
- switch in any external AS.
-
- 4. Validate the configuration and neighbor establishment
-
- .. code-block:: text
-
- show active
- show ip bgp summary
-
-4. Configure networks on **Leaf4** to advertise to **Spine1/Spine2**
-
- 1. Add the following networks to BGP announcements on **Leaf4**:
-
- .. code-block:: text
-
- configure
- router bgp 65002
- network 172.16.0.6/32
- network 172.16.116.0/24
-
- 2. Verify all of the **Spines** and **Leafs** see these new network announcements
-
- .. code-block:: text
-
- show ip route
- show ip bgp
- show ip route bgp
-
- 3. Add in multiple paths by enabling ECMP, on **Leaf4**, jump into BGP configuration mode and add:
-
- .. code-block:: text
-
- configure
- router bgp 65002
- maximum-paths 4 ecmp 4
-
- 4. Check the BGP and IP route tables on each of the **Spines** and **Leafs**
-
- .. code-block:: text
-
- show ip bgp
- show ip route
- show ip route bgp
-
- .. note:: ECMP is now working - notice the new status code in the `show ip bgp` output
-
-5. Validate connectivity from **Host1** to **Host2**. From **Host1** execute:
-
- .. code-block:: text
-
- ping 172.16.116.100
- traceroute 172.16.116.100
-
- 1. Verify Leaf4's IP address is in the traceroute path, either interface 172.16.200.14 via spine1 or interface 172.16.200.30 via spine2.
- If traffic is hashing via leaf3's 172.16.200.10 or 172.16.200.26 interfaces perform the optional ``shutdown`` steps below on **Leaf3**
-
- .. code-block:: text
-
- configure
- router bgp 65002
- neighbor 172.16.200.9 shutdown
- neighbor 172.16.200.25 shutdown
-
- 2. Rerun traceroute/verification from **Host1** to **Host2** then revert the ``shutdown`` changes on **Leaf3**
-
- .. code-block:: text
-
- configure
- router bgp 65002
- no neighbor 172.16.200.9 shutdown
- no neighbor 172.16.200.25 shutdown
-
-6. Other BGP features to play with if you have time:
-
- 1. Route Redistribution: For fun do a ``watch 1 diff show ip route | begin
- Gateway`` on **Leaf1** & **Leaf2** and let those run while you execute the
- command ``redistribute connected`` below on **Leaf3**. You will see new routes being
- injected into the route tables of **Leaf1** & **Leaf2**.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- redistribute connected
-
- 2. Route Maps:
-
- .. code-block:: text
-
- configure
- route-map etc
-
- 3. BFD: BFD is a low-overhead, protocol-independent mechanism which adjacent
- systems can use instead for faster detection of faults in the path between
- them. BFD is a simple mechanism which detects the liveness of a connection
- between adjacent systems, allowing it to quickly detect failure of any
- element in the connection.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- neighbor bfd
-
-7. Troubleshooting BGP:
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip bgp neighbor x.x.x.x
- show run section bgp
- show log
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/labguides/source/media-IP_Intro.rst b/topologies/datacenter/labguides/source/media-IP_Intro.rst
deleted file mode 100644
index 46cb69e33..000000000
--- a/topologies/datacenter/labguides/source/media-IP_Intro.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-Media Intro to IP Lab
-=====================
-
-.. thumbnail:: images/media_intro/media_ip_intro.png
- :align: center
-
- Click image to enlarge
-
-.. note:: An IP address serves two principal functions. It identifies the host, or more specifically its network interface, and it provides the location of the host in the network, and thus the capability of establishing a path to that host. Its role has been characterized as follows: "A name indicates what we seek. An address indicates where it is. A route indicates how to get there."
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section.
- 3. Type ``media-intro`` at this prompt and wait for the process to run.
- 4. The script will configure the topology with the exception of **Leaf 4**. The main task is to configure the remaining device so there is connectivity between the two hosts
-
-
-2. Connect to **Leaf 4** from the menu:
-
- 1. Connect to ``Leaf 4`` by selecting option ``6`` from the ``Device SSH`` menu (Type ``ssh`` at the prompt). Once in the switch we are in the *Privileged EXEC* mode, denoted by the **#** preceding the device name. This is similar to a admin user, in this mode can configure and view information on the switch. To configure devices we will need to go into the global configuration mode by typing *configure* at the prompt, in *Privileged EXEC (enable)* mode. As you do the labs you will see this *configure* command being used to ensure that you are in the *config* mode. One prompt that you may come across is the **>** this denotes that you are in EXEC mode, where you can do basic tests and view system information. EXEC mode is the default mode for all switches.
-
-
-3. Configure the proper ip address on the interfaces along with the appropriate static routes to ensure there is end-to-end connectivity for the two end hosts to reach each other. All interfaces in this lab are designed as point-to-point connections
-
- 1. On **Leaf 4** assign the appropriate ip address and ensure the adjacent devices can be reached
-
- .. code-block:: text
-
- configure
- !
- interface Ethernet 3
- no switchport
- ip address 10.127.34.4/24
- !
- interface Ethernet 4
- no switchport
- ip address 172.16.46.4/24
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#interface ethernet 3
- leaf4(config-if-Et3)#no switchport
- leaf4(config-if-Et3)#ip address 10.127.34.4/24
- leaf4(config-if-Et3)#interface ethernet 4
- leaf4(config-if-Et4)#no switchport
- leaf4(config-if-Et4)#ip address 172.16.46.4/24
-
-
- .. note::
- It is worth mentioning by default all interfaces on an Arista switch is set to be a switchport (Layer 2 interface). We need to allow it to be a routed interface and thus ``no switchport`` is added (turns into Layer 3 interface). Once the IP address has been added to the appropriate interface, ensure reachability to the adjacent device by leveraging the ``ping`` command on **Leaf 4**
-
- .. code-block:: text
-
-
- ping 10.127.34.3
- ping 172.16.46.6
-
- **Example:**
-
- .. code-block:: text
-
- leaf4# ping 10.127.34.3
- PING 10.127.34.3 (10.127.34.3) 72(100) bytes of data.
- 80 bytes from 10.127.34.3: icmp_seq=1 ttl=64 time=17.0 ms
- 80 bytes from 10.127.34.3: icmp_seq=2 ttl=64 time=18.8 ms
- 80 bytes from 10.127.34.3: icmp_seq=3 ttl=64 time=14.9 ms
- 80 bytes from 10.127.34.3: icmp_seq=4 ttl=64 time=12.6 ms
-
- --- 10.127.34.3 ping statistics ---
- 5 packets transmitted, 4 received, 20% packet loss, time 62ms
- rtt min/avg/max/mdev = 12.605/15.868/18.844/2.332 ms, pipe 2, ipg/ewma 15.602/16.435 ms
-
- leaf4# ping 172.16.46.6
- PING 172.16.46.6 (172.16.46.6) 72(100) bytes of data.
- 80 bytes from 172.16.46.6: icmp_seq=1 ttl=64 time=38.4 ms
- 80 bytes from 172.16.46.6: icmp_seq=2 ttl=64 time=32.1 ms
- 80 bytes from 172.16.46.6: icmp_seq=3 ttl=64 time=28.0 ms
- 80 bytes from 172.16.46.6: icmp_seq=4 ttl=64 time=31.6 ms
- 80 bytes from 172.16.46.6: icmp_seq=5 ttl=64 time=12.7 ms
-
- --- 172.16.46.6 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 68ms
- rtt min/avg/max/mdev = 12.797/28.603/38.419/8.584 ms, pipe 4, ipg/ewma 17.163/32.954 ms
-
-
- At this point if the adjacent devices can be reached, you have configured the IP address correctly
-
-
- 2. Once the address has been assigned to the appropriate interfaces, we can enable the routing as well as add the appropriate static routes on **Leaf 4** to allow reachability between the two host end-points.
-
-
- .. code-block:: text
-
- configure
- !
- ip routing
- !
- ip route 172.16.15.0/24 10.127.34.3
- !
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#configure
- leaf4(config)#ip routing
- leaf4(config)#ip route 172.16.15.0/24 10.127.34.3
-
- .. note::
- We added the entire prefix for the static route but we could have also put the specific host address. Normally your internal security policies will dictate which approach to take
-
-
-4. Validate end-to-end connectivity from the hosts once IP addresses and static routes have been configured from the previous steps
-
- 1. Log into **Host 2** and verify there is reachability to **Host 1**
-
- .. code-block:: text
-
- ping 172.16.15.5
-
- **Example:**
-
- .. code-block:: text
-
- host2# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=60 time=307 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=60 time=300 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=60 time=296 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=60 time=293 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=60 time=289 ms
-
- --- 172.16.15.5 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 43ms
- rtt min/avg/max/mdev = 289.129/297.583/307.932/6.497 ms, pipe 5, ipg/ewma 10.984/302.312 ms
-
- If all the IP address and routing settings have been completed correctly, then you should have reachability
-
-.. admonition:: **Test your knowledge:**
-
- When **Leaf 4** receives the incoming icmp packet from **Host 2**, what would the process be for the switch to determine the path for the packet to be fowarded?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show ip route
- - show ip arp
- - show ip interface brief
- - show interface status
diff --git a/topologies/datacenter/labguides/source/media-STP_SVI.rst b/topologies/datacenter/labguides/source/media-STP_SVI.rst
deleted file mode 100644
index 733172c4d..000000000
--- a/topologies/datacenter/labguides/source/media-STP_SVI.rst
+++ /dev/null
@@ -1,277 +0,0 @@
-Media STP and SVI Lab
-======================
-
-.. thumbnail:: images/media_stp_svi/media_stp_svi.png
- :align: center
-
- Click image to enlarge
-
-.. note:: The Spanning-Tree protocol (STP) was initially invented in 1985 and is one of the oldest networking protocols being used in Layer 2 network topologies today. STP is classified as a network protocol that builds loop-free logical topology for Ethernet (initially bridged) networks.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` to go back).
- 3. Type ``media-vlan`` at the prompt. The script will configure the topology with the exception of **Leaf 4**.
-
- 4. On **Spine 2**, verify spanning-tree operation with the topology, you should see **Spine 1** as the root bridge by viewing the Bridge ID and the interfaces designated as a Root port. Root ports points towards the root bridge, which in this case would be Spine 1. When you run the following command which interfaces would you expect to be your root port(s)?
-
- .. code-block:: text
-
- show spanning-tree
-
-
- **Example:**
-
- .. code-block:: text
-
- spine2#show spanning-tree
- MST0
- Spanning tree enabled protocol mstp
- Root ID Priority 4096
- Address 2cc2.6056.df93
- Cost 0 (Ext) 2000 (Int)
- Port 1 (Ethernet1)
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Bridge ID Priority 8192 (priority 8192 sys-id-ext 0)
- Address 2cc2.6094.d76c
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Interface Role State Cost Prio.Nbr Type
- ---------------- ---------- ---------- --------- -------- --------------------
- Et1 root forwarding 2000 128.1 P2p
- Et2 designated forwarding 2000 128.2 P2p
- Et5 designated forwarding 2000 128.5 P2p
- Et6 designated forwarding 2000 128.6 P2p Edge
- Et7 designated forwarding 2000 128.7 P2p Edge
-
-2. Configure the VLAN and interface types on **Leaf 4** to allow the spanning-tree protocol to operate and have reachability for **Host 2**.
-
-
- 1. On **Leaf 4** create the Layer 2 instance of vlan 100. Creating this vlan will add itself to the spanning-tree process.
-
- .. code-block:: text
-
- configure
- vlan 100
- name v100
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#vlan 100
- leaf4(config-vlan-100)#name v100
-
- We can verify its creation with the following command. This command can also show if there are any physical interfaces associated to the vlan.
-
- .. code-block:: text
-
- show vlan
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-vlan-100)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et2, Et3, Et4, Et6, Et7, Et8
- Et9, Et10, Et11, Et12, Et13
- Et14, Et15, Et16, Et17, Et18
- Et19, Et20, Et21, Et22, Et23
- Et24, Et25, Et26, Et27, Et28
- Et29, Et30, Et31, Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 100 v100 active
-
-
-
- 2. Once the vlan is created, we can define on the uplink ports on **Leaf 4** as trunk links, as well allow vlan 100 to pass on the trunk.
-
- .. code-block:: text
-
- configure
- interface Ethernet2
- switchport trunk allowed vlan 100
- switchport mode trunk
- !
- interface Ethernet3
- switchport trunk allowed vlan 100
- switchport mode trunk
- !
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-vlan-100)#configure
- leaf4(config)#interface ethernet 2-3
- leaf4(config-if-Et2-3)#switchport mode trunk
- leaf4(config-if-Et2-3)#switchport trunk allowed vlan 100
-
- .. note::
- By default once an interface is configured as a trunk, all vlans will be associated to it. It is good security practice to associate the specific vlans to pass on the trunk links and take part in the spanning-tree process
-
- Once the interface configuration has been completed for the trunk links, you can verify the spanning-tree topology and see the root bridge is **Spine 1** and the connection to **Spine 2** has been blocked for loop prevention
-
- .. code-block:: text
-
- show spanning-tree
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et2-3)#show spanning-tree
- MST0
- Spanning tree enabled protocol mstp
- Root ID Priority 4096
- Address 2cc2.6056.df93
- Cost 0 (Ext) 2000 (Int)
- Port 2 (Ethernet2)
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Bridge ID Priority 32768 (priority 32768 sys-id-ext 0)
- Address 2cc2.60b5.96d9
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Interface Role State Cost Prio.Nbr Type
- ---------------- ---------- ---------- --------- -------- --------------------
- Et2 root forwarding 2000 128.2 P2p
- Et3 alternate discarding 2000 128.3 P2p
- Et4 designated forwarding 2000 128.4 P2p Edge
- Et6 designated forwarding 2000 128.6 P2p Edge
- Et7 designated forwarding 2000 128.7 P2p Edge
- Et8 designated forwarding 2000 128.8 P2p Edge
- Et9 designated forwarding 2000 128.9 P2p Edge
- Et10 designated forwarding 2000 128.10 P2p Edge
-
-
- 3. Once the Layer 2 topology has been setup, we can configure the connection to our host as an access port to allow **Host 2** to pass traffic onto the topology
-
- .. code-block:: text
-
- configure
- interface Ethernet4
- switchport access vlan 100
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et2-3)#configure
- leaf4(config)#interface ethernet 4
- leaf4(config-if-Et4)#switchport access vlan 100
-
-3. Validate end-to-end connectivity after configuring the Layer 2 interfaces. Once the spanning tree has converged for the topology we can observe the results.
-
- 1. Validate the vlan port association and spanning-tree topology is correct
-
- .. code-block:: text
-
- show vlan
- show spanning-tree
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et6, Et7, Et8, Et9, Et10, Et11
- Et12, Et13, Et14, Et15, Et16
- Et17, Et18, Et19, Et20, Et21
- Et22, Et23, Et24, Et25, Et26
- Et27, Et28, Et29, Et30, Et31
- Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 100 v100 active Et2, Et3, Et4
-
-
- leaf4(config-if-Et3)#show spanning-tree
- MST0
- Spanning tree enabled protocol mstp
- Root ID Priority 4096
- Address 2cc2.6056.df93
- Cost 0 (Ext) 2000 (Int)
- Port 2 (Ethernet2)
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Bridge ID Priority 32768 (priority 32768 sys-id-ext 0)
- Address 2cc2.60b5.96d9
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Interface Role State Cost Prio.Nbr Type
- ---------------- ---------- ---------- --------- -------- --------------------
- Et2 root forwarding 2000 128.2 P2p
- Et3 alternate discarding 2000 128.3 P2p
- Et4 designated forwarding 2000 128.4 P2p Edge
- Et6 designated forwarding 2000 128.6 P2p Edge
- Et7 designated forwarding 2000 128.7 P2p Edge
- Et8 designated forwarding 2000 128.8 P2p Edge
- Et9 designated forwarding 2000 128.9 P2p Edge
- Et10 designated forwarding 2000 128.10 P2p Edge
-
-
- You should see the root bridge is towards **Spine 1** and vlan 100 should be associated to interfaces eth2, eth3 and eth4
-
- 2. Log into **Host 2** and verify you can reach the SVI for vlan 100 as well as reachability to **Host 1**
-
- .. code-block:: text
-
- SVI (Vlan 100 gateway on Spine 1)
- ping 172.16.46.4
-
- host2# ping 172.16.46.4
- PING 172.16.46.4 (172.16.46.4) 72(100) bytes of data.
- 80 bytes from 172.16.46.4: icmp_seq=1 ttl=64 time=35.3 ms
- 80 bytes from 172.16.46.4: icmp_seq=2 ttl=64 time=51.3 ms
- 80 bytes from 172.16.46.4: icmp_seq=3 ttl=64 time=49.9 ms
- 80 bytes from 172.16.46.4: icmp_seq=4 ttl=64 time=48.9 ms
- 80 bytes from 172.16.46.4: icmp_seq=5 ttl=64 time=35.6 ms
-
- --- 172.16.46.4 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 73ms
- rtt min/avg/max/mdev = 35.313/44.256/51.377/7.192 ms, pipe 4, ipg/ewma 18.302/39.598 ms
-
-
- Host 1
- ping 172.16.15.5
-
- host2# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- From 172.16.46.4: icmp_seq=1 Redirect Host(New nexthop: 172.16.15.5)
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=63 time=237 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=63 time=233 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=63 time=250 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=63 time=257 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=63 time=257 ms
-
- --- 172.16.15.5 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 43ms
- rtt min/avg/max/mdev = 233.030/247.345/257.699/10.206 ms, pipe 5, ipg/ewma 10.926/243.255 ms
-
- If all the SVI and STP settings have been completed correctly you should be able to ping the remote host as well as the SVI interface itself configured on **Spine 1** which is also the root bridge for this topology.
-
-
- .. admonition:: **Test your knowledge:**
-
- When you are verifying the spanning-tree topology from **Leaf 4**, what are some of the reasons for the root bridge selection?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show vlan
- - show interfaces trunk
- - show interfaces status
- - show spanning-tree
diff --git a/topologies/datacenter/labguides/source/media-bgp.rst b/topologies/datacenter/labguides/source/media-bgp.rst
deleted file mode 100644
index 6f5c379bb..000000000
--- a/topologies/datacenter/labguides/source/media-bgp.rst
+++ /dev/null
@@ -1,316 +0,0 @@
-Media BGP Lab
-=============
-
-.. thumbnail:: images/media_bgp/media_bgp.png
- :align: center
-
- Click image to enlarge
-
-.. note:: The Border Gateway Protocol (BGP) makes routing decisions based on paths (protocol is classified as a path vector) and is widely used in the backbone of the internet to redistribute information
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` to go back).
- 3. Type ``media-bgp`` at the prompt. The script will configure the topology with the exception of **Leaf 4**.
-
- 4. On **spine2**, verify the BGP operation (it should not be operating correctly) and current routing table and command outputs similar to the outputs below.
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip route
-
-
- **Example:**
-
- .. code-block:: text
-
- spine2#show ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.127.255.3, local AS number 2
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.127.23.2 4 1 7 6 0 0 00:02:03 Estab 2 2
- 10.127.34.4 4 2 0 0 0 0 00:02:10 Active
-
-
-
-
- spine2#show ip bgp
- BGP routing table information for VRF default
- Router identifier 10.127.255.3, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.255.1/32 10.127.23.2 0 100 0 1 i
- * > 172.16.15.0/24 10.127.23.2 0 100 0 1 i
-
-
-
- spine2#show ip route
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- C 10.127.23.0/24 is directly connected, Ethernet1
- C 10.127.34.0/24 is directly connected, Ethernet5
- B E 10.127.255.1/32 [200/0] via 10.127.23.2, Ethernet1
- C 10.127.255.3/32 is directly connected, Loopback0
- B E 172.16.15.0/24 [200/0] via 10.127.23.2, Ethernet1
- C 192.168.0.0/24 is directly connected, Management1
-
- All the routing entries with a preceding "B" was learned by the BGP protocol on Spine2.
-
-2. Configure Loopback 0 on **Leaf 4** with the following commands
-
- 1. Under Loopback 0 interface assign the ip. This will be used to define the Router-id in the next step. Loopbacks are used as as router-id addresses, as they are an always available interface that can be advertised reliably.
-
- .. code-block:: text
-
- configure
- interface loopback 0
- ip address 10.127.255.4/32
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#interface loopback 0
- leaf4(config-if-Lo0)#ip address 10.127.255.4/32
-
-
-3. Configure BGP on the **Leaf4** switch using the following criteria
-
- 1. Configure BGP router process (also the autonomous system number, ASN) on **Leaf4**. **Leaf 4** will be configured to communicate to adjacent BGP speakers (**Spine2** in this case). The router-id is configured so it can be consistent and not randomly chosen (normally the peering interface if not specified).
-
- .. code-block:: text
-
- configure
- router bgp 2
- router-id 10.127.255.4
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#configure
- leaf4(config)#router bgp 2
- leaf4(config-router-bgp)#router-id 10.127.255.4
-
- .. note::
- The process number for BGP corresponds to the autonomous-system number (ASN) the router is associated with and is globally significant. These values should not be chosen randomly and should be part of a larger design scheme for the environment.
-
- 2. BGP neighbours are explicitly defined so only the desired neighbors create a session with. A TCP connection is established between the two peers (using port 179) in which the routing information can be securely transported between the peers.
-
- .. code-block:: text
-
- configure
- router bgp 2
- neighbor 10.127.34.3 remote-as 2
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#configure
- leaf4(config)#router bgp 2
- leaf4(config-router-bgp)#neighbor 10.127.34.3 remote-as 2
-
- The BGP session we are setting up on **Leaf4** to **Spine2** is considered a point-to-point iBGP (Internal BGP) connection because they are a part of the same autonomous-system (AS).
-
- .. note::
- Although there are mechanisms to allow all incoming BGP sessions to be established, these are typically corner cases in which you will use that approach. It is best common practice to specify your desired neighbor to establish a session with along with a md5 hash password for an extra level of security.
-
- 3. By default, the BGP protocol will only re-advertise eBGP (external) prefixes it has leaned to its other iBGP / eBGP peers. We will need to tell the BGP process what to advertise by various methods. In this lab we want the router to advertise its connected (vlan) prefix
-
- .. code-block:: text
-
- configure
- router bgp 2
- redistribute connected
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#router bgp 2
- leaf4(config-router-bgp)#redistribute connected
-
- Once the ``redistribute connected`` command has been added, we can actually see the prefixes our switch (Leaf4) is receiving and advertising
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp neighbors 10.127.34.3 advertised-routes
- show ip bgp neighbors 10.127.34.3 received-routes
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-router-bgp)#show ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.127.34.3 4 2 22 22 0 0 00:10:37 Estab 2 2
-
-
-
- leaf4(config-router-bgp)#show ip bgp neighbors 10.127.34.3 advertised-routes
- BGP routing table information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.34.0/24 10.127.34.4 - 100 - i
- * > 10.127.255.4/32 10.127.34.4 - 100 - i
- * > 172.16.46.0/24 10.127.34.4 - 100 - i
- * > 192.168.0.0/24 10.127.34.4 - 100 - i
-
-
-
- leaf4(config-router-bgp)#show ip bgp neighbors 10.127.34.3 received-routes
- BGP routing table information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.255.1/32 10.127.34.3 - 100 - 1 i
- * > 172.16.15.0/24 10.127.34.3 - 100 - 1 i
-
-4. We will now validate the end-to-end connectivity once BGP neighbor relationship has been established
-
- 1. Confirm the BGP neighbor relationship has been established and the routing table on **Leaf4** has been populated with the appropriate entries as shown on the outputs below
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip route
- show ip route bgp
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-router-bgp)#show ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.127.34.3 4 2 22 22 0 0 00:10:37 Estab 2 2
-
-
- leaf4(config-router-bgp)#show ip bgp
- BGP routing table information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.34.0/24 - 1 0 - i
- * > 10.127.255.1/32 10.127.34.3 0 100 0 1 i
- * > 10.127.255.4/32 - 0 0 - i
- * > 172.16.15.0/24 10.127.34.3 0 100 0 1 i
- * > 172.16.46.0/24 - 1 0 - i
- * > 192.168.0.0/24 - 1 0 - i
-
-
-
- leaf4(config-router-bgp)#show ip route | Begin Gateway
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- C 10.127.34.0/24 is directly connected, Ethernet3
- B I 10.127.255.1/32 [200/0] via 10.127.34.3, Ethernet3
- C 10.127.255.4/32 is directly connected, Loopback
- B I 172.16.15.0/24 [200/0] via 10.127.34.3, Ethernet3
- C 172.16.46.0/24 is directly connected, Ethernet4
- C 192.168.0.0/24 is directly connected, Management1
-
-
-
- leaf4(config-router-bgp)#show ip route bgp
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- B I 10.127.255.1/32 [200/0] via 10.127.34.3, Ethernet3
- B I 172.16.15.0/24 [200/0] via 10.127.34.3, Ethernet3
-
-
- The routing table output should list all routing entries to ensure reachability between the 2 hosts
-
-
- 2. To confirm connectivity, log into **Host 2** and execute a ping command to **Host 1**
-
- .. code-block:: text
-
- ping 172.16.15.5
-
- **Example:**
-
- .. code-block:: text
-
- host2(config)# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=60 time=436 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=60 time=433 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=60 time=429 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=60 time=425 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=60 time=422 ms
-
- If all the BGP configuration have been applied successfully and the routing table on **Leaf 4** is correct then **Host 1** should be reachable from **Host 2**.
-
-.. admonition:: **Test your knowledge:**
-
- When **Leaf 4** receives the incoming routes from **Spine 2**, why can we not reach all the infrastructure IP addresses?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show ip route
- - show ip route bgp
- - show ip bgp summary
- - show ip bgp
- - show ip bgp neighbors advertised-routes
- - show ip bgp neighbors received-routes
diff --git a/topologies/datacenter/labguides/source/media-multicast.rst b/topologies/datacenter/labguides/source/media-multicast.rst
deleted file mode 100644
index b792ec077..000000000
--- a/topologies/datacenter/labguides/source/media-multicast.rst
+++ /dev/null
@@ -1,421 +0,0 @@
-Advanced Networking for Media Engineers
-=======================================
-
-.. thumbnail:: images/media_multicast/media_multicast.png
- :align: center
-
- Click image to enlarge
-
-.. note:: To simplify the training using our multicast topology, this exercise will disable Leaf2 and Leaf3. This lab is a continuation of the concepts from the previous Broadcast Engineer Labs
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` to go back).
- 3. Type ``media-mcast`` at the prompt. The script will pre-configure the topology with the exception of Leaf4 and Hosts 1 & 2.
-
-2. Create Vlan 46 & SVI for host access vlan on **Leaf 4**.
- 1. On **Leaf 4** we will create an vlan and a SVI
-
- .. code-block:: text
-
- vlan 46
- !
- interface Vlan46
- no autostate
- ip address 172.16.46.4/24
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#vlan 46
- leaf4(config)#interface vlan 46
- leaf4(config-if-Vl46)#no autostate
- leaf4(config-if-Vl46)#ip address 172.16.46.4/24
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et6, Et7, Et8, Et9, Et10, Et11
- Et12, Et13, Et14, Et15, Et16
- Et17, Et18, Et19, Et20, Et21
- Et22, Et23, Et24, Et25, Et26
- Et27, Et28, Et29, Et30, Et31
- Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 46 VLAN0046 active Cpu
-
-
- leaf4(config)#show ip int brief
- Interface IP Address Status Protocol MTU
- Management1 192.168.0.17/24 down notpresent 1500
- Vlan46 172.16.46.4/24 up up 1500
-
-
-3. Create connectivity for **Host 2** on **Leaf 4**
- 1. On **Leaf 4**, interface *Ethernet 4* is attached to **Host 2**, associate the port as access vlan 46.
-
- .. code-block:: text
-
- interface Ethernet4
- switchport access vlan 46
- no shutdown
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#switchport access vlan 46
- leaf4(config-if-Et4)#no shutdown
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et6, Et7, Et8, Et9, Et10, Et11
- Et12, Et13, Et14, Et15, Et16
- Et17, Et18, Et19, Et20, Et21
- Et22, Et23, Et24, Et25, Et26
- Et27, Et28, Et29, Et30, Et31
- Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 46 VLAN0046 active Cpu, Et4
-
-
-4. Create uplink connectivity to **Spine 2**
- 1. On **Leaf 4**, *Ethernet 3* is connected to **Spine 2**. Create a routed port for uplink access
-
- .. code-block:: text
-
- interface Ethernet3
- no switchport
- mtu 9214
- ip address 172.16.200.26/30
- no shutdown
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#interface ethernet 3
- leaf4(config-if-Et3)#no switchport
- leaf4(config-if-Et3)#ip address 172.16.200.26/30
- leaf4(config-if-Et3)#mtu 9214
- leaf4(config-if-Et3)#no shutdown
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4#sh ip int br
- Interface IP Address Status Protocol MTU
- Ethernet3 172.16.200.26/30 up up 1500
- Management1 192.168.0.17/24 down notpresent 1500
- Vlan46 172.16.46.4/24 up up 1500
-
-
-5. Enable OSPF & verify connectivity
- 1. On **Leaf 4**, create a loopback interface & assign an IP to be used as the Router-ID. On **Leaf 4**, enable the OSPF routing process and assign the networks to be advertised
-
- .. code-block:: text
-
- interface Loopback0
- ip address 172.16.0.4/32
- !
- router ospf 6500
- router-id 172.16.0.4
- passive-interface Loopback0
- passive-interface Vlan46
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.46.0/24 area 0.0.0.0
- network 172.16.200.24/30 area 0.0.0.0
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#interface loopback 0
- leaf4(config-if-Lo0)#ip address 172.16.0.4/32
- leaf4(config-if-Lo0)#
- leaf4(config-if-Lo0)#router ospf 6500
- leaf4(config-router-ospf)#router-id 172.16.0.4
- leaf4(config-router-ospf)#passive-interface loopback 0
- leaf4(config-router-ospf)#passive-interface vlan46
- leaf4(config-router-ospf)#network 172.16.0.0/24 area 0.0.0.0
- leaf4(config-router-ospf)#network 172.16.46.0/24 area 0.0.0.0
- leaf4(config-router-ospf)#network 172.16.200.24/30 area 0.0.0.0
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config-router-ospf)#show ip int br
- Interface IP Address Status Protocol MTU
- Ethernet3 172.16.200.26/30 up up 1500
- Loopback0 172.16.0.4/32 up up 65535
- Management1 192.168.0.17/24 down notpresent 1500
- Vlan46 172.16.46.4/24 up up 1500
-
-
-
- 2. Issue a ``show ip route`` command on Leaf 4. Output should show the following networks from Leaf 1 being advertised and shows a Full/BR state with Leaf 1, its neighbor.
-
- **Routing Table Example:**
-
- .. code-block:: text
-
- leaf4#show ip route
-
- leaf4(config-if-Et3)#show ip route | begin Gateway
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- O 172.16.0.1/32 [110/40] via 172.16.200.25, Ethernet3
- O 172.16.0.2/32 [110/30] via 172.16.200.25, Ethernet3
- O 172.16.0.3/32 [110/20] via 172.16.200.25, Ethernet3
- C 172.16.0.4/32 is directly connected, Loopback0
- O 172.16.15.0/24 [110/40] via 172.16.200.25, Ethernet3
- C 172.16.46.0/24 is directly connected, Vlan46
- O 172.16.200.0/30 [110/30] via 172.16.200.25, Ethernet3
- C 172.16.200.24/30 is directly connected, Ethernet3
- O 172.16.200.32/30 [110/20] via 172.16.200.25, Ethernet3
- C 192.168.0.0/24 is directly connected, Management1
-
-
- **OSPF Neighbor Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#show ip ospf neighbor
- Neighbor ID VRF Pri State Dead Time Address Interface
- 172.16.0.3 default 1 FULL/DR 00:00:37 172.16.200.25 Ethernet3
-
-
-6. Test End to End Connectivity on From Host 2
- 1. Issue a ping command from **Host 2** in network 172.16.46.0/24 to **Host 1** on 172.16.15.0/2
-
- .. code-block:: text
-
- Select Host 2 from main menu
- Confirm Gateway of Host 1 is accessible at 172.16.15.1 and the Host 1 At 172.16.15.5
-
- ping 172.16.15.1
- ping 172.16.15.5
-
- ex.
- host2# ping 172.16.15.1
- host2# ping 172.16.15.5
-
- Ensure you have connectivity before commencing the next step
-
-7. Enabling Multicast Routing
- 1. On **Leaf 4**, enable multicast routing using the following commands; We will be enabling multicast routing on Leaf 4 and assigning the interfaces to participate in multicast routing. As well we will define the RP address on the switch.
-
-
- .. code-block:: text
-
- !
- router multicast
- ipv4
- software-forwarding sfe
- !
- ip pim rp-address 172.16.0.1
- !
- interface Vlan46
- ip pim sparse-mode
- !
- !
- interface Ethernet3
- ip pim sparse-mode
- !
-
- .. note:: In this lab environment, we will be leveraging the software based forwarding agent for multicast.
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#router multicast
- leaf4(config-router-multicast)#ipv4
- leaf4(config-router-multicast-ipv4)#software-forwarding sfe
- leaf4(config)#ip pim rp-address 172.16.0.1
- leaf4(config)#int vlan 46
- leaf4(config-if-Vl46)#ip pim sparse-mode
- leaf4(config-if-Vl46)#int et3
- leaf4(config-if-Et3)#ip pim sparse-mode
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#sh ip pim rp
- Group: 224.0.0.0/4
- RP: 172.16.0.1
- Uptime: 0:02:56, Expires: never, Priority: 0, Override: False
-
- leaf4(config-if-Et3)#show ip pim neighbor
- PIM Neighbor Table
- Neighbor Address Interface Uptime Expires Mode
- 172.16.200.25 Ethernet3 00:02:41 00:01:32 sparse
-
-
-8. Start Server on the Host 1
- 1. Going back to the menu screen, select **Host 1**. Enter the bash prompt on from the CLI prompt and enable the source. This will run for 1800 seconds
-
- **Example:**
-
- .. code-block:: text
-
- On Host 1 type the following:
- host1# bash
- [arista@host1 ~]$ /mnt/flash/mcast-source.sh
-
- **Verification:**
-
- .. code-block:: text
-
- [arista@host1 flash]$ ./mcast-source.sh
- ------------------------------------------------------------
- [arista@host1 flash]$ Client connecting to 239.103.1.1, UDP port 5001
- Sending 1470 byte datagrams
- Setting multicast TTL to 10
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- [ 3] local 10.33.157.26 port 38605 connected with 239.103.1.1 port 5001
- ------------------------------------------------------------
- Client connecting to 239.103.1.3, UDP port 5001
- Sending 1470 byte datagrams
- Setting multicast TTL to 10
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- ------------------------------------------------------------
- Client connecting to 239.103.1.2, UDP port 5001
- Sending 1470 byte datagrams
- Setting multicast TTL to 10
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- [ 3] local 10.33.157.26 port 53682 connected with 239.103.1.2 port 5001
- [ 3] local 10.33.157.26 port 40187 connected with 239.103.1.3 port 5001
- [ ID] Interval Transfer Bandwidth
- [ 3] 0.0- 1.0 sec 31.6 KBytes 259 Kbits/sec
-
-
- Open a new ssh session leaving the source script running
-
-
-9. Start Receiver on Host 2
- 1. Going back to the menu screen, select Host 2. Enter the bash prompt on from the CLI prompt and enable the receiver.
-
- **Example:**
-
- .. code-block:: text
-
- On Host 2 type the following:
- host2# bash
- [arista@host2 ~]$ /mnt/flash/mcast-receiver.sh
-
- **Verification:**
-
- .. code-block:: text
-
- [arista@host2 ~]$ /mnt/flash/mcast-receiver.sh
- [arista@host2 ~]$ ------------------------------------------------------------
- Server listening on UDP port 5001
- Binding to local address 239.103.1.1
- Joining multicast group 239.103.1.1
- Receiving 1470 byte datagrams
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- ------------------------------------------------------------
- Server listening on UDP port 5001
- Binding to local address 239.103.1.2
- Joining multicast group 239.103.1.2
- Receiving 1470 byte datagrams
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
-
- Open a new ssh session leaving the receiver script running
-
-10. Observe the multicast table on **Leaf 1**
- 1. On **Leaf 1**, observe the multicast table for the source.
-
- **Example:**
-
- .. code-block:: text
-
- leaf1#show ip mroute
-
- RPF route: U - From unicast routing table
- M - From multicast routing table
- 239.103.1.1
- 0.0.0.0, 0:01:56, RP 172.16.0.1, flags: W
- Incoming interface: Register
- Outgoing interface list:
- Ethernet2
- 172.16.15.5, 0:02:24, flags: SLN
- Incoming interface: Vlan15
- RPF route: [U] 172.16.15.0/24 [0/1]
- Outgoing interface list:
- Ethernet2
- 239.103.1.2
- 0.0.0.0, 0:01:56, RP 172.16.0.1, flags: W
- Incoming interface: Register
- Outgoing interface list:
- Ethernet2
- 172.16.15.5, 0:02:24, flags: SLN
- Incoming interface: Vlan15
- RPF route: [U] 172.16.15.0/24 [0/1]
- Outgoing interface list:
- Ethernet2
- 239.103.1.3
- 172.16.15.5, 0:02:24, flags: SLN
- Incoming interface: Vlan15
- RPF route: [U] 172.16.15.0/24 [0/1]
- Outgoing interface list:
- Ethernet2
-
-11. Observe the multicast table on **Leaf 4**
- 1. On **Leaf 4**, observe the multicast table for the receiver using the CLI
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#show ip mroute
-
- RPF route: U - From unicast routing table
- M - From multicast routing table
- 239.103.1.1
- 0.0.0.0, 0:00:17, RP 172.16.0.1, flags: W
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.0.3/32 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
- 172.16.15.5, 0:00:13, flags: S
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.15.0/24 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
- 239.103.1.2
- 0.0.0.0, 0:00:17, RP 172.16.0.1, flags: W
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.0.3/32 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
- 172.16.15.5, 0:00:13, flags: S
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.15.0/24 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
-
-**LAB COMPLETE**
diff --git a/topologies/datacenter/labguides/source/media-ospf.rst b/topologies/datacenter/labguides/source/media-ospf.rst
deleted file mode 100644
index 32986ad08..000000000
--- a/topologies/datacenter/labguides/source/media-ospf.rst
+++ /dev/null
@@ -1,325 +0,0 @@
-Media OSPF Lab
-==============
-
-.. thumbnail:: images/media_ospf/media_ospf.png
- :align: center
-
- Click image to enlarge
-
-.. note:: Did you know the OSPF algorithm is considered a link-state protocol, based on the Dijkstra Shortest Path Algorithm? It is a common protocol used in a number of widely deployed environments in various industries.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` to go back).
- 3. Type ``media-ospf`` at the prompt. The script will configure the topology with the exception of **Leaf 4**.
-
- 4. On **Spine 2**, verify OSPF operation (it should not be operating correctly) and you will see all the routes currently in the environment.
-
- .. code-block:: text
-
- show ip ospf neighbor
- show ip ospf interface
- show ip ospf database
- show ip route
-
-
-
- **Example:**
-
- .. code-block:: text
-
- spine2#show ip ospf neighbor
- Neighbor ID VRF Pri State Dead Time Address Interface
- 10.127.255.2 default 1 FULL/BDR 00:00:35 10.127.23.2 Ethernet1
-
- spine2#show ip ospf interface
- Loopback0 is up
- Interface Address 10.127.255.3/32, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.3
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0 (Passive Interface)
- No authentication
- Ethernet5 is up
- Interface Address 10.127.34.3/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.3
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0
- No authentication
- Ethernet1 is up
- Interface Address 10.127.23.3/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.3
- Backup Designated Router is 10.127.255.2
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 1
- No authentication
-
- spine2#show ip ospf database
-
- OSPF Router with ID(10.127.255.3) (Process ID 100) (VRF default)
-
-
- Router Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum Link count
- 10.127.255.2 10.127.255.2 344 0x80000007 0x5d3 3
- 10.127.255.1 10.127.255.1 346 0x80000006 0x2433 3
- 10.127.255.3 10.127.255.3 343 0x80000006 0xbe99 3
-
- Network Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum
- 10.127.23.3 10.127.255.3 343 0x80000001 0x836e
- 10.127.12.2 10.127.255.2 344 0x80000001 0xf40c
-
- spine2#show ip route
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- O 10.127.12.0/24 [110/20] via 10.127.23.2, Ethernet1
- C 10.127.23.0/24 is directly connected, Ethernet1
- C 10.127.34.0/24 is directly connected, Ethernet5
- O 10.127.255.1/32 [110/30] via 10.127.23.2, Ethernet1
- O 10.127.255.2/32 [110/20] via 10.127.23.2, Ethernet1
- C 10.127.255.3/32 is directly connected, Loopback0
- O 172.16.15.0/24 [110/30] via 10.127.23.2, Ethernet1
- C 192.168.0.0/24 is directly connected, Management1
-
-
- All the route entries with a preceding "O" was learned by the OSPF protocol on **Spine 2**.
-
-2. Configure OSPF on the **Leaf 4** switch using the following criteria:
-
- 1. Configure the Ethernet 3, Ethernet 4, Loopback 0 interfaces and the OSPF router process on **Leaf4** to be used for OSPF communication to the adjacent devices (**Spine 2** in this case)
-
- .. code-block:: text
-
- configure
- interface loopback 0
- ip address 10.127.255.4/32
- interface ethernet 3
- no switchport
- ip address 10.127.34.4/24
- interface ethernet 4
- no switchport
- ip address 172.16.46.4/24
- router ospf 100
- router-id 10.127.255.4
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#int et 3
- leaf4(config-if-Et3)#no switchport
- leaf4(config-if-Et3)#ip address 10.127.34.4/24
- leaf4(config)#int et 4
- leaf4(config-if-Et4)#no switchport
- leaf4(config-if-Et4)#ip address 172.16.46.4/24
- leaf4(config)#int lo 0
- leaf4(config-if-Lo0)#ip address 10.127.255.4/32
- leaf4(config)#router ospf 100
- leaf4(config-router-ospf)#router-id 10.127.255.4
-
-
- .. note::
- All interfaces are point-to-point connections in the OSPF lab, no trunk or access ports
-
- 2. Specify the network statement which encompasses all the interfaces that will take part in the OSPF process.
-
- .. code-block:: text
-
- configure
- router ospf 100
- network 10.127.0.0/16 area 0.0.0.0
- network 172.16.46.0/24 area 0.0.0.0
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#configure
- leaf4(config)#router ospf 100
- leaf4(config-router-ospf)#network 10.127.0.0/16 area 0.0.0.0
- leaf4(config-router-ospf)#network 172.16.46.0/24 area 0.0.0.0
-
-
- .. note::
- All interfaces which fall into the range of the network statement will take part in the OSPF process and listen for and send out hello packets.
-
- 3. Certain interfaces do not need to take part in the OSPF process but we still want the IP's to be advertised out. This is where we leverage the "passive-interface" setting to allow this. These interfaces will still be associated in the area in which the network statement is associated to.
-
- .. code-block:: text
-
- configure
- router ospf 100
- passive-interface loopback0
- passive-interface ethernet4
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#router ospf 100
- leaf4(config-router-ospf)#passive-interface loopback 0
- leaf4(config-router-ospf)#passive-interface ethernet4
-
-
- 4. Confirm the OSPF neighbor relationship has been established and the routing table on **Leaf 4** has been populated with the appropriate entries.
-
- .. code-block:: text
-
- show ip ospf neighbor
- show ip ospf interface
- show ip ospf database
- show ip route
-
- **Example**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#show ip ospf neighbor
- Neighbor ID VRF Pri State Dead Time Address Interface
- 10.127.255.3 default 1 FULL/DR 00:00:31 10.127.34.3 Ethernet3
-
- leaf4(config-if-Et4)#show ip ospf interface
- Loopback0 is up
- Interface Address 10.127.255.4/32, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.4
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0 (Passive Interface)
- No authentication
- Ethernet3 is up
- Interface Address 10.127.34.4/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State Backup DR, Priority 1
- Designated Router is 10.127.255.3
- Backup Designated Router is 10.127.255.4
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 1
- No authentication
- Ethernet4 is up
- Interface Address 172.16.46.4/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.4
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0
- No authentication
-
- leaf4(config-if-Et4)#sh ip ospf database
-
- OSPF Router with ID(10.127.255.4) (Process ID 100) (VRF default)
-
-
- Router Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum Link count
- 10.127.255.1 10.127.255.1 863 0x80000009 0x1e36 3
- 10.127.255.2 10.127.255.2 861 0x8000000a 0xfed6 3
- 10.127.255.4 10.127.255.4 339 0x80000007 0xde1f 3
- 10.127.255.3 10.127.255.3 1181 0x80000009 0x5e46 3
-
- Network Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum
- 10.127.23.3 10.127.255.3 860 0x80000004 0x7d71
- 10.127.34.3 10.127.255.3 1181 0x80000001 0x26be
- 10.127.12.2 10.127.255.2 861 0x80000004 0xee0f
-
- leaf4(config-if-Et4)#sh ip route
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- O 10.127.12.0/24 [110/30] via 10.127.34.3, Ethernet3
- O 10.127.23.0/24 [110/20] via 10.127.34.3, Ethernet3
- C 10.127.34.0/24 is directly connected, Ethernet3
- O 10.127.255.1/32 [110/40] via 10.127.34.3, Ethernet3
- O 10.127.255.2/32 [110/30] via 10.127.34.3, Ethernet3
- O 10.127.255.3/32 [110/20] via 10.127.34.3, Ethernet3
- C 10.127.255.4/32 is directly connected, Loopback0
- O 172.16.15.0/24 [110/40] via 10.127.34.3, Ethernet3
- C 172.16.46.0/24 is directly connected, Ethernet4
- C 192.168.0.0/24 is directly connected, Management1
-
- The routing table output should list all routing entries in this topology to ensure connectivity.
-
-3. Validate end-to-end connectivity once OSPF neighbor relationship has been established.
-
- 1. Log into **Host 2** and verify connectivity with **Host 1**.
-
- .. code-block:: text
-
- ping 172.16.15.5
-
- **Example:**
-
- .. code-block:: text
-
- host2# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=60 time=99.5 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=60 time=102 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=60 time=165 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=60 time=161 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=60 time=158 ms
-
- --- 172.16.15.5 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 40ms
- rtt min/avg/max/mdev = 99.508/137.682/165.494/29.858 ms, pipe 5, ipg/ewma 10.149/120.314 ms
-
-
- If OSPF settings have been configured correctly and the routing table on **Leaf 4** has converged then **Host 1** should be reachable from **Host 2**.
-
-.. admonition:: **Test your knowledge:**
-
- When inspecting the routing table on **Leaf 4**, why are all the infrastructure IP address in there? What are the positive and negative results of that?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show ip ospf neighbor
- - show ip ospf interface
- - show ip ospf database
- - show ip route
diff --git a/topologies/datacenter/labguides/source/mlag.rst b/topologies/datacenter/labguides/source/mlag.rst
deleted file mode 100644
index 830fa4dbe..000000000
--- a/topologies/datacenter/labguides/source/mlag.rst
+++ /dev/null
@@ -1,156 +0,0 @@
-MLAG
-====
-
-.. thumbnail:: images/mlag/nested_mlag_topo_1.png
- :align: center
-
- Click image to enlarge
-
-.. note:: Did you know the “mlag” script is composed of Python code that
- uses the CloudVision Portal REST API to automate the provisioning of
- CVP Configlets. The configlets that are configured via the REST API
- are ``Spine1-MLAG-Lab``, ``Spine2-MLAG-Lab``, ``Leaf1-MLAG-Lab``,
- ``Leaf2-MLAG-Lab``, ``Leaf3-MLAG-Lab``. In addition each switch also
- gets the ``VLANs`` configlet.
-
-.. note:: The manually-entered commands below that are part of this lab are
- equivalent to ``Leaf4-MLAG-Lab``.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``mlag`` at the prompt. The script will configure the datacenter with the exception of **Leaf4**.
- 2. On **Leaf3**, verify MLAG operation (it should not be operating correctly)
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
-
-2. Configure MLAG on the **Leaf4** switch using the following criteria
-
- 1. Configure Port-channel on **Leaf4** to used for MLAG communication between **Leaf3** & **Leaf4**.
-
- .. code-block:: text
-
- configure
- interface port-channel 10
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
-
- interface ethernet 1,6
- description MLAG PEER LINK - LEAF3
- channel-group 10 mode active
-
- .. note::
- A *channel-group* is a group of interfaces on a single Arista switch. A *channel-group* is associated with a *port-channel* interface immediately upon its creation. The *channel-group* command implicitly creates the matching *port-channel* with the same ID, which is *10* in this case. The *switchport mode trunk* command allows all VLANs on *port-channel 10*.
-
- 2. Verify switching operation
-
- .. code-block:: text
-
- show interfaces status
- show lldp neighbors
- show interfaces trunk
-
- .. note::
- Each switch is assigned a globally unique sysID by concatenating the 16-bit system priority to a 48-bit MAC address of one of the switch's physical ports. This sysID is used by peer devices when forming an aggregation to verify that all links are from the same switch - for environments where the MLAG peer link contains multiple physical links - which it does NOT in this example. A *trunk group* is the set of physical interfaces that comprise the trunk and the collection of VLANs whose traffic is carried on the trunk. The traffic of a VLAN that belongs to one or more trunk groups is carried only on ports that are members of trunk groups to which the VLAN belongs, i.e., VLANs configured in a *trunk group* are ‘pruned’ off all ports that are not associated with the trunk group. The spanning-tree protocol (STP) is disabled for the peer-link VLAN 4094 to prevent any potential STP disruption on the interpeer communications link. Since VLAN 4094 has been restricted to only be on the peer-link (Po10) by *trunk group MLAGPEER* & *switchport trunk group MLAGPEER* (see step #2.3) the chance of a loop is eliminated. To prevent loops do NOT add this *trunk group MLAGPEER* to any other interface links.
-
- 3. Configure the MLAG VLAN (both Layer 2 and Layer 3).
-
- .. code-block:: text
-
- configure
- vlan 4094
- trunk group MLAGPEER
-
- interface port-channel 10
- switchport trunk group MLAGPEER
-
- no spanning-tree vlan-id 4094
-
- interface vlan 4094
- description MLAG PEER LINK
- ip address 172.16.34.2/30
-
- ping 172.16.34.1
-
- .. note::
- The *ip address 172.16.34.2/30* (see step #2.3) assigned to one side of the peer-link can be any unicast address that does not conflict with any SVIs on the same switch. The *local-interface vlan 4094* command (see step #2.4) specifies the SVI upon which the switch sends MLAG control traffic. The IP address is specified within the definition of the VLAN associated with this local interface, which you already performed earlier above. While the peer-link's (designated with the command *peer-link port-channel 10* (see below)) primary purpose is to exchange MLAG control information between the 2 peer switches, it also carries dataplane traffic from devices that are attached to only 1 MLAG peer & have no alternative path. This peer-link can also carry traffic in topology failure scenarios (i.e. one of these peer-link switches loses all its uplinks to the spine switches). The *domain-id MLAG34* command determines the MLAG domain that consists of these 2 peer switches & the links that connect these 2 switches. The *domain-id* is case-sensitive and must match the same *domain-id* on the other peer switch.
-
- 4. Define the MLAG Domain.
-
- .. code-block:: text
-
- configure
- mlag
- domain-id MLAG34
- local-interface vlan 4094
- peer-address 172.16.34.1
- peer-link port-channel 10
-
- 5. Configure Port-channels and interfaces on **Leaf4** connecting to **Spine1** & **Spine2**.
-
- .. code-block:: text
-
- configure
- interface port-channel 34
- description MLAG - SPINE1 & 2
- switchport mode trunk
- mlag 34
-
- interface ethernet 2
- description SPINE1
- channel-group 34 mode active
-
- interface ethernet 3
- description SPINE2
- channel-group 34 mode active
-
- .. note::
- The *mlag 34* (see #2.5) assigns an MLAG ID to *interface port-channel 34*. MLAG peer switches form an MLAG when each switch configures the same MLAG ID to a port-channel interface. This is **different** than the MLAG *domain-id* (see #2.4). The global-scope *mlag* command above (see #2.4) just enters the global MLAG configuration scope of the Arista switch.
-
- 6. Configure Port-channels on **Leaf4** connecting to **Host2**
-
- .. code-block:: text
-
- configure
- interface port-channel 4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
-
- interface ethernet 4
- description HOST2
- channel-group 4 mode active
-
- interface ethernet5
- shutdown
-
-3. Validate MLAG on the **Leaf4** switch using the following:
-
- 1. Verify MLAG operation
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
-
- 2. Verify switching operation
-
- .. code-block:: text
-
- show interfaces status
- show lldp neighbors
- show interfaces trunk
-
- 3. Validate connectivity from **Host1** to **Host2** by logging into **Host1** through the menu (option 1 in ssh menu) or using screen.
-
- .. code-block:: text
-
- ping 172.16.112.202
-
-|
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/labguides/source/programmability_connecting.rst b/topologies/datacenter/labguides/source/programmability_connecting.rst
deleted file mode 100644
index 390c75234..000000000
--- a/topologies/datacenter/labguides/source/programmability_connecting.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-Connecting to your lab machine
-==============================
-.. note:: Please skip to step 2, if you have not run any previous labs or this is the first lab you are running.
-
-1. Before we begin, let's reset the environment to clear out previous lab changes.
-If the environment was brought up fresh and you are starting from this point, you can skip step #1.
-
-SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-You will be greeted with the following menu:
-
-
-.. image:: images/program_connecting/nested_connecting_2.png
- :align: center
-
-|
-
-Select option **1** (**Reset All Devices to Base ATD**), wait til the command has completed, then log out.
-
-|
-
-2. Now we need to make sure that you can access your handy lab machine! You should have received your login
-information (a URL) from your friendly Arista SE already. If you have not, please reach out and ask for one.
-
-Once you receive your token, click on the link. You will greeted with a
-screen that looks like this:
-
-.. image:: images/program_connecting/nested_connecting_landing_1.png
- :align: center
-|
-For these labs, we will be leveraging the **Console Access**, **Programmability IDE** and **WebUI** services. Connect to each of the service by clicking on the corresponding links on the left side.
-Each service will open in a new tab in your browser.
-
-.. image:: images/program_connecting/nested_connecting_overview_1.png
- :align: center
-|
-To access each of the services, the credentials are listed on the **Arista Test Drive Lab** overview page in the **Usernames and Passwords** section.
-
-These services will be used to provide a ssh access to the lab, coding IDE, and a WebUI for the upcoming programmability labs.
diff --git a/topologies/datacenter/labguides/source/pyeapi.rst b/topologies/datacenter/labguides/source/pyeapi.rst
deleted file mode 100644
index 3e49a6346..000000000
--- a/topologies/datacenter/labguides/source/pyeapi.rst
+++ /dev/null
@@ -1,118 +0,0 @@
-pyeapi
-======
-
-In this lab we will still use Python, but this time with Arista’s pyeapi
-module. If you recall from the last lab, a module is a way of enhancing
-the capability of native Python.
-
-Pyeapi is a wrapper around eAPI that abstracts common EOS commands into
-a more programmatic style. This allows someone without a heavy network
-background to easily interact with an Arista device. In other words,
-instead of issuing ``enable; configure; vlan 100; name foo``, we can
-use ``vlans.set_name(100,'foo')``. While that may look similar, the
-abstracted way is easier to implement in Python because it shortcuts
-some of the steps, and someone that only knows they need to create a
-VLAN can grok it without having to know the EOS command line.
-
-Click \ `here `__\ for
-pyeapi documentation.
-
-.. note:: While Arista switches have a fully functional Python
- installation, please make sure to usedevboxfor the scripting part of this lab.
-
-Your first pyeapi script
-------------------------
-
-For your first pyeapi script, we are going to add a new user:testuser.
-We will use the following script:
-
-.. code-block:: python
-
- #!/usr/bin/env python3
-
- import pyeapi
-
- node = pyeapi.connect(host='192.168.0.12',username='arista',password='{REPLACE_PWD}',return_node=True)
-
- users = node.api('users')
-
- users.create('testuser',secret='foo')
- users.set_privilege('testuser',value='15')
- users.set_role('testuser',value='network-admin')
-
-What does this script do?
-
-**import pyeapi** - this imports the pyeapi module.
-
-**node = pyeapi.connect(host='192.168.0.12',username='arista',password='{REPLACE_PWD}',return_node=True)** -
-instantiates the variable ``node``, and uses pyeapi to create a connection to
-the switch using the username of ``arista`` and the
-password ``{REPLACE_PWD}``. ``return_node`` allows you to use the node object to consume
-the API with - don’t focus on this one for now, let’s just roll with the
-rest of the script.
-
-**users = node.api('users')** - creates a new variable ``users`` and specifies
-the API submodule ``users``. This tells Python we want to create a user using
-pyeapi.
-
-**users.create('testuser',secret='foo')** - Using the Users API, we use
-the ``create`` method. ``testuser`` is the username, and the password is ``foo``.
-
-**users.set_privilege('testuser',value='15')** - Using the Users API, we use
-the ``set_privilege`` method. ``testuser`` is the username which was created in
-the last step, and the privilege level is ``15``.
-
-**users.set_role('testuser',value='network-admin')** - Using the Users API,
-we use the ``set_role`` method. ``testuser`` is the username which was created in
-the last step, and the Arista role is the predefined default role of
- ``network-admin``.
-
-Write it
-~~~~~~~~
-
-Create a new file in the IDE and either write or paste the code
-in. Save it to your labfiles directory as ``/home/coder/project/labfiles/add_user.py``.
-
-Run it
-~~~~~~
-
-Run the script the same way you did in the previous lab (``python3
-add_user.py``) - allowing for the different file name.
-Wait, you didn’t save over your previous work did you?!
-
---------------
-
-Let’s take a look and see if the user has been added switch to your
-virtual switch. Let's open a new Terminal window, by clicking on the **+** in the Terminal window.
-
-.. image:: images/pyeapi/nested_pyeapi_1.png
- :align: center
-
-
-Let's ssh directly to the switch.
-
-.. code-block:: shell
- ssh arista@192.168.0.12
-
- ``show run section username``.
-
-.. image:: images/pyeapi/nested_pyeapi_2.png
- :align: center
-
-**Success!**
-
-Advanced
---------
-
-Write a script that adds more than one user.
-
-Bonus
------
-
-Using the\ `pyeapi
-documentation `__\ ,
-create a new script that creates a VLAN and then adds it to ``interface
-Ethernet1`` as a ``switchport access vlan``.
-
-.. note:: Check out the config example, as well as Modules > API > switchports and vlans.
-
diff --git a/topologies/datacenter/labguides/source/rollback.rst b/topologies/datacenter/labguides/source/rollback.rst
deleted file mode 100644
index 0985fc442..000000000
--- a/topologies/datacenter/labguides/source/rollback.rst
+++ /dev/null
@@ -1,123 +0,0 @@
-Rollback
-========
-
-Oops. We’ve made a horrible mistake and we need to roll it back before
-anyone notices.
-
-Fortunately, using Git we have a record of what changed and we can
-revert everything back to the previous ``commit``. Once we revert the change,
-Jenkins will see see it and run your playbook again, undoing the changes
-that we just made.
-
-Step #1: See the diff(erence)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Before we roll back, let’s check what Git has on record. To do that,
-we’re going to have to get the checksum of the first commit in Lab #6
-and the checksum of the commit after you added VLAN 2000 and 3000. Once
-we get the checksums, we can ``diff`` them. ``Diff`` shows the difference between
-two items.
-
-To find the checksums, we need to use the ``git reflog`` command
-in the **IDE** terminal. The ``git reflog`` command lists every commit, their checksum, their
-distance from the current commit, and the commit message.
-
-Run ``git reflog`` inside your lab6 directory (``~/project/labfiles/lab6/lab``):
-
-.. code-block:: bash
-
- lab git:(master) git reflog
- 116aaae (HEAD -> master, origin/master) HEAD@{0}: commit: Added VLAN 2000 and 3000
- 2ad37af HEAD@{1}: commit (initial): Initial commit
-
-Note the two checksums, ``116aaae`` and ``2ad37af`` (In this example). Let’s diff them with ``git diff
-2ad37af 116aaae``.
-
-.. note:: Your checksums will be different than in this lab guide. Please
- make sure to use your checksums from git reflog and not the ones in
- the guide.
-
-.. code-block:: bash
-
- lab git:(master) git diff 2ad37af 116aaae
- diff --git a/group_vars/leafs.yml b/group_vars/leafs.yml
- index 9481c0c..e6040b8 100644
- --- a/group_vars/leafs.yml
- +++ b/group_vars/leafs.yml
- @@ -8,4 +8,9 @@ provider:
- eos_purge_vlans: true
- vlans:
- - vlanid: 1001
- - name: default
- + name: default
- + - vlanid: 2000
- + name: production
- + - vlanid: 3000
- + name: development
-
-The ``diff`` shows - next to lines that were removed. If we roll back, we would
-lose anything that’s different. We did want to roll those VLANs back,
-right? We’re good to go!
-
-Step #2: Revert the change
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To roll back, we need to use the ``git revert`` command, coupled
-with ``HEAD``. ``HEAD`` is the Git method of saying the last commit (in the
-checked out branch). If you revert the last commit it will bring you
-back to the commit before the latest commit.
-
-You can also use this command to revert to any other commit - useful if
-you want to roll back to 2 weeks and 30 commits ago.
-
-Let’s revert with ``git revert HEAD``.
-
-.. code-block:: bash
-
- lab git:(master) git revert HEAD
-
-A window will pop up asking you to enter a commit message. Let’s just
-stick with the default. Hit **Ctrl-X** to save.
-
-.. code-block:: bash
-
- lab git:(master) git revert HEAD
- [master 9534ae0] Revert "Added VLAN 2000 and 3000"
- 1 file changed, 0 insertion(+), 4 deletions(-)
-
-Note the 4 deletions - those are the 4 lines in the ``diff`` above. If you
-were to open your group_vars file, you would see that those lines are
-now missing.
-
-Now if you were to look at your log using git reflog, you will see a
-revert:
-
-.. code-block:: bash
-
- lab git:(master) git reflog
- 9534ae0 (HEAD -> master) HEAD@{0}: revert: Revert "Added VLAN 2000 and 3000"
- 116aaae (origin/master) HEAD@{1}: commit: Added VLAN 2000 and 3000
- 2ad37af HEAD@{2}: commit (initial): Initial commit
-
-Now let's push our changes to our remote repo so Jenkins can pick up on the changes
-
-.. code-block:: bash
-
- lab git:(master) git push origin master
- Enumerating objects: 7, done.
- Counting objects: 100% (7/7), done.
- Delta compression using up to 24 threads
- Compressing objects: 100% (3/3), done.
- Writing objects: 100% (4/4), 440 bytes | 440.00 KiB/s, done.
- Total 4 (delta 1), reused 0 (delta 0)
- To /home/coder/project/labfiles/lab6/repo
- 116aaae..9534ae0 master -> master
-
-Hurray!
-
-Step #3: Watch Jenkins undo
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Go back into Jenkins and look at the job history for the latest job,
-just like you did in the previous lab. Also, log into your switches and
-notice that the VLANs are no longer present.
diff --git a/topologies/datacenter/labguides/source/tshoot-intro.rst b/topologies/datacenter/labguides/source/tshoot-intro.rst
deleted file mode 100644
index d2f3320d0..000000000
--- a/topologies/datacenter/labguides/source/tshoot-intro.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Troubleshooting Introduction
-============================
-
-.. image:: images/tshoot_intro/tshoot_intro_1.png
- :align: center
-
-.. note:: A set of possible answers are available here_. This hyperlink is only available to Arista employees.
- Please work with your Arista SE for access.
-
-.. _here: https://drive.google.com/file/d/16NJ0hKy2ZfhV4Z4fdLgcp6hBnJ_iIn9P/view?usp=sharing
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` or option ``97`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``troubleshooting`` or option ``3`` at this prompt to open the troubleshooting lab section (If you were previously in the Troubleshooting Labs Menu, you can type ``back`` or option ``97`` to go back).
- 3. Type ``tshoot-intro`` or option ``1`` at the prompt. The script will configure the lab into a errored set of states. It is up to you to determine
- a solution for each of the questions below. There can be many solutions, please work with your SE.
-
-2. Questions
-
- 1. Why can’t Leaf1 ping Host1? Are there multiple ways to fix this?
-
- 2. Why is Leaf2 the spanning tree root for all VLANs?
-
- 3. Why isn’t 172.16.112.0/24 being advertised into BGP?
-
- 4. Why won’t the OSPF adjacency come up between Leaf1 & Spine1?
-
diff --git a/topologies/datacenter/labguides/source/ucn-l2evpn.rst b/topologies/datacenter/labguides/source/ucn-l2evpn.rst
deleted file mode 100644
index 6db5eff41..000000000
--- a/topologies/datacenter/labguides/source/ucn-l2evpn.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-
-L2 EVPN
-=======
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. On **leaf3**, configure ArBGP. **(Already configured and enabled on the switch)**
-
- .. code-block:: html
-
- configure
- service routing protocols model multi-agent
-
-2. Configure interfaces on **leaf3**.
-
- .. code-block:: html
-
- configure
- interface Port-Channel4
- description HOST2
- switchport mode access
- switchport access vlan 12
- !
- interface Ethernet1
- shutdown
- !
- interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.10/30
- !
- interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.26/30
- !
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
- !
- interface Ethernet5
- shutdown
- !
- interface Loopback0
- ip address 172.16.0.5/32
- !
- interface Loopback1
- ip address 3.3.3.3/32
- !
-
-3. Add Underlay BGP configurations on **Leaf3**
-
- .. code-block:: html
-
- configure
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
- !
-
-4. Verify Underlay
-
- 1. On each leaf and spine
-
- .. code-block:: html
-
- show ip bgp summary
- show ip route bgp
-
-5. On **leaf3**, build BGP Overlay
-
- .. code-block:: html
-
- configure
- router bgp 65103
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-6. Verify overlay
-
- 1. On **leaf1** and **leaf3**
-
- .. code-block:: html
-
- show bgp evpn summary
-
-7. Configure L2EVPN
-
- 1. On **leaf3**: add VLAN 12, and interface vxlan1
-
- .. code-block:: html
-
- configure
- vlan 12
- !
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1200
- !
-
- 2. On **leaf3**: add mac vrf
-
- .. code-block:: html
-
- configure
- router bgp 65103
- vlan 12
- rd 3.3.3.3:12
- route-target both 1:12
- redistribute learned
- !
-
-8. Verify VXLAN and L2EVPN
-
- 1. On **leaf1** and **leaf3** verify the IMET table
-
- .. code-block:: text
-
- show interface vxlan1
- show bgp evpn route-type imet
-
- 2. Log into **host1** and ping **host2**
-
- .. code-block:: text
-
- ping 172.16.112.202
-
- 3. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show bgp evpn route-type mac-ip
- show mac address-table dynamic
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/labguides/source/ucn-l3evpn.rst b/topologies/datacenter/labguides/source/ucn-l3evpn.rst
deleted file mode 100644
index 51bab1cc3..000000000
--- a/topologies/datacenter/labguides/source/ucn-l3evpn.rst
+++ /dev/null
@@ -1,171 +0,0 @@
-L3 EVPN
-=======
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. On **leaf3**, configure EOS to Mutli-Agent and add loopback0
-
- 1. **leaf3** enable the Multi-Agent **(Already configured and enabled on the switch)**
-
- .. code-block:: text
-
- configure
- service routing protocols model multi-agent
-
- 2. **leaf3** Underlay Interface configurations. Note the interfaces to **host2** change from previous L2EVPN lab
-
- .. code-block:: text
-
- configure
- interface Port-Channel5
- description HOST2
- switchport access vlan 2003
- no shutdown
- !
- interface Ethernet1
- shutdown
- !
- interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.10/30
- !
- interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.26/30
- !
- interface Ethernet4
- shutdown
- !
- interface Ethernet5
- description HOST2
- channel-group 5 mode active
- no shutdown
- !
- interface Loopback0
- ip address 172.16.0.5/32
- !
- interface Loopback1
- ip address 3.3.3.3/32
- !
-
- 3. On **leaf3** Add Underlay BGP configurations
-
- .. code-block:: text
-
- configure
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65001
- neighbor SPINE bfd
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
-
-2. Verify Underlay on **every** leaf and spine:
-
- .. code-block:: text
-
- show ip bgp summary
- show ip route bgp
-
-3. On **leaf3**, build BGP Overlay
-
- .. code-block:: text
-
- configure
- router bgp 65103
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-4. Verify overlay on **leaf1** and **leaf3**:
-
- .. code-block:: text
-
- show bgp evpn summary
-
-5. Configure L3EVPN
-
- 1. Configure the VRF
-
- .. code-block:: text
-
- configure
- vrf instance vrf1
- !
- ip routing vrf vrf1
- !
- router bgp 65103
- vrf vrf1
- rd 3.3.3.3:1001
- route-target import evpn 1:1001
- route-target export evpn 1:1001
- redistribute connected
- redistribute static
- !
-
- 2. Configure vrf interfaces (start in global configuration mode not BGP)
-
- .. code-block:: text
-
- interface Vlan2003
- mtu 9000
- no autostate
- vrf vrf1
- ip address virtual 172.16.116.1/24
- !
- interface Loopback901
- vrf vrf1
- ip address 200.200.200.2/32
- !
-
- 3. Map VRF to VNI
-
- .. code-block:: text
-
- configure
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vrf vrf1 vni 1001
- !
-
-6. Verify VRF on Leaf 1 and 3 (note route resolution over VNI and dynamic VLAN to VNI mapping)
-
- 1. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show interface vxlan1
-
- 2. Log into **host1** and ping **host2**
-
- .. code-block:: text
-
- ping 172.16.116.100
-
- 3. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show ip route vrf vrf1
- show mac address-table dynamic
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/labguides/source/ucn-l3ls.rst b/topologies/datacenter/labguides/source/ucn-l3ls.rst
deleted file mode 100644
index b1daea2f5..000000000
--- a/topologies/datacenter/labguides/source/ucn-l3ls.rst
+++ /dev/null
@@ -1,191 +0,0 @@
-Layer 3 Leaf-Spine
-==================
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. Configure SVI and VARP Virtual IP on the **Leaf4** switch using the following criteria
-
- 1. Create the vARP MAC Address in Global Configuration mode
-
- .. code-block:: text
-
- configure
- ip virtual-router mac-address 00:1c:73:00:00:34
-
- 2. Create the SVI and the Virtual Router Address
-
- .. code-block:: text
-
- configure
- interface vlan 34
- ip address 172.16.116.3/24
- ip virtual-router address 172.16.116.1
-
- 3. Validate the configuration issue the following commands
-
- .. code-block:: text
-
- show ip interface brief
- show ip virtual-router
-
-2. Configure BGP on the **Leaf4** switch using the following criteria
-
- 1. Based on the diagram, configure L3 interfaces to **Spine1/Spine2** and interface Loopback0
-
- .. code-block:: text
-
- configure
- interface ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.14/30
-
- interface ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.30/30
-
- interface loopback0
- ip address 172.16.0.6/32
-
- 2. Validate the configuration issue the following commands
-
- .. code-block:: text
-
- show ip interface brief
-
- 3. Based on the diagram, turn on BGP and configure the neighbor
- relationships on **Leaf4**. eBGP to **Spine1/Spine2** and iBGP to **Leaf3**.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- router-id 172.16.0.6
- neighbor 172.16.200.13 remote-as 65000
- neighbor 172.16.200.29 remote-as 65000
- neighbor 172.16.34.1 remote-as 65002
- neighbor 172.16.34.1 next-hop-self
-
- .. note:: Since ``neighbor 172.16.34.1 remote-as 65002`` specifies an iBGP
- peering relationship (because the ASN is the same as this switch
- ``65002``) the receiving switch may not have a route to networks more
- than 1 hop away, hence the switches should each advertise that they are
- the next hop via the ``neighbor 172.16.34.1 next-hop-self`` statement. While this scenario is
- only 2 iBGP peers, in a network fabric with several iBGP peers, a
- switch inside an AS (and not on an edge) may not have a route to a
- switch in any external AS.
-
- 4. Validate the configuration and neighbor establishment
-
- .. code-block:: text
-
- show active
- show ip bgp summary
-
-3. Configure networks on **Leaf4** to advertise to **Spine1/Spine2**
-
- 1. Add the following networks to BGP announcements on **Leaf4**:
-
- .. code-block:: text
-
- configure
- router bgp 65002
- network 172.16.0.6/32
- network 172.16.116.0/24
-
- 2. Verify all of the **Spines** and **Leafs** see these new network announcements
-
- .. code-block:: text
-
- show ip route
- show ip bgp
- show ip route bgp
-
- 3. Add in multiple paths by enabling ECMP, on **Leaf4**, jump into BGP configuration mode and add:
-
- .. code-block:: text
-
- configure
- router bgp 65002
- maximum-paths 4 ecmp 4
-
- 4. Check the BGP and IP route tables on each of the **Spines** and **Leafs**
-
- .. code-block:: text
-
- show ip bgp
- show ip route
- show ip route bgp
-
- .. note:: ECMP is now working - notice the new status code in the `show ip bgp` output
-
-4. Validate connectivity from **Host1** to **Host2**. From **Host1** execute:
-
- .. code-block:: text
-
- ping 172.16.116.100
- traceroute 172.16.116.100
-
- 1. Verify Leaf4's IP address is in the traceroute path, either interface 172.16.200.14 via spine1 or interface 172.16.200.30 via spine2.
- If traffic is hashing via leaf3's 172.16.200.10 or 172.16.200.26 interfaces perform the optional ``shutdown`` steps below on **Leaf3**
-
- .. code-block:: text
-
- configure
- router bgp 65002
- neighbor 172.16.200.9 shutdown
- neighbor 172.16.200.25 shutdown
-
- 2. Rerun traceroute/verification from **Host1** to **Host2** then revert the ``shutdown`` changes on **Leaf3**
-
- .. code-block:: text
-
- configure
- router bgp 65002
- no neighbor 172.16.200.9 shutdown
- no neighbor 172.16.200.25 shutdown
-
-5. Other BGP features to play with if you have time:
-
- 1. Route Redistribution: For fun do a ``watch 1 diff show ip route | begin
- Gateway`` on **Leaf1** & **Leaf2** and let those run while you execute the
- command ``redistribute connected`` below on **Leaf3**. You will see new routes being
- injected into the route tables of **Leaf1** & **Leaf2**.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- redistribute connected
-
- 2. Route Maps:
-
- .. code-block:: text
-
- configure
- route-map etc
-
- 3. BFD: BFD is a low-overhead, protocol-independent mechanism which adjacent
- systems can use instead for faster detection of faults in the path between
- them. BFD is a simple mechanism which detects the liveness of a connection
- between adjacent systems, allowing it to quickly detect failure of any
- element in the connection.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- neighbor bfd
-
-6. Troubleshooting BGP:
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip bgp neighbor x.x.x.x
- show run section bgp
- show log
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/labguides/source/ucn-mlag.rst b/topologies/datacenter/labguides/source/ucn-mlag.rst
deleted file mode 100644
index 01fc090d9..000000000
--- a/topologies/datacenter/labguides/source/ucn-mlag.rst
+++ /dev/null
@@ -1,140 +0,0 @@
-MLAG
-====
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. On **Leaf3**, verify MLAG operation (it should not be operating correctly)
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
-
-2. Configure MLAG on the **Leaf4** switch using the following criteria
-
- 1. Configure Port-channel on **Leaf4** to used for MLAG communication between **Leaf3** & **Leaf4**.
-
- .. code-block:: text
-
- configure
- interface port-channel 10
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
-
- interface ethernet 1
- description MLAG PEER LINK - LEAF3
- channel-group 10 mode active
-
- .. note::
- A *channel-group* is a group of interfaces on a single Arista switch. A *channel-group* is associated with a *port-channel* interface immediately upon its creation. The *channel-group* command implicitly creates the matching *port-channel* with the same ID, which is *10* in this case. The *switchport mode trunk* command allows all VLANs on *port-channel 10*.
-
- 2. Verify switching operation
-
- .. code-block:: text
-
- show interfaces status
- show lldp neighbors
- show interfaces trunk
-
- .. note::
- Each switch is assigned a globally unique sysID by concatenating the 16-bit system priority to a 48-bit MAC address of one of the switch's physical ports. This sysID is used by peer devices when forming an aggregation to verify that all links are from the same switch - for environments where the MLAG peer link contains multiple physical links - which it does NOT in this example. A *trunk group* is the set of physical interfaces that comprise the trunk and the collection of VLANs whose traffic is carried on the trunk. The traffic of a VLAN that belongs to one or more trunk groups is carried only on ports that are members of trunk groups to which the VLAN belongs, i.e., VLANs configured in a *trunk group* are ‘pruned’ off all ports that are not associated with the trunk group. The spanning-tree protocol (STP) is disabled for the peer-link VLAN 4094 to prevent any potential STP disruption on the interpeer communications link. Since VLAN 4094 has been restricted to only be on the peer-link (Po10) by *trunk group MLAGPEER* & *switchport trunk group MLAGPEER* (see step #2.3) the chance of a loop is eliminated. To prevent loops do NOT add this *trunk group MLAGPEER* to any other interface links.
-
- 3. Configure the MLAG VLAN (both Layer 2 and Layer 3).
-
- .. code-block:: text
-
- configure
- vlan 4094
- trunk group MLAGPEER
-
- interface port-channel 10
- switchport trunk group MLAGPEER
-
- no spanning-tree vlan-id 4094
-
- interface vlan 4094
- description MLAG PEER LINK
- ip address 172.16.34.2/30
-
- ping 172.16.34.1
-
- .. note::
- The *ip address 172.16.34.2/30* (see step #2.3) assigned to one side of the peer-link can be any unicast address that does not conflict with any SVIs on the same switch. The *local-interface vlan 4094* command (see step #2.4) specifies the SVI upon which the switch sends MLAG control traffic. The IP address is specified within the definition of the VLAN associated with this local interface, which you already performed earlier above. While the peer-link's (designated with the command *peer-link port-channel 10* (see below)) primary purpose is to exchange MLAG control information between the 2 peer switches, it also carries dataplane traffic from devices that are attached to only 1 MLAG peer & have no alternative path. This peer-link can also carry traffic in topology failure scenarios (i.e. one of these peer-link switches loses all its uplinks to the spine switches). The *domain-id MLAG34* command determines the MLAG domain that consists of these 2 peer switches & the links that connect these 2 switches. The *domain-id* is case-sensitive and must match the same *domain-id* on the other peer switch.
-
- 4. Define the MLAG Domain.
-
- .. code-block:: text
-
- configure
- mlag
- domain-id MLAG34
- local-interface vlan 4094
- peer-address 172.16.34.1
- peer-link port-channel 10
-
- 5. Configure Port-channels and interfaces on **Leaf4** connecting to **Spine1** & **Spine2**.
-
- .. code-block:: text
-
- configure
- interface port-channel 34
- description MLAG - SPINE1 & 2
- switchport mode trunk
- mlag 34
-
- interface ethernet 2
- description SPINE1
- channel-group 34 mode active
-
- interface ethernet 3
- description SPINE2
- channel-group 34 mode active
-
- .. note::
- The *mlag 34* (see #2.5) assigns an MLAG ID to *interface port-channel 34*. MLAG peer switches form an MLAG when each switch configures the same MLAG ID to a port-channel interface. This is **different** than the MLAG *domain-id* (see #2.4). The global-scope *mlag* command above (see #2.4) just enters the global MLAG configuration scope of the Arista switch.
-
- 6. Configure Port-channels on **Leaf4** connecting to **Host2**
-
- .. code-block:: text
-
- configure
- interface port-channel 4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
-
- interface ethernet 4
- description HOST2
- channel-group 4 mode active
-
- interface ethernet5
- shutdown
-
-3. Validate MLAG on the **Leaf4** switch using the following:
-
- 1. Verify MLAG operation
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
-
- 2. Verify switching operation
-
- .. code-block:: text
-
- show interfaces status
- show lldp neighbors
- show interfaces trunk
-
- 3. Validate connectivity from **Host1** to **Host2** by logging into **Host1** through the menu (option 1 in ssh menu) or using screen.
-
- .. code-block:: text
-
- ping 172.16.112.202
-
-|
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/labguides/source/ucn-vxlan.rst b/topologies/datacenter/labguides/source/ucn-vxlan.rst
deleted file mode 100644
index 700c445ed..000000000
--- a/topologies/datacenter/labguides/source/ucn-vxlan.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-VxLAN
-=====
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. On **Leaf3**, configure Port-channels connecting to **Host2**
-
- .. code-block:: text
-
- configure
- interface port-channel 4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
-
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-
-2. Verify MLAG on **Leaf3**
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
- show port-channel
-
-3. Validate BGP operation **Leaf3**
-
- .. code-block:: text
-
- show run section bgp
- show ip route bgp
- show ip route
- show ip interface brief
- show ip bgp summary
-
-.. note:: ``show ip bgp summary`` will show that the BGP neighbors have moved to ``Estab`` state. Note the iBGP peering between Leaf3 & Leaf4. Also note the route to the shared loopback1 of Leaf1 & Leaf2. This is the remote VTEP on the other side of the leaf-spine network.
-
-4. Create Loopback 1 and the VXLAN VTEP (VTI) interfaces on **Leaf3**
-
- 1. Configuration
-
- .. code-block:: text
-
- configure
- interface Loopback1
- ip address 172.16.0.56/32
-
- interface vxlan 1
- vxlan source-interface loopback 1
- vxlan vlan 12 vni 1212
- vxlan flood vtep 172.16.0.34
-
- .. note:: ``vxlan flood vtep 172.16.0.34`` adds the shared loopback1 IP address on Leaf1 & Leaf2 to the HER list. Note that for autodiscovery of VTEPs, one must use BGP eVPN (see eVPN labs) or CVX (see CVX lab).
-
- 2. Verification
-
- .. code-block:: text
-
- show run interface vxlan 1
- show interface vxlan 1
-
-5. Log into **Host 1** and **Host 2**, ping the vARP VIP and the other host
-
- 1. Host 1 ping tests. From **Host1**:
-
- .. code-block:: text
-
- ping 172.16.112.1
- ping 172.16.112.202
-
- .. note:: The TTL in the ping outputs above. Even though .202 is many
- switches away, it appears locally connected and has the same
- TTL as the ping to .1. It's also interesting to realize that
- due to MLAG hashing of both the ARP requests and ping packet
- flows that pings to the SVI addresses of .2 & .3 may or may not
- work. Do you know why?
-
- 2. Host 1 MAC/ARP information
-
- .. code-block:: text
-
- show interface po1 | grep -i Hardware
- show arp
-
- .. note:: Note the MAC addresses returned by the commands above.
-
- 3. Host 2 ping tests. From **Host2**:
-
- .. code-block:: text
-
- ping 172.16.112.1
- ping 172.16.112.201
-
- .. note:: Note the TTL in the ping outputs above. Even though .201 is many
- switches away, it appears locally connected and has the same TTL
- as the ping to .1. Also note that the vARP VIP (172.16.112.1)
- address & and vARP MAC address (00:1c:73:00:00:ff) are the **same** for both leaf
- pairs - this IP address is known as an AnyCast IP address. If
- a VM was motioning from **Host1** to **Host2** for maintenance,
- the default GW address nor the ARP cache on that VM need to
- change.
-
- 4. Host 2 MAC/ARP information
-
- .. code-block:: text
-
- show interface po1 | grep -i Hardware
- show arp
-
- .. note:: Note the MAC addresses returned by the commands above and
- compare to the prior ``grep`` and ``arp`` commands and see that
- both hosts appear to each other as though they are on the same
- L2 broadcast domain. **For a little extra fun**, as you are
- running the pings from **host1**, on another set of windows
- for **leaf1** & **leaf2** run ``clear counters`` then run
- ``watch 1 diff show int e4 counter`` and see how MLAG hashing
- across the different pings causes the packets to choose a
- particular member of the port-channel in both the outbound &
- inbound ping flows.
-
-6. Verification – on **Leaf 1/2** and **Leaf 3/4**
-
- 1. Verify the MAC addresses and the associated VTEP IP
-
- .. code-block:: text
-
- show vxlan vtep
- show vxlan address-table
-
- .. note:: For ``show vxlan vtep`` & ``show vxlan address-table`` to be
- populated, the above ``pings`` need to have been active very
- recently so that the MAC addresses don't age out, and you'll
- notice that at least 1 (but not necessarily both) of the MLAG
- pair switches (**leaf1** or
- **leaf2**) will have knowledge of the remote VTEP. This is
- because this is the direction the pings (inbound & outbound)
- last hashed.
-
- 2. Verify the MAC address and the associated interface
-
- .. code-block:: text
-
- show mac address-table
-
-7. Let’s run some other show commands and tests to poke around VxLAN. On **Leaf1** and **Leaf3** issue the following commands:
-
- .. code-block:: text
-
- show interface vxlan 1
- show mac address-table
- show log
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/labguides/source/vxlan.rst b/topologies/datacenter/labguides/source/vxlan.rst
deleted file mode 100644
index 469c37052..000000000
--- a/topologies/datacenter/labguides/source/vxlan.rst
+++ /dev/null
@@ -1,175 +0,0 @@
-VxLAN
-=====
-
-.. thumbnail:: images/vxlan/nested_vxlan_topo_1.png
- :align: center
-
- Click image to enlarge
-
-.. note:: Did you know the ``vxlan`` script is composed of Python code that
- uses the CloudVision Portal REST API to automate the provisioning of
- CVP configlets. The configlets that are configured via the REST API
- are ``Spine1-BGP-Lab``, ``Spine2-BGP-Lab``, ``Leaf1-VXLAN-Lab``,
- ``Leaf2-VXLAN-Lab``, ``Leaf3-VXLAN-Lab``, ``Leaf4-VXLAN-Lan``. In
- addition each leaf also gets the ``VLANs`` configlet.
-
-.. note:: The manually-entered commands below that are part of this lab are
- equivalent to ``Leaf3-VXLAN-Lab-Full``.
-
-
-1. Log into the LabAccess jumpserver:
-
- 1. Type ``vxlan`` at the prompt. The script will configure the datacenter with the exception of **Leaf3**.
-
-2. On **Leaf3**, configure Port-channels connecting to **Host2**
-
- .. code-block:: text
-
- configure
- interface port-channel 4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
-
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-
-3. Verify MLAG on **Leaf3**
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
- show port-channel
-
-4. Validate BGP operation **Leaf3**
-
- .. code-block:: text
-
- show run section bgp
- show ip route bgp
- show ip route
- show ip interface brief
- show ip bgp summary
-
-.. note:: ``show ip bgp summary`` will show that the BGP neighbors have moved to ``Estab`` state. Note the iBGP peering between Leaf3 & Leaf4. Also note the route to the shared loopback1 of Leaf1 & Leaf2. This is the remote VTEP on the other side of the leaf-spine network.
-
-5. Create Loopback 1 and the VXLAN VTEP (VTI) interfaces on **Leaf3**
-
- 1. Configuration
-
- .. code-block:: text
-
- configure
- interface Loopback1
- ip address 172.16.0.56/32
-
- interface vxlan 1
- vxlan source-interface loopback 1
- vxlan vlan 12 vni 1212
- vxlan flood vtep 172.16.0.34
-
- .. note:: ``vxlan flood vtep 172.16.0.34`` adds the shared loopback1 IP address on Leaf1 & Leaf2 to the HER list. Note that for autodiscovery of VTEPs, one must use BGP eVPN (see eVPN labs) or CVX (see CVX lab).
-
- 2. Verification
-
- .. code-block:: text
-
- show run interface vxlan 1
- show interface vxlan 1
-
-6. Log into **Host 1** and **Host 2**, ping the vARP VIP and the other host
-
- 1. Host 1 ping tests. From **Host1**:
-
- .. code-block:: text
-
- ping 172.16.112.1
- ping 172.16.112.202
-
- .. note:: The TTL in the ping outputs above. Even though .202 is many
- switches away, it appears locally connected and has the same
- TTL as the ping to .1. It's also interesting to realize that
- due to MLAG hashing of both the ARP requests and ping packet
- flows that pings to the SVI addresses of .2 & .3 may or may not
- work. Do you know why?
-
- 2. Host 1 MAC/ARP information
-
- .. code-block:: text
-
- show interface po1 | grep -i Hardware
- show arp
-
- .. note:: Note the MAC addresses returned by the commands above.
-
- 3. Host 2 ping tests. From **Host2**:
-
- .. code-block:: text
-
- ping 172.16.112.1
- ping 172.16.112.201
-
- .. note:: Note the TTL in the ping outputs above. Even though .201 is many
- switches away, it appears locally connected and has the same TTL
- as the ping to .1. Also note that the vARP VIP (172.16.112.1)
- address & and vARP MAC address (00:1c:73:00:00:ff) are the **same** for both leaf
- pairs - this IP address is known as an AnyCast IP address. If
- a VM was motioning from **Host1** to **Host2** for maintenance,
- the default GW address nor the ARP cache on that VM need to
- change.
-
- 4. Host 2 MAC/ARP information
-
- .. code-block:: text
-
- show interface po1 | grep -i Hardware
- show arp
-
- .. note:: Note the MAC addresses returned by the commands above and
- compare to the prior ``grep`` and ``arp`` commands and see that
- both hosts appear to each other as though they are on the same
- L2 broadcast domain. **For a little extra fun**, as you are
- running the pings from **host1**, on another set of windows
- for **leaf1** & **leaf2** run ``clear counters`` then run
- ``watch 1 diff show int e4 counter`` and see how MLAG hashing
- across the different pings causes the packets to choose a
- particular member of the port-channel in both the outbound &
- inbound ping flows.
-
-7. Verification – on **Leaf 1/2** and **Leaf 3/4**
-
- 1. Verify the MAC addresses and the associated VTEP IP
-
- .. code-block:: text
-
- show vxlan vtep
- show vxlan address-table
-
- .. note:: For ``show vxlan vtep`` & ``show vxlan address-table`` to be
- populated, the above ``pings`` need to have been active very
- recently so that the MAC addresses don't age out, and you'll
- notice that at least 1 (but not necessarily both) of the MLAG
- pair switches (**leaf1** or
- **leaf2**) will have knowledge of the remote VTEP. This is
- because this is the direction the pings (inbound & outbound)
- last hashed.
-
- 2. Verify the MAC address and the associated interface
-
- .. code-block:: text
-
- show mac address-table
-
-8. Let’s run some other show commands and tests to poke around VxLAN. On **Leaf1** and **Leaf3** issue the following commands:
-
- .. code-block:: text
-
- show interface vxlan 1
- show mac address-table
- show log
-
-**LAB COMPLETE!**
diff --git a/topologies/datacenter/topo_build.yml b/topologies/datacenter/topo_build.yml
deleted file mode 100644
index 9415c813e..000000000
--- a/topologies/datacenter/topo_build.yml
+++ /dev/null
@@ -1,188 +0,0 @@
-host_cpu: 8
-cvp_cpu: 24
-cvp_ram: 32
-cvp_nodes: 1
-veos_cpu: 1
-
-nodes:
- - spine1:
- # interfaces: 8
- ip_addr: 192.168.0.10
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet5
- - neighborDevice: spine2
- neighborPort: Ethernet6
- port: Ethernet6
-
- - spine2:
- # interfaces: 8
- ip_addr: 192.168.0.11
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: spine1
- neighborPort: Ethernet6
- port: Ethernet6
-
- - leaf1:
- # interfaces: 8
- ip_addr: 192.168.0.12
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: host1
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: leaf2
- neighborPort: Ethernet6
- port: Ethernet6
-
-
- - leaf2:
- # interfaces: 8
- ip_addr: 192.168.0.13
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: host1
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: leaf1
- neighborPort: Ethernet6
- port: Ethernet6
-
-
- - leaf3:
- # interfaces: 8
- ip_addr: 192.168.0.14
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: host2
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet6
- port: Ethernet6
-
-
- - leaf4:
- # interfaces: 8
- ip_addr: 192.168.0.15
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: host2
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: leaf3
- neighborPort: Ethernet6
- port: Ethernet6
-
-
- - host1:
- # interfaces: 8
- ip_addr: 192.168.0.16
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
-
- - host2:
- # interfaces: 8
- ip_addr: 192.168.0.17
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet4
-
- - cvx01:
- ip_addr: 192.168.0.18
- neighbors: []
-
-additional_ssh_nodes:
\ No newline at end of file
diff --git a/topologies/dual-datacenter/atd-topo.png b/topologies/dual-datacenter/atd-topo.png
deleted file mode 100644
index 4f0e91392..000000000
Binary files a/topologies/dual-datacenter/atd-topo.png and /dev/null differ
diff --git a/topologies/dual-datacenter/configlets/ATD-INFRA b/topologies/dual-datacenter/configlets/ATD-INFRA
deleted file mode 100644
index e2c2b0d61..000000000
--- a/topologies/dual-datacenter/configlets/ATD-INFRA
+++ /dev/null
@@ -1,34 +0,0 @@
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management1
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management1
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/configlets/Add_Loopbacks.py b/topologies/dual-datacenter/configlets/Add_Loopbacks.py
deleted file mode 100644
index 61e2ffba2..000000000
--- a/topologies/dual-datacenter/configlets/Add_Loopbacks.py
+++ /dev/null
@@ -1,52 +0,0 @@
-from sys import path
-path.append('/usr/lib64/python2.7/site-packages/')
-import yaml
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Device
-
-ztp = CVPGlobalVariables.getValue(GlobalVariableNames.ZTP_STATE)
-ip = CVPGlobalVariables.getValue(GlobalVariableNames.CVP_IP)
-
-if ztp == 'true':
- user = CVPGlobalVariables.getValue(GlobalVariableNames.ZTP_USERNAME)
- passwd = CVPGlobalVariables.getValue(GlobalVariableNames.ZTP_PASSWORD)
-else:
- user = CVPGlobalVariables.getValue(GlobalVariableNames.CVP_USERNAME)
- passwd = CVPGlobalVariables.getValue(GlobalVariableNames.CVP_PASSWORD)
-
-ss = Device(ip,user,passwd)
-
-def get_hostname():
- show_hostname = ss.runCmds(["enable", {"cmd": "show hostname"}])[1]
- hostname = show_hostname['response']['hostname']
- return hostname
-
-def get_bgpasn():
- show_ip_bgp_summary = ss.runCmds(["enable", {"cmd": "show ip bgp summary"}])[1]
- asn = show_ip_bgp_summary['response']['vrfs']['default']['asn']
- return asn
-
-def create_routes(hostname):
- number = hostname[-1:]
- if 'leaf' in hostname:
- switch_type = "10"
- elif 'spine' in hostname:
- switch_type = "20"
- for x in range(100, 200):
- print "interface Loopback%d" % (x)
- print " ip add 10.%s.%s.%d/32" % (switch_type, number, x)
- return
-
-def add_bgp_conf(asn):
- print 'router bgp %s' % asn
- print ' redistribute connected'
- return
-
-def main():
- hostname = get_hostname()
- if 'leaf' or 'spine' in hostname:
- create_routes(hostname)
- asn = get_bgpasn()
- add_bgp_conf(asn)
-
-if __name__ == "__main__":
- main()
diff --git a/topologies/dual-datacenter/configlets/BASE_s1-brdr1 b/topologies/dual-datacenter/configlets/BASE_s1-brdr1
deleted file mode 100644
index 6b65b901d..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s1-brdr1
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s1-brdr1
-!
-interface Management1
- ip address 192.168.0.100/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s1-brdr2 b/topologies/dual-datacenter/configlets/BASE_s1-brdr2
deleted file mode 100644
index 0fed164e5..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s1-brdr2
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s1-brdr2
-!
-interface Management1
- ip address 192.168.0.101/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s1-core1 b/topologies/dual-datacenter/configlets/BASE_s1-core1
deleted file mode 100644
index 8a1f4a594..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s1-core1
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s1-core1
-!
-interface Management1
- ip address 192.168.0.102/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s1-core2 b/topologies/dual-datacenter/configlets/BASE_s1-core2
deleted file mode 100644
index 344a3bc5b..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s1-core2
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s1-core2
-!
-interface Management1
- ip address 192.168.0.103/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s1-host1 b/topologies/dual-datacenter/configlets/BASE_s1-host1
deleted file mode 100644
index 7d71cc94e..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s1-host1
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s1-host1
-!
-interface Management1
- ip address 192.168.0.16/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s1-host2 b/topologies/dual-datacenter/configlets/BASE_s1-host2
deleted file mode 100644
index 0e37761ce..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s1-host2
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s1-host2
-!
-interface Management1
- ip address 192.168.0.17/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s1-leaf1 b/topologies/dual-datacenter/configlets/BASE_s1-leaf1
deleted file mode 100644
index ea71e23f5..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s1-leaf1
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s1-leaf1
-!
-interface Management1
- ip address 192.168.0.12/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s1-leaf2 b/topologies/dual-datacenter/configlets/BASE_s1-leaf2
deleted file mode 100644
index 1819cd2d2..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s1-leaf2
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s1-leaf2
-!
-interface Management1
- ip address 192.168.0.13/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s1-leaf3 b/topologies/dual-datacenter/configlets/BASE_s1-leaf3
deleted file mode 100644
index cec63ca5f..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s1-leaf3
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s1-leaf3
-!
-interface Management1
- ip address 192.168.0.14/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s1-leaf4 b/topologies/dual-datacenter/configlets/BASE_s1-leaf4
deleted file mode 100644
index 4e88786aa..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s1-leaf4
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s1-leaf4
-!
-interface Management1
- ip address 192.168.0.15/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s1-spine1 b/topologies/dual-datacenter/configlets/BASE_s1-spine1
deleted file mode 100644
index 66bbbfde3..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s1-spine1
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s1-spine1
-!
-interface Management1
- ip address 192.168.0.10/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s1-spine2 b/topologies/dual-datacenter/configlets/BASE_s1-spine2
deleted file mode 100644
index d2f0e44dd..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s1-spine2
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s1-spine2
-!
-interface Management1
- ip address 192.168.0.11/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s2-brdr1 b/topologies/dual-datacenter/configlets/BASE_s2-brdr1
deleted file mode 100644
index e0260bac8..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s2-brdr1
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s2-brdr1
-!
-interface Management1
- ip address 192.168.0.200/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s2-brdr2 b/topologies/dual-datacenter/configlets/BASE_s2-brdr2
deleted file mode 100644
index 38557cbce..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s2-brdr2
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s2-brdr2
-!
-interface Management1
- ip address 192.168.0.201/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s2-core1 b/topologies/dual-datacenter/configlets/BASE_s2-core1
deleted file mode 100644
index c235d5eb5..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s2-core1
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s2-core1
-!
-interface Management1
- ip address 192.168.0.202/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s2-core2 b/topologies/dual-datacenter/configlets/BASE_s2-core2
deleted file mode 100644
index ceed28730..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s2-core2
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s2-core2
-!
-interface Management1
- ip address 192.168.0.203/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s2-host1 b/topologies/dual-datacenter/configlets/BASE_s2-host1
deleted file mode 100644
index 0da95d676..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s2-host1
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s2-host1
-!
-interface Management1
- ip address 192.168.0.26/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s2-host2 b/topologies/dual-datacenter/configlets/BASE_s2-host2
deleted file mode 100644
index d497bc654..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s2-host2
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s2-host2
-!
-interface Management1
- ip address 192.168.0.27/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s2-leaf1 b/topologies/dual-datacenter/configlets/BASE_s2-leaf1
deleted file mode 100644
index 18eb93b71..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s2-leaf1
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s2-leaf1
-!
-interface Management1
- ip address 192.168.0.22/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s2-leaf2 b/topologies/dual-datacenter/configlets/BASE_s2-leaf2
deleted file mode 100644
index bb749aa38..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s2-leaf2
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s2-leaf2
-!
-interface Management1
- ip address 192.168.0.23/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s2-leaf3 b/topologies/dual-datacenter/configlets/BASE_s2-leaf3
deleted file mode 100644
index da142d978..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s2-leaf3
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s2-leaf3
-!
-interface Management1
- ip address 192.168.0.24/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s2-leaf4 b/topologies/dual-datacenter/configlets/BASE_s2-leaf4
deleted file mode 100644
index 2f578b9fd..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s2-leaf4
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s2-leaf4
-!
-interface Management1
- ip address 192.168.0.25/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s2-spine1 b/topologies/dual-datacenter/configlets/BASE_s2-spine1
deleted file mode 100644
index fca7de037..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s2-spine1
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s2-spine1
-!
-interface Management1
- ip address 192.168.0.20/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/BASE_s2-spine2 b/topologies/dual-datacenter/configlets/BASE_s2-spine2
deleted file mode 100644
index 650c76de3..000000000
--- a/topologies/dual-datacenter/configlets/BASE_s2-spine2
+++ /dev/null
@@ -1,6 +0,0 @@
-hostname s2-spine2
-!
-interface Management1
- ip address 192.168.0.21/24
-!
-ip routing
diff --git a/topologies/dual-datacenter/configlets/L2EVPN_s1-host1 b/topologies/dual-datacenter/configlets/L2EVPN_s1-host1
deleted file mode 100644
index 120011229..000000000
--- a/topologies/dual-datacenter/configlets/L2EVPN_s1-host1
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Port-Channel1
- description MLAG Uplink - s1-leaf1 and s1-leaf2
- no switchport
- ip address 10.111.112.201/24
-!
-interface Ethernet1
- description MLAG Uplink - s1-leaf1
- channel-group 1 mode active
- lacp timer fast
-!
-interface Ethernet2
- description MLAG Uplink - s1-leaf2
- channel-group 1 mode active
- lacp timer fast
-!
-ip route 10.111.134.0/24 10.111.112.1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2EVPN_s1-host2 b/topologies/dual-datacenter/configlets/L2EVPN_s1-host2
deleted file mode 100644
index 5aea7938f..000000000
--- a/topologies/dual-datacenter/configlets/L2EVPN_s1-host2
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Port-Channel1
- description MLAG Uplink - s1-leaf3 and s1-leaf4
- no switchport
- ip address 10.111.112.202/24
-!
-interface Ethernet1
- description MLAG Uplink - s1-leaf3
- channel-group 1 mode active
- lacp timer fast
-!
-interface Ethernet2
- description MLAG Uplink - s1-leaf4
- channel-group 1 mode active
- lacp timer fast
-!
-ip route 10.111.134.0/24 10.111.112.1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf1 b/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf1
deleted file mode 100644
index 82a4ff4df..000000000
--- a/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf1
+++ /dev/null
@@ -1,108 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf2
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host1
- switchport access vlan 112
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf2
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.1/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.1/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host1
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf2
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.1/32
-!
-interface Loopback1
- description VTEP
- ip address 10.111.253.1/32
-!
-interface Vlan112
- description Host Network
- ip address virtual 10.111.112.1/24
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.1/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 112 vni 112
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.2
- peer-link Port-Channel1
-!
-router bgp 65101
- router-id 10.111.254.1
- maximum-paths 2
- no bgp default ipv4-unicast
- neighbor MLAG peer group
- neighbor MLAG remote-as 65101
- neighbor MLAG next-hop-self
- neighbor MLAG send-community extended
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor SPINE-EVPN peer group
- neighbor SPINE-EVPN remote-as 65100
- neighbor SPINE-EVPN update-source Loopback0
- neighbor SPINE-EVPN ebgp-multihop 3
- neighbor SPINE-EVPN send-community standard extended
- neighbor 10.111.0.1 peer group SPINE-EVPN
- neighbor 10.111.0.2 peer group SPINE-EVPN
- neighbor 10.111.1.0 peer group SPINE
- neighbor 10.111.2.0 peer group SPINE
- neighbor 10.255.255.2 peer group MLAG
- !
- vlan 112
- rd auto
- route-target both 112:112
- redistribute learned
- !
- address-family evpn
- neighbor SPINE-EVPN activate
- !
- address-family ipv4
- neighbor MLAG activate
- neighbor SPINE activate
- network 10.111.254.1/32
- network 10.111.253.1/32
- network 10.111.112.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf2 b/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf2
deleted file mode 100644
index 3238f2ba8..000000000
--- a/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf2
+++ /dev/null
@@ -1,108 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host1
- switchport access vlan 112
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.3/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.3/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host1
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.2/32
-!
-interface Loopback1
- description VTEP
- ip address 10.111.253.1/32
-!
-interface Vlan112
- description Host Network
- ip address virtual 10.111.112.1/24
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.2/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 112 vni 112
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.1
- peer-link Port-Channel1
-!
-router bgp 65101
- router-id 10.111.254.2
- maximum-paths 2
- no bgp default ipv4-unicast
- neighbor MLAG peer group
- neighbor MLAG remote-as 65101
- neighbor MLAG next-hop-self
- neighbor MLAG send-community extended
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor SPINE-EVPN peer group
- neighbor SPINE-EVPN remote-as 65100
- neighbor SPINE-EVPN update-source Loopback0
- neighbor SPINE-EVPN ebgp-multihop 3
- neighbor SPINE-EVPN send-community standard extended
- neighbor 10.111.0.1 peer group SPINE-EVPN
- neighbor 10.111.0.2 peer group SPINE-EVPN
- neighbor 10.111.1.2 peer group SPINE
- neighbor 10.111.2.2 peer group SPINE
- neighbor 10.255.255.1 peer group MLAG
- !
- vlan 112
- rd auto
- route-target both 112:112
- redistribute learned
- !
- address-family evpn
- neighbor SPINE-EVPN activate
- !
- address-family ipv4
- neighbor MLAG activate
- neighbor SPINE activate
- network 10.111.254.2/32
- network 10.111.253.1/32
- network 10.111.112.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf3 b/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf3
deleted file mode 100644
index 8ffc01845..000000000
--- a/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf3
+++ /dev/null
@@ -1,108 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf4
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host2
- switchport access vlan 112
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf4
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.5/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.5/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host2
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf4
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.3/32
-!
-interface Loopback1
- description VTEP
- ip address 10.111.253.3/32
-!
-interface Vlan112
- description Host Network
- ip address virtual 10.111.112.1/24
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.1/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 112 vni 112
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.2
- peer-link Port-Channel1
-!
-router bgp 65102
- router-id 10.111.254.3
- maximum-paths 2
- no bgp default ipv4-unicast
- neighbor MLAG peer group
- neighbor MLAG remote-as 65102
- neighbor MLAG next-hop-self
- neighbor MLAG send-community extended
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor SPINE-EVPN peer group
- neighbor SPINE-EVPN remote-as 65100
- neighbor SPINE-EVPN update-source Loopback0
- neighbor SPINE-EVPN ebgp-multihop 3
- neighbor SPINE-EVPN send-community standard extended
- neighbor 10.111.0.1 peer group SPINE-EVPN
- neighbor 10.111.0.2 peer group SPINE-EVPN
- neighbor 10.111.1.4 peer group SPINE
- neighbor 10.111.2.4 peer group SPINE
- neighbor 10.255.255.2 peer group MLAG
- !
- vlan 112
- rd auto
- route-target both 112:112
- redistribute learned
- !
- address-family evpn
- neighbor SPINE-EVPN activate
- !
- address-family ipv4
- neighbor MLAG activate
- neighbor SPINE activate
- network 10.111.254.3/32
- network 10.111.253.3/32
- network 10.111.112.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf4 b/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf4
deleted file mode 100644
index d5abac294..000000000
--- a/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf4
+++ /dev/null
@@ -1,84 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host2
- switchport access vlan 112
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.7/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.7/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host2
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.4/32
-!
-interface Loopback1
- description VTEP
- ip address 10.111.253.3/32
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.2/30
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.1
- peer-link Port-Channel1
-!
-router bgp 65102
- router-id 10.111.254.4
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor MLAG peer group
- neighbor MLAG remote-as 65102
- neighbor MLAG next-hop-self
- neighbor MLAG send-community extended
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor 10.111.1.6 peer group SPINE
- neighbor 10.111.2.6 peer group SPINE
- neighbor 10.255.255.1 peer group MLAG
- !
- address-family ipv4
- neighbor MLAG activate
- neighbor SPINE activate
- network 10.111.112.0/24
- network 10.111.253.3/32
- network 10.111.254.4/32
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf4_complete b/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf4_complete
deleted file mode 100644
index 9db9d2dfa..000000000
--- a/topologies/dual-datacenter/configlets/L2EVPN_s1-leaf4_complete
+++ /dev/null
@@ -1,112 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host2
- switchport access vlan 112
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.7/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.7/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host2
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.4/32
-!
-interface Loopback1
- description VTEP
- ip address 10.111.253.3/32
-!
-interface Vlan112
- description Host Network
- ip address virtual 10.111.112.1/24
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.2/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 112 vni 112
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.1
- peer-link Port-Channel1
-!
-router bgp 65102
- router-id 10.111.254.4
- maximum-paths 2
- no bgp default ipv4-unicast
- neighbor MLAG peer group
- neighbor MLAG remote-as 65102
- neighbor MLAG next-hop-self
- neighbor MLAG send-community extended
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor SPINE-EVPN peer group
- neighbor SPINE-EVPN remote-as 65100
- neighbor SPINE-EVPN update-source Loopback0
- neighbor SPINE-EVPN ebgp-multihop 3
- neighbor SPINE-EVPN send-community standard extended
- neighbor 10.111.0.1 peer group SPINE-EVPN
- neighbor 10.111.0.2 peer group SPINE-EVPN
- neighbor 10.111.1.6 peer group SPINE
- neighbor 10.111.2.6 peer group SPINE
- neighbor 10.255.255.1 peer group MLAG
- !
- vlan 112
- rd auto
- route-target both 112:112
- redistribute learned
- !
- address-family evpn
- neighbor SPINE-EVPN activate
- !
- address-family ipv4
- neighbor MLAG activate
- neighbor SPINE activate
- network 10.111.254.4/32
- network 10.111.253.3/32
- network 10.111.112.0/24
-
-
-
-
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2EVPN_s1-spine1 b/topologies/dual-datacenter/configlets/L2EVPN_s1-spine1
deleted file mode 100644
index c71828df3..000000000
--- a/topologies/dual-datacenter/configlets/L2EVPN_s1-spine1
+++ /dev/null
@@ -1,55 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description L3 Downlink - s1-leaf1
- no switchport
- ip address 10.111.1.0/31
-!
-interface Ethernet3
- description L3 Downlink - s1-leaf2
- no switchport
- ip address 10.111.1.2/31
-!
-interface Ethernet4
- description L3 Downlink - s1-leaf3
- no switchport
- ip address 10.111.1.4/31
-!
-interface Ethernet5
- description L3 Downlink - s1-leaf4
- no switchport
- ip address 10.111.1.6/31
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.0.1/32
-!
-ip route 10.111.1.0/24 Null0
-!
-peer-filter LEAF-ASN
- 10 match as-range 65101-65105 result accept
-!
-router bgp 65100
- router-id 10.111.0.1
- no bgp default ipv4-unicast
- maximum-paths 2
- bgp listen range 10.111.1.0/24 peer-group LEAVES peer-filter LEAF-ASN
- bgp listen range 10.111.254.0/24 peer-group LEAVES-EVPN peer-filter LEAF-ASN
- neighbor LEAVES peer group
- neighbor LEAVES send-community standard extended
- neighbor LEAVES-EVPN peer group
- neighbor LEAVES-EVPN update-source Loopback0
- neighbor LEAVES-EVPN ebgp-multihop 3
- neighbor LEAVES-EVPN send-community standard extended
- !
- address-family evpn
- neighbor LEAVES-EVPN activate
- !
- address-family ipv4
- neighbor LEAVES activate
- network 10.111.0.1/32
- network 10.111.1.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2EVPN_s1-spine2 b/topologies/dual-datacenter/configlets/L2EVPN_s1-spine2
deleted file mode 100644
index c6e190436..000000000
--- a/topologies/dual-datacenter/configlets/L2EVPN_s1-spine2
+++ /dev/null
@@ -1,55 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description L3 Downlink - s1-leaf1
- no switchport
- ip address 10.111.2.0/31
-!
-interface Ethernet3
- description L3 Downlink - s1-leaf2
- no switchport
- ip address 10.111.2.2/31
-!
-interface Ethernet4
- description L3 Downlink - s1-leaf3
- no switchport
- ip address 10.111.2.4/31
-!
-interface Ethernet5
- description L3 Downlink - s1-leaf4
- no switchport
- ip address 10.111.2.6/31
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.0.2/32
-!
-ip route 10.111.2.0/24 Null0
-!
-peer-filter LEAF-ASN
- 10 match as-range 65101-65105 result accept
-!
-router bgp 65100
- router-id 10.111.0.2
- no bgp default ipv4-unicast
- maximum-paths 2
- bgp listen range 10.111.2.0/24 peer-group LEAVES peer-filter LEAF-ASN
- bgp listen range 10.111.254.0/24 peer-group LEAVES-EVPN peer-filter LEAF-ASN
- neighbor LEAVES peer group
- neighbor LEAVES send-community standard extended
- neighbor LEAVES-EVPN peer group
- neighbor LEAVES-EVPN update-source Loopback0
- neighbor LEAVES-EVPN ebgp-multihop 3
- neighbor LEAVES-EVPN send-community standard extended
- !
- address-family evpn
- neighbor LEAVES-EVPN activate
- !
- address-family ipv4
- neighbor LEAVES activate
- network 10.111.0.2/32
- network 10.111.2.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2LS_s1-host1 b/topologies/dual-datacenter/configlets/L2LS_s1-host1
deleted file mode 100644
index 120011229..000000000
--- a/topologies/dual-datacenter/configlets/L2LS_s1-host1
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Port-Channel1
- description MLAG Uplink - s1-leaf1 and s1-leaf2
- no switchport
- ip address 10.111.112.201/24
-!
-interface Ethernet1
- description MLAG Uplink - s1-leaf1
- channel-group 1 mode active
- lacp timer fast
-!
-interface Ethernet2
- description MLAG Uplink - s1-leaf2
- channel-group 1 mode active
- lacp timer fast
-!
-ip route 10.111.134.0/24 10.111.112.1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2LS_s1-host2 b/topologies/dual-datacenter/configlets/L2LS_s1-host2
deleted file mode 100644
index 5aea7938f..000000000
--- a/topologies/dual-datacenter/configlets/L2LS_s1-host2
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Port-Channel1
- description MLAG Uplink - s1-leaf3 and s1-leaf4
- no switchport
- ip address 10.111.112.202/24
-!
-interface Ethernet1
- description MLAG Uplink - s1-leaf3
- channel-group 1 mode active
- lacp timer fast
-!
-interface Ethernet2
- description MLAG Uplink - s1-leaf4
- channel-group 1 mode active
- lacp timer fast
-!
-ip route 10.111.134.0/24 10.111.112.1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2LS_s1-leaf1 b/topologies/dual-datacenter/configlets/L2LS_s1-leaf1
deleted file mode 100644
index 9cf812d18..000000000
--- a/topologies/dual-datacenter/configlets/L2LS_s1-leaf1
+++ /dev/null
@@ -1,56 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf2
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG Downlink - s1-host1
- switchport access vlan 112
- mlag 4
-!
-interface Port-Channel12
- description MLAG Uplink - s1-spine1 and s1-spine2
- switchport mode trunk
- mlag 12
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf2
- channel-group 1 mode active
-!
-interface Ethernet2
- description MLAG Uplink - s1-spine1
- channel-group 12 mode active
-!
-interface Ethernet3
- description MLAG Uplink - s1-spine2
- channel-group 12 mode active
-!
-interface Ethernet4
- description MLAG Downlink - s1-host1
- channel-group 4 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf2
- channel-group 1 mode active
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.253/30
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.254
- peer-link Port-Channel1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2LS_s1-leaf2 b/topologies/dual-datacenter/configlets/L2LS_s1-leaf2
deleted file mode 100644
index 0bcaf5e89..000000000
--- a/topologies/dual-datacenter/configlets/L2LS_s1-leaf2
+++ /dev/null
@@ -1,56 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG Downlink - s1-host1
- switchport access vlan 112
- mlag 4
-!
-interface Port-Channel12
- description MLAG Uplink - s1-spine1 and s1-spine2
- switchport mode trunk
- mlag 12
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf1
- channel-group 1 mode active
-!
-interface Ethernet2
- description MLAG Uplink - s1-spine1
- channel-group 12 mode active
-!
-interface Ethernet3
- description MLAG Uplink - s1-spine2
- channel-group 12 mode active
-!
-interface Ethernet4
- description MLAG Downlink - s1-host1
- channel-group 4 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf1
- channel-group 1 mode active
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.254/30
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.253
- peer-link Port-Channel1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2LS_s1-leaf3 b/topologies/dual-datacenter/configlets/L2LS_s1-leaf3
deleted file mode 100644
index 8ecee9b5a..000000000
--- a/topologies/dual-datacenter/configlets/L2LS_s1-leaf3
+++ /dev/null
@@ -1,56 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf4
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG Downlink - s1-host2
- switchport access vlan 112
- mlag 4
-!
-interface Port-Channel34
- description MLAG Uplink - s1-spine1 and s1-spine2
- switchport mode trunk
- mlag 34
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf4
- channel-group 1 mode active
-!
-interface Ethernet2
- description MLAG Uplink - s1-spine1
- channel-group 34 mode active
-!
-interface Ethernet3
- description MLAG Uplink - s1-spine2
- channel-group 34 mode active
-!
-interface Ethernet4
- description MLAG Downlink - s1-host2
- channel-group 4 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf4
- channel-group 1 mode active
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.253/30
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.254
- peer-link Port-Channel1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2LS_s1-leaf4 b/topologies/dual-datacenter/configlets/L2LS_s1-leaf4
deleted file mode 100644
index e5058a7eb..000000000
--- a/topologies/dual-datacenter/configlets/L2LS_s1-leaf4
+++ /dev/null
@@ -1,56 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel4
- description MLAG Downlink - s1-host2
- switchport access vlan 112
- mlag 4
-!
-interface Port-Channel34
- description MLAG Uplink - s1-spine1 and s1-spine2
- switchport mode trunk
- mlag 34
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf3
- channel-group 1 mode active
-!
-interface Ethernet2
- description MLAG Uplink - s1-spine1
- channel-group 34 mode active
-!
-interface Ethernet3
- description MLAG Uplink - s1-spine2
- channel-group 34 mode active
-!
-interface Ethernet4
- description MLAG Downlink - s1-host2
- channel-group 4 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf3
- channel-group 1 mode active
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.254/30
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.253
- peer-link Port-Channel1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2LS_s1-spine1 b/topologies/dual-datacenter/configlets/L2LS_s1-spine1
deleted file mode 100644
index b3683dd0c..000000000
--- a/topologies/dual-datacenter/configlets/L2LS_s1-spine1
+++ /dev/null
@@ -1,76 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-spine2
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel12
- description MLAG Downlink - s1-leaf1 and s1-leaf2
- switchport mode trunk
- mlag 12
-!
-interface Port-Channel34
- description MLAG Downlink - s1-leaf3 and s1-leaf4
- switchport mode trunk
- mlag 34
-!
-interface Ethernet1
- description MLAG Peer-link - s1-spine2
- channel-group 1 mode active
-!
-interface Ethernet2
- description MLAG Downlink - s1-leaf1
- channel-group 12 mode active
-!
-interface Ethernet3
- description MLAG Downlink - s1-leaf2
- channel-group 12 mode active
-!
-interface Ethernet4
- description MLAG Downlink - s1-leaf3
- channel-group 34 mode active
-!
-interface Ethernet5
- description MLAG Downlink - s1-leaf4
- channel-group 34 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-spine2
- channel-group 1 mode active
-!
-interface Ethernet7
- shutdown
-!
-interface Ethernet8
- shutdown
-!
-interface Vlan112
- ip address 10.111.112.2/24
- ip virtual-router address 10.111.112.1
-!
-interface Vlan134
- ip address 10.111.134.2/24
- ip virtual-router address 10.111.134.1
-!
-ip virtual-router mac-address 00:1C:73:00:00:12
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.253/30
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.254
- peer-link Port-Channel1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L2LS_s1-spine2 b/topologies/dual-datacenter/configlets/L2LS_s1-spine2
deleted file mode 100644
index 180e69a36..000000000
--- a/topologies/dual-datacenter/configlets/L2LS_s1-spine2
+++ /dev/null
@@ -1,76 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-spine1
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel12
- description MLAG Downlink - s1-leaf1 and s1-leaf2
- switchport mode trunk
- mlag 12
-!
-interface Port-Channel34
- description MLAG Downlink - s1-leaf3 and s1-leaf4
- switchport mode trunk
- mlag 34
-!
-interface Ethernet1
- description MLAG Peer-link - s1-spine1
- channel-group 1 mode active
-!
-interface Ethernet2
- description MLAG Downlink - s1-leaf1
- channel-group 12 mode active
-!
-interface Ethernet3
- description MLAG Downlink - s1-leaf2
- channel-group 12 mode active
-!
-interface Ethernet4
- description MLAG Downlink - s1-leaf3
- channel-group 34 mode active
-!
-interface Ethernet5
- description MLAG Downlink - s1-leaf4
- channel-group 34 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-spine1
- channel-group 1 mode active
-!
-interface Ethernet7
- shutdown
-!
-interface Ethernet8
- shutdown
-!
-interface Vlan112
- ip address 10.111.112.3/24
- ip virtual-router address 10.111.112.1
-!
-interface Vlan134
- ip address 10.111.134.3/24
- ip virtual-router address 10.111.134.1
-!
-ip virtual-router mac-address 00:1C:73:00:00:12
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.254/30
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.253
- peer-link Port-Channel1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3EVPN_s1-host1 b/topologies/dual-datacenter/configlets/L3EVPN_s1-host1
deleted file mode 100644
index 120011229..000000000
--- a/topologies/dual-datacenter/configlets/L3EVPN_s1-host1
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Port-Channel1
- description MLAG Uplink - s1-leaf1 and s1-leaf2
- no switchport
- ip address 10.111.112.201/24
-!
-interface Ethernet1
- description MLAG Uplink - s1-leaf1
- channel-group 1 mode active
- lacp timer fast
-!
-interface Ethernet2
- description MLAG Uplink - s1-leaf2
- channel-group 1 mode active
- lacp timer fast
-!
-ip route 10.111.134.0/24 10.111.112.1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3EVPN_s1-host2 b/topologies/dual-datacenter/configlets/L3EVPN_s1-host2
deleted file mode 100644
index 8b620a685..000000000
--- a/topologies/dual-datacenter/configlets/L3EVPN_s1-host2
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Port-Channel1
- description MLAG Uplink - s1-leaf3 and s1-leaf4
- no switchport
- ip address 10.111.134.202/24
-!
-interface Ethernet1
- description MLAG Uplink - s1-leaf3
- channel-group 1 mode active
- lacp timer fast
-!
-interface Ethernet2
- description MLAG Uplink - s1-leaf4
- channel-group 1 mode active
- lacp timer fast
-!
-ip route 10.111.112.0/24 10.111.134.1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf1 b/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf1
deleted file mode 100644
index 728cc8d1f..000000000
--- a/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf1
+++ /dev/null
@@ -1,120 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-vrf instance TENANT
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf2
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host1
- switchport access vlan 112
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf2
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.1/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.1/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host1
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf2
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.1/32
-!
-interface Loopback1
- description VTEP
- ip address 10.111.253.1/32
-!
-interface Vlan112
- description Host Network
- vrf TENANT
- ip address virtual 10.111.112.1/24
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.1/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan virtual-router encapsulation mac-address mlag-system-id
- vxlan udp-port 4789
- vxlan vlan 112 vni 112
- vxlan vrf TENANT vni 5001
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-ip routing vrf TENANT
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.2
- peer-link Port-Channel1
-!
-router bgp 65101
- router-id 10.111.254.1
- rd auto
- maximum-paths 2
- no bgp default ipv4-unicast
- neighbor MLAG peer group
- neighbor MLAG remote-as 65101
- neighbor MLAG next-hop-self
- neighbor MLAG send-community extended
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor SPINE-EVPN peer group
- neighbor SPINE-EVPN remote-as 65100
- neighbor SPINE-EVPN update-source Loopback0
- neighbor SPINE-EVPN ebgp-multihop 3
- neighbor SPINE-EVPN send-community standard extended
- neighbor 10.111.0.1 peer group SPINE-EVPN
- neighbor 10.111.0.2 peer group SPINE-EVPN
- neighbor 10.111.1.0 peer group SPINE
- neighbor 10.111.2.0 peer group SPINE
- neighbor 10.255.255.2 peer group MLAG
- !
- vlan 112
- rd auto
- route-target both 112:112
- redistribute learned
- !
- address-family evpn
- neighbor SPINE-EVPN activate
- !
- address-family ipv4
- neighbor MLAG activate
- neighbor SPINE activate
- network 10.111.254.1/32
- network 10.111.253.1/32
- !
- vrf TENANT
- route-target import evpn 5001:5001
- route-target export evpn 5001:5001
- redistribute connected
diff --git a/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf2 b/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf2
deleted file mode 100644
index ab979e5a8..000000000
--- a/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf2
+++ /dev/null
@@ -1,120 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-vrf instance TENANT
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host1
- switchport access vlan 112
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.3/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.3/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host1
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.2/32
-!
-interface Loopback1
- description VTEP
- ip address 10.111.253.1/32
-!
-interface Vlan112
- description Host Network
- vrf TENANT
- ip address virtual 10.111.112.1/24
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.2/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan virtual-router encapsulation mac-address mlag-system-id
- vxlan udp-port 4789
- vxlan vlan 112 vni 112
- vxlan vrf TENANT vni 5001
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-ip routing vrf TENANT
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.1
- peer-link Port-Channel1
-!
-router bgp 65101
- router-id 10.111.254.2
- rd auto
- maximum-paths 2
- no bgp default ipv4-unicast
- neighbor MLAG peer group
- neighbor MLAG remote-as 65101
- neighbor MLAG next-hop-self
- neighbor MLAG send-community extended
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor SPINE-EVPN peer group
- neighbor SPINE-EVPN remote-as 65100
- neighbor SPINE-EVPN update-source Loopback0
- neighbor SPINE-EVPN ebgp-multihop 3
- neighbor SPINE-EVPN send-community standard extended
- neighbor 10.111.0.1 peer group SPINE-EVPN
- neighbor 10.111.0.2 peer group SPINE-EVPN
- neighbor 10.111.1.2 peer group SPINE
- neighbor 10.111.2.2 peer group SPINE
- neighbor 10.255.255.1 peer group MLAG
- !
- vlan 112
- rd auto
- route-target both 112:112
- redistribute learned
- !
- address-family evpn
- neighbor SPINE-EVPN activate
- !
- address-family ipv4
- neighbor MLAG activate
- neighbor SPINE activate
- network 10.111.254.2/32
- network 10.111.253.1/32
- !
- vrf TENANT
- route-target import evpn 5001:5001
- route-target export evpn 5001:5001
- redistribute connected
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf3 b/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf3
deleted file mode 100644
index 525672a08..000000000
--- a/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf3
+++ /dev/null
@@ -1,120 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-vrf instance TENANT
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf4
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host2
- switchport access vlan 134
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf4
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.5/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.5/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host2
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf4
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.3/32
-!
-interface Loopback1
- description VTEP
- ip address 10.111.253.3/32
-!
-interface Vlan134
- description Host Network
- vrf TENANT
- ip address virtual 10.111.134.1/24
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.1/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan virtual-router encapsulation mac-address mlag-system-id
- vxlan udp-port 4789
- vxlan vlan 134 vni 134
- vxlan vrf TENANT vni 5001
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-ip routing vrf TENANT
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.2
- peer-link Port-Channel1
-!
-router bgp 65102
- router-id 10.111.254.3
- rd auto
- maximum-paths 2
- no bgp default ipv4-unicast
- neighbor MLAG peer group
- neighbor MLAG remote-as 65102
- neighbor MLAG next-hop-self
- neighbor MLAG send-community extended
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor SPINE-EVPN peer group
- neighbor SPINE-EVPN remote-as 65100
- neighbor SPINE-EVPN update-source Loopback0
- neighbor SPINE-EVPN ebgp-multihop 3
- neighbor SPINE-EVPN send-community standard extended
- neighbor 10.111.0.1 peer group SPINE-EVPN
- neighbor 10.111.0.2 peer group SPINE-EVPN
- neighbor 10.111.1.4 peer group SPINE
- neighbor 10.111.2.4 peer group SPINE
- neighbor 10.255.255.2 peer group MLAG
- !
- vlan 134
- rd auto
- route-target both 134:134
- redistribute learned
- !
- address-family evpn
- neighbor SPINE-EVPN activate
- !
- address-family ipv4
- neighbor MLAG activate
- neighbor SPINE activate
- network 10.111.254.3/32
- network 10.111.253.3/32
- !
- vrf TENANT
- route-target import evpn 5001:5001
- route-target export evpn 5001:5001
- redistribute connected
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf4 b/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf4
deleted file mode 100644
index f5736c746..000000000
--- a/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf4
+++ /dev/null
@@ -1,84 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host2
- switchport access vlan 134
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.7/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.7/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host2
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.4/32
-!
-interface Loopback1
- description VTEP
- ip address 10.111.253.3/32
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.2/30
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.1
- peer-link Port-Channel1
-!
-router bgp 65102
- router-id 10.111.254.4
- maximum-paths 2
- no bgp default ipv4-unicast
- neighbor MLAG peer group
- neighbor MLAG remote-as 65102
- neighbor MLAG next-hop-self
- neighbor MLAG send-community extended
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor 10.111.1.6 peer group SPINE
- neighbor 10.111.2.6 peer group SPINE
- neighbor 10.255.255.1 peer group MLAG
- !
- address-family ipv4
- neighbor MLAG activate
- neighbor SPINE activate
- network 10.111.112.0/24
- network 10.111.253.3/32
- network 10.111.254.4/32
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf4_complete b/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf4_complete
deleted file mode 100644
index 8d17c8b17..000000000
--- a/topologies/dual-datacenter/configlets/L3EVPN_s1-leaf4_complete
+++ /dev/null
@@ -1,120 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-vrf instance TENANT
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host2
- switchport access vlan 134
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.7/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.7/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host2
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.4/32
-!
-interface Loopback1
- description VTEP
- ip address 10.111.253.3/32
-!
-interface Vlan134
- description Host Network
- vrf TENANT
- ip address virtual 10.111.134.1/24
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.2/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan virtual-router encapsulation mac-address mlag-system-id
- vxlan udp-port 4789
- vxlan vlan 134 vni 134
- vxlan vrf TENANT vni 5001
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-ip routing vrf TENANT
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.1
- peer-link Port-Channel1
-!
-router bgp 65102
- router-id 10.111.254.4
- rd auto
- maximum-paths 2
- no bgp default ipv4-unicast
- neighbor MLAG peer group
- neighbor MLAG remote-as 65102
- neighbor MLAG next-hop-self
- neighbor MLAG send-community extended
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor SPINE-EVPN peer group
- neighbor SPINE-EVPN remote-as 65100
- neighbor SPINE-EVPN update-source Loopback0
- neighbor SPINE-EVPN ebgp-multihop 3
- neighbor SPINE-EVPN send-community standard extended
- neighbor 10.111.0.1 peer group SPINE-EVPN
- neighbor 10.111.0.2 peer group SPINE-EVPN
- neighbor 10.111.1.6 peer group SPINE
- neighbor 10.111.2.6 peer group SPINE
- neighbor 10.255.255.1 peer group MLAG
- !
- vlan 134
- rd auto
- route-target both 134:134
- redistribute learned
- !
- address-family evpn
- neighbor SPINE-EVPN activate
- !
- address-family ipv4
- neighbor MLAG activate
- neighbor SPINE activate
- network 10.111.254.4/32
- network 10.111.253.3/32
- !
- vrf TENANT
- route-target import evpn 5001:5001
- route-target export evpn 5001:5001
- redistribute connected
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3EVPN_s1-spine1 b/topologies/dual-datacenter/configlets/L3EVPN_s1-spine1
deleted file mode 100644
index c71828df3..000000000
--- a/topologies/dual-datacenter/configlets/L3EVPN_s1-spine1
+++ /dev/null
@@ -1,55 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description L3 Downlink - s1-leaf1
- no switchport
- ip address 10.111.1.0/31
-!
-interface Ethernet3
- description L3 Downlink - s1-leaf2
- no switchport
- ip address 10.111.1.2/31
-!
-interface Ethernet4
- description L3 Downlink - s1-leaf3
- no switchport
- ip address 10.111.1.4/31
-!
-interface Ethernet5
- description L3 Downlink - s1-leaf4
- no switchport
- ip address 10.111.1.6/31
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.0.1/32
-!
-ip route 10.111.1.0/24 Null0
-!
-peer-filter LEAF-ASN
- 10 match as-range 65101-65105 result accept
-!
-router bgp 65100
- router-id 10.111.0.1
- no bgp default ipv4-unicast
- maximum-paths 2
- bgp listen range 10.111.1.0/24 peer-group LEAVES peer-filter LEAF-ASN
- bgp listen range 10.111.254.0/24 peer-group LEAVES-EVPN peer-filter LEAF-ASN
- neighbor LEAVES peer group
- neighbor LEAVES send-community standard extended
- neighbor LEAVES-EVPN peer group
- neighbor LEAVES-EVPN update-source Loopback0
- neighbor LEAVES-EVPN ebgp-multihop 3
- neighbor LEAVES-EVPN send-community standard extended
- !
- address-family evpn
- neighbor LEAVES-EVPN activate
- !
- address-family ipv4
- neighbor LEAVES activate
- network 10.111.0.1/32
- network 10.111.1.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3EVPN_s1-spine2 b/topologies/dual-datacenter/configlets/L3EVPN_s1-spine2
deleted file mode 100644
index c6e190436..000000000
--- a/topologies/dual-datacenter/configlets/L3EVPN_s1-spine2
+++ /dev/null
@@ -1,55 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description L3 Downlink - s1-leaf1
- no switchport
- ip address 10.111.2.0/31
-!
-interface Ethernet3
- description L3 Downlink - s1-leaf2
- no switchport
- ip address 10.111.2.2/31
-!
-interface Ethernet4
- description L3 Downlink - s1-leaf3
- no switchport
- ip address 10.111.2.4/31
-!
-interface Ethernet5
- description L3 Downlink - s1-leaf4
- no switchport
- ip address 10.111.2.6/31
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.0.2/32
-!
-ip route 10.111.2.0/24 Null0
-!
-peer-filter LEAF-ASN
- 10 match as-range 65101-65105 result accept
-!
-router bgp 65100
- router-id 10.111.0.2
- no bgp default ipv4-unicast
- maximum-paths 2
- bgp listen range 10.111.2.0/24 peer-group LEAVES peer-filter LEAF-ASN
- bgp listen range 10.111.254.0/24 peer-group LEAVES-EVPN peer-filter LEAF-ASN
- neighbor LEAVES peer group
- neighbor LEAVES send-community standard extended
- neighbor LEAVES-EVPN peer group
- neighbor LEAVES-EVPN update-source Loopback0
- neighbor LEAVES-EVPN ebgp-multihop 3
- neighbor LEAVES-EVPN send-community standard extended
- !
- address-family evpn
- neighbor LEAVES-EVPN activate
- !
- address-family ipv4
- neighbor LEAVES activate
- network 10.111.0.2/32
- network 10.111.2.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3LS and VARP Builder.py b/topologies/dual-datacenter/configlets/L3LS and VARP Builder.py
deleted file mode 100644
index c96eaeec1..000000000
--- a/topologies/dual-datacenter/configlets/L3LS and VARP Builder.py
+++ /dev/null
@@ -1,119 +0,0 @@
-import sys, jsonrpclib
-sys.path.append('/usr/lib64/python2.7/site-packages/')
-import yaml
-from cvplibrary import CVPGlobalVariables as cvpGV
-from cvplibrary import GlobalVariableNames as GVN
-
-def sendCmd(commands):
- ztp = cvpGV.getValue(GVN.ZTP_STATE)
- hostip = cvpGV.getValue(GVN.CVP_IP)
- if ztp == 'true':
- user = cvpGV.getValue(GVN.ZTP_USERNAME)
- passwd = cvpGV.getValue(GVN.ZTP_PASSWORD)
- else:
- user = cvpGV.getValue(GVN.CVP_USERNAME)
- passwd = cvpGV.getValue(GVN.CVP_PASSWORD)
-
- url = "https://%s:%s@%s/command-api" % (user, passwd, hostip)
- switch = jsonrpclib.Server(url)
- response = switch.runCmds(1, commands)[0]
- return response
-
-
-hostname = sendCmd(['show hostname'])['hostname']
-f = open('hostvars/%s.yml' % hostname )
-info = yaml.load(f)
-
-if 'interfaces' not in info.keys():
- print ''
-else:
- print 'ip routing'
- print '!'
- for d in info['interfaces']:
- print 'interface %s' % d['interface']
- if 'Loopback' not in d['interface']:
- print ' no switchport'
- print ' ip address %s/%s' % (d['ip'], d['cidr'])
- print '!'
-
-if 'bgp' not in info.keys():
- print ''
-else:
- print 'router bgp %s' % info['bgp']['as']
- print ' maximum-paths 4 ecmp 4'
- for d in info['bgp']['bgp_neighbors']:
- print ' neighbor %s remote-as %s' % (d['ip'], d['remote-as'])
- for n in info['bgp']['networks']:
- print ' network %s' % n
- print '!'
-
-if 'mlag' not in info.keys():
- print ''
-elif 'spine' in hostname:
- print ''
-else:
- print 'vlan %s' % info['mlag']['peer_vlan']
- print ' name MLAGPeerLink'
- print ' trunk group mlagPeer'
- print '!'
- print 'no spanning-tree vlan-id %s' % info['mlag']['peer_vlan']
- print '!'
- for i in info['mlag']['peer_interfaces']:
- print 'interface %s' % i
- print ' channel-group %s mode active' % info['mlag']['peer_link'].replace('Port-Channel','')
- print '!'
-
- print 'interface %s' % info['mlag']['peer_link']
- print ' description MLAGPeerLink'
- print ' switchport mode trunk'
- print ' switchport trunk group mlagPeer'
- print '!'
-
- print 'interface Vlan%s' % info['mlag']['peer_vlan']
- print ' description MLAGPeerIP'
- print ' ip address %s/%s' % (info['mlag']['ip'], info['mlag']['cidr'])
- print '!'
-
- print 'mlag configuration'
- print ' domain %s' % info['mlag']['domain']
- print ' local-interface Vlan%s' % info['mlag']['peer_vlan']
- print ' peer-address %s' % info['mlag']['peer_ip']
- print ' peer-link %s' % info['mlag']['peer_link']
- print '!'
-
- for m in info['mlag']['mlags']:
- for i in m['interfaces']:
- if m['mlag'] == 12 or m['mlag'] == 34:
- continue
- else:
- print 'interface %s' % i
- print ' channel-group %s mode active' % m['mlag']
- print '!'
- print 'interface Port-Channel%s' % m['mlag']
- print ' mlag %s' % m['mlag']
- if m['trunk']:
- print ' switchport mode trunk'
- elif m['access']:
- print ' switchport mode access'
- print ' switchport access vlan %s' % m['vlan']
- print '!'
-
-if 'l3ls_svis' not in info.keys():
- print ''
-else:
- varp = False
- for s in info['l3ls_svis']:
- print 'interface Vlan%s' % s['vlan']
- print ' description VLAN%sSVI' % s['vlan']
- print ' ip address %s/%s' % (s['ip'], s['cidr'])
- print ' no autostate'
- if s['varp']:
- varp = True
- print ' ip virtual-router address %s' % s['varp_ip']
- print '!'
-
- if varp:
- print 'ip virtual-router mac-address 00:1C:73:00:00:01'
- print '!'
-
-
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3LS and VXLAN Builder.py b/topologies/dual-datacenter/configlets/L3LS and VXLAN Builder.py
deleted file mode 100644
index 8b18d3bef..000000000
--- a/topologies/dual-datacenter/configlets/L3LS and VXLAN Builder.py
+++ /dev/null
@@ -1,131 +0,0 @@
-import sys, jsonrpclib
-sys.path.append('/usr/lib64/python2.7/site-packages/')
-import yaml
-from cvplibrary import CVPGlobalVariables as cvpGV
-from cvplibrary import GlobalVariableNames as GVN
-
-def sendCmd(commands):
- ztp = cvpGV.getValue(GVN.ZTP_STATE)
- hostip = cvpGV.getValue(GVN.CVP_IP)
- if ztp == 'true':
- user = cvpGV.getValue(GVN.ZTP_USERNAME)
- passwd = cvpGV.getValue(GVN.ZTP_PASSWORD)
- else:
- user = cvpGV.getValue(GVN.CVP_USERNAME)
- passwd = cvpGV.getValue(GVN.CVP_PASSWORD)
-
- url = "https://%s:%s@%s/command-api" % (user, passwd, hostip)
- switch = jsonrpclib.Server(url)
- response = switch.runCmds(1, commands)[0]
- return response
-
-
-hostname = sendCmd(['show hostname'])['hostname']
-f = open('hostvars/%s.yml' % hostname )
-info = yaml.load(f)
-
-if 'interfaces' not in info.keys():
- print ''
-else:
- print 'ip routing'
- print '!'
- for d in info['interfaces']:
- print 'interface %s' % d['interface']
- if 'Loopback' not in d['interface']:
- print ' no switchport'
- print ' ip address %s/%s' % (d['ip'], d['cidr'])
- print '!'
-
-if 'bgp' not in info.keys():
- print ''
-else:
- print 'router bgp %s' % info['bgp']['as']
- print ' maximum-paths 4 ecmp 4'
- for d in info['bgp']['bgp_neighbors']:
- print ' neighbor %s remote-as %s' % (d['ip'], d['remote-as'])
- for n in info['bgp']['networks']:
- if n == '172.16.134.0/24' or n == '172.16.112.0/24':
- continue
- print ' network %s' % n
- print '!'
-
-if 'mlag' not in info.keys():
- print ''
-elif 'spine' in hostname:
- print ''
-else:
- print 'vlan %s' % info['mlag']['peer_vlan']
- print ' name MLAGPeerLink'
- print ' trunk group mlagPeer'
- print '!'
- print 'no spanning-tree vlan-id %s' % info['mlag']['peer_vlan']
- print '!'
- for i in info['mlag']['peer_interfaces']:
- print 'interface %s' % i
- print ' channel-group %s mode active' % info['mlag']['peer_link'].replace('Port-Channel','')
- print '!'
-
- print 'interface %s' % info['mlag']['peer_link']
- print ' description MLAGPeerLink'
- print ' switchport mode trunk'
- print ' switchport trunk group mlagPeer'
- print '!'
-
- print 'interface Vlan%s' % info['mlag']['peer_vlan']
- print ' description MLAGPeerIP'
- print ' ip address %s/%s' % (info['mlag']['ip'], info['mlag']['cidr'])
- print '!'
-
- print 'mlag configuration'
- print ' domain %s' % info['mlag']['domain']
- print ' local-interface Vlan%s' % info['mlag']['peer_vlan']
- print ' peer-address %s' % info['mlag']['peer_ip']
- print ' peer-link %s' % info['mlag']['peer_link']
- print '!'
-
- for m in info['mlag']['mlags']:
- for i in m['interfaces']:
- if m['mlag'] == 12 or m['mlag'] == 34:
- continue
- else:
- print 'interface %s' % i
- if (hostname == 'leaf2' and i == 'Ethernet4'):
- print ' shutdown'
- print ' channel-group %s mode active' % m['mlag']
- print '!'
- print 'interface Port-Channel%s' % m['mlag']
- print ' mlag %s' % m['mlag']
- if m['trunk']:
- print ' switchport mode trunk'
- elif m['access']:
- print ' switchport mode access'
- print ' switchport access vlan %s' % m['vlan']
- print '!'
-
-if 'vxlan_svis' not in info.keys():
- print ''
-else:
- varp = False
- for s in info['vxlan_svis']:
- print 'interface Vlan%s' % s['vlan']
- print ' description VLAN%sSVI' % s['vlan']
- print ' ip address %s/%s' % (s['ip'], s['cidr'])
- print ' no autostate'
- if s['varp']:
- varp = True
- print ' ip virtual-router address %s' % s['varp_ip']
- print '!'
-
- if varp:
- print 'ip virtual-router mac-address 00:1C:73:00:00:01'
- print '!'
-
-if 'vxlan' not in info.keys():
- print ''
-else:
- print 'interface Vxlan1'
- print ' vxlan source-interface %s' % info['vxlan']['vtep']
- print ' vxlan flood vtep %s' % ' '.join(info['vxlan']['flood_vteps'])
- for v in info['vxlan']['vnis']:
- print ' vxlan vlan %s vni %s' % (v['vlan'], v['vni'])
- print '!'
diff --git a/topologies/dual-datacenter/configlets/L3LS_s1-host1 b/topologies/dual-datacenter/configlets/L3LS_s1-host1
deleted file mode 100644
index 106d79b24..000000000
--- a/topologies/dual-datacenter/configlets/L3LS_s1-host1
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Port-Channel5
- description MLAG Uplink - s1-leaf1 and s1-leaf2
- no switchport
- ip address 10.111.112.201/24
-!
-interface Ethernet1
- description MLAG Uplink - s1-leaf1
- channel-group 5 mode active
- lacp timer fast
-!
-interface Ethernet2
- description MLAG Uplink - s1-leaf2
- channel-group 5 mode active
- lacp timer fast
-!
-ip route 10.111.134.0/24 10.111.112.1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3LS_s1-host2 b/topologies/dual-datacenter/configlets/L3LS_s1-host2
deleted file mode 100644
index 2411b2f5a..000000000
--- a/topologies/dual-datacenter/configlets/L3LS_s1-host2
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Port-Channel5
- description MLAG Uplink - s1-leaf3 and s1-leaf4
- no switchport
- ip address 10.111.134.202/24
-!
-interface Ethernet1
- description MLAG Uplink - s1-leaf3
- channel-group 5 mode active
- lacp timer fast
-!
-interface Ethernet2
- description MLAG Uplink - s1-leaf4
- channel-group 5 mode active
- lacp timer fast
-!
-ip route 10.111.112.0/24 10.111.134.1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3LS_s1-leaf1 b/topologies/dual-datacenter/configlets/L3LS_s1-leaf1
deleted file mode 100644
index a4c2372b6..000000000
--- a/topologies/dual-datacenter/configlets/L3LS_s1-leaf1
+++ /dev/null
@@ -1,76 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf2
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host1
- switchport access vlan 112
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf2
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.1/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.1/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host1
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf2
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.1/32
-!
-interface Vlan112
- description Host Network
- ip address 10.111.112.2/24
- ip virtual-router address 10.111.112.1
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.1/30
-!
-ip virtual-router mac-address 00:1C:73:00:00:12
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.2
- peer-link Port-Channel1
-!
-router bgp 65101
- router-id 10.111.254.1
- maximum-paths 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor 10.111.1.0 peer group SPINE
- neighbor 10.111.2.0 peer group SPINE
- neighbor 10.255.255.2 remote-as 65101
- neighbor 10.255.255.2 next-hop-self
- network 10.111.254.1/32
- network 10.111.112.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3LS_s1-leaf2 b/topologies/dual-datacenter/configlets/L3LS_s1-leaf2
deleted file mode 100644
index 021158da2..000000000
--- a/topologies/dual-datacenter/configlets/L3LS_s1-leaf2
+++ /dev/null
@@ -1,76 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host1
- switchport access vlan 112
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.3/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.3/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host1
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.2/32
-!
-interface Vlan112
- description Host Network
- ip address 10.111.112.3/24
- ip virtual-router address 10.111.112.1
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.2/30
-!
-ip virtual-router mac-address 00:1C:73:00:00:12
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.1
- peer-link Port-Channel1
-!
-router bgp 65101
- router-id 10.111.254.2
- maximum-paths 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor 10.111.1.2 peer group SPINE
- neighbor 10.111.2.2 peer group SPINE
- neighbor 10.255.255.1 remote-as 65101
- neighbor 10.255.255.1 next-hop-self
- network 10.111.254.2/32
- network 10.111.112.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3LS_s1-leaf3 b/topologies/dual-datacenter/configlets/L3LS_s1-leaf3
deleted file mode 100644
index 64466c855..000000000
--- a/topologies/dual-datacenter/configlets/L3LS_s1-leaf3
+++ /dev/null
@@ -1,76 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf4
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host2
- switchport access vlan 134
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf4
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.5/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.5/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host2
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf4
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.3/32
-!
-interface Vlan134
- description Host Network
- ip address 10.111.134.2/24
- ip virtual-router address 10.111.134.1
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.1/30
-!
-ip virtual-router mac-address 00:1C:73:00:00:34
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.2
- peer-link Port-Channel1
-!
-router bgp 65102
- router-id 10.111.254.3
- maximum-paths 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor 10.111.1.4 peer group SPINE
- neighbor 10.111.2.4 peer group SPINE
- neighbor 10.255.255.2 remote-as 65102
- neighbor 10.255.255.2 next-hop-self
- network 10.111.254.3/32
- network 10.111.134.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3LS_s1-leaf4 b/topologies/dual-datacenter/configlets/L3LS_s1-leaf4
deleted file mode 100644
index d7e323c58..000000000
--- a/topologies/dual-datacenter/configlets/L3LS_s1-leaf4
+++ /dev/null
@@ -1,38 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 4094
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host2
- switchport access vlan 134
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet4
- description MLAG Downlink - s1-host2
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.2/30
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.1
- peer-link Port-Channel1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3LS_s1-leaf4_complete b/topologies/dual-datacenter/configlets/L3LS_s1-leaf4_complete
deleted file mode 100644
index 5d45929bf..000000000
--- a/topologies/dual-datacenter/configlets/L3LS_s1-leaf4_complete
+++ /dev/null
@@ -1,76 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host2
- switchport access vlan 134
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.7/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.7/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host2
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.4/32
-!
-interface Vlan134
- description Host Network
- ip address 10.111.134.3/24
- ip virtual-router address 10.111.134.1
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.2/30
-!
-ip virtual-router mac-address 00:1C:73:00:00:34
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.1
- peer-link Port-Channel1
-!
-router bgp 65102
- router-id 10.111.254.4
- maximum-paths 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor 10.111.1.6 peer group SPINE
- neighbor 10.111.2.6 peer group SPINE
- neighbor 10.255.255.1 remote-as 65102
- neighbor 10.255.255.1 next-hop-self
- network 10.111.254.4/32
- network 10.111.134.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3LS_s1-spine1 b/topologies/dual-datacenter/configlets/L3LS_s1-spine1
deleted file mode 100644
index bbe2f96a9..000000000
--- a/topologies/dual-datacenter/configlets/L3LS_s1-spine1
+++ /dev/null
@@ -1,43 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description L3 Downlink - s1-leaf1
- no switchport
- ip address 10.111.1.0/31
-!
-interface Ethernet3
- description L3 Downlink - s1-leaf2
- no switchport
- ip address 10.111.1.2/31
-!
-interface Ethernet4
- description L3 Downlink - s1-leaf3
- no switchport
- ip address 10.111.1.4/31
-!
-interface Ethernet5
- description L3 Downlink - s1-leaf4
- no switchport
- ip address 10.111.1.6/31
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.0.1/32
-!
-ip route 10.111.1.0/24 Null0
-!
-peer-filter LEAF-ASN
- 10 match as-range 65101-65105 result accept
-!
-router bgp 65100
- router-id 10.111.0.1
- maximum-paths 2
- bgp listen range 10.111.1.0/24 peer-group LEAVES peer-filter LEAF-ASN
- neighbor LEAVES peer group
- neighbor LEAVES send-community standard extended
- network 10.111.0.1/32
- network 10.111.1.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/L3LS_s1-spine2 b/topologies/dual-datacenter/configlets/L3LS_s1-spine2
deleted file mode 100644
index 59139e577..000000000
--- a/topologies/dual-datacenter/configlets/L3LS_s1-spine2
+++ /dev/null
@@ -1,43 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description L3 Downlink - s1-leaf1
- no switchport
- ip address 10.111.2.0/31
-!
-interface Ethernet3
- description L3 Downlink - s1-leaf2
- no switchport
- ip address 10.111.2.2/31
-!
-interface Ethernet4
- description L3 Downlink - s1-leaf3
- no switchport
- ip address 10.111.2.4/31
-!
-interface Ethernet5
- description L3 Downlink - s1-leaf4
- no switchport
- ip address 10.111.2.6/31
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.0.2/32
-!
-ip route 10.111.2.0/24 Null0
-!
-peer-filter LEAF-ASN
- 10 match as-range 65101-65105 result accept
-!
-router bgp 65100
- router-id 10.111.0.2
- maximum-paths 2
- bgp listen range 10.111.2.0/24 peer-group LEAVES peer-filter LEAF-ASN
- neighbor LEAVES peer group
- neighbor LEAVES send-community standard extended
- network 10.111.0.2/32
- network 10.111.2.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-host1 b/topologies/dual-datacenter/configlets/MEDIA_s1-host1
deleted file mode 100644
index 2c795c838..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-host1
+++ /dev/null
@@ -1,6 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 172.16.15.5/24
-!
-ip route 10.127.0.0/16 172.16.15.1
-ip route 172.16.0.0/16 172.16.15.1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-host2 b/topologies/dual-datacenter/configlets/MEDIA_s1-host2
deleted file mode 100644
index 57c69e3e9..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-host2
+++ /dev/null
@@ -1,13 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- no switchport
- ip address 172.16.46.6/24
-!
-ip route 10.127.0.0/16 172.16.46.4
-ip route 172.16.0.0/16 172.16.46.4
-!
-router multicast
- ipv4
- software-forwarding sfe
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_BGP b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_BGP
deleted file mode 100644
index fd931c31e..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_BGP
+++ /dev/null
@@ -1,19 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- no switchport
- ip address 10.127.12.1/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- no switchport
- ip address 172.16.15.1/24
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 10.127.255.1/32
-router bgp 1
- router-id 10.127.255.1
- neighbor 10.127.12.2 remote-as 1
- neighbor 10.127.12.2 maximum-routes 12000
- redistribute connected
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_OSPF b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_OSPF
deleted file mode 100644
index 708c6cf5f..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_OSPF
+++ /dev/null
@@ -1,21 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- no switchport
- ip address 10.127.12.1/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- no switchport
- ip address 172.16.15.1/24
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 10.127.255.1/32
-router ospf 100
- router-id 10.127.255.1
- passive-interface Ethernet4
- passive-interface Loopback0
- network 10.127.0.0/16 area 0.0.0.0
- network 172.16.15.0/24 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_STP b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_STP
deleted file mode 100644
index 3cbe8795b..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_STP
+++ /dev/null
@@ -1,14 +0,0 @@
-vlan 100
- name v100
-interface Ethernet1
- shutdown
-interface Ethernet2
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet3
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet4
- switchport access vlan 100
-interface Ethernet6
- shutdown
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_intro b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_intro
deleted file mode 100644
index 2cd6c070a..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_intro
+++ /dev/null
@@ -1,13 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- no switchport
- ip address 10.127.12.1/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- no switchport
- ip address 172.16.15.1/24
-interface Ethernet6
- shutdown
-ip route 172.16.46.0/24 10.127.12.2
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_multicast b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_multicast
deleted file mode 100644
index 922a7bd15..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf1_multicast
+++ /dev/null
@@ -1,36 +0,0 @@
-ip pim rp-address 172.16.0.1
-vlan 15
-interface Ethernet1
- shutdown
-interface Ethernet2
- mtu 9214
- no switchport
- ip address 172.16.200.2/30
- ip pim sparse-mode
-interface Ethernet3
- shutdown
-interface Ethernet4
- switchport access vlan 15
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 172.16.0.1/32
-interface Vlan15
- no autostate
- ip address 172.16.15.1/24
- ip pim sparse-mode
-!
-ip routing
-!
-router multicast
- ipv4
- software-forwarding sfe
-!
-router ospf 6500
- router-id 172.16.0.1
- passive-interface Loopback0
- passive-interface Vlan11
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.15.0/24 area 0.0.0.0
- network 172.16.200.0/30 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_BGP b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_BGP
deleted file mode 100644
index b5b91f3dd..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_BGP
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
- no switchport
-interface Ethernet4
- shutdown
- no switchport
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_OSPF b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_OSPF
deleted file mode 100644
index 3a213169d..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_OSPF
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
- no switchport
-interface Ethernet4
- shutdown
- no switchport
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_STP b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_STP
deleted file mode 100644
index 056aa9b79..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_STP
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_intro b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_intro
deleted file mode 100644
index b5b91f3dd..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_intro
+++ /dev/null
@@ -1,20 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
- no switchport
-interface Ethernet4
- shutdown
- no switchport
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_multicast b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_multicast
deleted file mode 100644
index 056aa9b79..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf2_multicast
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 2 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_BGP b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_BGP
deleted file mode 100644
index 450cb6fcb..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_BGP
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_OSPF b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_OSPF
deleted file mode 100644
index 450cb6fcb..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_OSPF
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_STP b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_STP
deleted file mode 100644
index b3e62f763..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_STP
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_intro b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_intro
deleted file mode 100644
index b3e62f763..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_intro
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_multicast b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_multicast
deleted file mode 100644
index b3e62f763..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf3_multicast
+++ /dev/null
@@ -1,18 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet6
- shutdown
-!
-banner motd
-******************************
-*** Note Leaf Switch 3 is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_BGP b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_BGP
deleted file mode 100644
index e2d2e3fb7..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_BGP
+++ /dev/null
@@ -1,12 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.127.34.4/24
-interface Ethernet4
- no switchport
- ip address 172.16.46.4/24
-interface Ethernet6
- shutdown
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_OSPF b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_OSPF
deleted file mode 100644
index f6648ec53..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_OSPF
+++ /dev/null
@@ -1,6 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet6
- shutdown
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_STP b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_STP
deleted file mode 100644
index 6e4bdb6ca..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_STP
+++ /dev/null
@@ -1,4 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet6
- shutdown
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_intro b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_intro
deleted file mode 100644
index f6648ec53..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_intro
+++ /dev/null
@@ -1,6 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet6
- shutdown
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_multicast b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_multicast
deleted file mode 100644
index 7565db16e..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_multicast
+++ /dev/null
@@ -1,10 +0,0 @@
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet6
- shutdown
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_multicast_complete b/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_multicast_complete
deleted file mode 100644
index 86ade6bcf..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-leaf4_multicast_complete
+++ /dev/null
@@ -1,35 +0,0 @@
-ip pim rp-address 172.16.0.1
-vlan 46
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- mtu 9214
- no switchport
- ip address 172.16.200.26/30
- ip pim sparse-mode
-interface Ethernet4
- switchport access vlan 46
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 172.16.0.4/32
-interface Vlan46
- no autostate
- ip address 172.16.46.4/24
- ip pim sparse-mode
-ip routing
-!
-router multicast
- ipv4
- software-forwarding sfe
-!
-router ospf 6500
- router-id 172.16.0.4
- passive-interface Loopback0
- passive-interface Vlan46
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.46.0/24 area 0.0.0.0
- network 172.16.200.24/30 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_BGP b/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_BGP
deleted file mode 100644
index a64203fcc..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_BGP
+++ /dev/null
@@ -1,23 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.2/24
-interface Ethernet2
- no switchport
- ip address 10.127.12.2/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 10.127.255.2/32
-router bgp 1
- router-id 10.127.255.2
- neighbor 10.127.12.1 remote-as 1
- neighbor 10.127.12.1 next-hop-self
- neighbor 10.127.12.1 maximum-routes 12000
- neighbor 10.127.23.3 remote-as 2
- neighbor 10.127.23.3 maximum-routes 12000
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_OSPF b/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_OSPF
deleted file mode 100644
index c52f5f533..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_OSPF
+++ /dev/null
@@ -1,21 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.2/24
-interface Ethernet2
- no switchport
- ip address 10.127.12.2/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 10.127.255.2/32
-router ospf 100
- router-id 10.127.255.2
- passive-interface Loopback0
- network 10.127.0.0/16 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_STP b/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_STP
deleted file mode 100644
index 64c19f7e6..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_STP
+++ /dev/null
@@ -1,21 +0,0 @@
-spanning-tree mst 0 priority 4096
-vlan 100
- name v100
-interface Ethernet1
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet2
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet6
- shutdown
-interface Vlan100
- ip address 172.16.15.1/24
- ip address 172.16.46.4/24 secondary
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_intro b/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_intro
deleted file mode 100644
index e28f0cadd..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_intro
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.2/24
-interface Ethernet2
- no switchport
- ip address 10.127.12.2/24
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-ip route 172.16.15.0/24 10.127.12.1
-ip route 172.16.46.0/24 10.127.23.3
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_multicast b/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_multicast
deleted file mode 100644
index 372b2611c..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-spine1_multicast
+++ /dev/null
@@ -1,34 +0,0 @@
-ip pim rp-address 172.16.0.1
-interface Ethernet1
- mtu 9214
- no switchport
- ip address 172.16.200.33/30
- ip pim sparse-mode
-interface Ethernet2
- mtu 9214
- no switchport
- ip address 172.16.200.1/30
- ip pim sparse-mode
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- shutdown
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 172.16.0.2/32
-ip routing
-!
-router multicast
- ipv4
- software-forwarding sfe
-!
-router ospf 6500
- router-id 172.16.0.2
- passive-interface Loopback0
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.200.0/30 area 0.0.0.0
- network 172.16.200.32/30 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_BGP b/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_BGP
deleted file mode 100644
index 2382d3a5f..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_BGP
+++ /dev/null
@@ -1,23 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.3/24
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- no switchport
- ip address 10.127.34.3/24
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 10.127.255.3/32
-router bgp 2
- router-id 10.127.255.3
- neighbor 10.127.23.2 remote-as 1
- neighbor 10.127.23.2 maximum-routes 12000
- neighbor 10.127.34.4 remote-as 2
- neighbor 10.127.34.4 next-hop-self
- neighbor 10.127.34.4 maximum-routes 12000
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_OSPF b/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_OSPF
deleted file mode 100644
index 4e78285dd..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_OSPF
+++ /dev/null
@@ -1,21 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.3/24
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- no switchport
- ip address 10.127.34.3/24
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 10.127.255.3/32
-router ospf 100
- router-id 10.127.255.3
- passive-interface Loopback0
- network 10.127.0.0/16 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_STP b/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_STP
deleted file mode 100644
index da952ff29..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_STP
+++ /dev/null
@@ -1,18 +0,0 @@
-spanning-tree mst 0 priority 8192
-vlan 100
- name v100
-interface Ethernet1
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet2
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- switchport trunk allowed vlan 100
- switchport mode trunk
-interface Ethernet6
- shutdown
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_intro b/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_intro
deleted file mode 100644
index 8b1d0dfd7..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_intro
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Ethernet1
- no switchport
- ip address 10.127.23.3/24
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- no switchport
- ip address 10.127.34.3/24
-interface Ethernet6
- shutdown
-ip route 172.16.15.0/24 10.127.23.2
-ip route 172.16.46.0/24 10.127.34.4
diff --git a/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_multicast b/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_multicast
deleted file mode 100644
index b9ae5c2b1..000000000
--- a/topologies/dual-datacenter/configlets/MEDIA_s1-spine2_multicast
+++ /dev/null
@@ -1,34 +0,0 @@
-ip pim rp-address 172.16.0.1
-interface Ethernet1
- mtu 9214
- no switchport
- ip address 172.16.200.34/30
- ip pim sparse-mode
-interface Ethernet2
- shutdown
-interface Ethernet3
- shutdown
-interface Ethernet4
- shutdown
-interface Ethernet5
- mtu 9214
- no switchport
- ip address 172.16.200.25/30
- ip pim sparse-mode
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 172.16.0.3/32
-ip routing
-!
-router multicast
- ipv4
- software-forwarding sfe
-!
-router ospf 6500
- router-id 172.16.0.3
- passive-interface Loopback0
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.200.24/30 area 0.0.0.0
- network 172.16.200.32/30 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/dual-datacenter/configlets/MLAG and VARP Builder.py b/topologies/dual-datacenter/configlets/MLAG and VARP Builder.py
deleted file mode 100644
index 228e8d180..000000000
--- a/topologies/dual-datacenter/configlets/MLAG and VARP Builder.py
+++ /dev/null
@@ -1,89 +0,0 @@
-import sys, jsonrpclib
-sys.path.append('/usr/lib64/python2.7/site-packages/')
-import yaml
-from cvplibrary import CVPGlobalVariables as cvpGV
-from cvplibrary import GlobalVariableNames as GVN
-
-def sendCmd(commands):
- ztp = cvpGV.getValue(GVN.ZTP_STATE)
- hostip = cvpGV.getValue(GVN.CVP_IP)
- if ztp == 'true':
- user = cvpGV.getValue(GVN.ZTP_USERNAME)
- passwd = cvpGV.getValue(GVN.ZTP_PASSWORD)
- else:
- user = cvpGV.getValue(GVN.CVP_USERNAME)
- passwd = cvpGV.getValue(GVN.CVP_PASSWORD)
-
- url = "https://%s:%s@%s/command-api" % (user, passwd, hostip)
- switch = jsonrpclib.Server(url)
- response = switch.runCmds(1, commands)[0]
- return response
-
-hostname = sendCmd(['show hostname'])['hostname']
-f = open('hostvars/%s.yml' % hostname )
-info = yaml.load(f)
-
-if 'mlag' not in info.keys():
- print ''
-else:
- print 'vlan %s' % info['mlag']['peer_vlan']
- print ' name MLAGPeerLink'
- print ' trunk group mlagPeer'
- print '!'
- print 'no spanning-tree vlan-id %s' % info['mlag']['peer_vlan']
- print '!'
- for i in info['mlag']['peer_interfaces']:
- print 'interface %s' % i
- print ' channel-group %s mode active' % info['mlag']['peer_link'].replace('Port-Channel','')
- print '!'
-
- print 'interface %s' % info['mlag']['peer_link']
- print ' description MLAGPeerLink'
- print ' switchport mode trunk'
- print ' switchport trunk group mlagPeer'
- print '!'
-
- print 'interface Vlan%s' % info['mlag']['peer_vlan']
- print ' description MLAGPeerIP'
- print ' ip address %s/%s' % (info['mlag']['ip'], info['mlag']['cidr'])
- print '!'
-
- print 'mlag configuration'
- print ' domain %s' % info['mlag']['domain']
- print ' local-interface Vlan%s' % info['mlag']['peer_vlan']
- print ' peer-address %s' % info['mlag']['peer_ip']
- print ' peer-link %s' % info['mlag']['peer_link']
- print '!'
-
- for m in info['mlag']['mlags']:
- for i in m['interfaces']:
- print 'interface %s' % i
- print ' channel-group %s mode active' % m['mlag']
- print '!'
- print 'interface Port-Channel%s' % m['mlag']
- print ' mlag %s' % m['mlag']
- if m['trunk']:
- print ' switchport mode trunk'
- elif m['access']:
- print ' switchport mode access'
- print ' switchport access vlan %s' % m['vlan']
- print '!'
-
-if 'mlag_svis' not in info.keys():
- print ''
-else:
- varp = False
- for s in info['mlag_svis']:
- print 'interface Vlan%s' % s['vlan']
- print ' description VLAN%sSVI' % s['vlan']
- print ' ip address %s/%s' % (s['ip'], s['cidr'])
- print ' no autostate'
- if s['varp']:
- varp = True
- print ' ip virtual-router address %s' % s['varp_ip']
- print '!'
-
- if varp:
- print 'ip virtual-router mac-address 00:1C:73:00:00:01'
- print '!'
-
diff --git a/topologies/dual-datacenter/configlets/SYS_BaseConfig.py b/topologies/dual-datacenter/configlets/SYS_BaseConfig.py
deleted file mode 100644
index fcbecb573..000000000
--- a/topologies/dual-datacenter/configlets/SYS_BaseConfig.py
+++ /dev/null
@@ -1,53 +0,0 @@
-import urllib2, json, jsonrpclib, ssl
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames
-
-# Get this devices MAC address
-mac = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_MAC )
-ztp = CVPGlobalVariables.getValue( GlobalVariableNames.ZTP_STATE )
-hostip = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_IP )
-
-if ztp == 'true':
- user = CVPGlobalVariables.getValue( GlobalVariableNames.ZTP_USERNAME )
- passwd = CVPGlobalVariables.getValue( GlobalVariableNames.ZTP_PASSWORD )
-else:
- user = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_USERNAME )
- passwd = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_PASSWORD )
-
-# setup context to disable SSL verification
-# Request to send to IPAM for Ma1 address
-url = "http://192.168.0.4/ipam/arista/mgmtbymac.php?mac=%s" % mac
-response = urllib2.urlopen(url)
-hostjson = json.loads(response.read())
-
-
-
-# Process JSON from IPAM for some reason cvx doesn't appear to be in json
-if mac == '2c:c2:60:5c:a3:5e':
- hostname = "cvx01"
- ip = "192.168.0.44"
- mask = 24
-else:
- host = hostjson['host']
- hostname = host['hostname']
- ip = host['ip']
- mask = host['mask']
-
-# Generate and print config
-print 'hostname %s' % hostname
-print '!'
-
-print 'interface Management 1'
-print ' ip address %s/%s' % ( ip, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-print 'ip domain-name arista.test'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.254'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/TSHOOT_default b/topologies/dual-datacenter/configlets/TSHOOT_default
deleted file mode 100644
index 8c7849a29..000000000
--- a/topologies/dual-datacenter/configlets/TSHOOT_default
+++ /dev/null
@@ -1,10 +0,0 @@
-interface Ethernet1-6
- shutdown
-!
-banner motd
-******************************
-*** Note this switch is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/dual-datacenter/configlets/TSHOOT_s1-host1_intro b/topologies/dual-datacenter/configlets/TSHOOT_s1-host1_intro
deleted file mode 100755
index b6458af05..000000000
--- a/topologies/dual-datacenter/configlets/TSHOOT_s1-host1_intro
+++ /dev/null
@@ -1,9 +0,0 @@
-vlan 22
-!
-interface Ethernet1
- description LEAF1
- switchport trunk allowed vlan 12
- switchport mode trunk
-!
-interface Vlan22
- ip address 172.16.112.201/24
diff --git a/topologies/dual-datacenter/configlets/TSHOOT_s1-host1_sp b/topologies/dual-datacenter/configlets/TSHOOT_s1-host1_sp
deleted file mode 100644
index ec0d6c67c..000000000
--- a/topologies/dual-datacenter/configlets/TSHOOT_s1-host1_sp
+++ /dev/null
@@ -1,18 +0,0 @@
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-interface Ethernet1
- no switchport
- ip address 10.127.100.2/24
-!
-interface Ethernet2
-shut
-!
-!
-ip routing
-!
-ip route 10.127.0.0/16 10.127.100.1
-!
-end
diff --git a/topologies/dual-datacenter/configlets/TSHOOT_s1-host2_intro b/topologies/dual-datacenter/configlets/TSHOOT_s1-host2_intro
deleted file mode 100755
index 66b44bfc2..000000000
--- a/topologies/dual-datacenter/configlets/TSHOOT_s1-host2_intro
+++ /dev/null
@@ -1,10 +0,0 @@
-interface Ethernet1-2
- shutdown
-!
-banner motd
-******************************
-*** Note this switch is ***
-*** not used for this lab. ***
-*** Please return to menu ***
-******************************
-EOF
diff --git a/topologies/dual-datacenter/configlets/TSHOOT_s1-host2_sp b/topologies/dual-datacenter/configlets/TSHOOT_s1-host2_sp
deleted file mode 100644
index 922c9c884..000000000
--- a/topologies/dual-datacenter/configlets/TSHOOT_s1-host2_sp
+++ /dev/null
@@ -1,18 +0,0 @@
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
- no switchport
- ip address 10.127.200.2/24
-!
-!
-ip routing
-!
-ip route 10.127.0.0/16 10.127.200.1
-!
-end
diff --git a/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf1_intro b/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf1_intro
deleted file mode 100755
index b117141cb..000000000
--- a/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf1_intro
+++ /dev/null
@@ -1,50 +0,0 @@
-vlan 12,34
-!
-interface Ethernet1
- description LEAF2
- switchport mode trunk
-!
-interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.2/30
- ip ospf network point-to-point
-!
-interface Ethernet3
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet4
- description HOST1
- switchport trunk allowed vlan 12
- switchport mode trunk
-!
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 172.16.0.3/32
-!
-interface Vlan12
- ip address 172.16.112.1/24
- ip virtual-router address 172.16.115.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:12
-!
-!ip route 0.0.0.0/0 192.168.0.254
-!
-router bgp 65001
- router-id 172.16.0.3
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.1 remote-as 65000
- neighbor 172.16.200.1 send-community extended
- neighbor 172.16.200.1 maximum-routes 12000
- network 172.16.0.3/32
- network 172.16.112.0/25
-!
-router ospf 1
- router-id 172.16.0.3
- passive-interface default
- no passive-interface Ethernet2
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf1_sp b/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf1_sp
deleted file mode 100644
index 8fe7ce29d..000000000
--- a/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf1_sp
+++ /dev/null
@@ -1,79 +0,0 @@
-!
-service routing protocols model multi-agent
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-!
-vlan 100
- name v100
-!
-vrf instance host
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
- description << p2p Core-1 >>
- no switchport
- ip address 10.127.12.1/24
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
- description << p2p host1 >>
- switchport access vlan 100
-!
-interface Ethernet6
- shutdown
-!
-!
-interface Loopback0
- description BGP router-Id
- ip address 10.127.255.1/32
-!
-interface Management1
-!
-interface Vlan100
- vrf host
- ip address 10.127.100.1/24
-!
-ip routing
-ip routing vrf host
-!
-!
-mpls ip
-!
-mpls ldp
- router-id 10.127.255.1
- transport-address interface Loopback0
- password 7 070E33455D1D18544541
- neighbor 10.127.255.2 targeted
- no shutdown
-!
-router bgp 64500
- router-id 10.127.255.1
- neighbor 10.127.255.3 remote-as 64500
- neighbor 10.127.255.3 update-source Loopback0
- neighbor 10.127.255.3 send-community extended
- neighbor 10.127.255.3 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- !
- vrf host
- rd 10.127.255.1:1
- route-target import evpn 65400:1
- route-target export evpn 65400:1
- redistribute connected
-!
-router ospf 100
- router-id 10.127.255.1
- passive-interface Loopback0
- network 10.127.12.0/24 area 0.0.0.0
- network 10.127.255.0/24 area 0.0.0.0
- max-lsa 12000
-!
-end
diff --git a/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf2_intro b/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf2_intro
deleted file mode 100755
index 2d9c8646e..000000000
--- a/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf2_intro
+++ /dev/null
@@ -1,36 +0,0 @@
-spanning-tree mode mstp
-spanning-tree mst 0 priority 4096
-!
-vlan 12,34
-!
-interface Ethernet1
- description LEAF1
- switchport mode trunk
-!
-interface Ethernet2
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet3
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet4
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 172.16.0.4/32
-!
-interface Vlan12
- ip address 172.16.115.3/24
- ip virtual-router address 172.16.115.1
-!
-ip virtual-router mac-address 00:1c:73:00:00:12
-!
-!ip route 0.0.0.0/0 192.168.0.254
diff --git a/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf2_sp b/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf2_sp
deleted file mode 100644
index ea1de2f8b..000000000
--- a/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf2_sp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-!
-!
-no aaa root
-!
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
-shut
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
-shut
-!
-interface Ethernet6
- shutdown
-!
-!
-end
diff --git a/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf3_sp b/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf3_sp
deleted file mode 100644
index ea1de2f8b..000000000
--- a/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf3_sp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-!
-!
-no aaa root
-!
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
-shut
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
-shut
-!
-interface Ethernet6
- shutdown
-!
-!
-end
diff --git a/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf4_sp b/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf4_sp
deleted file mode 100644
index 2e241a285..000000000
--- a/topologies/dual-datacenter/configlets/TSHOOT_s1-leaf4_sp
+++ /dev/null
@@ -1,84 +0,0 @@
-!
-service routing protocols model multi-agent
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-vlan 200
- name v200
-!
-vrf instance host
-!
-interface Ethernet1
-shut
-!
-interface Ethernet2
- description << p2p Core-1 >>
- no switchport
- ip address 10.127.24.4/24
-!
-interface Ethernet3
- description << p2p Core-2 >>
- no switchport
- ip address 10.127.34.4/24
-!
-interface Ethernet4
- description << p2p host2 >>
- switchport access vlan 200
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- description BGP router-Id
- ip address 10.127.255.4/32
-!
-!
-interface Vlan200
- vrf host
- ip address 10.127.200.1/24
-!
-ip routing
-ip routing vrf host
-!
-!
-mpls ip
-!
-mpls ldp
- router-id 10.127.255.4
- transport-address interface Loopback0
- password 7 070E33455D1D18544541
- neighbor 10.127.255.3 targeted
- neighbor 10.127.255.2 targeted
- no shutdown
-!
-router bgp 64500
- router-id 10.127.255.4
- neighbor 10.127.255.1 remote-as 64500
- neighbor 10.127.255.1 update-source Loopback0
- neighbor 10.127.255.1 send-community extended
- neighbor 10.127.255.1 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 10.127.255.1 activate
- !
- address-family ipv4
- no neighbor 10.127.255.1 activate
- !
- vrf host
- rd 10.127.255.4:1
- route-target import evpn 64500:1
- route-target export evpn 64500:1
- redistribute connected
-!
-router ospf 100
- router-id 10.127.255.4
- passive-interface Loopback0
- network 10.127.34.0/24 area 0.0.0.0
- network 10.127.255.0/24 area 0.0.0.0
- max-lsa 12000
-!
-!
-end
diff --git a/topologies/dual-datacenter/configlets/TSHOOT_s1-spine1_intro b/topologies/dual-datacenter/configlets/TSHOOT_s1-spine1_intro
deleted file mode 100755
index 5261cd7f3..000000000
--- a/topologies/dual-datacenter/configlets/TSHOOT_s1-spine1_intro
+++ /dev/null
@@ -1,50 +0,0 @@
-vlan 12,34
-!
-interface Ethernet1
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet2
- description LEAF1
- mtu 9000
- no switchport
- ip address 172.16.200.1/30
- ip ospf network point-to-point
-!
-interface Ethernet3
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet4
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet5
- !! NOT USED FOR LAB
- !! CONNECTIVITY NOT REQUIRED
- shutdown
-!
-interface Ethernet6
- shutdown
-interface Loopback0
- ip address 172.16.0.1/32
-!
-! ip route 0.0.0.0/0 192.168.0.254
-!
-router bgp 65000
- router-id 172.16.0.1
- maximum-paths 4 ecmp 4
- neighbor 172.16.200.2 remote-as 65001
- neighbor 172.16.200.2 send-community extended
- neighbor 172.16.200.2 maximum-routes 12000
- network 172.16.0.1/32
-!
-router ospf 1
- router-id 172.16.0.1
- passive-interface default
- no passive-interface Ethernet2
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
diff --git a/topologies/dual-datacenter/configlets/TSHOOT_s1-spine1_sp b/topologies/dual-datacenter/configlets/TSHOOT_s1-spine1_sp
deleted file mode 100644
index e17d8e1fc..000000000
--- a/topologies/dual-datacenter/configlets/TSHOOT_s1-spine1_sp
+++ /dev/null
@@ -1,61 +0,0 @@
-!
-service routing protocols model multi-agent
-!
-spanning-tree mode mstp
-!
-no aaa root
-!
-!
-interface Ethernet1
- description << p2p Core-2 >>
- no switchport
- ip address 10.127.23.2/24
-!
-interface Ethernet2
- description << p2p PE-1 >>
- no switchport
- ip address 10.127.12.2/24
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
-shut
-!
-interface Ethernet5
- description << p2p PE-2 >>
- no switchport
- ip address 10.127.24.2/24
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- description BGP router-Id
- ip address 10.127.255.2/32
-!
-!
-ip routing
-!
-!
-mpls ip
-!
-mpls ldp
- router-id 10.127.255.2
- transport-address interface Loopback0
- password 7 070E33455D1D18544541
- neighbor 10.127.255.4 targeted
- neighbor 10.127.255.1 targeted
- no shutdown
-!
-router ospf 100
- router-id 10.127.255.2
- passive-interface Loopback0
- network 10.127.12.0/24 area 0.0.0.0
- network 10.127.23.0/24 area 0.0.0.0
- network 10.127.24.0/24 area 0.0.0.0
- network 10.127.255.0/24 area 0.0.0.0
- max-lsa 12000
-!
-!
-end
diff --git a/topologies/dual-datacenter/configlets/TSHOOT_s1-spine2_sp b/topologies/dual-datacenter/configlets/TSHOOT_s1-spine2_sp
deleted file mode 100644
index 4920014ca..000000000
--- a/topologies/dual-datacenter/configlets/TSHOOT_s1-spine2_sp
+++ /dev/null
@@ -1,52 +0,0 @@
-!
-service routing protocols model multi-agent
-!
-spanning-tree mode mstp
-!
-interface Ethernet1
- description << p2p Core-1 >>
- no switchport
- ip address 10.127.23.3/24
-!
-interface Ethernet2
-shut
-!
-interface Ethernet3
-shut
-!
-interface Ethernet4
-shut
-!
-interface Ethernet5
- description << p2p PE-2 >>
- no switchport
- ip address 10.127.34.3/24
-!
-interface Ethernet6
- shutdown
-interface Loopback0
- description BGP router-Id
- ip address 10.127.255.3/32
-!
-ip routing
-!
-!
-mpls ip
-!
-mpls ldp
- router-id 10.127.255.3
- transport-address interface Loopback0
- password 7 070E33455D1D18544541
- neighbor 10.127.255.4 targeted
- neighbor 10.127.255.2 targeted
- no shutdown
-!
-router ospf 100
- router-id 10.127.255.3
- passive-interface Loopback0
- network 10.127.23.0/24 area 0.0.0.0
- network 10.127.34.0/24 area 0.0.0.0
- network 10.127.255.0/24 area 0.0.0.0
- max-lsa 12000
-!
-end
diff --git a/topologies/dual-datacenter/configlets/VXLAN_s1-host1 b/topologies/dual-datacenter/configlets/VXLAN_s1-host1
deleted file mode 100644
index 120011229..000000000
--- a/topologies/dual-datacenter/configlets/VXLAN_s1-host1
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Port-Channel1
- description MLAG Uplink - s1-leaf1 and s1-leaf2
- no switchport
- ip address 10.111.112.201/24
-!
-interface Ethernet1
- description MLAG Uplink - s1-leaf1
- channel-group 1 mode active
- lacp timer fast
-!
-interface Ethernet2
- description MLAG Uplink - s1-leaf2
- channel-group 1 mode active
- lacp timer fast
-!
-ip route 10.111.134.0/24 10.111.112.1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/VXLAN_s1-host2 b/topologies/dual-datacenter/configlets/VXLAN_s1-host2
deleted file mode 100644
index 5aea7938f..000000000
--- a/topologies/dual-datacenter/configlets/VXLAN_s1-host2
+++ /dev/null
@@ -1,16 +0,0 @@
-interface Port-Channel1
- description MLAG Uplink - s1-leaf3 and s1-leaf4
- no switchport
- ip address 10.111.112.202/24
-!
-interface Ethernet1
- description MLAG Uplink - s1-leaf3
- channel-group 1 mode active
- lacp timer fast
-!
-interface Ethernet2
- description MLAG Uplink - s1-leaf4
- channel-group 1 mode active
- lacp timer fast
-!
-ip route 10.111.134.0/24 10.111.112.1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/VXLAN_s1-leaf1 b/topologies/dual-datacenter/configlets/VXLAN_s1-leaf1
deleted file mode 100644
index 31e46b253..000000000
--- a/topologies/dual-datacenter/configlets/VXLAN_s1-leaf1
+++ /dev/null
@@ -1,94 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf2
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host1
- switchport access vlan 112
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf2
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.1/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.1/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host1
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf2
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.1/32
-!
-interface Loopback1
- description VTEP
- ip address 10.111.253.1/32
-!
-interface Vlan112
- description Host Network
- ip address virtual 10.111.112.1/24
-!
-interface Vlan134
- description Host Network
- ip address virtual 10.111.134.1/24
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.1/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 112 vni 112
- vxlan flood vtep 10.111.253.3
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.2
- peer-link Port-Channel1
-!
-router bgp 65101
- router-id 10.111.254.1
- maximum-paths 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor 10.111.1.0 peer group SPINE
- neighbor 10.111.2.0 peer group SPINE
- neighbor 10.255.255.2 remote-as 65101
- neighbor 10.255.255.2 next-hop-self
- network 10.111.254.1/32
- network 10.111.253.1/32
- network 10.111.112.0/24
- network 10.111.134.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/VXLAN_s1-leaf2 b/topologies/dual-datacenter/configlets/VXLAN_s1-leaf2
deleted file mode 100644
index c06f42f8d..000000000
--- a/topologies/dual-datacenter/configlets/VXLAN_s1-leaf2
+++ /dev/null
@@ -1,94 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host1
- switchport access vlan 112
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.3/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.3/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host1
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.2/32
-!
-interface Loopback1
- description VTEP
- ip address 10.111.253.1/32
-!
-interface Vlan112
- description Host Network
- ip address virtual 10.111.112.1/24
-!
-interface Vlan134
- description Host Network
- ip address virtual 10.111.134.1/24
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.2/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 112 vni 112
- vxlan flood vtep 10.111.253.3
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.1
- peer-link Port-Channel1
-!
-router bgp 65101
- router-id 10.111.254.2
- maximum-paths 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor 10.111.1.2 peer group SPINE
- neighbor 10.111.2.2 peer group SPINE
- neighbor 10.255.255.1 remote-as 65101
- neighbor 10.255.255.1 next-hop-self
- network 10.111.254.2/32
- network 10.111.253.1/32
- network 10.111.112.0/24
- network 10.111.134.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/VXLAN_s1-leaf3 b/topologies/dual-datacenter/configlets/VXLAN_s1-leaf3
deleted file mode 100644
index 352a447c6..000000000
--- a/topologies/dual-datacenter/configlets/VXLAN_s1-leaf3
+++ /dev/null
@@ -1,94 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf4
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host2
- switchport access vlan 112
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf4
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.5/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.5/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host2
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf4
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.3/32
-!
-interface Loopback1
- description VTEP
- ip address 10.111.253.3/32
-!
-interface Vlan112
- description Host Network
- ip address virtual 10.111.112.1/24
-!
-interface Vlan134
- description Host Network
- ip address virtual 10.111.134.1/24
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.1/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 112 vni 112
- vxlan flood vtep 10.111.253.1
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.2
- peer-link Port-Channel1
-!
-router bgp 65102
- router-id 10.111.254.3
- maximum-paths 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor 10.111.1.4 peer group SPINE
- neighbor 10.111.2.4 peer group SPINE
- neighbor 10.255.255.2 remote-as 65102
- neighbor 10.255.255.2 next-hop-self
- network 10.111.254.3/32
- network 10.111.253.3/32
- network 10.111.112.0/24
- network 10.111.134.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/VXLAN_s1-leaf4 b/topologies/dual-datacenter/configlets/VXLAN_s1-leaf4
deleted file mode 100644
index f7bbdb90a..000000000
--- a/topologies/dual-datacenter/configlets/VXLAN_s1-leaf4
+++ /dev/null
@@ -1,74 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.7/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.7/31
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.4/32
-!
-interface Vlan112
- description Host Network
- ip address virtual 10.111.112.1/24
-!
-interface Vlan134
- description Host Network
- ip address virtual 10.111.134.1/24
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.2/30
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.1
- peer-link Port-Channel1
-!
-router bgp 65102
- router-id 10.111.254.4
- maximum-paths 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor 10.111.1.6 peer group SPINE
- neighbor 10.111.2.6 peer group SPINE
- neighbor 10.255.255.1 remote-as 65102
- neighbor 10.255.255.1 next-hop-self
- network 10.111.254.4/32
- network 10.111.112.0/24
- network 10.111.134.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/VXLAN_s1-leaf4_complete b/topologies/dual-datacenter/configlets/VXLAN_s1-leaf4_complete
deleted file mode 100644
index e2a05f191..000000000
--- a/topologies/dual-datacenter/configlets/VXLAN_s1-leaf4_complete
+++ /dev/null
@@ -1,94 +0,0 @@
-no spanning-tree vlan-id 4094
-!
-vlan 112
- name Host_Network_112
-!
-vlan 134
- name Host_Network_134
-!
-vlan 4094
- name MLAG_VLAN
- trunk group MLAGPEER
-!
-interface Port-Channel1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- switchport trunk group MLAGPEER
-!
-interface Port-Channel5
- description MLAG Downlink - s1-host2
- switchport access vlan 112
- mlag 5
-!
-interface Ethernet1
- description MLAG Peer-link - s1-leaf1
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.7/31
-!
-interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.7/31
-!
-interface Ethernet4
- description MLAG Downlink - s1-host2
- channel-group 5 mode active
-!
-interface Ethernet6
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- channel-group 1 mode active
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.254.4/32
-!
-interface Loopback1
- description VTEP
- ip address 10.111.253.3/32
-!
-interface Vlan112
- description Host Network
- ip address virtual 10.111.112.1/24
-!
-interface Vlan134
- description Host Network
- ip address virtual 10.111.134.1/24
-!
-interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.2/30
-!
-interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 112 vni 112
- vxlan flood vtep 10.111.253.1
-!
-ip virtual-router mac-address 00:1C:73:00:00:01
-!
-mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.1
- peer-link Port-Channel1
-!
-router bgp 65102
- router-id 10.111.254.4
- maximum-paths 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor 10.111.1.6 peer group SPINE
- neighbor 10.111.2.6 peer group SPINE
- neighbor 10.255.255.1 remote-as 65102
- neighbor 10.255.255.1 next-hop-self
- network 10.111.254.4/32
- network 10.111.253.3/32
- network 10.111.112.0/24
- network 10.111.134.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/VXLAN_s1-spine1 b/topologies/dual-datacenter/configlets/VXLAN_s1-spine1
deleted file mode 100644
index bbe2f96a9..000000000
--- a/topologies/dual-datacenter/configlets/VXLAN_s1-spine1
+++ /dev/null
@@ -1,43 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description L3 Downlink - s1-leaf1
- no switchport
- ip address 10.111.1.0/31
-!
-interface Ethernet3
- description L3 Downlink - s1-leaf2
- no switchport
- ip address 10.111.1.2/31
-!
-interface Ethernet4
- description L3 Downlink - s1-leaf3
- no switchport
- ip address 10.111.1.4/31
-!
-interface Ethernet5
- description L3 Downlink - s1-leaf4
- no switchport
- ip address 10.111.1.6/31
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.0.1/32
-!
-ip route 10.111.1.0/24 Null0
-!
-peer-filter LEAF-ASN
- 10 match as-range 65101-65105 result accept
-!
-router bgp 65100
- router-id 10.111.0.1
- maximum-paths 2
- bgp listen range 10.111.1.0/24 peer-group LEAVES peer-filter LEAF-ASN
- neighbor LEAVES peer group
- neighbor LEAVES send-community standard extended
- network 10.111.0.1/32
- network 10.111.1.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/configlets/VXLAN_s1-spine2 b/topologies/dual-datacenter/configlets/VXLAN_s1-spine2
deleted file mode 100644
index 59139e577..000000000
--- a/topologies/dual-datacenter/configlets/VXLAN_s1-spine2
+++ /dev/null
@@ -1,43 +0,0 @@
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- description L3 Downlink - s1-leaf1
- no switchport
- ip address 10.111.2.0/31
-!
-interface Ethernet3
- description L3 Downlink - s1-leaf2
- no switchport
- ip address 10.111.2.2/31
-!
-interface Ethernet4
- description L3 Downlink - s1-leaf3
- no switchport
- ip address 10.111.2.4/31
-!
-interface Ethernet5
- description L3 Downlink - s1-leaf4
- no switchport
- ip address 10.111.2.6/31
-!
-interface Ethernet6
- shutdown
-!
-interface Loopback0
- description Management and Router-id
- ip address 10.111.0.2/32
-!
-ip route 10.111.2.0/24 Null0
-!
-peer-filter LEAF-ASN
- 10 match as-range 65101-65105 result accept
-!
-router bgp 65100
- router-id 10.111.0.2
- maximum-paths 2
- bgp listen range 10.111.2.0/24 peer-group LEAVES peer-filter LEAF-ASN
- neighbor LEAVES peer group
- neighbor LEAVES send-community standard extended
- network 10.111.0.2/32
- network 10.111.2.0/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/.ansible.cfg b/topologies/dual-datacenter/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/dual-datacenter/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/dual-datacenter/files/.screenrc b/topologies/dual-datacenter/files/.screenrc
deleted file mode 100644
index f9c087d91..000000000
--- a/topologies/dual-datacenter/files/.screenrc
+++ /dev/null
@@ -1,20 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.10
-screen 2 ssh 192.168.0.11
-screen 3 ssh 192.168.0.12
-screen 4 ssh 192.168.0.13
-screen 5 ssh 192.168.0.14
-screen 6 ssh 192.168.0.15
-screen 7 ssh 192.168.0.16
-screen 8 ssh 192.168.0.17
-screen 9 ssh 192.168.0.18
-screen 10 /usr/local/bin/login.py
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/Broadcaster/mcast-receiver.sh b/topologies/dual-datacenter/files/Broadcaster/mcast-receiver.sh
deleted file mode 100755
index 926fa6200..000000000
--- a/topologies/dual-datacenter/files/Broadcaster/mcast-receiver.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-echo "Starting Receivers"
-sudo ip route add 239.103.1.1/32 dev et2
-sudo ip route add 239.103.1.2/32 dev et2
-sudo ip route add 239.103.1.3/32 dev et2
-iperf -s -u -B 239.103.1.1 -i 1 &
-iperf -s -u -B 239.103.1.2 -i 1 &
diff --git a/topologies/dual-datacenter/files/Broadcaster/mcast-source.sh b/topologies/dual-datacenter/files/Broadcaster/mcast-source.sh
deleted file mode 100755
index 20634a056..000000000
--- a/topologies/dual-datacenter/files/Broadcaster/mcast-source.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-#echo Starting source 239.103.1.1-3 for 1800 seconds
-echo "Starting Sources"
-#adding routes in kernel to prefer et1 instead of ATD underlay interface
-sudo ip route add 239.103.1.1/32 dev et1
-sudo ip route add 239.103.1.2/32 dev et1
-sudo ip route add 239.103.1.3/32 dev et1
-
-for i in {1..3} ; do
- IP='239.103.1'
- IP=$IP.$i
- iperf -c $IP -u -b 0.125m -T 10 -t 1800 -i 1 -&
-done
diff --git a/topologies/dual-datacenter/files/Broadcaster/pushHostDefaultConfig.sh b/topologies/dual-datacenter/files/Broadcaster/pushHostDefaultConfig.sh
deleted file mode 100755
index abf8cf8d0..000000000
--- a/topologies/dual-datacenter/files/Broadcaster/pushHostDefaultConfig.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-rm -f ~/enable-media
-
-# echo "Prepping host vms and enabling eAPI"
-# ssh -t 192.168.0.31 "
-# enable
-# configure
-# aaa authorization exec default local"
-
-# ssh -t 192.168.0.32 "
-# enable
-# configure
-# aaa authorization exec default local"
-
-# echo "Loading Configs"
-# #config replace
-# ssh -t 192.168.0.31 "configure replace flash:default-host1.cfg"
-# ssh -t 192.168.0.32 "configure replace flash:default-host2.cfg"
diff --git a/topologies/dual-datacenter/files/Broadcaster/pushHostMediaConfig.sh b/topologies/dual-datacenter/files/Broadcaster/pushHostMediaConfig.sh
deleted file mode 100755
index 91b42c9ab..000000000
--- a/topologies/dual-datacenter/files/Broadcaster/pushHostMediaConfig.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-
-touch ~/enable-media
-
-# echo "Prepping host vms and enabling eAPI"
-# ssh -t 192.168.0.31 "
-# enable
-# configure
-# aaa authorization exec default local"
-
-# ssh -t 192.168.0.32 "
-# enable
-# configure
-# aaa authorization exec default local"
-
-echo "Updating File Permissions"
-#sudo chown -R arista:arista /home/arista/Broadcaster/
-# chmod +x /home/arista/Broadcaster/configletPushToCVP.sh
-chmod +x /home/arista/Broadcaster/mcast-source.sh
-chmod +x /home/arista/Broadcaster/mcast-receiver.sh
-
-echo "Copying Configs"
-#copy files over
-# scp /home/arista/Broadcaster/media-host1.cfg 192.168.0.31:/mnt/flash
-# scp /home/arista/Broadcaster/media-host2.cfg 192.168.0.32:/mnt/flash
-# scp /home/arista/Broadcaster/default-host1.cfg 192.168.0.31:/mnt/flash
-# scp /home/arista/Broadcaster/default-host2.cfg 192.168.0.32:/mnt/flash
-scp -o StrictHostKeyChecking=no /home/arista/Broadcaster/mcast-source.sh 192.168.0.16:/mnt/flash
-scp -o StrictHostKeyChecking=no /home/arista/Broadcaster/mcast-receiver.sh 192.168.0.17:/mnt/flash
-
-# echo "Loading Configs"
-# #config replace
-# ssh -t 192.168.0.31 "configure replace flash:media-host1.cfg"
-# ssh -t 192.168.0.32 "configure replace flash:media-host2.cfg"
-
diff --git a/topologies/dual-datacenter/files/apps/coder/coder.yaml b/topologies/dual-datacenter/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/dual-datacenter/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/.gitignore b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/.gitignore
deleted file mode 100644
index b24e00475..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/.gitignore
+++ /dev/null
@@ -1,28 +0,0 @@
-ansible_collections/
-intended/structured_configs/s1-brdr1-debug-vars.yml
-intended/structured_configs/s1-brdr2-debug-vars.yml
-intended/structured_configs/s1-core1-debug-vars.yml
-intended/structured_configs/s1-core2-debug-vars.yml
-intended/structured_configs/s1-host1-debug-vars.yml
-intended/structured_configs/s1-host2-debug-vars.yml
-intended/structured_configs/s1-leaf1-debug-vars.yml
-intended/structured_configs/s1-leaf2-debug-vars.yml
-intended/structured_configs/s1-leaf3-debug-vars.yml
-intended/structured_configs/s1-leaf4-debug-vars.yml
-intended/structured_configs/s1-spine1-debug-vars.yml
-intended/structured_configs/s1-spine2-debug-vars.yml
-intended/structured_configs/s2-brdr1-debug-vars.yml
-intended/structured_configs/s2-brdr2-debug-vars.yml
-intended/structured_configs/s2-core1-debug-vars.yml
-intended/structured_configs/s2-core2-debug-vars.yml
-intended/structured_configs/s2-host1-debug-vars.yml
-intended/structured_configs/s2-host2-debug-vars.yml
-intended/structured_configs/s2-leaf1-debug-vars.yml
-intended/structured_configs/s2-leaf2-debug-vars.yml
-intended/structured_configs/s2-leaf3-debug-vars.yml
-intended/structured_configs/s2-leaf4-debug-vars.yml
-intended/structured_configs/s2-spine1-debug-vars.yml
-intended/structured_configs/s2-spine2-debug-vars.yml
-group_vars/CVP/CVP_CRED.yml
-group_vars/EOS/EOS_CRED.yml
-group_vars/ATD_FABRIC/AAA.yml
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/Makefile b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/Makefile
deleted file mode 100644
index ca6403bec..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/Makefile
+++ /dev/null
@@ -1,64 +0,0 @@
-### Generic Variables
-SHELL := /bin/zsh
-
-.PHONY: help
-help: ## Display help message (*: main entry points / []: part of an entry point)
- @grep -E '^[0-9a-zA-Z_-]+\.*[0-9a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
-
-
-################################################################################
-# ATD-fabric
-################################################################################
-
-.PHONY: fabric-build
-fabric-build: ## Run ansible playbook to build Fabric configuration for ATD Fabric and CVP (will build configuration locally on your VS Code Instance)
- ansible-playbook playbooks/fabric-deploy.yml --tags build -i inventory.yml
-
-.PHONY: fabric-provision
-fabric-provision: ## Run ansible playbook to build EVPN Fabric configuration for ATD Fabric and CV (will provision/create tasks on CVP for Change Control procedures)
- ansible-playbook playbooks/fabric-deploy.yml --tags provision -i inventory.yml
-
-.PHONY: fabric-validate
-fabric-validate: ## Run ansible playbook to validate EVPN Fabric configuration for ATD Fabric and eAPI
- ansible-playbook playbooks/fabric-validate.yml -i inventory.yml
-
-.PHONY: fabric-backup
-fabric-backup: ## Run ansible playbook to backup switch fabric via eAPI
- ansible-playbook playbooks/fabric-backup.yml -i inventory.yml
-
-.PHONY: fabric-debug
-fabric-debug: ## Run ansible playbook to build Fabric configuration for AVD Fabric and CVP with debugging enabled
- ansible-playbook playbooks/fabric-deploy.yml --tags build,debug -i inventory.yml
-
-.PHONY: fabric-initialize
-fabric-initialize: ## Initial Deployment for the AVD topology
- ansible-playbook playbooks/fabric-deploy.yml --tags provision -i inventory.yml
- ansible-playbook playbooks/fabric-init.yml -i inventory.yml
-
-.PHONY: update-configlet
-update-configlet: ## Run ansible playbook to update configlets on CloudVision
- ansible-playbook playbooks/fabric-cvp-deploy.yml --tags provision --skip-tags containers,apply -i inventory.yml
-
-.PHONY: atd-setup
-atd-setup: ## Run ansible playbook to Setup ATD Environment
- ansible-galaxy collection install arista.avd --upgrade
- ansible-galaxy collection install git+https://github.com/aristanetworks/ansible-avd.git#/ansible_collections/arista/avd/,devel
- ansible-galaxy collection install git+https://github.com/aristanetworks/ansible-cvp.git#/ansible_collections/arista/cvp/,devel
- ansible-galaxy collection install community.general
- ansible-galaxy collection install ansible.posix
- ansible-playbook playbooks/atd-setup.yml
-
-.PHONY: atd-removelegacy
-atd-removelegacy: ## Run ansible playbook AFTER running fabric-provision to remove legacy configlets (added on all ATD labs by default)
- ansible-playbook playbooks/fabric-deploy.yml --tags removelegacy --skip-tags always -i inventory.yml
-
-.PHONY: update-devel
-update-devel: ## Update to the latest arista.avd collections development branch
- ansible-galaxy collection install git+https://github.com/aristanetworks/ansible-avd.git#/ansible_collections/arista/avd/,devel
- ansible-galaxy collection install git+https://github.com/aristanetworks/ansible-cvp.git#/ansible_collections/arista/cvp/,devel
-
-.PHONY: update-collections
-update-collections: ## Update arista.avd collections to latest release branch
- ansible-galaxy collection install arista.avd --upgrade
- ansible-galaxy collection install community.general --upgrade
- ansible-galaxy collection install ansible.posix --upgrade
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/ansible.cfg b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/ansible.cfg
deleted file mode 100644
index ec2427b9f..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/ansible.cfg
+++ /dev/null
@@ -1,37 +0,0 @@
-[defaults]
-# Generic settings
-host_key_checking = False
-jinja2_extensions = jinja2.ext.loopcontrols,jinja2.ext.do,jinja2.ext.i18n
-gathering = explicit
-retry_files_enabled = False
-duplicate_dict_key = error
-inventory = inventory.yml
-
-
-# Custom Paths
-roles_path = roles/
-#collections_paths = ./ansible_collections:../ansible-avd/ansible_collections: #adjust local repo location as required
-
-# Increase forks
-forks = 8
-
-# Enable the YAML callback plugin.
-stdout_callback = yaml
-
-# Enable the stdout_callback when running ad-hoc commands.
-bin_ansible_callbacks = True
-callback_whitelist = profile_roles, profile_tasks, timer
-
-# Warning management
-# command_warnings=False
-# interpreter_python=auto_silent
-deprecation_warnings=False
-
-# Only for debugging
-# enable_task_debugger = True
-
-interpreter_python = $(which python3)
-
-[persistent_connection]
-connect_timeout = 120
-command_timeout = 120
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_FABRIC/ATD_FABRIC.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_FABRIC/ATD_FABRIC.yml
deleted file mode 100644
index 0c51e2649..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_FABRIC/ATD_FABRIC.yml
+++ /dev/null
@@ -1,103 +0,0 @@
----
-
-# ---------------------- ATD Fabric Common Settings ---------------------- #
-
-# Fabric name
-fabric_name: ATD_FABRIC
-
-# Custom Structure Configuration Prefixes
-
-custom_structured_configuration_prefix:
- - "custom_structured_configuration_"
- - "custom_structured_configuration_host_"
-
-# EOS validate state settings
-validation_mode_loose: true
-
-# Enable vlan aware bundles
-vxlan_vlan_aware_bundles: true
-
-# # Cloud Vision servers
-# cvp_instance_ips:
-# - 192.168.0.5
-
-# # CVP ingest key
-# cvp_ingestauth_key: "atd-lab"
-
-#Terminattr configuration
-daemon_terminattr:
- cvaddrs:
- - 192.168.0.5:9910
- cvauth:
- method: key
- key: "atd-lab"
- disable_aaa: true
- smashexcludes: "ale,flexCounter,hardware,kni,pulse,strata"
- ingestexclude: "/Sysdb/cell/1/agent,/Sysdb/cell/2/agent"
- # cvvrf: default
-
-# Enable Multi-Agent mode
-service_routing_protocols_model: multi-agent
-
-# Default BGP settings (for items not found on AVD)
-atd_bgp_defaults:
- # - 'update wait-for-convergence'
- # - 'update wait-install'
- - 'no bgp default ipv4-unicast'
- - 'distance bgp 20 200 200'
-
-# vARP MAC address
-atd_virtual_router_mac_address: 00:1c:73:00:00:34
-
-#Platform MLAG Standards
-CEOS_MLAG_Interfaces: ['Ethernet1', 'Ethernet6']
-
-#Platform UPLINK Standards
-CEOS_HOST_UPLINK_Interfaces: ['Ethernet1', 'Ethernet2']
-CEOS_LEAF_UPLINK_Interfaces: ['Ethernet1', 'Ethernet2']
-CEOS_CORE_UPLINK_Interfaces: ['Ethernet2', 'Ethernet3']
-CEOS_UPLINK_SWITCH_Interfaces: ['Ethernet4', 'Ethernet4']
-
-# Management VRF Name
-mgmt_interface_vrf: default
-
-# DNS information
-dns_domain: atd.lab
-
-# NTP Servers
-
-ntp:
- servers:
- - name: 192.168.0.1
- preferred: True
- iburst: true
- local_interface: Management0
- # vrf: MGMT
-
-# RADIUS Config
-radius_servers:
- - host: 192.168.0.1
- key: 0207165218120E
- # vrf: MGMT
-
-ip_radius_source_interfaces:
- - name: Management0
- # vrf: MGMT
-
-# AAA Config
-aaa_server_groups:
- - name: atds
- type: radius
- servers:
- - server: 192.168.0.1
- # vrf: MGMT
-
-aaa_authentication:
- login:
- default: group atds local
-
-aaa_authorization:
- exec:
- default: group atds local
- commands:
- all_default: local
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_TENANTS_NETWORKS/ATD_BLUE.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_TENANTS_NETWORKS/ATD_BLUE.yml
deleted file mode 100644
index 2f574e4a3..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_TENANTS_NETWORKS/ATD_BLUE.yml
+++ /dev/null
@@ -1,73 +0,0 @@
-####################################################
-## ATD Tenant Specific Information - VRFs / VLANs ##
-####################################################
-
-# Tenant BLUE Specific Information - VRFs / VLANs
-
-ATD_BLUE:
- enable_mlag_ibgp_peering_vrfs: false
- mac_vrf_vni_base: 10000
- vrfs:
- BLUE:
- vrf_vni: 501
- vtep_diagnostic:
- loopback: 101
- loopback_ip_pools:
- - pod: SITE1_POD
- ipv4_pool: 10.0.10.64/27
- - pod: SITE2_POD
- ipv4_pool: 10.0.10.96/27
-
- svis:
- 101:
- name: BLUE_VLAN_101
- tags: [ SITE1_DC, SITE2_DC ]
- enabled: true
- ip_address_virtual: 10.100.1.1/24
- 801:
- name: BGP_FOR_VRF_BLUE_CORE1
- tags: [SITE1_BRDR, SITE2_BRDR]
- enabled: true
- nodes:
- s1-brdr1:
- ip_address: 10.3.1.3/29
- s1-brdr2:
- ip_address: 10.3.1.4/29
- s2-brdr1:
- ip_address: 10.3.1.5/29
- s2-brdr2:
- ip_address: 10.3.1.6/29
- 811:
- name: BGP_FOR_VRF_BLUE_CORE2
- tags: [SITE1_BRDR, SITE2_BRDR]
- enabled: true
- nodes:
- s1-brdr1:
- ip_address: 10.4.1.3/29
- s1-brdr2:
- ip_address: 10.4.1.4/29
- s2-brdr1:
- ip_address: 10.4.1.5/29
- s2-brdr2:
- ip_address: 10.4.1.6/29
- bgp_peers:
- 10.3.1.2:
- remote_as: 65121
- peer_group: S1-CORE1-PEERS
- description: S1-CORE1-PEERS
- nodes: [ s1-brdr1, s1-brdr2 ]
- 10.3.1.1:
- remote_as: 65221
- peer_group: S2-CORE1-PEERS
- description: S2-CORE1-PEERS
- nodes: [ s2-brdr1, s2-brdr2 ]
- 10.4.1.2:
- remote_as: 65121
- peer_group: S1-CORE2-PEERS
- description: S1-CORE2-PEERS
- nodes: [ s1-brdr1, s1-brdr2 ]
- 10.4.1.1:
- remote_as: 65221
- peer_group: S2-CORE2-PEERS
- description: S2-CORE2-PEERS
- nodes: [ s2-brdr1, s2-brdr2 ]
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_TENANTS_NETWORKS/ATD_GREEN.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_TENANTS_NETWORKS/ATD_GREEN.yml
deleted file mode 100644
index 0865e1784..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_TENANTS_NETWORKS/ATD_GREEN.yml
+++ /dev/null
@@ -1,73 +0,0 @@
-####################################################
-## ATD Tenant Specific Information - VRFs / VLANs ##
-####################################################
-
-# Tenant GREEN Specific Information - VRFs / VLANs
-
-ATD_GREEN:
- enable_mlag_ibgp_peering_vrfs: false
- mac_vrf_vni_base: 10000
- vrfs:
- GREEN:
- vrf_vni: 502
- vtep_diagnostic:
- loopback: 102
- loopback_ip_pools:
- - pod: SITE1_POD
- ipv4_pool: 10.0.10.128/27
- - pod: SITE2_POD
- ipv4_pool: 10.0.10.160/27
-
- svis:
- 202:
- name: GREEN_VLAN_202
- tags: [ SITE1_DC, SITE2_DC ]
- enabled: true
- ip_address_virtual: 10.100.2.1/24
- 802:
- name: BGP_FOR_VRF_GREEN_CORE1
- tags: [SITE1_BRDR, SITE2_BRDR]
- enabled: true
- nodes:
- s1-brdr1:
- ip_address: 10.3.2.3/29
- s1-brdr2:
- ip_address: 10.3.2.4/29
- s2-brdr1:
- ip_address: 10.3.2.5/29
- s2-brdr2:
- ip_address: 10.3.2.6/29
- 812:
- name: BGP_FOR_VRF_GREEN_CORE2
- tags: [SITE1_BRDR, SITE2_BRDR]
- enabled: true
- nodes:
- s1-brdr1:
- ip_address: 10.4.2.3/29
- s1-brdr2:
- ip_address: 10.4.2.4/29
- s2-brdr1:
- ip_address: 10.4.2.5/29
- s2-brdr2:
- ip_address: 10.4.2.6/29
- bgp_peers:
- 10.3.2.2:
- remote_as: 65121
- peer_group: S1-CORE1-PEERS
- description: S1-CORE1-PEERS
- nodes: [ s1-brdr1, s1-brdr2 ]
- 10.3.2.1:
- remote_as: 65221
- peer_group: S2-CORE1-PEERS
- description: S2-CORE1-PEERS
- nodes: [ s2-brdr1, s2-brdr2 ]
- 10.4.2.2:
- remote_as: 65121
- peer_group: S1-CORE2-PEERS
- description: S1-CORE2-PEERS
- nodes: [ s1-brdr1, s1-brdr2 ]
- 10.4.2.1:
- remote_as: 65221
- peer_group: S2-CORE2-PEERS
- description: S2-CORE2-PEERS
- nodes: [ s2-brdr1, s2-brdr2 ]
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_TENANTS_NETWORKS/ATD_RED.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_TENANTS_NETWORKS/ATD_RED.yml
deleted file mode 100644
index 00c8904c3..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_TENANTS_NETWORKS/ATD_RED.yml
+++ /dev/null
@@ -1,73 +0,0 @@
-####################################################
-## ATD Tenant Specific Information - VRFs / VLANs ##
-####################################################
-
-# Tenant RED Specific Information - VRFs / VLANs
-
-ATD_RED:
- enable_mlag_ibgp_peering_vrfs: false
- mac_vrf_vni_base: 10000
- vrfs:
- RED:
- vrf_vni: 503
- vtep_diagnostic:
- loopback: 103
- loopback_ip_pools:
- - pod: SITE1_POD
- ipv4_pool: 10.0.10.0/27
- - pod: SITE2_POD
- ipv4_pool: 10.0.10.32/27
-
- svis:
- 303:
- name: RED_VLAN_303
- tags: [ SITE1_DC, SITE2_DC ]
- enabled: true
- ip_address_virtual: 10.100.3.1/24
- 803:
- name: BGP_FOR_VRF_RED_CORE1
- tags: [SITE1_BRDR, SITE2_BRDR]
- enabled: true
- nodes:
- s1-brdr1:
- ip_address: 10.3.3.3/29
- s1-brdr2:
- ip_address: 10.3.3.4/29
- s2-brdr1:
- ip_address: 10.3.3.5/29
- s2-brdr2:
- ip_address: 10.3.3.6/29
- 813:
- name: BGP_FOR_VRF_RED_CORE2
- tags: [SITE1_BRDR, SITE2_BRDR]
- enabled: true
- nodes:
- s1-brdr1:
- ip_address: 10.4.3.3/29
- s1-brdr2:
- ip_address: 10.4.3.4/29
- s2-brdr1:
- ip_address: 10.4.3.5/29
- s2-brdr2:
- ip_address: 10.4.3.6/29
- bgp_peers:
- 10.3.3.2:
- remote_as: 65121
- peer_group: S1-CORE1-PEERS
- description: S1-CORE1-PEERS
- nodes: [ s1-brdr1, s1-brdr2 ]
- 10.3.3.1:
- remote_as: 65221
- peer_group: S2-CORE1-PEERS
- description: S2-CORE1-PEERS
- nodes: [ s2-brdr1, s2-brdr2 ]
- 10.4.3.2:
- remote_as: 65121
- peer_group: S1-CORE2-PEERS
- description: S1-CORE2-PEERS
- nodes: [ s1-brdr1, s1-brdr2 ]
- 10.4.3.1:
- remote_as: 65221
- peer_group: S2-CORE2-PEERS
- description: S2-CORE2-PEERS
- nodes: [ s2-brdr1, s2-brdr2 ]
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_TENANTS_NETWORKS/main.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_TENANTS_NETWORKS/main.yml
deleted file mode 100644
index ebb590af8..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/ATD_TENANTS_NETWORKS/main.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-# ATD Tenant Networks (VRFs)
-# Documentation of Tenant specific information - Vlans/VRFs
-
-tenants:
- ATD_RED: "{{ ATD_RED }}"
- ATD_GREEN: "{{ ATD_GREEN }}"
- ATD_BLUE: "{{ ATD_BLUE }}"
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/CVP/CVP.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/CVP/CVP.yml
deleted file mode 100644
index a25ac14ca..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/CVP/CVP.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-ansible_connection: httpapi
-ansible_httpapi_use_ssl: True
-ansible_httpapi_validate_certs: False
-ansible_network_os: eos
-ansible_httpapi_port: 443
-ansible_python_interpreter: $(which python3)
-ansible_user: arista
-
-container_root: 'ATD_FABRIC'
-configlets_prefix: 'AVD'
-device_filter:
- - 's1'
- - 's2'
-state: present
-cv_collection: v3
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/CVP/initial_topology.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/CVP/initial_topology.yml
deleted file mode 100644
index 719ae9578..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/CVP/initial_topology.yml
+++ /dev/null
@@ -1,135 +0,0 @@
----
-
-CVP_DEVICES_INIT:
- - fqdn: s1-leaf1
- parentContainerName: STAGING
- configlets:
- - BASE_s1-leaf1
- - fqdn: s1-leaf2
- parentContainerName: STAGING
- configlets:
- - BASE_s1-leaf2
- - fqdn: s1-leaf3
- parentContainerName: STAGING
- configlets:
- - BASE_s1-leaf3
- - fqdn: s1-leaf4
- parentContainerName: STAGING
- configlets:
- - BASE_s1-leaf4
- - fqdn: s1-brdr1
- parentContainerName: STAGING
- configlets:
- - BASE_s1-brdr1
- - fqdn: s1-brdr2
- parentContainerName: STAGING
- configlets:
- - BASE_s1-brdr2
- - fqdn: s1-core1
- parentContainerName: STAGING
- configlets:
- - BASE_s1-core1
- - fqdn: s1-core2
- parentContainerName: STAGING
- configlets:
- - BASE_s1-core2
- - fqdn: s1-spine1
- parentContainerName: STAGING
- configlets:
- - BASE_s1-spine1
- - fqdn: s1-spine2
- parentContainerName: STAGING
- configlets:
- - BASE_s1-spine2
- - fqdn: s1-host1
- parentContainerName: STAGING
- configlets:
- - BASE_s1-host1
- - fqdn: s1-host2
- parentContainerName: STAGING
- configlets:
- - BASE_s1-host2
- - fqdn: s2-leaf1
- parentContainerName: STAGING
- configlets:
- - BASE_s2-leaf1
- - fqdn: s2-leaf2
- parentContainerName: STAGING
- configlets:
- - BASE_s2-leaf2
- - fqdn: s2-leaf3
- parentContainerName: STAGING
- configlets:
- - BASE_s2-leaf3
- - fqdn: s2-leaf4
- parentContainerName: STAGING
- configlets:
- - BASE_s2-leaf4
- - fqdn: s2-brdr1
- parentContainerName: STAGING
- configlets:
- - BASE_s2-brdr1
- - fqdn: s2-brdr2
- parentContainerName: STAGING
- configlets:
- - BASE_s2-brdr2
- - fqdn: s2-core1
- parentContainerName: STAGING
- configlets:
- - BASE_s2-core1
- - fqdn: s2-core2
- parentContainerName: STAGING
- configlets:
- - BASE_s2-core2
- - fqdn: s2-spine1
- parentContainerName: STAGING
- configlets:
- - BASE_s2-spine1
- - fqdn: s2-spine2
- parentContainerName: STAGING
- configlets:
- - BASE_s2-spine2
- - fqdn: s2-host1
- parentContainerName: STAGING
- configlets:
- - BASE_s2-host1
- - fqdn: s2-host2
- parentContainerName: STAGING
- configlets:
- - BASE_s2-host2
-
-CVP_CONTAINERS_INIT:
- STAGING:
- parentContainerName: Tenant
- configlets:
- - ATD-BASE
-
-CVP_ATD_CONTAINER:
- Tenant:
- parentContainerName: Tenant
-
-CVP_CONTAINERS_DELETE:
- S1-Leaf:
- parentContainerName: S1
- S1-Brdr:
- parentContainerName: S1
- S1-Core:
- parentContainerName: S1
- S1-Spine:
- parentContainerName: S1
- S1-Hosts:
- parentContainerName: S1
- S1:
- parentContainerName: Tenant
- S2-Leaf:
- parentContainerName: S2
- S2-Brdr:
- parentContainerName: S2
- S2-Core:
- parentContainerName: S2
- S2-Spine:
- parentContainerName: S2
- S2-Hosts:
- parentContainerName: S2
- S2:
- parentContainerName: Tenant
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/EOS/EOS.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/EOS/EOS.yml
deleted file mode 100644
index 558b7f257..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/EOS/EOS.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-ansible_connection: httpapi # update to httpapi once eAPI enabled on all switches.
-ansible_network_os: eos
-ansible_user: arista
-ansible_become: yes
-ansible_become_method: enable
-ansible_httpapi_use_ssl: true
-ansible_httpapi_validate_certs: false
-
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1.yml
deleted file mode 100644
index de4023112..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-
-# ---------------------- Site 1 Common Settings ---------------------- #
-
-dc_name: SITE1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1/SITE1.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1/SITE1.yml
deleted file mode 100644
index 26d2415f0..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1/SITE1.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-
-# ---------------------- Site 1 Common Settings ---------------------- #
-
-dc_name: SITE1
-
-# OOB Management network default gateway.
-mgmt_gateway: 192.168.0.1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_BORDER_LEAF1/MLAG.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_BORDER_LEAF1/MLAG.yml
deleted file mode 100644
index ebc6f4f81..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_BORDER_LEAF1/MLAG.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-custom_structured_configuration_port_channel_interfaces:
- Port-Channel4:
- description: "S1-CORE-PO4"
- shutdown: false
- type: switched
- mode: trunk
- mlag: 4
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/BGP.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/BGP.yml
deleted file mode 100644
index 14cf5d149..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/BGP.yml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-custom_structured_configuration_host_route_maps:
- RM-MLAG-PEER-IN:
- sequence_numbers:
- 10:
- type: permit
- set:
- - origin incomplete
- description: "Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing"
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/Interfaces.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/Interfaces.yml
deleted file mode 100644
index 87ffd39fe..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/Interfaces.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-custom_structured_configuration_host_port_channel_interfaces:
- Port-Channel1:
- trunk_groups:
- - "LEAF_PEER_L3"
- - "MLAG"
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/MLAG.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/MLAG.yml
deleted file mode 100644
index bc38b71c8..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/MLAG.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-custom_structured_configuration_port_channel_interfaces:
- Port-Channel2:
- description: "S1-BRDR1-PO4"
- shutdown: false
- type: switched
- mode: trunk
- mlag: 2
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/SVI-VLAN.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/SVI-VLAN.yml
deleted file mode 100644
index 34a2c8730..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/SVI-VLAN.yml
+++ /dev/null
@@ -1,26 +0,0 @@
----
-custom_structured_configuration_vlans:
- 701:
- name: iBGP_VRF_BLUE
- 702:
- name: iBGP_VRF_GREEN
- 703:
- name: iBGP_VRF_RED
- 801:
- name: BGP_VRF_BLUE_CORE1
- 802:
- name: BGP_VRF_GREEN_CORE1
- 803:
- name: BGP_VRF_RED_CORE1
- 811:
- name: BGP_VRF_BLUE_CORE2
- 812:
- name: BGP_VRF_GREEN_CORE2
- 813:
- name: BGP_VRF_RED_CORE2
- 4093:
- name: LEAF_PEER_L3
- trunk_groups:
- - "LEAF_PEER_L3"
-
-ip_virtual_router_mac_address: "{{ atd_virtual_router_mac_address }}"
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/Topology.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/Topology.yml
deleted file mode 100644
index 9f3e7b4fc..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/Topology.yml
+++ /dev/null
@@ -1,39 +0,0 @@
----
-
-# ---------------------- ATD L3 Leaf Layer (Core Switches) ---------------------- #
-
-type: l2leaf
-
-pod_name: SITE1_POD
-
-l2leaf:
- defaults:
- platform: ceos
- evpn_role: none
- # uplink_ipv4_pool: 10.1.7.0/24
- # loopback_ipv4_pool: 10.1.8.0/24
- # vtep_loopback_ipv4_pool: 10.1.9.0/24
- # mlag_peer_l3_ipv4_pool: 10.1.10.0/24
- mlag_peer_ipv4_pool: 10.1.11.0/24
- uplink_switches: ['s1-brdr1', 's1-brdr2']
- uplink_switch_interfaces: "{{ CEOS_CORE_UPLINK_Interfaces }}"
- max_uplink_switches: 2
- # evpn_route_servers: "{{ atd_evpn_route_servers }}"
- spanning_tree_mode: mstp
- # spanning_tree_priority: 45056
- virtual_router_mac_address : "{{ atd_virtual_router_mac_address }}"
- # bgp_defaults: "{{ atd_bgp_defaults }}"
- mlag_interfaces: "{{ CEOS_MLAG_Interfaces }}"
- node_groups:
- SITE1_CORE_LEAF1:
- # bgp_as: 65121
- filter:
- tenants: [all]
- tags: [SITE1_CORE]
- nodes:
- s1-core1:
- id: 1
- mgmt_ip: 192.168.0.102/24
- s1-core2:
- id: 2
- mgmt_ip: 192.168.0.103/24
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/VRF.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/VRF.yml
deleted file mode 100644
index 997b9e3fe..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_CORE_LEAF1/VRF.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-custom_structured_configuration_host_vrfs:
- BLUE:
- ip_routing: true
- GREEN:
- ip_routing: true
- RED:
- ip_routing: true
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_DC_LEAF1/main.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_DC_LEAF1/main.yml
deleted file mode 100644
index 73b314ff7..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_DC_LEAF1/main.yml
+++ /dev/null
@@ -1 +0,0 @@
----
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_DC_LEAF2/main.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_DC_LEAF2/main.yml
deleted file mode 100644
index 73b314ff7..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_DC_LEAF2/main.yml
+++ /dev/null
@@ -1 +0,0 @@
----
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_HOSTS/Topology.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_HOSTS/Topology.yml
deleted file mode 100644
index 2543ac253..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_HOSTS/Topology.yml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# L2 HOST CONFIG
-
-type: l2leaf
-
-pod_name: SITE1_POD
-
-l2leaf:
- defaults:
- platform: ceos
- uplink_interfaces: "{{ CEOS_HOST_UPLINK_Interfaces }}"
- mlag: false
- spanning_tree_mode: mstp
- node_groups:
- SITE1_HOSTS:
- filter:
- tenants: [all]
- tags: [all]
- nodes:
- s1-host1:
- id: 1
- mgmt_ip: 192.168.0.16/24
- uplink_switches: [s1-leaf1, s1-leaf2]
- uplink_switch_interfaces: "{{ CEOS_UPLINK_SWITCH_Interfaces }}"
- s1-host2:
- id: 2
- mgmt_ip: 192.168.0.17/24
- uplink_switches: [s1-leaf3, s1-leaf4]
- uplink_switch_interfaces: "{{ CEOS_UPLINK_SWITCH_Interfaces }}"
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_L3LEAFS/Topology.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_L3LEAFS/Topology.yml
deleted file mode 100644
index 83811d704..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_L3LEAFS/Topology.yml
+++ /dev/null
@@ -1,62 +0,0 @@
----
-
-# ---------------------- ATD L3 Leaf Layer (DC, Border, Campus, ATD Hosts) ---------------------- #
-
-type: l3leaf
-
-pod_name: SITE1_POD
-
-l3leaf:
- defaults:
- platform: ceos
- uplink_ipv4_pool: 10.1.2.0/24
- loopback_ipv4_pool: 10.1.3.0/24
- vtep_loopback_ipv4_pool: 10.1.4.0/24
- mlag_peer_l3_ipv4_pool: 10.1.5.0/24
- mlag_peer_ipv4_pool: 10.1.6.0/24
- uplink_switches: ['s1-spine1', 's1-spine2']
- uplink_switch_interfaces: "{{ CEOS_LEAF_UPLINK_Interfaces }}"
- max_uplink_switches: 4
- #evpn_route_servers: "{{ atd_evpn_route_servers }}"
- spanning_tree_mode: mstp
- #spanning_tree_priority: 45056
- virtual_router_mac_address : "{{ atd_virtual_router_mac_address }}"
- bgp_defaults: "{{ atd_bgp_defaults }}"
- mlag_interfaces: "{{ CEOS_MLAG_Interfaces }}"
- node_groups:
- SITE1_DC_LEAF1:
- bgp_as: 65111
- filter:
- tenants: [all]
- tags: [SITE1_DC]
- nodes:
- s1-leaf1:
- id: 1
- mgmt_ip: 192.168.0.12/24
- s1-leaf2:
- id: 2
- mgmt_ip: 192.168.0.13/24
- SITE1_DC_LEAF2:
- bgp_as: 65112
- filter:
- tenants: [all]
- tags: [SITE1_DC]
- nodes:
- s1-leaf3:
- id: 3
- mgmt_ip: 192.168.0.14/24
- s1-leaf4:
- id: 4
- mgmt_ip: 192.168.0.15/24
- SITE1_BORDER_LEAF1:
- bgp_as: 65113
- filter:
- tenants: [all]
- tags: [SITE1_DC, SITE1_BRDR]
- nodes:
- s1-brdr1:
- id: 5
- mgmt_ip: 192.168.0.100/24
- s1-brdr2:
- id: 6
- mgmt_ip: 192.168.0.101/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_SPINES/Topology.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_SPINES/Topology.yml
deleted file mode 100644
index acc59b30f..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE1_SPINES/Topology.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-# ---------------------- Site 1 Spine Layer ---------------------- #
-
-type: spine
-
-spine:
- defaults:
- platform: ceos
- bgp_as: 65101
- #evpn_role: none
- loopback_ipv4_pool: 10.0.0.0/24
- bgp_defaults: "{{ atd_bgp_defaults }}"
- nodes:
- s1-spine1:
- id: 1
- mgmt_ip: 192.168.0.10/24
- s1-spine2:
- id: 2
- mgmt_ip: 192.168.0.11/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2.yml
deleted file mode 100644
index 8d8627883..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-
-# ---------------------- Site 2 Common Settings ---------------------- #
-
-dc_name: SITE2
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2/SITE2.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2/SITE2.yml
deleted file mode 100644
index 1cabfdc39..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2/SITE2.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-
-# ---------------------- Site 2 Common Settings ---------------------- #
-
-dc_name: SITE2
-
-# OOB Management network default gateway.
-mgmt_gateway: 192.168.0.1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_BORDER_LEAF1/MLAG.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_BORDER_LEAF1/MLAG.yml
deleted file mode 100644
index 5f2a315ef..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_BORDER_LEAF1/MLAG.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-custom_structured_configuration_port_channel_interfaces:
- Port-Channel4:
- description: "S2-CORE-PO4"
- shutdown: false
- type: switched
- mode: trunk
- mlag: 4
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/BGP.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/BGP.yml
deleted file mode 100644
index 14cf5d149..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/BGP.yml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-custom_structured_configuration_host_route_maps:
- RM-MLAG-PEER-IN:
- sequence_numbers:
- 10:
- type: permit
- set:
- - origin incomplete
- description: "Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing"
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/Interfaces.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/Interfaces.yml
deleted file mode 100644
index 87ffd39fe..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/Interfaces.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-custom_structured_configuration_host_port_channel_interfaces:
- Port-Channel1:
- trunk_groups:
- - "LEAF_PEER_L3"
- - "MLAG"
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/MLAG.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/MLAG.yml
deleted file mode 100644
index 3aea98f2f..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/MLAG.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-custom_structured_configuration_port_channel_interfaces:
- Port-Channel2:
- description: "S2-BRDR1-PO4"
- shutdown: false
- type: switched
- mode: trunk
- mlag: 2
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/SVI-VLAN.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/SVI-VLAN.yml
deleted file mode 100644
index 6fc4c753a..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/SVI-VLAN.yml
+++ /dev/null
@@ -1,26 +0,0 @@
----
-custom_structured_configuration_vlans:
- 711:
- name: iBGP_VRF_BLUE
- 712:
- name: iBGP_VRF_GREEN
- 713:
- name: iBGP_VRF_RED
- 801:
- name: BGP_VRF_BLUE_CORE1
- 802:
- name: BGP_VRF_GREEN_CORE1
- 803:
- name: BGP_VRF_RED_CORE1
- 811:
- name: BGP_VRF_BLUE_CORE2
- 812:
- name: BGP_VRF_GREEN_CORE2
- 813:
- name: BGP_VRF_RED_CORE2
- 4093:
- name: LEAF_PEER_L3
- trunk_groups:
- - "LEAF_PEER_L3"
-
-ip_virtual_router_mac_address: "{{ atd_virtual_router_mac_address }}"
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/Topology.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/Topology.yml
deleted file mode 100644
index 062fcb9c7..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/Topology.yml
+++ /dev/null
@@ -1,39 +0,0 @@
----
-
-# ---------------------- ATD L3 Leaf Layer (Core Switches) ---------------------- #
-
-type: l2leaf
-
-pod_name: SITE2_POD
-
-l2leaf:
- defaults:
- platform: ceos
- evpn_role: none
- # uplink_ipv4_pool: 10.2.7.0/24
- # loopback_ipv4_pool: 10.2.8.0/24
- # vtep_loopback_ipv4_pool: 10.2.9.0/24
- # mlag_peer_l3_ipv4_pool: 10.2.10.0/24
- mlag_peer_ipv4_pool: 10.2.11.0/24
- uplink_switches: ['s2-brdr1', 's2-brdr2']
- uplink_switch_interfaces: "{{ CEOS_CORE_UPLINK_Interfaces }}"
- max_uplink_switches: 2
- #evpn_route_servers: "{{ atd_evpn_route_servers }}"
- spanning_tree_mode: mstp
- #spanning_tree_priority: 45056
- virtual_router_mac_address : "{{ atd_virtual_router_mac_address }}"
- #bgp_defaults: "{{ atd_bgp_defaults }}"
- mlag_interfaces: "{{ CEOS_MLAG_Interfaces }}"
- node_groups:
- SITE2_CORE_LEAF1:
- #bgp_as: 65221
- filter:
- tenants: [all]
- tags: [SITE2_CORE]
- nodes:
- s2-core1:
- id: 1
- mgmt_ip: 192.168.0.202/24
- s2-core2:
- id: 2
- mgmt_ip: 192.168.0.203/24
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/VRF.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/VRF.yml
deleted file mode 100644
index 997b9e3fe..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_CORE_LEAF1/VRF.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-custom_structured_configuration_host_vrfs:
- BLUE:
- ip_routing: true
- GREEN:
- ip_routing: true
- RED:
- ip_routing: true
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_DC_LEAF1/main.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_DC_LEAF1/main.yml
deleted file mode 100644
index 73b314ff7..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_DC_LEAF1/main.yml
+++ /dev/null
@@ -1 +0,0 @@
----
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_DC_LEAF2/main.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_DC_LEAF2/main.yml
deleted file mode 100644
index 73b314ff7..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_DC_LEAF2/main.yml
+++ /dev/null
@@ -1 +0,0 @@
----
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_HOSTS/Topology.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_HOSTS/Topology.yml
deleted file mode 100644
index 9a9f16717..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_HOSTS/Topology.yml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# L2 HOST CONFIG
-
-type: l2leaf
-
-pod_name: SITE2_POD
-
-l2leaf:
- defaults:
- platform: ceos
- mlag: false
- spanning_tree_mode: mstp
- uplink_interfaces: "{{ CEOS_HOST_UPLINK_Interfaces }}"
- node_groups:
- SITE2_HOSTS:
- filter:
- tenants: [all]
- tags: [all]
- nodes:
- s2-host1:
- id: 1
- mgmt_ip: 192.168.0.26/24
- uplink_switches: [ 's2-leaf1', 's2-leaf2' ]
- uplink_switch_interfaces: "{{ CEOS_UPLINK_SWITCH_Interfaces }}"
- s2-host2:
- id: 2
- mgmt_ip: 192.168.0.27/24
- uplink_switches: [ 's2-leaf3', 's2-leaf4' ]
- uplink_switch_interfaces: "{{ CEOS_UPLINK_SWITCH_Interfaces }}"
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_L3LEAFS/Topology.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_L3LEAFS/Topology.yml
deleted file mode 100644
index abca94881..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_L3LEAFS/Topology.yml
+++ /dev/null
@@ -1,62 +0,0 @@
----
-
-# ---------------------- ATD L3 Leaf Layer (DC, Border, Campus, ATD Hosts) ---------------------- #
-
-type: l3leaf
-
-pod_name: SITE2_POD
-
-l3leaf:
- defaults:
- platform: ceos
- uplink_ipv4_pool: 10.2.2.0/24
- loopback_ipv4_pool: 10.2.3.0/24
- vtep_loopback_ipv4_pool: 10.2.4.0/24
- mlag_peer_l3_ipv4_pool: 10.2.5.0/24
- mlag_peer_ipv4_pool: 10.2.6.0/24
- uplink_switches: ['s2-spine1', 's2-spine2']
- uplink_switch_interfaces: "{{ CEOS_LEAF_UPLINK_Interfaces }}"
- max_uplink_switches: 4
- #evpn_route_servers: "{{ atd_evpn_route_servers }}"
- spanning_tree_mode: mstp
- #spanning_tree_priority: 45056
- virtual_router_mac_address : "{{ atd_virtual_router_mac_address }}"
- bgp_defaults: "{{ atd_bgp_defaults }}"
- mlag_interfaces: "{{ CEOS_MLAG_Interfaces }}"
- node_groups:
- SITE2_DC_LEAF1:
- bgp_as: 65211
- filter:
- tenants: [all]
- tags: [SITE2_DC]
- nodes:
- s2-leaf1:
- id: 1
- mgmt_ip: 192.168.0.22/24
- s2-leaf2:
- id: 2
- mgmt_ip: 192.168.0.23/24
- SITE2_DC_LEAF2:
- bgp_as: 65212
- filter:
- tenants: [all]
- tags: [SITE2_DC]
- nodes:
- s2-leaf3:
- id: 3
- mgmt_ip: 192.168.0.24/24
- s2-leaf4:
- id: 4
- mgmt_ip: 192.168.0.25/24
- SITE2_BORDER_LEAF1:
- bgp_as: 65213
- filter:
- tenants: [all]
- tags: [SITE2_DC, SITE2_BRDR]
- nodes:
- s2-brdr1:
- id: 5
- mgmt_ip: 192.168.0.200/24
- s2-brdr2:
- id: 6
- mgmt_ip: 192.168.0.201/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_SPINES/Topology.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_SPINES/Topology.yml
deleted file mode 100644
index d522f0fed..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/group_vars/SITE2_SPINES/Topology.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-# ---------------------- Site 2 Spine Layer ---------------------- #
-
-type: spine
-
-spine:
- defaults:
- platform: ceos
- bgp_as: 65201
- #evpn_role: none
- loopback_ipv4_pool: 10.1.0.0/24
- bgp_defaults: "{{ atd_bgp_defaults }}"
- nodes:
- s2-spine1:
- id: 1
- mgmt_ip: 192.168.0.20/24
- s2-spine2:
- id: 2
- mgmt_ip: 192.168.0.21/24
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s1-brdr1.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s1-brdr1.yml
deleted file mode 100644
index 2a3bc4c9d..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s1-brdr1.yml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-custom_structured_configuration_host_ethernet_interfaces:
- Ethernet4:
- description: "s1-brdr1_Ethernet2"
- shutdown: false
- channel_group:
- id: 4
- mode: "active"
- Ethernet5:
- description: "s1-brdr2_Ethernet2"
- shutdown: false
- channel_group:
- id: 4
- mode: "active"
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s1-brdr2.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s1-brdr2.yml
deleted file mode 100644
index cc57feeaf..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s1-brdr2.yml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-custom_structured_configuration_host_ethernet_interfaces:
- Ethernet4:
- description: "s1-brdr1_Ethernet3"
- shutdown: false
- channel_group:
- id: 4
- mode: "active"
- Ethernet5:
- description: "s1-brdr2_Ethernet3"
- shutdown: false
- channel_group:
- id: 4
- mode: "active"
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s1-core1.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s1-core1.yml
deleted file mode 100644
index 65ef05f17..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s1-core1.yml
+++ /dev/null
@@ -1,170 +0,0 @@
----
-custom_structured_configuration_host_vlan_interfaces:
- Vlan701:
- description: iBGP_FOR_VRF_BLUE
- ip_address: 10.1.17.2/30
- vrf: BLUE
- shutdown: false
- Vlan702:
- description: iBGP_FOR_VRF_GREEN
- ip_address: 10.1.18.2/30
- vrf: GREEN
- shutdown: false
- Vlan703:
- description: iBGP_FOR_VRF_RED
- ip_address: 10.1.19.2/30
- vrf: RED
- shutdown: false
- Vlan801:
- description: BGP_FOR_VRF_BLUE
- ip_address: 10.3.1.2/29
- vrf: BLUE
- shutdown: false
- Vlan802:
- description: BGP_FOR_VRF_GREEN
- ip_address: 10.3.2.2/29
- vrf: GREEN
- shutdown: false
- Vlan803:
- description: BGP_FOR_VRF_RED
- ip_address: 10.3.3.2/29
- vrf: RED
- shutdown: false
- Vlan4093:
- description: MLAG_PEER_L3_PEERING
- ip_address: 10.1.10.0/31
- mtu: 9000
- shutdown: false
-
-router_bgp:
- as: 65121
- router_id: 10.1.8.1
- bgp_defaults: "{{ atd_bgp_defaults }}"
- peer_groups:
- MLAG-IPv4-UNDERLAY-PEER:
- type: ipv4
- remote_as: 65121
- next_hop_self: true
- route_map_in: RM-MLAG-PEER-IN
- send_community: all
- maximum_routes: 12000
- neighbors:
- 10.1.10.1:
- peer_group: MLAG-IPv4-UNDERLAY-PEER
- description: s1-core2
- address_family_ipv4:
- peer_groups:
- MLAG-IPv4-UNDERLAY-PEER:
- activate: true
- vrfs:
- BLUE:
- rd: "10.1.8.1:502"
- router_id: 10.1.8.1
- neighbors:
- 10.1.17.1:
- remote_as: 65121
- description: iBGP_VRF_BLUE_s1-core2
- 10.3.1.1:
- remote_as: 65221
- description: BGP_VRF_BLUE_s2-core1
- 10.3.1.3:
- remote_as: 65113
- description: BGP_VRF_BLUE_s1-brdr1
- 10.3.1.4:
- remote_as: 65113
- description: BGP_VRF_BLUE_s1-brdr2
- next_hop_self: true
- redistribute_routes:
- - connected
- - static
- address_families:
- ipv4:
- neighbors:
- 10.1.17.1:
- activate: true
- 10.3.1.1:
- activate: true
- 10.3.1.3:
- activate: true
- 10.3.1.4:
- activate: true
- GREEN:
- rd: "10.1.8.1:503"
- router_id: 10.1.8.1
- neighbors:
- 10.1.18.1:
- remote_as: 65121
- description: iBGP_VRF_GREEN_s1-core2
- 10.3.2.1:
- remote_as: 65221
- description: BGP_VRF_GREEN_s2-core1
- 10.3.2.3:
- remote_as: 65113
- description: BGP_VRF_GREEN_s1-brdr1
- 10.3.2.4:
- remote_as: 65113
- description: BGP_VRF_GREEN_s1-brdr2
- next_hop_self: true
- redistribute_routes:
- - connected
- - static
- address_families:
- ipv4:
- neighbors:
- 10.1.18.1:
- activate: true
- 10.3.2.1:
- activate: true
- 10.3.2.3:
- activate: true
- 10.3.2.4:
- activate: true
- RED:
- rd: "10.1.8.1:501"
- router_id: 10.1.8.1
- neighbors:
- 10.1.19.1:
- remote_as: 65121
- description: iBGP_VRF_RED_s1-core2
- 10.3.3.1:
- remote_as: 65221
- description: BGP_VRF_RED_s2-core1
- 10.3.3.3:
- remote_as: 65113
- description: BGP_VRF_RED_s1-brdr1
- 10.3.3.4:
- remote_as: 65113
- description: BGP_VRF_RED_s1-brdr2
- next_hop_self: true
- redistribute_routes:
- - connected
- - static
- address_families:
- ipv4:
- neighbors:
- 10.1.19.1:
- activate: true
- 10.3.3.1:
- activate: true
- 10.3.3.3:
- activate: true
- 10.3.3.4:
- activate: true
-custom_structured_configuration_host_ethernet_interfaces:
- Ethernet2:
- description: "s1-brdr1_Ethernet4"
- shutdown: false
- channel_group:
- id: 2
- mode: "active"
- Ethernet3:
- description: "s1-brdr2_Ethernet4"
- shutdown: false
- channel_group:
- id: 2
- mode: "active"
- Ethernet4:
- type: switched
- mode: trunk
- description: P2P_LINK_TO_s2-core1_Ethernet4
- shutdown: false
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s1-core2.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s1-core2.yml
deleted file mode 100644
index 53db6a63c..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s1-core2.yml
+++ /dev/null
@@ -1,170 +0,0 @@
----
-custom_structured_configuration_host_vlan_interfaces:
- Vlan701:
- description: iBGP_FOR_VRF_BLUE
- ip_address: 10.1.17.1/30
- vrf: BLUE
- shutdown: false
- Vlan702:
- description: iBGP_FOR_VRF_GREEN
- ip_address: 10.1.18.1/30
- vrf: GREEN
- shutdown: false
- Vlan703:
- description: iBGP_FOR_VRF_RED
- ip_address: 10.1.19.1/30
- vrf: RED
- shutdown: false
- Vlan811:
- description: BGP_FOR_VRF_BLUE
- ip_address: 10.4.1.2/29
- vrf: BLUE
- shutdown: false
- Vlan812:
- description: BGP_FOR_VRF_GREEN
- ip_address: 10.4.2.2/29
- vrf: GREEN
- shutdown: false
- Vlan813:
- description: BGP_FOR_VRF_RED
- ip_address: 10.4.3.2/29
- vrf: RED
- shutdown: false
- Vlan4093:
- description: MLAG_PEER_L3_PEERING
- ip_address: 10.1.10.1/31
- mtu: 9000
- shutdown: false
-
-router_bgp:
- as: 65121
- router_id: 10.1.8.2
- bgp_defaults: "{{ atd_bgp_defaults }}"
- peer_groups:
- MLAG-IPv4-UNDERLAY-PEER:
- type: ipv4
- remote_as: 65121
- next_hop_self: true
- route_map_in: RM-MLAG-PEER-IN
- send_community: all
- maximum_routes: 12000
- neighbors:
- 10.1.10.0:
- peer_group: MLAG-IPv4-UNDERLAY-PEER
- description: s1-core1
- address_family_ipv4:
- peer_groups:
- MLAG-IPv4-UNDERLAY-PEER:
- activate: true
- vrfs:
- BLUE:
- rd: "10.1.8.2:502"
- router_id: 10.1.8.2
- neighbors:
- 10.1.17.2:
- remote_as: 65121
- description: iBGP_VRF_BLUE_s1-core1
- 10.4.1.1:
- remote_as: 65221
- description: BGP_VRF_BLUE_s2-core2
- 10.4.1.3:
- remote_as: 65113
- description: BGP_VRF_BLUE_s1-brdr1
- 10.4.1.4:
- remote_as: 65113
- description: BGP_VRF_BLUE_s1-brdr2
- next_hop_self: true
- redistribute_routes:
- - connected
- - static
- address_families:
- ipv4:
- neighbors:
- 10.1.17.2:
- activate: true
- 10.4.1.1:
- activate: true
- 10.4.1.3:
- activate: true
- 10.4.1.4:
- activate: true
- GREEN:
- rd: "10.1.8.2:503"
- router_id: 10.1.8.2
- neighbors:
- 10.1.18.2:
- remote_as: 65121
- description: iBGP_VRF_GREEN_s1-core1
- 10.4.2.1:
- remote_as: 65221
- description: BGP_VRF_GREEN_s2-core2
- 10.4.2.3:
- remote_as: 65113
- description: BGP_VRF_GREEN_s1-brdr1
- 10.4.2.4:
- remote_as: 65113
- description: BGP_VRF_GREEN_s1-brdr2
- next_hop_self: true
- redistribute_routes:
- - connected
- - static
- address_families:
- ipv4:
- neighbors:
- 10.1.18.2:
- activate: true
- 10.4.2.1:
- activate: true
- 10.4.2.3:
- activate: true
- 10.4.2.4:
- activate: true
- RED:
- rd: "10.1.8.2:501"
- router_id: 10.1.8.2
- neighbors:
- 10.1.19.2:
- remote_as: 65121
- description: iBGP_VRF_RED_s1-core1
- 10.4.3.1:
- remote_as: 65221
- description: BGP_VRF_RED_s2-core2
- 10.4.3.3:
- remote_as: 65113
- description: BGP_VRF_RED_s1-brdr1
- 10.4.3.4:
- remote_as: 65113
- description: BGP_VRF_RED_s1-brdr2
- next_hop_self: true
- redistribute_routes:
- - connected
- - static
- address_families:
- ipv4:
- neighbors:
- 10.1.19.2:
- activate: true
- 10.4.3.1:
- activate: true
- 10.4.3.3:
- activate: true
- 10.4.3.4:
- activate: true
-custom_structured_configuration_host_ethernet_interfaces:
- Ethernet2:
- description: "s1-brdr1_Ethernet5"
- shutdown: false
- channel_group:
- id: 2
- mode: "active"
- Ethernet3:
- description: "s1-brdr2_Ethernet5"
- shutdown: false
- channel_group:
- id: 2
- mode: "active"
- Ethernet4:
- type: switched
- mode: trunk
- description: P2P_LINK_TO_s2-core2_Ethernet4
- shutdown: false
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s2-core1.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s2-core1.yml
deleted file mode 100644
index 68dca662a..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s2-core1.yml
+++ /dev/null
@@ -1,170 +0,0 @@
----
-custom_structured_configuration_host_vlan_interfaces:
- Vlan711:
- description: iBGP_FOR_VRF_BLUE
- ip_address: 10.2.17.2/30
- vrf: BLUE
- shutdown: false
- Vlan712:
- description: iBGP_FOR_VRF_GREEN
- ip_address: 10.2.18.2/30
- vrf: GREEN
- shutdown: false
- Vlan713:
- description: iBGP_FOR_VRF_RED
- ip_address: 10.2.19.2/30
- vrf: RED
- shutdown: false
- Vlan801:
- description: BGP_FOR_VRF_BLUE
- ip_address: 10.3.1.1/29
- vrf: BLUE
- shutdown: false
- Vlan802:
- description: BGP_FOR_VRF_GREEN
- ip_address: 10.3.2.1/29
- vrf: GREEN
- shutdown: false
- Vlan803:
- description: BGP_FOR_VRF_RED
- ip_address: 10.3.3.1/29
- vrf: RED
- shutdown: false
- Vlan4093:
- description: MLAG_PEER_L3_PEERING
- ip_address: 10.2.10.0/31
- mtu: 9000
- shutdown: false
-
-router_bgp:
- as: 65221
- router_id: 10.2.8.1
- bgp_defaults: "{{ atd_bgp_defaults }}"
- peer_groups:
- MLAG-IPv4-UNDERLAY-PEER:
- type: ipv4
- remote_as: 65221
- next_hop_self: true
- route_map_in: RM-MLAG-PEER-IN
- send_community: all
- maximum_routes: 12000
- neighbors:
- 10.2.10.1:
- peer_group: MLAG-IPv4-UNDERLAY-PEER
- description: s2-core2
- address_family_ipv4:
- peer_groups:
- MLAG-IPv4-UNDERLAY-PEER:
- activate: true
- vrfs:
- BLUE:
- rd: "10.2.8.1:502"
- router_id: 10.2.8.1
- neighbors:
- 10.2.17.1:
- remote_as: 65221
- description: iBGP_VRF_BLUE_s2-core2
- 10.3.1.2:
- remote_as: 65121
- description: BGP_VRF_BLUE_s1-core1
- 10.3.1.5:
- remote_as: 65213
- description: BGP_VRF_BLUE_s2-brdr1
- 10.3.1.6:
- remote_as: 65213
- description: BGP_VRF_BLUE_s2-brdr2
- next_hop_self: true
- redistribute_routes:
- - connected
- - static
- address_families:
- ipv4:
- neighbors:
- 10.2.17.1:
- activate: true
- 10.3.1.2:
- activate: true
- 10.3.1.5:
- activate: true
- 10.3.1.6:
- activate: true
- GREEN:
- rd: "10.2.8.1:503"
- router_id: 10.1.8.1
- neighbors:
- 10.2.18.1:
- remote_as: 65221
- description: iBGP_VRF_GREEN_s2-core2
- 10.3.2.2:
- remote_as: 65121
- description: BGP_VRF_GREEN_s1-core1
- 10.3.2.5:
- remote_as: 65213
- description: BGP_VRF_GREEN_s2-brdr1
- 10.3.2.6:
- remote_as: 65213
- description: BGP_VRF_GREEN_s2-brdr2
- next_hop_self: true
- redistribute_routes:
- - connected
- - static
- address_families:
- ipv4:
- neighbors:
- 10.2.18.1:
- activate: true
- 10.3.2.2:
- activate: true
- 10.3.2.5:
- activate: true
- 10.3.2.6:
- activate: true
- RED:
- rd: "10.2.8.1:501"
- router_id: 10.2.8.1
- neighbors:
- 10.2.19.1:
- remote_as: 65221
- description: iBGP_VRF_RED_s2-core2
- 10.3.3.2:
- remote_as: 65121
- description: BGP_VRF_RED_s1-core1
- 10.3.3.5:
- remote_as: 65213
- description: BGP_VRF_RED_s2-brdr1
- 10.3.3.6:
- remote_as: 65213
- description: BGP_VRF_RED_s2-brdr2
- next_hop_self: true
- redistribute_routes:
- - connected
- - static
- address_families:
- ipv4:
- neighbors:
- 10.2.19.1:
- activate: true
- 10.3.3.2:
- activate: true
- 10.3.3.5:
- activate: true
- 10.3.3.6:
- activate: true
-custom_structured_configuration_host_ethernet_interfaces:
- Ethernet2:
- description: "s2-brdr1_Ethernet4"
- shutdown: false
- channel_group:
- id: 2
- mode: "active"
- Ethernet3:
- description: "s2-brdr2_Ethernet4"
- shutdown: false
- channel_group:
- id: 2
- mode: "active"
- Ethernet4:
- type: switched
- mode: trunk
- description: P2P_LINK_TO_s1-core1_Ethernet4
- shutdown: false
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s2-core2.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s2-core2.yml
deleted file mode 100644
index 8a533322f..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/host_vars/s2-core2.yml
+++ /dev/null
@@ -1,170 +0,0 @@
----
-custom_structured_configuration_host_vlan_interfaces:
- Vlan711:
- description: iBGP_FOR_VRF_BLUE
- ip_address: 10.2.17.1/30
- vrf: BLUE
- shutdown: false
- Vlan712:
- description: iBGP_FOR_VRF_GREEN
- ip_address: 10.2.18.1/30
- vrf: GREEN
- shutdown: false
- Vlan713:
- description: iBGP_FOR_VRF_RED
- ip_address: 10.2.19.1/30
- vrf: RED
- shutdown: false
- Vlan811:
- description: BGP_FOR_VRF_BLUE
- ip_address: 10.4.1.1/29
- vrf: BLUE
- shutdown: false
- Vlan812:
- description: BGP_FOR_VRF_GREEN
- ip_address: 10.4.2.1/29
- vrf: GREEN
- shutdown: false
- Vlan813:
- description: BGP_FOR_VRF_RED
- ip_address: 10.4.3.1/29
- vrf: RED
- shutdown: false
- Vlan4093:
- description: MLAG_PEER_L3_PEERING
- ip_address: 10.2.10.1/31
- mtu: 9000
- shutdown: false
-
-router_bgp:
- as: 65221
- router_id: 10.2.8.2
- bgp_defaults: "{{ atd_bgp_defaults }}"
- peer_groups:
- MLAG-IPv4-UNDERLAY-PEER:
- type: ipv4
- remote_as: 65221
- next_hop_self: true
- route_map_in: RM-MLAG-PEER-IN
- send_community: all
- maximum_routes: 12000
- neighbors:
- 10.2.10.0:
- peer_group: MLAG-IPv4-UNDERLAY-PEER
- description: s2-core1
- address_family_ipv4:
- peer_groups:
- MLAG-IPv4-UNDERLAY-PEER:
- activate: true
- vrfs:
- BLUE:
- rd: "10.2.8.2:502"
- router_id: 10.2.8.2
- neighbors:
- 10.2.17.2:
- remote_as: 65221
- description: iBGP_VRF_BLUE_s2-core1
- 10.4.1.2:
- remote_as: 65121
- description: BGP_VRF_BLUE_s1-core2
- 10.4.1.5:
- remote_as: 65213
- description: BGP_VRF_BLUE_s2-brdr1
- 10.4.1.6:
- remote_as: 65213
- description: BGP_VRF_BLUE_s2-brdr2
- next_hop_self: true
- redistribute_routes:
- - connected
- - static
- address_families:
- ipv4:
- neighbors:
- 10.2.17.2:
- activate: true
- 10.4.1.2:
- activate: true
- 10.4.1.5:
- activte: true
- 10.4.1.6:
- activate: true
- GREEN:
- rd: "10.2.8.2:503"
- router_id: 10.2.8.2
- neighbors:
- 10.2.18.2:
- remote_as: 65221
- description: iBGP_VRF_GREEN_s2-core1
- 10.4.2.2:
- remote_as: 65121
- description: BGP_VRF_GREEN_s1-core2
- 10.4.2.5:
- remote_as: 65213
- description: BGP_VRF_GREEN_s2-brdr1
- 10.4.2.6:
- remote_as: 65213
- description: BGP_VRF_GREEN_s2-brdr2
- next_hop_self: true
- redistribute_routes:
- - connected
- - static
- address_families:
- ipv4:
- neighbors:
- 10.2.18.2:
- activate: true
- 10.4.2.2:
- activate: true
- 10.4.2.5:
- activate: true
- 10.4.2.6:
- activate: true
- RED:
- rd: "10.2.8.2:501"
- router_id: 10.2.8.2
- neighbors:
- 10.2.19.2:
- remote_as: 65221
- description: iBGP_VRF_RED_s2-core1
- 10.4.3.2:
- remote_as: 65121
- description: BGP_VRF_RED_s1-core2
- 10.4.3.5:
- remote_as: 65213
- description: BGP_VRF_RED_s2-brdr1
- 10.4.3.6:
- remote_as: 65213
- description: BGP_VRF_RED_s2-brdr2
- next_hop_self: true
- redistribute_routes:
- - connected
- - static
- address_families:
- ipv4:
- neighbors:
- 10.2.19.2:
- activate: true
- 10.4.3.2:
- activate: true
- 10.4.3.5:
- activate: true
- 10.4.3.6:
- activate: true
-custom_structured_configuration_host_ethernet_interfaces:
- Ethernet2:
- description: "s2-brdr1_Ethernet5"
- shutdown: false
- channel_group:
- id: 2
- mode: "active"
- Ethernet3:
- description: "s2-brdr2_Ethernet5"
- shutdown: false
- channel_group:
- id: 2
- mode: "active"
- Ethernet4:
- type: switched
- mode: trunk
- description: P2P_LINK_TO_s1-core2_Ethernet4
- shutdown: false
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/images/atd-topo.png b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/images/atd-topo.png
deleted file mode 100644
index 08c1be17e..000000000
Binary files a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/images/atd-topo.png and /dev/null differ
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/inventory.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/inventory.yml
deleted file mode 100644
index 4c2decb0c..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/inventory.yml
+++ /dev/null
@@ -1,127 +0,0 @@
-all:
- children:
- CVP:
- hosts:
- ATD_CVP:
- ansible_host: 192.168.0.5
- ansible_httpapi_host: 192.168.0.5
-#For 3 node clusters define additional hosts following the proper indentation.
-
-
-# ATD Dual DC Fabric Definitions
- ATD_FABRIC:
- children:
-# Site 1
- SITE1:
- children:
- SITE1_SPINES:
- hosts:
- s1-spine1:
- ansible_host: 192.168.0.10
- s1-spine2:
- ansible_host: 192.168.0.11
- SITE1_L3LEAFS:
- children:
- SITE1_DC_LEAF1:
- hosts:
- s1-leaf1:
- ansible_host: 192.168.0.12
- s1-leaf2:
- ansible_host: 192.168.0.13
- SITE1_DC_LEAF2:
- hosts:
- s1-leaf3:
- ansible_host: 192.168.0.14
- s1-leaf4:
- ansible_host: 192.168.0.15
- SITE1_BORDER_LEAF1:
- hosts:
- s1-brdr1:
- ansible_host: 192.168.0.100
- s1-brdr2:
- ansible_host: 192.168.0.101
- SITE1_CORE_LEAF1:
- hosts:
- s1-core1:
- ansible_host: 192.168.0.102
- s1-core2:
- ansible_host: 192.168.0.103
- SITE1_L2LEAFS:
- children:
- SITE1_HOSTS:
- hosts:
- s1-host1:
- ansible_host: 192.168.0.16
- s1-host2:
- ansible_host: 192.168.0.17
-# Site 2
- SITE2:
- children:
- SITE2_SPINES:
- hosts:
- s2-spine1:
- ansible_host: 192.168.0.20
- s2-spine2:
- ansible_host: 192.168.0.21
- SITE2_L3LEAFS:
- children:
- SITE2_DC_LEAF1:
- hosts:
- s2-leaf1:
- ansible_host: 192.168.0.22
- s2-leaf2:
- ansible_host: 192.168.0.23
- SITE2_DC_LEAF2:
- hosts:
- s2-leaf3:
- ansible_host: 192.168.0.24
- s2-leaf4:
- ansible_host: 192.168.0.25
- SITE2_BORDER_LEAF1:
- hosts:
- s2-brdr1:
- ansible_host: 192.168.0.200
- s2-brdr2:
- ansible_host: 192.168.0.201
- SITE2_CORE_LEAF1:
- hosts:
- s2-core1:
- ansible_host: 192.168.0.202
- s2-core2:
- ansible_host: 192.168.0.203
- SITE2_L2LEAFS:
- children:
- SITE2_HOSTS:
- hosts:
- s2-host1:
- ansible_host: 192.168.0.26
- s2-host2:
- ansible_host: 192.168.0.27
-
-# ATD Global Groups, File EOS.yml contains Fabric Wide information
- EOS:
- children:
- SITE1_SPINES:
- SITE1_L3LEAFS:
- SITE1_L2LEAFS:
- SITE2_SPINES:
- SITE2_L3LEAFS:
- SITE2_L2LEAFS:
-
-#Define Switch Groups that will inherit VRF Information
- ATD_TENANTS_NETWORKS:
- children:
- SITE1_L3LEAFS:
- SITE2_L3LEAFS:
-
-#For Border leaf configuration Replication ex. ACLs we can create a group.
- ATD_BORDER_LEAFS:
- children:
- SITE1_BORDER_LEAF1:
- SITE2_BORDER_LEAF1:
-
-#For Vaulted password usage with Git/Ansible.
- # ATD_FABRIC_VAULT:
- # children:
- # ATD_FABRIC:
- # CVP:
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/atd-setup.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/atd-setup.yml
deleted file mode 100644
index 4d04b3bbe..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/atd-setup.yml
+++ /dev/null
@@ -1,28 +0,0 @@
----
-
-- name: Setup AAA for ATD
- hosts: ATD_CVP
- connection: local
- gather_facts: no
- vars_prompt:
-
- #Enable to ask for username
- # - name: ansible_user
- # prompt: What is your username?
- # private: no
-
- - name: ansible_password
- prompt: What is your lab password?
- confirm: yes
-
- vars:
- sha512_password: "{{ ansible_password | password_hash('sha512') }}"
-
- tasks:
- - name: "Gather CVP facts {{inventory_hostname}}"
- import_role:
- name: 'setupAAA'
-
- - name: "Reset ATD lab to initial state"
- import_role:
- name: 'atd-init'
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-backup.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-backup.yml
deleted file mode 100644
index 1db5a772f..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-backup.yml
+++ /dev/null
@@ -1,24 +0,0 @@
----
-
-- name: Backup ATD Fabric
- hosts: ATD_FABRIC
- #Enable vars_prompt to ask for user:pass
- #vars_prompt:
-
- # - name: ansible_user
- # prompt: What is your username?
- # private: no
-
- # - name: ansible_password
- # prompt: What is your password?
- tasks:
- - name: show running config
- eos_command:
- commands: "show running-config"
- register: backup
- check_mode: no
-
- - name: backup running config
- copy:
- content: "{{ backup.stdout[0] }}"
- dest: "./config_backup/{{ inventory_hostname }}_running-config.conf"
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-cvp-deploy.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-cvp-deploy.yml
deleted file mode 100644
index 37b9f60d6..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-cvp-deploy.yml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-
-- name: Configuration deployment with CVP
- hosts: ATD_CVP
- connection: local
- gather_facts: no
- #Enable vars_prompt to ask for user:pass
- #vars_prompt:
-
- # - name: ansible_user
- # prompt: What is your username?
- # private: no
-
- # - name: ansible_password
- # prompt: What is your password?
-
- tasks:
-
- - name: run CVP provisioning
- import_role:
- name: arista.avd.eos_config_deploy_cvp
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-deploy.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-deploy.yml
deleted file mode 100644
index 94eb02832..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-deploy.yml
+++ /dev/null
@@ -1,47 +0,0 @@
----
-
-- name: Build and Deploy ATD Fabric
- hosts: ATD_FABRIC
-
- tasks:
-
- - name: generate intended variables
- import_role:
- name: arista.avd.eos_designs
-
- - name: generate device intended config and documentation
- import_role:
- name: arista.avd.eos_cli_config_gen
-
-- name: Configuration deployment with CVP
- hosts: ATD_CVP
- connection: local
- gather_facts: no
- #Enable vars_prompt to ask for user:pass
- #vars_prompt:
-
- # - name: ansible_user
- # prompt: What is your username?
- # private: no
-
- # - name: ansible_password
- # prompt: What is your password?
-
- tasks:
-
- # If required to include custom configlets
- #- name: upload cvp configlets
- # import_role:
- # name: arista.avd.cvp_configlet_upload
- # vars:
- # configlets_cvp_prefix: 'CUSTOM'
- # configlet_directory: "{{inventory_dir}}/configlets"
-
- - name: run CVP provisioning
- import_role:
- name: arista.avd.eos_config_deploy_cvp
-
- - name: Remove legacy ATD configlets
- tags: removelegacy
- import_role:
- name: 'atd-remove-legacy'
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-init.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-init.yml
deleted file mode 100644
index 2889fd119..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-init.yml
+++ /dev/null
@@ -1,25 +0,0 @@
----
-
-- name: Initial setup of AVD devices and containers
- hosts: ATD_CVP
- connection: local
- gather_facts: no
-
- tasks:
-
- - name: "Cleaning up Tenant Container Configlet"
- command: "python3 service_scripts/configlet_remove.py"
- register: result
- ignore_errors: true
-
- - name: "Removing non-AVD configlets"
- tags: [apply]
- arista.cvp.cv_device_v3:
- devices: "{{CVP_DEVICES}}"
- state: present
- apply_mode: strict
- register: CVP_DEVICES
-
- - name: "Initial ATD Setup Complete"
- debug:
- msg: "Setup is complete execute make fabric-init next"
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-ssh-deploy.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-ssh-deploy.yml
deleted file mode 100644
index a4295bfaf..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-ssh-deploy.yml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-
-- name: Deploy ATD Fabric via ssh
- hosts: ATD_FABRIC
-
- tasks:
-
- - name: Deploy Configuration
- import_role:
- name: arista.avd.eos_config_deploy_eapi
-
- vars_prompt:
-
- #Enable vars_prompt to ask for user:pass
-
- # - name: ansible_user
- # prompt: What is your username?
- # private: no
-
- - name: ansible_password
- prompt: What is your lab password?
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-validate.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-validate.yml
deleted file mode 100644
index 9cd03c968..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/playbooks/fabric-validate.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-
-- name: Validate state of ATD Fabric
- hosts: ATD_FABRIC
- #Enable vars_prompt to ask for user:pass
- #vars_prompt:
-
- # - name: ansible_user
- # prompt: What is your username?
- # private: no
-
- # - name: ansible_password
- # prompt: What is your password?
-
- tasks:
-
- - name: validate states on EOS devices
- import_role:
- name: arista.avd.eos_validate_state
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/readme.md b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/readme.md
deleted file mode 100644
index ece153440..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/readme.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# ATD-AVD-Dual-DC
-Arista Dual DC w/Ansible
-Beta stage, not for production use.
-
-To Setup ATD Topology run the following commands
- - cd labfiles/AristaValidatedDesigns
- - make atd-setup
- - make provision
- - Deploy pending tasks from cvp
- - Experiment with AVD ...
-
-Topology
-![ATD - Dual DataCenter Topology](images/atd-topo.png "ATD Dual DataCenter")
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/atd-init/defaults/main.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/atd-init/defaults/main.yml
deleted file mode 100644
index 36a8fef08..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/atd-init/defaults/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-# defaults file for atd-init
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/atd-init/handlers/main.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/atd-init/handlers/main.yml
deleted file mode 100644
index c797f3273..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/atd-init/handlers/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-# handler file for atd-init
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/atd-init/tasks/main.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/atd-init/tasks/main.yml
deleted file mode 100644
index 33a35dbc1..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/atd-init/tasks/main.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-# ---
-
-- name: 'Create configlets on CVP {{inventory_hostname}}.'
- arista.cvp.cv_configlet_v3:
- configlets:
- ATD-BASE: "{{ lookup('file','~/project/labfiles/AristaValidatedDesigns/group_vars/CVP/ATD-BASE.txt') }}"
- configlets_notes: "Configlet managed by Ansible"
-
-- name: "Building initial Containers topology"
- arista.cvp.cv_container_v3:
- topology: '{{CVP_CONTAINERS_INIT}}'
-
-- name: "Moving devices to Staging container"
- arista.cvp.cv_device_v3:
- devices: "{{CVP_DEVICES_INIT}}"
- state: present
- apply_mode: strict
- register: CVP_DEVICES_RESULTS
-
-- name: "Execute pending tasks on {{inventory_hostname}}"
- arista.cvp.cv_task_v3:
- tasks: "{{ CVP_DEVICES_RESULTS.taskIds }}"
- when:
- - CVP_DEVICES_RESULTS.taskIds | length > 0
-
-- name: "Refresh Containers topology on {{inventory_hostname}}"
- arista.cvp.cv_container_v3:
- topology: '{{CVP_CONTAINERS_DELETE}}'
- state: absent
-
-- name: "Removing ATD-INFRA from Tenant container"
- arista.cvp.cv_container_v3:
- topology: '{{CVP_ATD_CONTAINER}}'
- apply_mode: strict
- register: CVP_DEVICES_RESULTS
-
-- name: "Execute pending tasks on {{inventory_hostname}}"
- arista.cvp.cv_task_v3:
- tasks: "{{ CVP_DEVICES_RESULTS.taskIds }}"
-
-- name: "Initial ATD Setup Complete"
- debug:
- msg: "Setup is complete execute 'make fabric-provision' next"
-
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/atd-remove-legacy/tasks/main.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/atd-remove-legacy/tasks/main.yml
deleted file mode 100644
index ae8a2d594..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/atd-remove-legacy/tasks/main.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-- include_vars:
- file: ~/project/labfiles/AristaValidatedDesigns/intended/structured_configs/cvp/ATD_CVP.yml
-
-- name: "Gather CVP facts {{inventory_hostname}}"
- arista.cvp.cv_facts_v3:
- facts:
- - devices
- register: CVP_FACTS
-
-- name: "Removing legacy configlets from devices"
- arista.cvp.cv_device_v3:
- devices: '{{CVP_DEVICES}}'
- state: present
- apply_mode: strict
- when: CVP_FACTS.data.cvp_devices | map(attribute='configlets') | regex_findall('BASE_') | length > 0
- register: CVP_RESULTS
-
-- name: "Execute pending tasks on {{inventory_hostname}}"
- arista.cvp.cv_task_v3:
- tasks: "{{ CVP_RESULTS.taskIds }}"
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/setupAAA/defaults/main.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/setupAAA/defaults/main.yml
deleted file mode 100644
index 28dddd58e..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/setupAAA/defaults/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-# defaults file for setupAAA
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/setupAAA/handlers/main.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/setupAAA/handlers/main.yml
deleted file mode 100644
index 71480754f..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/setupAAA/handlers/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-# handler file for setupAAA
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/setupAAA/tasks/main.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/setupAAA/tasks/main.yml
deleted file mode 100644
index c807b0b3f..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/setupAAA/tasks/main.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-- name: "Gather CVP facts {{inventory_hostname}}"
- arista.cvp.cv_facts:
- facts:
- configlets
- register: CVP_FACTS
-
-- name: Create AAA template
- template:
- src: "{{lookup('env','PWD')}}/roles/templates/AAA.j2"
- dest: "{{lookup('env','PWD')}}/group_vars/ATD_FABRIC/AAA.yml"
- vars:
- AAA: '{{CVP_FACTS.ansible_facts.configlets | selectattr("name", "==", "ATD-INFRA") | map(attribute="config") | join(" ") | regex_findall("username .*") }}'
-
-- name: Create ATD-BASE configlet
- template:
- src: "{{lookup('env','PWD')}}/roles/templates/BASE_INFRA.j2"
- dest: "{{lookup('env','PWD')}}/group_vars/CVP/ATD-BASE.txt"
- vars:
- AAA: '{{CVP_FACTS.ansible_facts.configlets | selectattr("name", "==", "ATD-INFRA") | map(attribute="config") | join(" ") | regex_findall("username .*") }}'
-
-- name: Add CVP credentials
- template:
- src: "{{lookup('env','PWD')}}/roles/templates/CVP_CRED.j2"
- dest: "{{lookup('env','PWD')}}/group_vars/CVP/CVP_CRED.yml"
-
-- name: Add EOS credentials
- template:
- src: "{{lookup('env','PWD')}}/roles/templates/CVP_CRED.j2"
- dest: "{{lookup('env','PWD')}}/group_vars/EOS/EOS_CRED.yml"
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/templates/AAA.j2 b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/templates/AAA.j2
deleted file mode 100644
index c4cd3671f..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/templates/AAA.j2
+++ /dev/null
@@ -1,6 +0,0 @@
-local_users:
- arista:
- privilege: 15
- role: network-admin
- sha512_password: {{ sha512_password }}
- ssh_key: "ssh-rsa {{ AAA[2].split(" ")[4] }} {{ AAA[2].split(" ")[5] }}"
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/templates/BASE_INFRA.j2 b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/templates/BASE_INFRA.j2
deleted file mode 100644
index 20d089f61..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/templates/BASE_INFRA.j2
+++ /dev/null
@@ -1,34 +0,0 @@
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret sha512 {{ sha512_password }}
-username arista ssh-key ssh-rsa {{ AAA[2].split(" ")[4] }} {{ AAA[2].split(" ")[5] }}
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/templates/CVP_CRED.j2 b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/templates/CVP_CRED.j2
deleted file mode 100644
index 29ebc0588..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/roles/templates/CVP_CRED.j2
+++ /dev/null
@@ -1 +0,0 @@
-ansible_password: {{ ansible_password }}
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/service_scripts/configlet_remove.py b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/service_scripts/configlet_remove.py
deleted file mode 100755
index e084f7a69..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/service_scripts/configlet_remove.py
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env python3
-import urllib3, yaml
-#from pprint import pprint
-from cvprac.cvp_client import CvpClient
-urllib3.disable_warnings()
-clnt = CvpClient()
-with open('group_vars/CVP/CVP_CRED.yml', 'r') as passfile:
- file_data = yaml.safe_load(passfile)
- cvpPass = file_data['ansible_password']
-clnt.connect(['192.168.0.5'], 'arista', cvpPass )
-
-##Cleanup Tenant Container
-container_name = "Tenant"
-configletName = 'ATD-INFRA'
-container = clnt.api.get_container_by_name(container_name)
-configlet = clnt.api.get_configlet_by_name(configletName)
-result = clnt.api.remove_configlets_from_container("", container, [configlet], True)
-#pprint (result)
-#print (result['data']['taskIds'])
-task = result['data'].get('taskIds')
-for item in task:
- #print (item)
- itemExecute = clnt.api.execute_task(item)
- #print (itemExecute)
-#result2 = clnt.api.execute_task(result['data']['taskIds'])
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/service_scripts/installAVD.sh b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/service_scripts/installAVD.sh
deleted file mode 100755
index 96674af1b..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/service_scripts/installAVD.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env bash
-#For initial setup of AVD 3.x.x on ATD environment
-echo -n "Install or update arista.avd collection? [ install | update ]"
-read collectioninstall
-if [ $collectioninstall = 'install' ]
-then
- ansible-galaxy collection install arista.avd
-elif [ $collectioninstall = 'update' ]
-then
- ansible-galaxy collection install arista.avd --upgrade
-else
- echo "invalid option"
-fi
-echo -n "Install/update python packages? [ yes | no ] "
-read pythonpkgs
-if [ $pythonpkgs = 'yes' ]
-then
- echo "Installing additional packages"
- pip3 install -r /home/coder/.ansible/collections/ansible_collections/arista/avd/requirements.txt
- echo "Done"
-else
- echo "Skipped python package install/update"
-fi
-echo -n "Install/update devel branch? [ yes | no ] "
-read pythonpkgs
-if [ $pythonpkgs = 'yes' ]
-then
- echo -n "Update Ansible version (maybe required) [ yes | no ] "
- read ansibleupd
- if [ $ansibleupd = 'yes' ]
- then
- sudo pip3 uninstall -y ansible
- sudo pip3 uninstall -y ansible-base
- sudo pip3 install ansible
- fi
- echo "Installing additional packages for devel"
- ansible-galaxy collection install git+https://github.com/aristanetworks/ansible-avd.git#/ansible_collections/arista/avd/,devel
- pip3 install -r /home/coder/.ansible/collections/ansible_collections/arista/avd/requirements-dev.txt
- echo "Done"
-else
- echo "Devel branch install skipped"
-fi
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/service_scripts/readme.md b/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/service_scripts/readme.md
deleted file mode 100644
index 4e6bd0f70..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/AristaValidatedDesigns/service_scripts/readme.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# Service Scripts
-Note these service scripts are only for use with the Arista Test Drive topology not required for production use cases.
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/lab4/lab4-advanced-hosts b/topologies/dual-datacenter/files/apps/coder/labfiles/lab4/lab4-advanced-hosts
deleted file mode 100644
index 23c3ff3f4..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/lab4/lab4-advanced-hosts
+++ /dev/null
@@ -1,2 +0,0 @@
-[veos]
-192.168.0.14
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/lab4/lab4-advanced-playbook.yml b/topologies/dual-datacenter/files/apps/coder/labfiles/lab4/lab4-advanced-playbook.yml
deleted file mode 100644
index 34b8c5480..000000000
--- a/topologies/dual-datacenter/files/apps/coder/labfiles/lab4/lab4-advanced-playbook.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-- name: Add a VLAN
- hosts: 192.168.0.14
- gather_facts: 'no'
- connection: local
- vars:
- provider:
- host: "{{ ansible_host }}"
- username: "arista"
- password: "arista"
- authorize: 'yes'
- transport: eapi
- validate_certs: 'no'
- tasks:
- - eos_config:
- lines:
- - name foo
- parents: vlan 500
- provider: "{{ provider }}"
diff --git a/topologies/dual-datacenter/files/apps/coder/labfiles/lab6/lab/group_vars/.placeholder b/topologies/dual-datacenter/files/apps/coder/labfiles/lab6/lab/group_vars/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/dual-datacenter/files/apps/ssh/web.json b/topologies/dual-datacenter/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/dual-datacenter/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/apps/uilanding/modules.yaml b/topologies/dual-datacenter/files/apps/uilanding/modules.yaml
deleted file mode 100644
index c317db6ca..000000000
--- a/topologies/dual-datacenter/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,78 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- s1-Spine1:
- coords: "208,67,287,116"
- ip: "192.168.0.10"
- s1-Spine2:
- coords: "329,60,413,121"
- ip: "192.168.0.11"
- s1-Leaf1:
- coords: "75,222,151,268"
- ip: "192.168.0.12"
- s1-Leaf2:
- coords: "197,219,284,269"
- ip: "192.168.0.13"
- s1-Leaf3:
- coords: "329,222,416,270"
- ip: "192.168.0.14"
- s1-Leaf4:
- coords: "457,220,541,270"
- ip: "192.168.0.15"
- s1-brdr1:
- coords: "567,227,637,268"
- ip: "192.168.0.100"
- s1-brdr2:
- coords: "691,227,777,276"
- ip: "192.168.0.101"
- s1-core1:
- coords: "560,302,652,355"
- ip: "192.168.0.102"
- s1-core2:
- coords: "689,301,778,354"
- ip: "192.168.0.103"
- s1-Host1:
- coords: "134,323,223,376"
- ip: "192.168.0.16"
- s1-Host2:
- coords: "388,322,477,375"
- ip: "192.168.0.17"
- s2-Spine1:
- coords: "1198,62,1273,117"
- ip: "192.168.0.20"
- s2-Spine2:
- coords: "1313,55,1395,115"
- ip: "192.168.0.21"
- s2-Leaf1:
- coords: "1053,214,1143,267"
- ip: "192.168.0.22"
- s2-Leaf2:
- coords: "1182,213,1269,259"
- ip: "192.168.0.23"
- s2-Leaf3:
- coords: "1310,216,1401,265"
- ip: "192.168.0.24"
- s2-Leaf4:
- coords: "1438,217,1535,267"
- ip: "192.168.0.25"
- s2-brdr1:
- coords: "805,232,894,273"
- ip: "192.168.0.200"
- s2-brdr2:
- coords: "935,225,1024,278"
- ip: "192.168.0.201"
- s2-core1:
- coords: "798,303,887,356"
- ip: "192.168.0.202"
- s2-core2:
- coords: "926,305,1015,358"
- ip: "192.168.0.203"
- s2-Host1:
- coords: "1118,317,1207,370"
- ip: "192.168.0.26"
- s2-Host2:
- coords: "1376,321,1465,374"
- ip: "192.168.0.27"
- CVP:
- coords: "758,158,563,52"
- ip: "192.168.0.5"
diff --git a/topologies/dual-datacenter/files/apps/webui/.vncpass_clear b/topologies/dual-datacenter/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/dual-datacenter/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/ceos/s1-brdr1/ceos-config b/topologies/dual-datacenter/files/ceos/s1-brdr1/ceos-config
deleted file mode 100644
index 1a35a8db1..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-brdr1/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s1-brdr1
-SYSTEMMACADDR=00:1c:73:c0:c1:00
diff --git a/topologies/dual-datacenter/files/ceos/s1-brdr1/startup-config b/topologies/dual-datacenter/files/ceos/s1-brdr1/startup-config
deleted file mode 100644
index a110ce4b4..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-brdr1/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s1-brdr1
-!
-interface Management0
- ip address 192.168.0.100/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s1-brdr2/ceos-config b/topologies/dual-datacenter/files/ceos/s1-brdr2/ceos-config
deleted file mode 100644
index 9a9c41c51..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-brdr2/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s1-brdr2
-SYSTEMMACADDR=00:1c:73:c0:c1:01
diff --git a/topologies/dual-datacenter/files/ceos/s1-brdr2/startup-config b/topologies/dual-datacenter/files/ceos/s1-brdr2/startup-config
deleted file mode 100644
index 3b82b1f5f..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-brdr2/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s1-brdr2
-!
-interface Management0
- ip address 192.168.0.101/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s1-core1/ceos-config b/topologies/dual-datacenter/files/ceos/s1-core1/ceos-config
deleted file mode 100644
index 7bfc204a5..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-core1/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s1-core1
-SYSTEMMACADDR=00:1c:73:c0:c1:02
diff --git a/topologies/dual-datacenter/files/ceos/s1-core1/startup-config b/topologies/dual-datacenter/files/ceos/s1-core1/startup-config
deleted file mode 100644
index 9b118e202..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-core1/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s1-core1
-!
-interface Management0
- ip address 192.168.0.102/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s1-core2/ceos-config b/topologies/dual-datacenter/files/ceos/s1-core2/ceos-config
deleted file mode 100644
index 24e9884d3..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-core2/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s1-core2
-SYSTEMMACADDR=00:1c:73:c0:c1:03
diff --git a/topologies/dual-datacenter/files/ceos/s1-core2/startup-config b/topologies/dual-datacenter/files/ceos/s1-core2/startup-config
deleted file mode 100644
index fcf433147..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-core2/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s1-core2
-!
-interface Management0
- ip address 192.168.0.103/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s1-host1/ceos-config b/topologies/dual-datacenter/files/ceos/s1-host1/ceos-config
deleted file mode 100644
index 0d589acf4..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-host1/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s1-host1
-SYSTEMMACADDR=00:1c:73:c0:c6:16
diff --git a/topologies/dual-datacenter/files/ceos/s1-host1/startup-config b/topologies/dual-datacenter/files/ceos/s1-host1/startup-config
deleted file mode 100644
index f2ffda30d..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-host1/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s1-host1
-!
-interface Management0
- ip address 192.168.0.16/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s1-host2/ceos-config b/topologies/dual-datacenter/files/ceos/s1-host2/ceos-config
deleted file mode 100644
index 312b0066f..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-host2/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s1-host2
-SYSTEMMACADDR=00:1c:73:c0:c6:17
diff --git a/topologies/dual-datacenter/files/ceos/s1-host2/startup-config b/topologies/dual-datacenter/files/ceos/s1-host2/startup-config
deleted file mode 100644
index 5855a3f63..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-host2/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s1-host2
-!
-interface Management0
- ip address 192.168.0.17/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s1-leaf1/ceos-config b/topologies/dual-datacenter/files/ceos/s1-leaf1/ceos-config
deleted file mode 100644
index 99c620c03..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-leaf1/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s1-leaf1
-SYSTEMMACADDR=00:1c:73:c0:c6:12
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/ceos/s1-leaf1/startup-config b/topologies/dual-datacenter/files/ceos/s1-leaf1/startup-config
deleted file mode 100644
index aaa27feeb..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-leaf1/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s1-leaf1
-!
-interface Management0
- ip address 192.168.0.12/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s1-leaf2/ceos-config b/topologies/dual-datacenter/files/ceos/s1-leaf2/ceos-config
deleted file mode 100644
index 2431d3f3e..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-leaf2/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s1-leaf2
-SYSTEMMACADDR=00:1c:73:c0:c6:13
diff --git a/topologies/dual-datacenter/files/ceos/s1-leaf2/startup-config b/topologies/dual-datacenter/files/ceos/s1-leaf2/startup-config
deleted file mode 100644
index 582ddc3c8..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-leaf2/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s1-leaf2
-!
-interface Management0
- ip address 192.168.0.13/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s1-leaf3/ceos-config b/topologies/dual-datacenter/files/ceos/s1-leaf3/ceos-config
deleted file mode 100644
index 3da7c1d23..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-leaf3/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s1-leaf3
-SYSTEMMACADDR=00:1c:73:c0:c6:14
diff --git a/topologies/dual-datacenter/files/ceos/s1-leaf3/startup-config b/topologies/dual-datacenter/files/ceos/s1-leaf3/startup-config
deleted file mode 100644
index f3b2014ea..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-leaf3/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s1-leaf3
-!
-interface Management0
- ip address 192.168.0.14/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s1-leaf4/ceos-config b/topologies/dual-datacenter/files/ceos/s1-leaf4/ceos-config
deleted file mode 100644
index f2612fc0d..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-leaf4/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s1-leaf4
-SYSTEMMACADDR=00:1c:73:c0:c6:15
diff --git a/topologies/dual-datacenter/files/ceos/s1-leaf4/startup-config b/topologies/dual-datacenter/files/ceos/s1-leaf4/startup-config
deleted file mode 100644
index 29fe8258a..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-leaf4/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s1-leaf4
-!
-interface Management0
- ip address 192.168.0.15/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s1-spine1/ceos-config b/topologies/dual-datacenter/files/ceos/s1-spine1/ceos-config
deleted file mode 100644
index c8f47e55c..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-spine1/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s1-spine1
-SYSTEMMACADDR=00:1c:73:c0:c6:10
diff --git a/topologies/dual-datacenter/files/ceos/s1-spine1/startup-config b/topologies/dual-datacenter/files/ceos/s1-spine1/startup-config
deleted file mode 100644
index c9401e26b..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-spine1/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s1-spine1
-!
-interface Management0
- ip address 192.168.0.10/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s1-spine2/ceos-config b/topologies/dual-datacenter/files/ceos/s1-spine2/ceos-config
deleted file mode 100644
index 158522334..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-spine2/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s1-spine2
-SYSTEMMACADDR=00:1c:73:c0:c6:11
diff --git a/topologies/dual-datacenter/files/ceos/s1-spine2/startup-config b/topologies/dual-datacenter/files/ceos/s1-spine2/startup-config
deleted file mode 100644
index f214cd9be..000000000
--- a/topologies/dual-datacenter/files/ceos/s1-spine2/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s1-spine2
-!
-interface Management0
- ip address 192.168.0.11/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s2-brdr1/ceos-config b/topologies/dual-datacenter/files/ceos/s2-brdr1/ceos-config
deleted file mode 100644
index f4f8a8b41..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-brdr1/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s2-brdr1
-SYSTEMMACADDR=00:1c:73:c0:c2:00
diff --git a/topologies/dual-datacenter/files/ceos/s2-brdr1/startup-config b/topologies/dual-datacenter/files/ceos/s2-brdr1/startup-config
deleted file mode 100644
index 9e78ae960..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-brdr1/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s2-brdr1
-!
-interface Management0
- ip address 192.168.0.200/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s2-brdr2/ceos-config b/topologies/dual-datacenter/files/ceos/s2-brdr2/ceos-config
deleted file mode 100644
index 6c391147a..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-brdr2/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s2-brdr2
-SYSTEMMACADDR=00:1c:73:c0:c2:01
diff --git a/topologies/dual-datacenter/files/ceos/s2-brdr2/startup-config b/topologies/dual-datacenter/files/ceos/s2-brdr2/startup-config
deleted file mode 100644
index 43665e2ac..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-brdr2/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s2-brdr2
-!
-interface Management0
- ip address 192.168.0.201/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s2-core1/ceos-config b/topologies/dual-datacenter/files/ceos/s2-core1/ceos-config
deleted file mode 100644
index 7d434c6e0..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-core1/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s2-core1
-SYSTEMMACADDR=00:1c:73:c0:c2:02
diff --git a/topologies/dual-datacenter/files/ceos/s2-core1/startup-config b/topologies/dual-datacenter/files/ceos/s2-core1/startup-config
deleted file mode 100644
index 3cfaa5a2e..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-core1/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s2-core1
-!
-interface Management0
- ip address 192.168.0.202/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s2-core2/ceos-config b/topologies/dual-datacenter/files/ceos/s2-core2/ceos-config
deleted file mode 100644
index 39966826b..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-core2/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s2-core2
-SYSTEMMACADDR=00:1c:73:c0:c2:03
diff --git a/topologies/dual-datacenter/files/ceos/s2-core2/startup-config b/topologies/dual-datacenter/files/ceos/s2-core2/startup-config
deleted file mode 100644
index bf9d976b6..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-core2/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s2-core2
-!
-interface Management0
- ip address 192.168.0.203/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s2-host1/ceos-config b/topologies/dual-datacenter/files/ceos/s2-host1/ceos-config
deleted file mode 100644
index 0f035cb7c..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-host1/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s2-host1
-SYSTEMMACADDR=00:1c:73:c0:c6:26
diff --git a/topologies/dual-datacenter/files/ceos/s2-host1/startup-config b/topologies/dual-datacenter/files/ceos/s2-host1/startup-config
deleted file mode 100644
index fc796b243..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-host1/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s2-host1
-!
-interface Management0
- ip address 192.168.0.26/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s2-host2/ceos-config b/topologies/dual-datacenter/files/ceos/s2-host2/ceos-config
deleted file mode 100644
index 93782a03a..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-host2/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s2-host2
-SYSTEMMACADDR=00:1c:73:c0:c6:27
diff --git a/topologies/dual-datacenter/files/ceos/s2-host2/startup-config b/topologies/dual-datacenter/files/ceos/s2-host2/startup-config
deleted file mode 100644
index 188da3a9a..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-host2/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s2-host2
-!
-interface Management0
- ip address 192.168.0.27/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s2-leaf1/ceos-config b/topologies/dual-datacenter/files/ceos/s2-leaf1/ceos-config
deleted file mode 100644
index b22f79eb5..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-leaf1/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s2-leaf1
-SYSTEMMACADDR=00:1c:73:c0:c6:22
diff --git a/topologies/dual-datacenter/files/ceos/s2-leaf1/startup-config b/topologies/dual-datacenter/files/ceos/s2-leaf1/startup-config
deleted file mode 100644
index 9d28b98e9..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-leaf1/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s2-leaf1
-!
-interface Management0
- ip address 192.168.0.22/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s2-leaf2/ceos-config b/topologies/dual-datacenter/files/ceos/s2-leaf2/ceos-config
deleted file mode 100644
index b76e9609e..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-leaf2/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s2-leaf2
-SYSTEMMACADDR=00:1c:73:c0:c6:23
diff --git a/topologies/dual-datacenter/files/ceos/s2-leaf2/startup-config b/topologies/dual-datacenter/files/ceos/s2-leaf2/startup-config
deleted file mode 100644
index a258f62ec..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-leaf2/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s2-leaf2
-!
-interface Management0
- ip address 192.168.0.23/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s2-leaf3/ceos-config b/topologies/dual-datacenter/files/ceos/s2-leaf3/ceos-config
deleted file mode 100644
index 198f137e3..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-leaf3/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s2-leaf3
-SYSTEMMACADDR=00:1c:73:c0:c6:24
diff --git a/topologies/dual-datacenter/files/ceos/s2-leaf3/startup-config b/topologies/dual-datacenter/files/ceos/s2-leaf3/startup-config
deleted file mode 100644
index 1247a414d..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-leaf3/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s2-leaf3
-!
-interface Management0
- ip address 192.168.0.24/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s2-leaf4/ceos-config b/topologies/dual-datacenter/files/ceos/s2-leaf4/ceos-config
deleted file mode 100644
index 2339bcb24..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-leaf4/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s2-leaf4
-SYSTEMMACADDR=00:1c:73:c0:c6:25
diff --git a/topologies/dual-datacenter/files/ceos/s2-leaf4/startup-config b/topologies/dual-datacenter/files/ceos/s2-leaf4/startup-config
deleted file mode 100644
index 622201389..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-leaf4/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s2-leaf4
-!
-interface Management0
- ip address 192.168.0.25/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s2-spine1/ceos-config b/topologies/dual-datacenter/files/ceos/s2-spine1/ceos-config
deleted file mode 100644
index bff4fc69b..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-spine1/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s2-spine1
-SYSTEMMACADDR=00:1c:73:c0:c6:20
diff --git a/topologies/dual-datacenter/files/ceos/s2-spine1/startup-config b/topologies/dual-datacenter/files/ceos/s2-spine1/startup-config
deleted file mode 100644
index ba8494a79..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-spine1/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s2-spine1
-!
-interface Management0
- ip address 192.168.0.20/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/ceos/s2-spine2/ceos-config b/topologies/dual-datacenter/files/ceos/s2-spine2/ceos-config
deleted file mode 100644
index f0adde97d..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-spine2/ceos-config
+++ /dev/null
@@ -1,2 +0,0 @@
-SERIALNUMBER=s2-spine2
-SYSTEMMACADDR=00:1c:73:c0:c6:21
diff --git a/topologies/dual-datacenter/files/ceos/s2-spine2/startup-config b/topologies/dual-datacenter/files/ceos/s2-spine2/startup-config
deleted file mode 100644
index 37e8aa4f2..000000000
--- a/topologies/dual-datacenter/files/ceos/s2-spine2/startup-config
+++ /dev/null
@@ -1,40 +0,0 @@
-hostname s2-spine2
-!
-interface Management0
- ip address 192.168.0.21/24
-!
-ip routing
-daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
- no shutdown
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-!
-dns domain atd.lab
-!
-ntp server 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-spanning-tree mode mstp
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-no aaa root
-!
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/dual-datacenter/files/cvp/cvp_info.yaml b/topologies/dual-datacenter/files/cvp/cvp_info.yaml
deleted file mode 100644
index a8b4025b0..000000000
--- a/topologies/dual-datacenter/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,127 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- S1:
- parent: Tenant
- nodes:
- S1-Leaf:
- parent: S1
- nodes:
- - s1-leaf1
- - s1-leaf2
- - s1-leaf3
- - s1-leaf4
- S1-Spine:
- parent: S1
- nodes:
- - s1-spine1
- - s1-spine2
- S1-Hosts:
- parent: S1
- nodes:
- - s1-host1
- - s1-host2
- S1-Brdr:
- parent: S1
- nodes:
- - s1-brdr1
- - s1-brdr2
- S1-Core:
- parent: S1
- nodes:
- - s1-core1
- - s1-core2
- S2:
- parent: Tenant
- nodes:
- S2-Leaf:
- parent: S2
- nodes:
- - s2-leaf1
- - s2-leaf2
- - s2-leaf3
- - s2-leaf4
- S2-Spine:
- parent: S2
- nodes:
- - s2-spine1
- - s2-spine2
- S2-Hosts:
- parent: S2
- nodes:
- - s2-host1
- - s2-host2
- S2-Brdr:
- parent: S2
- nodes:
- - s2-brdr1
- - s2-brdr2
- S2-Core:
- parent: S2
- nodes:
- - s2-core1
- - s2-core2
- snapshots:
- - name: Validate_Routing
- commands:
- - show ip route summary
- - show ip bgp summary
- - name: EOS_Upgrade
- commands:
- - show version
- - show extensions
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- s1-spine1:
- - BASE_s1-spine1
- s1-spine2:
- - BASE_s1-spine2
- s1-leaf1:
- - BASE_s1-leaf1
- s1-leaf2:
- - BASE_s1-leaf2
- s1-leaf3:
- - BASE_s1-leaf3
- s1-leaf4:
- - BASE_s1-leaf4
- s1-host1:
- - BASE_s1-host1
- s1-host2:
- - BASE_s1-host2
- s1-brdr1:
- - BASE_s1-brdr1
- s1-brdr2:
- - BASE_s1-brdr2
- s1-core1:
- - BASE_s1-core1
- s1-core2:
- - BASE_s1-core2
- s2-spine1:
- - BASE_s2-spine1
- s2-spine2:
- - BASE_s2-spine2
- s2-leaf1:
- - BASE_s2-leaf1
- s2-leaf2:
- - BASE_s2-leaf2
- s2-leaf3:
- - BASE_s2-leaf3
- s2-leaf4:
- - BASE_s2-leaf4
- s2-host1:
- - BASE_s2-host1
- s2-host2:
- - BASE_s2-host2
- s2-brdr1:
- - BASE_s2-brdr1
- s2-brdr2:
- - BASE_s2-brdr2
- s2-core1:
- - BASE_s2-core1
- s2-core2:
- - BASE_s2-core2
-
diff --git a/topologies/dual-datacenter/files/hosts b/topologies/dual-datacenter/files/hosts
deleted file mode 100644
index c294d1e20..000000000
--- a/topologies/dual-datacenter/files/hosts
+++ /dev/null
@@ -1,11 +0,0 @@
-127.0.0.1 localhost
-192.168.0.10 spine1
-192.168.0.11 spine2
-192.168.0.12 leaf1
-192.168.0.13 leaf2
-192.168.0.14 leaf3
-192.168.0.15 leaf4
-192.168.0.16 host1
-192.168.0.17 host2
-192.168.0.18 cvx
-192.168.0.5 cvp
diff --git a/topologies/dual-datacenter/files/menus/Datacenter.yaml b/topologies/dual-datacenter/files/menus/Datacenter.yaml
deleted file mode 100644
index 49842a150..000000000
--- a/topologies/dual-datacenter/files/menus/Datacenter.yaml
+++ /dev/null
@@ -1,409 +0,0 @@
----
-lab_list:
- reset:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushhostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- l2ls:
- description: "Layer 2 Leaf-Spine Lab (l2ls) - Site 1 Only"
- l3ls:
- description: "Layer 3 Leaf-Spine Lab (l3ls) - Site 1 Only"
- vxlan:
- description: "VXLAN Static Flood List Lab (vxlan) - Site 1 Only"
- l2evpn:
- description: "VXLAN EVPN Type 2 Lab (l2evpn) - Site 1 Only"
- l3evpn:
- description: "VXLAN EVPN Type 5 Lab (l3evpn) - Site 1 Only"
- cvp:
- description: "CloudVision Portal Lab (cvp) - Site 1 Only"
-labconfiglets:
- reset:
- s1-spine1:
- - "BASE_s1-spine1"
- s1-spine2:
- - "BASE_s1-spine2"
- s1-leaf1:
- - "BASE_s1-leaf1"
- s1-leaf2:
- - "BASE_s1-leaf2"
- s1-leaf3:
- - "BASE_s1-leaf3"
- s1-leaf4:
- - "BASE_s1-leaf4"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- s1-host2:
- - "BASE_s1-host2"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
- l2ls:
- s1-spine1:
- - "BASE_s1-spine1"
- - "L2LS_s1-spine1"
- s1-spine2:
- - "BASE_s1-spine2"
- - "L2LS_s1-spine2"
- s1-leaf1:
- - "BASE_s1-leaf1"
- - "L2LS_s1-leaf1"
- s1-leaf2:
- - "BASE_s1-leaf2"
- - "L2LS_s1-leaf2"
- s1-leaf3:
- - "BASE_s1-leaf3"
- - "L2LS_s1-leaf3"
- s1-leaf4:
- - "BASE_s1-leaf4"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- - "L2LS_s1-host1"
- s1-host2:
- - "BASE_s1-host2"
- - "L2LS_s1-host2"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
- l3ls:
- s1-spine1:
- - "BASE_s1-spine1"
- - "L3LS_s1-spine1"
- s1-spine2:
- - "BASE_s1-spine2"
- - "L3LS_s1-spine2"
- s1-leaf1:
- - "BASE_s1-leaf1"
- - "L3LS_s1-leaf1"
- s1-leaf2:
- - "BASE_s1-leaf2"
- - "L3LS_s1-leaf2"
- s1-leaf3:
- - "BASE_s1-leaf3"
- - "L3LS_s1-leaf3"
- s1-leaf4:
- - "BASE_s1-leaf4"
- - "L3LS_s1-leaf4"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- - "L3LS_s1-host1"
- s1-host2:
- - "BASE_s1-host2"
- - "L3LS_s1-host2"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
- vxlan:
- s1-spine1:
- - "BASE_s1-spine1"
- - "VXLAN_s1-spine1"
- s1-spine2:
- - "BASE_s1-spine2"
- - "VXLAN_s1-spine2"
- s1-leaf1:
- - "BASE_s1-leaf1"
- - "VXLAN_s1-leaf1"
- s1-leaf2:
- - "BASE_s1-leaf2"
- - "VXLAN_s1-leaf2"
- s1-leaf3:
- - "BASE_s1-leaf3"
- - "VXLAN_s1-leaf3"
- s1-leaf4:
- - "BASE_s1-leaf4"
- - "VXLAN_s1-leaf4"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- - "VXLAN_s1-host1"
- s1-host2:
- - "BASE_s1-host2"
- - "VXLAN_s1-host2"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
- l2evpn:
- s1-spine1:
- - "BASE_s1-spine1"
- - "L2EVPN_s1-spine1"
- s1-spine2:
- - "BASE_s1-spine2"
- - "L2EVPN_s1-spine2"
- s1-leaf1:
- - "BASE_s1-leaf1"
- - "L2EVPN_s1-leaf1"
- s1-leaf2:
- - "BASE_s1-leaf2"
- - "L2EVPN_s1-leaf2"
- s1-leaf3:
- - "BASE_s1-leaf3"
- - "L2EVPN_s1-leaf3"
- s1-leaf4:
- - "BASE_s1-leaf4"
- - "L2EVPN_s1-leaf4"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- - "L2EVPN_s1-host1"
- s1-host2:
- - "BASE_s1-host2"
- - "L2EVPN_s1-host2"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
- l3evpn:
- s1-spine1:
- - "BASE_s1-spine1"
- - "L3EVPN_s1-spine1"
- s1-spine2:
- - "BASE_s1-spine2"
- - "L3EVPN_s1-spine2"
- s1-leaf1:
- - "BASE_s1-leaf1"
- - "L3EVPN_s1-leaf1"
- s1-leaf2:
- - "BASE_s1-leaf2"
- - "L3EVPN_s1-leaf2"
- s1-leaf3:
- - "BASE_s1-leaf3"
- - "L3EVPN_s1-leaf3"
- s1-leaf4:
- - "BASE_s1-leaf4"
- - "L3EVPN_s1-leaf4"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- - "L3EVPN_s1-host1"
- s1-host2:
- - "BASE_s1-host2"
- - "L3EVPN_s1-host2"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
- cvp:
- s1-spine1:
- - "BASE_s1-spine1"
- - "L3LS_s1-spine1"
- s1-spine2:
- - "BASE_s1-spine2"
- - "L3LS_s1-spine2"
- s1-leaf1:
- - "BASE_s1-leaf1"
- - "L3LS_s1-leaf1"
- s1-leaf2:
- - "BASE_s1-leaf2"
- - "L3LS_s1-leaf2"
- s1-leaf3:
- - "BASE_s1-leaf3"
- - "L3LS_s1-leaf3"
- s1-leaf4:
- - "BASE_s1-leaf4"
- - "L3LS_s1-leaf4_complete"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- - "L3LS_s1-host1"
- s1-host2:
- - "BASE_s1-host2"
- - "L3LS_s1-host2"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/menus/Media.yaml b/topologies/dual-datacenter/files/menus/Media.yaml
deleted file mode 100644
index bd4f03c6e..000000000
--- a/topologies/dual-datacenter/files/menus/Media.yaml
+++ /dev/null
@@ -1,369 +0,0 @@
----
-lab_list:
- media-intro:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostMediaConfig.sh"
- description: "Media - IP Intro (media-intro)"
- media-vlan:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostMediaConfig.sh"
- description: "Media - VLAN STP (media-vlan)"
- media-ospf:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostMediaConfig.sh"
- description: "Media - OSPF (media-ospf)"
- media-bgp:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostMediaConfig.sh"
- description: "Media - BGP (media-bgp)"
- media-mcast:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostMediaConfig.sh"
- description: "Media - Multicast (media-mcast)"
- media-reset:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostMediaConfig.sh"
- description: "Media - Reset All Devices to Broadcaster Base (media-reset)"
-labconfiglets:
- media-reset:
- s1-spine1:
- - "BASE_s1-spine1"
- - "MEDIA_s1-spine1_intro"
- s1-spine2:
- - "BASE_s1-spine2"
- - "MEDIA_s1-spine2_intro"
- s1-leaf1:
- - "BASE_s1-leaf1"
- - "MEDIA_s1-leaf1_intro"
- s1-leaf2:
- - "BASE_s1-leaf2"
- - "MEDIA_s1-leaf2_intro"
- s1-leaf3:
- - "BASE_s1-leaf3"
- - "MEDIA_s1-leaf3_intro"
- s1-leaf4:
- - "BASE_s1-leaf4"
- - "MEDIA_s1-leaf4_intro"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- - "MEDIA_s1-host1"
- s1-host2:
- - "BASE_s1-host2"
- - "MEDIA_s1-host2"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
- media-intro:
- s1-spine1:
- - "BASE_s1-spine1"
- - "MEDIA_s1-spine1_intro"
- s1-spine2:
- - "BASE_s1-spine2"
- - "MEDIA_s1-spine2_intro"
- s1-leaf1:
- - "BASE_s1-leaf1"
- - "MEDIA_s1-leaf1_intro"
- s1-leaf2:
- - "BASE_s1-leaf2"
- - "MEDIA_s1-leaf2_intro"
- s1-leaf3:
- - "BASE_s1-leaf3"
- - "MEDIA_s1-leaf3_intro"
- s1-leaf4:
- - "BASE_s1-leaf4"
- - "MEDIA_s1-leaf4_intro"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- - "MEDIA_s1-host1"
- s1-host2:
- - "BASE_s1-host2"
- - "MEDIA_s1-host2"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
- media-vlan:
- s1-spine1:
- - "BASE_s1-spine1"
- - "MEDIA_s1-spine1_STP"
- s1-spine2:
- - "BASE_s1-spine2"
- - "MEDIA_s1-spine2_STP"
- s1-leaf1:
- - "BASE_s1-leaf1"
- - "MEDIA_s1-leaf1_STP"
- s1-leaf2:
- - "BASE_s1-leaf2"
- - "MEDIA_s1-leaf2_STP"
- s1-leaf3:
- - "BASE_s1-leaf3"
- - "MEDIA_s1-leaf3_STP"
- s1-leaf4:
- - "BASE_s1-leaf4"
- - "MEDIA_s1-leaf4_STP"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- - "MEDIA_s1-host1"
- s1-host2:
- - "BASE_s1-host2"
- - "MEDIA_s1-host2"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
- media-ospf:
- s1-spine1:
- - "BASE_s1-spine1"
- - "MEDIA_s1-spine1_OSPF"
- s1-spine2:
- - "BASE_s1-spine2"
- - "MEDIA_s1-spine2_OSPF"
- s1-leaf1:
- - "BASE_s1-leaf1"
- - "MEDIA_s1-leaf1_OSPF"
- s1-leaf2:
- - "BASE_s1-leaf2"
- - "MEDIA_s1-leaf2_OSPF"
- s1-leaf3:
- - "BASE_s1-leaf3"
- - "MEDIA_s1-leaf3_OSPF"
- s1-leaf4:
- - "BASE_s1-leaf4"
- - "MEDIA_s1-leaf4_OSPF"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- - "MEDIA_s1-host1"
- s1-host2:
- - "BASE_s1-host2"
- - "MEDIA_s1-host2"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
- media-bgp:
- s1-spine1:
- - "BASE_s1-spine1"
- - "MEDIA_s1-spine1_BGP"
- s1-spine2:
- - "BASE_s1-spine2"
- - "MEDIA_s1-spine2_BGP"
- s1-leaf1:
- - "BASE_s1-leaf1"
- - "MEDIA_s1-leaf1_BGP"
- s1-leaf2:
- - "BASE_s1-leaf2"
- - "MEDIA_s1-leaf2_BGP"
- s1-leaf3:
- - "BASE_s1-leaf3"
- - "MEDIA_s1-leaf3_BGP"
- s1-leaf4:
- - "BASE_s1-leaf4"
- - "MEDIA_s1-leaf4_BGP"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- - "MEDIA_s1-host1"
- s1-host2:
- - "BASE_s1-host2"
- - "MEDIA_s1-host2"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
- media-mcast:
- s1-spine1:
- - "BASE_s1-spine1"
- - "MEDIA_s1-spine1_multicast"
- s1-spine2:
- - "BASE_s1-spine2"
- - "MEDIA_s1-spine2_multicast"
- s1-leaf1:
- - "BASE_s1-leaf1"
- - "MEDIA_s1-leaf1_multicast"
- s1-leaf2:
- - "BASE_s1-leaf2"
- - "MEDIA_s1-leaf2_multicast"
- s1-leaf3:
- - "BASE_s1-leaf3"
- - "MEDIA_s1-leaf3_multicast"
- s1-leaf4:
- - "BASE_s1-leaf4"
- - "MEDIA_s1-leaf4_multicast"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- - "MEDIA_s1-host1"
- s1-host2:
- - "BASE_s1-host2"
- - "MEDIA_s1-host2"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/menus/Troubleshooting.yaml b/topologies/dual-datacenter/files/menus/Troubleshooting.yaml
deleted file mode 100644
index 3432c85a2..000000000
--- a/topologies/dual-datacenter/files/menus/Troubleshooting.yaml
+++ /dev/null
@@ -1,121 +0,0 @@
----
-lab_list:
- tshoot-intro:
- description: "Troubleshooting Lab 1 (tshoot-intro)"
- tshoot-sp:
- description: "Troubleshooting Lab 2 (tshoot-sp)"
-labconfiglets:
- tshoot-intro:
- s1-spine1:
- - "BASE_s1-spine1"
- - "TSHOOT_s1-spine1_intro"
- s1-spine2:
- - "BASE_s1-spine2"
- - "TSHOOT_default"
- s1-leaf1:
- - "BASE_s1-leaf1"
- - "TSHOOT_s1-leaf1_intro"
- s1-leaf2:
- - "BASE_s1-leaf2"
- - "TSHOOT_s1-leaf2_intro"
- s1-leaf3:
- - "BASE_s1-leaf3"
- - "TSHOOT_default"
- s1-leaf4:
- - "BASE_s1-leaf4"
- - "TSHOOT_default"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- - "TSHOOT_s1-host1_intro"
- s1-host2:
- - "BASE_s1-host2"
- - "TSHOOT_s1-host2_intro"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
- tshoot-sp:
- s1-spine1:
- - "BASE_s1-spine1"
- - "TSHOOT_s1-spine1_sp"
- s1-spine2:
- - "BASE_s1-spine2"
- - "TSHOOT_s1-spine2_sp"
- s1-leaf1:
- - "BASE_s1-leaf1"
- - "TSHOOT_s1-leaf1_sp"
- s1-leaf2:
- - "BASE_s1-leaf2"
- - "TSHOOT_default"
- s1-leaf3:
- - "BASE_s1-leaf3"
- - "TSHOOT_default"
- s1-leaf4:
- - "BASE_s1-leaf4"
- - "TSHOOT_s1-leaf4_sp"
- s1-brdr1:
- - "BASE_s1-brdr1"
- s1-brdr2:
- - "BASE_s1-brdr2"
- s1-core1:
- - "BASE_s1-core1"
- s1-core2:
- - "BASE_s1-core2"
- s1-host1:
- - "BASE_s1-host1"
- - "TSHOOT_s1-host1_sp"
- s1-host2:
- - "BASE_s1-host2"
- - "TSHOOT_s1-host2_sp"
- s2-spine1:
- - "BASE_s2-spine1"
- s2-spine2:
- - "BASE_s2-spine2"
- s2-leaf1:
- - "BASE_s2-leaf1"
- s2-leaf2:
- - "BASE_s2-leaf2"
- s2-leaf3:
- - "BASE_s2-leaf3"
- s2-leaf4:
- - "BASE_s2-leaf4"
- s2-brdr1:
- - "BASE_s2-brdr1"
- s2-brdr2:
- - "BASE_s2-brdr2"
- s2-core1:
- - "BASE_s2-core1"
- s2-core2:
- - "BASE_s2-core2"
- s2-host1:
- - "BASE_s2-host1"
- s2-host2:
- - "BASE_s2-host2"
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/menus/default.yaml b/topologies/dual-datacenter/files/menus/default.yaml
deleted file mode 100644
index b831de997..000000000
--- a/topologies/dual-datacenter/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: Datacenter.yaml
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/modules/atd.css b/topologies/dual-datacenter/files/modules/atd.css
deleted file mode 100644
index edb46e7cf..000000000
--- a/topologies/dual-datacenter/files/modules/atd.css
+++ /dev/null
@@ -1,37 +0,0 @@
-body {
- width: 1000px;
- margin: auto;
- line-height:21px;
- font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
-}
-
-img {
- vertical-align: middle;
- border-style: none;
- width: 100%;
-}
-
-#content {
- width: 100%;
-}
-
-#content h4 {
- color:rgb(147,149,152);
-}
-
-.access {
- display: block;
- width: 100%;
- background-color: rgb(156, 207, 151);
- margin: 10px;
- padding: 10px;
- border-radius: 4px;
- border-style: none;
-}
-
-.detail {
- position: absolute;
- background-color: rgb(230, 230, 230);
- margin: 20px;
- padding: 5px;
-}
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/modules/index.html b/topologies/dual-datacenter/files/modules/index.html
deleted file mode 100644
index 3a31aeda8..000000000
--- a/topologies/dual-datacenter/files/modules/index.html
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
- Arista Test Drive | {{ MOD_NAME }}
- {% for script in JS %}
- {% raw script %}
- {% end %}
- {% for style in CSS %}
- {% raw style %}
- {% end %}
-
-
-
-
-
-
Arista Test Drive | {{ MOD_NAME }}
-
-
Click on the node for access:
-
-
-
To access the device, click on the device icon above:
-
-
-
- {% raw LABGUIDE %}
-
-
\ No newline at end of file
diff --git a/topologies/dual-datacenter/files/modules/modules.yaml b/topologies/dual-datacenter/files/modules/modules.yaml
deleted file mode 100644
index f6f2dacfd..000000000
--- a/topologies/dual-datacenter/files/modules/modules.yaml
+++ /dev/null
@@ -1,304 +0,0 @@
-ucn:
- mlag:
- name: "MLAG"
- image: "ucn-mlag.png"
- nodes:
- Spine1:
- coords: "130,56,234,105"
- ip: "192.168.0.10"
- Spine2:
- coords: "658,54,763,101"
- ip: "192.168.0.11"
- Leaf1:
- coords: "62,269,167,319"
- ip: "192.168.0.14"
- Leaf2:
- coords: "319,268,426,315"
- ip: "192.168.0.15"
- Leaf3:
- coords: "464,267,567,317"
- ip: "192.168.0.16"
- Leaf4:
- coords: "728,268,834,316"
- ip: "192.168.0.17"
- Host1:
- coords: "206,384,276,414"
- ip: "192.168.0.31"
- Host2:
- coords: "615,388,685,421"
- ip: "192.168.0.32"
- l3ls:
- name: "BGP"
- image: "ucn-l3ls.png"
- nodes:
- Spine1:
- coords: "106,29,218,83"
- ip: "192.168.0.10"
- Spine2:
- coords: "691,31,806,85"
- ip: "192.168.0.11"
- Leaf1:
- coords: "27,265,141,319"
- ip: "192.168.0.14"
- Leaf2:
- coords: "317,264,430,319"
- ip: "192.168.0.15"
- Leaf3:
- coords: "477,264,591,317"
- ip: "192.168.0.16"
- Leaf4:
- coords: "765,266,877,320"
- ip: "192.168.0.17"
- Host1:
- coords: "182,442,258,477"
- ip: "192.168.0.31"
- Host2:
- coords: "644,441,725,477"
- ip: "192.168.0.32"
- vxlan:
- name: "VxLAN"
- image: "ucn-vxlan.png"
- nodes:
- Spine1:
- coords: "96,29,208,83"
- ip: "192.168.0.10"
- Spine2:
- coords: "680,28,796,82"
- ip: "192.168.0.11"
- Leaf1:
- coords: "22,266,137,319"
- ip: "192.168.0.14"
- Leaf2:
- coords: "313,262,425,315"
- ip: "192.168.0.15"
- Leaf3:
- coords: "466,264,583,317"
- ip: "192.168.0.16"
- Leaf4:
- coords: "757,264,873,319"
- ip: "192.168.0.17"
- Host1:
- coords: "192,433,268,469"
- ip: "192.168.0.31"
- Host2:
- coords: "637,432,716,468"
- ip: "192.168.0.32"
- l2evpn:
- name: "Layer 2 EVPN"
- image: "ucn-l2evpn.png"
- nodes:
- Spine1:
- coords: "90,25,189,71"
- ip: "192.168.0.10"
- Spine2:
- coords: "594,25,691,71"
- ip: "192.168.0.11"
- Leaf1:
- coords: "26,227,127,274"
- ip: "192.168.0.14"
- Leaf3:
- coords: "411,226,511,273"
- ip: "192.168.0.16"
- Host1:
- coords: "173,373,241,404"
- ip: "192.168.0.31"
- Host2:
- coords: "555,370,624,400"
- ip: "192.168.0.32"
- l3evpn:
- name: "Layer 3 EVPN"
- image: "ucn-l3evpn.png"
- nodes:
- Spine1:
- coords: "92,24,187,72"
- ip: "192.168.0.10"
- Spine2:
- coords: "595,24,694,72"
- ip: "192.168.0.11"
- Leaf1:
- coords: "26,228,127,273"
- ip: "192.168.0.14"
- Leaf3:
- coords: "410,225,509,273"
- ip: "192.168.0.16"
- Host1:
- coords: "175,373,241,404"
- ip: "192.168.0.31"
- Host2:
- coords: "557,372,623,401"
- ip: "192.168.0.32"
-cvp:
- mlag:
- name: "MLAG"
- image: "cvp-mlag.png"
- nodes:
- Spine1:
- coords: "97,131,213,188"
- ip: "192.168.0.10"
- Spine2:
- coords: "687,128,803,183"
- ip: "192.168.0.11"
- Leaf1:
- coords: "19,371,136,427"
- ip: "192.168.0.14"
- Leaf2:
- coords: "310,368,427,424"
- ip: "192.168.0.15"
- Leaf3:
- coords: "470,370,586,423"
- ip: "192.168.0.16"
- Leaf4:
- coords: "767,368,883,425"
- ip: "192.168.0.17"
- Host1:
- coords: "181,499,261,535"
- ip: "192.168.0.31"
- Host2:
- coords: "640,505,721,543"
- ip: "192.168.0.32"
- CVP:
- coords: "381,17,525,106"
- ip: "192.168.0.5"
- l3ls:
- name: "BGP"
- image: "cvp-l3ls.png"
- nodes:
- Spine1:
- coords: "106,121,220,177"
- ip: "192.168.0.10"
- Spine2:
- coords: "691,122,806,179"
- ip: "192.168.0.11"
- Leaf1:
- coords: "25,358,139,413"
- ip: "192.168.0.14"
- Leaf2:
- coords: "316,358,427,412"
- ip: "192.168.0.15"
- Leaf3:
- coords: "477,354,591,410"
- ip: "192.168.0.16"
- Leaf4:
- coords: "764,358,880,412"
- ip: "192.168.0.17"
- Host1:
- coords: "181,535,263,571"
- ip: "192.168.0.31"
- Host2:
- coords: "645,533,723,570"
- ip: "192.168.0.32"
- CVP:
- coords: "382,17,520,103"
- ip: "192.168.0.5"
- vxlan:
- name: "VxLAN"
- image: "cvp-vxlan.png"
- nodes:
- Spine1:
- coords: "95,118,211,176"
- ip: "192.168.0.10"
- Spine2:
- coords: "680,121,797,175"
- ip: "192.168.0.11"
- Leaf1:
- coords: "21,354,136,411"
- ip: "192.168.0.14"
- Leaf2:
- coords: "311,354,425,410"
- ip: "192.168.0.15"
- Leaf3:
- coords: "467,354,582,408"
- ip: "192.168.0.16"
- Leaf4:
- coords: "757,357,872,412"
- ip: "192.168.0.17"
- Host1:
- coords: "192,525,268,561"
- ip: "192.168.0.31"
- Host2:
- coords: "637,524,718,559"
- ip: "192.168.0.32"
- CVP:
- coords: "377,17,519,104"
- ip: "192.168.0.5"
- l2evpn:
- name: "Layer 2 EVPN"
- image: "cvp-l2evpn.png"
- nodes:
- Spine1:
- coords: "92,102,189,150"
- ip: "192.168.0.10"
- Spine2:
- coords: "594,103,694,150"
- ip: "192.168.0.11"
- Leaf1:
- coords: "27,308,128,352"
- ip: "192.168.0.14"
- Leaf3:
- coords: "411,303,508,352"
- ip: "192.168.0.16"
- Host1:
- coords: "174,451,241,482"
- ip: "192.168.0.31"
- Host2:
- coords: "558,449,624,481"
- ip: "192.168.0.32"
- CVP:
- coords: "331,15,452,89"
- ip: "192.168.0.5"
- l3evpn:
- name: "Layer 3 EVPN"
- image: "cvp-l3evpn.png"
- nodes:
- Spine1:
- coords: "91,109,188,155"
- ip: "192.168.0.10"
- Spine2:
- coords: "590,107,688,155"
- ip: "192.168.0.11"
- Leaf1:
- coords: "27,311,124,356"
- ip: "192.168.0.14"
- Leaf3:
- coords: "407,310,505,354"
- ip: "192.168.0.16"
- Host1:
- coords: "172,454,236,485"
- ip: "192.168.0.31"
- Host2:
- coords: "553,453,619,483"
- ip: "192.168.0.32"
- CVP:
- coords: "331,15,451,90"
- ip: "192.168.0.5"
- cvp:
- name: "Cloud Vision Portal"
- image: "cvp-cvp.png"
- nodes:
- Spine1:
- coords: "229,68,316,110"
- ip: "192.168.0.10"
- Spine2:
- coords: "381,66,470,110"
- ip: "192.168.0.11"
- Leaf1:
- coords: "72,253,157,296"
- ip: "192.168.0.14"
- Leaf2:
- coords: "226,255,315,296"
- ip: "192.168.0.15"
- Leaf3:
- coords: "382,253,470,295"
- ip: "192.168.0.16"
- Leaf4:
- coords: "536,252,625,296"
- ip: "192.168.0.17"
- Host1:
- coords: "151,377,239,419"
- ip: "192.168.0.31"
- Host2:
- coords: "459,381,550,423"
- ip: "192.168.0.32"
- CVP:
- coords: "689,47,864,158"
- ip: "192.168.0.5"
diff --git a/topologies/dual-datacenter/labguides/.gitignore b/topologies/dual-datacenter/labguides/.gitignore
deleted file mode 100644
index 963080b75..000000000
--- a/topologies/dual-datacenter/labguides/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-.DS_Store
-build/
-_build/
diff --git a/topologies/dual-datacenter/labguides/Makefile b/topologies/dual-datacenter/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/dual-datacenter/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/dual-datacenter/labguides/readme.md b/topologies/dual-datacenter/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/dual-datacenter/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/dual-datacenter/labguides/source/_static/arista_logo.png b/topologies/dual-datacenter/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/dual-datacenter/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/_static/arista_logo_160by26.png b/topologies/dual-datacenter/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/dual-datacenter/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/_static/arista_logo_320by52.png b/topologies/dual-datacenter/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/dual-datacenter/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/_static/cloudvision-icon.png b/topologies/dual-datacenter/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/dual-datacenter/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/_static/logo.jpg b/topologies/dual-datacenter/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/dual-datacenter/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/_static/my-styles.css b/topologies/dual-datacenter/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/dual-datacenter/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/dual-datacenter/labguides/source/ansible_adhoc_and_simple_playbooks.rst b/topologies/dual-datacenter/labguides/source/ansible_adhoc_and_simple_playbooks.rst
deleted file mode 100644
index b9242a561..000000000
--- a/topologies/dual-datacenter/labguides/source/ansible_adhoc_and_simple_playbooks.rst
+++ /dev/null
@@ -1,211 +0,0 @@
-Ad Hoc and Simple Playbooks
-===========================
-
-For the final lab, we will be playing with Ansible - both ad-hoc
-(one-off) and playbooks.
-
-.. note:: While Ansible is one of the easiest automation platforms out
- there, it is impossible to fully teach how it works in a lab or two
- in the course of a day. If you are interested in experimenting in
- this lab more, please let your SE know and they can provide you
- additional access after the event is completed.
-
- For some good reading, we recommend browsing the \ `Ansible
- website `__\.
-
-Ad-Hoc Commands
----------------
-
-The first part of the lab will show you how to issue ad-hoc commands to
-your lab switch. An ad-hoc command is essentially a one-off command;
-something you might issue once, but not ever need to repeat again.
-
-While this is handy, the real power of Ansible comes from using
-orchestrated playbooks.
-
-Before you run your first Ansible ad-hoc command, we’ll need to create a
-hosts file. Open VS Code by clicking on **Programmability IDE**, and create a new file and save it to
-the **labfiles** directory with the filename ``hosts``.
-
-.. code-block:: ini
-
- [veos]
- 192.168.0.12
-
-This is an Ansible hosts file - you might recognize it as INI formatted!
-The top bracketed entry is a group, and the entry below it is a host.
-Save the file to your project directory.
-
-Now, let’s run an ad-hoc command. Open up your handy terminal window,
-and enter:
-
-.. code-block:: bash
-
- ansible veos -i labfiles/hosts -m raw -a "show version" -u arista -k
-
-
-Enter the password **{REPLACE_PWD}** when prompted.
-
-This probably looks complicated at first, but let’s step through it:
-
-.. cssclass:: table-hover
-
-+-----------------------------------+-----------------------------------+
-| **Command** | **Description** |
-+-----------------------------------+-----------------------------------+
-| ``ansible`` | The command, duh! |
-+-----------------------------------+-----------------------------------+
-| ``veos`` | The group of hosts to run |
-| | against. Notice the [veos] from |
-| | your hosts file. If there were |
-| | more than one entry here, it |
-| | would run against more than one |
-| | host (unless you specify in |
-| | playbook to do otherwise). |
-+-----------------------------------+-----------------------------------+
-| ``-i labfiles/hosts`` | Reads from the hosts file you |
-| | created. There are locations that |
-| | Ansible will look for this file |
-| | by default, but for this lab |
-| | we’re specifying one. |
-+-----------------------------------+-----------------------------------+
-| ``-m raw`` | Uses the Ansible raw SSH module |
-| | to connect to the switch |
-+-----------------------------------+-----------------------------------+
-| ``-a "show version"`` | The ad hoc command to run, in |
-| | this case ``show version``. |
-+-----------------------------------+-----------------------------------+
-| ``-u arista`` | Username ``arista`` - this can |
-| | be SSHkey based or saved |
-| | in another location |
-+-----------------------------------+-----------------------------------+
-| ``-k`` | Prompt for password - this can be |
-| | SSH key based or saved in another |
-| | location |
-+-----------------------------------+-----------------------------------+
-
-Looks a lot harder than it is, but either way when your hosts file has
-100 devices in it adding a VLAN becomes a lot easier!
-
-Playbook
---------
-
-For simplicity's sake, for this lab we have uploaded the required files
-for this lab to your lab machine. You will find them on the desktop in
-the ``lab4`` folder under ``labfiles``.
-
-Double click on the ``lab4-advanced-playbook.yml`` and let’s dive into what
-it’s doing:
-
-.. cssclass:: table-hover
-
-+-----------------------------------+--------------------------------------+
-| **Command** | **Description** |
-+-----------------------------------+--------------------------------------+
-| ``---`` | The standard beginning of an |
-| | Ansible playbook |
-+-----------------------------------+--------------------------------------+
-| ``- name: Add a VLAN`` | Names the task. This will be |
-| | displayed at runtime. |
-+-----------------------------------+--------------------------------------+
-| ``hosts: 192.168.0.14`` | Defines the host(s) to run |
-| | against. This is currently set to |
-| | one host, but could be a group! |
-+-----------------------------------+--------------------------------------+
-| ``gather_facts: no`` | Don’t gather information about |
-| | the device, just run the command. |
-| | We do this for speed, but you may |
-| | need to use it for some things |
-+-----------------------------------+--------------------------------------+
-| ``connection: local`` | Sets the task to run from the |
-| | local machine |
-+-----------------------------------+--------------------------------------+
-| ``vars:`` | Defines a variable section |
-+-----------------------------------+--------------------------------------+
-| ``provider:`` | Defines a provider section |
-+-----------------------------------+--------------------------------------+
-| ``host: "{{ ansible_host }}"``| Sets the host to run against as |
-| | an Ansible canned variable |
-| | of ``ansible_host``. This will key |
-| | off ``hosts`` above. Note that |
-| | Ansible variables use {{ curly |
-| | brackets }} |
-+-----------------------------------+--------------------------------------+
-| ``username: "arista"`` | Sets the username to ``arista`` |
-+-----------------------------------+--------------------------------------+
-| ``password: "{REPLACE_PWD}"`` | Sets the password to ``{REPLACE_PWD}`` |
-+-----------------------------------+--------------------------------------+
-| ``authorize: yes`` | Enables once connected |
-+-----------------------------------+--------------------------------------+
-| ``transport: eapi`` | Uses eAPI instead of the SSH. You |
-| | can do either |
-+-----------------------------------+--------------------------------------+
-| ``validate_certs: no`` | Don’t validate SSL certificates |
-+-----------------------------------+--------------------------------------+
-| ``tasks:`` | Begins the ``tasks`` section |
-+-----------------------------------+--------------------------------------+
-| ``- eos_config:`` | Tells Ansible to use |
-| | the \ `eos_config module |
-| | `__\ |
-+-----------------------------------+--------------------------------------+
-| ``lines:`` | Per the ``eos_config`` module, |
-| | define the configuration lines to |
-| | be issued to the switch. There can |
-| | be more than one! |
-+-----------------------------------+--------------------------------------+
-| ``- name foo`` | The actual line to issue. Note |
-| | that it starts with a -. The next |
-| | line would start with another - |
-+-----------------------------------+--------------------------------------+
-| ``parents: vlan 500`` | The parent of the lines above. |
-| | This is important for things like |
-| | interfaces or VLANs. There is |
-| | always a parent above them |
-+-----------------------------------+--------------------------------------+
-| ``provider: "{{ provider | Specifies the provider |
-| }}"`` | (connection information). This is |
-| | also a variable, and it keys in |
-| | on the provider section above |
-+-----------------------------------+--------------------------------------+
-
-For all if of its lines, all this Ansible file is really doing is
-creating a vlan named ``foo`` with an ID of ``500``. Note that while this is just
-adding it to a single device, you could use this to add it to every
-switch in your fleet!
-
-First we will need to update the ``password`` value in the ``provider`` section.
-
-Replace ``password: arista`` with ``password: {REPLACE_PWD}``
-
-Then save the file.
-
-Let’s go ahead and run it. Open up a Terminal window and type the
-following and hit **Enter**:
-
-.. code-block:: html
-
- ansible-playbook -i labfiles/lab4/lab4-advanced-hosts labfiles/lab4/lab4-advanced-playbook.yml
-
-It’ll look like this when it’s run:
-
-.. image:: images/ansible_adhoc/nested_adhoc_1.png
- :align: center
-
-Note that it says ok=1 **changed=1**. This is telling you that it ran
-successfully and made a change. Now, you can either take our word for
-it, or log into the switch and verify the VLAN is there!
-
-Run it one more time. Notice how it just says ok=1 - this is because the
-configuration is already there and nothing needs to be changed.
-Idempotency at its finest - neat right?
-
-Bonus
------
-
-Create a new playbook (or alter the one you have) that creates a new
-VLAN and then adds it to ``interface Ethernet2`` as ``switchport access vlan``.
-
-.. note:: Check out the Ansible eos_config module \ `documentation `__\ .
diff --git a/topologies/dual-datacenter/labguides/source/ansible_and_jinja_templates.rst b/topologies/dual-datacenter/labguides/source/ansible_and_jinja_templates.rst
deleted file mode 100644
index c5fbefe71..000000000
--- a/topologies/dual-datacenter/labguides/source/ansible_and_jinja_templates.rst
+++ /dev/null
@@ -1,256 +0,0 @@
-Ansible and Jinja Templates
-===========================
-
-As you might imagine, writing Ansible playbooks that issue command after
-command to configure all 48+ interfaces on a switch can be extremely
-tedious. Enter our
-friend \ `Jinja `__\ .
-Jinja is a Python-based templating engine that works with Ansible out of
-the box.
-
-Jinja templates take variables from Ansible and then output text. To
-make an analogy, it’s a mail merge for configuration.
-
-.. note:: Jinja isn’t just used for templates in Ansible. Ansible uses Jinja for filters, tests, and other functions as well!
-
-A single command
-----------------
-
-Jinja and Ansible use cases range from single line configuration to
-intricate for loops. Let’s start with a single line template for now.
-Note that even though Ansible can handle single commands as shown above
-natively, there will be times when you will develop a single template
-that is comprised of both single commands and for loops.
-
-.. warning:: Please do not start writing this script until you get to the
- next section
-
-We’re going to create a Jinja template to configure an NTP server with
-the following in it:
-
-.. code-block:: html
-
- ntp server {{ ntp.host }}
-
-Once run, Jinja will grab the defined Ansible variable ``host`` under
-the ``ntp`` section:
-
-.. code-block:: yaml
-
- ntp:
- host: 192.168.0.1
-
-Once it finds the variable, it will generate the following:
-
-.. code-block:: html
-
- ntp server 192.168.0.1
-
-We’ll be calling this with the same Ansible module as above
-(``eos_config``), but this time we’ll be using the ``src`` parameter to pass a
-Jinja template instead of ``lines`` and ``parents`` like we did in lab #4.
-
-Write it
-~~~~~~~~
-
-We’re going to create 3 files for this lab in the **IDE**. Once you have created
-them, save them to your **project** directory.
-
-#. A hosts file named ``labhosts``, though you can reuse the one you created
- earlier
-#. A Jinja2 template named ``ntp.j2``
-#. An Ansible playbook named ``ntp.yml``
-
-.. note:: Save these files to path: ``/home/coder/project/labfiles``
-
-Hosts file (``labhosts``):
-
-.. code-block:: html
-
- [veos]
- 192.168.0.12
-
-Jinja2 template (``ntp.j2``):
-
-.. code-block:: html
-
- ntp server {{ ntp.host }} source Management1
-
-Ansible playbook (``ntp.yml``):
-
-.. code-block:: yaml
-
- ---
- - name: Add a NTP server
- hosts: veos
- gather_facts: no
- connection: local
- vars:
- provider:
- host: "{{ ansible_host }}"
- username: "arista"
- password: "{REPLACE_PWD}"
- authorize: yes
- transport: eapi
- validate_certs: no
- ntp:
- host: 192.168.0.1
- tasks:
- - eos_config:
- src: ntp.j2
- provider: "{{ provider }}"
-
-
-See how we’ve moved from having` `lines`` and ``parents`` in lab #4 to ``src`` to
-indicate we’re going to use a Jinja template? Fancy!
-
-Run it
-~~~~~~
-
-Assuming that you’ve saved the files to the labfiles directory, let’s run it with
-the following command:
-
-.. code-block:: html
-
- ansible-playbook -i labfiles/labhosts labfiles/ntp.yml
-
-If all goes to plan, you will see ok=1 **changed=1**. If you were to run it
-again, it will show ok=1 **changed=0**. Idempotency strikes again! Feel free
-to check **s1-Leaf1** to make sure the changes are there.
-
-.. image:: images/ansible_adhoc/nested_adhoc_2.png
- :align: center
-
-For Loops
----------
-
-Now it’s time for something a little bit more useful - Jinja
-template ``for`` loops. A ``for`` loop allows you to iterate through a template
-and generate configuration until it reaches the end. In this lab, we’re
-going to create a loop that sets the interface description on every
-port.
-
-This is a relatively benign example so that we can keep your lab
-switches operational for other labs, but this could easily be the entire
-switch - or switch port - configuration.
-
-Let’s look at the Jinja template formatting:
-
-.. code-block:: jinja
-
- {% for intf in interfaces %}
- interface {{ intf.name }}
- description {{ intf.description }}
- {% endfor %}
-
-This template is similar to any other language for loop - for arbitrary
-value ``intf`` in a list of variables named ``interfaces``, configure
-the ``name`` variable for that interface, with a description of
-the ``description`` variable. Jinja templates must have the same
-indentation as a live switch configuration. EOS devices utilize
-3 spaces for indentations.
-
-Clear as mud? Maybe this variables file will help tie it together:
-
-.. code-block:: yaml
-
- interfaces:
- - name: Ethernet1
- description: s1-leaf2.atd.lab
- - name: Ethernet2
- description: s1-spine1.atd.lab
- - name: Ethernet3
- description: s1-spine2.atd.lab
- - name: Ethernet4
- description: s1-host1
- - name: Ethernet6
- description: s1-leaf2.atd.lab
-
-Once you run the template above, it’ll generate the following
-configuration:
-
-.. code-block:: html
-
- interface Ethernet1
- description s1-leaf2.atd.lab
- interface Ethernet2
- description s1-spine1.atd.lab
- interface Ethernet3
- description s1-spine2.atd.lab
- interface Ethernet4
- description s1-host1.atd.lab
- interface Ethernet6
- description s1-leaf2.atd.lab
-
-Write it
-~~~~~~~~
-
-We will reuse the hosts file from the last lab, so let’s start by
-creating a Jinja template in the **IDE** on in your project directory named **interfaces.j2**:
-
-.. warning:: Please make absolutely certain that keep the proper spacing in the Jinja template, or Ansible will fail.
- Jinja, like Ansible, is reliant on indentation.
-
-|
-
-.. code-block:: jinja
-
- {% for intf in interfaces %}
- interface {{ intf.name }}
- description {{ intf.description }}
- {% endfor %}
-
-Now let’s create the playbook named ``interfaces.yml``:
-
-.. code-block:: yaml
-
- ---
- - name: Add interface descriptions
- hosts: veos
- gather_facts: no
- connection: local
- vars:
- provider:
- host: "{{ ansible_host }}"
- username: "arista"
- password: "{REPLACE_PWD}"
- authorize: yes
- transport: eapi
- validate_certs: no
- interfaces:
- - name: Ethernet1
- description: s1-leaf2.atd.lab
- - name: Ethernet2
- description: s1-spine1.atd.lab
- - name: Ethernet3
- description: s1-spine2.atd.lab
- - name: Ethernet4
- description: s1-host1.atd.lab
- - name: Ethernet6
- description: s1-leaf2.atd.lab
- tasks:
- - eos_config:
- src: interfaces.j2
- provider: "{{ provider }}"
-
-Run it
-~~~~~~
-
-Let’s run it. We’re going to reuse the hosts file created in the last
-lab.
-
-.. code-block:: bash
-
- ansible-playbook -i labfiles/labhosts labfiles/interfaces.yml
-
-You should see ok=1 **changed=1**. If you were to run it again, it will
-show ok=1 changed=0.
-
-Log into Leaf1 (192.168.0.12) and run ``show interface status`` to see the
-interface names.
-
-Bonus
------
-
-Modify the **For Loops** lab to add the interface name to the interface
-description.
diff --git a/topologies/dual-datacenter/labguides/source/command_api.rst b/topologies/dual-datacenter/labguides/source/command_api.rst
deleted file mode 100644
index 094cc6a10..000000000
--- a/topologies/dual-datacenter/labguides/source/command_api.rst
+++ /dev/null
@@ -1,87 +0,0 @@
-Command API
-===========
-
-The first lab will demonstrate the on-switch Command API explorer
-feature. The Command API provides an interface to experiment with
-commands and view their request and response structure without having to
-write a script or program to test it with.
-
-Connect to the **WebUI** service by clicking on the already open tab, or clicking on the **WebUI** link on the topology landing page.
-
-.. image:: images/command_api/nested_connecting_1.png
- :align: center
-|
-This will launch a **Firefox** instance in your browser located in your topology, not your laptop. Once logged in to access Firefox, to access the switch's Command API, type should automatically connect to the demo
-switch’s Command API. If it doesn’t, log onto the switch enter the below address into Firefox.
-HTTPS: ``https://192.168.0.12``
-
-.. image:: images/command_api/nested_firefox_1.png
- :align: center
-
-When prompted, enter in the username ``arista`` and ``{REPLACE_PWD}`` as the password.
-Accept the self-signed SSL certificate, please do so.
-
-You will be greeted with the following window:
-
-.. image:: images/command_api/nested_firefox_2.png
- :align: center
-
-Get familiar with the interface. Try entering in ``show interfaces`` and
-clicking **Submit POST** request. Note that it requires the full command to
-work properly; shorthand commands, such as ``sh int`` do not work. Any API
-action is the same way.
-
-.. note:: Technically, you can use the AutoComplete command to use shorthand, but it’s a good practice to use long form. When writing
- code it’s always important to think about the next person to look at it!
-
-When you successfully issue a command, notice what the response looks
-like:
-
-.. image:: images/command_api/commandapi_4.png
- :align: center
-
-The format above is in JSON (JavaScript Object Notation). Every line has
-a *key*, and a *value*. This is why JSON is nice to use; it’s easy to
-reference and use key/value pairs. We will play with this more in the
-next lab.
-
-Now try to issue a configuration command. Try:
-
-.. code-block:: html
-
- vlan 1000
- name test
-
-Hit **Submit POST Request**.
-
-What does the response viewer say? Note there’s an error, in this
-case ``"message": "CLI command 1 of 2 'vlan 1000' failed: invalid command"``
-
-If you were to log into the switch right now and issue that command without using an API, what would cause this?
-
-Now try it with the following:
-
-.. code-block:: html
-
- configure
- vlan 1000
- name test
-
-Just like if you were to login to a switch and issue those commands
-normally, the same applies here. The response indicates a success now.
-
-Log into your switch, with a ssh session, or by leveraging the opened tab for the **Console Access** service.
-
-To get to the ssh menu, type in the menu option **ssh** and press Enter. Next we will connect to **leaf1**, by typing **leaf1** in the menu.
-
-When prompted, enter the arista user's password: ``{REPLACE_PWD}``
-
-Now type ``show run sec vlan`` to observe that the VLAN is present:
-
-.. image:: images/command_api/nested_eos_1.png
- :align: center
-
-.. note:: To exit out of the EOS CLI, simply type ``exit`` and you will return the ssh menu.
-
-Play around some more if you’d like! Check out the **Overview** and **Command Documentation**
-tabs. Also, this is running on a virtual edition of our switch, so you can also do this at home or in your work lab!
diff --git a/topologies/dual-datacenter/labguides/source/conf.py b/topologies/dual-datacenter/labguides/source/conf.py
deleted file mode 100644
index 8dfa38306..000000000
--- a/topologies/dual-datacenter/labguides/source/conf.py
+++ /dev/null
@@ -1,250 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# Add extensions
-extensions = ['sphinx_copybutton', 'sphinxcontrib.images']
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/dual-datacenter/labguides/source/connecting.rst b/topologies/dual-datacenter/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/dual-datacenter/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/dual-datacenter/labguides/source/cvp-l2evpn.rst b/topologies/dual-datacenter/labguides/source/cvp-l2evpn.rst
deleted file mode 100644
index a30cca1a6..000000000
--- a/topologies/dual-datacenter/labguides/source/cvp-l2evpn.rst
+++ /dev/null
@@ -1,485 +0,0 @@
-.. # define a hard line break for HTML
-.. |br| raw:: html
-
-
-
-L2 EVPN
-=======
-
-1. Log into CloudVision and find **leaf3** on the **Devices** page
-
-* The username to access CloudVision is ``arista`` and the password is ``{REPLACE_PWD}``
-
-* Search for ``leaf3`` in the **Device** column of the **inventory** table.
-
-.. image:: images/cvp-l2vpn/leaf3-inventory-table.png
- :align: center
- :width: 50 %
-|br|
-
-* Click on **leaf3**
-|br|
-
-2. Review the current **running-config** routing agent information in CVP
-
-* Click on **Running Config** in the left selection column under **Device Overview**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-running-config.png
- :align: center
- :width: 50%
-|br|
-
-* Verify that ``service routing protocols model multi-agent`` line is in the current **running-config**
-|br|
-
-3. Review the current VXLAN information in CVP
-
-* Click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-pre.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** leaf3 currently has no VXLAN configuration
-
-* Click on **Topology** in the navigation bar at the top of the page
-* Click the **Link Overlay** dropdown in the left selection column
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-before.png
- :align: center
- :width: 50%
-|br|
-
-* Click the **VXLANs** selection, also click and view the **VLANs** selection
-* **Note:** You should see VLAN 1 on ``leaf3`` & ``leaf1``
-* **Note:** You should not see VLAN 12 or VNI 1200 as a dashed line from ``leaf3`` to other leaf switches
-|br|
-
-4. Create the EVPN L2VPN configlet
-
-* Click on **Provisioning**, click on **Configlets** in the left selection column
-* Click the **+** sign in the Configlets list toolbar
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-list.png
- :align: center
- :width: 50%
-|br|
-
-* Create a configlet called ``Leaf3-l2vpn-Lab-Full-user``
-
-.. code-block:: text
-
- !! Configure physical interface et4 for LACP and Port-Channel4 in access vlan 12
- interface Port-Channel4
- switchport mode access
- switchport access vlan 12
- !
- interface Ethernet1
- shutdown
- !
- !! Configure interface et2 as a p2p leaf to spine L3 link
- interface Ethernet2
- no switchport
- ip address 172.16.200.10/30
- !
- !! Configure interface et3 as a p2p leaf to spine L3 link
- interface Ethernet3
- no switchport
- ip address 172.16.200.26/30
- !
- !! Configure physical interface et4 for LACP (active) in Port-Channel4
- interface Ethernet4
- channel-group 4 mode active
- lacp timer fast
- !
- interface Ethernet5
- shutdown
- !
- !! Configure loopback0 interface for use with routing protocol (BGP)
- interface Loopback0
- ip address 172.16.0.5/32
- !
- !! Configure loopback1 interface for use as the VTEP IP interface
- interface Loopback1
- ip address 3.3.3.3/32
- ip address 99.99.99.99/32 secondary
- !
-
- !! Configure routing protocol BGP Underlay
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- !! Configure routing protocol BGP overlay
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- redistribute connected
- !
- !! Enable address family evpn for the SPINE-EVPN-TRANSIT peer group
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- !! Disable address family ipv4 on SPINE-EVPN-TRANSIT peer group
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-* Add the CLI text from above to the new configlet
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet.png
- :align: center
- :width: 50%
-|br|
-
-* Validate configlet syntax on ``leaf3``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-validate.png
- :align: center
- :width: 50%
-|br|
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-validate2.png
- :align: center
- :width: 50%
-|br|
-
-5. Assign the EVPN configlet to ``leaf3``
-
-* Click on **Provisioning**, then click on **Network Provisioning** in the left selection column
-* Right click on **leaf3**, Click on **Manage->Configlets** and then search for ``Leaf3-l2vpn``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-manage.png
- :align: center
- :width: 50%
-|br|
-
-* Click the checkbox next to ``Leaf3-l2vpn-Lab-Full-user``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-assign.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Validate**, review the new lines added to the **Designed Configuration**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-assign-validate.png
- :align: center
- :width: 35%
-|br|
-
-* click **Save**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-assign-validate-compare.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Save** on the **Network Provisioning** main view
-
-* **Note:** a Task will be generated
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-configlet-main-save.png
- :align: center
- :width: 50%
-|br|
-
-6. Create a **Change Control** with the generated Task
-
-* Click **Tasks** from the left selection column
-
-* Click the checkbox next to the generated task from the pool of **Assignable Tasks**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-task.png
- :align: center
- :width: 50%
-|br|
-
-* Click **+ Create Change Control with 1 Task**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-create-cc.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Review and Approve** on the newly created **Change Control**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-review-approve.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Execute Change Control** in upper right of the UI
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-execute.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Execute** in the resulting confirmation dialog box
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-cc-execute-confirm.png
- :align: center
- :width: 50%
-|br|
-
-7. Verify the EVPN BGP protocol overlay
-
-* **Note:** This verification step can also be done on the CLI of ``leaf3``
-* Click **Provisioning**, then click **Snapshot Configuration**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-config.png
- :align: center
- :width: 50%
-|br|
-
-* Click **or create a new configuration** in the center of the **Snapshot Configuration** screen
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-config-new.png
- :align: center
- :width: 50%
-|br|
-
-
-* Under **Snapshot Configuration** enter ``ip-bgp-evpn-summary`` under Name
-* In the **Commands** dialog enter the following commands
-
-.. code-block:: text
-
- show bgp evpn summary
- show ip bgp summary
- show ip route bgp
-
-* Under devices, select ``leaf3``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-config-content.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Save**
-
-* Click **Devices**, then click **leaf3**
-* Click **Snapshots** in the left selection column
-* Click **ip-bgp-evpn-summary**
-* **Note:** Under ``show bgp evpn summary`` you should see that there are two **overlay** BGP peers, peered with the loopback0 interface IP address
-* **Note:** Under ``show ip bgp summary`` you should see that there are two **underlay** BGP peers, peered with the p2p interfaces (Et2 & Et3) IP addresses
-* **Note:** Under ``show ip route bgp`` you should see that there are a number of ECMP routes to networks via the p2p interfaces (ET2 & ET3) of the peers
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-ip-bgp-evpn-summary.png
- :align: center
- :width: 50%
-|br|
-
-8. Add the L2VPN VXLAN configuration to the previously created configlet ``Leaf3-l2vpn-Lab-Full-user``
-
-* Click **Provisioning**, then click **Configlets**
-* Search for ``l2vpn`` then click **Leaf3-l2vpn-Lab-Full-user**
-* Click the **edit** button and add the following configuration lines in **bold** below, to the configlet created in step (4.)
-* **Note:** For simplicity add the new lines in the same position and order as they appear in **bold** below
-* **Note:** This step will add an L2VPN to ``leaf3`` to extend VLAN 12 using VXLAN from ``leaf3`` to ``leaf1``
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-edit-configlet.png
- :align: center
- :width: 50%
-|br|
-
-
-.. raw:: html
-
-
- !! Configure physical interface et4 for LACP and Port-Channel4 in access vlan 12
- interface Port-Channel4
- switchport mode access
- switchport access vlan 12
- !
- interface Ethernet1
- shutdown
- !
- !! Configure interface et2 as a p2p leaf to spine L3 link
- interface Ethernet2
- no switchport
- ip address 172.16.200.10/30
- !
- !! Configure interface et3 as a p2p leaf to spine L3 link
- interface Ethernet3
- no switchport
- ip address 172.16.200.26/30
- !
- !! Configure physical interface et4 for LACP (active) in Port-Channel4
- interface Ethernet4
- channel-group 4 mode active
- lacp timer fast
- !
- interface Ethernet5
- shutdown
- !
- !! Configure loopback0 interface for use with routing protocol (BGP)
- interface Loopback0
- ip address 172.16.0.5/32
- !
- !! Configure loopback1 interface for use as the VTEP IP interface
- interface Loopback1
- ip address 3.3.3.3/32
- ip address 99.99.99.99/32 secondary
- !
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1200
- !
- !! Configure routing protocol BGP Underlay
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- !! Configure routing protocol BGP overlay
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT next-hop-unchanged
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community extended
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- redistribute connected
- !
- vlan 12
- rd 3.3.3.3:12
- route-target both 1:12
- redistribute learned
- !
- !! Enable address family evpn for the SPINE-EVPN-TRANSIT peer group
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- !! Disable address family ipv4 on SPINE-EVPN-TRANSIT peer group
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-
-* Repeat the process described in step (6.) to push the additional configuration to ``leaf3``
-|br|
-
-9. Verify l2vpn VXLAN operation with CVP Telemetry
-
-* Using the method described in step (7.), create a new snapshot called ``vxlan-info``
-
- **Note:** This verification can also be done on the CLI of ``leaf1`` and ``leaf3``
-
-* Select ``leaf1`` and ``leaf3`` under the **Devices** dropdown of the new Snapshot configuration
-
-* Add the following commands to the **Commands** field of the new snapshot
-
-.. code-block:: text
-
- show bgp evpn route-type imet
- show bgp evpn route-type mac-ip
- show vxlan address-table
-
-* Wait 5-10 minutes you will see the snapshot data populated
-
- **Note:** wait for the snapshot to run and until after you ping from ``host1`` to ``host2`` before viewing this snapshot
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-snapshot-vxlan-info.png
- :align: center
- :width: 50%
-|br|
-
-* From **Device** page **Inventory** click on **leaf3**
-* Click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** you should now see the VLANs to VNI mappings related the to VXLAN configuration on ``leaf3``
-
-* Ping ``host1`` from ``host2``
-
-.. code-block:: text
-
- host1# ping 172.16.112.201
- PING 172.16.112.201 (172.16.112.201) 72(100) bytes of data.
- 80 bytes from 172.16.112.201: icmp_seq=1 ttl=64 time=0.248 ms
- 80 bytes from 172.16.112.201: icmp_seq=2 ttl=64 time=0.165 ms
- 80 bytes from 172.16.112.201: icmp_seq=3 ttl=64 time=0.181 ms
- 80 bytes from 172.16.112.201: icmp_seq=4 ttl=64 time=0.150 ms
- 80 bytes from 172.16.112.201: icmp_seq=5 ttl=64 time=0.146 ms
-
- --- 172.16.112.201 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 1ms
- rtt min/avg/max/mdev = 0.146/0.178/0.248/0.037 ms, ipg/ewma 0.421/0.211 ms
- host1#
-
-* Again, click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification-mac.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** In addition to the VLAN to VNI Mappings, you will see an entry in the ``VXLAN MAC Address Table`` section
-
-* Click on the **MAC Address Table** for ``leaf3`` in left selection column
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-verification-mac-table.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** You will see the local MAC Address of Host2 on Port-Channel 4 and the remote MAC Address of Host1 via port ``Vxlan1``
-
-* Review the snapshot ``vxlan-info`` created earlier in step (9.)
-* **Note:** ``show bgp evpn route-type imet`` will show the VXLAN flood lists dynamically built and distributed by BGP EVPN
-* **Note:** ``show bgp evpn route-type mac-ip`` will show the VXLAN mac to IP bindings being sent via BGP EVPN
-* **Note:** ``show vxlan address-table`` will show the VLAN, MAC Address and VXLAN interface and remote VTEP IP
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-info-snapshot.png
- :align: center
- :width: 50%
-|br|
-
-* Click on **Topology View**
-* Click the **Link Overlay** dropdown in the left selection column
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-before.png
- :align: center
- :width: 50%
-|br|
-
-* Click the **VXLANs** selection, also click and view the **VLANs** selection
-* **Note:** You should see VLAN 12 on ``leaf3`` & ``leaf1``
-* **Note:** You should see that ``leaf3`` has both VLAN 12 and VNI 1200 with a dashed line to ``leaf1``
-* **Note:** You should **now** see VLAN 12 and VNI 1200 as a dashed line from leaf3 to leaf1, indicating VLAN 12 is extended via VNI 1200
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-vlan-after.png
- :align: center
- :width: 50%
-|br|
-
-.. image:: images/cvp-l2vpn/leaf3-l2vpn-vxlan-vni-after.png
- :align: center
- :width: 50%
-|br|
-
-**LAB COMPLETE!**
diff --git a/topologies/dual-datacenter/labguides/source/cvp-l3ls.rst b/topologies/dual-datacenter/labguides/source/cvp-l3ls.rst
deleted file mode 100644
index 016c0c45a..000000000
--- a/topologies/dual-datacenter/labguides/source/cvp-l3ls.rst
+++ /dev/null
@@ -1,162 +0,0 @@
-Layer 3 Leaf-Spine
-==================
-
-.. note:: For more details on the configuration we will apply to Leaf4, check out the UCN MLAG Lab.
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. Log into CloudVision and find Leaf4 on the **Devices** page.
-
- 1. The username to access CloudVision is ``arista`` and the password is ``{REPLACE_PWD}``
-
- 2. Search for ``leaf4`` in the **Device** column of the inventory table.
-
- .. image:: images/cvp-l3ls/leaf4-inventory-table.png
- :align: center
- :width: 50 %
-
- 3. Click on **leaf4**.
-
-2. Click on the **BGP** section on the left side navigation bar.
-
- 1. Here we can see details for the BGP state of leaf4.
-
- .. image:: images/cvp-l3ls/leaf4-bgp-overview-pre.png
- :align: center
- :width: 50 %
-
- 2. Notice that BGP does not appear to be configured on leaf4.
-
- 3. Switch to **spine1** to see the status of spine1's BGP configuration.
-
- .. image:: images/cvp-l3ls/spine1-bgp-overview-pre.png
- :align: center
- :width: 50 %
-
- 3. See that there is 1 unestablished peer and we can see the details for that attempted neighborship in the table.
-
- 4. View these details for **spine2** as well.
-
-3. Click **Metrics** at the top of the page
-
- 1. In this section of CloudVision, users can create custom Dashboards to refer to particular telemetry data they find noteworthy.
-
- 2. Click **create a new dashboard**.
-
- 3. In the view builder on the left, select the values for each dropdown as listed below:
-
- .. .. table::
- :widths: auto
- :align: center
-
- ============== =========================
- Dashboard View
- -----------------------------------------
- View Mode Table
- Metric Type Devices
- Metrics BGP
- - Established Peers
- - Unestablished Peers
- - Learned Paths
- - AS Number
- - Router-ID
- Devices - leaf1
- - leaf2
- - leaf3
- - leaf4
- - spine1
- - spine2
- ============== =========================
-
- .. image:: images/cvp-l3ls/bgp-dashboard-setup.png
- :align: center
- :width: 50 %
-
- 4. Click **Save Dashboard** in the bottom left corner.
-
- 5. If prompted to name the dashboard, give a name and click **Save**.
-
- 6. Now there is a dashboard that displays BGP information for all switches in our leaf-spine network in one place.
-
-4. Configure BGP on leaf4.
-
- 1. Click **Provisioning** at the top of the page.
-
- 2. Find **leaf4**, right click on it, and click **Manage -> Configlet**.
-
- .. image:: images/cvp-l3ls/leaf4-manage-configlet.png
- :align: center
- :width: 50 %
-
- 3. Search for ``Leaf4-BGP-Lab-Full`` in the search bar, select the configlet, and click **Validate**.
-
- .. image:: images/cvp-l3ls/leaf4-add-bgp-configlet.png
- :align: center
- :width: 50 %
-
- 4. Validate the Designed Configuration created by CloudVision from the Proposed Configlets against Leaf4's running configuration and click **Save**.
-
- .. image:: images/cvp-l3ls/leaf4-validate-bgp-configlet.png
- :align: center
- :width: 50 %
-
- 5. There should now be a temporary action for leaf4 indicated by the green outline around leaf4. Click **Save**.
-
- .. image:: images/cvp-l3ls/leaf4-pending-task.png
- :align: center
- :width: 50 %
-
- 6. A task should have been created. Click **Tasks** on the left side to navigate to the **Tasks** page.
-
- 7. Check the assignable task for leaf4 and click **Create Change Control with 1 Task**.
-
- .. image:: images/cvp-l3ls/bgp-create-cc.png
- :align: center
- :width: 50 %
-
- 8. At this point, you should be on the Change Control page. Click **Review and Approve** towards the upper right corner to view the effects of each task in the change control.
-
- .. image:: images/cvp-l3ls/bgp-cc-page.png
- :align: center
- :width: 50 %
-
- 9. Review the changes you are about to push and click **Approve** in the bottom right corner of the window.
-
- .. image:: images/cvp-l3ls/bgp-review-and-approve.png
- :align: center
- :width: 50 %
-
- 10. The **Review and Approve** button has now changed to an **Execute** button. Click **Execute** to push the configuration update for leaf4.
-
- .. image:: images/cvp-l3ls/bgp-execute-cc.png
- :align: center
- :width: 50 %
-
-5. Verify that BGP is properly configured
-
- 1. Head back over to **Metrics** and select the dashboard we created earlier.
-
- .. image:: images/cvp-l3ls/bgp-dashboard-done.png
- :align: center
- :width: 50 %
-
- 2. Make sure all of the switches have the proper BGP configuration and number of peers.
-
- .. image:: images/cvp-l3ls/leaf4-bgp-overview-post.png
- :align: center
- :width: 50 %
-
- 3. Navigate to the BGP Overview page for **leaf4** as well as both **spine1** and **spine2**.
-
- .. image:: images/cvp-l3ls/spine1-bgp-overview-post.png
- :align: center
- :width: 50 %
-
-6. Validate connectivity from **Host1** to **Host2**. From **Host1** execute:
-
- .. code-block:: text
-
- ping 172.16.116.100
- traceroute 172.16.116.100
-
-**LAB COMPLETE!**
diff --git a/topologies/dual-datacenter/labguides/source/cvp-mlag.rst b/topologies/dual-datacenter/labguides/source/cvp-mlag.rst
deleted file mode 100644
index 143ba08f3..000000000
--- a/topologies/dual-datacenter/labguides/source/cvp-mlag.rst
+++ /dev/null
@@ -1,110 +0,0 @@
-MLAG
-====
-
-.. note:: For more details on the configuration we will apply to Leaf4, check out the UCN MLAG Lab.
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-
-1. Log into CloudVision and find Leaf3 on the **Devices** page.
-
- 1. The username to access CloudVision is ``arista`` and the password is ``{REPLACE_PWD}``
-
- 2. Search for ``Leaf3`` in the **Device** column of the inventory table.
-
- .. image:: images/cvp-mlag/mlag-leaf3-inventory-table.png
- :align: center
- :width: 50 %
-
- 3. Click on ``Leaf3``.
-
-2. View the MLAG status for Leaf3.
-
- 1. Click on the **MLAG** section on the left side navigation bar.
-
- 2. Here we can see details for the fundamental components of our MLAG configuration for **Leaf3** along with each MLAG component's status.
-
- .. image:: images/cvp-mlag/leaf3-mlag-overview-pre.png
- :align: center
- :width: 50 %
-
- 3. Notice that our MLAG status is inactive. This is because we don't have an MLAG configuration in place on Leaf4, Leaf3's peer.
-
-3. To fix this we'll configure MLAG on Leaf4.
-
- 1. Head over to the Network Provisioning section of CloudVision by clicking **Provisioning** at the top of the page.
-
- 2. Find **Leaf4** and right click on its icon. Select ``Manage`` -> ``Configlet``.
-
- .. image:: images/cvp-mlag/leaf4-manage-configlet.png
- :align: center
- :width: 50 %
-
- 3. Search for the Configlet Builder ``Leaf4-MLAG-Lab`` in the search bar, select the configlet, and click **Validate**.
-
- .. image:: images/cvp-mlag/mlag-leaf4-add-configlet.png
- :align: center
- :width: 50 %
-
- 4. On the **Validate and Compare** page, CloudVision uses all of the configlets applied to the device to create a Designed Configuration. It then compares this Designed Configuration to the Running Configuration on the device. If everything looks good, click **Save**.
-
- .. image:: images/cvp-mlag/mlag-leaf4-validate-and-compare.png
- :align: center
- :width: 50 %
-
- 5. We now have a pending action. You can optionally view this pending action by clicking **Preview**. Click **Save** once more to create a task.
-
- .. image:: images/cvp-mlag/mlag-leaf4-pending-task.png
- :align: center
- :width: 50 %
-
- 6. Head over to the **Tasks** section in **Provisioning** by clicking **Tasks** on the left side bar.
-
- 7. Select our recently created task for Leaf4 and click 'Create Change Coontrool'.
-
- .. image:: images/cvp-mlag/leaf4-mlag-create-cc.png
- :align: center
- :width: 50 %
-
- 8. Here we can review, approve, and execute the configuration update change control. Click **Review** toward the right side to confirm the changes we are about to push.
-
- .. image:: images/cvp-mlag/leaf4-mlag-cc.png
- :align: center
- :width: 50 %
-
- 9. If the changes look good, click **Approve**.
-
- .. image:: images/cvp-mlag/leaf4-mlag-cc-review.png
- :align: center
- :width: 50 %
-
- 10. The **Review** button has now changed to an **Execute** button. Click **Execute** to execute the change control.
-
- .. image:: images/cvp-mlag/leaf4-mlag-cc-execute.png
- :align: center
- :width: 50 %
-
-4. Once our change control has successfully completed, navigate back to our Device overview page to check out **Leaf3**'s MLAG status.
-
- 1. If you aren't there already, on the Devices page, select **Leaf3** -> **Switching** -> **MLAG**
-
- .. image:: images/cvp-mlag/leaf3-mlag-overview-post.png
- :align: center
- :width: 50 %
-
- 2. Everything should look okay now.
-
- 3. Jump over to **Leaf4**'s MLAG section, we see the everything looks okay too.
-
-5. Log in to Host1 and ping Host2
- .. code-block:: text
-
- ping 172.16.112.202
-
-6. Click **Devices** at the top of the page to navigate back to the main **Devices** page.
- 1. Click **Comparison** on the left side bar.
- 2. At the center of the page, select **Leaf3** for one of our devices and **Leaf4** for the other.
- 3. Here we can compare different metrics for these two devices side by side to see similarities and differences between the two members of this MLAG pair.
-
-
-**LAB COMPLETE!**
diff --git a/topologies/dual-datacenter/labguides/source/cvp-vxlan.rst b/topologies/dual-datacenter/labguides/source/cvp-vxlan.rst
deleted file mode 100644
index 9dea760f0..000000000
--- a/topologies/dual-datacenter/labguides/source/cvp-vxlan.rst
+++ /dev/null
@@ -1,260 +0,0 @@
-.. # define a hard line break for HTML
-.. |br| raw:: html
-
-
-
-VxLAN
-=====
-
-.. note:: The manually-entered configlet below as part of this lab is equivalent to ``Leaf3-VXLAN-Lab-Full``.
-
-**To access the command line of particular switch, click on that switch or CloudVision in the topology diagram at the top of the lab guide.**
-
-
-1. Log into CloudVision and find **leaf3** on the **Devices** page
-
-* The username to access CloudVision is ``arista`` and the password is ``{REPLACE_PWD}``
-
-* Search for ``leaf3`` in the **Device** column of the **inventory** table.
-
-.. image:: images/cvp-vxlan/leaf3-inventory-table.png
- :align: center
- :width: 50 %
-|br|
-
-* Click on **leaf3**
-|br|
-
-2. Review the current VXLAN information in CVP
-
-* Click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-pre.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** leaf3 currently has no VXLAN configuration
-
-* Click on **Topology** in the navigation bar at the top of the page
-* Click the **Link Overlay** dropdown in the left selection column
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-before.png
- :align: center
- :width: 50%
-|br|
-
-* Click the **VXLANs** selection, also click and view the **VLANs** selection
-* **Note:** You should see VLAN 12 on ``leaf3`` & ``leaf4``
-* **Note:** You should see that ``leaf4`` has both VLAN 12 and VNI 1212 with a dashed line to ``leaf2``
-* **Note:** You should not see VLAN 12 or VNI 1212 as a dashed line from leaf3 to leaf2
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-vlan-before.png
- :align: center
- :width: 50%
-|br|
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-vni-before.png
- :align: center
- :width: 50%
-|br|
-
-3. Create the VXLAN configlet
-
-* Click on **Provisioning**, click on **Configlets** in the left selection column
-* Click the **+** sign in the Configlets list toolbar
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-list.png
- :align: center
- :width: 50%
-|br|
-
-* Create a configlet called ``Leaf3-VXLAN-Lab-Full-user``
-
-.. code-block:: text
-
- !! Configure physical interface et4 and port-channel 4 for host2 in access vlan4
- interface port-channel 4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
- !
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-
- !! Configure a loopback interface to be used with interface vxlan1 for vxlan encapsulation
- interface Loopback1
- ip address 172.16.0.56/32
- !
- interface vxlan 1
- vxlan source-interface loopback 1
- !! Map vlan 12 to vni 1212
- vxlan vlan 12 vni 1212
- !! Send BUM traffic to vtep(s)
- vxlan flood vtep 172.16.0.34
-
-
-* Add the CLI text from above to the new configlet
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet.png
- :align: center
- :width: 50%
-|br|
-
-* Validate configlet syntax on **leaf3**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-validate.png
- :align: center
- :width: 50%
-|br|
-
-4. Assign the VXLAN configlet to **leaf3**
-
-* Click on **Provisioning**, then click on **Network Provisioning** in the left selection column
-* Right click on **leaf3**, Click on **Manage->Configlets** and then search for ``Leaf3-VXLAN``
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-manage.png
- :align: center
- :width: 50%
-|br|
-
-* Click the checkbox next to ``Leaf3-VXLAN-Lab-Full-user``
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-assign.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Validate**, review the new lines added to the **Designed Configuration**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-assign-validate.png
- :align: center
- :width: 50%
-|br|
-
-* click **Save**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-assign-validate-compare.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Save** on the **Network Provisioning** main view
- **Note:** a Task will be generated
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-configlet-main-save.png
- :align: center
- :width: 50%
-|br|
-
-5. Create a Change Control with the generated Task
-
-* Click **Tasks** from the left selection column
-
-* Click the checkbox next to the generated task from the pool of **Assignable Tasks**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-task.png
- :align: center
- :width: 50%
-|br|
-
-* Click **+ Create Change Control with 1 Task**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-create-cc.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Review and Approve** on the newly created **Change Control**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-review-approve.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Execute Change Control** in upper right of the UI
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-execute.png
- :align: center
- :width: 50%
-|br|
-
-* Click **Execute** in the resulting confirmation dialog box
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-cc-execute-confirm.png
- :align: center
- :width: 50%
-|br|
-
-6. Verify VXLAN operation with CVP Telemetry
-
-* From **Device** page **Inventory** click on **leaf3**
-* Click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-verification.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** you should now see the VLANs to VNI mappings related the to VXLAN configuration on ``leaf3``
-
-* Ping ``host1`` from ``host2``
-
-.. code-block:: text
-
- host1# ping 172.16.112.201
- PING 172.16.112.201 (172.16.112.201) 72(100) bytes of data.
- 80 bytes from 172.16.112.201: icmp_seq=1 ttl=64 time=0.248 ms
- 80 bytes from 172.16.112.201: icmp_seq=2 ttl=64 time=0.165 ms
- 80 bytes from 172.16.112.201: icmp_seq=3 ttl=64 time=0.181 ms
- 80 bytes from 172.16.112.201: icmp_seq=4 ttl=64 time=0.150 ms
- 80 bytes from 172.16.112.201: icmp_seq=5 ttl=64 time=0.146 ms
-
- --- 172.16.112.201 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 1ms
- rtt min/avg/max/mdev = 0.146/0.178/0.248/0.037 ms, ipg/ewma 0.421/0.211 ms
- host1#
-
-* Again, click on **VXLAN** in the left selection column under **Switching**
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-verification-mac.png
- :align: center
- :width: 50%
-
-* **Note:** In addition to the VLAN to VNI Mappings, you will see an entry in the ``VXLAN MAC Address Table`` section
-
-* Click on the **MAC Address Table** for ``leaf3`` in left selection column
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-verification-mac-table.png
- :align: center
- :width: 50%
-|br|
-
-* **Note:** You will see the local MAC Address of Host2 on Port-Channel 4 and the remote MAC Address of Host1 showing port ``Vxlan1``
-
-* Click on **Topology View**
-* Click the **Link Overlay** dropdown in the left selection column
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-before.png
- :align: center
- :width: 50%
-|br|
-
-* Click the **VXLANs** selection, also click and view the **VLANs** selection
-* **Note:** You should see VLAN 12 on ``leaf3`` & ``leaf4``
-* **Note:** You should see that ``leaf4`` has both VLAN 12 and VNI 1212 with a dashed line to ``leaf2``
-* **Note:** You should **now** see VLAN 12 and VNI 1212 as a dashed line from leaf3 to leaf2, indicating VLAN 12 is extended via VNI 1212
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-vlan-after.png
- :align: center
- :width: 50%
-|br|
-
-.. image:: images/cvp-vxlan/leaf3-vxlan-vni-after.png
- :align: center
- :width: 50%
-|br|
-
-**LAB COMPLETE!**
diff --git a/topologies/dual-datacenter/labguides/source/cvp_cc.rst b/topologies/dual-datacenter/labguides/source/cvp_cc.rst
deleted file mode 100644
index ed3a78ae8..000000000
--- a/topologies/dual-datacenter/labguides/source/cvp_cc.rst
+++ /dev/null
@@ -1,153 +0,0 @@
-CVP Change Control, Telemetry & Rollback
-==========================================
-
-Learn how to use CloudVision’s Change Control. A Change Control (CC) can be associated with one or mores Tasks. CloudVision will take pre and post snapshots when a CC is executed to give us a state to revert back should there be any issues after the change.
-
-Next, the lab will review Telemetry state-streaming information of the change of adding routes and how the routes propagate across the environment.
-
-Lastly, the lab will initiate a Network Rollback to revert the changes that were implemented. The Network Rollback feature can greatly minimize downtime and gives the user the ability to restore the environment to a previous network state quickly.
-
-
-.. note:: Did you know → the “cvp” script is composed of python code that uses the CloudVision Portal Rest API to automate the provisioning of CVP Configlets.
-
-TASK 1: Apply a Configlet Builder to create a group of Tasks
-************************************************************
-
-* Log into the LabAccess jumpserver:
- .. warning:: If starting from this lab module, type ``cvp`` or ``7`` at the prompt. The script will configure all devices in the lab so you can complete this lab. The configlet builder will fail to generate device configlets if this script hasn't been run.
-
-
-Now we want to add several Loopbacks to each device using a Configlet Builder at the ``s1/s1-Leaf`` level.
-
-
-.. thumbnail:: images/cvp_cc/cvp_cc_1.gif
- :align: center
-
-|
-
-1. Navigate to the 'Network Provisioning' page under the 'Provisioning' tab.
-
-2. Expand the ``S1`` container, right click on the ``S1-Leaf`` container and select 'Manage' -> 'Configlet'
-
-3. Select the ‘Add_Loopbacks’ from the list of configlets.
-
-4. Select 'Generate' to build a configlet for each device. View the generated configuration by expanding the Proposed Configuration on the right by selecting the '+'
-
-5. Select 'Update' to return to 'Network Provisioning' and select 'Save' at the bottom of the screen. Tasks will be generated and a notifcation will show next to the 'Tasks' option in the Navigation column. Now that we have Tasks created we can use Change Control feature.
-
-|
-
-.. thumbnail:: images/cvp_cc/cvp_cc_2.gif
- :align: center
-
-|
-
-6. Navigate to 'Change Control' from the Provisioning Tab.
-
-7. Create a new Change Control by clicking the '+ Create Change Control' in the top right.
-
-8. This screen will show pending tasks that will be associated with a Change Control(CC). Select all pending Tasks and click '+ Create Change Control with 4 Tasks'.
-
-9. First, we need to give the Change Control a name. Click the pencil on the top right to edit the CC name. Name it 'Add_Loopbacks_CC' and hit Enter.
-
-10. Next we will need to change the root stage to 'Serial' execution.
-
-11. Then we will create 3 new child stages. Click the '+' on the right side of the screen three times in order to create 3 new stages.
-
-12. Rename the top and bottom stages to 'Before Snapshot' and 'After Snapshot' respectively by clicking the Pencil icon. Name the middle stage 'Configuration Changes'.
-
-13. Next we can select a Snapshot template that we want to run before and after the change. Select the 'Before Snapshot' stage and click 'Add Actions' under the right side menu.
-
-14. Under 'Select action', select 'Snapshot -> Validate_Routing' and select 'S1-Leaf1', 'S1-Leaf2', 'S1-Leaf3', and 'S1-Leaf4' under 'Select devices to run on', then click 'Add to change control'.
-
-15. Now click and drag each of the four leaf switch tasks to the 'Configuration Changes' task.
-
-16. Repeat step 15, but select 'After Snapshot'. We should now have 2 stages that will take a before and after snapshot of the devices being changed.
-
-.. note:: A few notes about Change Control:
-
- a. Each Task can be assigned to different stages if wanted. Health checks can be performed in stages before the next stage executes.
- b. The order of Task execution can be specified if there are dependencies. This is done by clicking the tasks and selecting the option in the drop-down menu.
-
-|
-
-17. For this lab, we now want to execute the CC. First a review and approval will need to take place. Select 'Review and Approve'. Here we can view all of the changes for the tasks, snapshots to be taken, and any other information relative to the change control in order to approve it.
-
-18. Once changes have been reviewed, we can click 'Approve' in the bottom right.
-
-19. Once the change has been approved, we should now have a button that says 'Execute Change Control' in the top right corner. Click this to execute the changes.
-
-20. We will now be prompted with with a confirmation. Click 'Execute' to confirm the CC execution.
-
-21. While the CC executes, we can see the progress of each task as it is executed.
-
-|
-
-.. thumbnail:: images/cvp_cc/cvp_cc_3.gif
- :align: center
-
-|
-
-22. Once the Change Control is successfully completed, we can view and compare the snapshots under 'Devices' -> 'Comparison'
-
-23. To compare the before and after from our CC, select the 'Two times' option to compare two points in time for the same device. Select 'S1-Leaf1' from the dropdown menu and click the Quick link for '30 minutes ago'. Then hit 'Compare'.
-
-24. CVP will bring up a variety of views that allows you to compare the state of the device from 30 minutes ago to the current time. Select 'Snapshots' from the left Navigation column.
-
-25. In the 'Comparing Data...' heading, select the first time to bring up a list of optional times to compare the Snapshot from. The top option represents the 'Before Change' Snapshot taken when the Change Control was executed. Select that to see a comparison of the command outputs from before and after the change.
-
-|
-
-TASK 2: View Telemetry
-**********************
-
-
-.. thumbnail:: images/cvp_cc/cvp_cc_4.gif
- :align: center
-
-|
-
-1. Using Telemetry, we can view the routes that were added as part of this change propagate across the environment. One way to view telemetry information is per device in the 'Devices' tab. Navigate to the 'Devices' tab and select 'leaf1' to view detailed information.
-
-2. On the left Navigation column, select 'IPv4 Routing Table' to see a live view of the device's routing table. Using the timeline at the bottom of the screen, you can navigate to any point in time to see what the route table was at that exact moment. You can also see a running list of changes to the routing table on the right.
-
-3. By clicking on the 'compare against 30m ago' link, you can navigate back to the Comparison view of the routing table to see all the routes added in green as part of the Change Control pushed earlier.
-
-4. To view Telemetry information for multiple devices in a common dashboard, select the 'Metrics' tab.
-
-5. To build a dashboard, select 'Explorer' in the left column to bring up a list of available telemetry metrics to add.
-
-6. Under the 'Metrics' dropdown, select 'IPv4 Total Route Count' and select 'S1-Leaf1', 'S1-Leaf2', 'S1-Leaf3' and 'S1-Leaf4' to add them to the dashboard view.
-
-7. This will bring up a live rolling view of the selected metric. In the timeline at the bottom, select 'Show Last: 1h' to view metric data for the last hour. You will see a graphical representation of the increase in routes for each device.
-
-8. Select the 'Add View' button to save this metric view and add another if desired. Using the same process, add a view for 'IPv4 BGP Learned Routes' and 'IP Interfaces' to see other results of the Change Control. Then hit the 'Save Dashboard' button in the bottom left.
-
-9. Name the dashboard 'Leaf Routing Metrics' and hit 'Save'. The dashboard is now saved and can be pulled up by other users of CVP at any time to view the consolidated metrics selected.
-
-|
-
-TASK 3: Rollback
-****************
-
-
-.. thumbnail:: images/cvp_cc/cvp_cc_5.gif
- :align: center
-
-|
-
-1. Initiate a Network Rollback to revert the changes that were implemented. Go to the 'Provisioning -> Change Control' page and find the change control we just executed: 'Add_Loopbacks_CC'.
-
-2. In the top right, click 'Rollback Change'.
-
-3. Here we will select the tasks we wish to roll back. Select all of the tasks for the leafs and click 'Create Rollback Change Control'.
-
-4. We will now have a rollback change control created. The same change control process can be followed as before. Select 'Review and Approve' to see a reflection of the changes that will be executed. Note that the config lines are now red as they will be removed when the Rollback Change is pushed. Select 'Approve' to move to the next step.
-
-5. Hit 'Execute Change Control' to push the change to rollback the configuration of the devices to the previous state.
-
-6. Navigate back to 'Metrics' then the 'Leaf Routing Metrics' dashboard. Select 'Show Last: 5m" in the timeline to see your telemetry reflect in real-time the removal of the IPv4 routes and interfaces.
-
-LAB COMPLETE
-
-|
\ No newline at end of file
diff --git a/topologies/dual-datacenter/labguides/source/cvp_configlet.rst b/topologies/dual-datacenter/labguides/source/cvp_configlet.rst
deleted file mode 100644
index 72117da68..000000000
--- a/topologies/dual-datacenter/labguides/source/cvp_configlet.rst
+++ /dev/null
@@ -1,98 +0,0 @@
-CVP Configlet
-=============
-
-Let’s create a new CloudVision configlet. CloudVision configlets are
-snippets of configuration that are used to create a switch
-configuration.
-
-All of the switches have a base Configlet. Additional Configlets have
-been defined for AAA and VLANs.
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/cvp_configlet/nested_cvp_overview_1.png
- :align: center
-
-|
-
-2. Click on the link "Click Here To Access Topology" and navigate to the below page. Click the CVP link on the left side of the screen.
-
-|
-
-.. image:: images/cvp_configlet/nested_cvp_landing_1.png
- :align: center
-
-|
-
-3. You will come to a login screen for CloudVision Portal. Enter the username ``arista`` and the password ``{REPLACE_PWD}``
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet_1.gif
- :align: center
-
-|
-
-4. For this lab, select 'Provisioning -> Configlets' from CloudVision.
-
-5. Click the '+' in the top right and select 'Configlets' to create a new configlet.
-
-6. In the configuration section enter the command information as shown:
-
-
- .. code-block:: text
-
- alias snz show interface counter | nz
-
-
-7. Name the Configlet 'Alias'.
-
-8. The Configlet can be validated against a device to ensure there isn’t a conflict and the configuration is validated. To validate, click the checkbox in the top right section.
-
-9. Once the configuration is validated, Click the 'Save' button to save the Configlet
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet_2.gif
- :align: center
-
-|
-
-10. To apply the Configlet, navigate to 'Network Provisioning' expand the 'S1' container, right click on the 'Leaf' container and select 'Manage -> Configlet'.
-
-11. Select the 'Alias' Configlet and click 'Update'. This activity is to simply add a new configlet to the existing configlets applied on the 'Leaf' container. **Do not Remove** existing configlets from the Proposed Configuration section.
-
-
- *\**Expert Tip - Use search bar to find Configlets faster*
-
-
-12. On the 'Network Provisioning' page, Click the 'Save' button to save the changes to the topology.
-
-|
-
-.. image:: images/cvp_configlet/cvp_configlet_3.gif
- :align: center
-
-|
-
-13. The screen will refresh and a 'T' for task will appear above each device, representing that tasks have been generated that need to run to push the configuration change.
-
-14. Click 'Tasks' in the left navigation column.
-
-15. Check each Task in the 'Assignable Tasks' section, then click the 'Create Change Control with 9 Tasks' button.
-
- *\**See the 'CVP Change Control, Telemetry & Rollback' lab guide for more information on Change Controls*
-
-
-16. Select 'Review and Approve' in the top right, then 'Approve' in the bottom right to approve the Change Control.
-
-17. Select 'Execute Change Control' in the top right and then 'Execute' to execute the Change Control tasks.
-
-18. When the tasks are completed, navigate into the task by clicking on the task object.
-
-19. Select 'Show Details' icon on the righ side of the screen to review the *Designed Configuration* vs. *Running Configuration*. The Designed Configuration is a combination of all configlets to build a full device configuration. The Running Configuration is the running-config prior to executing the task. Configuration differences are highlighted to show New Lines, Mismatch Lines, and To Reconcile.
-
-|
-
-**LAB COMPLETE**
diff --git a/topologies/dual-datacenter/labguides/source/day2_operations.rst b/topologies/dual-datacenter/labguides/source/day2_operations.rst
deleted file mode 100644
index 158f129b2..000000000
--- a/topologies/dual-datacenter/labguides/source/day2_operations.rst
+++ /dev/null
@@ -1,355 +0,0 @@
-Day 2 Operations
-========================
-
-If you were recall the earlier presentation, we mentioned Continuous
-Integration and Continuous Development (CI/CD). Now we’re going to show
-you an example.
-
-In this lab we’re going to go from 0-60 pretty quickly and introduce a
-couple of new tools. We’re also going to do things a little bit
-differently - we’re going to action against many switches at the same
-time.
-
-Tools used in this lab
-----------------------
-
-`Git `__\ is
-the most popular version control system. If you are familiar with SVN
-(Subversion) or CVS, it is a more modern and distributed system. Git
-keeps your source code/configurations in a repository (repo) and
-maintains a record of what changed and by whom.
-
-.. note:: Git is an incredibly powerful tool. We’re using shortcuts that
- are specific to this lab. When using Git in production - or even just
- for fun, please make sure that you understand the commands you are
- using. Some Git commands are destructive and irreversible!
-
-`Jenkins `__\ is
-one of the most popular open source automation tools with hundreds of
-plugins for building/deploying/automating pretty much anything. It’s not
-outside the realm of possibility to have it test and push changes to
-your switches and then order you a pizza if it’s successful.
-
-Git commands
-~~~~~~~~~~~~
-
-This lab makes use of a handful of git commands, and the table below
-describes their function:
-
-.. cssclass:: table-hover
-
-+-----------------------------------+-----------------------------------+
-| **Command** | **Description** |
-+-----------------------------------+-----------------------------------+
-| ``git init`` | Initializes an empty git |
-| | repository |
-+-----------------------------------+-----------------------------------+
-| ``git add`` | Adds files to the local git |
-| | repository |
-+-----------------------------------+-----------------------------------+
-| ``git commit`` | Commits the git repository |
-+-----------------------------------+-----------------------------------+
-| ``git remote add origin`` | Adds a remote repository to |
-| | commit to |
-+-----------------------------------+-----------------------------------+
-| ``git push`` | Pushes code to the repository |
-+-----------------------------------+-----------------------------------+
-| ``git reflog`` | The git reflog command lists |
-| | every commit, their checksum, |
-| | their distance from the current |
-| | commit, and the commit message. |
-+-----------------------------------+-----------------------------------+
-| ``git revert`` | Reverts the local repository to a |
-| | previous commit |
-+-----------------------------------+-----------------------------------+
-
-Making a change
----------------
-
-Our tried and true “add a VLAN” task is back in full force for this lab,
-but with a twist. We’re going to set up the usual suspects - a hosts
-file and a playbook, but this time we’re going to use group variables as
-well. Group variables are similar to the variables defined within your
-playbook in Lab #4 and Lab #5, but can be consumed by a group of hosts
-and not just the target of the play.
-
-This is particularly useful for things like adding a VLAN where you
-typically want to add the VLAN to multiple devices at a same time.
-
-Write it
-~~~~~~~~
-
-This lab is broken into steps.
-
-Step #1: Hosts File
-^^^^^^^^^^^^^^^^^^^
-
-Let’s start out with a different looking hosts file, this time with
-every one of your leaf switches in it. Take special note of ``[leafs]`` -
-we’ll be using this later.
-
-Open the **Programmability IDE**, and create the file below:
-
-.. code-block:: ini
-
- [leafs]
- 192.168.0.12
- 192.168.0.13
- 192.168.0.14
- 192.168.0.15
-
-**Save** the file with the name ``hosts`` into the ``/home/coder/project/labfiles/lab6/lab`` folder.
-
-.. note:: You will notice that there are existing files and folders.
- Please don’t overwrite anything for this lab.
-
-Step #2: Playbook
-^^^^^^^^^^^^^^^^^
-
-The playbook is different from the other labs; we’re going to call a
-pre-created role that is provided by Arista on \ `Ansible
-Galaxy `__\ .
-
-Ansible Galaxy is a website where individuals and organizations can
-freely share their roles with each other. In this case, we’ll be using
-the ``arista.eos.eos_vlans`` module from the ``arista.eos`` Ansible Collection to add VLANs.
-
-In the **IDE**, create the file below:
-
-.. code-block:: ini
-
- - hosts: leafs
- connection: local
- tasks:
- - name: Create vlans
- arista.eos.eos_vlans:
- config:
- - vlan_id: "{{ item.vlanid }}"
- name: "{{ item.name }}"
- state: replaced
- loop: "{{ vlans }}"
-
-
-Save the file with the name ``vlan.yml`` into the ``/home/coder/project/labfiles/lab6/lab`` folder.
-
-Step #3: Group Variables
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-Now we’re really going to mix it up a bit. In previous labs, we
-used ``vars:`` and only actioned against a single host. This time around,
-we’re going to be using what are called group variables. Group variables
-are used for groups of hosts and not individuals.
-
-Remember how in the hosts file above we started with ``[leafs]``? If we
-create a group variable file named ``leafs.yml``, Ansible will automagically
-use it for the hosts listed below ``[leafs]``!
-
-Some more things to know about the file below:
-
-#. Notice that we’re using the Ansible Collections methodology and approach for this lab.
-#. ``vlans``, ``vlan_id``, and ``name`` are what the ``arista.eos.eos_vlans`` collections module take as an
- input. If you want to see every module and variable that the collection can use, see
- the \ `readme for the
- role `__\ .
-
-In the **IDE**, and create the file below:
-
-.. code-block:: ini
-
-
- ansible_connection: ansible.netcommon.httpapi
- ansible_httpapi_use_ssl: True
- ansible_httpapi_validate_certs: False
- ansible_network_os: arista.eos.eos
- ansible_user: arista
- ansible_password: {REPLACE_PWD}
- vlans:
- - vlanid: 1001
- name: default
-
-
-Save the file with the name ``leafs.yml`` into
-the ``/home/coder/project/labfiles/lab6/lab/group_vars`` folder.
-
-Step #4: Jenkins
-^^^^^^^^^^^^^^^^
-
-Go back to the ATD web landing page, and click on the **Jenkins** link:
-
-Once Jenkins has loaded, click on the **Login** link for access with:
-
-Username: ``arista`` Password: ``{REPLACE_PWD}``
-
-.. image:: images/day2/nested_jenkins_1.png
- :align: center
-
-|
-
-Jenkins will open in a new tab. Click on **New Item** in the top left of
-the window.
-
-You will be greeted with a screen like the one below. Enter **vlan** as the
-name and select **Freestyle project**.
-
-.. image:: images/day2/nested_jenkins_2.png
- :align: center
-
-Click **OK**.
-
-Now comes the fun part.
-
-Under **Source Code Management**, check **Git** and
-enter ``/opt/labfiles/lab6/repo`` in the **Repository URL** field.
-
-.. note:: You will see a warning, ignore it for now.
-
-Scroll down to **Build Triggers**, and check **Poll SCM**. Poll SCM will poll for
-changes in Git and trigger a build from it.
-
-.. note:: This is a crucial aspect of continuous delivery - once a change is made, this is the part that deploys it.
-
-In the **Schedule** field, enter in:
-
-.. code-block:: html
-
- * * * * *
-
-If you are familiar with Linux cron, this is the same format - it’s
-telling Jenkins to check every 1 minute for a change.
-
-Scroll down to **Build** and click on **Add build step**. Select **Invoke Ansible Playbook**.
-
-For **Playbook path**, enter ``vlan.yml``. Select **File** or **host list** and enter
-in ``hosts``.
-
-Click **Save**.
-
-Step #5: Git
-^^^^^^^^^^^^
-
-We have to commit our changes into a Git repository for Jenkins to
-detect a change and run our playbook. Let’s go back to our **IDE** and run
-a few of quick commands for our initial commit.
-
-Open a **terminal** window and type:
-
-.. code-block:: bash
-
- cd ~/project/labfiles/lab6/lab
-
-First we will need to prep our "remote" git repository. Type the following command:
-
-.. code-block:: bash
-
- git init --bare /home/coder/project/labfiles/lab6/repo
-
-Now enter the following:
-
-.. code-block:: bash
-
- git init
- git add .
- git commit -m "Initial commit"
- git remote add origin /home/coder/project/labfiles/lab6/repo
- git push origin master
-
-Run it
-~~~~~~
-
-Phew, that was a lot of setup! Fortunately. unlike previous labs we’re
-not going to be running this one by hand - that wouldn’t be CI/CD! We’re
-going to use Jenkins to run the playbook.
-
-At a high level, the workflow of the “Run it” part of the lab looks like
-this:
-
-.. image:: images/day2/nested_jenkins_3.png
- :align: center
-
-Let’s start with Step 1.
-
-Step #1: Add a VLAN to the variables file
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Open the ``leafs.yml`` variables file in the **IDE**.
-
-Add the following highlighted lines directly below the existing text:
-
-.. code-block:: ini
-
- vlans:
- - vlanid: 1001
- name: default
- - vlanid: 2000
- name: production
- - vlanid: 3000
- name: development
-
-**Save** the file.
-
-Step #2: Add the file to the Git commit and push it
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Now, let’s add the file into Git commit and push it.We’re going to need
-to act somewhat quickly here if you want to see it run, so get ready!
-
-In the **terminal** window, type:
-
-.. code-block:: bash
-
- cd ~/project/labfiles/lab6/lab
-
-Now enter the following:
-
-.. code-block:: bash
-
- git add .
- git commit -m "Added VLAN 2000 and 3000"
- git push origin master
-
-Quickly, open Jenkins!
-
-Step #3: Jenkins
-^^^^^^^^^^^^^^^^
-
-Depending on how fast you were able to switch to Jenkins, you will see
-different things. If you were quick, you will see this:
-
-.. image:: images/day2/nested_jenkins_4.png
- :align: center
-
-See the **vlan** build running? No worries if you weren’t able to see it,
-Jenkins keeps a history - handy for when you want to see how things
-went.
-
-From the main screen, click on **vlan**:
-
-.. image:: images/day2/nested_jenkins_5.png
- :align: center
-
-On the left hand side, click on the latest build which should be **#3**, but
-could be a higher or lower number.
-
-.. image:: images/day2/nested_jenkins_6.png
- :align: center
-
-In the left hand menu, click **Console Output**. Scroll all the way to the
-bottom to see:
-
-.. code-block:: html
-
- PLAY RECAP *********************************************************************
- 192.168.0.12 : ok=7 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
- 192.168.0.13 : ok=7 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
- 192.168.0.14 : ok=7 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
- 192.168.0.15 : ok=7 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
-
-Woot, sweet success!
-
-Step #4: Switches are configured
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Now, for the final step log into a couple of the leaf switches. Notice
-the VLANs are there. Pretty cool, huh?
-
-You can do this for 1 or 1000 switches using this playbook.
diff --git a/topologies/dual-datacenter/labguides/source/eapi.rst b/topologies/dual-datacenter/labguides/source/eapi.rst
deleted file mode 100644
index 155e9eda3..000000000
--- a/topologies/dual-datacenter/labguides/source/eapi.rst
+++ /dev/null
@@ -1,181 +0,0 @@
-eAPI
-====
-
-This lab will walk you through using eAPI through Python. As mentioned
-in the previous lab and the presentation, eAPI works through JSON
-requests and responses. Fortunately, Python has a module that can handle
-that easily!
-
-If you haven’t used Python before, don’t worry! We will break down the
-first script to explain how it works, and what it’s doing.
-
-The scripts below leverage ``show`` commands, but you can easily modify them
-to issue configuration commands as well - just use what you learned in
-the previous lab to do that.
-
-.. note:: While Arista switches have a fully functional Python
- installation, please make sure to use the lab VM for the scripting part of this lab.
-
-Your very first script
-----------------------
-
-For the first script, we are going to issue ``show version`` to the switch,
-and then print the output.
-
-.. warning:: Please do not start writing this script until you get to the
- next section
-
-The script is the same as in the presentation you just saw:
-
-.. code-block:: python
-
- #!/usr/bin/env python3
-
- from jsonrpclib import Server
- import ssl
-
- ssl._create_default_https_context = ssl._create_unverified_context
-
- switch = Server ("https://arista:{REPLACE_PWD}@192.168.0.12/command-api")
-
- response = switch.runCmds( 1, ["show version"] )
-
- print(response)
-
-Let’s break down the script into individual pieces:
-
-**#!/usr/bin/env python3** - this is called a shebang (no, we didn’t make this
-up!). A shebang instructs the operating system what to use to run the
-script. In this case, python!
-
-**from jsonrpclib import Server** - this imports the Python
-submodule ``Server`` from the module ``jsonrpclib``. A Python module extends the
-capability of Python by adding additional functionality. There are
-Python modules for pretty much everything!
-
-**import ssl**- this imports the Python ``ssl`` module.
-
-**ssl._create_default_https_context = ssl._create_unverified_context** - This command is used to ignore
-self-signed certificates within this lab.
-
-**switch = Server ( "https://arista:{REPLACE_PWD}@192.168.0.12/command-api")**
-this instantiates a variable - ``switch`` - and uses the ``Server`` submodule
-imported previously to create a connection to the switch. Note that it
-uses standard username/password formatting to make the connection.
-
-**response = switch.runCmds( 1, ["show version"] )** - instantiates a
-variable called ``response`` - that uses the previously
-created ``switch.runCmds`` variable to run commands. This is where it starts
-getting interesting.
-
-Once we create the ``switch`` connection, ``runCmds`` is the method provided by
-theswitch’s JSON-RPC interface which allows us to run commands against
-it. As a part of ``runCmds``, we also expect an API version (1) and the
-command itself, in this case ``show version``.
-
-If you rewind and go back to the Command API Explorer, you would see
-that in the **Request Viewer** pane:
-
-.. image:: images/eapi/eapi_1.png
- :align: center
-
-Note the ``method``, ``cmds``, and ``version`` keys!
-
-.. note:: The other values, such as format, timestamps, and id are
- defaults and do not need to be specified in your request.
-
-**print(response)** - finally, we print the ``response`` variable to screen.
-
-Write it
-~~~~~~~~
-
-Now that’s out of the way, it’s time to actually write the code! Connect to
-the **Programmability IDE** service. This IDE is running VS Code. If prompted for a password, enter in your
-lab password: ``{REPLACE_PWD}``
-
-.. image:: images/eapi/nested_eapi_ide_1.png
- :align: center
-
-
-To start writing our first script, click on ``New file`` to open a new file. Then start typing in the code from above.
-Alternatively, if you’d just like to paste in the code, you can copy and paste it right into VS Code by pressing:
-
-**Ctrl+v** on Windows
--- or --
-**Cmd+v** on Macs.
-
-
-Once done, save the file to your project directory.
-
-``/home/coder/project/labfiles/show_version.py``
-
-Run it
-~~~~~~
-
-Now, let’s run it! Within the IDE, you can use any of the following to open a **Terminal** window:
-
-**Ctrl+Shift+`**
-
-Open it via the IDE Menus.
-
-.. image:: images/eapi/nested_eapi_ide_2.png
- :align: center
-
-A terminal window will open. Run your script by entering:
-
-.. code-block:: bash
-
- python3 show_version.py
-
-If this doesn’t work, make sure you replaced ``show_version.py`` with
-the filename of the script you saved above!
-
-.. note:: For the more Linux savvy folks, you might wonder why we’re
- calling Python directly instead of relying on the aforementioned
- shebang (``#!/usr/bin/env python3``) - if you want to make the file executable
- go for it!
-
-.. image:: images/eapi/nested_eapi_ide_3.png
- :align: center
-
-Woohoo - check out that JSON!
-
-
-Advanced
---------
-
-So that was cool and all, but if you want to take it one step further,
-check out the following script - this time we’re taking the output and
-doing something with it:
-
-.. code-block:: python
-
- #!/usr/bin/env python3
-
- from jsonrpclib import Server
- import ssl
-
- ssl._create_default_https_context = ssl._create_unverified_context
-
- switch = Server ("https://arista:{REPLACE_PWD}@192.168.0.12/command-api")
-
- response = switch.runCmds( 1, ["show version"] )
-
- print("The switch model name is " + response[0]["modelName"] + " and it is running " + response[0]["version"])
-
-There are plenty of other possibilities here. Think about your day to
-day operations and things that you have to do frequently that take a lot
-of time, but are tedious and error prone. Any Python script that can be
-run against one switch can be run against many more. Adding a VLAN to
-every switch in your datacenter might just involve providing a list of
-switch hostnames or IP addresses, a VLAN ID, and a name and your script
-will do it all for you!
-
-Another script idea is tracing a MAC across your network until you find
-the physical port it’s connected to. The possibilities are only limited
-by your imagination.
-
-Bonus
------
-
-Print the response of ``show version`` using `PrettyPrint `__\ .
diff --git a/topologies/dual-datacenter/labguides/source/gnmi.rst b/topologies/dual-datacenter/labguides/source/gnmi.rst
deleted file mode 100644
index 80a365808..000000000
--- a/topologies/dual-datacenter/labguides/source/gnmi.rst
+++ /dev/null
@@ -1,298 +0,0 @@
-Openconfig gNMI Lab
-===================
-.. thumbnail:: images/gnmi/gnmi-cvp-streaming.png
-
-.. thumbnail:: images/gnmi/gnmi-eos-streaming.png
-
-Summary
--------
-This lab will walk a user through connecting to both a Arista EOS device and a Arista CloudVision instance to test streaming telemetry of common metrics all through a standard Openconfig streaming interface known as gNMI. These simply scratch the surface of what is available. More complex and better examples are maintained by Arista on the open management page. Examples will be using the gNMIC binary.
-
-Lab changes for gNMIC that need to be made prior to this lab.
--------------------------------------------------------------
-
-**Per switch the following needs to be added.**
-
-.. Note:: You can save some time by adding these lines to the existing intrastructure configlet, since the Terminattr change below is within this configlet. Feel free to create a new gNMI configlet if you prefer.
-
-.. code-block:: bash
-
- management api gnmi
- transport grpc default
- provider eos-native
- !
- management api models
- provider aft
- ipv4-unicast
- Ipv6-unicast
-
-**management api gnmi** - This command turns on the gNMI service which is needed for gNMI
-
-**management api models** - This command turns on airstream /streaming route tables through gNMI
-
-|
-
-**Terminattr changes.**
-
-.. code-block:: bash
-
- daemon TerminAttr
- exec /usr/bin/TerminAttr -disableaaa -cvaddr=192.168.0.5:9910 -taillogs -cvauth=key,atd-lab -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvgnmi
- no shutdown
-
-.. note::
- Notice the -cnmi flag at the end. This is the flag that tells Terminattr to tunnel its openconfig traffic to CVP. For example, it will stream all of its Openconfig traffic gNMI through Terminattr so it is accessible via CVP as well.
-|
-Installation of gNMIC
- To install gNMIC we will first need to go to the Programmability IDE and open a new terminal. We do this once we are within the IDE by clicking the 3 line menu in the upper left > Terminal > New Terminal.
-
-.. thumbnail:: images/gnmi/gNMI-terminal.png
- :width: 75%
-
-.. code-block:: bash
-
- bash -c "$(curl -sL https://get-gnmic.kmrd.dev)"
-
-
-To verify installation issue a which gnmic.
-
-.. code-block:: bash
-
- ➜ project which gnmic
- /usr/local/bin/gnmic
-
-Connecting to an EOS device.
-----------------------------
-
-Capabilities
- To test what the device is capable of ie which YANG models are currently supported and which encapsulations are available we will need to show the capabilities. In this task we will check to see the capabilities of s1-leaf
-
-..
- I want to try and make the password auto-fill for these commands on the next release, so users can just copy/paste the whole command.
-
-.. code-block:: bash
-
- gnmic -a 192.168.0.12:6030 -u arista -p password --insecure capabilities
-
-
-Truncated response
-
-.. code-block:: bash
-
- gNMI version: 0.7.0
- supported models:
- - openconfig-platform-port, OpenConfig working group, 0.4.2
- - openconfig-platform-transceiver, OpenConfig working group, 0.8.0
- - arista-bfd-augments, Arista Networks , 1.0.4
- - ietf-yang-metadata, IETF NETMOD (NETCONF Data Modeling Language) Working Group,
- - openconfig-segment-routing-types, OpenConfig working group, 0.2.0
-
-Get
----
-A get request within gNMI is a good way to get a one way communication of a specific gNMI path. For example, if we want to get Ethernet's current status we would issue the following.
-
-.. code-block:: bash
-
- gnmic -a 192.168.0.12:6030 -u arista -p password --insecure get --path \
- "/interfaces/interface[name=Ethernet1]/state/oper-status"
-
-**Response**
-
-.. code-block:: bash
-
- [
- {
- "source": "192.168.0.12:6030",
- "timestamp": 1653401690344274357,
- "time": "2022-05-24T14:14:50.344274357Z",
- "updates": [
- {
- "Path": "interfaces/interface[name=Ethernet1]/state/oper-status",
- "values": {
- "interfaces/interface/state/oper-status": "UP"
- }
- }
- ]
- }
- ]
-
-To get all possible paths within gNMI we would issue the following command.
-
-.. code-block:: bash
-
- gnmic -a 192.168.0.12:6030 -u arista -p password --insecure get --path /
-
-Subscribe
----------
-
-The most powerful portion of gNMI and Openconfig is the ability to subscribe to a specific path. The most common path to subscribe to would be all interface counters.
-
-.. code-block:: bash
-
- gnmic -a 192.168.0.12:6030 -u arista -p password --insecure subscribe --path \
- "/interfaces/interface/state/counters"
-
-**Truncated output of stream.**
-
-.. code-block:: bash
-
- {
- "source": "192.168.0.12:6030",
- "subscription-name": "default-1653401885",
- "timestamp": 1653401886216521708,
- "time": "2022-05-24T14:18:06.216521708Z",
- "updates": [
- {
- "Path": "interfaces/interface[name=Ethernet2]/state/counters/in-octets",
- "values": {
- "interfaces/interface/state/counters/in-octets": 424932
- }
- }
- ]
- }
- {
- "source": "192.168.0.12:6030",
- "subscription-name": "default-1653401885",
- "timestamp": 1653401886216521708,
- "time": "2022-05-24T14:18:06.216521708Z",
- "updates": [
- {
- "Path": "interfaces/interface[name=Ethernet2]/state/counters/in-multicast-pkts",
- "values": {
- "interfaces/interface/state/counters/in-multicast-pkts": 3310
- }
- }
- ]
- }
-
-The stream will run endlessly until the user cancels it by pressing ctrl+c. You can subscribe to any path within EOS.
-
-Subscribe to the routing tables.
-
-.. code-block:: bash
-
- gnmic -a 192.168.0.12:6030 -u arista -p password --insecure subscribe --path \
- "/interfaces/interface/state/counters"
-
-**Truncated output of stream.**
-
-.. code-block:: bash
-
- {
- "source": "192.168.0.12:6030",
- "subscription-name": "default-1653402161",
- "timestamp": 1653402062845675336,
- "time": "2022-05-24T14:21:02.845675336Z",
- "prefix": "network-instances/network-instance[name=default]/afts/ipv4-unicast/ipv4-entry[prefix=192.168.0.0/24]/state",
- "updates": [
- {
- "Path": "next-hop-group",
- "values": {
- "next-hop-group": 4294967297
- }
- },
- {
- "Path": "origin-protocol",
- "values": {
- "origin-protocol": "openconfig-policy-types:DIRECTLY_CONNECTED"
- }
- },
- {
- "Path": "prefix",
- "values": {
- "prefix": "192.168.0.0/24"
- }
- }
- ]
- }
-
-
-Press crtl+c to stop the stream.
-
-|
-
-If you'd like to see the administrative status of an interface change in real time, you can use the GET command we used above, but replace "get" with "subscribe". The command should look like this:
-
-.. code-block:: bash
-
- gnmic -a 192.168.0.12:6030 -u arista -p password --insecure subscribe --path \
- "/interfaces/interface[name=Ethernet1]/state/oper-status"
-
-
-Once you've run this command, open an SSH session to leaf1 and shutdown Ethernet1. The change is reflected instantly in gNMI.
-
-Connecting to CVP For device telemetry.
----------------------------------------
-
-**Intro for CVP**
-
-The same gNMI service that we use for EOS we are able to move to CVP. In the use case of CVP we use the Path Target field to distinguish between different EOS devices. For example, every outgoing request of gNMI stream we have to embed the serial or deviceID of the EOS device to stream data from it. This offers the tremendous advantage of talking simply only to CVP for all of the devices we want to stream device telemetry for versus going to every device individually.
-
-Get a token
- Since CVP does not use a username/password for the gNMI service a service account and token are required. On the **Settings gear** in the upper right hand corner click on that. Then on the left click under **Service Accounts.**
-
-.. thumbnail:: images/gnmi/gnmi-serviceaccount1.png
-
-|
-
-Click **+ Add Service Account.** Service Account name **test** Description **test**. Roles **network-admin**. Status **Enabled**.
-
-
-.. thumbnail:: images/gnmi/gnmi-serviceaccount2.png
-
-|
-
-Click **Add**. Now create a token for test. Click **test**.
-
-.. thumbnail:: images/gnmi/gnmi-serviceaccount3.png
-|
-Under the **Generate Service Account Token** section, give your token a description, Select a date in the future for valid Until.
-Click **Generate**.
-
-Copy the token to somewhere like your text editor. For example, my token is as follows.
-eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJkaWQiOjcwNjA4OTkyMTQ5ODQ3NDEwMDQsImRzbiI6InRlc3QiLCJkc3QiOiJhY2NvdW50IiwiZXhwIjoxNjU1OTk1NDA1LCJpYXQiOjE2NTM0MDM1MTIsInNpZCI6IjQxMDQ3MzYyMDAzZmFkY2RkZWEyOTlhMGQ5NTMxOGUwYTQ5NjRiNzg4YzFmYzI2YTJlYmM2ZGJmZWMwNjM4ODQtMkZmOG40eEtubE5JZ19tS2J3Y0VHQzhLOWxFZ3lYYUY0SFVtOUpMWiJ9.SxrLU2rMNUQteqTtrfZaRye35z2OvxbK-S-wTtmDmLt8uZzEdK9i7uxOBFTYKT97w7DQY1SnRr2M1nZT0e5yxhKm-joDfzCpfZZE2WLsPszqozYrOZYgOms3vO3_oJH-_VaEj_J_dpAKTCfM7m2aBv62SfiOzXBBOx_CjqOQvJHKZPDQLUlJMtO7MiCdStRs2WxVleJrhiLjTvYy8qlRP4Od2OhSgnaRvW6S8optXO9DWMhadhmzDQvzXcYMl3JCFtDo4v_ae3SaiUvhh_j8itBjikaYyoZyNxhCxDEsh47fCYMyJGF7bhZN53UCq9mzXou-fMVD_lELKw-l2MIUQVyzFdTvuhc8cOUsrud1aYfL8vubB_s6F_rIE5p5Atj43Uy3hXz-gpZcUfbZRVUWEold44CrVJyjscVkcjdBlPCKsBvQ6EBCx-BcHjNci4r3ADPcyQuyLcch1BSphhIUjkv451FPOY82TsraGxmbomjZ1OWAI9T_9B5OR1ERKSLKlmJQXL2izk7lnfCz2C9YOW5NMFC_FFT4EPV58K9Mk1Phhfv1Gtclu4iFZHdNUwS63FJbbww5xvs5ZioHAfUqqqgjyCpcwpK73ZNhHLsS858Tcpa3msDdpY9fLAj2P8Fz0rZuZkHzw1-OPoDJtWaiBWbX3vfZ1gDelSyok_5Kk4Y
-
-Click **okay**.
-
-|
-
-**Subscribe to s1-leaf1’s interface counters.**
-
-First we need to create an environmental variable for the token. Let's go back to Programmability IDE and run the following, pasting your own token value on the **export TOKEN** line
-
-.. code-block:: bash
-
- export TOKEN=
- gnmic -a 192.168.0.5:443 subscribe --path "openconfig:/interfaces/interface/state/counters" --token=$TOKEN --target=s1-leaf1 --skip-verify
-
-In this example, we are asking CVP to subscribe to the path of interface state counters using our Token for the target of s1-leaf1. If this is tested against a device that is not standard cEOS it is typically going to be the devices serial number.
-
-Truncated output
-
-.. code-block:: bash
-
- {
- "source": "192.168.0.5:443",
- "subscription-name": "default-1653404149",
- "timestamp": 1653402066603530716,
- "time": "2022-05-24T14:21:06.603530716Z",
- "target": "s1-leaf1",
- "updates": [
- {
- "Path": "interfaces/interface[name=Ethernet4]/state/counters/in-fcs-errors",
- "values": {
- "interfaces/interface/state/counters/in-fcs-errors": 0
- }
- },
- {
- "Path": "interfaces/interface[name=Ethernet4]/state/counters/in-unicast-pkts",
- "values": {
- "interfaces/interface/state/counters/in-unicast-pkts": 0
- }
- }
-
-Press ctrl+c to stop the stream of data.
-
-
-
-
diff --git a/topologies/dual-datacenter/labguides/source/images/ansible_adhoc/nested_adhoc_1.png b/topologies/dual-datacenter/labguides/source/images/ansible_adhoc/nested_adhoc_1.png
deleted file mode 100644
index c6fe4ee9a..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/ansible_adhoc/nested_adhoc_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/ansible_adhoc/nested_adhoc_2.png b/topologies/dual-datacenter/labguides/source/images/ansible_adhoc/nested_adhoc_2.png
deleted file mode 100644
index 81271ad66..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/ansible_adhoc/nested_adhoc_2.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/arista_logo.png b/topologies/dual-datacenter/labguides/source/images/arista_logo.png
deleted file mode 100644
index ae141f37e..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/arista_logo.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/command_api/commandapi_4.png b/topologies/dual-datacenter/labguides/source/images/command_api/commandapi_4.png
deleted file mode 100644
index 3eb58f0c5..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/command_api/commandapi_4.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/command_api/nested_connecting_1.png b/topologies/dual-datacenter/labguides/source/images/command_api/nested_connecting_1.png
deleted file mode 100644
index c77445582..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/command_api/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/command_api/nested_eos_1.png b/topologies/dual-datacenter/labguides/source/images/command_api/nested_eos_1.png
deleted file mode 100644
index d5239c0e9..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/command_api/nested_eos_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/command_api/nested_firefox_1.png b/topologies/dual-datacenter/labguides/source/images/command_api/nested_firefox_1.png
deleted file mode 100644
index 2164b2ace..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/command_api/nested_firefox_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/command_api/nested_firefox_2.png b/topologies/dual-datacenter/labguides/source/images/command_api/nested_firefox_2.png
deleted file mode 100644
index af157cfa1..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/command_api/nested_firefox_2.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/connecting/nested_connecting_1.png b/topologies/dual-datacenter/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/connecting/nested_connecting_2.png b/topologies/dual-datacenter/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/connecting/nested_connecting_3.png b/topologies/dual-datacenter/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_1.gif b/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_1.gif
deleted file mode 100644
index 00628de14..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_1.gif and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_2.gif b/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_2.gif
deleted file mode 100644
index 901681f66..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_2.gif and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_3.gif b/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_3.gif
deleted file mode 100644
index 14b66232c..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_3.gif and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_4.gif b/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_4.gif
deleted file mode 100644
index 7009bd277..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_4.gif and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_5.gif b/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_5.gif
deleted file mode 100644
index af687cf21..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/cvp_cc/cvp_cc_5.gif and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/cvp_configlet/cvp_configlet_1.gif b/topologies/dual-datacenter/labguides/source/images/cvp_configlet/cvp_configlet_1.gif
deleted file mode 100644
index 7e156b3f4..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/cvp_configlet/cvp_configlet_1.gif and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/cvp_configlet/cvp_configlet_2.gif b/topologies/dual-datacenter/labguides/source/images/cvp_configlet/cvp_configlet_2.gif
deleted file mode 100644
index 7edd29659..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/cvp_configlet/cvp_configlet_2.gif and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/cvp_configlet/cvp_configlet_3.gif b/topologies/dual-datacenter/labguides/source/images/cvp_configlet/cvp_configlet_3.gif
deleted file mode 100644
index 14ee0a71b..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/cvp_configlet/cvp_configlet_3.gif and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/cvp_configlet/nested_cvp_landing_1.png b/topologies/dual-datacenter/labguides/source/images/cvp_configlet/nested_cvp_landing_1.png
deleted file mode 100644
index 1057a55ed..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/cvp_configlet/nested_cvp_landing_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/cvp_configlet/nested_cvp_overview_1.png b/topologies/dual-datacenter/labguides/source/images/cvp_configlet/nested_cvp_overview_1.png
deleted file mode 100644
index 189ee2abc..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/cvp_configlet/nested_cvp_overview_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/cvx/nested_cvx_topo_1.png b/topologies/dual-datacenter/labguides/source/images/cvx/nested_cvx_topo_1.png
deleted file mode 100644
index 447c6e540..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/cvx/nested_cvx_topo_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_1.png b/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_1.png
deleted file mode 100644
index 7b0660363..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_2.png b/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_2.png
deleted file mode 100644
index f45c2c668..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_2.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_3.png b/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_3.png
deleted file mode 100644
index c5f7c4731..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_3.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_4.png b/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_4.png
deleted file mode 100644
index e950b1de0..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_4.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_5.png b/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_5.png
deleted file mode 100644
index 2fc232e83..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_5.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_6.png b/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_6.png
deleted file mode 100644
index fc95bf8f3..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/day2/nested_jenkins_6.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/eapi/eapi_1.png b/topologies/dual-datacenter/labguides/source/images/eapi/eapi_1.png
deleted file mode 100644
index 64eb18dfd..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/eapi/eapi_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/eapi/nested_eapi_ide_1.png b/topologies/dual-datacenter/labguides/source/images/eapi/nested_eapi_ide_1.png
deleted file mode 100644
index 9e93b191e..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/eapi/nested_eapi_ide_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/eapi/nested_eapi_ide_2.png b/topologies/dual-datacenter/labguides/source/images/eapi/nested_eapi_ide_2.png
deleted file mode 100644
index aa2e967e1..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/eapi/nested_eapi_ide_2.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/eapi/nested_eapi_ide_3.png b/topologies/dual-datacenter/labguides/source/images/eapi/nested_eapi_ide_3.png
deleted file mode 100644
index 921ae4c8c..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/eapi/nested_eapi_ide_3.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/evpn_class_guide/evpn_class_detailed_topo.png b/topologies/dual-datacenter/labguides/source/images/evpn_class_guide/evpn_class_detailed_topo.png
deleted file mode 100644
index 867d0d0dc..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/evpn_class_guide/evpn_class_detailed_topo.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/evpn_class_guide/evpn_class_quick_topo.png b/topologies/dual-datacenter/labguides/source/images/evpn_class_guide/evpn_class_quick_topo.png
deleted file mode 100644
index ffb228e8f..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/evpn_class_guide/evpn_class_quick_topo.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/gnmi/gNMI-terminal.png b/topologies/dual-datacenter/labguides/source/images/gnmi/gNMI-terminal.png
deleted file mode 100644
index dfb6b1561..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/gnmi/gNMI-terminal.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-cvp-streaming.png b/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-cvp-streaming.png
deleted file mode 100644
index 80f5cbb0f..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-cvp-streaming.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-eos-streaming.png b/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-eos-streaming.png
deleted file mode 100644
index 36dfd1515..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-eos-streaming.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-serviceaccount1.png b/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-serviceaccount1.png
deleted file mode 100644
index 8cdb50f0b..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-serviceaccount1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-serviceaccount2.png b/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-serviceaccount2.png
deleted file mode 100644
index 8d7cb5300..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-serviceaccount2.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-serviceaccount3.png b/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-serviceaccount3.png
deleted file mode 100644
index 6ad636631..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/gnmi/gnmi-serviceaccount3.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/l2evpn/nested_l2evpn_topo_1.png b/topologies/dual-datacenter/labguides/source/images/l2evpn/nested_l2evpn_topo_1.png
deleted file mode 100644
index 60ca67f71..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/l2evpn/nested_l2evpn_topo_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/l2evpn/nested_l2evpn_topo_dual_dc.png b/topologies/dual-datacenter/labguides/source/images/l2evpn/nested_l2evpn_topo_dual_dc.png
deleted file mode 100644
index afef347ba..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/l2evpn/nested_l2evpn_topo_dual_dc.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/l2ls/nested_l2ls_topo.png b/topologies/dual-datacenter/labguides/source/images/l2ls/nested_l2ls_topo.png
deleted file mode 100644
index a182e39e9..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/l2ls/nested_l2ls_topo.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/l3evpn/nested_l3evpn_topo_1.png b/topologies/dual-datacenter/labguides/source/images/l3evpn/nested_l3evpn_topo_1.png
deleted file mode 100644
index 9d159bc35..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/l3evpn/nested_l3evpn_topo_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/l3evpn/nested_l3evpn_topo_dual_dc.png b/topologies/dual-datacenter/labguides/source/images/l3evpn/nested_l3evpn_topo_dual_dc.png
deleted file mode 100644
index fae78545a..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/l3evpn/nested_l3evpn_topo_dual_dc.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/l3ls/nested_l3ls_topo_1.png b/topologies/dual-datacenter/labguides/source/images/l3ls/nested_l3ls_topo_1.png
deleted file mode 100644
index 361384526..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/l3ls/nested_l3ls_topo_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/logo.jpg b/topologies/dual-datacenter/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/media_bgp/media_bgp.png b/topologies/dual-datacenter/labguides/source/images/media_bgp/media_bgp.png
deleted file mode 100644
index 21a00f46a..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/media_bgp/media_bgp.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/media_intro/media_ip_intro.png b/topologies/dual-datacenter/labguides/source/images/media_intro/media_ip_intro.png
deleted file mode 100644
index f5d7f447c..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/media_intro/media_ip_intro.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/media_multicast/media_multicast.png b/topologies/dual-datacenter/labguides/source/images/media_multicast/media_multicast.png
deleted file mode 100644
index 42ac7f54d..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/media_multicast/media_multicast.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/media_ospf/media_ospf.png b/topologies/dual-datacenter/labguides/source/images/media_ospf/media_ospf.png
deleted file mode 100644
index 255a75dd4..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/media_ospf/media_ospf.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/media_stp_svi/media_stp_svi.png b/topologies/dual-datacenter/labguides/source/images/media_stp_svi/media_stp_svi.png
deleted file mode 100644
index 867ed6827..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/media_stp_svi/media_stp_svi.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/program_connecting/nested_connecting_1.png b/topologies/dual-datacenter/labguides/source/images/program_connecting/nested_connecting_1.png
deleted file mode 100644
index c77445582..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/program_connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/program_connecting/nested_connecting_2.png b/topologies/dual-datacenter/labguides/source/images/program_connecting/nested_connecting_2.png
deleted file mode 100644
index ba5ebc456..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/program_connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/program_connecting/nested_connecting_landing_1.png b/topologies/dual-datacenter/labguides/source/images/program_connecting/nested_connecting_landing_1.png
deleted file mode 100644
index cc1fd4647..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/program_connecting/nested_connecting_landing_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/program_connecting/nested_connecting_overview_1.png b/topologies/dual-datacenter/labguides/source/images/program_connecting/nested_connecting_overview_1.png
deleted file mode 100644
index 44ebea56d..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/program_connecting/nested_connecting_overview_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/pyeapi/nested_pyeapi_1.png b/topologies/dual-datacenter/labguides/source/images/pyeapi/nested_pyeapi_1.png
deleted file mode 100644
index 7f8b7b4e5..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/pyeapi/nested_pyeapi_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/pyeapi/nested_pyeapi_2.png b/topologies/dual-datacenter/labguides/source/images/pyeapi/nested_pyeapi_2.png
deleted file mode 100644
index 9b728a089..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/pyeapi/nested_pyeapi_2.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/tshoot_intro/tshoot_intro_1.png b/topologies/dual-datacenter/labguides/source/images/tshoot_intro/tshoot_intro_1.png
deleted file mode 100644
index 52b76d978..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/tshoot_intro/tshoot_intro_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/images/vxlan/nested_vxlan_topo_1.png b/topologies/dual-datacenter/labguides/source/images/vxlan/nested_vxlan_topo_1.png
deleted file mode 100644
index c3c696827..000000000
Binary files a/topologies/dual-datacenter/labguides/source/images/vxlan/nested_vxlan_topo_1.png and /dev/null differ
diff --git a/topologies/dual-datacenter/labguides/source/index.rst b/topologies/dual-datacenter/labguides/source/index.rst
deleted file mode 100644
index 5b53cbaf2..000000000
--- a/topologies/dual-datacenter/labguides/source/index.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-Welcome to the Arista ATD documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
- l2ls.rst
- l3ls.rst
- vxlan.rst
- l2evpn.rst
- l3evpn.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: CloudVision Portal
-
- cvp_configlet.rst
- cvp_cc.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Programmability
-
- programmability_connecting.rst
- command_api.rst
- eapi.rst
- pyeapi.rst
- gnmi.rst
- ansible_adhoc_and_simple_playbooks.rst
- ansible_and_jinja_templates.rst
- day2_operations.rst
- rollback.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Broadcaster Training
-
- media-IP_Intro.rst
- media-STP_SVI.rst
- media-ospf.rst
- media-bgp.rst
- media-multicast.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Troubleshooting Training
-
- tshoot-intro.rst
\ No newline at end of file
diff --git a/topologies/dual-datacenter/labguides/source/l2evpn.rst b/topologies/dual-datacenter/labguides/source/l2evpn.rst
deleted file mode 100644
index 9353e2a16..000000000
--- a/topologies/dual-datacenter/labguides/source/l2evpn.rst
+++ /dev/null
@@ -1,391 +0,0 @@
-
-L2 EVPN
-=======
-
-.. thumbnail:: images/l2evpn/nested_l2evpn_topo_dual_dc.png
- :align: center
-
- Click image to enlarge
-
-.. note:: This lab exercise is focused on the EVPN-VXLAN configuration. IP addresses, MLAG and BGP Underlay are already configured.
-
-1. Log into the **LabAccess** jumpserver:
-
- Type ``l2evpn`` at the prompt. The script will configure the datacenter with the exception of **s1-leaf4**
-
-#. On **s1-leaf4**, check if ArBGP is configured.
-
- .. code-block:: text
- :emphasize-lines: 1,2
-
- s1-leaf4#sh run section service
- service routing protocols model multi-agent
-
- .. note:: By default, EOS is using GateD routing process. Activating ArBGP is requiring a reboot.
-
-#. On **s1-leaf4**, check the following operational states before configuring EVPN constructs:
-
- a. Verify EOS MLAG operational details.
-
- .. code-block:: text
- :emphasize-lines: 1
-
- s1-leaf4#show mlag
- MLAG Configuration:
- domain-id : MLAG
- local-interface : Vlan4094
- peer-address : 10.255.255.1
- peer-link : Port-Channel1
- peer-config : inconsistent
-
- MLAG Status:
- state : Active
- negotiation status : Connected
- peer-link status : Up
- local-int status : Up
- system-id : 02:1c:73:c0:c6:14
- dual-primary detection : Disabled
- dual-primary interface errdisabled : False
-
- MLAG Ports:
- Disabled : 0
- Configured : 0
- Inactive : 0
- Active-partial : 0
- Active-full : 1
-
- s1-leaf4#show mlag interfaces
- local/remote
- mlag desc state local remote status
- ---------- ------------------------------ ----------------- ----------- ------------ ------------
- 5 MLAG Downlink - s1-host2 active-full Po5 Po5 up/up
-
- b. Verify BGP operational details for Underlay:
-
- .. code-block:: text
- :emphasize-lines: 1
-
- s1-leaf4(config-router-bgp)#sh ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.111.254.4, local AS number 65102
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.111.1.6 4 65100 9 12 0 0 00:00:07 Estab 6 6
- 10.111.2.6 4 65100 9 12 0 0 00:00:07 Estab 5 5
- 10.255.255.1 4 65102 8 10 0 0 00:00:07 Estab 10 10
-
- .. note:: You might see 3 underlay sessions.
-
- c. Check the ip routing table:
-
- .. code-block:: text
- :emphasize-lines: 1,25,26,28,29,30,31
-
- s1-leaf4(config-router-bgp)#sh ip route
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B - Other BGP Routes,
- B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1,
- I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate,
- A O - OSPF Summary, NG - Nexthop Group Static Route,
- V - VXLAN Control Service, M - Martian,
- DH - DHCP client installed default route,
- DP - Dynamic Policy Route, L - VRF Leaked,
- G - gRIBI, RC - Route Cache Route
-
- Gateway of last resort is not set
-
- B E 10.111.0.1/32 [200/0] via 10.111.1.6, Ethernet2
- B E 10.111.0.2/32 [200/0] via 10.111.2.6, Ethernet3
- C 10.111.1.6/31 is directly connected, Ethernet2
- B E 10.111.1.0/24 [200/0] via 10.111.1.6, Ethernet2
- C 10.111.2.6/31 is directly connected, Ethernet3
- B E 10.111.2.0/24 [200/0] via 10.111.2.6, Ethernet3
- B I 10.111.112.0/24 [200/0] via 10.255.255.1, Vlan4094
- B E 10.111.253.1/32 [200/0] via 10.111.1.6, Ethernet2
- via 10.111.2.6, Ethernet3
- B I 10.111.253.3/32 [200/0] via 10.255.255.1, Vlan4094
- B E 10.111.254.1/32 [200/0] via 10.111.1.6, Ethernet2
- via 10.111.2.6, Ethernet3
- B E 10.111.254.2/32 [200/0] via 10.111.1.6, Ethernet2
- via 10.111.2.6, Ethernet3
- B I 10.111.254.3/32 [200/0] via 10.255.255.1, Vlan4094
- C 10.111.254.4/32 is directly connected, Loopback0
- C 10.255.255.0/30 is directly connected, Vlan4094
- C 192.168.0.0/24 is directly connected, Management0
-
- .. note:: You can notice that s1-leaf4 has 2 paths for reaching s1-leaf1 or s1-leaf2 loopacks.
-
-#. On **s1-leaf4**, build the control-plane and the data-plane:
-
- a. Configure the EVPN control plane:
-
- .. code-block:: html
-
- router bgp 65102
- neighbor SPINE-EVPN peer group
- neighbor SPINE-EVPN remote-as 65100
- neighbor SPINE-EVPN update-source Loopback0
- neighbor SPINE-EVPN ebgp-multihop 3
- neighbor SPINE-EVPN send-community standard extended
- neighbor 10.111.0.1 peer group SPINE-EVPN
- neighbor 10.111.0.2 peer group SPINE-EVPN
- !
- address-family evpn
- neighbor SPINE-EVPN activate
-
- .. note::
- - BGP EVPN session will use interface Loopback0
- - Extended community have to be activated in order to manage BGP EVPN NLRI
-
- #. Check the EVPN control plane:
-
- .. code-block:: text
- :emphasize-lines: 1
-
- s1-leaf4(config-router-bgp)#sh bgp evpn summary
- BGP summary information for VRF default
- Router identifier 10.111.254.4, local AS number 65102
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.111.0.1 4 65100 6 5 0 0 00:00:03 Estab 2 2
- 10.111.0.2 4 65100 6 4 0 0 00:00:03 Estab 2 2
-
- .. note:: Two EVPN sessions are now established toward the spines.
-
- #. Configure the interface Vxlan with the appropriate Loopback1:
-
- .. code-block:: html
-
- interface Vxlan1
- vxlan source-interface Loopback1
-
- #. Check the Vxlan dataplane:
-
- .. code-block:: text
- :emphasize-lines: 1,2
-
- s1-leaf4(config-if-Vx1)#sh int vxlan 1
- Vxlan1 is down, line protocol is down (notconnect)
- Hardware is Vxlan
- Source interface is Loopback1 and is active with 10.111.253.3
- Replication/Flood Mode is not initialized yet
- Remote MAC learning via Datapath
- VNI mapping to VLANs
- Static VLAN to VNI mapping is not configured
- Static VRF to VNI mapping is not configured
- MLAG Shared Router MAC is 0000.0000.0000
-
- .. note:: Interface Vxlan1 is still inactive until L2 or L3 services will be added.
-
-#. Configure L2EVPN service on **s1-leaf4**
-
- a. Add the VLAN 112 with the VNI 112 association
-
- .. code-block:: html
-
- interface Vxlan1
- vxlan vlan 112 vni 112
-
- #. Add the mac vrf EVPN configuration for VLAN 112
-
- .. code-block:: html
-
- router bgp 65102
- vlan 112
- rd auto
- route-target both 112:112
- redistribute learned
-
- #. Check the interface Vxlan config
-
- .. code-block:: text
- :emphasize-lines: 1
-
- s1-leaf4(config-macvrf-12)#sh vxlan config-sanity detail
- Category Result Detail
- ---------------------------------- -------- --------------------------------------------------
- Local VTEP Configuration Check OK
- Loopback IP Address OK
- VLAN-VNI Map OK
- Routing OK
- VNI VRF ACL OK
- Decap VRF-VNI Map OK
- VRF-VNI Dynamic VLAN OK
- Remote VTEP Configuration Check OK
- Remote VTEP OK
- Platform Dependent Check OK
- VXLAN Bridging OK
- VXLAN Routing OK VXLAN Routing not enabled
- CVX Configuration Check OK
- CVX Server OK Not in controller client mode
- MLAG Configuration Check OK Run 'show mlag config-sanity' to verify MLAG config
- Peer VTEP IP OK
- MLAG VTEP IP OK
- Peer VLAN-VNI OK
- Virtual VTEP IP OK
-
- #. Check the VXLAN dataplane
-
- .. code-block:: text
- :emphasize-lines: 1,2
-
- s1-leaf4(config-router-bgp)#sh int vxlan 1
- Vxlan1 is up, line protocol is up (connected)
- Hardware is Vxlan
- Source interface is Loopback1 and is active with 10.111.253.3
- Replication/Flood Mode is headend with Flood List Source: EVPN
- Remote MAC learning via EVPN
- VNI mapping to VLANs
- Static VLAN to VNI mapping is
- [112, 112]
- Note: All Dynamic VLANs used by VCS are internal VLANs.
- Use 'show vxlan vni' for details.
- Static VRF to VNI mapping is not configured
- Headend replication flood vtep list is:
- 112 10.111.253.1
- MLAG Shared Router MAC is 0000.0000.0000
-
-#. Verify VXLAN and L2EVPN
-
- a. On **s1-leaf1** (and/or **s1-leaf2**) verify the IMET table
-
- .. code-block:: text
- :emphasize-lines: 1,11,12
-
- s1-leaf1#sh bgp evpn route-type imet
- BGP routing table information for VRF default
- Router identifier 10.111.254.1, local AS number 65101
- Route status codes: s - suppressed, * - valid, > - active, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup
- % - Pending BGP convergence
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * >Ec RD: 10.111.254.3:112 imet 10.111.253.3
- 10.111.253.3 - 100 0 65100 65102 i
- * ec RD: 10.111.254.3:112 imet 10.111.253.3
- 10.111.253.3 - 100 0 65100 65102 i
- * >Ec RD: 10.111.254.4:112 imet 10.111.253.3
- 10.111.253.3 - 100 0 65100 65102 i
- * ec RD: 10.111.254.4:112 imet 10.111.253.3
- 10.111.253.3 - 100 0 65100 65102 i
- * > RD: 10.111.254.1:112 imet 10.111.253.1
- - - - 0 i
-
- .. note:: s1-leaf4 has signaled its membership to VNI 112 via EVPN RT-3 route (RD: 10.111.254.3:112)
-
- .. code-block:: text
- :emphasize-lines: 1,13,14
-
- s1-leaf1#sh interfaces vxlan 1
- Vxlan1 is up, line protocol is up (connected)
- Hardware is Vxlan
- Source interface is Loopback1 and is active with 10.111.253.1
- Replication/Flood Mode is headend with Flood List Source: EVPN
- Remote MAC learning via EVPN
- VNI mapping to VLANs
- Static VLAN to VNI mapping is
- [112, 112]
- Note: All Dynamic VLANs used by VCS are internal VLANs.
- Use 'show vxlan vni' for details.
- Static VRF to VNI mapping is not configured
- Headend replication flood vtep list is:
- 112 10.111.253.3
- MLAG Shared Router MAC is 0000.0000.0000
-
- .. note::
- - EVPN RT-3 route has been used for building the appropriate flood list
- - s1-leaf4 knows where to send the BUM traffic for VNI 112 (HER).
-
- #. Log into **s1-host1** and ping **s2-host2**
-
- .. code-block:: text
- :emphasize-lines: 1
-
- s1-host1#ping 10.111.112.202
- PING 10.111.112.202 (10.111.112.202) 72(100) bytes of data.
- 80 bytes from 10.111.112.202: icmp_seq=1 ttl=64 time=16.8 ms
- 80 bytes from 10.111.112.202: icmp_seq=2 ttl=64 time=14.7 ms
- 80 bytes from 10.111.112.202: icmp_seq=3 ttl=64 time=16.8 ms
- 80 bytes from 10.111.112.202: icmp_seq=4 ttl=64 time=16.7 ms
- 80 bytes from 10.111.112.202: icmp_seq=5 ttl=64 time=15.2 ms
- --- 10.111.112.202 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 61ms
-
- #. On **s1-leaf1**, check the MAC address-table :
-
- .. code-block:: text
- :emphasize-lines: 1,8
-
- s1-leaf1#show mac address-table dynamic
- Mac Address Table
- ------------------------------------------------------------------
-
- Vlan Mac Address Type Ports Moves Last Move
- ---- ----------- ---- ----- ----- ---------
- 112 001c.73c0.c616 DYNAMIC Po5 1 0:00:41 ago
- 112 001c.73c0.c617 DYNAMIC Vx1 1 0:00:41 ago
- Total Mac Addresses for this criterion: 2
- Multicast Mac Address Table
- ------------------------------------------------------------------
-
- Vlan Mac Address Type Ports
- ---- ----------- ---- -----
- Total Mac Addresses for this criterion: 0
-
- .. note:: s1-host2 MAC is seen thru the interface Vxlan 1
-
- #. On **s1-leaf1**, check the EVPN control-plane for RT-2 :
-
- .. code-block:: text
- :emphasize-lines: 1,15,16,17
-
- s1-leaf1#show bgp evpn route-type mac-ip
- BGP routing table information for VRF default
- Router identifier 10.111.254.1, local AS number 65101
- Route status codes: s - suppressed, * - valid, > - active, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup
- % - Pending BGP convergence
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > RD: 10.111.254.1:112 mac-ip 001c.73c0.c616
- - - - 0 i
- * > RD: 10.111.254.1:112 mac-ip 001c.73c0.c616 10.111.112.201
- - - - 0 i
- * >Ec RD: 10.111.254.3:112 mac-ip 001c.73c0.c617
- 10.111.253.3 - 100 0 65100 65102 i
- * ec RD: 10.111.254.3:112 mac-ip 001c.73c0.c617
- 10.111.253.3 - 100 0 65100 65102 i
- * >Ec RD: 10.111.254.4:112 mac-ip 001c.73c0.c617
- 10.111.253.3 - 100 0 65100 65102 i
- * ec RD: 10.111.254.4:112 mac-ip 001c.73c0.c617
- 10.111.253.3 - 100 0 65100 65102 i
-
- #. On **s1-leaf1**, check the VXLAN data-plane for MAC address :
-
- .. code-block:: text
- :emphasize-lines: 1,7
-
- s1-leaf1#sh vxlan address-table evpn
- Vxlan Mac Address Table
- ----------------------------------------------------------------------
-
- VLAN Mac Address Type Prt VTEP Moves Last Move
- ---- ----------- ---- --- ---- ----- ---------
- 112 001c.73c0.c617 EVPN Vx1 10.111.253.3 1 0:00:57 ago
- Total Remote Mac Addresses for this criterion: 1
-
- .. note::
- - EVPN-VXLAN is respecting the MAC source learning mechanism
- - the ping request has been flood across the network
- - s1-leaf4 (and s1-leaf3) has sent a RT-2 message when it learnt s1-host2 MAC from the ping sent by s1-host2
- - s1-leaf1 has 4 paths to reach 001c.73c0.c617 : 2 to each remote VTEP
-
-**LAB COMPLETE!**
diff --git a/topologies/dual-datacenter/labguides/source/l2ls.rst b/topologies/dual-datacenter/labguides/source/l2ls.rst
deleted file mode 100644
index 77d3f6607..000000000
--- a/topologies/dual-datacenter/labguides/source/l2ls.rst
+++ /dev/null
@@ -1,486 +0,0 @@
-Layer 2 Leaf-Spine
-==================
-
-
-.. thumbnail:: images/l2ls/nested_l2ls_topo.png
- :align: center
-
- Click image to enlarge
-
-1. Log into the **LabAccess** jumpserver to prepare the lab environment:
-
- a. Type ``l2ls`` at the prompt. The script will configure the datacenter with the exception of **s1-leaf4**.
-
- .. note::
-
- Did you know the “l2ls” script is composed of Python code that
- uses the CloudVision REST API to automate the provisioning of
- CVP Configlets? The configlets that are configured via the REST API
- are ``L2LS_s1-spine1``, ``L2LS_s1-spine2``, ``L2LS_s1-leaf1``,
- ``L2LS_s1-leaf2``, ``L2LS_s1-leaf3``.
-
- .. note::
-
- The manually-entered commands below that are part of this lab are
- equivalent to ``L2LS_s1-leaf4``.
-
-#. Prior to configuration, verify the current operational status of the environment.
-
- a. On **s1-leaf3**, verify EOS MLAG operational details. Since configuration is not complete yet, it will not be up.
-
- .. note::
-
- Full commands will be typed for reference in lab steps, but commands in EOS can be
- shortened or tab-completed at the user's discretion.
-
- .. code-block:: text
- :emphasize-lines: 1, 25
-
- s1-leaf3#show mlag
- MLAG Configuration:
- domain-id : MLAG
- local-interface : Vlan4094
- peer-address : 10.255.255.254
- peer-link : Port-Channel1
- peer-config :
-
- MLAG Status:
- state : Inactive
- negotiation status : Connecting
- peer-link status : Lowerlayerdown
- local-int status : Lowerlayerdown
- system-id : 00:00:00:00:00:00
- dual-primary detection : Disabled
- dual-primary interface errdisabled : False
-
- MLAG Ports:
- Disabled : 2
- Configured : 0
- Inactive : 0
- Active-partial : 0
- Active-full : 0
-
- s1-leaf3#show mlag interfaces
- local/remote
- mlag desc state local remote status
- ---------- ------------------------------------ -------------- ----------- ------------ ------------
- 4 MLAG Downlink - s1-host2 disabled Po4 - up/-
- 34 MLAG Uplink - s1-spine1 and s1 disabled Po34 - up/-
-
-#. Configure the MLAG domain on **s1-leaf4** using the following steps.
-
- a. Configure the layer 2 VLANs for host connectivity.
-
- .. note::
-
- Arista EOS utilizes the Industry-Standard CLI. When entering configuration commands, be
- sure to first type ``configure`` to enter configuration mode.
-
- .. code-block:: text
-
- vlan 112
- name Host_Network_112
- !
- vlan 134
- name Host_Network_134
-
- #. Configure the layer 2 VLANs MLAG communication between the peer switches.
-
- .. note::
-
- Arista best practices leverage a ``trunk group`` to limit layer 2 forwarding
- of the MLAG peering VLAN to only the peer-link, which we will see later. This
- is because we also recommend disabling STP operation on the MLAG peering VLAN
- to ensure MLAG adjacency can form immediately as EOS comes up without waiting
- for the STP learning process to complete.
-
- .. code-block:: text
-
- vlan 4094
- trunk group MLAGPEER
- !
- no spanning-tree vlan-id 4094
-
- #. Configure the MLAG Peer-link Port-Channel on **s1-leaf4** to connect to **s1-leaf3**.
-
- .. note::
-
- Here, the ``trunk group`` applied to the MLAG peering VLAN is applied to the peer-
- link to ensure the MLAG VLAN is only forwarded on this link. Note we also can do
- interface ranges and groups when applying similar configurations as shown. Member
- interfaces of a port-channel will inherit all configuration of the parent so there
- is no need to apply things like switchport commands to the individual interfaces.
-
- .. code-block:: text
-
- interface Port-Channel1
- description MLAG Peer-link - s1-leaf3
- switchport mode trunk
- switchport trunk group MLAGPEER
- !
- interface Ethernet1,6
- description MLAG Peer-link - s1-leaf3
- channel-group 1 mode active
-
- #. Verify Port-Channel and L2 forwarding status.
-
- .. note::
-
- In EOS, any command can be run from any CLI mode. Here we can run show commands
- directly from interface configuration mode.
-
- .. code-block:: text
- :emphasize-lines: 1, 11, 31
-
- s1-leaf4(config-if-Et1,6)#show interfaces status
- Port Name Status Vlan Duplex Speed Type Flags Encapsulation
- Et1 MLAG Peer-link - s1-leaf3 connected in Po1 full 1G EbraTestPhyPort
- Et2 connected 1 full 1G EbraTestPhyPort
- Et3 connected 1 full 1G EbraTestPhyPort
- Et4 connected 1 full 1G EbraTestPhyPort
- Et6 MLAG Peer-link - s1-leaf3 connected in Po1 full 1G EbraTestPhyPort
- Ma0 connected routed a-full a-1G 10/100/1000
- Po1 MLAG Peer-link - s1-leaf3 connected trunk full 2G N/A
-
- s1-leaf4(config-if-Et1,6)#show port-channel dense
-
- Flags
- -------------------------- ----------------------------- -------------------------
- a - LACP Active p - LACP Passive * - static fallback
- F - Fallback enabled f - Fallback configured ^ - individual fallback
- U - In Use D - Down
- + - In-Sync - - Out-of-Sync i - incompatible with agg
- P - bundled in Po s - suspended G - Aggregable
- I - Individual S - ShortTimeout w - wait for agg
- E - Inactive. The number of configured port channels exceeds the config limit
- M - Exceeds maximum weight
-
- Number of channels in use: 1
- Number of aggregators: 1
-
- Port-Channel Protocol Ports
- ------------------ -------------- ------------------
- Po1(U) LACP(a) Et1(PG+) Et6(PG+)
-
- s1-leaf4(config-if-Et1,6)#show interfaces trunk
- Port Mode Status Native vlan
- Po1 trunk trunking 1
-
- Port Vlans allowed
- Po1 All
-
- Port Vlans allowed and active in management domain
- Po1 1,112,134,4094
-
- Port Vlans in spanning tree forwarding state
- Po1 1,112,134,4094
-
- #. Configure the MLAG Layer 3 peering network.
-
- .. note::
-
- The MLAG VLAN and peering network are used **only** for communication between
- the peer switches. As such, the IP network that is used does not need to be
- unique or routable (though it can be if customers choose). In the lab, we
- re-use 10.255.255.252/30 on all MLAG pairs.
-
- .. code-block:: text
-
- interface Vlan4094
- description MLAG Peer Network
- ip address 10.255.255.254/30
-
- #. Verify layer 3 connectivity between the peer switches on the MLAG VLAN.
-
- .. code-block:: text
- :emphasize-lines: 1
-
- s1-leaf4(config-if-Vl4094)#ping 10.255.255.253
- PING 10.255.255.253 (10.255.255.253) 72(100) bytes of data.
- 80 bytes from 10.255.255.253: icmp_seq=1 ttl=64 time=7.33 ms
- 80 bytes from 10.255.255.253: icmp_seq=2 ttl=64 time=6.82 ms
- 80 bytes from 10.255.255.253: icmp_seq=3 ttl=64 time=5.65 ms
- 80 bytes from 10.255.255.253: icmp_seq=4 ttl=64 time=7.16 ms
- 80 bytes from 10.255.255.253: icmp_seq=5 ttl=64 time=7.53 ms
-
- --- 10.255.255.253 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 29ms
- rtt min/avg/max/mdev = 5.659/6.903/7.530/0.663 ms, ipg/ewma 7.281/7.135 ms
-
- #. Define the MLAG Domain parameters to establish the peering.
-
- .. note::
-
- Similar to the peering network, the MLAG ``domain-id`` can be re-used across
- pairs as it is a locally-significant value. The other values describe the
- connectivity between the peer switches.
-
- .. code-block:: text
-
- mlag configuration
- domain-id MLAG
- local-interface Vlan4094
- peer-address 10.255.255.253
- peer-link Port-Channel1
-
- #. Verify the MLAG relationship between **s1-leaf3** and **s1-leaf4**.
-
- .. code-block:: text
- :emphasize-lines: 1
-
- s1-leaf4(config-mlag)#show mlag
- MLAG Configuration:
- domain-id : MLAG
- local-interface : Vlan4094
- peer-address : 10.255.255.253
- peer-link : Port-Channel1
- peer-config : consistent
-
- MLAG Status:
- state : Active
- negotiation status : Connected
- peer-link status : Up
- local-int status : Up
- system-id : 02:1c:73:c0:c6:14
- dual-primary detection : Disabled
- dual-primary interface errdisabled : False
-
- MLAG Ports:
- Disabled : 0
- Configured : 0
- Inactive : 0
- Active-partial : 0
- Active-full : 0
-
-#. With the MLAG domain established, configure the MLAG uplink to the spines on **s1-leaf4**.
-
- a. Configure a Port-Channel and member interfaces on **s1-leaf4** connecting to **s1-spine1** and **s1-spine2**.
-
- .. note::
-
- What matters is that the ``mlag`` ID of the Port-Channel matches between the MLAG
- peers. The ``Port-Channel`` ID is only locally-significant to the switch, but
- best practice is to match all ``mlag`` and ``Port-Channel`` IDs.
-
- .. code-block:: text
-
- interface Port-Channel34
- description MLAG Uplink - s1-spine1 and s1-spine2
- switchport mode trunk
- mlag 34
- !
- interface Ethernet2
- description MLAG Uplink - s1-spine1
- channel-group 34 mode active
- !
- interface Ethernet3
- description MLAG Uplink - s1-spine2
- channel-group 34 mode active
-
- #. Verify the MLAG Port-Channel is negotiated between the peers and all interfaces are aggregated.
-
- .. code-block:: text
- :emphasize-lines: 1, 9, 14
-
- s1-leaf4(config-if-Et3)#show mlag | begin Ports
- MLAG Ports:
- Disabled : 0
- Configured : 0
- Inactive : 0
- Active-partial : 0
- Active-full : 1
-
- s1-leaf4(config-if-Et3)#show mlag interfaces
- local/remote
- mlag desc state local remote status
- ---------- ------------------------------------ ----------------- ----------- ------------ ------------
- 34 MLAG Uplink - s1-spine1 and s1 active-full Po34 Po34 up/up
- s1-leaf4(config-if-Et3)#show port-channel dense
-
- Flags
- -------------------------- ----------------------------- -------------------------
- a - LACP Active p - LACP Passive * - static fallback
- F - Fallback enabled f - Fallback configured ^ - individual fallback
- U - In Use D - Down
- + - In-Sync - - Out-of-Sync i - incompatible with agg
- P - bundled in Po s - suspended G - Aggregable
- I - Individual S - ShortTimeout w - wait for agg
- E - Inactive. The number of configured port channels exceeds the config limit
- M - Exceeds maximum weight
-
- Number of channels in use: 2
- Number of aggregators: 2
-
- Port-Channel Protocol Ports
- ------------------ -------------- ----------------------------------
- Po1(U) LACP(a) Et1(PG+) Et6(PG+)
- Po34(U) LACP(a) Et2(PG+) Et3(PG+) PEt2(P) PEt3(P)
-
-#. Now that uplinks to the spines are established, configure downstream host connectivity on **s1-leaf4**.
-
- a. Configure a Port-Channel and member interface on **s1-leaf4** connecting to **s1-host2**.
-
- .. code-block:: text
-
- interface Port-Channel5
- description MLAG Downlink - s1-host2
- switchport access vlan 112
- mlag 5
- !
- interface Ethernet4
- description MLAG Downlink - s1-host2
- channel-group 5 mode active
-
- #. Verify the host-facing MLAG Port-Channel is negotiated between the peers and all interfaces are aggregated.
-
- .. code-block:: text
- :emphasize-lines: 1, 6
-
- s1-leaf4(config-if-Et4)#show mlag interfaces 5
- local/remote
- mlag desc state local remote status
- ---------- ------------------------------ ----------------- ----------- ------------ ------------
- 5 MLAG Downlink - s1-host2 active-full Po5 Po5 up/up
- s1-leaf4(config-if-Et4)#show port-channel 5
- Port Channel Port-Channel5:
- Active Ports: Ethernet4 PeerEthernet4
-
-#. Validate connectivity from **s1-host1** to **s1-host2** by logging into **s1-host1** through the menu (option 1 in ssh menu) or using screen.
-
- .. code-block:: text
- :emphasize-lines: 1
-
- s1-host1#ping 10.111.112.202
- PING 10.111.112.202 (10.111.112.202) 72(100) bytes of data.
- 80 bytes from 10.111.112.202: icmp_seq=1 ttl=64 time=47.7 ms
- 80 bytes from 10.111.112.202: icmp_seq=2 ttl=64 time=38.8 ms
- 80 bytes from 10.111.112.202: icmp_seq=3 ttl=64 time=30.7 ms
- 80 bytes from 10.111.112.202: icmp_seq=4 ttl=64 time=21.7 ms
- 80 bytes from 10.111.112.202: icmp_seq=5 ttl=64 time=19.1 ms
-
- --- 10.111.112.202 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 41ms
- rtt min/avg/max/mdev = 19.128/31.636/47.743/10.637 ms, pipe 5, ipg/ewma 10.272/38.948 ms
-
-#. Verify layer 2 forwarding information on the spines.
-
- .. code-block:: text
- :emphasize-lines: 1
-
- s1-spine1#show mac address-table vlan 112
- Mac Address Table
- ------------------------------------------------------------------
-
- Vlan Mac Address Type Ports Moves Last Move
- ---- ----------- ---- ----- ----- ---------
- 112 001c.73c0.c611 STATIC Po1
- 112 001c.73c0.c616 DYNAMIC Po12 1 0:01:08 ago
- 112 001c.73c0.c617 DYNAMIC Po34 1 0:03:02 ago
- Total Mac Addresses for this criterion: 3
-
- Multicast Mac Address Table
- ------------------------------------------------------------------
-
- Vlan Mac Address Type Ports
- ---- ----------- ---- -----
- Total Mac Addresses for this criterion: 0
-
-#. Explore other command outputs related to MLAG Operation on **s1-leaf4**.
-
- a. Verify MLAG peer roles and detailed state information.
-
- .. note::
-
- The ``show mlag detail`` output contains a wealth of information. Notice
- that while there is a ``primary`` and ``secondary`` role for the MLAG peers,
- it is not a configurable value. The peers automatically negotiate this between
- themselves. The MLAG primary device is responsible for all STP processing for
- both peers. The ``Reload delay`` value is also very important in upgrade and
- maintenance scenarios.
-
- .. code-block:: text
- :emphasize-lines: 1
-
- s1-leaf4#show mlag detail
- MLAG Configuration:
- domain-id : MLAG
- local-interface : Vlan4094
- peer-address : 10.255.255.253
- peer-link : Port-Channel1
- peer-config : consistent
-
- MLAG Status:
- state : Active
- negotiation status : Connected
- peer-link status : Up
- local-int status : Up
- system-id : 02:1c:73:c0:c6:14
- dual-primary detection : Disabled
- dual-primary interface errdisabled : False
-
- MLAG Ports:
- Disabled : 0
- Configured : 0
- Inactive : 0
- Active-partial : 0
- Active-full : 2
-
- MLAG Detailed Status:
- State : secondary
- Peer State : primary
- State changes : 2
- Last state change time : 0:42:12 ago
- Hardware ready : True
- Failover : False
- Failover Cause(s) : Unknown
- Last failover change time : never
- Secondary from failover : False
- Peer MAC address : 00:1c:73:c0:c6:14
- Peer MAC routing supported : False
- Reload delay : 300 seconds
- Non-MLAG reload delay : 300 seconds
- Ports errdisabled : False
- Lacp standby : False
- Configured heartbeat interval : 4000 ms
- Effective heartbeat interval : 4000 ms
- Heartbeat timeout : 60000 ms
- Last heartbeat timeout : never
- Heartbeat timeouts since reboot : 0
- UDP heartbeat alive : True
- Heartbeats sent/received : 633/635
- Peer monotonic clock offset : 0.000013 seconds
- Agent should be running : True
- P2p mount state changes : 1
- Fast MAC redirection enabled : False
-
- #. Configure a VLAN on **s1-leaf4** only to see how MLAG tracks consistency between the peer switches.
-
- .. note::
-
- It is critical that the MLAG peers be consistent to ensure proper
- forwarding and operation. The ``show mlag config-sanity`` command helps
- to track values that are not consistent. These values should be rectified
- in production environments unless guided otherwise by an Arista SE.
-
- .. code-block:: text
- :emphasize-lines: 3, 14
-
- s1-leaf4(config)#vlan 999
- s1-leaf4(config-vlan-999)#name TEMP
- s1-leaf4(config-vlan-999)#show mlag config-sanity
- No per interface configuration inconsistencies found.
-
- Global configuration inconsistencies:
- Feature Attribute Local value Peer value
- -------------- --------------------------- ----------------- ----------
- bridging admin-state vlan 999 active -
- bridging mac-learning vlan 999 True -
-
-
- s1-leaf4(config-vlan-999)#no vlan 999
- s1-leaf4(config)#show mlag config-sanity
- No global configuration inconsistencies found.
-
- No per interface configuration inconsistencies found.
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/dual-datacenter/labguides/source/l3evpn.rst b/topologies/dual-datacenter/labguides/source/l3evpn.rst
deleted file mode 100644
index fea83dad7..000000000
--- a/topologies/dual-datacenter/labguides/source/l3evpn.rst
+++ /dev/null
@@ -1,565 +0,0 @@
-L3 EVPN
-=======
-
-.. thumbnail:: images/l3evpn/nested_l3evpn_topo_dual_dc.png
- :align: center
-
- Click image to enlarge``
-
-.. note::
- - This lab exercise is focused on the EVPN-VXLAN configuration for EVPN L3 services (Symmetric IRB).
- - The goal is to provide inter-subnet routing capability between 2 subnets belonging to the same VRF.
- - IP addresses, MLAG and BGP Underlay are already configured.
-
-1. Log into the **LabAccess** jumpserver:
-
- Type ``l3evpn`` at the prompt. The script will configure the datacenter with the exception of **s1-leaf4**
-
-#. On **s1-leaf4**, check if ArBGP is configured.
-
- .. code-block:: text
- :emphasize-lines: 1,2
-
- s1-leaf4#sh run section service
- service routing protocols model multi-agent
-
- .. note:: By default, EOS is using GateD routing process. Activating ArBGP is requiring a reboot.``
-
-#. On **s1-leaf4**, check the following operational states before configuring EVPN constructs:
-
- a. Verify EOS MLAG operational details.
-
- .. code-block:: text
- :emphasize-lines: 1
-
- s1-leaf4#show mlag
- MLAG Configuration:
- domain-id : MLAG
- local-interface : Vlan4094
- peer-address : 10.255.255.1
- peer-link : Port-Channel1
- peer-config : inconsistent
-
- MLAG Status:
- state : Active
- negotiation status : Connected
- peer-link status : Up
- local-int status : Up
- system-id : 02:1c:73:c0:c6:14
- dual-primary detection : Disabled
- dual-primary interface errdisabled : False
-
- MLAG Ports:
- Disabled : 0
- Configured : 0
- Inactive : 0
- Active-partial : 0
- Active-full : 1
-
- s1-leaf4#show mlag interfaces
- local/remote
- mlag desc state local remote status
- ---------- ------------------------------ ----------------- ----------- ------------ ------------
- 5 MLAG Downlink - s1-host2 active-full Po5 Po5 up/up
-
- b. Verify BGP operational details for Underlay:
-
- .. code-block:: text
- :emphasize-lines: 1
-
- s1-leaf4(config-router-bgp)#sh ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.111.254.4, local AS number 65102
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.111.1.6 4 65100 9 12 0 0 00:00:07 Estab 6 6
- 10.111.2.6 4 65100 9 12 0 0 00:00:07 Estab 5 5
- 10.255.255.1 4 65102 8 10 0 0 00:00:07 Estab 10 10
-
- .. note:: You might see 3 underlay sessions.
-
- c. Check the ip routing table:
-
- .. code-block:: text
- :emphasize-lines: 1,25,26,28,29,30,31
-
- s1-leaf4(config-router-bgp)#sh ip route
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B - Other BGP Routes,
- B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1,
- I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate,
- A O - OSPF Summary, NG - Nexthop Group Static Route,
- V - VXLAN Control Service, M - Martian,
- DH - DHCP client installed default route,
- DP - Dynamic Policy Route, L - VRF Leaked,
- G - gRIBI, RC - Route Cache Route
-
- Gateway of last resort is not set
-
- B E 10.111.0.1/32 [200/0] via 10.111.1.6, Ethernet2
- B E 10.111.0.2/32 [200/0] via 10.111.2.6, Ethernet3
- C 10.111.1.6/31 is directly connected, Ethernet2
- B E 10.111.1.0/24 [200/0] via 10.111.1.6, Ethernet2
- C 10.111.2.6/31 is directly connected, Ethernet3
- B E 10.111.2.0/24 [200/0] via 10.111.2.6, Ethernet3
- B I 10.111.112.0/24 [200/0] via 10.255.255.1, Vlan4094
- B E 10.111.253.1/32 [200/0] via 10.111.1.6, Ethernet2
- via 10.111.2.6, Ethernet3
- B I 10.111.253.3/32 [200/0] via 10.255.255.1, Vlan4094
- B E 10.111.254.1/32 [200/0] via 10.111.1.6, Ethernet2
- via 10.111.2.6, Ethernet3
- B E 10.111.254.2/32 [200/0] via 10.111.1.6, Ethernet2
- via 10.111.2.6, Ethernet3
- B I 10.111.254.3/32 [200/0] via 10.255.255.1, Vlan4094
- C 10.111.254.4/32 is directly connected, Loopback0
- C 10.255.255.0/30 is directly connected, Vlan4094
- C 192.168.0.0/24 is directly connected, Management0
-
- .. note:: You can notice that s1-leaf4 has 2 paths for reaching s1-leaf1 or s1-leaf2 loopacks.
-
-#. On **s1-leaf4**, build the control-plane and the data-plane:
-
- a. Configure the EVPN control plane:
-
- .. code-block:: html
-
- router bgp 65102
- neighbor SPINE-EVPN peer group
- neighbor SPINE-EVPN remote-as 65100
- neighbor SPINE-EVPN update-source Loopback0
- neighbor SPINE-EVPN ebgp-multihop 3
- neighbor SPINE-EVPN send-community standard extended
- neighbor 10.111.0.1 peer group SPINE-EVPN
- neighbor 10.111.0.2 peer group SPINE-EVPN
- !
- address-family evpn
- neighbor SPINE-EVPN activate
-
- .. note::
- - BGP EVPN session will use interface Loopback0
- - Extended community have to be activated in order to manage BGP EVPN NLRI
-
- #. Check the EVPN control plane:
-
- .. code-block:: text
- :emphasize-lines: 1
-
- s1-leaf4(config-router-bgp)#sh bgp evpn summary
- BGP summary information for VRF default
- Router identifier 10.111.254.4, local AS number 65102
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.111.0.1 4 65100 8 4 0 0 00:00:03 Estab 4 4
- 10.111.0.2 4 65100 8 6 0 0 00:00:03 Estab 4 4
-
- .. note:: Two EVPN sessions are now established toward the spines.
-
- #. Configure the interface Vxlan with the appropriate Loopback1:
-
- .. code-block:: html
-
- interface Vxlan1
- vxlan source-interface Loopback1
-
- #. Check the Vxlan dataplane:
-
- .. code-block:: text
- :emphasize-lines: 1,2
-
- s1-leaf4(config-if-Vx1)#sh int vxlan 1
- Vxlan1 is down, line protocol is down (notconnect)
- Hardware is Vxlan
- Source interface is Loopback1 and is active with 10.111.253.3
- Replication/Flood Mode is not initialized yet
- Remote MAC learning via Datapath
- VNI mapping to VLANs
- Static VLAN to VNI mapping is not configured
- Static VRF to VNI mapping is not configured
- MLAG Shared Router MAC is 0000.0000.0000
-
- .. note:: Interface Vxlan1 is still inactive until L2 or L3 services will be added.
-
-#. Configure L3EVPN service on **s1-leaf4**
-
- a. Configure and activate the ipv4 routing for the vrf **TENANT**
-
- .. code-block:: text
-
- vrf instance TENANT
- !
- ip routing vrf TENANT
- !
-
- #. Configure vrf interfaces (*start in global configuration mode not BGP*)
-
- .. code-block:: text
-
- vlan 134
- !
- interface Vlan134
- description Host Network
- vrf TENANT
- ip address virtual 10.111.134.1/24
- !
-
- .. note::
- - `ip address virtual` is generally used to conserve IP addresses in VXLAN deployments and to provide an Anycast gateway.
- - An alternative is to use `ip virtual router` to avoid the provisioning of a VXLAN for `vlan 134` - Please consult the Aristat documentation for further details.
-
- #. Configure EVPN control plane : MAC-IP and IP-VRF
-
- .. code-block:: text
-
- router bgp 65102
- rd auto
- !
- vlan 134
- rd auto
- route-target both 134:134
- redistribute learned
- !
- vrf TENANT
- route-target import evpn 5001:5001
- route-target export evpn 5001:5001
- redistribute connected
- !
-
- .. note::
- - MAC-IP : same configuration as for L2VPN service
- - VRF-IP : this is the L3 service - `redistribute connected` is used here for redistributing `10.111.134.0/24` into the EVPN domain
-
- #. Configure VXLAN data plane : Map VRF and VLAN to VNI
-
- .. code-block:: text
-
- interface Vxlan1
- vxlan virtual-router encapsulation mac-address mlag-system-id
- vxlan vlan 134 vni 134
- vxlan vrf TENANT vni 5001
- !
-
- .. note::
- - this is S-IRB setup : a specific "L3" VNI is associated to "TENANT" vrf.
- - all "routed" flows between leaves will be encapsulated with VNI 5001
- - `vxlan virtual-router encapsulation mac-address mlag-system-id` is for faster convergence and for avoiding unnecessary peer-link crossing
-
- #. Check the interface Vxlan config
-
- .. code-block:: text
- :emphasize-lines: 1,14,15
-
- s1-leaf4#sh vxlan config-sanity detail
- Category Result Detail
- ---------------------------------- -------- --------------------------------------------------
- Local VTEP Configuration Check OK
- Loopback IP Address OK
- VLAN-VNI Map OK
- Routing OK
- VNI VRF ACL OK
- Decap VRF-VNI Map OK
- VRF-VNI Dynamic VLAN OK
- Remote VTEP Configuration Check OK
- Remote VTEP OK
- Platform Dependent Check OK
- VXLAN Bridging OK
- VXLAN Routing OK
- CVX Configuration Check OK
- CVX Server OK Not in controller client mode
- MLAG Configuration Check OK Run 'show mlag config-sanity' to verify MLAG config
- Peer VTEP IP OK
- MLAG VTEP IP OK
- Peer VLAN-VNI OK
- Virtual VTEP IP OK
-
- #. Check the VXLAN dataplane
-
- .. code-block:: text
- :emphasize-lines: 1,9,11,15
-
- s1-leaf4#show interfaces vxlan 1
- Vxlan1 is up, line protocol is up (connected)
- Hardware is Vxlan
- Source interface is Loopback1 and is active with 10.111.253.3
- Replication/Flood Mode is headend with Flood List Source: EVPN
- Remote MAC learning via EVPN
- VNI mapping to VLANs
- Static VLAN to VNI mapping is
- [134, 134]
- Dynamic VLAN to VNI mapping for 'evpn' is
- [4093, 5001]
- Note: All Dynamic VLANs used by VCS are internal VLANs.
- Use 'show vxlan vni' for details.
- Static VRF to VNI mapping is
- [TENANT, 5001]
- MLAG Shared Router MAC is 021c.73c0.c614
-
- .. note::
- - EOS has allocated a dynamic VLAN to the L3 VNI for internal purposes (range is configurable)
- - we can notice the VRF/VNI asociation as well as the vlan/VNI association
-
-#. Verify VXLAN and EVPN
-
- #. On **s1-leaf1** and **s1-leaf3** (and/or **s1-leaf2/4**) verify BGP EVPN control plane for RT-5
-
- .. code-block:: text
- :emphasize-lines: 1,11
-
- s1-leaf1#sh bgp evpn route-type ip-prefix ipv4 detail
- BGP routing table information for VRF default
- Router identifier 10.111.254.1, local AS number 65101
- BGP routing table entry for ip-prefix 10.111.112.0/24, Route Distinguisher: 10.111.254.1:1
- Paths: 1 available
- Local
- - from - (0.0.0.0)
- Origin IGP, metric -, localpref -, weight 0, valid, local, best, redistributed (Connected)
- Extended Community: Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan EvpnRouterMac:02:1c:73:c0:c6:12
- VNI: 5001
- BGP routing table entry for ip-prefix 10.111.134.0/24, Route Distinguisher: 10.111.254.3:1
- Paths: 2 available
- 65100 65102
- 10.111.253.3 from 10.111.0.1 (10.111.0.1)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP head, ECMP, best, ECMP contributor
- Extended Community: Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan EvpnRouterMac:02:1c:73:c0:c6:14
- VNI: 5001
- 65100 65102
- 10.111.253.3 from 10.111.0.2 (10.111.0.2)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP, ECMP contributor
- Extended Community: Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan EvpnRouterMac:02:1c:73:c0:c6:14
- VNI: 5001
- BGP routing table entry for ip-prefix 10.111.134.0/24, Route Distinguisher: 10.111.254.4:1
- Paths: 2 available
- 65100 65102
- 10.111.253.3 from 10.111.0.2 (10.111.0.2)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP head, ECMP, best, ECMP contributor
- Extended Community: Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan EvpnRouterMac:02:1c:73:c0:c6:14
- VNI: 5001
- 65100 65102
- 10.111.253.3 from 10.111.0.1 (10.111.0.1)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP, ECMP contributor
- Extended Community: Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan EvpnRouterMac:02:1c:73:c0:c6:14
- VNI: 5001
-
- .. note::
- - **s1-leaf4** is learning `10.111.134.0/24` from `10.111.254.3` and `10.111.254.4` with RT-5 EVPN message
- - Please note the `TunnelTypeVxlan`, the `EvpnRouterMac` and the L3 `VNI` values for each entries
-
- .. code-block:: text
- :emphasize-lines: 1,4
-
- s1-leaf3#sh bgp evpn route-type ip-prefix ipv4 detail
- BGP routing table information for VRF default
- Router identifier 10.111.254.3, local AS number 65102
- BGP routing table entry for ip-prefix 10.111.112.0/24, Route Distinguisher: 10.111.254.1:1
- Paths: 2 available
- 65100 65101
- 10.111.253.1 from 10.111.0.1 (10.111.0.1)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP head, ECMP, best, ECMP contributor
- Extended Community: Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan EvpnRouterMac:02:1c:73:c0:c6:12
- VNI: 5001
- 65100 65101
- 10.111.253.1 from 10.111.0.2 (10.111.0.2)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP, ECMP contributor
- Extended Community: Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan EvpnRouterMac:02:1c:73:c0:c6:12
- VNI: 5001
- BGP routing table entry for ip-prefix 10.111.112.0/24, Route Distinguisher: 10.111.254.2:1
- Paths: 2 available
- 65100 65101
- 10.111.253.1 from 10.111.0.1 (10.111.0.1)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP head, ECMP, best, ECMP contributor
- Extended Community: Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan EvpnRouterMac:02:1c:73:c0:c6:12
- VNI: 5001
- 65100 65101
- 10.111.253.1 from 10.111.0.2 (10.111.0.2)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP, ECMP contributor
- Extended Community: Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan EvpnRouterMac:02:1c:73:c0:c6:12
- VNI: 5001
- BGP routing table entry for ip-prefix 10.111.134.0/24, Route Distinguisher: 10.111.254.3:1
- Paths: 1 available
- Local
- - from - (0.0.0.0)
- Origin IGP, metric -, localpref -, weight 0, valid, local, best, redistributed (Connected)
- Extended Community: Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan EvpnRouterMac:02:1c:73:c0:c6:14
- VNI: 5001
-
- .. note::
- - **s1-leaf3** is learning `10.111.112.0/24` from `10.111.254.1` and `10.111.254.2` with RT-5 EVPN message
- - Please note the `TunnelTypeVxlan`, the `EvpnRouterMac` and the L3 `VNI` values for each entries
-
- #. On **s1-leaf1** and **s1-leaf3** (and/or **s1-leaf2/4**) verify the IP routing table for vrf TENANT
-
- .. code-block:: text
- :emphasize-lines: 1,19
-
- s1-leaf1#sh ip route vrf TENANT
-
- VRF: TENANT
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B - Other BGP Routes,
- B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1,
- I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate,
- A O - OSPF Summary, NG - Nexthop Group Static Route,
- V - VXLAN Control Service, M - Martian,
- DH - DHCP client installed default route,
- DP - Dynamic Policy Route, L - VRF Leaked,
- G - gRIBI, RC - Route Cache Route
-
- Gateway of last resort is not set
-
- C 10.111.112.0/24 is directly connected, Vlan112
- B E 10.111.134.0/24 [200/0] via VTEP 10.111.253.3 VNI 5001 router-mac 02:1c:73:c0:c6:14 local-interface Vxlan1
-
- .. note::
- - remote prefixe `10.111.134.0/24` is reachable via logical VTEP `10.111.253.3` with VNI 5001
-
- .. code-block:: text
- :emphasize-lines: 1,18
-
- s1-leaf3#sh ip route vrf TENANT
-
- VRF: TENANT
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B - Other BGP Routes,
- B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1,
- I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate,
- A O - OSPF Summary, NG - Nexthop Group Static Route,
- V - VXLAN Control Service, M - Martian,
- DH - DHCP client installed default route,
- DP - Dynamic Policy Route, L - VRF Leaked,
- G - gRIBI, RC - Route Cache Route
-
- Gateway of last resort is not set
-
- B E 10.111.112.0/24 [200/0] via VTEP 10.111.253.1 VNI 5001 router-mac 02:1c:73:c0:c6:12 local-interface Vxlan1
- C 10.111.134.0/24 is directly connected, Vlan134
-
- .. note::
- - remote prefixe `10.111.112.0/24` is reachable via logical VTEP `10.111.253.1` with VNI 5001
-
- #. Log into **s1-host1** and ping **s2-host2**
-
- .. code-block:: text
- :emphasize-lines: 1
-
- s1-host1#ping 10.111.134.202
- PING 10.111.134.202 (10.111.134.202) 72(100) bytes of data.
- 80 bytes from 10.111.134.202: icmp_seq=1 ttl=62 time=33.1 ms
- 80 bytes from 10.111.134.202: icmp_seq=2 ttl=62 time=37.0 ms
- 80 bytes from 10.111.134.202: icmp_seq=3 ttl=62 time=43.2 ms
- 80 bytes from 10.111.134.202: icmp_seq=4 ttl=62 time=34.6 ms
- 80 bytes from 10.111.134.202: icmp_seq=5 ttl=62 time=16.7 ms
- --- 10.111.134.202 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 65ms
-
- #. Log into **s1-leaf3** and check the IP routing table
-
- .. code-block:: text
- :emphasize-lines: 1,17
-
- s1-leaf3#show ip route vrf TENANT
- VRF: TENANT
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B - Other BGP Routes,
- B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1,
- I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate,
- A O - OSPF Summary, NG - Nexthop Group Static Route,
- V - VXLAN Control Service, M - Martian,
- DH - DHCP client installed default route,
- DP - Dynamic Policy Route, L - VRF Leaked,
- G - gRIBI, RC - Route Cache Route
-
- Gateway of last resort is not set
-
- B E 10.111.112.201/32 [200/0] via VTEP 10.111.253.1 VNI 5001 router-mac 02:1c:73:c0:c6:12 local-interface Vxlan1
- B E 10.111.112.0/24 [200/0] via VTEP 10.111.253.1 VNI 5001 router-mac 02:1c:73:c0:c6:12 local-interface Vxlan1
- C 10.111.134.0/24 is directly connected, Vlan134
-
- .. note::
- - You can notice that a "new route" is now programmed corresponding to `s1-host1` : `10.111.112.201/32`
-
- #. Always on **s1-leaf3**, check now the BGP EVPN control plane for RT-2
-
- .. code-block:: text
- :emphasize-lines: 1,28,40
-
- s1-leaf3#show bgp evpn route-type mac-ip detail
- BGP routing table information for VRF default
- Router identifier 10.111.254.3, local AS number 65102
- BGP routing table entry for mac-ip 001c.73c0.c616, Route Distinguisher: 10.111.254.1:112
- Paths: 2 available
- 65100 65101
- 10.111.253.1 from 10.111.0.2 (10.111.0.2)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP head, ECMP, best, ECMP contributor
- Extended Community: Route-Target-AS:112:112 TunnelEncap:tunnelTypeVxlan
- VNI: 112 ESI: 0000:0000:0000:0000:0000
- 65100 65101
- 10.111.253.1 from 10.111.0.1 (10.111.0.1)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP, ECMP contributor
- Extended Community: Route-Target-AS:112:112 TunnelEncap:tunnelTypeVxlan
- VNI: 112 ESI: 0000:0000:0000:0000:0000
- BGP routing table entry for mac-ip 001c.73c0.c616, Route Distinguisher: 10.111.254.2:112
- Paths: 2 available
- 65100 65101
- 10.111.253.1 from 10.111.0.2 (10.111.0.2)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP head, ECMP, best, ECMP contributor
- Extended Community: Route-Target-AS:112:112 TunnelEncap:tunnelTypeVxlan
- VNI: 112 ESI: 0000:0000:0000:0000:0000
- 65100 65101
- 10.111.253.1 from 10.111.0.1 (10.111.0.1)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP, ECMP contributor
- Extended Community: Route-Target-AS:112:112 TunnelEncap:tunnelTypeVxlan
- VNI: 112 ESI: 0000:0000:0000:0000:0000
- BGP routing table entry for mac-ip 001c.73c0.c616 10.111.112.201, Route Distinguisher: 10.111.254.1:112
- Paths: 2 available
- 65100 65101
- 10.111.253.1 from 10.111.0.2 (10.111.0.2)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP head, ECMP, best, ECMP contributor
- Extended Community: Route-Target-AS:112:112 Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan EvpnRouterMac:02:1c:73:c0:c6:12
- VNI: 112 L3 VNI: 5001 ESI: 0000:0000:0000:0000:0000
- 65100 65101
- 10.111.253.1 from 10.111.0.1 (10.111.0.1)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP, ECMP contributor
- Extended Community: Route-Target-AS:112:112 Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan EvpnRouterMac:02:1c:73:c0:c6:12
- VNI: 112 L3 VNI: 5001 ESI: 0000:0000:0000:0000:0000
- BGP routing table entry for mac-ip 001c.73c0.c616 10.111.112.201, Route Distinguisher: 10.111.254.2:112
- Paths: 2 available
- 65100 65101
- 10.111.253.1 from 10.111.0.2 (10.111.0.2)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP head, ECMP, best, ECMP contributor
- Extended Community: Route-Target-AS:112:112 Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan EvpnRouterMac:02:1c:73:c0:c6:12
- VNI: 112 L3 VNI: 5001 ESI: 0000:0000:0000:0000:0000
- 65100 65101
- 10.111.253.1 from 10.111.0.1 (10.111.0.1)
- Origin IGP, metric -, localpref 100, weight 0, valid, external, ECMP, ECMP contributor
- Extended Community: Route-Target-AS:112:112 Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan EvpnRouterMac:02:1c:73:c0:c6:12
- VNI: 112 L3 VNI: 5001 ESI: 0000:0000:0000:0000:0000
- BGP routing table entry for mac-ip 001c.73c0.c617, Route Distinguisher: 10.111.254.3:134
- Paths: 1 available
- Local
- - from - (0.0.0.0)
- Origin IGP, metric -, localpref -, weight 0, valid, local, best
- Extended Community: Route-Target-AS:134:134 TunnelEncap:tunnelTypeVxlan
- VNI: 134 ESI: 0000:0000:0000:0000:0000
- BGP routing table entry for mac-ip 001c.73c0.c617 10.111.134.202, Route Distinguisher: 10.111.254.3:134
- Paths: 1 available
- Local
- - from - (0.0.0.0)
- Origin IGP, metric -, localpref -, weight 0, valid, local, best
- Extended Community: Route-Target-AS:134:134 Route-Target-AS:5001:5001 TunnelEncap:tunnelTypeVxlan
- VNI: 134 L3 VNI: 5001 ESI: 0000:0000:0000:0000:0000
-
- .. note::
- - you can notice that the BGP control has learnt 2 another RT-2 which include the MAC and the IP of **s1-host1** (dual labels)
- - these RT-2 have been generated by **s1-leaf1** and **s1-leaf2** when the virtual IP has been hitten by the ping
- - one of the charasteristic of S-IRB is to have individual /32 host routes for each remote host learned on each L2 segment
-
-**LAB COMPLETE!**
diff --git a/topologies/dual-datacenter/labguides/source/l3ls.rst b/topologies/dual-datacenter/labguides/source/l3ls.rst
deleted file mode 100644
index a1e2f431b..000000000
--- a/topologies/dual-datacenter/labguides/source/l3ls.rst
+++ /dev/null
@@ -1,237 +0,0 @@
-Layer 3 Leaf-Spine
-==================
-
-..
- NOTE TO THE EDITOR OF THIS LAB GUIDE FOR DUAL DC!!!! I REMOVED THE VLANs CONFIGLET SO YOU NEED TO ADD A STEP TO CREATE VLAN 34
-
-.. thumbnail:: images/l3ls/nested_l3ls_topo_1.png
- :align: center
-
- Click image to enlarge
-
-.. note:: The manually-entered commands below that are part of this lab are
- equivalent to ``L3LS_s1-leaf4_complete``.
-
-
-1. Log into the **LabAccess** jumpserver:
-
- a. Type ``l3ls`` at the prompt. The script will configure the datacenter with the exception of **s1-leaf4**.
-
- .. note::
- Did you know the “l3ls” script is composed of Python code that
- uses the CloudVision Portal REST API to automate the provisioning of
- CVP Configlets. The configlets that are configured via the REST API
- are ``L3LS_s1-spine1``, ``L3LS_s1-spine2``, ``L3LS_s1-leaf1``,
- ``L3LS_s1-leaf2``, ``L3LS_s1-leaf3``, ``L3LS_s1-leaf4``.
-
-#. Configure SVI and VARP Virtual IP on the **s1-leaf4** switch using the following criteria
-
- a. Create the vARP MAC Address in Global Configuration mode
-
- .. note::
-
- Arista EOS utilizes the Industry-Standard CLI. When entering configuration commands, be
- sure to first type ``configure`` to enter configuration mode.
-
- .. code-block:: text
-
- ip virtual-router mac-address 00:1c:73:00:00:34
-
- #. Create the VLAN, SVI and the Virtual Router Address
-
- .. code-block:: text
-
- vlan 134
- name Host_Network_134
- !
- interface vlan 134
- ip address 10.111.134.3/24
- ip virtual-router address 10.111.134.1
-
- #. Validate the configuration with the following:
-
- .. code-block:: text
-
- show ip interface brief
- show ip virtual-router
-
-#. Configure BGP on the **s1-leaf4** switch using the following criteria
-
- a. Based on the diagram, configure L3 interfaces to **s1-spine1/s1-spine2** and interface Loopback0
-
- .. code-block:: text
-
- interface Ethernet2
- description L3 Uplink - s1-spine1
- no switchport
- ip address 10.111.1.7/31
- !
- interface Ethernet3
- description L3 Uplink - s1-spine2
- no switchport
- ip address 10.111.2.7/31
- !
- interface Loopback0
- description Management and Router-id
- ip address 10.111.254.4/32
-
- #. Validate the configuration with the following:
-
- .. code-block:: text
-
- show ip interface brief
-
- #. Based on the diagram, turn on BGP and configure the neighbor
- relationships on **s1-leaf4**. eBGP to **s1-spine1/s1-spine2** and iBGP to **s1-leaf3**.
-
- .. note::
- We are using a peer group to configure the neighbor attributes for the spines. This allows
- us to apply all bgp attributes within a group to each neighbor that is a member in a scalable method.
-
- .. code-block:: text
-
- router bgp 65102
- router-id 10.111.254.4
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor 10.111.1.6 peer group SPINE
- neighbor 10.111.2.6 peer group SPINE
- neighbor 10.255.255.1 remote-as 65102
- neighbor 10.255.255.1 next-hop-self
-
- .. note::
-
- Since ``neighbor 10.255.255.1 remote-as 65102`` specifies an iBGP
- peering relationship (because the ASN is the same as this switch
- ``65102``), the receiving switch may not have a route to networks more
- than 1 hop away, hence the switches should each advertise that they are
- the next hop via the ``neighbor 10.255.255.1 next-hop-self`` statement. While
- this scenario is only 2 iBGP peers, in a network fabric with several iBGP
- peers, a switch inside an AS (and not on an edge) may not have a route
- to a switch in any external AS.
-
- #. Validate the configuration and neighbor establishment
-
- .. code-block:: text
-
- show active
- show ip bgp summary
-
-#. Configure networks on **s1-leaf4** to advertise to **s1-spine1/s1-spine2**
-
- a. Add the following networks to BGP announcements on **s1-leaf4**:
-
- .. code-block:: text
-
- router bgp 65102
- network 10.111.134.0/24
- network 10.111.254.4/32
-
- #. Verify all of the **Spines** and **Leafs** see these new network announcements
-
- .. code-block:: text
-
- show ip route
- show ip bgp
- show ip route bgp
-
- #. Add in multiple paths by enabling ECMP, on **s1-leaf4**, jump into BGP configuration mode and add:
-
- .. code-block:: text
-
- router bgp 65102
- maximum-paths 2
-
- #. Check the BGP and IP route tables on each of the **Spines** and **Leafs**
-
- .. code-block:: text
-
- show ip bgp
- show ip route
- show ip route bgp
-
- .. note:: ECMP is now working - notice the new status code in the `show ip bgp` output
-
-#. Validate connectivity from **s1-host1** to **s1-host2**. From **s1-host1** execute:
-
- .. code-block:: text
-
- ping 10.111.134.202
- traceroute 10.111.134.202
-
- a. Verify **s1-leaf4**'s IP address is in the traceroute path, either interface 10.111.1.7 via **s1-spine1** or interface 10.111.2.7 via **s1-spine2**.
- If traffic is hashing via **s1-leaf3**'s 10.111.1.5 or 10.111.2.5 interfaces perform the optional ``shutdown`` steps below on **s1-leaf3**
-
- .. code-block:: text
-
- router bgp 65102
- neighbor 10.111.1.4 shutdown
- neighbor 10.111.2.4 shutdown
-
- #. Rerun traceroute/verification from **s1-host1** to **s1-host2** then revert the ``shutdown`` changes on **s1-leaf3**
-
- .. code-block:: text
-
- router bgp 65102
- no neighbor 10.111.1.4 shutdown
- no neighbor 10.111.2.4 shutdown
-
-#. Other BGP features to play with if you have time:
-
- a. Route Redistribution: For fun do a ``watch 1 diff show ip route | begin
- Gateway`` on **s1-leaf1** & **s1-leaf2** and let those run while you execute the
- command ``redistribute connected`` below on **s1-leaf3**. You will see new routes being
- injected into the route tables of **s1-leaf1** & **s1-leaf2**.
-
- .. code-block:: text
-
- router bgp 65102
- redistribute connected
-
- #. Route Maps and Prefix-Lists:
-
- .. code-block:: text
-
-
-
- ip prefix-list BOGON-Prefixes seq 10 permit 10.0.0.0/8
- ip prefix-list BOGON-Prefixes seq 20 permit 172.16.0.0/12
- ip prefix-list BOGON-Prefixes seq 30 permit 192.168.0.0/16
- !
- route-map BOGONS permit 10
- match ip address prefix-list BOGON-Prefixes
- !
- route-map BOGONS deny 20
- !
- route-map InboundSP1 deny 10
- sub-route-map BOGONS
- !
- route-map InboundSP1 permit 20
- set local-preference 200
- !
- router bgp 65000
- neighbor UpstreamSP1 route-map InboundSP1 in
-
- #. BFD: BFD is a low-overhead, protocol-independent mechanism which adjacent
- systems can use instead for faster detection of faults in the path between
- them. BFD is a simple mechanism which detects the liveness of a connection
- between adjacent systems, allowing it to quickly detect failure of any
- element in the connection.
-
- .. code-block:: text
-
- router bgp 65102
- neighbor bfd
-
-#. Troubleshooting BGP:
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip bgp neighbor
- show run section bgp
- show log
-
-**LAB COMPLETE!**
diff --git a/topologies/dual-datacenter/labguides/source/media-IP_Intro.rst b/topologies/dual-datacenter/labguides/source/media-IP_Intro.rst
deleted file mode 100644
index beffa269a..000000000
--- a/topologies/dual-datacenter/labguides/source/media-IP_Intro.rst
+++ /dev/null
@@ -1,155 +0,0 @@
-Media Intro to IP Lab
-=====================
-
-.. image:: images/media_intro/media_ip_intro.png
- :align: center
-
-.. note:: An IP address serves two principal functions. It identifies the host, or more specifically its network interface, and it provides the location of the host in the network, and thus the capability of establishing a path to that host. Its role has been characterized as follows: "A name indicates what we seek. An address indicates where it is. A route indicates how to get there."
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section.
- 3. Type ``media-intro`` at this prompt and wait for the process to run.
- 4. The script will configure the topology with the exception of **Leaf 4**. The main task is to configure the remaining device so there is connectivity between the two hosts
-
-
-2. Connect to **Leaf 4** from the menu:
-
- 1. Connect to ``Leaf 4`` by selecting option ``6`` from the ``Device SSH`` menu (Type ``ssh`` at the prompt). Once in the switch we are in the *Privileged EXEC* mode, denoted by the **#** preceding the device name. This is similar to a admin user, in this mode can configure and view information on the switch. To configure devices we will need to go into the global configuration mode by typing *configure* at the prompt, in *Privileged EXEC (enable)* mode. As you do the labs you will see this *configure* command being used to ensure that you are in the *config* mode. One prompt that you may come across is the **>** this denotes that you are in EXEC mode, where you can do basic tests and view system information. EXEC mode is the default mode for all switches.
-
-
-3. Configure the proper ip address on the interfaces along with the appropriate static routes to ensure there is end-to-end connectivity for the two end hosts to reach each other. All interfaces in this lab are designed as point-to-point connections
-
- 1. On **Leaf 4** assign the appropriate ip address and ensure the adjacent devices can be reached
-
- .. code-block:: text
-
- configure
- !
- interface Ethernet 3
- no switchport
- ip address 10.127.34.4/24
- !
- interface Ethernet 4
- no switchport
- ip address 172.16.46.4/24
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#interface ethernet 3
- leaf4(config-if-Et3)#no switchport
- leaf4(config-if-Et3)#ip address 10.127.34.4/24
- leaf4(config-if-Et3)#interface ethernet 4
- leaf4(config-if-Et4)#no switchport
- leaf4(config-if-Et4)#ip address 172.16.46.4/24
-
-
- .. note::
- It is worth mentioning by default all interfaces on an Arista switch is set to be a switchport (Layer 2 interface). We need to allow it to be a routed interface and thus ``no switchport`` is added (turns into Layer 3 interface). Once the IP address has been added to the appropriate interface, ensure reachability to the adjacent device by leveraging the ``ping`` command on **Leaf 4**
-
- .. code-block:: text
-
-
- ping 10.127.34.3
- ping 172.16.46.6
-
- **Example:**
-
- .. code-block:: text
-
- leaf4# ping 10.127.34.3
- PING 10.127.34.3 (10.127.34.3) 72(100) bytes of data.
- 80 bytes from 10.127.34.3: icmp_seq=1 ttl=64 time=17.0 ms
- 80 bytes from 10.127.34.3: icmp_seq=2 ttl=64 time=18.8 ms
- 80 bytes from 10.127.34.3: icmp_seq=3 ttl=64 time=14.9 ms
- 80 bytes from 10.127.34.3: icmp_seq=4 ttl=64 time=12.6 ms
-
- --- 10.127.34.3 ping statistics ---
- 5 packets transmitted, 4 received, 20% packet loss, time 62ms
- rtt min/avg/max/mdev = 12.605/15.868/18.844/2.332 ms, pipe 2, ipg/ewma 15.602/16.435 ms
-
- leaf4# ping 172.16.46.6
- PING 172.16.46.6 (172.16.46.6) 72(100) bytes of data.
- 80 bytes from 172.16.46.6: icmp_seq=1 ttl=64 time=38.4 ms
- 80 bytes from 172.16.46.6: icmp_seq=2 ttl=64 time=32.1 ms
- 80 bytes from 172.16.46.6: icmp_seq=3 ttl=64 time=28.0 ms
- 80 bytes from 172.16.46.6: icmp_seq=4 ttl=64 time=31.6 ms
- 80 bytes from 172.16.46.6: icmp_seq=5 ttl=64 time=12.7 ms
-
- --- 172.16.46.6 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 68ms
- rtt min/avg/max/mdev = 12.797/28.603/38.419/8.584 ms, pipe 4, ipg/ewma 17.163/32.954 ms
-
-
- At this point if the adjacent devices can be reached, you have configured the IP address correctly
-
-
- 2. Once the address has been assigned to the appropriate interfaces, we can enable the routing as well as add the appropriate static routes on **Leaf 4** to allow reachability between the two host end-points.
-
-
- .. code-block:: text
-
- configure
- !
- ip routing
- !
- ip route 172.16.15.0/24 10.127.34.3
- !
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#configure
- leaf4(config)#ip routing
- leaf4(config)#ip route 172.16.15.0/24 10.127.34.3
-
- .. note::
- We added the entire prefix for the static route but we could have also put the specific host address. Normally your internal security policies will dictate which approach to take
-
-
-4. Validate end-to-end connectivity from the hosts once IP addresses and static routes have been configured from the previous steps
-
- 1. Log into **Host 2** and verify there is reachability to **Host 1**
-
- .. code-block:: text
-
- ping 172.16.15.5
-
- **Example:**
-
- .. code-block:: text
-
- host2# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=60 time=307 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=60 time=300 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=60 time=296 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=60 time=293 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=60 time=289 ms
-
- --- 172.16.15.5 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 43ms
- rtt min/avg/max/mdev = 289.129/297.583/307.932/6.497 ms, pipe 5, ipg/ewma 10.984/302.312 ms
-
- If all the IP address and routing settings have been completed correctly, then you should have reachability
-
-.. admonition:: **Test your knowledge:**
-
- When **Leaf 4** receives the incoming icmp packet from **Host 2**, what would the process be for the switch to determine the path for the packet to be fowarded?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show ip route
- - show ip arp
- - show ip interface brief
- - show interface status
diff --git a/topologies/dual-datacenter/labguides/source/media-STP_SVI.rst b/topologies/dual-datacenter/labguides/source/media-STP_SVI.rst
deleted file mode 100644
index 1e3cfe456..000000000
--- a/topologies/dual-datacenter/labguides/source/media-STP_SVI.rst
+++ /dev/null
@@ -1,275 +0,0 @@
-Media STP and SVI Lab
-======================
-
-.. image:: images/media_stp_svi/media_stp_svi.png
- :align: center
-
-.. note:: The Spanning-Tree protocol (STP) was initially invented in 1985 and is one of the oldest networking protocols being used in Layer 2 network topologies today. STP is classified as a network protocol that builds loop-free logical topology for Ethernet (initially bridged) networks.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` to go back).
- 3. Type ``media-vlan`` at the prompt. The script will configure the topology with the exception of **Leaf 4**.
-
- 4. On **Spine 2**, verify spanning-tree operation with the topology, you should see **Spine 1** as the root bridge by viewing the Bridge ID and the interfaces designated as a Root port. Root ports points towards the root bridge, which in this case would be Spine 1. When you run the following command which interfaces would you expect to be your root port(s)?
-
- .. code-block:: text
-
- show spanning-tree
-
-
- **Example:**
-
- .. code-block:: text
-
- spine2#show spanning-tree
- MST0
- Spanning tree enabled protocol mstp
- Root ID Priority 4096
- Address 2cc2.6056.df93
- Cost 0 (Ext) 2000 (Int)
- Port 1 (Ethernet1)
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Bridge ID Priority 8192 (priority 8192 sys-id-ext 0)
- Address 2cc2.6094.d76c
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Interface Role State Cost Prio.Nbr Type
- ---------------- ---------- ---------- --------- -------- --------------------
- Et1 root forwarding 2000 128.1 P2p
- Et2 designated forwarding 2000 128.2 P2p
- Et5 designated forwarding 2000 128.5 P2p
- Et6 designated forwarding 2000 128.6 P2p Edge
- Et7 designated forwarding 2000 128.7 P2p Edge
-
-2. Configure the VLAN and interface types on **Leaf 4** to allow the spanning-tree protocol to operate and have reachability for **Host 2**.
-
-
- 1. On **Leaf 4** create the Layer 2 instance of vlan 100. Creating this vlan will add itself to the spanning-tree process.
-
- .. code-block:: text
-
- configure
- vlan 100
- name v100
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#vlan 100
- leaf4(config-vlan-100)#name v100
-
- We can verify its creation with the following command. This command can also show if there are any physical interfaces associated to the vlan.
-
- .. code-block:: text
-
- show vlan
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-vlan-100)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et2, Et3, Et4, Et6, Et7, Et8
- Et9, Et10, Et11, Et12, Et13
- Et14, Et15, Et16, Et17, Et18
- Et19, Et20, Et21, Et22, Et23
- Et24, Et25, Et26, Et27, Et28
- Et29, Et30, Et31, Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 100 v100 active
-
-
-
- 2. Once the vlan is created, we can define on the uplink ports on **Leaf 4** as trunk links, as well allow vlan 100 to pass on the trunk.
-
- .. code-block:: text
-
- configure
- interface Ethernet2
- switchport trunk allowed vlan 100
- switchport mode trunk
- !
- interface Ethernet3
- switchport trunk allowed vlan 100
- switchport mode trunk
- !
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-vlan-100)#configure
- leaf4(config)#interface ethernet 2-3
- leaf4(config-if-Et2-3)#switchport mode trunk
- leaf4(config-if-Et2-3)#switchport trunk allowed vlan 100
-
- .. note::
- By default once an interface is configured as a trunk, all vlans will be associated to it. It is good security practice to associate the specific vlans to pass on the trunk links and take part in the spanning-tree process
-
- Once the interface configuration has been completed for the trunk links, you can verify the spanning-tree topology and see the root bridge is **Spine 1** and the connection to **Spine 2** has been blocked for loop prevention
-
- .. code-block:: text
-
- show spanning-tree
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et2-3)#show spanning-tree
- MST0
- Spanning tree enabled protocol mstp
- Root ID Priority 4096
- Address 2cc2.6056.df93
- Cost 0 (Ext) 2000 (Int)
- Port 2 (Ethernet2)
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Bridge ID Priority 32768 (priority 32768 sys-id-ext 0)
- Address 2cc2.60b5.96d9
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Interface Role State Cost Prio.Nbr Type
- ---------------- ---------- ---------- --------- -------- --------------------
- Et2 root forwarding 2000 128.2 P2p
- Et3 alternate discarding 2000 128.3 P2p
- Et4 designated forwarding 2000 128.4 P2p Edge
- Et6 designated forwarding 2000 128.6 P2p Edge
- Et7 designated forwarding 2000 128.7 P2p Edge
- Et8 designated forwarding 2000 128.8 P2p Edge
- Et9 designated forwarding 2000 128.9 P2p Edge
- Et10 designated forwarding 2000 128.10 P2p Edge
-
-
- 3. Once the Layer 2 topology has been setup, we can configure the connection to our host as an access port to allow **Host 2** to pass traffic onto the topology
-
- .. code-block:: text
-
- configure
- interface Ethernet4
- switchport access vlan 100
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et2-3)#configure
- leaf4(config)#interface ethernet 4
- leaf4(config-if-Et4)#switchport access vlan 100
-
-3. Validate end-to-end connectivity after configuring the Layer 2 interfaces. Once the spanning tree has converged for the topology we can observe the results.
-
- 1. Validate the vlan port association and spanning-tree topology is correct
-
- .. code-block:: text
-
- show vlan
- show spanning-tree
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et6, Et7, Et8, Et9, Et10, Et11
- Et12, Et13, Et14, Et15, Et16
- Et17, Et18, Et19, Et20, Et21
- Et22, Et23, Et24, Et25, Et26
- Et27, Et28, Et29, Et30, Et31
- Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 100 v100 active Et2, Et3, Et4
-
-
- leaf4(config-if-Et3)#show spanning-tree
- MST0
- Spanning tree enabled protocol mstp
- Root ID Priority 4096
- Address 2cc2.6056.df93
- Cost 0 (Ext) 2000 (Int)
- Port 2 (Ethernet2)
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Bridge ID Priority 32768 (priority 32768 sys-id-ext 0)
- Address 2cc2.60b5.96d9
- Hello Time 2.000 sec Max Age 20 sec Forward Delay 15 sec
-
- Interface Role State Cost Prio.Nbr Type
- ---------------- ---------- ---------- --------- -------- --------------------
- Et2 root forwarding 2000 128.2 P2p
- Et3 alternate discarding 2000 128.3 P2p
- Et4 designated forwarding 2000 128.4 P2p Edge
- Et6 designated forwarding 2000 128.6 P2p Edge
- Et7 designated forwarding 2000 128.7 P2p Edge
- Et8 designated forwarding 2000 128.8 P2p Edge
- Et9 designated forwarding 2000 128.9 P2p Edge
- Et10 designated forwarding 2000 128.10 P2p Edge
-
-
- You should see the root bridge is towards **Spine 1** and vlan 100 should be associated to interfaces eth2, eth3 and eth4
-
- 2. Log into **Host 2** and verify you can reach the SVI for vlan 100 as well as reachability to **Host 1**
-
- .. code-block:: text
-
- SVI (Vlan 100 gateway on Spine 1)
- ping 172.16.46.4
-
- host2# ping 172.16.46.4
- PING 172.16.46.4 (172.16.46.4) 72(100) bytes of data.
- 80 bytes from 172.16.46.4: icmp_seq=1 ttl=64 time=35.3 ms
- 80 bytes from 172.16.46.4: icmp_seq=2 ttl=64 time=51.3 ms
- 80 bytes from 172.16.46.4: icmp_seq=3 ttl=64 time=49.9 ms
- 80 bytes from 172.16.46.4: icmp_seq=4 ttl=64 time=48.9 ms
- 80 bytes from 172.16.46.4: icmp_seq=5 ttl=64 time=35.6 ms
-
- --- 172.16.46.4 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 73ms
- rtt min/avg/max/mdev = 35.313/44.256/51.377/7.192 ms, pipe 4, ipg/ewma 18.302/39.598 ms
-
-
- Host 1
- ping 172.16.15.5
-
- host2# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- From 172.16.46.4: icmp_seq=1 Redirect Host(New nexthop: 172.16.15.5)
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=63 time=237 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=63 time=233 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=63 time=250 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=63 time=257 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=63 time=257 ms
-
- --- 172.16.15.5 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 43ms
- rtt min/avg/max/mdev = 233.030/247.345/257.699/10.206 ms, pipe 5, ipg/ewma 10.926/243.255 ms
-
- If all the SVI and STP settings have been completed correctly you should be able to ping the remote host as well as the SVI interface itself configured on **Spine 1** which is also the root bridge for this topology.
-
-
- .. admonition:: **Test your knowledge:**
-
- When you are verifying the spanning-tree topology from **Leaf 4**, what are some of the reasons for the root bridge selection?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show vlan
- - show interfaces trunk
- - show interfaces status
- - show spanning-tree
diff --git a/topologies/dual-datacenter/labguides/source/media-bgp.rst b/topologies/dual-datacenter/labguides/source/media-bgp.rst
deleted file mode 100644
index 02081684e..000000000
--- a/topologies/dual-datacenter/labguides/source/media-bgp.rst
+++ /dev/null
@@ -1,314 +0,0 @@
-Media BGP Lab
-=============
-
-.. image:: images/media_bgp/media_bgp.png
- :align: center
-
-.. note:: The Border Gateway Protocol (BGP) makes routing decisions based on paths (protocol is classified as a path vector) and is widely used in the backbone of the internet to redistribute information
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` to go back).
- 3. Type ``media-bgp`` at the prompt. The script will configure the topology with the exception of **Leaf 4**.
-
- 4. On **spine2**, verify the BGP operation (it should not be operating correctly) and current routing table and command outputs similar to the outputs below.
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip route
-
-
- **Example:**
-
- .. code-block:: text
-
- spine2#show ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.127.255.3, local AS number 2
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.127.23.2 4 1 7 6 0 0 00:02:03 Estab 2 2
- 10.127.34.4 4 2 0 0 0 0 00:02:10 Active
-
-
-
-
- spine2#show ip bgp
- BGP routing table information for VRF default
- Router identifier 10.127.255.3, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.255.1/32 10.127.23.2 0 100 0 1 i
- * > 172.16.15.0/24 10.127.23.2 0 100 0 1 i
-
-
-
- spine2#show ip route
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- C 10.127.23.0/24 is directly connected, Ethernet1
- C 10.127.34.0/24 is directly connected, Ethernet5
- B E 10.127.255.1/32 [200/0] via 10.127.23.2, Ethernet1
- C 10.127.255.3/32 is directly connected, Loopback0
- B E 172.16.15.0/24 [200/0] via 10.127.23.2, Ethernet1
- C 192.168.0.0/24 is directly connected, Management1
-
- All the routing entries with a preceding "B" was learned by the BGP protocol on Spine2.
-
-2. Configure Loopback 0 on **Leaf 4** with the following commands
-
- 1. Under Loopback 0 interface assign the ip. This will be used to define the Router-id in the next step. Loopbacks are used as as router-id addresses, as they are an always available interface that can be advertised reliably.
-
- .. code-block:: text
-
- configure
- interface loopback 0
- ip address 10.127.255.4/32
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#interface loopback 0
- leaf4(config-if-Lo0)#ip address 10.127.255.4/32
-
-
-3. Configure BGP on the **Leaf4** switch using the following criteria
-
- 1. Configure BGP router process (also the autonomous system number, ASN) on **Leaf4**. **Leaf 4** will be configured to communicate to adjacent BGP speakers (**Spine2** in this case). The router-id is configured so it can be consistent and not randomly chosen (normally the peering interface if not specified).
-
- .. code-block:: text
-
- configure
- router bgp 2
- router-id 10.127.255.4
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#configure
- leaf4(config)#router bgp 2
- leaf4(config-router-bgp)#router-id 10.127.255.4
-
- .. note::
- The process number for BGP corresponds to the autonomous-system number (ASN) the router is associated with and is globally significant. These values should not be chosen randomly and should be part of a larger design scheme for the environment.
-
- 2. BGP neighbours are explicitly defined so only the desired neighbors create a session with. A TCP connection is established between the two peers (using port 179) in which the routing information can be securely transported between the peers.
-
- .. code-block:: text
-
- configure
- router bgp 2
- neighbor 10.127.34.3 remote-as 2
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#configure
- leaf4(config)#router bgp 2
- leaf4(config-router-bgp)#neighbor 10.127.34.3 remote-as 2
-
- The BGP session we are setting up on **Leaf4** to **Spine2** is considered a point-to-point iBGP (Internal BGP) connection because they are a part of the same autonomous-system (AS).
-
- .. note::
- Although there are mechanisms to allow all incoming BGP sessions to be established, these are typically corner cases in which you will use that approach. It is best common practice to specify your desired neighbor to establish a session with along with a md5 hash password for an extra level of security.
-
- 3. By default, the BGP protocol will only re-advertise eBGP (external) prefixes it has leaned to its other iBGP / eBGP peers. We will need to tell the BGP process what to advertise by various methods. In this lab we want the router to advertise its connected (vlan) prefix
-
- .. code-block:: text
-
- configure
- router bgp 2
- redistribute connected
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#router bgp 2
- leaf4(config-router-bgp)#redistribute connected
-
- Once the ``redistribute connected`` command has been added, we can actually see the prefixes our switch (Leaf4) is receiving and advertising
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp neighbors 10.127.34.3 advertised-routes
- show ip bgp neighbors 10.127.34.3 received-routes
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-router-bgp)#show ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.127.34.3 4 2 22 22 0 0 00:10:37 Estab 2 2
-
-
-
- leaf4(config-router-bgp)#show ip bgp neighbors 10.127.34.3 advertised-routes
- BGP routing table information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.34.0/24 10.127.34.4 - 100 - i
- * > 10.127.255.4/32 10.127.34.4 - 100 - i
- * > 172.16.46.0/24 10.127.34.4 - 100 - i
- * > 192.168.0.0/24 10.127.34.4 - 100 - i
-
-
-
- leaf4(config-router-bgp)#show ip bgp neighbors 10.127.34.3 received-routes
- BGP routing table information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.255.1/32 10.127.34.3 - 100 - 1 i
- * > 172.16.15.0/24 10.127.34.3 - 100 - 1 i
-
-4. We will now validate the end-to-end connectivity once BGP neighbor relationship has been established
-
- 1. Confirm the BGP neighbor relationship has been established and the routing table on **Leaf4** has been populated with the appropriate entries as shown on the outputs below
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip route
- show ip route bgp
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-router-bgp)#show ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.127.34.3 4 2 22 22 0 0 00:10:37 Estab 2 2
-
-
- leaf4(config-router-bgp)#show ip bgp
- BGP routing table information for VRF default
- Router identifier 10.127.255.4, local AS number 2
- Route status codes: s - suppressed, * - valid, > - active, # - not installed, E - ECMP head, e - ECMP
- S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
- Origin codes: i - IGP, e - EGP, ? - incomplete
- AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
-
- Network Next Hop Metric LocPref Weight Path
- * > 10.127.34.0/24 - 1 0 - i
- * > 10.127.255.1/32 10.127.34.3 0 100 0 1 i
- * > 10.127.255.4/32 - 0 0 - i
- * > 172.16.15.0/24 10.127.34.3 0 100 0 1 i
- * > 172.16.46.0/24 - 1 0 - i
- * > 192.168.0.0/24 - 1 0 - i
-
-
-
- leaf4(config-router-bgp)#show ip route | Begin Gateway
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- C 10.127.34.0/24 is directly connected, Ethernet3
- B I 10.127.255.1/32 [200/0] via 10.127.34.3, Ethernet3
- C 10.127.255.4/32 is directly connected, Loopback
- B I 172.16.15.0/24 [200/0] via 10.127.34.3, Ethernet3
- C 172.16.46.0/24 is directly connected, Ethernet4
- C 192.168.0.0/24 is directly connected, Management1
-
-
-
- leaf4(config-router-bgp)#show ip route bgp
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- B I 10.127.255.1/32 [200/0] via 10.127.34.3, Ethernet3
- B I 172.16.15.0/24 [200/0] via 10.127.34.3, Ethernet3
-
-
- The routing table output should list all routing entries to ensure reachability between the 2 hosts
-
-
- 2. To confirm connectivity, log into **Host 2** and execute a ping command to **Host 1**
-
- .. code-block:: text
-
- ping 172.16.15.5
-
- **Example:**
-
- .. code-block:: text
-
- host2(config)# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=60 time=436 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=60 time=433 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=60 time=429 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=60 time=425 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=60 time=422 ms
-
- If all the BGP configuration have been applied successfully and the routing table on **Leaf 4** is correct then **Host 1** should be reachable from **Host 2**.
-
-.. admonition:: **Test your knowledge:**
-
- When **Leaf 4** receives the incoming routes from **Spine 2**, why can we not reach all the infrastructure IP addresses?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show ip route
- - show ip route bgp
- - show ip bgp summary
- - show ip bgp
- - show ip bgp neighbors advertised-routes
- - show ip bgp neighbors received-routes
diff --git a/topologies/dual-datacenter/labguides/source/media-multicast.rst b/topologies/dual-datacenter/labguides/source/media-multicast.rst
deleted file mode 100644
index ca2e45560..000000000
--- a/topologies/dual-datacenter/labguides/source/media-multicast.rst
+++ /dev/null
@@ -1,419 +0,0 @@
-Advanced Networking for Media Engineers
-=======================================
-
-.. image:: images/media_multicast/media_multicast.png
- :align: center
-
-.. note:: To simplify the training using our multicast topology, this exercise will disable Leaf2 and Leaf3. This lab is a continuation of the concepts from the previous Broadcast Engineer Labs
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` to go back).
- 3. Type ``media-mcast`` at the prompt. The script will pre-configure the topology with the exception of Leaf4 and Hosts 1 & 2.
-
-2. Create Vlan 46 & SVI for host access vlan on **Leaf 4**.
- 1. On **Leaf 4** we will create an vlan and a SVI
-
- .. code-block:: text
-
- vlan 46
- !
- interface Vlan46
- no autostate
- ip address 172.16.46.4/24
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#vlan 46
- leaf4(config)#interface vlan 46
- leaf4(config-if-Vl46)#no autostate
- leaf4(config-if-Vl46)#ip address 172.16.46.4/24
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et6, Et7, Et8, Et9, Et10, Et11
- Et12, Et13, Et14, Et15, Et16
- Et17, Et18, Et19, Et20, Et21
- Et22, Et23, Et24, Et25, Et26
- Et27, Et28, Et29, Et30, Et31
- Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 46 VLAN0046 active Cpu
-
-
- leaf4(config)#show ip int brief
- Interface IP Address Status Protocol MTU
- Management1 192.168.0.17/24 down notpresent 1500
- Vlan46 172.16.46.4/24 up up 1500
-
-
-3. Create connectivity for **Host 2** on **Leaf 4**
- 1. On **Leaf 4**, interface *Ethernet 4* is attached to **Host 2**, associate the port as access vlan 46.
-
- .. code-block:: text
-
- interface Ethernet4
- switchport access vlan 46
- no shutdown
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#switchport access vlan 46
- leaf4(config-if-Et4)#no shutdown
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#show vlan
- VLAN Name Status Ports
- ----- -------------------------------- --------- -------------------------------
- 1 default active Et6, Et7, Et8, Et9, Et10, Et11
- Et12, Et13, Et14, Et15, Et16
- Et17, Et18, Et19, Et20, Et21
- Et22, Et23, Et24, Et25, Et26
- Et27, Et28, Et29, Et30, Et31
- Et32
- 12 VLAN0012 active
- 34 VLAN0034 active
- 46 VLAN0046 active Cpu, Et4
-
-
-4. Create uplink connectivity to **Spine 2**
- 1. On **Leaf 4**, *Ethernet 3* is connected to **Spine 2**. Create a routed port for uplink access
-
- .. code-block:: text
-
- interface Ethernet3
- no switchport
- mtu 9214
- ip address 172.16.200.26/30
- no shutdown
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#interface ethernet 3
- leaf4(config-if-Et3)#no switchport
- leaf4(config-if-Et3)#ip address 172.16.200.26/30
- leaf4(config-if-Et3)#mtu 9214
- leaf4(config-if-Et3)#no shutdown
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4#sh ip int br
- Interface IP Address Status Protocol MTU
- Ethernet3 172.16.200.26/30 up up 1500
- Management1 192.168.0.17/24 down notpresent 1500
- Vlan46 172.16.46.4/24 up up 1500
-
-
-5. Enable OSPF & verify connectivity
- 1. On **Leaf 4**, create a loopback interface & assign an IP to be used as the Router-ID. On **Leaf 4**, enable the OSPF routing process and assign the networks to be advertised
-
- .. code-block:: text
-
- interface Loopback0
- ip address 172.16.0.4/32
- !
- router ospf 6500
- router-id 172.16.0.4
- passive-interface Loopback0
- passive-interface Vlan46
- network 172.16.0.0/24 area 0.0.0.0
- network 172.16.46.0/24 area 0.0.0.0
- network 172.16.200.24/30 area 0.0.0.0
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#interface loopback 0
- leaf4(config-if-Lo0)#ip address 172.16.0.4/32
- leaf4(config-if-Lo0)#
- leaf4(config-if-Lo0)#router ospf 6500
- leaf4(config-router-ospf)#router-id 172.16.0.4
- leaf4(config-router-ospf)#passive-interface loopback 0
- leaf4(config-router-ospf)#passive-interface vlan46
- leaf4(config-router-ospf)#network 172.16.0.0/24 area 0.0.0.0
- leaf4(config-router-ospf)#network 172.16.46.0/24 area 0.0.0.0
- leaf4(config-router-ospf)#network 172.16.200.24/30 area 0.0.0.0
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config-router-ospf)#show ip int br
- Interface IP Address Status Protocol MTU
- Ethernet3 172.16.200.26/30 up up 1500
- Loopback0 172.16.0.4/32 up up 65535
- Management1 192.168.0.17/24 down notpresent 1500
- Vlan46 172.16.46.4/24 up up 1500
-
-
-
- 2. Issue a ``show ip route`` command on Leaf 4. Output should show the following networks from Leaf 1 being advertised and shows a Full/BR state with Leaf 1, its neighbor.
-
- **Routing Table Example:**
-
- .. code-block:: text
-
- leaf4#show ip route
-
- leaf4(config-if-Et3)#show ip route | begin Gateway
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- O 172.16.0.1/32 [110/40] via 172.16.200.25, Ethernet3
- O 172.16.0.2/32 [110/30] via 172.16.200.25, Ethernet3
- O 172.16.0.3/32 [110/20] via 172.16.200.25, Ethernet3
- C 172.16.0.4/32 is directly connected, Loopback0
- O 172.16.15.0/24 [110/40] via 172.16.200.25, Ethernet3
- C 172.16.46.0/24 is directly connected, Vlan46
- O 172.16.200.0/30 [110/30] via 172.16.200.25, Ethernet3
- C 172.16.200.24/30 is directly connected, Ethernet3
- O 172.16.200.32/30 [110/20] via 172.16.200.25, Ethernet3
- C 192.168.0.0/24 is directly connected, Management1
-
-
- **OSPF Neighbor Example:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#show ip ospf neighbor
- Neighbor ID VRF Pri State Dead Time Address Interface
- 172.16.0.3 default 1 FULL/DR 00:00:37 172.16.200.25 Ethernet3
-
-
-6. Test End to End Connectivity on From Host 2
- 1. Issue a ping command from **Host 2** in network 172.16.46.0/24 to **Host 1** on 172.16.15.0/2
-
- .. code-block:: text
-
- Select Host 2 from main menu
- Confirm Gateway of Host 1 is accessible at 172.16.15.1 and the Host 1 At 172.16.15.5
-
- ping 172.16.15.1
- ping 172.16.15.5
-
- ex.
- host2# ping 172.16.15.1
- host2# ping 172.16.15.5
-
- Ensure you have connectivity before commencing the next step
-
-7. Enabling Multicast Routing
- 1. On **Leaf 4**, enable multicast routing using the following commands; We will be enabling multicast routing on Leaf 4 and assigning the interfaces to participate in multicast routing. As well we will define the RP address on the switch.
-
-
- .. code-block:: text
-
- !
- router multicast
- ipv4
- software-forwarding sfe
- !
- ip pim rp-address 172.16.0.1
- !
- interface Vlan46
- ip pim sparse-mode
- !
- !
- interface Ethernet3
- ip pim sparse-mode
- !
-
- .. note:: In this lab environment, we will be leveraging the software based forwarding agent for multicast.
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#router multicast
- leaf4(config-router-multicast)#ipv4
- leaf4(config-router-multicast-ipv4)#software-forwarding sfe
- leaf4(config)#ip pim rp-address 172.16.0.1
- leaf4(config)#int vlan 46
- leaf4(config-if-Vl46)#ip pim sparse-mode
- leaf4(config-if-Vl46)#int et3
- leaf4(config-if-Et3)#ip pim sparse-mode
-
- **Verification:**
-
- .. code-block:: text
-
- leaf4(config-if-Et3)#sh ip pim rp
- Group: 224.0.0.0/4
- RP: 172.16.0.1
- Uptime: 0:02:56, Expires: never, Priority: 0, Override: False
-
- leaf4(config-if-Et3)#show ip pim neighbor
- PIM Neighbor Table
- Neighbor Address Interface Uptime Expires Mode
- 172.16.200.25 Ethernet3 00:02:41 00:01:32 sparse
-
-
-8. Start Server on the Host 1
- 1. Going back to the menu screen, select **Host 1**. Enter the bash prompt on from the CLI prompt and enable the source. This will run for 1800 seconds
-
- **Example:**
-
- .. code-block:: text
-
- On Host 1 type the following:
- host1# bash
- [arista@host1 ~]$ /mnt/flash/mcast-source.sh
-
- **Verification:**
-
- .. code-block:: text
-
- [arista@host1 flash]$ ./mcast-source.sh
- ------------------------------------------------------------
- [arista@host1 flash]$ Client connecting to 239.103.1.1, UDP port 5001
- Sending 1470 byte datagrams
- Setting multicast TTL to 10
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- [ 3] local 10.33.157.26 port 38605 connected with 239.103.1.1 port 5001
- ------------------------------------------------------------
- Client connecting to 239.103.1.3, UDP port 5001
- Sending 1470 byte datagrams
- Setting multicast TTL to 10
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- ------------------------------------------------------------
- Client connecting to 239.103.1.2, UDP port 5001
- Sending 1470 byte datagrams
- Setting multicast TTL to 10
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- [ 3] local 10.33.157.26 port 53682 connected with 239.103.1.2 port 5001
- [ 3] local 10.33.157.26 port 40187 connected with 239.103.1.3 port 5001
- [ ID] Interval Transfer Bandwidth
- [ 3] 0.0- 1.0 sec 31.6 KBytes 259 Kbits/sec
-
-
- Open a new ssh session leaving the source script running
-
-
-9. Start Receiver on Host 2
- 1. Going back to the menu screen, select Host 2. Enter the bash prompt on from the CLI prompt and enable the receiver.
-
- **Example:**
-
- .. code-block:: text
-
- On Host 2 type the following:
- host2# bash
- [arista@host2 ~]$ /mnt/flash/mcast-receiver.sh
-
- **Verification:**
-
- .. code-block:: text
-
- [arista@host2 ~]$ /mnt/flash/mcast-receiver.sh
- [arista@host2 ~]$ ------------------------------------------------------------
- Server listening on UDP port 5001
- Binding to local address 239.103.1.1
- Joining multicast group 239.103.1.1
- Receiving 1470 byte datagrams
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
- ------------------------------------------------------------
- Server listening on UDP port 5001
- Binding to local address 239.103.1.2
- Joining multicast group 239.103.1.2
- Receiving 1470 byte datagrams
- UDP buffer size: 208 KByte (default)
- ------------------------------------------------------------
-
- Open a new ssh session leaving the receiver script running
-
-10. Observe the multicast table on **Leaf 1**
- 1. On **Leaf 1**, observe the multicast table for the source.
-
- **Example:**
-
- .. code-block:: text
-
- leaf1#show ip mroute
-
- RPF route: U - From unicast routing table
- M - From multicast routing table
- 239.103.1.1
- 0.0.0.0, 0:01:56, RP 172.16.0.1, flags: W
- Incoming interface: Register
- Outgoing interface list:
- Ethernet2
- 172.16.15.5, 0:02:24, flags: SLN
- Incoming interface: Vlan15
- RPF route: [U] 172.16.15.0/24 [0/1]
- Outgoing interface list:
- Ethernet2
- 239.103.1.2
- 0.0.0.0, 0:01:56, RP 172.16.0.1, flags: W
- Incoming interface: Register
- Outgoing interface list:
- Ethernet2
- 172.16.15.5, 0:02:24, flags: SLN
- Incoming interface: Vlan15
- RPF route: [U] 172.16.15.0/24 [0/1]
- Outgoing interface list:
- Ethernet2
- 239.103.1.3
- 172.16.15.5, 0:02:24, flags: SLN
- Incoming interface: Vlan15
- RPF route: [U] 172.16.15.0/24 [0/1]
- Outgoing interface list:
- Ethernet2
-
-11. Observe the multicast table on **Leaf 4**
- 1. On **Leaf 4**, observe the multicast table for the receiver using the CLI
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#show ip mroute
-
- RPF route: U - From unicast routing table
- M - From multicast routing table
- 239.103.1.1
- 0.0.0.0, 0:00:17, RP 172.16.0.1, flags: W
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.0.3/32 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
- 172.16.15.5, 0:00:13, flags: S
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.15.0/24 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
- 239.103.1.2
- 0.0.0.0, 0:00:17, RP 172.16.0.1, flags: W
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.0.3/32 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
- 172.16.15.5, 0:00:13, flags: S
- Incoming interface: Ethernet3
- RPF route: [U] 172.16.15.0/24 [110/40] via 172.16.200.25
- Outgoing interface list:
- Vlan46
-
-**LAB COMPLETE**
diff --git a/topologies/dual-datacenter/labguides/source/media-ospf.rst b/topologies/dual-datacenter/labguides/source/media-ospf.rst
deleted file mode 100644
index 8a8406e86..000000000
--- a/topologies/dual-datacenter/labguides/source/media-ospf.rst
+++ /dev/null
@@ -1,323 +0,0 @@
-Media OSPF Lab
-==============
-
-.. image:: images/media_ospf/media_ospf.png
- :align: center
-
-.. note:: Did you know the OSPF algorithm is considered a link-state protocol, based on the Dijkstra Shortest Path Algorithm? It is a common protocol used in a number of widely deployed environments in various industries.
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``media`` at this prompt to open the media lab section (If you were previously in the Media Labs Menu, you can type ``back`` to go back).
- 3. Type ``media-ospf`` at the prompt. The script will configure the topology with the exception of **Leaf 4**.
-
- 4. On **Spine 2**, verify OSPF operation (it should not be operating correctly) and you will see all the routes currently in the environment.
-
- .. code-block:: text
-
- show ip ospf neighbor
- show ip ospf interface
- show ip ospf database
- show ip route
-
-
-
- **Example:**
-
- .. code-block:: text
-
- spine2#show ip ospf neighbor
- Neighbor ID VRF Pri State Dead Time Address Interface
- 10.127.255.2 default 1 FULL/BDR 00:00:35 10.127.23.2 Ethernet1
-
- spine2#show ip ospf interface
- Loopback0 is up
- Interface Address 10.127.255.3/32, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.3
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0 (Passive Interface)
- No authentication
- Ethernet5 is up
- Interface Address 10.127.34.3/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.3
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0
- No authentication
- Ethernet1 is up
- Interface Address 10.127.23.3/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.3
- Backup Designated Router is 10.127.255.2
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 1
- No authentication
-
- spine2#show ip ospf database
-
- OSPF Router with ID(10.127.255.3) (Process ID 100) (VRF default)
-
-
- Router Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum Link count
- 10.127.255.2 10.127.255.2 344 0x80000007 0x5d3 3
- 10.127.255.1 10.127.255.1 346 0x80000006 0x2433 3
- 10.127.255.3 10.127.255.3 343 0x80000006 0xbe99 3
-
- Network Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum
- 10.127.23.3 10.127.255.3 343 0x80000001 0x836e
- 10.127.12.2 10.127.255.2 344 0x80000001 0xf40c
-
- spine2#show ip route
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- O 10.127.12.0/24 [110/20] via 10.127.23.2, Ethernet1
- C 10.127.23.0/24 is directly connected, Ethernet1
- C 10.127.34.0/24 is directly connected, Ethernet5
- O 10.127.255.1/32 [110/30] via 10.127.23.2, Ethernet1
- O 10.127.255.2/32 [110/20] via 10.127.23.2, Ethernet1
- C 10.127.255.3/32 is directly connected, Loopback0
- O 172.16.15.0/24 [110/30] via 10.127.23.2, Ethernet1
- C 192.168.0.0/24 is directly connected, Management1
-
-
- All the route entries with a preceding "O" was learned by the OSPF protocol on **Spine 2**.
-
-2. Configure OSPF on the **Leaf 4** switch using the following criteria:
-
- 1. Configure the Ethernet 3, Ethernet 4, Loopback 0 interfaces and the OSPF router process on **Leaf4** to be used for OSPF communication to the adjacent devices (**Spine 2** in this case)
-
- .. code-block:: text
-
- configure
- interface loopback 0
- ip address 10.127.255.4/32
- interface ethernet 3
- no switchport
- ip address 10.127.34.4/24
- interface ethernet 4
- no switchport
- ip address 172.16.46.4/24
- router ospf 100
- router-id 10.127.255.4
-
- **Example:**
-
- .. code-block:: text
-
- leaf4#configure
- leaf4(config)#int et 3
- leaf4(config-if-Et3)#no switchport
- leaf4(config-if-Et3)#ip address 10.127.34.4/24
- leaf4(config)#int et 4
- leaf4(config-if-Et4)#no switchport
- leaf4(config-if-Et4)#ip address 172.16.46.4/24
- leaf4(config)#int lo 0
- leaf4(config-if-Lo0)#ip address 10.127.255.4/32
- leaf4(config)#router ospf 100
- leaf4(config-router-ospf)#router-id 10.127.255.4
-
-
- .. note::
- All interfaces are point-to-point connections in the OSPF lab, no trunk or access ports
-
- 2. Specify the network statement which encompasses all the interfaces that will take part in the OSPF process.
-
- .. code-block:: text
-
- configure
- router ospf 100
- network 10.127.0.0/16 area 0.0.0.0
- network 172.16.46.0/24 area 0.0.0.0
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#configure
- leaf4(config)#router ospf 100
- leaf4(config-router-ospf)#network 10.127.0.0/16 area 0.0.0.0
- leaf4(config-router-ospf)#network 172.16.46.0/24 area 0.0.0.0
-
-
- .. note::
- All interfaces which fall into the range of the network statement will take part in the OSPF process and listen for and send out hello packets.
-
- 3. Certain interfaces do not need to take part in the OSPF process but we still want the IP's to be advertised out. This is where we leverage the "passive-interface" setting to allow this. These interfaces will still be associated in the area in which the network statement is associated to.
-
- .. code-block:: text
-
- configure
- router ospf 100
- passive-interface loopback0
- passive-interface ethernet4
-
- **Example:**
-
- .. code-block:: text
-
- leaf4(config)#router ospf 100
- leaf4(config-router-ospf)#passive-interface loopback 0
- leaf4(config-router-ospf)#passive-interface ethernet4
-
-
- 4. Confirm the OSPF neighbor relationship has been established and the routing table on **Leaf 4** has been populated with the appropriate entries.
-
- .. code-block:: text
-
- show ip ospf neighbor
- show ip ospf interface
- show ip ospf database
- show ip route
-
- **Example**
-
- .. code-block:: text
-
- leaf4(config-if-Et4)#show ip ospf neighbor
- Neighbor ID VRF Pri State Dead Time Address Interface
- 10.127.255.3 default 1 FULL/DR 00:00:31 10.127.34.3 Ethernet3
-
- leaf4(config-if-Et4)#show ip ospf interface
- Loopback0 is up
- Interface Address 10.127.255.4/32, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.4
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0 (Passive Interface)
- No authentication
- Ethernet3 is up
- Interface Address 10.127.34.4/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State Backup DR, Priority 1
- Designated Router is 10.127.255.3
- Backup Designated Router is 10.127.255.4
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 1
- No authentication
- Ethernet4 is up
- Interface Address 172.16.46.4/24, VRF default, Area 0.0.0.0
- Network Type Broadcast, Cost: 10
- Transmit Delay is 1 sec, State DR, Priority 1
- Designated Router is 10.127.255.4
- No Backup Designated Router on this network
- Timer intervals configured, Hello 10, Dead 40, Retransmit 5
- Neighbor Count is 0
- No authentication
-
- leaf4(config-if-Et4)#sh ip ospf database
-
- OSPF Router with ID(10.127.255.4) (Process ID 100) (VRF default)
-
-
- Router Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum Link count
- 10.127.255.1 10.127.255.1 863 0x80000009 0x1e36 3
- 10.127.255.2 10.127.255.2 861 0x8000000a 0xfed6 3
- 10.127.255.4 10.127.255.4 339 0x80000007 0xde1f 3
- 10.127.255.3 10.127.255.3 1181 0x80000009 0x5e46 3
-
- Network Link States (Area 0.0.0.0)
-
- Link ID ADV Router Age Seq# Checksum
- 10.127.23.3 10.127.255.3 860 0x80000004 0x7d71
- 10.127.34.3 10.127.255.3 1181 0x80000001 0x26be
- 10.127.12.2 10.127.255.2 861 0x80000004 0xee0f
-
- leaf4(config-if-Et4)#sh ip route
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
- R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
- O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
- NG - Nexthop Group Static Route, V - VXLAN Control Service,
- DH - DHCP client installed default route, M - Martian,
- DP - Dynamic Policy Route
-
- Gateway of last resort:
- S 0.0.0.0/0 [1/0] via 192.168.0.254, Management1
-
- O 10.127.12.0/24 [110/30] via 10.127.34.3, Ethernet3
- O 10.127.23.0/24 [110/20] via 10.127.34.3, Ethernet3
- C 10.127.34.0/24 is directly connected, Ethernet3
- O 10.127.255.1/32 [110/40] via 10.127.34.3, Ethernet3
- O 10.127.255.2/32 [110/30] via 10.127.34.3, Ethernet3
- O 10.127.255.3/32 [110/20] via 10.127.34.3, Ethernet3
- C 10.127.255.4/32 is directly connected, Loopback0
- O 172.16.15.0/24 [110/40] via 10.127.34.3, Ethernet3
- C 172.16.46.0/24 is directly connected, Ethernet4
- C 192.168.0.0/24 is directly connected, Management1
-
- The routing table output should list all routing entries in this topology to ensure connectivity.
-
-3. Validate end-to-end connectivity once OSPF neighbor relationship has been established.
-
- 1. Log into **Host 2** and verify connectivity with **Host 1**.
-
- .. code-block:: text
-
- ping 172.16.15.5
-
- **Example:**
-
- .. code-block:: text
-
- host2# ping 172.16.15.5
- PING 172.16.15.5 (172.16.15.5) 72(100) bytes of data.
- 80 bytes from 172.16.15.5: icmp_seq=1 ttl=60 time=99.5 ms
- 80 bytes from 172.16.15.5: icmp_seq=2 ttl=60 time=102 ms
- 80 bytes from 172.16.15.5: icmp_seq=3 ttl=60 time=165 ms
- 80 bytes from 172.16.15.5: icmp_seq=4 ttl=60 time=161 ms
- 80 bytes from 172.16.15.5: icmp_seq=5 ttl=60 time=158 ms
-
- --- 172.16.15.5 ping statistics ---
- 5 packets transmitted, 5 received, 0% packet loss, time 40ms
- rtt min/avg/max/mdev = 99.508/137.682/165.494/29.858 ms, pipe 5, ipg/ewma 10.149/120.314 ms
-
-
- If OSPF settings have been configured correctly and the routing table on **Leaf 4** has converged then **Host 1** should be reachable from **Host 2**.
-
-.. admonition:: **Test your knowledge:**
-
- When inspecting the routing table on **Leaf 4**, why are all the infrastructure IP address in there? What are the positive and negative results of that?
-
-
-**LAB COMPLETE!**
-
-.. admonition:: **Helpful Commands:**
-
- During the lab you can use the different commands to verify connectivity and behaviour for validation and troubleshooting purposes:
-
- - show ip ospf neighbor
- - show ip ospf interface
- - show ip ospf database
- - show ip route
diff --git a/topologies/dual-datacenter/labguides/source/programmability_connecting.rst b/topologies/dual-datacenter/labguides/source/programmability_connecting.rst
deleted file mode 100644
index 5664abf4b..000000000
--- a/topologies/dual-datacenter/labguides/source/programmability_connecting.rst
+++ /dev/null
@@ -1,43 +0,0 @@
-Connecting to your lab machine
-==============================
-
-1. Before we begin, let's reset the environment to clear out previous lab changes.
-If the environment was brought up fresh and you are starting from this point, you can skip step #1.
-
-SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-You will be greeted with the following menu:
-
-
-.. image:: images/program_connecting/nested_connecting_2.png
- :align: center
-
-|
-
-Select option **1** (**Reset All Devices to Base ATD**), wait til the command has completed, then log out.
-
-|
-
-2. Now we need to make sure that you can access your handy lab machine! You should have received your login
-information (a URL) from your friendly Arista SE already. If you have not, please reach out and ask for one.
-
-Once you receive your token, click on the link. You will greeted with a
-screen that looks like this:
-
-.. image:: images/program_connecting/nested_connecting_landing_1.png
- :align: center
-|
-For these labs, we will be leveraging the **Console Access**, **Programmability IDE** and **WebUI** services. Connect to each of the service by clicking on the corresponding links on the left side.
-Each service will open in a new tab in your browser.
-
-.. image:: images/program_connecting/nested_connecting_overview_1.png
- :align: center
-|
-To access each of the services, the credentials are listed on the **Arista Test Drive Lab** overview page in the **Usernames and Passwords** section.
-
-These services will be used to provide a ssh access to the lab, coding IDE, and a WebUI for the upcoming programmability labs.
diff --git a/topologies/dual-datacenter/labguides/source/pyeapi.rst b/topologies/dual-datacenter/labguides/source/pyeapi.rst
deleted file mode 100644
index 3e49a6346..000000000
--- a/topologies/dual-datacenter/labguides/source/pyeapi.rst
+++ /dev/null
@@ -1,118 +0,0 @@
-pyeapi
-======
-
-In this lab we will still use Python, but this time with Arista’s pyeapi
-module. If you recall from the last lab, a module is a way of enhancing
-the capability of native Python.
-
-Pyeapi is a wrapper around eAPI that abstracts common EOS commands into
-a more programmatic style. This allows someone without a heavy network
-background to easily interact with an Arista device. In other words,
-instead of issuing ``enable; configure; vlan 100; name foo``, we can
-use ``vlans.set_name(100,'foo')``. While that may look similar, the
-abstracted way is easier to implement in Python because it shortcuts
-some of the steps, and someone that only knows they need to create a
-VLAN can grok it without having to know the EOS command line.
-
-Click \ `here `__\ for
-pyeapi documentation.
-
-.. note:: While Arista switches have a fully functional Python
- installation, please make sure to usedevboxfor the scripting part of this lab.
-
-Your first pyeapi script
-------------------------
-
-For your first pyeapi script, we are going to add a new user:testuser.
-We will use the following script:
-
-.. code-block:: python
-
- #!/usr/bin/env python3
-
- import pyeapi
-
- node = pyeapi.connect(host='192.168.0.12',username='arista',password='{REPLACE_PWD}',return_node=True)
-
- users = node.api('users')
-
- users.create('testuser',secret='foo')
- users.set_privilege('testuser',value='15')
- users.set_role('testuser',value='network-admin')
-
-What does this script do?
-
-**import pyeapi** - this imports the pyeapi module.
-
-**node = pyeapi.connect(host='192.168.0.12',username='arista',password='{REPLACE_PWD}',return_node=True)** -
-instantiates the variable ``node``, and uses pyeapi to create a connection to
-the switch using the username of ``arista`` and the
-password ``{REPLACE_PWD}``. ``return_node`` allows you to use the node object to consume
-the API with - don’t focus on this one for now, let’s just roll with the
-rest of the script.
-
-**users = node.api('users')** - creates a new variable ``users`` and specifies
-the API submodule ``users``. This tells Python we want to create a user using
-pyeapi.
-
-**users.create('testuser',secret='foo')** - Using the Users API, we use
-the ``create`` method. ``testuser`` is the username, and the password is ``foo``.
-
-**users.set_privilege('testuser',value='15')** - Using the Users API, we use
-the ``set_privilege`` method. ``testuser`` is the username which was created in
-the last step, and the privilege level is ``15``.
-
-**users.set_role('testuser',value='network-admin')** - Using the Users API,
-we use the ``set_role`` method. ``testuser`` is the username which was created in
-the last step, and the Arista role is the predefined default role of
- ``network-admin``.
-
-Write it
-~~~~~~~~
-
-Create a new file in the IDE and either write or paste the code
-in. Save it to your labfiles directory as ``/home/coder/project/labfiles/add_user.py``.
-
-Run it
-~~~~~~
-
-Run the script the same way you did in the previous lab (``python3
-add_user.py``) - allowing for the different file name.
-Wait, you didn’t save over your previous work did you?!
-
---------------
-
-Let’s take a look and see if the user has been added switch to your
-virtual switch. Let's open a new Terminal window, by clicking on the **+** in the Terminal window.
-
-.. image:: images/pyeapi/nested_pyeapi_1.png
- :align: center
-
-
-Let's ssh directly to the switch.
-
-.. code-block:: shell
- ssh arista@192.168.0.12
-
- ``show run section username``.
-
-.. image:: images/pyeapi/nested_pyeapi_2.png
- :align: center
-
-**Success!**
-
-Advanced
---------
-
-Write a script that adds more than one user.
-
-Bonus
------
-
-Using the\ `pyeapi
-documentation `__\ ,
-create a new script that creates a VLAN and then adds it to ``interface
-Ethernet1`` as a ``switchport access vlan``.
-
-.. note:: Check out the config example, as well as Modules > API > switchports and vlans.
-
diff --git a/topologies/dual-datacenter/labguides/source/rollback.rst b/topologies/dual-datacenter/labguides/source/rollback.rst
deleted file mode 100644
index 0985fc442..000000000
--- a/topologies/dual-datacenter/labguides/source/rollback.rst
+++ /dev/null
@@ -1,123 +0,0 @@
-Rollback
-========
-
-Oops. We’ve made a horrible mistake and we need to roll it back before
-anyone notices.
-
-Fortunately, using Git we have a record of what changed and we can
-revert everything back to the previous ``commit``. Once we revert the change,
-Jenkins will see see it and run your playbook again, undoing the changes
-that we just made.
-
-Step #1: See the diff(erence)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Before we roll back, let’s check what Git has on record. To do that,
-we’re going to have to get the checksum of the first commit in Lab #6
-and the checksum of the commit after you added VLAN 2000 and 3000. Once
-we get the checksums, we can ``diff`` them. ``Diff`` shows the difference between
-two items.
-
-To find the checksums, we need to use the ``git reflog`` command
-in the **IDE** terminal. The ``git reflog`` command lists every commit, their checksum, their
-distance from the current commit, and the commit message.
-
-Run ``git reflog`` inside your lab6 directory (``~/project/labfiles/lab6/lab``):
-
-.. code-block:: bash
-
- lab git:(master) git reflog
- 116aaae (HEAD -> master, origin/master) HEAD@{0}: commit: Added VLAN 2000 and 3000
- 2ad37af HEAD@{1}: commit (initial): Initial commit
-
-Note the two checksums, ``116aaae`` and ``2ad37af`` (In this example). Let’s diff them with ``git diff
-2ad37af 116aaae``.
-
-.. note:: Your checksums will be different than in this lab guide. Please
- make sure to use your checksums from git reflog and not the ones in
- the guide.
-
-.. code-block:: bash
-
- lab git:(master) git diff 2ad37af 116aaae
- diff --git a/group_vars/leafs.yml b/group_vars/leafs.yml
- index 9481c0c..e6040b8 100644
- --- a/group_vars/leafs.yml
- +++ b/group_vars/leafs.yml
- @@ -8,4 +8,9 @@ provider:
- eos_purge_vlans: true
- vlans:
- - vlanid: 1001
- - name: default
- + name: default
- + - vlanid: 2000
- + name: production
- + - vlanid: 3000
- + name: development
-
-The ``diff`` shows - next to lines that were removed. If we roll back, we would
-lose anything that’s different. We did want to roll those VLANs back,
-right? We’re good to go!
-
-Step #2: Revert the change
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To roll back, we need to use the ``git revert`` command, coupled
-with ``HEAD``. ``HEAD`` is the Git method of saying the last commit (in the
-checked out branch). If you revert the last commit it will bring you
-back to the commit before the latest commit.
-
-You can also use this command to revert to any other commit - useful if
-you want to roll back to 2 weeks and 30 commits ago.
-
-Let’s revert with ``git revert HEAD``.
-
-.. code-block:: bash
-
- lab git:(master) git revert HEAD
-
-A window will pop up asking you to enter a commit message. Let’s just
-stick with the default. Hit **Ctrl-X** to save.
-
-.. code-block:: bash
-
- lab git:(master) git revert HEAD
- [master 9534ae0] Revert "Added VLAN 2000 and 3000"
- 1 file changed, 0 insertion(+), 4 deletions(-)
-
-Note the 4 deletions - those are the 4 lines in the ``diff`` above. If you
-were to open your group_vars file, you would see that those lines are
-now missing.
-
-Now if you were to look at your log using git reflog, you will see a
-revert:
-
-.. code-block:: bash
-
- lab git:(master) git reflog
- 9534ae0 (HEAD -> master) HEAD@{0}: revert: Revert "Added VLAN 2000 and 3000"
- 116aaae (origin/master) HEAD@{1}: commit: Added VLAN 2000 and 3000
- 2ad37af HEAD@{2}: commit (initial): Initial commit
-
-Now let's push our changes to our remote repo so Jenkins can pick up on the changes
-
-.. code-block:: bash
-
- lab git:(master) git push origin master
- Enumerating objects: 7, done.
- Counting objects: 100% (7/7), done.
- Delta compression using up to 24 threads
- Compressing objects: 100% (3/3), done.
- Writing objects: 100% (4/4), 440 bytes | 440.00 KiB/s, done.
- Total 4 (delta 1), reused 0 (delta 0)
- To /home/coder/project/labfiles/lab6/repo
- 116aaae..9534ae0 master -> master
-
-Hurray!
-
-Step #3: Watch Jenkins undo
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Go back into Jenkins and look at the job history for the latest job,
-just like you did in the previous lab. Also, log into your switches and
-notice that the VLANs are no longer present.
diff --git a/topologies/dual-datacenter/labguides/source/tshoot-intro.rst b/topologies/dual-datacenter/labguides/source/tshoot-intro.rst
deleted file mode 100644
index d2f3320d0..000000000
--- a/topologies/dual-datacenter/labguides/source/tshoot-intro.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Troubleshooting Introduction
-============================
-
-.. image:: images/tshoot_intro/tshoot_intro_1.png
- :align: center
-
-.. note:: A set of possible answers are available here_. This hyperlink is only available to Arista employees.
- Please work with your Arista SE for access.
-
-.. _here: https://drive.google.com/file/d/16NJ0hKy2ZfhV4Z4fdLgcp6hBnJ_iIn9P/view?usp=sharing
-
-1. Log into the **LabAccess** jumpserver:
-
- 1. Type ``labs`` or option ``97`` at the Main Menu prompt. This will bring up additional lab menu selections.
- 2. Type ``troubleshooting`` or option ``3`` at this prompt to open the troubleshooting lab section (If you were previously in the Troubleshooting Labs Menu, you can type ``back`` or option ``97`` to go back).
- 3. Type ``tshoot-intro`` or option ``1`` at the prompt. The script will configure the lab into a errored set of states. It is up to you to determine
- a solution for each of the questions below. There can be many solutions, please work with your SE.
-
-2. Questions
-
- 1. Why can’t Leaf1 ping Host1? Are there multiple ways to fix this?
-
- 2. Why is Leaf2 the spanning tree root for all VLANs?
-
- 3. Why isn’t 172.16.112.0/24 being advertised into BGP?
-
- 4. Why won’t the OSPF adjacency come up between Leaf1 & Spine1?
-
diff --git a/topologies/dual-datacenter/labguides/source/ucn-l2evpn.rst b/topologies/dual-datacenter/labguides/source/ucn-l2evpn.rst
deleted file mode 100644
index 6db5eff41..000000000
--- a/topologies/dual-datacenter/labguides/source/ucn-l2evpn.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-
-L2 EVPN
-=======
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. On **leaf3**, configure ArBGP. **(Already configured and enabled on the switch)**
-
- .. code-block:: html
-
- configure
- service routing protocols model multi-agent
-
-2. Configure interfaces on **leaf3**.
-
- .. code-block:: html
-
- configure
- interface Port-Channel4
- description HOST2
- switchport mode access
- switchport access vlan 12
- !
- interface Ethernet1
- shutdown
- !
- interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.10/30
- !
- interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.26/30
- !
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
- !
- interface Ethernet5
- shutdown
- !
- interface Loopback0
- ip address 172.16.0.5/32
- !
- interface Loopback1
- ip address 3.3.3.3/32
- !
-
-3. Add Underlay BGP configurations on **Leaf3**
-
- .. code-block:: html
-
- configure
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE bfd
- neighbor SPINE remote-as 65001
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
- !
-
-4. Verify Underlay
-
- 1. On each leaf and spine
-
- .. code-block:: html
-
- show ip bgp summary
- show ip route bgp
-
-5. On **leaf3**, build BGP Overlay
-
- .. code-block:: html
-
- configure
- router bgp 65103
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-6. Verify overlay
-
- 1. On **leaf1** and **leaf3**
-
- .. code-block:: html
-
- show bgp evpn summary
-
-7. Configure L2EVPN
-
- 1. On **leaf3**: add VLAN 12, and interface vxlan1
-
- .. code-block:: html
-
- configure
- vlan 12
- !
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 12 vni 1200
- !
-
- 2. On **leaf3**: add mac vrf
-
- .. code-block:: html
-
- configure
- router bgp 65103
- vlan 12
- rd 3.3.3.3:12
- route-target both 1:12
- redistribute learned
- !
-
-8. Verify VXLAN and L2EVPN
-
- 1. On **leaf1** and **leaf3** verify the IMET table
-
- .. code-block:: text
-
- show interface vxlan1
- show bgp evpn route-type imet
-
- 2. Log into **host1** and ping **host2**
-
- .. code-block:: text
-
- ping 172.16.112.202
-
- 3. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show bgp evpn route-type mac-ip
- show mac address-table dynamic
-
-**LAB COMPLETE!**
diff --git a/topologies/dual-datacenter/labguides/source/ucn-l3evpn.rst b/topologies/dual-datacenter/labguides/source/ucn-l3evpn.rst
deleted file mode 100644
index 51bab1cc3..000000000
--- a/topologies/dual-datacenter/labguides/source/ucn-l3evpn.rst
+++ /dev/null
@@ -1,171 +0,0 @@
-L3 EVPN
-=======
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. On **leaf3**, configure EOS to Mutli-Agent and add loopback0
-
- 1. **leaf3** enable the Multi-Agent **(Already configured and enabled on the switch)**
-
- .. code-block:: text
-
- configure
- service routing protocols model multi-agent
-
- 2. **leaf3** Underlay Interface configurations. Note the interfaces to **host2** change from previous L2EVPN lab
-
- .. code-block:: text
-
- configure
- interface Port-Channel5
- description HOST2
- switchport access vlan 2003
- no shutdown
- !
- interface Ethernet1
- shutdown
- !
- interface Ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.10/30
- !
- interface Ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.26/30
- !
- interface Ethernet4
- shutdown
- !
- interface Ethernet5
- description HOST2
- channel-group 5 mode active
- no shutdown
- !
- interface Loopback0
- ip address 172.16.0.5/32
- !
- interface Loopback1
- ip address 3.3.3.3/32
- !
-
- 3. On **leaf3** Add Underlay BGP configurations
-
- .. code-block:: text
-
- configure
- router bgp 65103
- router-id 172.16.0.5
- maximum-paths 2 ecmp 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65001
- neighbor SPINE bfd
- neighbor SPINE maximum-routes 12000
- neighbor 172.16.200.9 peer group SPINE
- neighbor 172.16.200.25 peer group SPINE
- redistribute connected
-
-2. Verify Underlay on **every** leaf and spine:
-
- .. code-block:: text
-
- show ip bgp summary
- show ip route bgp
-
-3. On **leaf3**, build BGP Overlay
-
- .. code-block:: text
-
- configure
- router bgp 65103
- neighbor SPINE-EVPN-TRANSIT peer group
- neighbor SPINE-EVPN-TRANSIT update-source Loopback0
- neighbor SPINE-EVPN-TRANSIT ebgp-multihop
- neighbor SPINE-EVPN-TRANSIT send-community
- neighbor SPINE-EVPN-TRANSIT remote-as 65001
- neighbor SPINE-EVPN-TRANSIT maximum-routes 0
- neighbor 172.16.0.1 peer group SPINE-EVPN-TRANSIT
- neighbor 172.16.0.2 peer group SPINE-EVPN-TRANSIT
- !
- address-family evpn
- neighbor SPINE-EVPN-TRANSIT activate
- !
- address-family ipv4
- no neighbor SPINE-EVPN-TRANSIT activate
- !
-
-4. Verify overlay on **leaf1** and **leaf3**:
-
- .. code-block:: text
-
- show bgp evpn summary
-
-5. Configure L3EVPN
-
- 1. Configure the VRF
-
- .. code-block:: text
-
- configure
- vrf instance vrf1
- !
- ip routing vrf vrf1
- !
- router bgp 65103
- vrf vrf1
- rd 3.3.3.3:1001
- route-target import evpn 1:1001
- route-target export evpn 1:1001
- redistribute connected
- redistribute static
- !
-
- 2. Configure vrf interfaces (start in global configuration mode not BGP)
-
- .. code-block:: text
-
- interface Vlan2003
- mtu 9000
- no autostate
- vrf vrf1
- ip address virtual 172.16.116.1/24
- !
- interface Loopback901
- vrf vrf1
- ip address 200.200.200.2/32
- !
-
- 3. Map VRF to VNI
-
- .. code-block:: text
-
- configure
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vrf vrf1 vni 1001
- !
-
-6. Verify VRF on Leaf 1 and 3 (note route resolution over VNI and dynamic VLAN to VNI mapping)
-
- 1. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show interface vxlan1
-
- 2. Log into **host1** and ping **host2**
-
- .. code-block:: text
-
- ping 172.16.116.100
-
- 3. On **leaf1** and **leaf3**
-
- .. code-block:: text
-
- show ip route vrf vrf1
- show mac address-table dynamic
-
-**LAB COMPLETE!**
diff --git a/topologies/dual-datacenter/labguides/source/ucn-l3ls.rst b/topologies/dual-datacenter/labguides/source/ucn-l3ls.rst
deleted file mode 100644
index b1daea2f5..000000000
--- a/topologies/dual-datacenter/labguides/source/ucn-l3ls.rst
+++ /dev/null
@@ -1,191 +0,0 @@
-Layer 3 Leaf-Spine
-==================
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. Configure SVI and VARP Virtual IP on the **Leaf4** switch using the following criteria
-
- 1. Create the vARP MAC Address in Global Configuration mode
-
- .. code-block:: text
-
- configure
- ip virtual-router mac-address 00:1c:73:00:00:34
-
- 2. Create the SVI and the Virtual Router Address
-
- .. code-block:: text
-
- configure
- interface vlan 34
- ip address 172.16.116.3/24
- ip virtual-router address 172.16.116.1
-
- 3. Validate the configuration issue the following commands
-
- .. code-block:: text
-
- show ip interface brief
- show ip virtual-router
-
-2. Configure BGP on the **Leaf4** switch using the following criteria
-
- 1. Based on the diagram, configure L3 interfaces to **Spine1/Spine2** and interface Loopback0
-
- .. code-block:: text
-
- configure
- interface ethernet2
- description SPINE1
- no switchport
- ip address 172.16.200.14/30
-
- interface ethernet3
- description SPINE2
- no switchport
- ip address 172.16.200.30/30
-
- interface loopback0
- ip address 172.16.0.6/32
-
- 2. Validate the configuration issue the following commands
-
- .. code-block:: text
-
- show ip interface brief
-
- 3. Based on the diagram, turn on BGP and configure the neighbor
- relationships on **Leaf4**. eBGP to **Spine1/Spine2** and iBGP to **Leaf3**.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- router-id 172.16.0.6
- neighbor 172.16.200.13 remote-as 65000
- neighbor 172.16.200.29 remote-as 65000
- neighbor 172.16.34.1 remote-as 65002
- neighbor 172.16.34.1 next-hop-self
-
- .. note:: Since ``neighbor 172.16.34.1 remote-as 65002`` specifies an iBGP
- peering relationship (because the ASN is the same as this switch
- ``65002``) the receiving switch may not have a route to networks more
- than 1 hop away, hence the switches should each advertise that they are
- the next hop via the ``neighbor 172.16.34.1 next-hop-self`` statement. While this scenario is
- only 2 iBGP peers, in a network fabric with several iBGP peers, a
- switch inside an AS (and not on an edge) may not have a route to a
- switch in any external AS.
-
- 4. Validate the configuration and neighbor establishment
-
- .. code-block:: text
-
- show active
- show ip bgp summary
-
-3. Configure networks on **Leaf4** to advertise to **Spine1/Spine2**
-
- 1. Add the following networks to BGP announcements on **Leaf4**:
-
- .. code-block:: text
-
- configure
- router bgp 65002
- network 172.16.0.6/32
- network 172.16.116.0/24
-
- 2. Verify all of the **Spines** and **Leafs** see these new network announcements
-
- .. code-block:: text
-
- show ip route
- show ip bgp
- show ip route bgp
-
- 3. Add in multiple paths by enabling ECMP, on **Leaf4**, jump into BGP configuration mode and add:
-
- .. code-block:: text
-
- configure
- router bgp 65002
- maximum-paths 4 ecmp 4
-
- 4. Check the BGP and IP route tables on each of the **Spines** and **Leafs**
-
- .. code-block:: text
-
- show ip bgp
- show ip route
- show ip route bgp
-
- .. note:: ECMP is now working - notice the new status code in the `show ip bgp` output
-
-4. Validate connectivity from **Host1** to **Host2**. From **Host1** execute:
-
- .. code-block:: text
-
- ping 172.16.116.100
- traceroute 172.16.116.100
-
- 1. Verify Leaf4's IP address is in the traceroute path, either interface 172.16.200.14 via spine1 or interface 172.16.200.30 via spine2.
- If traffic is hashing via leaf3's 172.16.200.10 or 172.16.200.26 interfaces perform the optional ``shutdown`` steps below on **Leaf3**
-
- .. code-block:: text
-
- configure
- router bgp 65002
- neighbor 172.16.200.9 shutdown
- neighbor 172.16.200.25 shutdown
-
- 2. Rerun traceroute/verification from **Host1** to **Host2** then revert the ``shutdown`` changes on **Leaf3**
-
- .. code-block:: text
-
- configure
- router bgp 65002
- no neighbor 172.16.200.9 shutdown
- no neighbor 172.16.200.25 shutdown
-
-5. Other BGP features to play with if you have time:
-
- 1. Route Redistribution: For fun do a ``watch 1 diff show ip route | begin
- Gateway`` on **Leaf1** & **Leaf2** and let those run while you execute the
- command ``redistribute connected`` below on **Leaf3**. You will see new routes being
- injected into the route tables of **Leaf1** & **Leaf2**.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- redistribute connected
-
- 2. Route Maps:
-
- .. code-block:: text
-
- configure
- route-map etc
-
- 3. BFD: BFD is a low-overhead, protocol-independent mechanism which adjacent
- systems can use instead for faster detection of faults in the path between
- them. BFD is a simple mechanism which detects the liveness of a connection
- between adjacent systems, allowing it to quickly detect failure of any
- element in the connection.
-
- .. code-block:: text
-
- configure
- router bgp 65002
- neighbor bfd
-
-6. Troubleshooting BGP:
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp
- show ip bgp neighbor x.x.x.x
- show run section bgp
- show log
-
-**LAB COMPLETE!**
diff --git a/topologies/dual-datacenter/labguides/source/ucn-mlag.rst b/topologies/dual-datacenter/labguides/source/ucn-mlag.rst
deleted file mode 100644
index 01fc090d9..000000000
--- a/topologies/dual-datacenter/labguides/source/ucn-mlag.rst
+++ /dev/null
@@ -1,140 +0,0 @@
-MLAG
-====
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. On **Leaf3**, verify MLAG operation (it should not be operating correctly)
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
-
-2. Configure MLAG on the **Leaf4** switch using the following criteria
-
- 1. Configure Port-channel on **Leaf4** to used for MLAG communication between **Leaf3** & **Leaf4**.
-
- .. code-block:: text
-
- configure
- interface port-channel 10
- description MLAG PEER LINK - LEAF3
- switchport mode trunk
-
- interface ethernet 1
- description MLAG PEER LINK - LEAF3
- channel-group 10 mode active
-
- .. note::
- A *channel-group* is a group of interfaces on a single Arista switch. A *channel-group* is associated with a *port-channel* interface immediately upon its creation. The *channel-group* command implicitly creates the matching *port-channel* with the same ID, which is *10* in this case. The *switchport mode trunk* command allows all VLANs on *port-channel 10*.
-
- 2. Verify switching operation
-
- .. code-block:: text
-
- show interfaces status
- show lldp neighbors
- show interfaces trunk
-
- .. note::
- Each switch is assigned a globally unique sysID by concatenating the 16-bit system priority to a 48-bit MAC address of one of the switch's physical ports. This sysID is used by peer devices when forming an aggregation to verify that all links are from the same switch - for environments where the MLAG peer link contains multiple physical links - which it does NOT in this example. A *trunk group* is the set of physical interfaces that comprise the trunk and the collection of VLANs whose traffic is carried on the trunk. The traffic of a VLAN that belongs to one or more trunk groups is carried only on ports that are members of trunk groups to which the VLAN belongs, i.e., VLANs configured in a *trunk group* are ‘pruned’ off all ports that are not associated with the trunk group. The spanning-tree protocol (STP) is disabled for the peer-link VLAN 4094 to prevent any potential STP disruption on the interpeer communications link. Since VLAN 4094 has been restricted to only be on the peer-link (Po10) by *trunk group MLAGPEER* & *switchport trunk group MLAGPEER* (see step #2.3) the chance of a loop is eliminated. To prevent loops do NOT add this *trunk group MLAGPEER* to any other interface links.
-
- 3. Configure the MLAG VLAN (both Layer 2 and Layer 3).
-
- .. code-block:: text
-
- configure
- vlan 4094
- trunk group MLAGPEER
-
- interface port-channel 10
- switchport trunk group MLAGPEER
-
- no spanning-tree vlan-id 4094
-
- interface vlan 4094
- description MLAG PEER LINK
- ip address 172.16.34.2/30
-
- ping 172.16.34.1
-
- .. note::
- The *ip address 172.16.34.2/30* (see step #2.3) assigned to one side of the peer-link can be any unicast address that does not conflict with any SVIs on the same switch. The *local-interface vlan 4094* command (see step #2.4) specifies the SVI upon which the switch sends MLAG control traffic. The IP address is specified within the definition of the VLAN associated with this local interface, which you already performed earlier above. While the peer-link's (designated with the command *peer-link port-channel 10* (see below)) primary purpose is to exchange MLAG control information between the 2 peer switches, it also carries dataplane traffic from devices that are attached to only 1 MLAG peer & have no alternative path. This peer-link can also carry traffic in topology failure scenarios (i.e. one of these peer-link switches loses all its uplinks to the spine switches). The *domain-id MLAG34* command determines the MLAG domain that consists of these 2 peer switches & the links that connect these 2 switches. The *domain-id* is case-sensitive and must match the same *domain-id* on the other peer switch.
-
- 4. Define the MLAG Domain.
-
- .. code-block:: text
-
- configure
- mlag
- domain-id MLAG34
- local-interface vlan 4094
- peer-address 172.16.34.1
- peer-link port-channel 10
-
- 5. Configure Port-channels and interfaces on **Leaf4** connecting to **Spine1** & **Spine2**.
-
- .. code-block:: text
-
- configure
- interface port-channel 34
- description MLAG - SPINE1 & 2
- switchport mode trunk
- mlag 34
-
- interface ethernet 2
- description SPINE1
- channel-group 34 mode active
-
- interface ethernet 3
- description SPINE2
- channel-group 34 mode active
-
- .. note::
- The *mlag 34* (see #2.5) assigns an MLAG ID to *interface port-channel 34*. MLAG peer switches form an MLAG when each switch configures the same MLAG ID to a port-channel interface. This is **different** than the MLAG *domain-id* (see #2.4). The global-scope *mlag* command above (see #2.4) just enters the global MLAG configuration scope of the Arista switch.
-
- 6. Configure Port-channels on **Leaf4** connecting to **Host2**
-
- .. code-block:: text
-
- configure
- interface port-channel 4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
-
- interface ethernet 4
- description HOST2
- channel-group 4 mode active
-
- interface ethernet5
- shutdown
-
-3. Validate MLAG on the **Leaf4** switch using the following:
-
- 1. Verify MLAG operation
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
-
- 2. Verify switching operation
-
- .. code-block:: text
-
- show interfaces status
- show lldp neighbors
- show interfaces trunk
-
- 3. Validate connectivity from **Host1** to **Host2** by logging into **Host1** through the menu (option 1 in ssh menu) or using screen.
-
- .. code-block:: text
-
- ping 172.16.112.202
-
-|
-
-**LAB COMPLETE!**
diff --git a/topologies/dual-datacenter/labguides/source/ucn-vxlan.rst b/topologies/dual-datacenter/labguides/source/ucn-vxlan.rst
deleted file mode 100644
index 700c445ed..000000000
--- a/topologies/dual-datacenter/labguides/source/ucn-vxlan.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-VxLAN
-=====
-
-**To access the command line of particular switch, click on that switch in the topology diagram at the top of the lab guide.**
-
-1. On **Leaf3**, configure Port-channels connecting to **Host2**
-
- .. code-block:: text
-
- configure
- interface port-channel 4
- description MLAG - HOST2
- switchport access vlan 12
- mlag 4
-
- interface Ethernet4
- description HOST2
- channel-group 4 mode active
- lacp timer fast
-
-2. Verify MLAG on **Leaf3**
-
- .. code-block:: text
-
- show mlag
- show mlag detail
- show mlag interfaces
- show port-channel
-
-3. Validate BGP operation **Leaf3**
-
- .. code-block:: text
-
- show run section bgp
- show ip route bgp
- show ip route
- show ip interface brief
- show ip bgp summary
-
-.. note:: ``show ip bgp summary`` will show that the BGP neighbors have moved to ``Estab`` state. Note the iBGP peering between Leaf3 & Leaf4. Also note the route to the shared loopback1 of Leaf1 & Leaf2. This is the remote VTEP on the other side of the leaf-spine network.
-
-4. Create Loopback 1 and the VXLAN VTEP (VTI) interfaces on **Leaf3**
-
- 1. Configuration
-
- .. code-block:: text
-
- configure
- interface Loopback1
- ip address 172.16.0.56/32
-
- interface vxlan 1
- vxlan source-interface loopback 1
- vxlan vlan 12 vni 1212
- vxlan flood vtep 172.16.0.34
-
- .. note:: ``vxlan flood vtep 172.16.0.34`` adds the shared loopback1 IP address on Leaf1 & Leaf2 to the HER list. Note that for autodiscovery of VTEPs, one must use BGP eVPN (see eVPN labs) or CVX (see CVX lab).
-
- 2. Verification
-
- .. code-block:: text
-
- show run interface vxlan 1
- show interface vxlan 1
-
-5. Log into **Host 1** and **Host 2**, ping the vARP VIP and the other host
-
- 1. Host 1 ping tests. From **Host1**:
-
- .. code-block:: text
-
- ping 172.16.112.1
- ping 172.16.112.202
-
- .. note:: The TTL in the ping outputs above. Even though .202 is many
- switches away, it appears locally connected and has the same
- TTL as the ping to .1. It's also interesting to realize that
- due to MLAG hashing of both the ARP requests and ping packet
- flows that pings to the SVI addresses of .2 & .3 may or may not
- work. Do you know why?
-
- 2. Host 1 MAC/ARP information
-
- .. code-block:: text
-
- show interface po1 | grep -i Hardware
- show arp
-
- .. note:: Note the MAC addresses returned by the commands above.
-
- 3. Host 2 ping tests. From **Host2**:
-
- .. code-block:: text
-
- ping 172.16.112.1
- ping 172.16.112.201
-
- .. note:: Note the TTL in the ping outputs above. Even though .201 is many
- switches away, it appears locally connected and has the same TTL
- as the ping to .1. Also note that the vARP VIP (172.16.112.1)
- address & and vARP MAC address (00:1c:73:00:00:ff) are the **same** for both leaf
- pairs - this IP address is known as an AnyCast IP address. If
- a VM was motioning from **Host1** to **Host2** for maintenance,
- the default GW address nor the ARP cache on that VM need to
- change.
-
- 4. Host 2 MAC/ARP information
-
- .. code-block:: text
-
- show interface po1 | grep -i Hardware
- show arp
-
- .. note:: Note the MAC addresses returned by the commands above and
- compare to the prior ``grep`` and ``arp`` commands and see that
- both hosts appear to each other as though they are on the same
- L2 broadcast domain. **For a little extra fun**, as you are
- running the pings from **host1**, on another set of windows
- for **leaf1** & **leaf2** run ``clear counters`` then run
- ``watch 1 diff show int e4 counter`` and see how MLAG hashing
- across the different pings causes the packets to choose a
- particular member of the port-channel in both the outbound &
- inbound ping flows.
-
-6. Verification – on **Leaf 1/2** and **Leaf 3/4**
-
- 1. Verify the MAC addresses and the associated VTEP IP
-
- .. code-block:: text
-
- show vxlan vtep
- show vxlan address-table
-
- .. note:: For ``show vxlan vtep`` & ``show vxlan address-table`` to be
- populated, the above ``pings`` need to have been active very
- recently so that the MAC addresses don't age out, and you'll
- notice that at least 1 (but not necessarily both) of the MLAG
- pair switches (**leaf1** or
- **leaf2**) will have knowledge of the remote VTEP. This is
- because this is the direction the pings (inbound & outbound)
- last hashed.
-
- 2. Verify the MAC address and the associated interface
-
- .. code-block:: text
-
- show mac address-table
-
-7. Let’s run some other show commands and tests to poke around VxLAN. On **Leaf1** and **Leaf3** issue the following commands:
-
- .. code-block:: text
-
- show interface vxlan 1
- show mac address-table
- show log
-
-**LAB COMPLETE!**
diff --git a/topologies/dual-datacenter/labguides/source/vxlan.rst b/topologies/dual-datacenter/labguides/source/vxlan.rst
deleted file mode 100644
index cdf4b2b57..000000000
--- a/topologies/dual-datacenter/labguides/source/vxlan.rst
+++ /dev/null
@@ -1,325 +0,0 @@
-VxLAN
-=====
-
-.. image:: images/vxlan/nested_vxlan_topo_1.png
- :align: center
-
-.. note:: Did you know the ``vxlan`` script is composed of Python code that
- uses the CloudVision Portal REST API to automate the provisioning of
- CVP configlets. The configlets that are configured via the REST API
- are ``VXLAN_s1-spine1``, ``VXLAN_s1-spine2``, ``VXLAN_s1-leaf1``,
- ``VXLAN_s1-leaf2``, ``VXLAN_s1-leaf3``, ``VXLAN_s1-leaf4``. In
- addition each leaf also gets the ``VLANs`` configlet.
-
-.. note:: The manually-entered commands below that are part of this lab are
- equivalent to ``VXLAN_s1-leaf4_complete``.
-
-
-1. Log into the LabAccess jumpserver:
-
- 1. Type ``vxlan`` at the prompt. The script will configure the datacenter with the exception of **s1-leaf4**.
-
-2. On **s1-leaf4**, configure Port-channels connecting to **s1-host2**
-
- .. code-block:: text
-
- configure
- interface port-channel 5
- description MLAG - HOST2
- switchport access vlan 112
- mlag 5
-
- interface Ethernet4
- description HOST2
- channel-group 5 mode active
- lacp timer fast
-
-3. Verify MLAG on **s1-leaf4**
-
- .. code-block:: text
- :emphasize-lines: 1, 25, 31, 50
-
- s1-leaf4(config)#show mlag
- MLAG Configuration:
- domain-id : MLAG
- local-interface : Vlan4094
- peer-address : 10.255.255.1
- peer-link : Port-Channel1
- peer-config : consistent
-
- MLAG Status:
- state : Active
- negotiation status : Connected
- peer-link status : Up
- local-int status : Up
- system-id : 02:1c:73:c0:c6:14
- dual-primary detection : Disabled
- dual-primary interface errdisabled : False
-
- MLAG Ports:
- Disabled : 0
- Configured : 0
- Inactive : 0
- Active-partial : 0
- Active-full : 1
-
- s1-leaf4(config)#show mlag interfaces
- local/remote
- mlag desc state local remote status
- ---------- ---------- ----------------- ----------- ------------ ------------
- 5 MLAG - HOST2 active-full Po5 Po5 up/up
-
- s1-leaf4(config)#show port-channel dense
-
- Flags
- -------------------------- ----------------------------- -------------------------
- a - LACP Active p - LACP Passive * - static fallback
- F - Fallback enabled f - Fallback configured ^ - individual fallback
- U - In Use D - Down
- + - In-Sync - - Out-of-Sync i - incompatible with agg
- P - bundled in Po s - suspended G - Aggregable
- I - Individual S - ShortTimeout w - wait for agg
- E - Inactive. The number of configured port channels exceeds the config limit
- M - Exceeds maximum weight
-
- Number of channels in use: 2
- Number of aggregators: 2
-
- Port-Channel Protocol Ports
- ------------------ -------------- ------------------
- Po1(U) LACP(a) Et1(PG+) Et6(PG+)
- Po5(U) LACP(a) Et4(PSG+) PEt4(P)
-
-
-4. Validate BGP operation **s1-leaf4**
-
- .. code-block:: text
- :emphasize-lines: 1, 16, 44, 56
-
- s1-leaf4(config)#sh run sec bgp
- router bgp 65102
- router-id 10.111.254.4
- maximum-paths 2
- neighbor SPINE peer group
- neighbor SPINE remote-as 65100
- neighbor SPINE send-community standard extended
- neighbor 10.111.1.6 peer group SPINE
- neighbor 10.111.2.6 peer group SPINE
- neighbor 10.255.255.1 remote-as 65102
- neighbor 10.255.255.1 next-hop-self
- network 10.111.112.0/24
- network 10.111.134.0/24
- network 10.111.254.4/32
-
- s1-leaf4(config)#show ip route bgp
-
- VRF: default
- Codes: C - connected, S - static, K - kernel,
- O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
- E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
- N2 - OSPF NSSA external type2, B - Other BGP Routes,
- B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1,
- I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate,
- A O - OSPF Summary, NG - Nexthop Group Static Route,
- V - VXLAN Control Service, M - Martian,
- DH - DHCP client installed default route,
- DP - Dynamic Policy Route, L - VRF Leaked,
- G - gRIBI, RC - Route Cache Route
-
- B E 10.111.0.1/32 [200/0] via 10.111.1.6, Ethernet2
- B E 10.111.0.2/32 [200/0] via 10.111.2.6, Ethernet3
- B E 10.111.1.0/24 [200/0] via 10.111.1.6, Ethernet2
- B E 10.111.2.0/24 [200/0] via 10.111.2.6, Ethernet3
- B E 10.111.253.1/32 [200/0] via 10.111.1.6, Ethernet2
- via 10.111.2.6, Ethernet3
- B I 10.111.253.3/32 [200/0] via 10.255.255.1, Vlan4094
- B E 10.111.254.1/32 [200/0] via 10.111.1.6, Ethernet2
- via 10.111.2.6, Ethernet3
- B E 10.111.254.2/32 [200/0] via 10.111.1.6, Ethernet2
- via 10.111.2.6, Ethernet3
- B I 10.111.254.3/32 [200/0] via 10.255.255.1, Vlan4094
-
- s1-leaf4(config)#show ip interface brief
- Address
- Interface IP Address Status Protocol MTU Owner
- ----------------- --------------------- ------------ -------------- ----------- -------
- Ethernet2 10.111.1.7/31 up up 1500
- Ethernet3 10.111.2.7/31 up up 1500
- Loopback0 10.111.254.4/32 up up 65535
- Management0 192.168.0.15/24 up up 1500
- Vlan112 10.111.112.1/24 up up 1500
- Vlan134 10.111.134.1/24 up up 1500
- Vlan4094 10.255.255.2/30 up up 1500
-
- s1-leaf4(config)#show ip bgp summary
- BGP summary information for VRF default
- Router identifier 10.111.254.4, local AS number 65102
- Neighbor Status Codes: m - Under maintenance
- Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
- 10.111.1.6 4 65100 333 335 0 0 04:34:48 Estab 5 5
- 10.111.2.6 4 65100 329 332 0 0 04:34:58 Estab 6 6
- 10.255.255.1 4 65102 335 333 0 0 04:34:46 Estab 11 11
-
-.. note:: ``show ip bgp summary`` will show that the BGP neighbors have moved to ``Estab`` state. Note the iBGP peering between Leaf3 & Leaf4. Also note the route to the shared loopback1 of Leaf1 & Leaf2. This is the remote VTEP on the other side of the leaf-spine network.
-
-5. Create Loopback 1 and the VXLAN VTEP (VTI) interfaces on **s1-leaf4**
-
- 1. Configuration
-
- .. code-block:: text
-
- configure
- interface Loopback1
- ip address 10.111.253.3/32
-
- interface vxlan 1
- vxlan source-interface loopback 1
- vxlan vlan 12 vni 1212
- vxlan flood vtep 10.111.253.1
-
- .. note:: ``vxlan flood vtep 10.111.253.1`` adds the shared loopback1 IP address on Leaf1 & Leaf2 to the HER list. Note that for autodiscovery of VTEPs, one must use BGP eVPN (see eVPN labs) or CVX (see CVX lab).
-
- 2. Verification
-
- .. code-block:: text
- :emphasize-lines: 1, 8
-
- s1-leaf4(config)#show run int vxlan1
- interface Vxlan1
- vxlan source-interface Loopback1
- vxlan udp-port 4789
- vxlan vlan 112 vni 112
- vxlan flood vtep 10.111.253.1
-
- s1-leaf4#show interfaces vxlan 1
- Vxlan1 is down, line protocol is down (notconnect)
- Hardware is Vxlan
- Source interface is Loopback1 and is inactive
- Replication/Flood Mode is not initialized yet
- Remote MAC learning via Datapath
- VNI mapping to VLANs
- Static VLAN to VNI mapping is
- [112, 112]
- Note: All Dynamic VLANs used by VCS are internal VLANs.
- Use 'show vxlan vni' for details.
- Static VRF to VNI mapping is not configured
- MLAG Shared Router MAC is 0000.0000.0000
-
-
-6. Log into **s1-host1** and **s1-host2**, ping the vARP VIP and the other host
-
- 1. Host 1 ping tests. From **s1-host1**:
-
- .. code-block:: text
-
- ping 10.111.112.1
- ping 10.111.112.202
-
- .. note:: The TTL in the ping outputs above. Even though .202 is many
- switches away, it appears locally connected and has the same
- TTL as the ping to .1. It's also interesting to realize that
- due to MLAG hashing of both the ARP requests and ping packet
- flows that pings to the SVI addresses of .2 & .3 may or may not
- work. Do you know why?
-
- 2. Host 1 MAC/ARP information
-
- .. code-block:: text
- :emphasize-lines: 1, 4
-
- s1-host1#show interfaces po1 | grep -i Hardware
- Hardware is Port-Channel, address is 001c.73c0.c616
-
- s1-host1#show arp
- Address Age (sec) Hardware Addr Interface
- 192.168.0.1 0:00:00 124e.b1e1.7180 Management0
- 192.168.0.5 0:00:05 001c.73a0.c601 Management0
- 10.111.112.1 0:38:05 001c.7300.0001 Port-Channel1
- 10.111.112.202 0:14:05 001c.73c0.c617 Port-Channel1
-
- .. note:: Note the MAC addresses returned by the commands above.
-
- 3. Host 2 ping tests. From **s1-host2**:
-
- .. code-block:: text
-
- ping 10.111.112.1
- ping 10.111.112.201
-
- .. note:: Note the TTL in the ping outputs above. Even though .201 is many
- switches away, it appears locally connected and has the same TTL
- as the ping to .1. Also note that the vARP VIP (10.111.112.1)
- address & and vARP MAC address (00:1c:73:00:00:ff) are the **same** for both leaf
- pairs - this IP address is known as an AnyCast IP address. If
- a VM was motioning from **s1-host1** to **s1-host2** for maintenance,
- the default GW address nor the ARP cache on that VM need to
- change.
-
- 4. Host 2 MAC/ARP information
-
- .. code-block:: text
-
- show interface po1 | grep -i Hardware
- show arp
-
- .. note:: Note the MAC addresses returned by the commands above and
- compare to the prior ``grep`` and ``arp`` commands and see that
- both hosts appear to each other as though they are on the same
- L2 broadcast domain. **For a little extra fun**, as you are
- running the pings from **host1**, on another set of windows
- for **s1-leaf1** & **s1-leaf2** run ``clear counters`` then run
- ``watch 1 diff show int e4 counter`` and see how MLAG hashing
- across the different pings causes the packets to choose a
- particular member of the port-channel in both the outbound &
- inbound ping flows.
-
-7. Verification – on **s1-leaf1/2** and **s1-leaf3/4**
-
- 1. Verify the MAC addresses and the associated VTEP IP
-
- .. code-block:: text
- :emphasize-lines: 1, 10
-
- s1-leaf1#show vxlan vtep
- Remote VTEPS for Vxlan1:
-
- VTEP Tunnel Type(s)
- ------------------ --------------
- 10.111.253.3 unicast, flood
-
- Total number of remote VTEPS: 1
-
- s1-leaf1#show vxlan address-table
- Vxlan Mac Address Table
- ----------------------------------------------------------------------
-
- VLAN Mac Address Type Prt VTEP Moves Last Move
- ---- ----------- ---- --- ---- ----- ---------
- 112 001c.73c0.c617 DYNAMIC Vx1 10.111.253.3 1 0:01:13 ago
- Total Remote Mac Addresses for this criterion: 1
-
-
- .. note:: For ``show vxlan vtep`` & ``show vxlan address-table`` to be
- populated, the above ``pings`` need to have been active very
- recently so that the MAC addresses don't age out, and you'll
- notice that at least 1 (but not necessarily both) of the MLAG
- pair switches (**s1-leaf1** or
- **s1-leaf2**) will have knowledge of the remote VTEP. This is
- because this is the direction the pings (inbound & outbound)
- last hashed.
-
- 2. Verify the MAC address and the associated interface
-
- .. code-block:: text
-
- show mac address-table
-
-8. Let’s run some other show commands and tests to poke around VxLAN. On **s1-leaf1** and **s1-leaf4** issue the following commands:
-
- .. code-block:: text
-
- show interface vxlan 1
- show mac address-table
- show log
-
-**LAB COMPLETE!**
diff --git a/topologies/dual-datacenter/topo_build.yml b/topologies/dual-datacenter/topo_build.yml
deleted file mode 100644
index c96087406..000000000
--- a/topologies/dual-datacenter/topo_build.yml
+++ /dev/null
@@ -1,476 +0,0 @@
-host_cpu: 8
-cvp_cpu: 24
-cvp_ram: 32
-cvp_nodes: 1
-veos_cpu: 1
-
-nodes:
- - s1-spine1:
- mac: 00:1c:73:c0:c6:10
- ip_addr: 192.168.0.10
- neighbors:
- - neighborDevice: s1-spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s1-leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: s1-leaf2
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: s1-leaf3
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: s1-leaf4
- neighborPort: Ethernet2
- port: Ethernet5
- - neighborDevice: s1-spine2
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: s1-brdr1
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: s1-brdr2
- neighborPort: Ethernet2
- port: Ethernet8
- - s1-spine2:
- mac: 00:1c:73:c0:c6:11
- ip_addr: 192.168.0.11
- neighbors:
- - neighborDevice: s1-spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s1-leaf1
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: s1-leaf2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: s1-leaf3
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: s1-leaf4
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: s1-spine1
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: s1-brdr1
- neighborPort: Ethernet3
- port: Ethernet7
- - neighborDevice: s1-brdr2
- neighborPort: Ethernet3
- port: Ethernet8
- - s1-leaf1:
- mac: 00:1c:73:c0:c6:12
- ip_addr: 192.168.0.12
- neighbors:
- - neighborDevice: s1-leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s1-spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: s1-spine2
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: s1-host1
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: s1-leaf2
- neighborPort: Ethernet6
- port: Ethernet6
- - s1-leaf2:
- mac: 00:1c:73:c0:c6:13
- ip_addr: 192.168.0.13
- neighbors:
- - neighborDevice: s1-leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s1-spine1
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: s1-spine2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: s1-host1
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: s1-leaf1
- neighborPort: Ethernet6
- port: Ethernet6
- - s1-leaf3:
- mac: 00:1c:73:c0:c6:14
- ip_addr: 192.168.0.14
- neighbors:
- - neighborDevice: s1-leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s1-spine1
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: s1-spine2
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: s1-host2
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: s1-leaf4
- neighborPort: Ethernet6
- port: Ethernet6
- - s1-leaf4:
- mac: 00:1c:73:c0:c6:15
- ip_addr: 192.168.0.15
- neighbors:
- - neighborDevice: s1-leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s1-spine1
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: s1-spine2
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: s1-host2
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: s1-leaf3
- neighborPort: Ethernet6
- port: Ethernet6
- - s1-host1:
- mac: 00:1c:73:c0:c6:16
- ip_addr: 192.168.0.16
- neighbors:
- - neighborDevice: s1-leaf1
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: s1-leaf2
- neighborPort: Ethernet4
- port: Ethernet2
- - s1-host2:
- mac: 00:1c:73:c0:c6:17
- ip_addr: 192.168.0.17
- neighbors:
- - neighborDevice: s1-leaf3
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: s1-leaf4
- neighborPort: Ethernet4
- port: Ethernet2
- - s1-brdr1:
- mac: 00:1c:73:c0:c1:00
- ip_addr: 192.168.0.100
- neighbors:
- - neighborDevice: s1-brdr2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s1-spine1
- neighborPort: Ethernet7
- port: Ethernet2
- - neighborDevice: s1-spine2
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: s1-core1
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: s1-core2
- neighborPort: Ethernet2
- port: Ethernet5
- - neighborDevice: s1-brdr2
- neighborPort: Ethernet6
- port: Ethernet6
- - s1-brdr2:
- mac: 00:1c:73:c0:c1:01
- ip_addr: 192.168.0.101
- neighbors:
- - neighborDevice: s1-brdr1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s1-spine1
- neighborPort: Ethernet8
- port: Ethernet2
- - neighborDevice: s1-spine2
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: s1-core1
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: s1-core2
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: s1-brdr1
- neighborPort: Ethernet6
- port: Ethernet6
- - s1-core1:
- mac: 00:1c:73:c0:c1:02
- ip_addr: 192.168.0.102
- neighbors:
- - neighborDevice: s1-core2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s1-brdr1
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: s1-brdr2
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: s2-core1
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: s1-core2
- neighborPort: Ethernet6
- port: Ethernet6
- - s1-core2:
- mac: 00:1c:73:c0:c1:03
- ip_addr: 192.168.0.103
- neighbors:
- - neighborDevice: s1-core1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s1-brdr1
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: s1-brdr2
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: s2-core2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: s1-core1
- neighborPort: Ethernet6
- port: Ethernet6
- - s2-spine1:
- mac: 00:1c:73:c0:c6:20
- ip_addr: 192.168.0.20
- neighbors:
- - neighborDevice: s2-spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s2-leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: s2-leaf2
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: s2-leaf3
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: s2-leaf4
- neighborPort: Ethernet2
- port: Ethernet5
- - neighborDevice: s2-spine2
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: s2-brdr1
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: s2-brdr2
- neighborPort: Ethernet2
- port: Ethernet8
- - s2-spine2:
- mac: 00:1c:73:c0:c6:21
- ip_addr: 192.168.0.21
- neighbors:
- - neighborDevice: s2-spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s2-leaf1
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: s2-leaf2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: s2-leaf3
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: s2-leaf4
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: s2-spine1
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: s2-brdr1
- neighborPort: Ethernet3
- port: Ethernet7
- - neighborDevice: s2-brdr2
- neighborPort: Ethernet3
- port: Ethernet8
- - s2-leaf1:
- mac: 00:1c:73:c0:c6:22
- ip_addr: 192.168.0.22
- neighbors:
- - neighborDevice: s2-leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s2-spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: s2-spine2
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: s2-host1
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: s2-leaf2
- neighborPort: Ethernet6
- port: Ethernet6
- - s2-leaf2:
- mac: 00:1c:73:c0:c6:23
- ip_addr: 192.168.0.23
- neighbors:
- - neighborDevice: s2-leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s2-spine1
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: s2-spine2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: s2-host1
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: s2-leaf1
- neighborPort: Ethernet6
- port: Ethernet6
- - s2-leaf3:
- mac: 00:1c:73:c0:c6:24
- ip_addr: 192.168.0.24
- neighbors:
- - neighborDevice: s2-leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s2-spine1
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: s2-spine2
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: s2-host2
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: s2-leaf4
- neighborPort: Ethernet6
- port: Ethernet6
- - s2-leaf4:
- mac: 00:1c:73:c0:c6:25
- ip_addr: 192.168.0.25
- neighbors:
- - neighborDevice: s2-leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s2-spine1
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: s2-spine2
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: s2-host2
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: s2-leaf3
- neighborPort: Ethernet6
- port: Ethernet6
- - s2-host1:
- mac: 00:1c:73:c0:c6:26
- ip_addr: 192.168.0.26
- neighbors:
- - neighborDevice: s2-leaf1
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: s2-leaf2
- neighborPort: Ethernet4
- port: Ethernet2
- - s2-host2:
- mac: 00:1c:73:c0:c6:27
- ip_addr: 192.168.0.27
- neighbors:
- - neighborDevice: s2-leaf3
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: s2-leaf4
- neighborPort: Ethernet4
- port: Ethernet2
- - s2-brdr1:
- mac: 00:1c:73:c0:c2:00
- ip_addr: 192.168.0.200
- neighbors:
- - neighborDevice: s2-brdr2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s2-spine1
- neighborPort: Ethernet7
- port: Ethernet2
- - neighborDevice: s2-spine2
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: s2-core1
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: s2-core2
- neighborPort: Ethernet2
- port: Ethernet5
- - neighborDevice: s2-brdr2
- neighborPort: Ethernet6
- port: Ethernet6
- - s2-brdr2:
- mac: 00:1c:73:c0:c2:01
- ip_addr: 192.168.0.201
- neighbors:
- - neighborDevice: s2-brdr1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s2-spine1
- neighborPort: Ethernet8
- port: Ethernet2
- - neighborDevice: s2-spine2
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: s2-core1
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: s2-core2
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: s2-brdr1
- neighborPort: Ethernet6
- port: Ethernet6
- - s2-core1:
- mac: 00:1c:73:c0:c2:02
- ip_addr: 192.168.0.202
- neighbors:
- - neighborDevice: s2-core2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s2-brdr1
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: s2-brdr2
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: s1-core1
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: s2-core2
- neighborPort: Ethernet6
- port: Ethernet6
- - s2-core2:
- mac: 00:1c:73:c0:c2:03
- ip_addr: 192.168.0.203
- neighbors:
- - neighborDevice: s2-core1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: s2-brdr1
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: s2-brdr2
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: s1-core2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: s2-core1
- neighborPort: Ethernet6
- port: Ethernet6
-additional_ssh_nodes:
\ No newline at end of file
diff --git a/topologies/metadata.yml b/topologies/metadata.yml
deleted file mode 100644
index bfcc0f49b..000000000
--- a/topologies/metadata.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-topologies:
- atd-testdrivetraining-dev:
- training-level-1-cl:
- labguide_zipfile_url : gs://topology_deploy_files/lab-guide-zips/L1_02062024.tar.gz
- training-level-2-cl:
- labguide_zipfile_url : gs://topology_deploy_files/lab-guide-zips/L2_03122024.tar.gz
- training-level-3-cl:
- labguide_zipfile_url : gs://topology_deploy_files/lab-guide-zips/L3_03122024.tar.gz
- training-level4:
- labguide_zipfile_url : gs://topology_deploy_files/lab-guide-zips/L4_01222024.tar.gz
- training-level4-v2:
- labguide_zipfile_url : gs://topology_deploy_files/lab-guide-zips/L4_01222024.tar.gz
- training-level5:
- labguide_zipfile_url : gs://topology_deploy_files/lab-guide-zips/L5_01222024.tar.gz
- training-level-cvp:
- labguide_zipfile_url : gs://topology_deploy_files/lab-guide-zips/cvp_03182024.tar.gz
- training-level-avd:
- labguide_zipfile_url : gs://topology_deploy_files/lab-guide-zips/avd_03182024.tar.gz
- training-level1-me:
- labguide_zipfile_url : gs://topology_deploy_files/lab-guide-zips/me_03182024.tar.gz
- training-level-1-mini-1:
- labguide_zipfile_url : gs://topology_deploy_files/lab-guide-zips/L1-Teaser-Fundamentals_04082024.tar.gz
- training-level-1-mini-2:
- labguide_zipfile_url : gs://topology_deploy_files/lab-guide-zips/L1-Teaser-Management_04082024.tar.gz
- atd-testdrivetraining-prod:
- training-level-1-cl:
- labguide_zipfile_url : gs://topology_deploy_files_prod/lab-guide-zips/L1_02062024.tar.gz
- training-level-2-cl:
- labguide_zipfile_url : gs://topology_deploy_files_prod/lab-guide-zips/L2_03122024.tar.gz
- training-level-3-cl:
- labguide_zipfile_url : gs://topology_deploy_files_prod/lab-guide-zips/L3_03122024.tar.gz
- training-level4:
- labguide_zipfile_url : gs://topology_deploy_files_prod/lab-guide-zips/L4_01222024.tar.gz
- training-level4-v2:
- labguide_zipfile_url : gs://topology_deploy_files_prod/lab-guide-zips/L4_01222024.tar.gz
- training-level5:
- labguide_zipfile_url : gs://topology_deploy_files_prod/lab-guide-zips/L5_01222024.tar.gz
- training-level-cvp:
- labguide_zipfile_url : gs://topology_deploy_files_prod/lab-guide-zips/cvp_03182024.tar.gz
- training-level-avd:
- labguide_zipfile_url : gs://topology_deploy_files_prod/lab-guide-zips/avd_03182024.tar.gz
- training-level1-me:
- labguide_zipfile_url : gs://topology_deploy_files_prod/lab-guide-zips/me_03182024.tar.gz
- training-level-1-mini-1:
- labguide_zipfile_url : gs://topology_deploy_files_prod/lab-guide-zips/L1-Teaser-Fundamentals_04082024.tar.gz
- training-level-1-mini-2:
- labguide_zipfile_url : gs://topology_deploy_files_prod/lab-guide-zips/L1-Teaser-Management_04082024.tar.gz
diff --git a/topologies/nested-vm/NestedVM.yml b/topologies/nested-vm/NestedVM.yml
deleted file mode 100644
index b6407036a..000000000
--- a/topologies/nested-vm/NestedVM.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-cloud_service: gcp:dev
-topology_name: nested-vm
-
-nodes:
- - atd_jump_host:
- neighbors: []
diff --git a/topologies/nested_all/login.py b/topologies/nested_all/login.py
deleted file mode 100644
index 29aa9101c..000000000
--- a/topologies/nested_all/login.py
+++ /dev/null
@@ -1,201 +0,0 @@
-#!/usr/bin/env python3
-import os
-import sys
-import signal
-import re
-from ruamel.yaml import YAML
-from itertools import zip_longest
-
-def atoi(text):
- return int(text) if text.isdigit() else text
-
-def natural_keys(text):
- return [ atoi(c) for c in re.split(r'(\d+)', text) ]
-
-def sortVEOS(vd):
- tmp_l = []
- tmp_d = {}
- fin_l = []
- for tveos in vd:
- tmp_l.append(tveos['hostname'])
- tmp_d[tveos['hostname']] = tveos
- tmp_l.sort(key=natural_keys)
- # If cvx in list, move to end
- if 'cvx' in tmp_l[0]:
- tmp_cvx = tmp_l[0]
- tmp_l.pop(0)
- tmp_l.append(tmp_cvx)
- for tveos in tmp_l:
- fin_l.append(tmp_d[tveos])
- return(fin_l)
-
-f = open('/etc/atd/ACCESS_INFO.yaml')
-accessinfo = YAML().load(f)
-f.close()
-
-f = open('/home/arista/MenuOptions.yaml')
-menuoptions = YAML().load(f)
-f.close()
-
-# Check to see if we need the media menu
-enableControls2 = False
-try:
- with open("/home/arista/enable-media", 'r') as fh:
- enableControls2 = True
-except:
- enableControls2 = False
-
-topology = accessinfo['topology']
-
-login = accessinfo['login_info']
-nodes = accessinfo['nodes']
-tag = accessinfo['tag']
-
-cvplogin = login['cvp']
-veoslogin = login['veos'][0]
-
-cvpguilogin = cvplogin['gui'][0]
-cvpguiuser = cvpguilogin['user']
-cvpguipass = cvpguilogin['pw']
-
-veosuser = veoslogin['user']
-veospass = veoslogin['pw']
-
-cvpinfo = nodes['cvp'][0]
-cvp = cvpinfo['ip']
-
-veosinfo = nodes['veos']
-
-labcontrols = menuoptions['options']
-# Check to see if this is the datacenter or datacenter-latest topo
-if 'datacenter' in topology:
- labcontrols2 = menuoptions['media-options']
-else:
- # If topo other than datacenter, set to False
- labcontrols2 = False
-
-# Catch for routing and datacenter-latest topos to sort login menu naturally
-if topology != 'datacenter':
- # Sort the list naturally
- veosinfo = sortVEOS(veosinfo)
-
-if sys.stdout.isatty():
-
- def signal_handler(signal, frame):
- print("\n")
- quit()
-
- signal.signal(signal.SIGINT, signal_handler)
-
-
- ans=True
- while ans:
- print ("""
-Jump Host for Arista Demo Cloud
-
-Screen Instructions:
-
- * Select specific screen - Ctrl + a
- * Select previous screen - Ctrl + a p
- * Select next screen - Ctrl + a n
- * Exit all screens (return to menu) - Ctrl + a \\
-
-Device Menu: Lab Controls
-
- """)
-
- counter = 0
- for veos,labcontrol in zip_longest(veosinfo,labcontrols):
- counter += 1
- sys.stdout.write(" ")
- sys.stdout.write(str(counter))
- sys.stdout.write(". ")
- sys.stdout.write(veos['hostname'])
-
- if labcontrol != None:
- sys.stdout.write("\t\t ")
- sys.stdout.write(str(counter+20))
- sys.stdout.write(". ")
- optionValues = labcontrols[labcontrol][0]
- sys.stdout.write(optionValues['description'])
-
- sys.stdout.write("\n")
-
- devicecount = counter
-
- if enableControls2 and labcontrols2 != None:
- #sys.stdout.write("\n")
- counter = 0
- sys.stdout.write("\n")
- sys.stdout.write(" Media Controls")
- for labcontrol2 in labcontrols2:
- counter += 1
- sys.stdout.write("\n")
- sys.stdout.write(" ")
- sys.stdout.write(str(counter+10))
- sys.stdout.write(". ")
- optionValues = labcontrols2[labcontrol2][0]
- sys.stdout.write(optionValues['description'])
- sys.stdout.write("\n")
- sys.stdout.write("\n")
-
- print(" 97. Screen (screen)")
- print(" 98. Shell (bash)")
- print(" 99. Quit (quit/exit)")
- print("")
- ans=input("What would you like to do? ")
-
- counter = 0
- for veos in veosinfo:
- counter += 1
- if ans==str(counter) or ans==veos['hostname']:
- os.system("ssh "+veos['internal_ip'])
- break
- elif ans=="97" or ans=="screen":
- os.system('/usr/bin/screen')
- break
- elif ans=="98" or ans=="bash" or ans=="shell":
- os.system("/bin/bash")
- break
- elif ans=="99" or ans=="quit" or ans=="exit":
- quit()
- elif ans!="" and counter==devicecount:
- #print("\n Not Valid Choice Try again")
- break
- # If entry is null, set 'ans' back to True to loop back to start.
- elif ans == "":
- ans = True
- break
- counter2 = 20
- try:
- ans = int(ans)
- dINT = True
- except:
- dINT = False
-
- for labcontrol in labcontrols:
- optionValues = labcontrols[labcontrol][0]
- counter2 += 1
- if ans==counter2 or ans==labcontrol:
- os.system(optionValues['command'])
- break
- elif dINT:
- if ans > devicecount and ans < 20:
- print("\n Not Valid Choice Try again")
- break
-
- if enableControls2:
- counter3 = 10
- for labcontrol2 in labcontrols2:
- optionValues = labcontrols2[labcontrol2][0]
- counter3 += 1
- if ans==str(counter3) or ans==labcontrol2:
- os.system(optionValues['command'])
- break
- if dINT:
- if ans > devicecount and ans < 10:
- print("\n Not Valid Choice Try again")
- break
-
-else:
- os.system("/usr/lib/openssh/sftp-server")
diff --git a/topologies/nested_topos.yml b/topologies/nested_topos.yml
deleted file mode 100644
index 411bdaedd..000000000
--- a/topologies/nested_topos.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-# topologies_default - key used to set the default topology to use
-# - If tag has no valid value or is missing, the first entry in topologies will be used as the default
-#
-# topologies - array of topologies to use
-# - Topology_Name: Must be less than 50 characters. Anything larger will be truncated
-# - Topology_File: Must include path to yml file in topologies directory. If the path is invalid the entire topology entry is ignored
-# - Topology_Access: Must be 'admin' or 'standard'. If not standard or admin, defaults to standard
-# - Topology_Desc: Must be less than 100 characters. Anything larger will be truncated
-# - Topology_Backend: (Required) Must be a valid backend IP where the topology will be deployed. If empty, the entry is ignored.
-# An error will be displayed on the Event Form if an invalid value is provided.
-
-topologies_default: 'Data Center - Latest'
-topologies: [
- { Topology_Name: 'Data Center - Latest',
- Topology_File: '/datacenter-latest/Datacenter.yml',
- Topology_Access: 'standard',
- Topology_Desc: 'Two Spines, Four Leafs. Focused on EOS fundamentals within the Data Center w/CV 2020',
- },
- { Topology_Name: 'Advanced Routing',
- Topology_File: '/routing/Routing.yml',
- Topology_Access: 'standard',
- Topology_Desc: 'Twenty nodes. Focused on advanced routing, L2VPN and L3VPN topics',
- },
- { Topology_Name: 'Training',
- Topology_File: '/training/topo_build.yml',
- Topology_Access: 'standard',
- Topology_Desc: 'Four Spines, Four Leafs. For use by the Arista Training Team.',
- },
- { Topology_Name: 'Kane - Lab',
- Topology_File: '/kane/topo_build.yml',
- Topology_Access: 'admin',
- Topology_Desc: 'Custom topology.',
- },
- { Topology_Name: 'BETA - Data Center - Latest',
- Topology_File: '/beta-datacenter/topo_build.yml',
- Topology_Access: 'admin',
- Topology_Desc: 'BETA TESTING - Two Spines, Four Leafs. Focused on EOS fundamentals within the Data Center w/CV 2020',
- },
- { Topology_Name: 'BETA - Advanced Routing',
- Topology_File: '/beta-routing/topo_build.yml',
- Topology_Access: 'admin',
- Topology_Desc: 'BETA TESTING - Twenty nodes. Focused on advanced routing, L2VPN and L3VPN topics',
- }
-]
diff --git a/topologies/network-to-code/atd-topo-OLD.png b/topologies/network-to-code/atd-topo-OLD.png
deleted file mode 100644
index 830a014a0..000000000
Binary files a/topologies/network-to-code/atd-topo-OLD.png and /dev/null differ
diff --git a/topologies/network-to-code/atd-topo.png b/topologies/network-to-code/atd-topo.png
deleted file mode 100644
index 3bc60e5a0..000000000
Binary files a/topologies/network-to-code/atd-topo.png and /dev/null differ
diff --git a/topologies/network-to-code/configlets/ATD-INFRA b/topologies/network-to-code/configlets/ATD-INFRA
deleted file mode 100644
index 6a88951d1..000000000
--- a/topologies/network-to-code/configlets/ATD-INFRA
+++ /dev/null
@@ -1,45 +0,0 @@
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=default -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server 192.168.0.1 iburst source Management1
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management1
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/network-to-code/configlets/isp1-dc1-base b/topologies/network-to-code/configlets/isp1-dc1-base
deleted file mode 100644
index cde0baea4..000000000
--- a/topologies/network-to-code/configlets/isp1-dc1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname isp1-dc1
-!
-interface Management 1
- ip address 192.168.0.31/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
\ No newline at end of file
diff --git a/topologies/network-to-code/configlets/isp1-dc2-base b/topologies/network-to-code/configlets/isp1-dc2-base
deleted file mode 100644
index a2b81d66b..000000000
--- a/topologies/network-to-code/configlets/isp1-dc2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname isp1-dc2
-!
-interface Management 1
- ip address 192.168.0.34/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
\ No newline at end of file
diff --git a/topologies/network-to-code/configlets/isp2-dc1-base b/topologies/network-to-code/configlets/isp2-dc1-base
deleted file mode 100644
index e0a0374b5..000000000
--- a/topologies/network-to-code/configlets/isp2-dc1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname isp2-dc1
-!
-interface Management 1
- ip address 192.168.0.32/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
\ No newline at end of file
diff --git a/topologies/network-to-code/configlets/isp2-dc2-base b/topologies/network-to-code/configlets/isp2-dc2-base
deleted file mode 100644
index 68dcba408..000000000
--- a/topologies/network-to-code/configlets/isp2-dc2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname isp2-dc2
-!
-interface Management 1
- ip address 192.168.0.35/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
\ No newline at end of file
diff --git a/topologies/network-to-code/configlets/isp3-dc1-base b/topologies/network-to-code/configlets/isp3-dc1-base
deleted file mode 100644
index 4587e762a..000000000
--- a/topologies/network-to-code/configlets/isp3-dc1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname isp3-dc1
-!
-interface Management 1
- ip address 192.168.0.33/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
\ No newline at end of file
diff --git a/topologies/network-to-code/configlets/isp3-dc2-base b/topologies/network-to-code/configlets/isp3-dc2-base
deleted file mode 100644
index f6ad4ca36..000000000
--- a/topologies/network-to-code/configlets/isp3-dc2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname isp3-dc2
-!
-interface Management 1
- ip address 192.168.0.36/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
\ No newline at end of file
diff --git a/topologies/network-to-code/configlets/leaf1-dc1-base b/topologies/network-to-code/configlets/leaf1-dc1-base
deleted file mode 100644
index 558e18001..000000000
--- a/topologies/network-to-code/configlets/leaf1-dc1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf1-dc1
-!
-interface Management 1
- ip address 192.168.0.21/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/network-to-code/configlets/leaf2-dc1-base b/topologies/network-to-code/configlets/leaf2-dc1-base
deleted file mode 100644
index 3b49fe6cd..000000000
--- a/topologies/network-to-code/configlets/leaf2-dc1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf2-dc1
-!
-interface Management 1
- ip address 192.168.0.22/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/network-to-code/configlets/spine1-dc1-base b/topologies/network-to-code/configlets/spine1-dc1-base
deleted file mode 100644
index 5a8e8d44d..000000000
--- a/topologies/network-to-code/configlets/spine1-dc1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname spine1-dc1
-!
-interface Management 1
- ip address 192.168.0.23/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/network-to-code/configlets/spine1-dc2-base b/topologies/network-to-code/configlets/spine1-dc2-base
deleted file mode 100644
index b35263e5e..000000000
--- a/topologies/network-to-code/configlets/spine1-dc2-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname spine1-dc2
-!
-interface Management 1
- ip address 192.168.0.24/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/network-to-code/configlets/spine2-dc1-base b/topologies/network-to-code/configlets/spine2-dc1-base
deleted file mode 100644
index 604815791..000000000
--- a/topologies/network-to-code/configlets/spine2-dc1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname spine2-dc1
-!
-interface Management 1
- ip address 192.168.0.25/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/network-to-code/configlets/spine2-dc2-base b/topologies/network-to-code/configlets/spine2-dc2-base
deleted file mode 100644
index 111cb6698..000000000
--- a/topologies/network-to-code/configlets/spine2-dc2-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname spine2-dc2
-!
-interface Management 1
- ip address 192.168.0.26/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/network-to-code/files/.ansible.cfg b/topologies/network-to-code/files/.ansible.cfg
deleted file mode 100644
index 86cfd2fd9..000000000
--- a/topologies/network-to-code/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
\ No newline at end of file
diff --git a/topologies/network-to-code/files/.screenrc b/topologies/network-to-code/files/.screenrc
deleted file mode 100644
index ba742c7be..000000000
--- a/topologies/network-to-code/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
\ No newline at end of file
diff --git a/topologies/network-to-code/files/MenuOptions.yaml b/topologies/network-to-code/files/MenuOptions.yaml
deleted file mode 100644
index add440cc0..000000000
--- a/topologies/network-to-code/files/MenuOptions.yaml
+++ /dev/null
@@ -1,255 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- mlag:
- - command: "/usr/local/bin/ConfigureTopology.py -t mlag"
- description: "MLAG Lab (mlag)"
- bgp:
- - command: "/usr/local/bin/ConfigureTopology.py -t bgp"
- description: "BGP Lab (bgp)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan) excludes leaf3 instead of leaf4"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "EVPN Type 2 Lab (l2evpn) excludes leaf3 instead of leaf4"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "EVPN Type 5 Lab (l3evpn) excludes leaf3 instead of leaf4"
- cvp:
- - command: "/usr/local/bin/ConfigureTopology.py -t cvp"
- description: "CVP lab (cvp)"
- media:
- - command: "bash /home/arista/Broadcaster/pushHostMediaConfig.sh && login.py"
- description: "Broadcast Engineer Training (media)"
-labconfiglets:
- mlag:
- spine1:
- - "Spine1-MLAG-Lab"
- - "VLANs"
- spine2:
- - "Spine2-MLAG-Lab"
- - "VLANs"
- leaf1:
- - "Leaf1-MLAG-Lab"
- - "VLANs"
- leaf2:
- - "Leaf2-MLAG-Lab"
- - "VLANs"
- leaf3:
- - "Leaf3-MLAG-Lab"
- - "VLANs"
- leaf4:
- - "VLANs"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- bgp:
- spine1:
- - "Spine1-BGP-Lab"
- spine2:
- - "Spine2-BGP-Lab"
- leaf1:
- - "Leaf1-BGP-Lab"
- leaf2:
- - "Leaf2-BGP-Lab"
- leaf3:
- - "Leaf3-BGP-Lab"
- leaf4:
- - "Leaf4-BGP-Lab"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- vxlan:
- spine1:
- - "Spine1-BGP-Lab"
- spine2:
- - "Spine2-BGP-Lab"
- leaf1:
- - "Leaf1-VXLAN-Lab"
- - "VLANs"
- leaf2:
- - "Leaf2-VXLAN-Lab"
- - "VLANs"
- leaf3:
- - "Leaf3-VXLAN-Lab"
- - "VLANs"
- leaf4:
- - "Leaf4-VXLAN-Lab"
- - "VLANs"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- l2evpn:
- spine1:
- - "Spine1-L2EVPN-Lab"
- spine2:
- - "Spine2-L2EVPN-Lab"
- leaf1:
- - "Leaf1-L2EVPN-Lab"
- - "VLANs"
- leaf2:
- - "Leaf2-L2EVPN-Lab"
- - "VLANs"
- leaf3:
- - "VLANs"
- leaf4:
- - "Leaf4-L2EVPN-Lab"
- - "VLANs"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- l3evpn:
- spine1:
- - "Spine1-L3EVPN-Lab"
- spine2:
- - "Spine2-L3EVPN-Lab"
- leaf1:
- - "Leaf1-L3EVPN-Lab"
- leaf2:
- - "Leaf2-L3EVPN-Lab"
- leaf3:
- - "VLANs"
- leaf4:
- - "Leaf4-L3EVPN-Lab"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- cvp:
- spine1:
- - "Spine1-BGP-Lab"
- spine2:
- - "Spine2-BGP-Lab"
- leaf1:
- - "Leaf1-BGP-Lab"
- leaf2:
- - "Leaf2-BGP-Lab"
- leaf3:
- - "Leaf3-BGP-Lab"
- leaf4:
- - "Leaf4-BGP-Lab-Full"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- media-reset:
- spine1:
- - "media-spine1-IP-Intro-start"
- spine2:
- - "media-spine2-IP-Intro-start"
- leaf1:
- - "media-leaf1-IP-Intro-start"
- leaf2:
- - "media-leaf2-IP-Intro-start"
- leaf3:
- - "media-leaf3-IP-Intro-start"
- leaf4:
- - "media-leaf4-IP-Intro-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-intro:
- spine1:
- - "media-spine1-IP-Intro-start"
- spine2:
- - "media-spine2-IP-Intro-start"
- leaf1:
- - "media-leaf1-IP-Intro-start"
- leaf2:
- - "media-leaf2-IP-Intro-start"
- leaf3:
- - "media-leaf3-IP-Intro-start"
- leaf4:
- - "media-leaf4-IP-Intro-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-vlan:
- spine1:
- - "media-spine1-VLAN-STP-start"
- spine2:
- - "media-spine2-VLAN-STP-start"
- leaf1:
- - "media-leaf1-VLAN-STP-start"
- leaf2:
- - "media-leaf2-VLAN-STP-start"
- leaf3:
- - "media-leaf3-VLAN-STP-start"
- leaf4:
- - "media-leaf4-VLAN-STP-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-ospf:
- spine1:
- - "media-spine1-OSPF-start"
- spine2:
- - "media-spine2-OSPF-start"
- leaf1:
- - "media-leaf1-OSPF-start"
- leaf2:
- - "media-leaf2-OSPF-start"
- leaf3:
- - "media-leaf3-OSPF-start"
- leaf4:
- - "media-leaf4-OSPF-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-bgp:
- spine1:
- - "media-spine1-BGP-start"
- spine2:
- - "media-spine2-BGP-start"
- leaf1:
- - "media-leaf1-BGP-start"
- leaf2:
- - "media-leaf2-BGP-start"
- leaf3:
- - "media-leaf3-BGP-start"
- leaf4:
- - "media-leaf4-BGP-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-mcast:
- spine1:
- - "media-spine1-Multicast-lab"
- spine2:
- - "media-spine2-Multicast-lab"
- leaf1:
- - "media-leaf1-Multicast-lab"
- leaf2:
- - "media-leaf2-Multicast-lab"
- leaf3:
- - "media-leaf3-Multicast-lab"
- leaf4:
- - "media-leaf4-Multicast-lab"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
\ No newline at end of file
diff --git a/topologies/network-to-code/files/apps/coder/coder.yaml b/topologies/network-to-code/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/network-to-code/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/network-to-code/files/apps/coder/labfiles/.placeholder b/topologies/network-to-code/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/network-to-code/files/apps/ssh/web.json b/topologies/network-to-code/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/network-to-code/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/network-to-code/files/apps/uilanding/modules.yaml b/topologies/network-to-code/files/apps/uilanding/modules.yaml
deleted file mode 100644
index 67f7b9602..000000000
--- a/topologies/network-to-code/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- spine1-dc1:
- coords: "612,490,761,558"
- ip: "192.168.0.23"
- spine2-dc1:
- coords: "912,490,1062,561"
- ip: "192.168.0.25"
- spine1-dc2:
- coords: "17,491,163,559"
- ip: "192.168.0.24"
- spine2-dc2:
- coords: "470,493,319,558"
- ip: "192.168.0.26"
- leaf1-dc1:
- coords: "613,692,760,762"
- ip: "192.168.0.21"
- leaf2-dc1:
- coords: "914,694,1061,762"
- ip: "192.168.0.22"
- isp1-dc1:
- coords: "616,288,764,360"
- ip: "192.168.0.31"
- isp2-dc1:
- coords: "915,292,1058,356"
- ip: "192.168.0.32"
- isp3-dc1:
- coords: "769,61,910,130"
- ip: "192.168.0.33"
- isp1-dc2:
- coords: "21,291,159,356"
- ip: "192.168.0.34"
- isp2-dc2:
- coords: "315,291,463,355"
- ip: "192.168.0.35"
- isp3-dc2:
- coords: "161,66,311,130"
- ip: "192.168.0.36"
diff --git a/topologies/network-to-code/files/apps/webui/.vncpass_clear b/topologies/network-to-code/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/network-to-code/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/network-to-code/files/cvp/cvp_info.yaml b/topologies/network-to-code/files/cvp/cvp_info.yaml
deleted file mode 100644
index de6a2b05f..000000000
--- a/topologies/network-to-code/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf-dc1:
- parent: Tenant
- nodes:
- - leaf1-dc1
- - leaf2-dc1
- Spine-DC1:
- parent: Tenant
- nodes:
- - spine1-dc1
- - spine2-dc1
- Spine-DC2:
- parent: Tenant
- nodes:
- - spine1-dc2
- - spine2-dc2
- ISP-DC1:
- parent: Tenant
- nodes:
- - isp1-dc1
- - isp2-dc1
- - isp3-dc1
- ISP-DC2:
- parent: Tenant
- nodes:
- - isp1-dc2
- - isp2-dc2
- - isp3-dc2
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- spine1-dc1:
- - spine1-dc1-base
- spine2-dc1:
- - spine2-dc1-base
- spine1-dc2:
- - spine1-dc2-base
- spine2-dc2:
- - spine2-dc2-base
- leaf1-dc1:
- - leaf1-dc1-base
- leaf2-dc1:
- - leaf2-dc1-base
- isp1-dc1:
- - isp1-dc1-base
- isp2-dc1:
- - isp2-dc1-base
- isp3-dc1:
- - isp3-dc1-base
- isp1-dc2:
- - isp1-dc2-base
- isp2-dc2:
- - isp2-dc2-base
- isp3-dc2:
- - isp3-dc2-base
diff --git a/topologies/network-to-code/files/hosts b/topologies/network-to-code/files/hosts
deleted file mode 100644
index 5e8f88820..000000000
--- a/topologies/network-to-code/files/hosts
+++ /dev/null
@@ -1,20 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 border-leaf1
-192.168.0.26 border-leaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.5 cvp
\ No newline at end of file
diff --git a/topologies/network-to-code/files/menus/default.yaml b/topologies/network-to-code/files/menus/default.yaml
deleted file mode 100644
index 88e29c3e2..000000000
--- a/topologies/network-to-code/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: ssh
\ No newline at end of file
diff --git a/topologies/network-to-code/files/scripts/Authenticate-CVP b/topologies/network-to-code/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/network-to-code/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/network-to-code/files/scripts/Authenticate-CVP2 b/topologies/network-to-code/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/network-to-code/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/network-to-code/files/scripts/Authenticate-CVP3 b/topologies/network-to-code/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/network-to-code/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/network-to-code/files/scripts/Configlet1 b/topologies/network-to-code/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/network-to-code/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/network-to-code/files/scripts/ConfigletChange b/topologies/network-to-code/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/network-to-code/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/network-to-code/files/scripts/ConfigletDetail b/topologies/network-to-code/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/network-to-code/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/network-to-code/files/scripts/ConfigletHistory b/topologies/network-to-code/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/network-to-code/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/network-to-code/files/scripts/TaskBase b/topologies/network-to-code/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/network-to-code/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/network-to-code/files/scripts/TaskCVP1 b/topologies/network-to-code/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/network-to-code/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/network-to-code/files/scripts/TaskExecute b/topologies/network-to-code/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/network-to-code/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/network-to-code/files/scripts/TaskLog b/topologies/network-to-code/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/network-to-code/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/network-to-code/files/scripts/TaskLog1 b/topologies/network-to-code/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/network-to-code/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/network-to-code/files/scripts/TaskLogView b/topologies/network-to-code/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/network-to-code/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/network-to-code/files/scripts/TaskNote b/topologies/network-to-code/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/network-to-code/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/network-to-code/labguides/.gitignore b/topologies/network-to-code/labguides/.gitignore
deleted file mode 100644
index aaab5add3..000000000
--- a/topologies/network-to-code/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
\ No newline at end of file
diff --git a/topologies/network-to-code/labguides/Makefile b/topologies/network-to-code/labguides/Makefile
deleted file mode 100644
index 26342bc62..000000000
--- a/topologies/network-to-code/labguides/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
\ No newline at end of file
diff --git a/topologies/network-to-code/labguides/readme.md b/topologies/network-to-code/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/network-to-code/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/network-to-code/labguides/source/_static/arista_logo.png b/topologies/network-to-code/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/network-to-code/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/network-to-code/labguides/source/_static/arista_logo_160by26.png b/topologies/network-to-code/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/network-to-code/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/network-to-code/labguides/source/_static/arista_logo_320by52.png b/topologies/network-to-code/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/network-to-code/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/network-to-code/labguides/source/_static/cloudvision-icon.png b/topologies/network-to-code/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/network-to-code/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/network-to-code/labguides/source/_static/logo.jpg b/topologies/network-to-code/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/network-to-code/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/network-to-code/labguides/source/_static/my-styles.css b/topologies/network-to-code/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/network-to-code/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/network-to-code/labguides/source/conf.py b/topologies/network-to-code/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/network-to-code/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/routing/labguides/source/connecting.rst b/topologies/routing/labguides/source/connecting.rst
deleted file mode 100644
index 664d5da7e..000000000
--- a/topologies/routing/labguides/source/connecting.rst
+++ /dev/null
@@ -1,26 +0,0 @@
-Connecting to the ATD Lab Environment
-=======================================
-
-1. Log into the Arista Demo Cloud portal with your assigned URL. If you don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify lab topology. It is recommended to open multiple SSH
- sessions or usethe Screen option to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/routing/labguides/source/images/connecting/nested_connecting_1.png b/topologies/routing/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index bd38d17a4..000000000
Binary files a/topologies/routing/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/connecting/nested_connecting_2.png b/topologies/routing/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index fe0e6407f..000000000
Binary files a/topologies/routing/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/connecting/nested_connecting_3.png b/topologies/routing/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index afdef971d..000000000
Binary files a/topologies/routing/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/isis_images/IS-IS_Lab1_and_Lab2.png b/topologies/routing/labguides/source/images/isis_images/IS-IS_Lab1_and_Lab2.png
deleted file mode 100644
index 6b27c68a0..000000000
Binary files a/topologies/routing/labguides/source/images/isis_images/IS-IS_Lab1_and_Lab2.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/isis_images/IS-IS_Lab3.png b/topologies/routing/labguides/source/images/isis_images/IS-IS_Lab3.png
deleted file mode 100644
index 769bb893c..000000000
Binary files a/topologies/routing/labguides/source/images/isis_images/IS-IS_Lab3.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/isis_images/IS-IS_Topology_Image.png b/topologies/routing/labguides/source/images/isis_images/IS-IS_Topology_Image.png
deleted file mode 100644
index 3c72b686e..000000000
Binary files a/topologies/routing/labguides/source/images/isis_images/IS-IS_Topology_Image.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/logo.jpg b/topologies/routing/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/routing/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_common_images/ratd_c1_l3vpn_bgp.png b/topologies/routing/labguides/source/images/ratd_common_images/ratd_c1_l3vpn_bgp.png
deleted file mode 100644
index 28308501b..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_common_images/ratd_c1_l3vpn_bgp.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_common_images/ratd_c1_l3vpn_ospf.png b/topologies/routing/labguides/source/images/ratd_common_images/ratd_c1_l3vpn_ospf.png
deleted file mode 100644
index c23d3fe69..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_common_images/ratd_c1_l3vpn_ospf.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_common_images/ratd_c2_l2vpn_mp_1.png b/topologies/routing/labguides/source/images/ratd_common_images/ratd_c2_l2vpn_mp_1.png
deleted file mode 100644
index 228f22a0c..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_common_images/ratd_c2_l2vpn_mp_1.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_common_images/ratd_c2_l2vpn_mp_2.png b/topologies/routing/labguides/source/images/ratd_common_images/ratd_c2_l2vpn_mp_2.png
deleted file mode 100644
index c24ba8927..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_common_images/ratd_c2_l2vpn_mp_2.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_c1_l3vpn.png b/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_c1_l3vpn.png
deleted file mode 100644
index 873825f1e..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_c1_l3vpn.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_c2_l2vpn.png b/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_c2_l2vpn.png
deleted file mode 100644
index ec1debb41..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_c2_l2vpn.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_c3_eline.png b/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_c3_eline.png
deleted file mode 100644
index b9d6481c9..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_c3_eline.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_c4_l3vpn.png b/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_c4_l3vpn.png
deleted file mode 100644
index d39dcba48..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_c4_l3vpn.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_cent_svcs_l3vpn.png b/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_cent_svcs_l3vpn.png
deleted file mode 100644
index 036746176..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_cent_svcs_l3vpn.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_evpn.png b/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_evpn.png
deleted file mode 100644
index 06e7f821f..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_evpn.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_ipvpn.png b/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_ipvpn.png
deleted file mode 100644
index ff76e4a71..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_ipvpn.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_isis_ldp.png b/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_isis_ldp.png
deleted file mode 100644
index 7dca1e08e..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_isis_ldp.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_isis_sr.png b/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_isis_sr.png
deleted file mode 100644
index c0188ac3a..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_isis_sr.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_l3vpn_mp.png b/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_l3vpn_mp.png
deleted file mode 100644
index 6b073a927..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_l3vpn_mp.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_srte.png b/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_srte.png
deleted file mode 100644
index a248c0ef8..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_srte.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_tilfa.png b/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_tilfa.png
deleted file mode 100644
index 50997b245..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_tilfa.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_topo.png b/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_topo.png
deleted file mode 100644
index 79d4bd4a1..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_mesh_images/ratd_mesh_topo.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_mesh_topo_clear.png b/topologies/routing/labguides/source/images/ratd_ring_images/ratd_mesh_topo_clear.png
deleted file mode 100644
index b513772ab..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_mesh_topo_clear.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_c1_l3vpn.png b/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_c1_l3vpn.png
deleted file mode 100644
index 834a02749..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_c1_l3vpn.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_c2_l2vpn.png b/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_c2_l2vpn.png
deleted file mode 100644
index 84bd1bfaf..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_c2_l2vpn.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_c3_eline.png b/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_c3_eline.png
deleted file mode 100644
index 935b353c8..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_c3_eline.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_c4_l3vpn.png b/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_c4_l3vpn.png
deleted file mode 100644
index 2fb5f45da..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_c4_l3vpn.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_cent_svcs_l3vpn.png b/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_cent_svcs_l3vpn.png
deleted file mode 100644
index 3ffc7c123..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_cent_svcs_l3vpn.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_evpn.png b/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_evpn.png
deleted file mode 100644
index 205192485..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_evpn.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_ipvpn.png b/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_ipvpn.png
deleted file mode 100644
index d0ad553bf..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_ipvpn.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_isis_ldp.png b/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_isis_ldp.png
deleted file mode 100644
index 632cebf83..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_isis_ldp.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_isis_sr.png b/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_isis_sr.png
deleted file mode 100644
index 6b0bef792..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_isis_sr.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_l3vpn_mp.png b/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_l3vpn_mp.png
deleted file mode 100644
index d4684aca6..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_l3vpn_mp.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_srte.png b/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_srte.png
deleted file mode 100644
index 0f54faa20..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_srte.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_tilfa.png b/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_tilfa.png
deleted file mode 100644
index f6cea75f3..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_tilfa.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_topo.png b/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_topo.png
deleted file mode 100644
index 12c6a7248..000000000
Binary files a/topologies/routing/labguides/source/images/ratd_ring_images/ratd_ring_topo.png and /dev/null differ
diff --git a/topologies/routing/labguides/source/index.rst b/topologies/routing/labguides/source/index.rst
deleted file mode 100644
index 712310f6d..000000000
--- a/topologies/routing/labguides/source/index.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-Welcome to the Arista Routing ATD Documentation!
-========================================================
-
-.. toctree::
- :maxdepth: 1
- :caption: Lab Connectivity
-
- connecting.rst
-
-=================================================
-Lab Guides vs. Class Guides
-=================================================
-
-Both Lab Guides and Class Guides cover the same content and labs. The **Lab** Guides in the Routing ATD are meant to provide
-example configurations with step-by-step instruction on setting up IS-IS, Segment Routing, BGP EVPN, etc. The **Class**
-Guides, in contrast are meant to provide high-level direction on the steps necessary to deploy the Service Provider network
-while not providing explicit examples of configurations to use. This implies that the operator is familiar with the
-configurations necessary to deploy IS-IS, Segment Routing, BGP EVPN, etc.
-
-.. toctree::
- :maxdepth: 1
- :caption: Routing ATD - Mesh Topology - Full ISIS-SR and EVPN Lab Guide
-
- ratd_mesh_guides/ratd_mesh_lab_guides/ratd_mesh_topo_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/isis_underlay_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/sr_transport_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/evpn_setup_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/c1_l3vpn_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/c2_l2vpn_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/c3_eline_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/tilfa_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/srte_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/c4_l3vpn_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/cent_svcs_l3vpn_lab_guide.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Routing ATD - Mesh Topology - ISIS-SR and EVPN Class Guide Only
-
- ratd_mesh_guides/ratd_mesh_class_guides/ratd_mesh_topo_class_guide.rst
- ratd_mesh_guides/ratd_mesh_class_guides/isis_underlay_class_guide.rst
- ratd_mesh_guides/ratd_mesh_class_guides/sr_transport_class_guide.rst
- ratd_mesh_guides/ratd_mesh_class_guides/evpn_setup_class_guide.rst
- ratd_mesh_guides/ratd_mesh_class_guides/c1_l3vpn_class_guide.rst
- ratd_mesh_guides/ratd_mesh_class_guides/c2_l2vpn_class_guide.rst
- ratd_mesh_guides/ratd_mesh_class_guides/c3_eline_class_guide.rst
- ratd_mesh_guides/ratd_mesh_class_guides/tilfa_class_guide.rst
- ratd_mesh_guides/ratd_mesh_class_guides/srte_class_guide.rst
- ratd_mesh_guides/ratd_mesh_class_guides/c4_l3vpn_class_guide.rst
- ratd_mesh_guides/ratd_mesh_class_guides/cent_svcs_l3vpn_class_guide.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Routing ATD - Mesh Topology - Full LDP and IP-VPN Lab Guide
-
- ratd_mesh_guides/ratd_mesh_lab_guides/ratd_mesh_topo_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/isisv6_underlay_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/ldp_transport_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/ipvpn_setup_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/c1_ipvpn_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/c3_ldppw_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/c4_ipvpn_lab_guide.rst
- ratd_mesh_guides/ratd_mesh_lab_guides/cent_svcs_ipvpn_lab_guide.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Routing ATD - Ring Topology - Full ISIS-SR and EVPN Lab Guide
-
- ratd_ring_guides/ratd_ring_lab_guides/ratd_ring_topo_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/isis_underlay_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/sr_transport_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/evpn_setup_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/c1_l3vpn_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/c2_l2vpn_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/c3_eline_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/tilfa_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/srte_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/c4_l3vpn_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/cent_svcs_l3vpn_lab_guide.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Routing ATD - Ring Topology - ISIS-SR and EVPN Class Guide Only
-
- ratd_ring_guides/ratd_ring_class_guides/ratd_ring_topo_class_guide.rst
- ratd_ring_guides/ratd_ring_class_guides/isis_underlay_class_guide.rst
- ratd_ring_guides/ratd_ring_class_guides/sr_transport_class_guide.rst
- ratd_ring_guides/ratd_ring_class_guides/evpn_setup_class_guide.rst
- ratd_ring_guides/ratd_ring_class_guides/c1_l3vpn_class_guide.rst
- ratd_ring_guides/ratd_ring_class_guides/c2_l2vpn_class_guide.rst
- ratd_ring_guides/ratd_ring_class_guides/c3_eline_class_guide.rst
- ratd_ring_guides/ratd_ring_class_guides/tilfa_class_guide.rst
- ratd_ring_guides/ratd_ring_class_guides/srte_class_guide.rst
- ratd_ring_guides/ratd_ring_class_guides/c4_l3vpn_class_guide.rst
- ratd_ring_guides/ratd_ring_class_guides/cent_svcs_l3vpn_class_guide.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: Routing ATD - Ring Topology - Full LDP and IP-VPN Lab Guide
-
- ratd_ring_guides/ratd_ring_lab_guides/ratd_ring_topo_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/isisv6_underlay_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/ldp_transport_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/ipvpn_setup_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/c1_ipvpn_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/c3_ldppw_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/c4_ipvpn_lab_guide.rst
- ratd_ring_guides/ratd_ring_lab_guides/cent_svcs_ipvpn_lab_guide.rst
-
-.. toctree::
- :maxdepth: 1
- :caption: IS-IS Protocol Configuration - Class Guide
-
- isis_guides/isis_class_guides/isis_class_guide.rst
diff --git a/topologies/routing/labguides/source/isis_guides/isis_class_guides/isis_class_guide.rst b/topologies/routing/labguides/source/isis_guides/isis_class_guides/isis_class_guide.rst
deleted file mode 100644
index 4262c9564..000000000
--- a/topologies/routing/labguides/source/isis_guides/isis_class_guides/isis_class_guide.rst
+++ /dev/null
@@ -1,428 +0,0 @@
-IS-IS Class Guide
-=====================
-
-.. image:: ../../images/isis_images/IS-IS_Topology_Image.png
- :align: center
-
-Lab 1: Configure IS-IS as a Single Flood Domain
-==========================================================
-
- .. image:: ../../images/isis_images/IS-IS_Lab1_and_Lab2.png
- :align: center
-
-.. note:: IP addressing is already configured for all labs.
-
-Prep:
-----------
-
- #. On lab jumphost, type ‘labs’ to get to the ‘Additional Labs’ menu
-
- #. Type ‘isis-lab-guide’ in order to get to the ISIS Lab Guide labs
-
- #. Type ‘lab1’ in this menu in order to begin deploying configurations for this lab.
-
- #. Wait until you are prompted that the lab deployment is complete. This will take some time.
-
-Tasks:
----------
-
- #. Configure EOS1 to EOS6 links to be in a single area and flood domain.
-
- #. Enable ipv4 routing
-
- #. Use area “0000”
-
- #. Use IS-IS Instance name of “1”
-
- #. Match the system-id of each device to the name of the device (Eg. EOS1’s last system-id hextet will be “0001” and EOS6’s will be “0006”)
-
- #. Advertise all loopbacks
-
- #. Ensure there are no pseudonodes in the environment
-
- #. All intermediate systems should have all routes from other intermediate systems
-
- #. All intermediate system loopbacks should be able to reach each other
-
- #. Look at the isis database details
-
- #. Are there any pseudonodes? If so, why?
- #. Are there multiple link state databases? If so, why?
- #. Make note of reachability information. What types of reachability are being advertised?
-
- #. Look at the routing table and make a note of what it looks like currently
-
- #. How many routes are there in the ‘show ip route summary?’
-
-
-
-Lab 2: Loopback Only Advertisements in LSPs
-==========================================================
-
- .. image:: ../../images/isis_images/IS-IS_Lab1_and_Lab2.png
- :align: center
-
-Prep:
-----------
-
- .. note:: If you are continuing from Lab 1, you can skip these steps and go directly to “Tasks.”
-
- #. On lab jumphost, type ‘labs’ to get to the ‘Additional Labs’ menu
-
- #. Type ‘isis-lab-guide’ in order to get to the IS-IS Lab Guide labs
-
- #. Type ‘lab2’ in this menu in order to begin deploying configurations for this lab.
-
- #. Wait until you are prompted that the lab deployment is complete. This will take some time.
-
-Tasks:
----------
-
- #. Configure IS-IS on EOS1 to EOS6 so that only loopback reachability is advertised in LSPs
-
- #. Route maps should not be used
-
- #. All intermediate systems should have only loopback routes from other intermediate systems
-
- #. All intermediate system loopbacks should be able to reach each other
-
- #. Look at the IS-IS database details
-
- #. Make note of reachability information. What types of reachability are being advertised?
-
- #. How did this change from the last section?
-
- #. Look at the routing table and make a note of what it looks like currently
-
- #. How many routes are there in the ‘show ip route summary?’
-
- #. How did the routing table change from the last section?
-
-
-Lab 3: Broadcast Network
-==========================================================
-
- .. image:: ../../images/isis_images/IS-IS_Lab3.png
- :align: center
-
-Prep:
-----------
-
- .. note:: If you are continuing from Lab 2, you can skip these steps and go directly to “Tasks.”
-
- #. On lab jumphost, type ‘labs’ to get to the ‘Additional Labs’ menu
-
- #. Type ‘isis-lab-guide’ in order to get to the ISIS Lab Guide labs
-
- #. Type ‘lab3’ in this menu in order to begin deploying configurations for this lab.
-
- #. Wait until you are prompted that the lab deployment is complete. This will take some time.
-
-Tasks:
----------
-
- #. Configure IS-IS between EOS11, EOS12, and EOS13 using VLAN 100
-
- #. Enable ipv4 routing
-
- #. Use area “0000”
-
- #. Use ISIS Instance name of “1”
-
- #. Continue using a single flood domain
-
- #. Match the system-id of each device to the name of the device (Eg. EOS11’s last system-id hextet will be “0011” and EOS13’s will be “0013”)
-
- #. Advertise loopbacks into IS-IS
-
- #. Only loopbacks should be advertised into the global routing table.
-
- #. Look at IS-IS neighbors
-
- #. How many adjacencies do you have per device?
-
- #. Look at the IS-IS database
-
- #. How does the IS-IS Database differ on the broadcast network?
-
- #. Are there any pseudonodes?
-
- #. If yes: How can you distinguish the pseudonode from other adjacencies?
-
-
-Appendix A: Configurations
-==========================================================
-
-Lab 1: Configure IS-IS as a Single Flood Domain
-------------------------------------------------------
-
-**EOS1:**
-
- .. code-block:: html
-
- ip routing
- !
- interface Ethernet1
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet4
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet5
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Loopback0
- isis enable 1
- !
- router isis 1
- net 49.0000.0000.0000.0001.00
- is-type level-2
- address-family ipv4 unicast
-
-**EOS2:**
-
- .. code-block:: html
-
- ip routing
- !
- interface Ethernet1
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet2
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet3
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet4
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet5
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Loopback0
- isis enable 1
- !
- router isis 1
- net 49.0000.0000.0000.0002.00
- is-type level-2
- address-family ipv4 unicast
-
-**EOS3:**
-
- .. code-block:: html
-
- ip routing
- !
- interface Ethernet3
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet4
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet5
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Loopback0
- isis enable 1
- !
- router isis 1
- net 49.0000.0000.0000.0003.00
- is-type level-2
- address-family ipv4 unicast
-
-**EOS4:**
-
- .. code-block:: html
-
- ip routing
- !
- interface Ethernet3
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet4
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet5
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Loopback0
- isis enable 1
- !
- router isis 1
- net 49.0000.0000.0000.0004.00
- is-type level-2
- address-family ipv4 unicast
-
-**EOS5:**
-
- .. code-block:: html
-
- ip routing
- !
- interface Ethernet1
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet2
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet3
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet4
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet5
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Loopback0
- isis enable 1
- !
- router isis 1
- net 49.0000.0000.0000.0005.00
- is-type level-2
- address-family ipv4 unicast
-
-**EOS6:**
-
- .. code-block:: html
-
- ip routing
- !
- interface Ethernet1
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet4
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Ethernet5
- isis enable 1
- isis circuit-type level-2
- isis network point-to-point
- !
- interface Loopback0
- isis enable 1
- !
- router isis 1
- net 49.0000.0000.0000.0006.00
- is-type level-2
- address-family ipv4 unicast
-
-Lab 2: Loopback Only Advertisements in LSPs
-------------------------------------------------------
-
-**All Nodes (EOS1 to EOS6):**
-
- .. code-block:: html
-
- interface Loopback0
- isis passive
- !
- router isis 1
- advertise passive-only
-
-Lab 3: Broadcast Network
------------------------------
-
-**EOS11:**
-
- .. code-block:: html
-
- ip routing
- !
- interface Loopback0
- isis enable 1
- isis passive
- !
- interface vlan100
- isis enable 1
- isis circuit-type level-2
- !
- router isis 1
- net 49.0000.0000.0000.0011.00
- is-type level-2
- advertise passive-only
- address-family ipv4 unicast
-
-**EOS12:**
-
- .. code-block:: html
-
- ip routing
- !
- interface Loopback0
- isis enable 1
- isis passive
- !
- interface vlan100
- isis enable 1
- isis circuit-type level-2
- !
- router isis 1
- net 49.0000.0000.0000.0012.00
- is-type level-2
- advertise passive-only
- address-family ipv4 unicast
-
-**EOS13:**
-
- .. code-block:: html
-
- ip routing
- !
- interface Loopback0
- isis enable 1
- isis passive
- !
- interface vlan100
- isis enable 1
- isis circuit-type level-2
- !
- router isis 1
- net 49.0000.0000.0000.0013.00
- is-type level-2
- advertise passive-only
- address-family ipv4 unicast
-
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/c1_l3vpn_class_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/c1_l3vpn_class_guide.rst
deleted file mode 100644
index b428ed796..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/c1_l3vpn_class_guide.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-Deploy L3VPN Service for Customer-1
-=====================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_c1_l3vpn.png
- :align: center
-
-|
-
-===================================================================================
-Prepare for Customer-1 Layer 3 VPN Services
-===================================================================================
-
-#. On all PE nodes that are connected to Customer-1 CE nodes, define VRF "CUSTOMER-1".
-
- - Ensure IPv4 Unicast Forwarding is enabled.
-
- - Route-Target for import and export should be 1:1.
-
- - Route-Distinguisher should be X.X.X.X:1 (X = Node-ID).
-
-#. Place the appropriate interfaces on the PE nodes into VRF “CUSTOMER-1”.
-
-=========================================================================
-Configure Customer-1 CE devices
-=========================================================================
-
-#. Configure EOS11, EOS12 and EOS13 to run OSPF process 100 in area 0.
-
-#. Advertise all connected interfaces into OSPF using a network statement.
-
- - Once this task is complete; EOS11, EOS12, and EOS13 should be able to ping each other’s loopbacks and directly connected interfaces
-
-=========================================================================
-Establish PE-CE peering with Customer-1
-=========================================================================
-
-#. Configure EOS11 and EOS12 for BGP AS 123.
-
- - EOS11 and EOS12 should originate the following networks via BGP (any method of network origination is acceptable):
-
- - 11.11.11.11/32
-
- - 12.12.12.12/32
-
- - 13.13.13.13/32
-
-#. Configure EOS15 for BGP AS 15.
-
- - EOS15 should originate the following networks via BGP (any method of network origination is acceptable):
-
- - 15.15.15.15/32
-
-#. Establish eBGP IPv4 Unicast peering between Customer-1 CE and Service Provider PE devices. These peerings should be within the Customer-1 VPN (VRF).
-
-#. Ensure EOS12 should has the following output from a ‘show ip route ospf’ command:
-
- .. image:: ../../images/ratd_common_images/ratd_c1_l3vpn_ospf.png
- :align: center
-
-#. Ensure EOS15 should has the following output from a ‘show ip route bgp’ command:
-
- .. image:: ../../images/ratd_common_images/ratd_c1_l3vpn_bgp.png
- :align: center
-
-#. Verify reachability between all Customer-1 CE devices by pinging each other’s Loopback0 interface while sourcing the pings from their own Loopback0 interface.
-
-=========================================================================
-Enable L3VPN Multi-Pathing
-=========================================================================
-
-#. Ensure that traffic from EOS15 to EOS12 uses multiple paths across the Service Provider network, distributing the load between EOS1 and EOS6.
-
- - It is ok to adjust the isis metric on the link between EOS6 and EOS8 in order to force multi-pathing to occur.
-
-#. EOS8 should have the following output from a ‘show ip route vrf CUSTOMER-1 12.12.12.12’ command:
-
- .. note::
-
- The specific labels may vary in your output.
-
- .. image:: ../../images/ratd_mesh_images/ratd_mesh_l3vpn_mp.png
- :align: center
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/c2_l2vpn_class_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/c2_l2vpn_class_guide.rst
deleted file mode 100644
index 9f65645cb..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/c2_l2vpn_class_guide.rst
+++ /dev/null
@@ -1,57 +0,0 @@
-Deploy L2VPN Service for Customer-2
-=====================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_c2_l2vpn.png
- :align: center
-
-|
-
-=========================================================================
-Prepare for Customer-2 Layer 2 VPN E-LAN Services
-=========================================================================
-
-#. On all PE nodes that are connected to Customer-2 CE nodes, create VLAN 20.
-
-#. Define the ‘VLAN 20’ MAC-VRF.
-
- - Route-Target for import and export should be 2:20.
-
- - Route-Distinguisher should be X.X.X.X:2 (X = Node-ID).
-
- - Ensure that all known MAC addresses in VLAN 20 are originated/advertised via BGP to other PE Nodes.
-
-#. Configure the appropriate interfaces on the PE Nodes as access (untagged) interfaces in VLAN 20.
-
-#. Enable EOS14 and EOS9 to be dual-homed to their respective PE nodes via an LACP port-channel.
-
- - Both links should be active for egress, as well as ingress traffic.
-
- - MLAG must not be used to accomplish this task.
-
-=========================================================================
-Configure the Customer-2 CE Nodes
-=========================================================================
-
-#. Configure EOS9, EOS10 and EOS14 to run OSPF process 200 in area 0.
-
-#. Advertise all connected interfaces into OSPF using a network statement.
-
-#. Ensure all traffic to/from multi-homed L2VPN locations should be load balanced across all PE-CE links into that location.
-
-#. Verify that EOS3 and EOS6 should have the following output from a ‘show l2rib input bgp vlan 20’ command:
-
- .. note::
-
- MAC addresses and Labels may differ in your output, this is ok. The key output is 2-way load balancing to MAC addresses that exist at remote dual-homed sites
-
- - EOS3:
-
- .. image:: ../../images/ratd_common_images/ratd_c2_l2vpn_mp_1.png
- :align: center
-
- - EOS6:
-
- .. image:: ../../images/ratd_common_images/ratd_c2_l2vpn_mp_2.png
- :align: center
-
-#. Confirm that EOS9, EOS10 and EOS14 have formed OSPF adjacencies with each other. These devices should all be able to ping each other’s Loopback0 interfaces when sourcing the ping from their Loopback0 interface.
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/c3_eline_class_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/c3_eline_class_guide.rst
deleted file mode 100644
index 915c0865e..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/c3_eline_class_guide.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-Deploy E-LINE Service for Customer-3
-=========================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_c3_eline.png
- :align: center
-
-|
-
-#. Configure a P2P E-LINE service enabling direct Layer 2 adjacency between Customer-3 nodes EOS16 and EOS17.
-
- - This solution should not require any VLAN tagging from the CE devices.
-
-#. Ensure that EOS16 and EOS17 should form an OSPF adjacency with each other and be able to ping each other’s loopbacks.
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/c4_l3vpn_class_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/c4_l3vpn_class_guide.rst
deleted file mode 100644
index 0b873d313..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/c4_l3vpn_class_guide.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-Deploy L3VPN Service for Customer-4
-=====================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_c4_l3vpn.png
- :align: center
-
-|
-
-=========================================================================
-Prepare for Customer-4 Layer 3 VPN Services
-=========================================================================
-
-#. On all PE nodes that are connected to Customer-4 CE nodes, define VRF "CUSTOMER-4".
-
- - Ensure IPv4 Unicast Forwarding is enabled.
-
- - Route-Target for import and export should be 4:4.
-
- - Route-Distinguisher should be X.X.X.X:4 (X = Node-ID).
-
-#. Place the appropriate interfaces on the PE nodes into VRF “CUSTOMER-4”.
-
-=========================================================================
-Establish PE-CE peering with Customer-4
-=========================================================================
-
-#. Configure EOS18 and EOS19 should as BGP AS 200.
-
- - EOS18 should originate the following network via BGP (any method of network origination is acceptable):
-
- - 18.18.18.18/32
-
- - EOS19 should originate the following network via BGP (any method of network origination is acceptable):
-
- - 19.19.19.19/32
-
-#. Establish eBGP IPv4 Unicast peerings between Customer-4 CE and Service Provider PE devices. These peerings should be within the Customer-4 VPN (VRF).
-
-#. Verify reachability between Customer-4 CE devices by pinging each other’s Loopback0 interface when sourcing the pings from their own Loopback0 interface.
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/cent_svcs_l3vpn_class_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/cent_svcs_l3vpn_class_guide.rst
deleted file mode 100644
index a649996cb..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/cent_svcs_l3vpn_class_guide.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-Offer Centralized Services to L3VPN Customers
-=========================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_cent_svcs_l3vpn.png
- :align: center
-
-|
-
-#. Configure EOS20 for BGP ASN 500.
-
- - EOS20 should originate the following network via BGP (any method of network origination is acceptable):
-
- - 20.20.20.20/32
-
-#. Create a Centralized Services VPN, utilizing the VRF “SVC” on the necessary PE nodes.
-
-#. Establish eBGP IPv4 Unicast peerings between EOS20 and Service Provider PE device. This peering should be within the Centralized Services VPN (VRF).
-
-#. Allow CE devices EOS12 and EOS19 to access the Centralized Service at 20.20.20.20.
-
- - EOS11, EOS13, EOS15 and EOS18 must not be able to ping 20.20.20.20.
-
- - Customer-1 (VRF A) and Customer-4 (VRF B) CE devices must not see each other’s routes, and must not be able to ping each other.
-
- - ACLs must not be used to accomplish any part of this task.
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/evpn_setup_class_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/evpn_setup_class_guide.rst
deleted file mode 100644
index c2396685c..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/evpn_setup_class_guide.rst
+++ /dev/null
@@ -1,27 +0,0 @@
-Prepare to Offer VPN Services to Customers via MP-BGP EVPN Control-Plane
-==================================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_evpn.png
- :align: center
-
-|
-
-#. BGP Autonomous System 100 is leveraged by the Service Provider
-
- :Question: Do all nodes within the Service Provider need to run BGP? Why, or why not?
-
-#. Enable BGP EVPN peering within the service provider
-
- - BGP Router-ID should be Loopback0 with a 32-bit value
-
- - Loopback0 IP address should be used for all BGP peerings
-
- - All PE nodes must be capable of advertising and receiving reachability information to/from all other PE nodes
-
- - A full mesh of peerings must not be used to accomplish this task
-
- - EOS5 should act as the peering point for all PE nodes
-
- - Disable any unnecessary BGP AFI/SAFI peerings
-
- - Use MPLS as the data-plane encapsulation / VPN label distribution
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/isis_underlay_class_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/isis_underlay_class_guide.rst
deleted file mode 100644
index f08057f53..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/isis_underlay_class_guide.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-Deploy IS-IS as the Service Provider Underlay IGP
-==========================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_isis_sr.png
- :align: center
-
-|
-
-#. Configure IS-IS to carry underlay IPv4 prefix reachability information.
-
- - All nodes should be within the same flooding domain.
-
- - All nodes should only maintain a Level-2 database.
-
- - Ensure that there are no unnecessary Pseudonodes within the topology
-
-#. (Optional) Only advertise reachability information for /32 loopback interfaces into the LSDB
-
- - Once this task has been completed, all Service Provider nodes should be able to ping all other node loopback addresses
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/ratd_mesh_topo_class_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/ratd_mesh_topo_class_guide.rst
deleted file mode 100644
index e69e553fe..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/ratd_mesh_topo_class_guide.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-Routing ATD Class Guide - Mesh Topology
-=================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_topo.png
- :align: center
-
-=================================================
-Class Guide Overview
-=================================================
-
-This is the full topology that will be used for the labs in this section. Each section
-will highlight the individual nodes that are relavent to the service or protocol for that
-step. The **Class** Guides in the Routing ATD are meant to provide high-level direction on the
-steps necessary to deploy the Service Provider network while not providing explicit examples
-of configurations to use. This implies that the operator is familiar with the configurations
-necessary to deploy IS-IS, Segment Routing, BGP EVPN, etc. If you would instead prefer to
-see example configurations with step-by-step instruction, please refer to the **Lab** Guides
-instead.
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/sr_transport_class_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/sr_transport_class_guide.rst
deleted file mode 100644
index 39d3b2f05..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/sr_transport_class_guide.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-Establish MPLS Transport Label Distribution via Segment-Routing
-=========================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_isis_sr.png
- :align: center
-
-|
-
-#. Enable Segment-Routing extensions to IS-IS, leveraging MPLS data plane encapsulation.
-
- - The Segment Routing Global Block (SRGB) label range should be 900,000 – 965,535 on all Service Provider nodes.
-
-#. Configure each node should with a globally unique Node SID equal to 900,000 + NodeID.
-
- - For example, EOS1 should have a Node SID of 900,001.
-
-#. Review IS-IS adjacency SIDs on EOS2 and EOS5.
-
- :Question:
- Is there overlap? If so, will this present an issue? Why or Why not?
-
-#. Validate that all Service Provider nodes have a globally unique Node SID.
-
-#. To protect against black holes, and reduce convergence time:
-
- - Enable the equivalent of IGP Sync and Session-Protection within the Segment-Routing domain.
-
-#. Once this task has been completed, all Service Provider nodes should have an LSP established for reachability between loopbacks.
-
- .. code-block:: text
-
- ping mpls segment-routing ip x.x.x.x/32 source y.y.y.y
-
- .. code-block:: text
-
- traceroute mpls segment-routing ip x.x.x.x/32 source y.y.y.y
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/srte_class_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/srte_class_guide.rst
deleted file mode 100644
index cf57a9e83..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/srte_class_guide.rst
+++ /dev/null
@@ -1,61 +0,0 @@
-Leverage SR-TE to Steer VPN Traffic
-==================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_srte.png
- :align: center
-
-|
-
-===================================================================================
-Steer Customer-1 Layer 3 VPN Traffic
-===================================================================================
-
-#. Use Segment Routing Traffic Engineering to manipulate L3VPN traffic for Customer-1. Configure the Service
- Provider network so that traffic from **EOS15** to **EOS12** follows the path pictured above.
-
- - Use a BGP Color Community value of 12.
-
- - The Binding SID for the TE policy should be 1000X12 (X = desintation Node-ID)
-
- - Only traffic for EOS12's Loopback should be matched.
-
- - Traffic should still be ECMP load balanced between PEs EOS1 and EOS6.
-
-===================================================================================
-Steer Customer-2 Layer 2 VPN Traffic
-===================================================================================
-
-#. Use **SR-TE** to manipulate L2VPN traffic for Customer-2. Configure the Service Provider network so that traffic
- from **EOS9** to **EOS10** follows the path pictured above.
-
- - Use a BGP Color Community value of 10.
-
- - The Binding SID for the TE policy should be 1000X12 (X = desintation Node-ID)
-
- - Only L2 traffic for EOS10 should be matched.
-
- - Traffic ingressing on EOS3 or EOS4 should be sent via the pictured path.
-
-===================================================================================
-Steer Customer-3 E-LINE Traffic
-===================================================================================
-
-#. Use **SR-TE** to manipulate VPWS traffic for Customer-3. Configure the Service Provider network so that traffic
- between **EOS16** and **EOS17** follows the path pictured above.
-
- - Use a BGP Color Community value of 1617.
-
- - The Binding SID for the TE policy should be 1001617 (X = desintation Node-ID)
-
- - Only VPWS traffic for EOS16 and EOS17 should be matched.
-
- - Traffic should follow the pictured path bidirectionally.
-
- .. note::
-
- Due to a limitation in software forwarding in vEOS-lab, forwarding of VPWS traffic into SR-TE tunnels does not function and as such, we cannot
- verify functionality via ICMP, etc. All control-plane functions should be verified using the commands above. Steering of VPWS traffic in
- hardware platforms functions as expected.
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/tilfa_class_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/tilfa_class_guide.rst
deleted file mode 100644
index da4b54710..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_class_guides/tilfa_class_guide.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-Enable TI-LFA Fast Reroute for ISIS-SR
-==================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_tilfa.png
- :align: center
-
-|
-
-#. Enable Topology Indepent Loop Free Alternate calculation on the Service Provider network for Fast Reroute.
-
- - Enable for the IPv4 Unicast AF only.
-
- - Enable Link Protection mode for TI-LFA
-
- - TI-LFA should be enabled for IS-IS Level 2.
-
-#. Ensure the proper delay is respected so micro-loops do not occur.
-
-
-**LAB COMPLETE!**
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c1_ipvpn_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c1_ipvpn_lab_guide.rst
deleted file mode 100644
index 738c9d67f..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c1_ipvpn_lab_guide.rst
+++ /dev/null
@@ -1,407 +0,0 @@
-Deploy L3VPN Service for Customer-1
-=====================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_c1_l3vpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``mesh-topology-ipvpn-labs`` to access the LDP and IPVPN Labs.
-
- #. Type ``c1l3vpn`` at the Labs Selection Menu. The script will configure the topology with the necessary prerequisites.
-
-#. Customer-1 is attached to three Service Provider nodes, **EOS1**, **EOS6** and **EOS8**. These will be our Provider
- Edge, or **PE** nodes. Since this customer will require a Layer 3 VPN Service, create an isolated VRF for their traffic
- and use IP-VPN to advertise the customer networks to other interested PEs.
-
- #. Create a VRF Instance called ``CUSTOMER-1`` on **EOS1**, **EOS6** and **EOS8**.
-
- .. note::
-
- Since we are using MPLS to create VPNs in the Service Provider network, the VRF only needs to be created on the
- nodes attached to the customer the VRF is for; in this case Customer-1. Also, note that by default, ``ip routing``
- and ``ipv6 unicast-routing`` are disabled by default in any VRF, so must be enabled for routing functions.
-
- .. code-block:: text
-
- vrf instance CUSTOMER-1
- !
- ip routing vrf CUSTOMER-1
- !
- ipv6 unicast-routing vrf CUSTOMER-1
-
- #. Place the interface attached to the Customer Edge, or **CE**, node for Customer-1 into VRF ``CUSTOMER-1`` on
- **EOS1** to ensure their traffic remains isolated.
-
- .. note::
-
- When an interface is moved from one VRF to another, in this case from the ``default`` VRF into our defined
- ``CUSTOMER-1`` VRF, any IP settings, including addresses, will be removed and will need to be reapplied.
-
- .. code-block:: text
-
- interface Ethernet3
- vrf CUSTOMER-1
- ip address 10.1.11.1/24
- ipv6 address fd00:1:11::1/64
-
- #. Repeat the above step for the interfaces on **EOS6** and **EOS8** attached to Customer-1 CE devices.
-
- **EOS6**
-
- .. code-block:: text
-
- interface Ethernet3
- vrf CUSTOMER-1
- ip address 10.6.13.6/24
- ipv6 address fd00:6:13::6/64
-
- **EOS8**
-
- .. code-block:: text
-
- interface Ethernet2
- vrf CUSTOMER-1
- ip address 10.8.15.8/24
- ipv6 address fd00:8:15::8/64
-
- #. Now leverage IP-VPN to advertise reachability of any routes learned in VRF ``CUSTOMER-1`` from the customer by
- setting a Route Distinguisher, or **RD**, and a Route Target, or **RT**, within BGP on **EOS1**. It should have a
- unique **RD** following the format of **** ``:1`` and the **RT** on all routers in the VPN should match
- as ``1:1`` for both v4 and v6.
-
- .. note::
-
- The **RD** can be used to determine the origination point of the VPN route and the **RT** is used by the routers
- in the Service Provider network to determine if they should import the advertised route into their local routing
- table(s). If they receive a VPN route, they check the **RT** value and see if they have a matching **RT** configured
- in BGP. If they do, the import the route into the associated VRF. If they do not, they ignore the route.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- rd 1.1.1.1:1
- route-target import vpn-ipv4 1:1
- route-target import vpn-ipv6 1:1
- route-target export vpn-ipv4 1:1
- route-target export vpn-ipv6 1:1
-
- #. Repeat the above step for **EOS6** and **EOS8**, adjusting the **RD** and using the same **RT**.
-
- **EOS6**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- rd 6.6.6.6:1
- route-target import vpn-ipv4 1:1
- route-target import vpn-ipv6 1:1
- route-target export vpn-ipv4 1:1
- route-target export vpn-ipv6 1:1
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- rd 8.8.8.8:1
- route-target import vpn-ipv4 1:1
- route-target import vpn-ipv6 1:1
- route-target export vpn-ipv4 1:1
- route-target export vpn-ipv6 1:1
-
- #. Finally, define the BGP peers facing the CE devices for route exchange into the customer VRF on **EOS1**. The CE node
- (**EOS11**) will use BGP ASN 123. Ensuring peering is configured for v4 and v6 unicast route exchange to the CE.
-
- .. note::
-
- Typically, CE-PE peerings will leverage eBGP as we do here. This allows for automatic route forwarding from the PE
- to the Route Reflector. Also note that in the previous lab, we disabled the default activation of the IPv4 unicast
- address-family for BGP peers, so we must explicitly enable for our PE-CE peering as well as the IPv6 unicast
- address-family.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.1.11.11 remote-as 123
- neighbor 10.1.11.11 maximum-routes 12000
- neighbor fd00:1:11::11 remote-as 123
- neighbor fd00:1:11::11 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.1.11.11 activate
- !
- address-family ipv6
- neighbor fd00:1:11::11 activate
-
- #. Again, repeat the above step for **EOS6** and **EOS8**, adjusting the peer IPs and ASN to reflect the attached CE node.
-
- **EOS6**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.6.13.13 remote-as 123
- neighbor 10.6.13.13 maximum-routes 12000
- neighbor fd00:6:13::13 remote-as 123
- neighbor fd00:6:13::13 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.6.13.13 activate
- !
- address-family ipv6
- neighbor fd00:6:13::13 activate
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.8.15.15 remote-as 15
- neighbor 10.8.15.15 maximum-routes 12000
- neighbor fd00:8:15::15 remote-as 15
- neighbor fd00:8:15::15 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.8.15.15 activate
- !
- address-family ipv6
- neighbor fd00:8:15::15 activate
-
- #. Verify configurations and VRF status. There will be no routes or BGP peers in our VRF as of yet since we have not
- peered with the CE devices.
-
- .. code-block:: text
-
- show running-config section CUSTOMER-1
- show vrf
-
-#. Now that the PE nodes are configured, configure CE nodes **EOS11**, **EOS12**, **EOS13**, and **EOS15** for Layer 3
- attachment to the Service Provider network.
-
- #. Since **EOS11**, **EOS12**, and **EOS13** represent a single customer site and LAN, configure OSPF to distribute
- routes locally within the site.
-
- .. note::
-
- The scope of these labs is mainly around the Service Provider network functions so it does not cover the specifics
- of the customer network configurations.
-
- **EOS11**
-
- .. code-block:: text
-
- interface Ethernet2
- ip ospf network point-to-point
- !
- router ospf 100
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- **EOS12**
-
- .. code-block:: text
-
- interface Ethernet1
- ip ospf network point-to-point
- !
- interface Ethernet2
- ip ospf network point-to-point
- !
- router ospf 100
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- **EOS13**
-
- .. code-block:: text
-
- interface Ethernet2
- ip ospf network point-to-point
- !
- router ospf 100
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- #. Configure the BGP peerings to the PE devices on **EOS11**, **EOS13** and **EOS15** ensuring that each router's
- Loopback0 address is advertised to the attached PE.
-
- **EOS11**
-
- .. code-block:: text
-
- router bgp 123
- router-id 11.11.11.11
- distance bgp 20 200 200
- neighbor 10.1.11.1 remote-as 100
- neighbor 10.1.11.1 maximum-routes 12000
- neighbor fd00:1:11::1 remote-as 100
- neighbor fd00:1:11::1 maximum-routes 12000
- !
- address-family ipv4
- network 11.11.11.11/32
- network 12.12.12.12/32
- network 13.13.13.13/32
- !
- address-family ipv6
- neighbor fd00:1:11::1 activate
- network 11:11:11::11/128
-
- **EOS13**
-
- .. code-block:: text
-
- router bgp 123
- router-id 13.13.13.13
- distance bgp 20 200 200
- neighbor 10.6.13.6 remote-as 100
- neighbor 10.6.13.6 maximum-routes 12000
- neighbor fd00:6:13::6 remote-as 100
- neighbor fd00:6:13::6 maximum-routes 12000
- !
- address-family ipv4
- network 11.11.11.11/32
- network 12.12.12.12/32
- network 13.13.13.13/32
- !
- address-family ipv6
- neighbor fd00:6:13::6 activate
- network 13:13:13::13/128
-
- **EOS15**
-
- .. code-block:: text
-
- router bgp 15
- router-id 15.15.15.15
- neighbor 10.8.15.8 remote-as 100
- neighbor 10.8.15.8 maximum-routes 12000
- neighbor fd00:8:15::8 remote-as 100
- neighbor fd00:8:15::8 maximum-routes 12000
- !
- address-family ipv4
- network 15.15.15.15/32
- !
- address-family ipv6
- neighbor fd00:8:15::8 activate
- network 15:15:15::15/128
-
-#. With the peerings fully established, verify and test connectivity between the Customer-1 locations.
-
- #. Verify BGP status and route exchange with the Service Provider network on **EOS15**
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp detail
- show ip route
- show ipv6 bgp summary
- show ipv6 bgp detail
- show ipv6 route
-
- #. Validate route advertisement to **EOS12** to ensure routes are coming in from the Service Provider network and
- being redistributed by the CE nodes into the IGP.
-
- .. code-block:: text
-
- show ip ospf database
- show ip route
-
- #. Test IPv4 connectivity from **EOS12** to **EOS15** using Loopback0 IP addressing.
-
- .. note::
-
- In the ATD labs, only connectivty of IPv4 traffic can be validated in L3VPNs. There is a limitation in the
- functionality of vEOS-lab, which the ATD labs are built on, in that it is unable to forward MPLS-decapsulated IPv6
- traffic to CE nodes. The control-plane for IPv6 based VPNs can still be fully built and validated as it would in
- a real environment with physical hardware.
-
- .. code-block:: text
-
- ping 15.15.15.15 source 12.12.12.12
-
-#. From the Service Provider nodes, verify route exchange and MPLS control-plane status.
-
- #. Display the peering status and routes being advertised by **EOS11** on **EOS1**.
-
- .. code-block:: text
-
- show ip bgp summary vrf CUSTOMER-1
- show ip bgp neighbor 10.1.11.11 routes vrf CUSTOMER-1
- show ipv6 bgp summary vrf CUSTOMER-1
- show ipv6 bgp peers 10.1.11.11 routes vrf CUSTOMER-1
-
- #. Now validate the IP-VPN routes are exchanged between the PE nodes **EOS1**, **EOS6**, and **EOS8** via the Route
- Relector.
-
- .. note::
-
- The key fields to notice in the following outputs are the **RD** which denotes the originator of the specified
- VPN route, the **RT** which denotes the associated Customer VRF and the assigned **MPLS label**, which represents
- the VPN or VRF label that EOS dynamically assigns via LDP.
-
- .. code-block:: text
-
- show bgp vpn-ipv4 summary
- show bgp vpn-ipv4 detail
- show bgp vpn-ipv6 summary
- show bgp vpn-ipv6 detail
-
- #. Finally, validate the forwarding path traffic will take for each destination in the customer VRF on the Service
- Provider network PEs, **EOS1**, **EOS6**, and **EOS8**.
-
- .. code-block:: text
-
- show ip route vrf CUSTOMER-1
- show ipv6 route vrf CUSTOMER-1
- show mpls route
-
-#. To show the ability for Equal Cost Multi-Pathing, or **ECMP**, to automatically occur where applicable on the Service
- Provider network, adjust the configuration so that IS-IS calculates multiple equal paths for traffic between these PE
- nodes.
-
- #. Adjust the IS-IS metric on the link between **EOS6** and **EOS8** so that multiple paths become available for
- forwarding.
-
- .. note::
-
- Normally, this would be done in a scenario where you would like to de-preference a given path in the network.
-
- **EOS6**
-
- .. code-block:: text
-
- interface Ethernet2
- isis metric 30
-
- **EOS8**
-
- .. code-block:: text
-
- interface Ethernet3
- isis metric 30
-
- #. Re-verify the forwarding path for the Customer-1 VRF on **EOS1**, **EOS6**, and **EOS8** to see ECMP is now available.
-
- .. code-block:: text
-
- show ip route vrf CUSTOMER-1
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c1_l3vpn_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c1_l3vpn_lab_guide.rst
deleted file mode 100644
index c07967a2e..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c1_l3vpn_lab_guide.rst
+++ /dev/null
@@ -1,348 +0,0 @@
-Deploy L3VPN Service for Customer-1
-=====================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_c1_l3vpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type or select the option for ``mesh-topology-evpn-labs`` to access the EVPN Labs.
-
- #. Type ``c1l3vpn`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. Customer-1 is attached to three Service Provider nodes, **EOS1**, **EOS6** and **EOS8**. These will be our Provider
- Edge, or **PE** nodes. Since this customer will require a Layer 3 VPN Service, create an isolated VRF for their
- traffic and use EVPN to advertise the customer networks to other interested PEs.
-
- #. Create a VRF Instance called ``CUSTOMER-1`` on **EOS1**, **EOS6** and **EOS8**.
-
- .. note::
-
- Since we are using MPLS to create VPNs in the Service Provider network, the VRF only needs to be created on the
- nodes attached to the customer the VRF is for; in this case Customer-1. Also, note that by default, ``ip routing``
- is disabled by default in any VRF, so must be enabled for routing functions.
-
- .. code-block:: text
-
- vrf instance CUSTOMER-1
- !
- ip routing vrf CUSTOMER-1
-
- #. Place the interface attached to the Customer Edge, or **CE**, node for Customer-1 into VRF ``CUSTOMER-1`` on
- **EOS1** to ensure their traffic remains isolated.
-
- .. note::
-
- When an interface is moved from one VRF to another, in this case from the ``default`` VRF into our defined
- ``CUSTOMER-1`` VRF, any IP settings, including address, will be removed and will need to be reapplied.
-
- .. code-block:: text
-
- interface Ethernet3
- vrf CUSTOMER-1
- ip address 10.1.11.1/24
-
- #. Repeat the above step for the interfaces on **EOS6** and **EOS8** attached to Customer-1 CE devices.
-
- **EOS6**
-
- .. code-block:: text
-
- interface Ethernet3
- vrf CUSTOMER-1
- ip address 10.6.13.6/24
-
- **EOS8**
-
- .. code-block:: text
-
- interface Ethernet2
- vrf CUSTOMER-1
- ip address 10.8.15.8/24
-
- #. Now leverage BGP EVPN to advertise reachability of any routes learned in VRF ``CUSTOMER-1`` from the customer by
- setting a Route Distinguisher, or **RD**, and a Route Target, or **RT**, within BGP on **EOS1**. It should have a
- unique **RD** following the format of **** ``:1`` and the **RT** on all routers in the VPN should match
- as ``1:1``.
-
- .. note::
-
- The **RD** can be used to determine the origination point of the VPN route and the **RT** is used by the routers
- in the Service Provider network to determine if they should import the advertised route into their local routing
- table(s). If they receive a VPN route, they check the **RT** value and see if they have a matching **RT** configured
- in BGP. If they do, they import the route into the associated VRF. If they do not, they ignore the route.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- rd 1.1.1.1:1
- route-target import evpn 1:1
- route-target export evpn 1:1
-
- #. Repeat the above step for **EOS6** and **EOS8**, adjusting the **RD** and using the same **RT**.
-
- **EOS6**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- rd 6.6.6.6:1
- route-target import evpn 1:1
- route-target export evpn 1:1
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- rd 8.8.8.8:1
- route-target import evpn 1:1
- route-target export evpn 1:1
-
- #. Finally, define the BGP peers facing the CE devices for route exchange into the customer VRF on **EOS1**. The CE
- node (**EOS11**) will use BGP ASN 123.
-
- .. note::
-
- Typically, CE-PE peerings will leverage eBGP as we do here. This allows for automatic route forwarding from
- the PE to the Route Reflector. Also note that in the previous lab, we disabled the default activation
- of the IPv4 unicast address-family for BGP peers, so we must explicitly enable for our PE-CE peering.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.1.11.11 remote-as 123
- neighbor 10.1.11.11 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.1.11.11 activate
-
- #. Again, repeat the above step for **EOS6** and **EOS8**, adjusting the peer IPs and ASN to reflect the attached CE node.
-
- **EOS6**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.6.13.13 remote-as 123
- neighbor 10.6.13.13 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.6.13.13 activate
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.8.15.15 remote-as 15
- neighbor 10.8.15.15 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.8.15.15 activate
-
- #. Verify configurations and VRF status. There will be no routes or BGP peers in our VRF as of yet since we have not
- configured and peered with the CE devices.
-
- .. code-block:: text
-
- show running-config section CUSTOMER-1
- show vrf
-
-#. Now that the PE nodes are configured, configure CE nodes **EOS11**, **EOS12**, **EOS13**, and **EOS15** for
- Layer 3 attachment to the Service Provider network.
-
- #. Since **EOS11**, **EOS12**, and **EOS13** represent a single customer site and LAN, configure OSPF to distribute
- routes locally within the site.
-
- .. note::
-
- The scope of these labs is mainly around the Service Provider network functions so it does not cover the specifics
- of the customer network configurations.
-
- **EOS11**
-
- .. code-block:: text
-
- interface Ethernet2
- ip ospf network point-to-point
- !
- router ospf 100
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- **EOS12**
-
- .. code-block:: text
-
- interface Ethernet1
- ip ospf network point-to-point
- !
- interface Ethernet2
- ip ospf network point-to-point
- !
- router ospf 100
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- **EOS13**
-
- .. code-block:: text
-
- interface Ethernet2
- ip ospf network point-to-point
- !
- router ospf 100
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- #. Configure the BGP peerings to the PE devices on **EOS11**, **EOS13** and **EOS15** ensuring that each router's
- Loopback0 address is advertised to the attached PE.
-
- **EOS11**
-
- .. code-block:: text
-
- router bgp 123
- router-id 11.11.11.11
- distance bgp 20 200 200
- neighbor 10.1.11.1 remote-as 100
- neighbor 10.1.11.1 maximum-routes 12000
- network 11.11.11.11/32
- network 12.12.12.12/32
- network 13.13.13.13/32
- !
- router ospf 100
- redistribute bgp
-
- **EOS13**
-
- .. code-block:: text
-
- router bgp 123
- router-id 13.13.13.13
- distance bgp 20 200 200
- neighbor 10.6.13.6 remote-as 100
- neighbor 10.6.13.6 maximum-routes 12000
- network 11.11.11.11/32
- network 12.12.12.12/32
- network 13.13.13.13/32
- !
- router ospf 100
- redistribute bgp
-
- **EOS15**
-
- .. code-block:: text
-
- router bgp 15
- router-id 15.15.15.15
- neighbor 10.8.15.8 remote-as 100
- neighbor 10.8.15.8 maximum-routes 12000
- network 15.15.15.15/32
-
-#. With the peerings fully established, verify and test connectivity between the Customer-1 locations.
-
- #. Verify BGP status and route exchange with the Service Provider network on **EOS15**
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp detail
- show ip route
-
- #. Validate route advertisement to **EOS12** to ensure routes are coming in from the Service Provider network and
- being redistributed by the CE nodes into the IGP.
-
- .. code-block:: text
-
- show ip ospf database
- show ip route
-
- #. Test connectivity from **EOS12** to **EOS15** using Loopback0 IP addressing.
-
- .. code-block:: text
-
- ping 15.15.15.15 source 12.12.12.12
-
-#. From the Service Provider nodes, verify route exchange and MPLS control-plane status.
-
- #. Display the peering status and routes being advertised by **EOS11** on **EOS1**.
-
- .. code-block:: text
-
- show ip bgp summary vrf CUSTOMER-1
- show ip bgp neighbor 10.1.11.11 routes vrf CUSTOMER-1
-
- #. Now validate the EVPN routes are exchanged between the PE nodes **EOS1**, **EOS6**, and **EOS8** via the Route
- Relector.
-
- .. note::
-
- The key fields to notice in the following outputs are the **RD** which denotes the originator of the specified
- EVPN Type-5 (IP Prefix) route, the **RT** which denotes the associated Customer VRF and the assigned **MPLS label**,
- which represents the VPN or VRF label that EOS dynamically assigns.
-
- .. code-block:: text
-
- show bgp evpn summary
- show bgp evpn route-type ip-prefix ipv4 detail
-
- #. Finally, validate the forwarding path traffic will take for each destination in the customer VRF on the Service
- Provider network PEs, **EOS1**, **EOS6**, and **EOS8**.
-
- .. code-block:: text
-
- show ip route vrf CUSTOMER-1
- show mpls route
-
-#. To show the ability for Equal Cost Multi-Pathing, or **ECMP**, to automatically occur where applicable on the Service
- Provider network, adjust the configuration so that IS-IS calculates multiple equal paths for traffic between these PE
- nodes.
-
- #. Adjust the IS-IS metric on the link between **EOS6** and **EOS8** so that multiple paths become available for
- forwarding.
-
- .. note::
-
- Normally, this would be done in a scenario where you would like to de-preference a given path in the network.
-
- **EOS6**
-
- .. code-block:: text
-
- interface Ethernet2
- isis metric 30
-
- **EOS8**
-
- .. code-block:: text
-
- interface Ethernet3
- isis metric 30
-
- #. Re-verify the forwarding path for the Customer-1 VRF on **EOS1**, **EOS6**, and **EOS8** to see ECMP is now available.
-
- .. code-block:: text
-
- show ip route vrf CUSTOMER-1
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c2_l2vpn_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c2_l2vpn_lab_guide.rst
deleted file mode 100644
index a459ee994..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c2_l2vpn_lab_guide.rst
+++ /dev/null
@@ -1,382 +0,0 @@
-Deploy L2VPN Service for Customer-2
-=====================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_c2_l2vpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type or select the option for ``mesh-topology-evpn-labs`` to access the EVPN Labs.
-
- #. Type ``c2l2vpn`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. Customer-2 is attached to five Service Provider nodes, **EOS3**, **EOS4**, **EOS6**, **EOS7** and **EOS8**. These
- will be **PE** nodes. Since this customer will require a Layer 2 VPN Service, create a VLAN for their traffic and
- use EVPN to advertise the customer MAC addresses to other interested PEs.
-
- #. First, create a local VLAN with an ID of ``20`` on each of the PE nodes.
-
- .. note::
-
- Similar to the L3VPN, we are using MPLS to create VPNs in the Service Provider network. The only difference here
- is the VPN is providing a switched LAN service as opposed to a router service. Again, the VLAN only needs to be
- created on the nodes attached to the customer the VLAN is for; in this case Customer-2.
-
- .. code-block:: text
-
- vlan 20
- name Customer2_E-LAN
-
- #. Place the interface attached to the **CE** node for Customer-2 into VLAN ``20`` on **EOS7** to attach it to the E-LAN
- service.
-
- .. note::
-
- We are providing an untagged service. If a tagged service was required, we would configure a dot1q trunk instead.
-
- .. code-block:: text
-
- interface Ethernet2
- switchport access vlan 20
- spanning-tree portfast
-
- #. Repeat the above step to place the interfaces attached to Customer-2 **CE** nodes into VLAN ``20`` on **EOS3**,
- **EOS4**, **EOS6**, and **EOS8**. In addition, configure these interfaces for an Active-Active LACP Port-Channel.
-
- .. note::
-
- Normally, you cannot have two interfaces on separate routers as part of a single LAG without an additional
- protocol between them such as MLAG. In this case, we will configure BGP EVPN to properly signal this LAG later
- in the lab. For now, just create the base Port-Channel configuration for the interface.
-
- **EOS3**
-
- .. code-block:: text
-
- interface Port-Channel9
- description CE-EOS9
- switchport access vlan 20
- spanning-tree portfast
- !
- interface Ethernet1
- channel-group 9 mode active
-
- **EOS4**
-
- .. code-block:: text
-
- interface Port-Channel9
- description CE-EOS9
- switchport access vlan 20
- spanning-tree portfast
- !
- interface Ethernet1
- channel-group 9 mode active
-
- **EOS6**
-
- .. code-block:: text
-
- interface Port-Channel14
- description CE-EOS14
- switchport access vlan 20
- spanning-tree portfast
- !
- interface Ethernet6
- channel-group 14 mode active
-
- **EOS8**
-
- .. code-block:: text
-
- interface Port-Channel14
- description CE-EOS14
- switchport access vlan 20
- spanning-tree portfast
- !
- interface Ethernet4
- channel-group 14 mode active
-
- #. Configure BGP EVPN to advertise reachability of any MACs learned in VLAN ``20`` from the customer by setting
- an **RD** and an **RT**, within BGP on **EOS7**. It should have a unique **RD** following the format of
- **** ``:2`` and the **RT** on all routers in the VPN should match as ``2:20``.
-
- .. note::
-
- The **RD** and **RT** serves the same function for the L2VPN as they do for the L3VPN, providing a unified
- approach to VPN control-plane configuration. The ``redistribute learned`` command ensures that any locally
- learned MACs will be advertised to the Route Reflector using BGP EVPN.
-
- .. code-block:: text
-
- router bgp 100
- !
- vlan 20
- rd 7.7.7.7:2
- route-target both 2:20
- redistribute learned
-
- #. Repeat the above step on the remain PEs, **EOS3**, **EOS4**, **EOS6**, and **EOS8**, adjusting the **RD** as
- necessary while keeping the **RT** consistent.
-
- **EOS3**
-
- .. code-block:: text
-
- router bgp 100
- !
- vlan 20
- rd 3.3.3.3:2
- route-target both 2:20
- redistribute learned
-
- **EOS4**
-
- .. code-block:: text
-
- router bgp 100
- !
- vlan 20
- rd 4.4.4.4:2
- route-target both 2:20
- redistribute learned
-
- **EOS6**
-
- .. code-block:: text
-
- router bgp 100
- !
- vlan 20
- rd 6.6.6.6:2
- route-target both 2:20
- redistribute learned
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vlan 20
- rd 8.8.8.8:2
- route-target both 2:20
- redistribute learned
-
- #. Now, configure the previously created Port-Channel interfaces on **EOS3**, **EOS4**, **EOS6**, and **EOS8**
- to use EVPN All-Active to enable both PEs in each LAG to actively forward traffic for the CE node.
-
- .. note::
-
- EVPN A-A utilizes BGP to negotiate LAG membership and Designated Forwarder roll for each LAG using an unique
- Ethernet Segment Identifier, or **ESI**, for each LAG as well as a specific RT. To ensure the attached CE device
- sees both PEs as a single LACP system, we also statically set the ``lacp system-id`` to be the same on both PEs
- for the LAG.
-
- **EOS3**
-
- .. code-block:: text
-
- interface Port-Channel9
- !
- evpn ethernet-segment
- identifier 0000:0200:0200:1000:0304
- route-target import 00:02:00:01:00:20
- lacp system-id 0000.0000.0034
-
- **EOS4**
-
- .. code-block:: text
-
- interface Port-Channel9
- !
- evpn ethernet-segment
- identifier 0000:0200:0200:1000:0304
- route-target import 00:02:00:01:00:20
- lacp system-id 0000.0000.0034
-
- **EOS6**
-
- .. code-block:: text
-
- interface Port-Channel14
- !
- evpn ethernet-segment
- identifier 0000:0200:0200:2000:0608
- route-target import 00:02:00:02:00:20
- lacp system-id 0000.0000.0068
-
- **EOS8**
-
- .. code-block:: text
-
- interface Port-Channel14
- !
- evpn ethernet-segment
- identifier 0000:0200:0200:2000:0608
- route-target import 00:02:00:02:00:20
- lacp system-id 0000.0000.0068
-
-#. Now, configure the Customer-2 CE nodes to connect to each other over the emulated LAN service.
-
- #. Since the Service Provider is providing a Layer 2 service, configure the CE on **EOS9**, **EOS10**, and **EOS14**
- interfaces as part of a common subnet as if they were attached to a common Layer 2 switch. For dual-homed CEs,
- configure this link as an LACP Port-Channel.
-
- **EOS9**
-
- .. code-block:: text
-
- interface Port-Channel9
- description PEs: EOS3,EOS4
- no switchport
- ip address 10.0.0.9/24
- !
- interface Ethernet1
- channel-group 9 mode active
- !
- interface Ethernet2
- channel-group 9 mode active
- !
- router ospf 200
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- .. note::
-
- On **EOS10** we manually adjust the MAC address just to avoid any potential overlap in the virutalized lab
- environment.
-
- **EOS10**
-
- .. code-block:: text
-
- interface Ethernet1
- mac-address 00:00:00:00:10:10
- no switchport
- ip address 10.0.0.10/24
- !
- router ospf 200
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- **EOS14**
-
- .. code-block:: text
-
- interface Port-Channel14
- description PEs: EOS6,EOS8
- no switchport
- ip address 10.0.0.14/24
- !
- interface Ethernet1
- channel-group 14 mode active
- !
- interface Ethernet2
- channel-group 14 mode active
- !
- router ospf 200
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
-#. With all PE and CE nodes configured, verify Layer 2 connectivity between CE nodes **EOS9**, **EOS10** and **EOS14**.
-
- #. Verify that all CE interfaces are able to resolve ARP for their peers and that dual-homed CEs have succesfully
- negotiated an LACP Port-Channel
-
- .. note::
-
- The Service Provider network is emulating the behavior of a Layer 2 switch and as such should be transparent to
- the Layer 3 operations between the CE nodes.
-
- .. code-block:: text
-
- show ip arp
- show port-channel summary
-
- #. Verify OSPF adjacencies have formed between the CEs and routes have been exchanged.
-
- .. code-block:: text
-
- show ip ospf neighbor
- show ip route
-
- #. Test connectivity between CE Loopback0 interfaces from **EOS9** to **EOS14**.
-
- .. code-block:: text
-
- ping 14.14.14.14 source 9.9.9.9
-
-#. Finally, verify the EVPN control-plane and MPLS data-plane for the customer L2VPN.
-
- #. Verify the local MAC address-table on **EOS3** as an example.
-
- .. note::
-
- The MACs tied to port ``Mt1``, or MPLStunnel1 are remote EVPN learned MACs.
-
- .. code-block:: text
-
- show mac address-table vlan 20
-
- #. Verify the EVPN Type-2 route advertisements on **EOS3**.
-
- .. note::
-
- The key fields to track, again similar to the L3VPN, are the **RD** which denotes the originator of the specified
- EVPN Type-2 (MAC-IP) route, the **RT** which denotes the associated Customer VRF and the assigned **MPLS label**,
- which represents the VPN or VLAN label that EOS dynamically assigns. Additionally, any MAC learned via an EVPN
- A-A Port-Channel will have the associated **ESI** value populated.
-
- .. code-block:: text
-
- show bgp evpn summary
- show bgp evpn route-type mac-ip detail
-
- #. Display the EVPN Type-3 route advertisements on **EOS3**.
-
- .. note::
-
- Each PE node in the lab should send a Type-3 **IMET** route to express their interest in receiving BUM traffic
- for VLAN 20.
-
- .. code-block:: text
-
- show bgp evpn route-type imet detail
-
- #. Validate the control-plane for the local LACP Port-Channel on **EOS3**.
-
- .. note::
-
- When viewing the EVPN instance, note that one of the two routers in the ES has been elected the
- ``Designated forwarder`` for BUM traffic for the CE LAG.
-
- .. code-block:: text
-
- show port-channel summary
- show bgp evpn route-type ethernet-segment esi 0000:0200:0200:1000:0304 detail
- show bgp evpn instance
-
- #. Verify Layer 2 ECMP towards remotely attached CE MAC of **EOS14** towards **EOS6** and **EOS8** by running the
- following commands on **EOS3**.
-
- .. note::
-
- For this step, the MAC address of **EOS14** will vary per lab. Log into **EOS14** and view the MAC of the LAG on
- **EOS14** with the command ``show interface Port-Channel14``. That MAC should be substituted in the below commands
- where you see the MAC ``041b.5d09.3f85``.
-
- .. code-block:: text
-
- show mac address-table address 041b.5d09.3f85
- show bgp evpn route-type mac-ip 041b.5d09.3f85
- show bgp evpn route-type auto-discovery esi 0000:0200:0200:2000:0608 detail
- show l2rib output mac 041b.5d09.3f85
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c3_eline_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c3_eline_lab_guide.rst
deleted file mode 100644
index 5c22206e7..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c3_eline_lab_guide.rst
+++ /dev/null
@@ -1,171 +0,0 @@
-Deploy E-LINE Service for Customer-3
-=========================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_c3_eline.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type or select the option for ``mesh-topology-evpn-labs`` to access the EVPN Labs.
-
- #. Type ``c3eline`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. Customer-3 is attached to two Service Provider nodes, **EOS1** and **EOS4**. These will be **PE** nodes. Since this
- customer will require a Layer 1 Wire Service, create a local patch and use EVPN to advertise the customers port to
- other interested PEs.
-
- #. On **EOS1** and **EOS4**, configure the port facing CE devices **EOS17** and **EOS16** respectively.
-
- .. note::
-
- For a port-based service (which differs from a VLAN-based service), the CE-facing interface must be configured
- as a routed interface with the ``no switchport`` command. We will also disable LLDP so those frames are not
- consumed on the interface.
-
- .. code-block:: text
-
- interface Ethernet6
- no switchport
- no lldp transmit
- no lldp receive
-
- #. On **EOS1** and **EOS4**, create the logical patch name ``C3-E-LINE`` between the local CE interface and the
- Virtual Private Wire Service, or **VPWS**, that will be created with a VPWS name of ``CUSTOMER-3`` and a pseudowire
- name of ``EOS16-EOS17``.
-
- .. note::
-
- As the name implies, the ``patch-panel`` configuration allows for stitching together local and remote interfaces
- using an emulated Layer 1 Service.
-
- .. code-block:: text
-
- patch panel
- patch C3-E-LINE
- connector 1 interface Ethernet6
- connector 2 pseudowire bgp vpws CUSTOMER-3 pseudowire EOS16-EOS17
-
- #. On **EOS1**, leverage EVPN to advertise the Layer 1 Service to the Route Reflector using the same VPWS and pseudowire
- name as the previous step. In addtion, use the format of **** ``:3`` as the RD and ``3:1617`` as the RT.
- Finally, set the local VPWS ID to ``16`` and the remote VPWS ID to ``17``. These values must be unique within the VPWS
- instance.
-
- .. note::
-
- These values tie together the previous patch configuration with the received BGP EVPN routes we will see later in
- this lab.
-
- .. code-block:: text
-
- router bgp 100
- !
- vpws CUSTOMER-3
- rd 1.1.1.1:3
- route-target import export evpn 3:1617
- !
- pseudowire EOS16-EOS17
- evpn vpws id local 16 remote 17
-
- #. Repeat the previous step on **EOS4** while adjusting the variables accordingly to match the other side of the service.
-
- .. code-block:: text
-
- router bgp 100
- !
- vpws CUSTOMER-3
- rd 4.4.4.4:3
- route-target import export evpn 3:1617
- !
- pseudowire EOS16-EOS17
- evpn vpws id local 17 remote 16
-
-#. Configure the Customer-3 CE nodes to connect to each other over the emulated LINE service.
-
- #. Since the Service Provider is providing a Layer 1 service, configure the CE on **EOS16** and **EOS17** interfaces
- as OSPF peers as if they were attached back to back with a cable.
-
- .. note::
-
- The IP addressing on the links has already been configured by the base IPv4 configuration template.
-
- .. code-block:: text
-
- interface Ethernet1
- ip ospf network point-to-point
- !
- router ospf 300
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
-#. With all PE and CE nodes configured, verify connectivity between CE nodes **EOS16** and **EOS17**.
-
- #. Verify that all CE interfaces are able to resolve ARP for their peers and are able to see each other as LLDP neighbors.
-
- .. note::
-
- The Service Provider network is emulating the behavior of a Layer 1 connection and as such should be transparent to
- the Layer 2 and 3 operations between the CE nodes. Note that depending on the holdtime of the CE LLDP table, the
- PEs may still be present, but they should age out.
-
- .. code-block:: text
-
- show ip arp
- show lldp neighbor
-
- #. Verify OSPF adjacencies have formed between the CEs and routes have been exchanged.
-
- .. code-block:: text
-
- show ip ospf neighbor
- show ip route
-
- #. Test connectivity between CE Loopback0 interfaces from **EOS16** to **EOS17**.
-
- .. code-block:: text
-
- ping 17.17.17.17 source 16.16.16.16
-
-#. Next, verify the EVPN control-plane and MPLS data-plane for the customer E-LINE service.
-
- #. On **EOS1**, verify the local patch status.
-
- .. note::
-
- Take note of the ``MPLS label`` assigned to the local and remote nodes and that they differ, since the VPN label
- for the E-LINE service is locally significant.
-
- .. code-block:: text
-
- show interface Ethernet6
- show patch panel detail
-
- #. Display the EVPN routes from **EOS4** on **EOS1** associated to the VPWS.
-
- .. note::
-
- The VPWS pseudowire ID is included as part of the EVPN Type-1 route.
-
- .. code-block:: text
-
- show bgp evpn route-type auto-discovery rd 4.4.4.4:3 detail
-
- #. Verify the forwarding path for traffic on the VPWS towards **EOS4** on **EOS1**.
-
- .. note::
-
- The In/Out section of the ``show patch panel forwarding`` output will show the VPN label for the VPWS and the
- associated IS-IS SR tunnel index for the destination PE. This tunnel index can then be found in the output of the
- ``show isis segment-routing tunnel`` command.
-
- .. code-block:: text
-
- show patch panel forwarding
- show isis segment-routing tunnel
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c3_ldppw_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c3_ldppw_lab_guide.rst
deleted file mode 100644
index be5736fb2..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c3_ldppw_lab_guide.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-Deploy E-LINE Service for Customer-3
-=========================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_c3_eline.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``mesh-topology-ipvpn-labs`` to access the LDP and IPVPN Labs.
-
- #. Type ``c3eline`` at the Labs Selection Menu. The script will configure the topology with the necessary prerequisites.
-
-#. Customer-3 is attached to two Service Provider nodes, **EOS1** and **EOS4**. These will be **PE** nodes. Since this
- customer will require a Layer 1 Wire Service, create a local patch and use an LDP Pseudowire to advertise the customers
- port to the other interested PE.
-
- #. On **EOS1** and **EOS4**, configure the port facing CE devices **EOS17** and **EOS16** respectively.
-
- .. note::
-
- For a port-based service (which differs from a VLAN-based service), the CE-facing interface must be configured
- as a routed interface with the ``no switchport`` command. We will also disable LLDP so those frames are not
- consumed on the interface.
-
- .. code-block:: text
-
- interface Ethernet6
- no switchport
- no lldp transmit
- no lldp receive
-
- #. On **EOS1** and **EOS4**, create the logical patch name ``C3-E-LINE`` between the local CE interface and an,
- that will be created with a name of ``EOS16-EOS17``.
-
- .. note::
-
- As the name implies, the ``patch-panel`` configuration allows for stitching together local and remote interfaces
- using an emulated Layer 1 Service.
-
- .. code-block:: text
-
- patch panel
- patch C3-E-LINE
- connector 1 interface Ethernet6
- connector 2 pseudowire ldp EOS16-EOS17
-
- #. On **EOS1**, leverage LDP to advertise the Layer 1 Service to the peer node of **EOS4**. In addtion, use an MTU value
- of 9000. Use the pseudowire name of ``EOS16-EOS17`` and an ID of ``1617``. These values must match on both ends of the
- service.
-
- .. note::
-
- These values tie together the previous patch configuration.
-
- .. code-block:: text
-
- mpls ldp
- !
- pseudowires
- mtu 9000
- !
- pseudowire EOS16-EOS17
- neighbor 4.4.4.4
- pseudowire-id 1617
-
- #. Repeat the previous step on **EOS4** while adjusting the variables accordingly to match the other side of the service.
-
- .. code-block:: text
-
- mpls ldp
- !
- pseudowires
- mtu 9000
- !
- pseudowire EOS16-EOS17
- neighbor 1.1.1.1
- pseudowire-id 1617
-
-#. Configure the Customer-3 CE nodes to connect to each other over the emulated LINE service.
-
- #. Since the Service Provider is providing a Layer 1 service, configure the CE on **EOS16** and **EOS17** interfaces
- as OSPF peers as if they were attached back to back with a cable.
-
- .. note::
-
- The IP addressing on the links has already been configured by the base IPv4 configuration template.
-
- .. code-block:: text
-
- interface Ethernet1
- ip ospf network point-to-point
- !
- router ospf 300
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
-#. With all PE and CE nodes configured, verify connectivity between CE nodes **EOS16** and **EOS17**.
-
- #. Verify that all CE interfaces are able to resolve ARP for their peers and are able to see each other as LLDP neighbors.
-
- .. note::
-
- The Service Provider network is emulating the behavior of a Layer 1 connection and as such should be transparent to
- the Layer 2 and 3 operations between the CE nodes. Note that depending on the holdtime of the CE LLDP table, the
- PEs may still be present, but they should age out.
-
- .. code-block:: text
-
- show ip arp
- show lldp neighbor
-
- #. Verify OSPF adjacencies have formed between the CEs and routes have been exchanged.
-
- .. code-block:: text
-
- show ip ospf neighbor
- show ip route
-
- #. Test connectivity between CE Loopback0 interfaces from **EOS16** to **EOS17**.
-
- .. code-block:: text
-
- ping 17.17.17.17 source 16.16.16.16
-
-#. Next, verify the LDP control-plane and MPLS data-plane for the customer E-LINE service.
-
- #. On **EOS1**, verify the local patch status.
-
- .. note::
-
- Take note of the ``MPLS label`` assigned to the local and remote nodes and that they may differ, since the VPN label
- for the E-LINE service is locally significant.
-
- .. code-block:: text
-
- show interface Ethernet6
- show patch panel detail
-
- #. Verify the forwarding path for traffic on the pseudowire towards **EOS4** on **EOS1**.
-
- .. note::
-
- The In/Out section of the ``show patch panel forwarding`` output will show the VPN label for the PW and the
- associated LDP tunnel index for the destination PE. This tunnel index can then be found in the output of the
- ``show tunnel rib brief`` command.
-
- .. code-block:: text
-
- show patch panel forwarding
- show mpls ldp tunnel
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c4_ipvpn_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c4_ipvpn_lab_guide.rst
deleted file mode 100644
index 7696f8e00..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c4_ipvpn_lab_guide.rst
+++ /dev/null
@@ -1,238 +0,0 @@
-Deploy L3VPN Service for Customer-4
-=====================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_c4_l3vpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``mesh-topology-ipvpn-labs`` to access the LDP and IPVPN Labs.
-
- #. Type ``c4l3vpn`` at the Labs Selection Menu. The script will configure the topology with the necessary prerequisites.
-
-#. Customer-4 is attached to two Service Provider nodes, **EOS7** and **EOS8**. These will be our **PE** nodes.
- Since this customer will require a Layer 3 VPN Service, create an isolated VRF for their traffic and use IP-VPN
- to advertise the customer networks to other interested PEs.
-
- #. Create a VRF Instance called ``CUSTOMER-4`` on **EOS7** and **EOS8**.
-
- .. note::
-
- The steps in this lab will be similar to the Customer-1 L3VPN lab, demonstrating the repeatable nature of
- an IP-VPN deployment, which can easily be automated with CloudVision once the concepts are understood.
-
- .. code-block:: text
-
- vrf instance CUSTOMER-4
- !
- ip routing vrf CUSTOMER-4
- !
- ipv6 unicast-routing vrf CUSTOMER-4
-
- #. Place the interface attached to the **CE** node for Customer-4 into VRF ``CUSTOMER-4`` on **EOS7** to ensure their
- traffic remains isolated.
-
- .. code-block:: text
-
- interface Ethernet4
- vrf CUSTOMER-4
- ip address 10.7.19.7/24
- ipv6 address fd00:7:19::7/64
-
- #. Repeat the above step for the interface on **EOS8** attached to Customer-4 CE device.
-
- .. code-block:: text
-
- interface Ethernet5
- vrf CUSTOMER-4
- ip address 10.8.18.8/24
- ipv6 address fd00:8:18::8/64
-
- #. Now leverage BGP to advertise VPN reachability of any routes learned in VRF ``CUSTOMER-4`` from the customer by
- setting an **RD** and an **RT**, within BGP on **EOS7** and **EOS8**. It should have a unique **RD** following the
- format of **** ``:4`` and the **RT** on all routers in the VPN should match as ``4:4``.
-
- **EOS7**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- rd 7.7.7.7:4
- route-target import vpn-ipv4 4:4
- route-target import vpn-ipv6 4:4
- route-target export vpn-ipv4 4:4
- route-target export vpn-ipv6 4:4
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- rd 8.8.8.8:4
- route-target import vpn-ipv4 4:4
- route-target import vpn-ipv6 4:4
- route-target export vpn-ipv4 4:4
- route-target export vpn-ipv6 4:4
-
- #. Finally, define the BGP peers facing the CE devices for route exchange into the customer VRF on **EOS7** and **EOS8**.
- The CE nodes (**EOS19** and **EOS18**) will use BGP ASN 200.
-
- **EOS7**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- neighbor 10.7.19.19 remote-as 200
- neighbor 10.7.19.19 maximum-routes 12000
- neighbor fd00:7:19::19 remote-as 200
- neighbor fd00:7:19::19 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.7.19.19 activate
- !
- address-family ipv6
- neighbor fd00:7:19::19 activate
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- neighbor 10.8.18.18 remote-as 123
- neighbor 10.8.18.18 maximum-routes 12000
- neighbor fd00:8:18::18 remote-as 200
- neighbor fd00:8:18::18 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.8.18.18 activate
- !
- address-family ipv6
- neighbor fd00:8:18::18 activate
-
- #. Verify configurations and VRF status. There will be no routes or BGP peers in our VRF as of yet since we have not
- peered with the CE devices.
-
- .. code-block:: text
-
- show running-config section CUSTOMER-4
- show vrf
-
-#. Now that the PE nodes are configured, configure CE nodes **EOS18** and **EOS19** for Layer 3 attachment to the
- Service Provider network.
-
- #. Configure the BGP peerings to the PE devices on **EOS18** and **EOS19** ensuring that each router's Loopback0
- address is advertised to the attached PE.
-
- .. note::
-
- Since both CE devices are using BGP ASN ``200``, we need to ensure BGP allows the router's own ASN in the
- AS-PATH, which normally is marked as an invalid route, with the ``allowas-in`` option.
-
- **EOS18**
-
- .. code-block:: text
-
- router bgp 200
- router-id 18.18.18.18
- neighbor 10.8.18.8 remote-as 100
- neighbor 10.8.18.8 allowas-in 1
- neighbor 10.8.18.8 maximum-routes 12000
- neighbor fd00:8:18::8 remote-as 100
- neighbor fd00:8:18::8 allowas-in 1
- neighbor fd00:8:18::8 maximum-routes 12000
- !
- address-family ipv4
- network 18.18.18.18/32
- !
- address-family ipv6
- neighbor fd00:8:18::8 activate
- network 18:18:18::18/128
-
- **EOS19**
-
- .. code-block:: text
-
- router bgp 200
- router-id 19.19.19.19
- neighbor 10.7.19.7 remote-as 100
- neighbor 10.7.19.7 allowas-in 1
- neighbor 10.7.19.7 maximum-routes 12000
- neighbor fd00:7:19::7 remote-as 100
- neighbor fd00:7:19::7 allowas-in 1
- neighbor fd00:7:19::7 maximum-routes 12000
- !
- address-family ipv4
- network 19.19.19.19/32
- !
- address-family ipv6
- neighbor fd00:7:19::7 activate
- network 19:19:19::19/128
-
-#. With the peerings fully established, verify and test connectivity between the Customer-4 locations.
-
- #. Verify BGP status and route exchange with the Service Provider network on **EOS18**
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp detail
- show ip route
- show ipv6 bgp summary
- show ipv6 bgp detail
- show ipv6 route
-
- #. Test connectivity from **EOS18** to **EOS19** using Loopback0 IP addressing.
-
- .. note::
-
- As seen previously, MPLS tunneling of IPv6 traffic does not function in vEOS-lab. The control-plane should form
- correctly and can be verified using show commands.
-
- .. code-block:: text
-
- ping 19.19.19.19 source 18.18.18.18
-
-#. From the Service Provider nodes, verify route exchange and MPLS control-plane status.
-
- #. Display the peering status and routes being advertised by **EOS18** on **EOS8**.
-
- .. code-block:: text
-
- show ip bgp summary vrf CUSTOMER-4
- show ip bgp neighbor 10.8.18.18 routes vrf CUSTOMER-4
- show ipv6 bgp summary vrf CUSTOMER-4
- show ipv6 bgp peers 10.8.18.18 routes vrf CUSTOMER-4
-
- #. Now validate the IP-VPN routes are exchanged between the PE nodes **EOS7** and **EOS8** via the Route
- Relector.
-
- .. code-block:: text
-
- show bgp vpn-ipv4 summary
- show bgp vpn-ipv4 detail
- show bgp vpn-ipv6 summary
- show bgp vpn-ipv6 detail
-
- #. Finally, validate the forwarding path traffic will take for each destination in the customer VRF on the Service
- Provider network PEs **EOS7** and **EOS8**.
-
- .. code-block:: text
-
- show ip route vrf CUSTOMER-1
- show ipv6 route vrf CUSTOMER-1
- show mpls route
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c4_l3vpn_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c4_l3vpn_lab_guide.rst
deleted file mode 100644
index 3d6d9be45..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/c4_l3vpn_lab_guide.rst
+++ /dev/null
@@ -1,190 +0,0 @@
-Deploy L3VPN Service for Customer-4
-=====================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_c4_l3vpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type or select the option for ``mesh-topology-evpn-labs`` to access the EVPN Labs.
-
- #. Type ``c4l3vpn`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. Customer-4 is attached to two Service Provider nodes, **EOS7** and **EOS8**. These will be our **PE** nodes.
- Since this customer will require a Layer 3 VPN Service, create an isolated VRF for their traffic and use EVPN
- to advertise the customer networks to other interested PEs.
-
- #. Create a VRF Instance called ``CUSTOMER-4`` on **EOS7** and **EOS8**.
-
- .. note::
-
- The steps in this lab will be similar to the Customer-1 L3VPN lab, demonstrating the repeatable nature of
- an EVPN deployment, which can easily be automated with CloudVision once the concepts are understood.
-
- .. code-block:: text
-
- vrf instance CUSTOMER-4
- !
- ip routing vrf CUSTOMER-4
-
- #. Place the interface attached to the **CE** node for Customer-4 into VRF ``CUSTOMER-4`` on **EOS7** to ensure their
- traffic remains isolated.
-
- .. code-block:: text
-
- interface Ethernet4
- vrf CUSTOMER-4
- ip address 10.7.19.7/24
-
- #. Repeat the above step for the interface on **EOS8** attached to Customer-4 CE device.
-
- .. code-block:: text
-
- interface Ethernet5
- vrf CUSTOMER-4
- ip address 10.8.18.8/24
-
- #. Now leverage BGP EVPN to advertise reachability of any routes learned in VRF ``CUSTOMER-4`` from the customer by
- setting an **RD** and an **RT**, within BGP on **EOS7** and **EOS8**. It should have a unique **RD** following the
- format of **** ``:4`` and the **RT** on all routers in the VPN should match as ``4:4``.
-
- **EOS7**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- rd 7.7.7.7:4
- route-target import evpn 4:4
- route-target export evpn 4:4
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- rd 8.8.8.8:4
- route-target import evpn 4:4
- route-target export evpn 4:4
-
- #. Finally, define the BGP peers facing the CE devices for route exchange into the customer VRF on **EOS7** and **EOS8**.
- The CE nodes (**EOS19** and **EOS18**) will use BGP ASN 200.
-
- **EOS7**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- neighbor 10.7.19.19 remote-as 200
- neighbor 10.7.19.19 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.7.19.19 activate
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- neighbor 10.8.18.18 remote-as 123
- neighbor 10.8.18.18 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.8.18.18 activate
-
- #. Verify configurations and VRF status. There will be no routes or BGP peers in our VRF as of yet since we have not
- peered with the CE devices.
-
- .. code-block:: text
-
- show running-config section CUSTOMER-4
- show vrf
-
-#. Now that the PE nodes are configured, configure CE nodes **EOS18** and **EOS19** for Layer 3 attachment to the
- Service Provider network.
-
- #. Configure the BGP peerings to the PE devices on **EOS18** and **EOS19** ensuring that each router's Loopback0
- address is advertised to the attached PE.
-
- .. note::
-
- Since both CE devices are using BGP ASN ``200``, we need to ensure BGP allows the router's own ASN in the
- AS-PATH, which normally is marked as an invalid route, with the ``allowas-in`` option.
-
- **EOS18**
-
- .. code-block:: text
-
- router bgp 200
- router-id 18.18.18.18
- neighbor 10.8.18.8 remote-as 100
- neighbor 10.8.18.8 allowas-in 1
- neighbor 10.8.18.8 maximum-routes 12000
- network 18.18.18.18/32
-
- **EOS19**
-
- .. code-block:: text
-
- router bgp 200
- router-id 19.19.19.19
- neighbor 10.7.19.7 remote-as 100
- neighbor 10.7.19.7 allowas-in 1
- neighbor 10.7.19.7 maximum-routes 12000
- network 19.19.19.19/32
-
-#. With the peerings fully established, verify and test connectivity between the Customer-4 locations.
-
- #. Verify BGP status and route exchange with the Service Provider network on **EOS18**
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp detail
- show ip route
-
- #. Test connectivity from **EOS18** to **EOS19** using Loopback0 IP addressing.
-
- .. code-block:: text
-
- ping 19.19.19.19 source 18.18.18.18
-
-#. From the Service Provider nodes, verify route exchange and MPLS control-plane status.
-
- #. Display the peering status and routes being advertised by **EOS18** on **EOS8**.
-
- .. code-block:: text
-
- show ip bgp summary vrf CUSTOMER-4
- show ip bgp neighbor 10.8.18.18 routes vrf CUSTOMER-4
-
- #. Now validate the EVPN routes are exchanged between the PE nodes **EOS7** and **EOS8** via the Route
- Relector.
-
- .. code-block:: text
-
- show bgp evpn summary
- show bgp evpn route-type ip-prefix ipv4 detail | section 4:4
-
- #. Finally, validate the forwarding path traffic will take for each destination in the customer VRF on the Service
- Provider network PEs **EOS7** and **EOS8**.
-
- .. code-block:: text
-
- show ip route vrf CUSTOMER-4
- show mpls route
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/cent_svcs_ipvpn_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/cent_svcs_ipvpn_lab_guide.rst
deleted file mode 100644
index e12c6b735..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/cent_svcs_ipvpn_lab_guide.rst
+++ /dev/null
@@ -1,305 +0,0 @@
-Offer Centralized Services to L3VPN Customers
-=========================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_cent_svcs_l3vpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``mesh-topology-ipvpn-labs`` to access the LDP and IPVPN Labs.
-
- #. Type ``centsvcs`` at the Labs Selection Menu. The script will configure the topology with the necessary prerequisites.
-
-#. The Centralized Service is attached to Service Provider node **EOS3**. These will be our **PE** node. Since this
- Centralized Service will be accessed via a Layer 3 VPN Service, create an isolated VRF for its traffic and use EVPN
- to advertise the customer networks to other interested PEs.
-
- #. Create a VRF Instance called ``SVC`` on **EOS3**.
-
- .. note::
-
- While this service will be accessed by Customers attached to other PEs, we will leverage IP-VPN to allow for
- inter-VRF communication and only require the ``SVC`` VRF where the node attaches to the Service Provider network.
-
- .. code-block:: text
-
- vrf instance SVC
- !
- ip routing vrf SVC
- !
- ipv6 unicast-routing vrf SVC
-
- #. Place the interface attached to the **CE** node for the Centralized Service into VRF ``SVC`` on **EOS3** to ensure its
- traffic remains isolated.
-
- .. code-block:: text
-
- interface Ethernet6
- vrf SVC
- ip address 10.3.20.3/24
- ipv6 address fd00:3:20::3/64
-
- #. Now leverage IP-VPN to advertise reachability of any routes learned in VRF ``SVC`` from the Centralized Service by
- setting an **RD** and an **RT** within BGP on **EOS3**. It should have a unique **RD** following the format of
- **** ``:5`` and the **RT** on all routers in the VPN should be ``5:5``.
-
- .. note::
-
- Unlike our previous L3VPN setups, for the Centralized Service model, we will only need to ``export`` the routes
- learned in the ``SVC`` VRF with this **RT**. In a later step, we will see how inter-VRF route-leaking can be
- controlled using a separate **RT** for import.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf SVC
- rd 3.3.3.3:5
- route-target export vpn-ipv4 5:5
- route-target export vpn-ipv6 5:5
-
- #. Finally, define the BGP peer facing the Centralized Service node for route exchange into the VRF on **EOS3**. The CE
- node (**EOS20**) will use BGP ASN 500.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf SVC
- neighbor 10.3.20.20 remote-as 500
- neighbor 10.3.20.20 maximum-routes 12000
- neighbor fd00:3:20::20 remote-as 500
- neighbor fd00:3:20::20 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.3.20.20 activate
- !
- address-family ipv6
- neighbor fd00:3:20::20 activate
-
-#. Now that the PE node is configured, configure CE node **EOS20** for Layer 3 attachment to the Service Provider network.
-
- #. Configure the BGP peerings to the PE devices on **EOS20** ensuring that the router's Loopback0 address is advertised
- to the attached PE.
-
- .. code-block:: text
-
- router bgp 500
- router-id 20.20.20.20
- neighbor 10.3.20.3 remote-as 100
- neighbor 10.3.20.3 maximum-routes 12000
- neighbor fd00:3:20::3 remote-as 100
- neighbor fd00:3:20::3 maximum-routes 12000
- !
- address-family ipv4
- network 20.20.20.20/32
- !
- address-family ipv6
- neighbor fd00:3:20::3 activate
- network 20:20:20::20/128
-
- #. Verify the BGP peering is active but that no routes have been learned from the PE.
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp detail
- show ip route
- show ipv6 bgp summary
- show ipv6 bgp detail
- show ipv6 route
-
-#. With the Centralized Service attached to the Service Provider network, configure restricted access to the service IP
- of ``20.20.20.20`` without using ACLs, allowing only **EOS11** and **EOS19** to access the Service.
-
- #. First, define a new **RT** of ``500:500`` that will be used for importing routes from **EOS11** and **EOS19** into the
- ``SVC`` VRF on **EOS3**
-
- .. note::
-
- The PE Nodes attached to Customer-1 and Customer-2 will handle the ``export`` of the routes for **EOS11** and
- **EOS19** with the proper **RT**, so on **EOS3** we only need to worry about importing VPNv4 and v6 routes with
- ``500:500`` into the Centralized Services VRF.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf SVC
- route-target import vpn-ipv4 500:500
- route-target import vpn-ipv6 500:500
-
- #. Now, export the route for ``11.11.11.11/32`` and ``11:11:11::11/128`` from the Customer-1 VRF on PE nodes **EOS1**
- using the **RT** of ``500:500``. To ensure only the route for **EOS11** is exported on the PEs, use a Route-Map and
- Prefix-List to control application of the **RT**.
-
- .. note::
-
- Applying the route-map to the IP-VPN ``export`` statement will allow ``500:500`` to be tagged onto the VPN route
- in addition to the Customer-1 default **RT** of ``1:1``.
-
- .. code-block:: text
-
- ip prefix-list SVC-ACCESS seq 10 permit 11.11.11.11/32
- !
- ipv6 prefix-list SVC-ACCESS
- seq 10 permit 11:11:11::11/128
- !
- route-map EXPORT-TO-SVC permit 10
- match ip address prefix-list SVC-ACCESS
- set extcommunity rt 500:500 additive
- !
- route-map EXPORT-TO-SVC permit 20
- match ipv6 address prefix-list SVC-ACCESS
- set extcommunity rt 500:500 additive
- !
- route-map EXPORT-TO-SVC permit 30
- !
- router bgp 100
- !
- vrf CUSTOMER-1
- route-target export vpn-ipv4 route-map EXPORT-TO-SVC
- route-target export vpn-ipv6 route-map EXPORT-TO-SVC
-
- #. Similarly, on **EOS7**, configure a Route-Map and Prefix-List to export the route for **EOS19**, ``19.19.19.19/32``,
- with the **RT** of ``500:500``.
-
- .. code-block:: text
-
- ip prefix-list SVC-ACCESS seq 20 permit 19.19.19.19/32
- !
- ipv6 prefix-list SVC-ACCESS
- seq 10 permit 19:19:19::19/128
- !
- route-map EXPORT-TO-SVC permit 10
- match ip address prefix-list SVC-ACCESS
- set extcommunity rt 500:500 additive
- !
- route-map EXPORT-TO-SVC permit 20
- match ipv6 address prefix-list SVC-ACCESS
- set extcommunity rt 500:500 additive
- !
- route-map EXPORT-TO-SVC permit 30
- !
- router bgp 100
- !
- vrf CUSTOMER-4
- route-target export vpn-ipv4 route-map EXPORT-TO-SVC
- route-target export vpn-ipv6 route-map EXPORT-TO-SVC
-
- #. Now, allow PE **EOS1** to import the route for the Centralized Service with the **RT** of ``5:5`` into the VRF for
- Customer-1.
-
- .. note::
-
- This will allow the PE to advertise the route for the Centralized Service, ``20.20.20.20/32`` and
- ``20:20:20::20/128``, to the attached CE node.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- route-target import vpn-ipv4 5:5
- route-target import vpn-ipv6 5:5
-
- #. Finally, repeat the above step on **EOS7** to import the Centralized Service route into the VRF for Customer-4.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- route-target import vpn-ipv4 5:5
- route-target import vpn-ipv6 5:5
-
-#. With the necessary inter-VRF route leaking configuration in place, validate the **EOS11** and **EOS19** can reach the
- Centralized Service while other CE nodes for the Customers cannot.
-
- #. View the routing tables of **EOS11** and **EOS19** to ensure the route for the Centralized Service, ``20.20.20.20/32``
- and ``20:20:20::20/128`` is present.
-
- .. code-block:: text
-
- show ip route 20.20.20.20
- show ipv6 route 20:20:20::20
-
- #. Verify connectivity from **EOS11** and **EOS19** to the Centralized Service at ``20.20.20.20`` from each router's
- Loopback0 IP.
-
- .. note::
-
- As mentioned earlier, MPLS forwarding for IPv6 overlay traffic does not working in vEOS-lab. The control-plane can
- still be validated for IPv6.
-
- **EOS11**
-
- .. code-block:: text
-
- ping 20.20.20.20 source 11.11.11.11
-
- **EOS19**
-
- .. code-block:: text
-
- ping 20.20.20.20 source 19.19.19.19
-
- #. Display the routing table of **EOS20** to ensure only the routes for the allowed Customer nodes are present.
-
- .. note::
-
- Only routes for the Loopback0 interfaces of **EOS11** and **EOS19** should be learned from the Service Provider
- network.
-
- .. code-block:: text
-
- show ip route bgp
- show ipv6 route bgp
-
- #. Confirm that other Customer-1 and Customer-2 nodes cannot access the Centralized Service.
-
- .. note::
-
- **EOS12** and **EOS13** will have the route for the Centralized Service due to redistribution of BGP into OSPF, but
- since the Centralized Service does not have a return route, no connections can be completed. Other customer nodes
- will not have the route at all.
-
- .. code-block:: text
-
- show ip route bgp
- show ipv6 route bgp
- ping 20.20.20.20 source ****
-
-#. On the Service Provider network, verify that the Centralized Service routes and approved Customer node routes are being
- exchanged with the proper IP-VPN and MPLS information.
-
- #. On **EOS3**, verify the incoming routes for forwarding path for **EOS11** and **EOS19** from the ``SVC`` VRF.
-
- .. note::
-
- The VPN routes have two RTs attached to them; one from the standard L3VPN export and one from the Route-Map to
- ensure it is imported properly into the ``SVC`` VRF. Since the Route-Map has the ``additive`` keyword, it will allow
- both to be present and not overwrite.
-
- .. code-block:: text
-
- show bgp vpn-ipv4 detail | section 500:500
- show bgp vpn-ipv6 detail | section 500:500
- show ip route vrf SVC
- show ipv6 route vrf SVC
-
- #. On **EOS1**, verify the incoming routes for forwarding path for **EOS20** from the ``CUSTOMER-1`` VRF.
-
- .. code-block:: text
-
- show bgp vpn-ipv4 detail | section 5:5
- show bgp vpn-ipv6 detail | section 5:5
- show ip route vrf CUSTOMER-1
- show ipv6 route vrf CUSTOMER-1
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/cent_svcs_l3vpn_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/cent_svcs_l3vpn_lab_guide.rst
deleted file mode 100644
index 8a7acc00e..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/cent_svcs_l3vpn_lab_guide.rst
+++ /dev/null
@@ -1,259 +0,0 @@
-Offer Centralized Services to L3VPN Customers
-=========================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_cent_svcs_l3vpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type or select the option for ``mesh-topology-evpn-labs`` to access the EVPN Labs.
-
- #. Type ``centsvc`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. The Centralized Service is attached to Service Provider node **EOS3**. These will be our **PE** node. Since this
- Centralized Service will be accessed via a Layer 3 VPN Service, create an isolated VRF for its traffic and use EVPN
- to advertise the customer networks to other interested PEs.
-
- #. Create a VRF Instance called ``SVC`` on **EOS3**.
-
- .. note::
-
- While this service will be accessed by Customers attached to other PEs, we will leverage EVPN to allow for
- inter-VRF communication and only require the ``SVC`` VRF where the node attaches to the Service Provider network.
-
- .. code-block:: text
-
- vrf instance SVC
- !
- ip routing vrf SVC
-
- #. Place the interface attached to the **CE** node for the Centralized Service into VRF ``SVC`` on **EOS3** to ensure its
- traffic remains isolated.
-
- .. code-block:: text
-
- interface Ethernet6
- vrf SVC
- ip address 10.3.20.3/24
-
- #. Now leverage BGP EVPN to advertise reachability of any routes learned in VRF ``SVC`` from the Centralized Service by
- setting an **RD** and an **RT** within BGP on **EOS3**. It should have a unique **RD** following the format of
- **** ``:5`` and the **RT** on all routers in the VPN should be ``5:5``.
-
- .. note::
-
- Unlike our previous L3VPN setups, for the Centralized Service model, we will only need to ``export`` the routes
- learned in the ``SVC`` VRF with this **RT**. In a later step, we will see how inter-VRF route-leaking can be
- controlled using a separate **RT** for import.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf SVC
- rd 3.3.3.3:5
- route-target export evpn 5:5
-
- #. Finally, define the BGP peer facing the Centralized Service node for route exchange into the VRF on **EOS3**. The CE
- node (**EOS20**) will use BGP ASN 500.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf SVC
- neighbor 10.3.20.20 remote-as 500
- neighbor 10.3.20.20 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.3.20.20 activate
-
-#. Now that the PE node is configured, configure CE node **EOS20** for Layer 3 attachment to the Service Provider network.
-
- #. Configure the BGP peerings to the PE devices on **EOS20** ensuring that the router's Loopback0 address is advertised
- to the attached PE.
-
- .. code-block:: text
-
- router bgp 500
- router-id 20.20.20.20
- neighbor 10.3.20.3 remote-as 100
- neighbor 10.3.20.3 maximum-routes 12000
- network 20.20.20.20/32
-
- #. Verify the BGP peering is active but that no routes have been learned from the PE.
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp detail
- show ip route
-
-#. With the Centralized Service attached to the Service Provider network, configure restricted access to the service IP
- of ``20.20.20.20`` without using ACLs, allowing only **EOS12** and **EOS19** to access the Service.
-
- #. First, define a new **RT** of ``500:500`` that will be used for importing routes from **EOS12** and **EOS19** into the
- ``SVC`` VRF on **EOS3**
-
- .. note::
-
- The PE Nodes attached to Customer-1 and Customer-2 will handle the ``export`` of the routes for **EOS12** and
- **EOS19** with the proper **RT**, so on **EOS3** we only need to worry about importing EVPN Type-5 routes with
- ``500:500`` into the Centralized Services VRF.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf SVC
- route-target import evpn 500:500
-
- #. Now, export the route for ``12.12.12.12/32`` from the Customer-1 VRF on PE nodes **EOS1** and **EOS6** using the
- **RT** of ``500:500``. To ensure only the route for **EOS12** is exported on the PEs, use a Route-Map and Prefix-List
- to control application of the **RT**.
-
- .. note::
-
- Applying the route-map to the EVPN ``export`` statement will allow ``500:500`` to be tagged onto the EVPN Type-5
- route in addition to the Customer-1 default **RT** of ``1:1``.
-
- .. code-block:: text
-
- ip prefix-list SVC-ACCESS seq 10 permit 12.12.12.12/32
- !
- route-map EXPORT-TO-SVC permit 10
- match ip address prefix-list SVC-ACCESS
- set extcommunity rt 500:500 additive
- !
- route-map EXPORT-TO-SVC permit 20
- !
- router bgp 100
- !
- vrf CUSTOMER-1
- route-target export evpn route-map EXPORT-TO-SVC
-
- #. Similarly, on **EOS7**, configure a Route-Map and Prefix-List to export the route for **EOS19**, ``19.19.19.19/32``,
- with the **RT** of ``500:500``.
-
- .. code-block:: text
-
- ip prefix-list SVC-ACCESS seq 10 permit 19.19.19.19/32
- !
- route-map EXPORT-TO-SVC permit 10
- match ip address prefix-list SVC-ACCESS
- set extcommunity rt 500:500 additive
- !
- route-map EXPORT-TO-SVC permit 20
- !
- router bgp 100
- !
- vrf CUSTOMER-4
- route-target export evpn route-map EXPORT-TO-SVC
-
- #. Now, allow PEs **EOS1** and **EOS6** to import the route for the Centralized Service with the **RT** of ``5:5`` into
- the VRF for Customer-1.
-
- .. note::
-
- This will allow the PEs to advertise the route for the Centralized Service, ``20.20.20.20/32``, to the attached CE
- nodes.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- route-target import evpn 5:5
-
- #. Finally, repeat the above step on **EOS7** to import the Centralized Service route into the VRF for Customer-4.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- route-target import evpn 5:5
-
-#. With the necessary inter-VRF route leaking configuration in place, validate the **EOS12** and **EOS19** can reach the
- Centralized Service while other CE nodes for the Customers cannot.
-
- #. View the routing tables of **EOS12** and **EOS19** to ensure the route for the Centralized Service, ``20.20.20.20/32``
- is present.
-
- .. note::
-
- **EOS19** will receive the route directly via the BGP peering to the adjacent PE node. **EOS12** will have the route
- received via OSPF where it was redistributed by the Customer-1 CE nodes **EOS11** and **EOS13**.
-
- .. code-block:: text
-
- show ip route 20.20.20.20
-
- #. Verify connectivity from **EOS12** and **EOS19** to the Centralized Service at ``20.20.20.20`` from each router's
- Loopback0 IP.
-
- **EOS12**
-
- .. code-block:: text
-
- ping 20.20.20.20 source 12.12.12.12
-
- **EOS19**
-
- .. code-block:: text
-
- ping 20.20.20.20 source 19.19.19.19
-
- #. Display the routing table of **EOS20** to ensure only the routes for the allowed Customer nodes are present.
-
- .. note::
-
- Only routes for the Loopback0 interfaces of **EOS12** and **EOS19** should be learned from the Service Provider
- network.
-
- .. code-block:: text
-
- show ip route bgp
-
- #. Confirm that other Customer-1 and Customer-2 nodes cannot access the Centralized Service.
-
- .. note::
-
- **EOS11** and **EOS13** will have the route for the Centralized Service, but since the Centralized Service does not
- have a return route, no connections can be completed. Other customer nodes will not have the route at all.
-
- .. code-block:: text
-
- show ip route bgp
- ping 20.20.20.20 source ****
-
-#. On the Service Provider network, verify that the Centralized Service routes and approved Customer node routes are being
- exchanged with the proper EVPN and MPLS information.
-
- #. On **EOS3**, verify the incoming routes for forwarding path for **EOS12** and **EOS19** from the ``SVC`` VRF.
-
- .. note::
-
- The EVPN routes have two RTs attached to them; one from the standard L3VPN export and one from the Route-Map to
- ensure it is imported properly into the ``SVC`` VRF. Since the Route-Map has the ``additive`` keyword, it will allow
- both to be present and not overwrite.
-
- .. code-block:: text
-
- show bgp evpn route-type ip-prefix ipv4 detail | section 500:500
- show ip route vrf SVC
-
- #. On **EOS6**, verify the incoming routes for forwarding path for **EOS20** from the ``CUSTOMER-1`` VRF.
-
- .. code-block:: text
-
- show bgp evpn route-type ip-prefix ipv4 detail | section 5:5
- show ip route vrf CUSTOMER-1
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/evpn_setup_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/evpn_setup_lab_guide.rst
deleted file mode 100644
index 1abf7c635..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/evpn_setup_lab_guide.rst
+++ /dev/null
@@ -1,161 +0,0 @@
-Prepare to Offer VPN Services to Customers via MP-BGP EVPN Control-Plane
-==================================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_evpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type or select the option for ``mesh-topology-evpn-labs`` to access the EVPN Labs.
-
- #. Type ``evpn`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. We will now leverage BGP as the control-plane for our VPNs in the Service Provider network.
- Specifically, we will use iBGP with a Route Reflector to ease the configuration load and
- not require us to setup a full mesh of BGP peerings. Configure **EOS5** as the Route Reflector
- in the Service Provider Network.
-
- #. On **EOS5**, enable BGP with ASN 100. Also set a router-id and disable the IPv4
- Unicast Address-Family within BGP.
-
- .. note::
-
- By default, all BGP neighbors in EOS will try to peer in the IPv4 Unicast AF. Since
- we are only leveraging BGP for VPNs and IS-IS is providing our IPv4 underlay, there is
- no need for this additional overhead. We can change the default state of BGP to **not**
- attempt to peer using the IPv4 Unicast AF.
-
- .. code-block:: text
-
- router bgp 100
- router-id 5.5.5.5
- no bgp default ipv4-unicast
-
- #. Allow BGP to utilize ECMP when available by increasing the Maximum Paths allowed for a route.
-
- .. note::
-
- By default, BGP will only install a single best-path. In a network with multiple equal paths
- available, this setting will allow BGP to load balance across the available paths. This is
- covered further in a later lab.
-
- .. code-block:: text
-
- router bgp 100
- maximum-paths 2
-
- #. Activate the EVPN address-family within BGP and set the data-plane encapsulation type
- to MPLS.
-
- .. note::
-
- EVPN will provide a signaling mechanism for all our L2, L3 and wire services in the
- Service Provider network. By default, EOS will leverage VXLAN as a data-plane encapsulation
- for EVPN. We can again change the default behavior according to our desired architecture.
-
- .. code-block:: text
-
- router bgp 100
- !
- address-family evpn
- neighbor default encapsulation mpls
-
- #. To simplify BGP configuration, create a **peer group** to apply common BGP attributes
- to the other EOS nodes in the Service Provider network that will act as Route Reflector
- Clients. We will peer using iBGP as mentioned and use the router Loopback0 interfaces
- as the source. Ensure that standard and extended BGP communities and the EVPN address-family
- are enabled for this peer-group as well.
-
- .. note::
-
- In EOS, the ``send-community`` command alone will send all communities. You can selectively
- enable them if you would prefer to send only extended. EVPN requires the use of extended communities. Also
- note that EOS by default includes a ``maximum-routes`` setting of 12,000 for all BGP peers to prevent
- a peer from sending more routes than expected. This value can be changed per network requirements.
-
- .. code-block:: text
-
- router bgp 100
- neighbor PE-RRCLIENTS peer group
- neighbor PE-RRCLIENTS remote-as 100
- neighbor PE-RRCLIENTS update-source Loopback0
- neighbor PE-RRCLIENTS route-reflector-client
- neighbor PE-RRCLIENTS send-community
- neighbor PE-RRCLIENTS maximum-routes 12000
- !
- address-family evpn
- neighbor PE-RRCLIENTS activate
-
- #. Finally, apply the peer group to the necessary routers in the Service Provider network.
-
- .. note::
-
- Since BGP EVPN is only providing our VPN control-plane, only Provider Edge (or **PE**) nodes, which are nodes
- attached to customer devices, will require the BGP peering. This is in contrast to Provider (or **P**) nodes,
- which only connect to other Service Provider nodes. In this topology **EOS2** is not a PE but a P router and as
- such will not have any BGP configuration. It only needs to know about the MPLS transport labels to label switch
- from one node to the other and will not terminate any customer VPNs.
-
- .. code-block:: text
-
- router bgp 100
- neighbor 1.1.1.1 peer group PE-RRCLIENTS
- neighbor 3.3.3.3 peer group PE-RRCLIENTS
- neighbor 4.4.4.4 peer group PE-RRCLIENTS
- neighbor 6.6.6.6 peer group PE-RRCLIENTS
- neighbor 7.7.7.7 peer group PE-RRCLIENTS
- neighbor 8.8.8.8 peer group PE-RRCLIENTS
-
- #. Verify configuration on **EOS5**. Since the other routers are not yet configured, there will
- be no peerings to check as of yet.
-
- .. code-block:: text
-
- show run section bgp
-
-#. Now configure the PE nodes in the Service Provider network as the Route Reflector clients.
-
- #. Again, this will be iBGP and the peerings will look very similar to the setup on **EOS5**.
- However, we will not need to leverage a peer group as all PE nodes will only peer with the
- route-reflector. The below example is for **EOS1**. Repeat this for all other Service Provider
- nodes with the **exception** of **EOS2**, changing the router-id to match Loopback0.
-
- .. note::
-
- On PE nodes, you will see a slightly different EVPN configuration when enabling MPLS as the
- data-plane. Since these routers are originating VPNs, we want to ensure they set themselves
- as the next-hop in BGP when advertising them.
-
- .. code-block:: text
-
- router bgp 100
- router-id 1.1.1.1
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor 5.5.5.5 remote-as 100
- neighbor 5.5.5.5 update-source Loopback0
- neighbor 5.5.5.5 send-community
- neighbor 5.5.5.5 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 5.5.5.5 activate
-
-#. Once all other PE nodes are configured, verify BGP peerings are in place.
-
- #. All PE nodes will only have one BGP peer, while the **EOS5** as the route-reflector will
- peer with all other PE nodes. You will see the peerings as ``Established`` but no routes
- should be exchanged as no VPNs are configured. Also note that the standard ``show ip bgp
- summary`` command should have no output since the IPv4 unicast AF is not activated.
-
- .. code-block:: text
-
- show bgp evpn summary
- show bgp neighbors
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/ipvpn_setup_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/ipvpn_setup_lab_guide.rst
deleted file mode 100644
index e7ccda295..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/ipvpn_setup_lab_guide.rst
+++ /dev/null
@@ -1,143 +0,0 @@
-Prepare to Offer VPN Services to Customers via MP-BGP IP-VPN Control-Plane
-==================================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_ipvpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``mesh-topology-ipvpn-labs`` to access the LDP and IPVPN Labs.
-
- #. Type ``ipvpn`` at the Labs Selection Menu. The script will configure the topology with the necessary prerequisites.
-
-#. We will now leverage BGP as the control-plane for our VPNs in the Service Provider network. Specifically, we will use
- iBGP with a Route Reflector to ease the configuration load and not require us to setup a full mesh of BGP peerings.
- Configure **EOS5** as the Route Reflector in the Service Provider Network.
-
- #. On **EOS5**, enable BGP with ASN 100. Also set a router-id and disable the IPv4
- Unicast Address-Family within BGP.
-
- .. note::
-
- By default, all BGP neighbors in EOS will try to peer in the IPv4 Unicast AF. Since we are only leveraging BGP
- for VPNs and IS-IS is providing our IPv4 underlay, there is no need for this additional overhead. We can change
- the default state of BGP to **not** attempt to peer using the IPv4 Unicast AF.
-
- .. code-block:: text
-
- router bgp 100
- router-id 5.5.5.5
- no bgp default ipv4-unicast
-
- #. Allow BGP to utilize ECMP when available by increasing the Maximum Paths allowed for a route.
-
- .. note::
-
- By default, BGP will only install a single best-path. In a network with multiple equal paths available, this
- setting will allow BGP to load balance across the available paths. This is covered further in a later lab.
-
- .. code-block:: text
-
- router bgp 100
- maximum-paths 2
-
- #. To simplify BGP configuration, create a **peer group** to apply common BGP attributes to the other EOS nodes in the
- Service Provider network that will act as Route Reflector Clients. We will peer using iBGP as mentioned and use the
- router Loopback0 interfaces as the source. Ensure that standard and extended BGP communities and the IP-VPN
- address-families are enabled for this peer-group as well.
-
- .. note::
-
- In EOS, the ``send-community`` command alone will send all communities. You can selectively enable them if you
- would prefer to send only extended. Also note that EOS by default includes a ``maximum-routes`` setting of 12,000
- for all BGP peers to prevent a peer from sending more routes than expected. This value can be changed per network
- requirements.
-
- .. code-block:: text
-
- router bgp 100
- neighbor PE-RRCLIENTS peer group
- neighbor PE-RRCLIENTS remote-as 100
- neighbor PE-RRCLIENTS update-source Loopback0
- neighbor PE-RRCLIENTS route-reflector-client
- neighbor PE-RRCLIENTS send-community
- neighbor PE-RRCLIENTS maximum-routes 12000
- !
- address-family vpn-ipv4
- neighbor PE-RRCLIENTS activate
- !
- address-family vpn-ipv6
- neighbor PE-RRCLIENTS activate
-
- #. Finally, apply the peer group to the necessary routers in the Service Provider network.
-
- .. note::
-
- Since BGP is only providing our VPN control-plane, only PE nodes attached to customer devices will require the BGP
- peering. In this topology **EOS2** is not a PE but a P router and as such will not have any BGP configuration.
-
- .. code-block:: text
-
- router bgp 100
- neighbor 1.1.1.1 peer group PE-RRCLIENTS
- neighbor 3.3.3.3 peer group PE-RRCLIENTS
- neighbor 4.4.4.4 peer group PE-RRCLIENTS
- neighbor 6.6.6.6 peer group PE-RRCLIENTS
- neighbor 7.7.7.7 peer group PE-RRCLIENTS
- neighbor 8.8.8.8 peer group PE-RRCLIENTS
-
- #. Verify configuration on **EOS5**. Since the other routers are not yet configured, there will be no peerings to check
- as of yet.
-
- .. code-block:: text
-
- show run section bgp
-
-#. Now configure the PE nodes in the Service Provider network as the Route Reflector clients.
-
- #. Again, this will be iBGP and the peerings will look very similar to the setup on **EOS5**. However, we will not need
- to leverage a peer group as all PE nodes will only peer with the route-reflector. The below example is for **EOS1**.
- Repeat this for all other Service Provider nodes with the **exception** of **EOS2**, changing the router-id to match
- Loopback0.
-
- .. note::
-
- On PE nodes, you will see a slightly different AF configuration where we enable MPLS as the data-plane. Since these
- routers are originating VPNs, we want to ensure they set themselves as the next-hop in BGP when advertising them.
-
- .. code-block:: text
-
- router bgp 100
- router-id 1.1.1.1
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor 5.5.5.5 remote-as 100
- neighbor 5.5.5.5 update-source Loopback0
- neighbor 5.5.5.5 send-community
- neighbor 5.5.5.5 maximum-routes 12000
- !
- address-family vpn-ipv4
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 5.5.5.5 activate
- !
- address-family vpn-ipv6
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 5.5.5.5 activate
-
-#. Once all other PE nodes are configured, verify BGP peerings are in place.
-
- #. All PE nodes will only have one BGP peer, while the **EOS5** as the route-reflector will peer with all other PE nodes.
- You will see the peerings as ``Established`` but no routes should be exchanged as no VPNs are configured. Also note
- that the standard ``show ip bgp summary`` command should have no output since the IPv4 unicast AF is not activated.
-
- .. code-block:: text
-
- show bgp vpn-ipv4 summary
- show bgp vpn-ipv6 summary
- show bgp neighbors
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/isis_underlay_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/isis_underlay_lab_guide.rst
deleted file mode 100644
index 87a5502f2..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/isis_underlay_lab_guide.rst
+++ /dev/null
@@ -1,190 +0,0 @@
-Deploy IS-IS as the Service Provider Underlay IGP
-==========================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_isis_sr.png
- :align: center
-
-.. note::
- The Base Labs of the Routing ATD are structured to build on each other. You should complete
- all Base Labs before moving onto Supplemental Labs. Alternatively, using the Lab Selection
- Menus will complete configurations for prior labs as necessary. Supplemental Labs can be
- completed in any order.
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type or select the option for ``mesh-topology-evpn-labs`` to access the EVPN Labs.
-
- #. Type ``reset`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
- .. admonition:: Did you know?
-
- The ``reset`` option (and all other options) makes use of CloudVision Portal APIs
- to apply "configlets" to each EOS node ensuring they have the proper configuration.
-
-#. Prior to configuration, verify the topology's base status.
-
- #. On **EOS1**, verify interface configurations and neighbors.
-
- .. note::
-
- Full commands will be typed for reference in lab steps, but commands in EOS can be
- shortened or tab-completed at the user's discretion.
-
- .. code-block:: text
-
- show ip interface brief
- show run interfaces Ethernet1-5
- show lldp neighbors
-
- #. Verify there is **no** routing protocol configuration or neighbors present as of yet.
-
- .. code-block:: text
-
- show run section isis
- show run section bgp
- show isis neighbors
- show ip bgp summary
-
-#. Configure the IS-IS routing protocol on the **EOS1** router using the following steps.
-
- #. Enable IS-IS with an instance ID of ``100`` and define a **NET** or Network Entity Title. For the
- NET, use the format of ``49.1111.0000.000`` **(EOS ID)** ``.00`` where ``1111`` is the IS-IS area
- ID and ``0000.000`` **(EOS ID)** is the System ID.
-
- .. note::
-
- Arista EOS utilizes the Industry-Standard CLI. When entering configuration commands, be
- sure to first type ``configure`` to enter configuration mode.
-
- .. code-block:: text
-
- router isis 100
- net 49.1111.0000.0001.00
-
- #. Set the IS-IS level to level-2 and activate the IPv4 unicast address-family to ensure the
- router will hold all backbone IPv4 routes.
-
- .. note::
-
- Our topology will maintain only IS-IS level-2 adjacenies. This will give us a single backbone
- area where all routes will be learned by all routers (similar to an OSPF topology where all
- routers are in area 0). This is sufficient for smaller topologies where there isn't a need to
- segment flooding domains.
-
- .. code-block:: text
-
- router isis 100
- is-type level-2
- !
- address-family ipv4 unicast
-
- #. To shrink the overall size of the LSDB and routing table, we will only advertise Loopback /32 networks
- to other EOS routers and not individual link addressing. This is accomplished by only advertising
- passive IS-IS interfaces and networks.
-
- .. code-block:: text
-
- router isis 100
- advertise passive-only
-
- #. Verify protocol configuration thus far.
-
- .. admonition:: Pro-Tip
-
- You do **not** need to ``exit`` configuration mode to execute show commands in EOS.
-
- .. code-block:: text
-
- show run section isis
-
-#. Configure IS-IS interfaces on **EOS1**.
-
- #. All links connecting to other SP routers (EOS1 through EOS8) will form IS-IS adjacenies. Configure
- the link between **EOS1** and **EOS2** as an IS-IS interface.
-
- .. code-block:: text
-
- interface Ethernet1
- isis enable 100
-
- #. Additionally, since this is point to point link to a level-2 router, we will define those characteristics
- to ensure proper peering and bypass unnecessary DIS elections.
-
- .. code-block:: text
-
- interface Ethernet1
- isis circuit-type level-2
- isis network point-to-point
-
- #. Repeat the above configurations for the other interfaces on **EOS1** that are attached to adjacent
- SP nodes. Refer to the diagram above and LLDP neighbor information for interfaces requiring configuration.
-
- .. admonition:: Pro-Tip
-
- You can configure multiple interfaces at once using ranges and separators in EOS. For example, **EOS1**
- interfaces Et2, 4 and 5 require IS-IS configuration, but the commands are the same for all interfaces.
- You can type ``interface Ethernet2,4-5`` to enter configurations for all three at once.
-
- #. Next, the Loopback0 interface needs to be activated as an IS-IS interface.
-
- .. code-block:: text
-
- interface Loopback0
- isis enable 100
-
- #. Lastly, since Loopback0 is not attached to another router, we can set it as a passive interface for IS-IS
- to ensure proper operation.
-
- .. code-block:: text
-
- interface Loopback0
- isis passive
-
- .. note::
-
- In addtion, this command works in conjunction with the ``advertise passive-only`` command in our IS-IS
- protocol configuration. It ensures only our passive (i.e. Loopback0) interfaces will be advertised.
-
-#. Since no other routers have been configured, there are no peers as of yet. Configure **EOS2** using the same
- steps above.
-
- .. note::
-
- Each EOS node requires a unique NET. Following the format described above, **EOS2** will have a NET
- of ``49.1111.0000.0002.00`` under the IS-IS configuration. In addtion, interfaces Et1 through 5 are all
- attached to SP routers so will require IS-IS configuration.
-
-#. With both **EOS1** and **EOS2** configured, verify IS-IS peering and route advertisement.
-
- #. Verify IS-IS adjacency and LSDB.
-
- .. code-block:: text
-
- show isis neighbors
- show isis interface
- show isis database detail
-
- .. note::
-
- IS-IS will automatically convert system IDs to configured hostnames to make show outputs easier to interpret.
-
- #. Verify routing table only show IS-IS routes for the associated Loopback0 /32 networks.
-
- .. code-block:: text
-
- show ip route
-
- #. Test reachability between Loopback0 interfaces from **EOS1** to **EOS2**.
-
- .. code-block:: text
-
- ping 2.2.2.2 source 1.1.1.1
-
-#. Configure the remaining Service Provider nodes (**EOS3 - EOS8**) for IS-IS using the steps above. Verify routing tables
- only show advertised Loopback0 interfaces for all nodes.
-
-
-**LAB COMPLETE!**
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/isisv6_underlay_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/isisv6_underlay_lab_guide.rst
deleted file mode 100644
index 1225d6458..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/isisv6_underlay_lab_guide.rst
+++ /dev/null
@@ -1,241 +0,0 @@
-Deploy IS-IS as the Service Provider Underlay IGP
-==========================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_isis_ldp.png
- :align: center
-
-.. note::
- The LDP and IP-VPN Labs of the Routing ATD are structured to build on each other. You should complete
- all labs before moving onto the next. Alternatively, using the Lab Selection
- Menus will complete configurations for prior labs as necessary.
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``mesh-topology-ipvpn-labs`` to access the LDP and IPVPN Labs.
-
- #. Type ``reset`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
- .. admonition:: Did you know?
-
- The ``reset`` option (and all other options) makes use of CloudVision Portal APIs
- to apply "configlets" to each EOS node ensuring they have the proper configuration.
-
-#. Prior to configuration, verify the topology's base status.
-
- #. On **EOS1**, verify interface configurations and neighbors.
-
- .. note::
-
- Full commands will be typed for reference in lab steps, but commands in EOS can be
- shortened or tab-completed at the user's discretion.
-
- .. code-block:: text
-
- show ip interface brief
- show ipv6 interface brief
- show run interfaces Ethernet1-5
- show lldp neighbors
-
- #. Verify there is **no** routing protocol configuration or neighbors present as of yet.
-
- .. code-block:: text
-
- show run section isis
- show run section bgp
- show isis neighbors
- show ip bgp summary
-
-#. Configure the IS-IS routing protocol on the **EOS1** router using the following steps.
-
- #. Enable IS-IS with an instance ID of ``100`` and define a **NET** or Network Entity Title. For the
- NET, use the format of ``49.1111.0000.000`` **(EOS ID)** ``.00`` where ``1111`` is the IS-IS area
- ID and ``0000.000`` **(EOS ID)** is the System ID.
-
- .. note::
-
- Arista EOS utilizes the Industry-Standard CLI. When entering configuration commands, be
- sure to first type ``configure`` to enter configuration mode.
-
- .. code-block:: text
-
- router isis 100
- net 49.1111.0000.0001.00
-
- #. Set the IS-IS level to level-2 and activate the IPv4 and IPv6 unicast address-families to ensure the
- router will hold all backbone IPv4 and IPv6 routes.
-
- .. code-block:: text
-
- router isis 100
- is-type level-2
- !
- address-family ipv4 unicast
- !
- address-family ipv6 unicast
-
- #. To shrink the overall size of the LSDB and routing table, we will only advertise Loopback /32 networks
- to other EOS routers and not individual link addressing. This is accomplished by only advertising
- passive IS-IS interfaces and networks.
-
- .. code-block:: text
-
- router isis 100
- advertise passive-only
-
- #. Enable BFD in the IPv4 and IPv6 address-families for detection of faults in neighbor communication.
-
- .. code-block:: text
-
- router isis 100
- !
- address-family ipv4 unicast
- bfd all-interfaces
- !
- address-family ipv6 unicast
- bfd all-interfaces
-
- #. Enable IPv6 Multi-Topology for IS-IS to ensure each address-family has the ability to maintain a discrete
- view of the network.
-
- .. code-block:: text
-
- router isis 100
- !
- address-family ipv6 unicast
- multi-topology
-
- #. Adjust SPF and LSP timers for customization of protocol behavior within IS-IS.
-
- .. note::
-
- The timer values here are just examples. Since the lab environment is virtualized in the cloud, performance
- can be unpredictable if the timer values are set too aggressively in the virtual lab.
-
- .. code-block:: text
-
- router isis 100
- spf-interval 5 1000 2000
- timers lsp generation 5 1000 2000
-
- #. Enable Dynamic Flooding for IS-IS so a discrete restricted flooded topology is calculated for LSP flooding
- to reduce load on each router's control-plane.
-
- .. note::
-
- Dynamic flooding is most beneficial in highly redundant topologies with many adjacencies.
-
- .. code-block:: text
-
- router isis 100
- lsp flooding dynamic level-2
-
- #. Finally, ensure IS-IS explicitly logs all neighbor state changes.
-
- .. code-block:: text
-
- router isis 100
- log-adjacency-changes
-
- #. Verify protocol configuration thus far.
-
- .. admonition:: Pro-Tip
-
- You do **not** need to ``exit`` configuration mode to execute show commands in EOS.
-
- .. code-block:: text
-
- show run section isis
-
-#. Configure IS-IS interfaces on **EOS1**.
-
- #. All links connecting to other SP routers (EOS1 through EOS8) will form IS-IS adjacenies. Configure
- the link between **EOS1** and **EOS2** as an IS-IS interface.
-
- .. code-block:: text
-
- interface Ethernet1
- isis enable 100
-
- #. Additionally, since this is point to point link to a level-2 router, we will define those characteristics
- to ensure proper peering and bypass unnecessary DIS elections.
-
- .. code-block:: text
-
- interface Ethernet1
- isis circuit-type level-2
- isis network point-to-point
-
- #. Repeat the above configurations for the other interfaces on **EOS1** that are attached to adjacent
- SP nodes. Refer to the diagram above and LLDP neighbor information for interfaces requiring configuration.
-
- .. admonition:: Pro-Tip
-
- You can configure multiple interfaces at once using ranges and separators in EOS. For example, **EOS1**
- interfaces Et2, 4 and 5 require IS-IS configuration, but the commands are the same for all interfaces.
- You can type ``interface Ethernet2,4-5`` to enter configurations for all three at once.
-
- #. Next, the Loopback0 interface needs to be activated as an IS-IS interface.
-
- .. code-block:: text
-
- interface Loopback0
- isis enable 100
-
- #. Lastly, since Loopback0 is not attached to another router, we can set it as a passive interface for IS-IS
- to ensure proper operation.
-
- .. code-block:: text
-
- interface Loopback0
- isis passive
-
- .. note::
-
- In addtion, this command works in conjunction with the ``advertise passive-only`` command in our IS-IS
- protocol configuration. It ensures only our passive (i.e. Loopback0) interfaces will be advertised.
-
-#. Since no other routers have been configured, there are no peers as of yet. Configure **EOS2** using the same
- steps above.
-
- .. note::
-
- Each EOS node requires a unique NET. Following the format described above, **EOS2** will have a NET
- of ``49.1111.0000.0002.00`` under the IS-IS configuration. In addtion, interfaces Et1 through 5 are all
- attached to SP routers so will require IS-IS configuration.
-
-#. With both **EOS1** and **EOS2** configured, verify IS-IS peering and route advertisement.
-
- #. Verify IS-IS adjacency and LSDB.
-
- .. code-block:: text
-
- show isis neighbors
- show isis interface
- show isis database detail
- show isis dynamic flooding topology
-
- .. note::
-
- IS-IS will automatically convert system IDs to configured hostnames to make show outputs easier to interpret.
-
- #. Verify routing table only show IS-IS routes for the associated Loopback0 /32 networks.
-
- .. code-block:: text
-
- show ip route
-
- #. Test reachability between Loopback0 interfaces from **EOS1** to **EOS2**.
-
- .. code-block:: text
-
- ping 2.2.2.2 source 1.1.1.1
- ping ipv6 2:2:2::2 source 1:1:1::1
-
-#. Configure the remaining Service Provider nodes (**EOS3 - EOS8**) for IS-IS using the steps above. Verify routing tables
- only show advertised Loopback0 interfaces for all nodes.
-
-
-**LAB COMPLETE!**
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/ldp_transport_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/ldp_transport_lab_guide.rst
deleted file mode 100644
index b5a7b4a16..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/ldp_transport_lab_guide.rst
+++ /dev/null
@@ -1,175 +0,0 @@
-Establish MPLS Transport Label Distribution via LDP
-==================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_isis_ldp.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``mesh-topology-ipvpn-labs`` to access the LDP and IPVPN Labs.
-
- #. Type ``ldp`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. With IS-IS in place as the IGP for Loopback reachability, enable LDP for MPLS Label Distribution on **EOS1**.
-
- #. First, we must enable MPLS forwarding on the router.
-
- .. code-block:: text
-
- mpls ip
-
- #. Enable the Label Distribution Protocol for MPLS.
-
- .. code-block:: text
-
- mpls ldp
- no shutdown
-
- #. Set Loopback0 as the interface for transport and Router-ID functions.
-
- .. code-block:: text
-
- mpls ldp
- router-id interface Loopback0
- transport-address interface Loopback0
-
- #. Disable LDP globally on the router interfaces then selectively enable on Service Provider facing interfaces and the
- Loopback0 interface for transport.
-
- .. note::
-
- By default when LDP is enabled, EOS will attempt peering on all interfaces.
-
- .. code-block:: text
-
- interface Ethernet1
- mpls ldp interface
- !
- interface Ethernet2
- mpls ldp interface
- !
- interface Ethernet4
- mpls ldp interface
- !
- interface Ethernet5
- mpls ldp interface
- !
- interface Loopback0
- mpls ldp interface
- !
- mpls ldp
- interface disabled default
-
- #. Enable LDP Hello Redundancy to help maintain adjacencies in link-flap scenarios to cut down on session
- reestablishment time.
-
- .. note::
-
- Devices with Hello Redundancy enabled will begin sending Targeted Hello messages to the Transport Address found
- in the received LDP Link Hello message. The Targeted Hello adjacency can support the session established between
- peers even when all Link Hello adjacencies have timed out. The FEC label bindings between two peers with no Link
- Hello adjacency will not be active because the Interior Gateway Protocol will not use the other peer as the next
- hop. Nevertheless, maintaining the FEC label bindings and the session between the two peers can save significant
- time when the Link Hello adjacency is reestablished.
-
- .. code-block:: text
-
- mpls ldp
- neighbor hello-redundancy
-
- #. Enable Grace Restart capabilities for LDP to maintain forwarding when agent restarts occur.
-
- .. note::
-
- LDP Graceful Restart allows the device to preserve its entire MPLS LDP lable if the LDP agent restarts and can also
- preserve the LFIB entries of the peer whose LDP agent has restarted.
-
- .. code-block:: text
-
- mpls ldp
- !
- graceful-restart role speaker
- timer state-holding 500
- timer reconnect 500
-
- #. Lastly, enable LDP synchronization with IS-IS to ensure MPLS LSPs are generated on valid underlay links.
-
- .. note::
-
- Sync timers can be adjusted in LDP as desired.
-
- .. code-block:: text
-
- router isis 100
- mpls ldp sync default
-
-#. Verify local LDP configuration and MPLS label allocation on **EOS1**.
-
- #. Display the configured Node SID and other ISIS-SR information.
-
- .. code-block:: text
-
- show mpls ldp bindings detail
-
- #. Verify the MPLS label range assigned for use with LDP.
-
- .. note::
-
- EOS has a default allocation range for each type of MPLS label, which you can view. Of interest here is the
- ``ldp (dynamic)`` label range. LDP label bindings are locally significant to the router whose LFIB they exist in.
-
- .. code-block:: text
-
- show mpls label ranges
-
-#. Repeat the above configuration steps on the other Service Provider nodes (**EOS2 - EOS8**) while only activating LDP on
- the necessary interfaces for each device.
-
-#. Now that the LDP topology is deployed, verify MPLS label advertisement and reachability. These steps can
- be performed on any of the Service Provider EOS nodes.
-
- #. Verify that all router adjacencies are succesfully established. You should see an entry for each connected router.
-
- .. code-block:: text
-
- show mpls ldp neighbor
- show mpls ldp discovery detail
-
- #. Now display the tunnel information LDP will use to inform the data-plane which MPLS labels and interfaces
- to use to reach the other routers in the topology.
-
- .. note::
-
- An MPLS label value of the ``3`` represents the implicit-null label, which signfies the destination
- or endpoint router is adjacent to this node.
-
- .. code-block:: text
-
- show mpls ldp tunnel
-
- #. Verify the Label Bindings dynamically allocted to local and remote interfaces attached to LDP enabled peers.
-
- .. note::
-
- As mentioned, these labels are dynamically allocted by EOS out of the ``ldp (dynamic)`` label range. Also
- note these label values are only locally significant to the router, so they may overlap between the various nodes
- in the topology.
-
- .. code-block:: text
-
- show mpls ldp bindings detail
-
- #. Test MPLS LSP reachability between routers by using MPLS ping and traceroute functions. This example is from **EOS1**
- to **EOS8**.
-
- .. code-block:: text
-
- ping mpls ldp ip 8.8.8.8/32 source 1.1.1.1
- traceroute mpls ldp ip 8.8.8.8/32 source 1.1.1.1
-
-**LAB COMPLETE!**
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/ratd_mesh_topo_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/ratd_mesh_topo_lab_guide.rst
deleted file mode 100644
index 9a6169e5c..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/ratd_mesh_topo_lab_guide.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-Routing ATD Lab Guide - Mesh Topology
-=================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_topo.png
- :align: center
-
-=================================================
-Lab Guide Overview
-=================================================
-
-This is the full topology that will be used for the labs in this section. Each section
-will highlight the individual nodes that are relavent to the service or protocol for that
-step. The **Lab** Guides in the Routing ATD are meant to provide example configurations with
-step-by-step instruction on setting up IS-IS, Segment Routing, BGP EVPN, etc. If you are
-already familiar with the protocols and configurations and would instead prefer to test
-your knowledge with only high-level direction on the steps necessary to deploy the Service
-Provider network, please refer to the **Class** Guides instead.
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/sr_transport_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/sr_transport_lab_guide.rst
deleted file mode 100644
index bee4a4124..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/sr_transport_lab_guide.rst
+++ /dev/null
@@ -1,129 +0,0 @@
-Establish MPLS Transport Label Distribution via Segment-Routing
-==================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_isis_sr.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type or select the option for ``mesh-topology-evpn-labs`` to access the EVPN Labs.
-
- #. Type ``sr`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. With IS-IS in place as the IGP for Loopback reachability, enable IS-IS Segment Routing on **EOS1**.
-
- #. First, we must enable MPLS forwarding on the router.
-
- .. code-block:: text
-
- mpls ip
-
- #. Enable the Segment Routing extensions with IS-IS and assign a router-id based on the
- router's Loopback0 address.
-
- .. note::
-
- You will see a notification when setting the router-id. This simply means that if a global
- router-id is set, it will override this setting. For now, this can be ignored.
-
- .. code-block:: text
-
- router isis 100
- !
- segment-routing mpls
- router-id 1.1.1.1
- no shutdown
-
- #. Assign a Node Segment-ID, or **SID**, to the Loopback0 interface based on the EOS node ID.
-
- .. note::
-
- The Node SID is a globally unique and globally significant value, similar in nature to an IP
- address, that is assigned to each router in the SP network. Traditionally, MPLS labels are
- locally signifcant to each router. With the node SID, an MPLS label is advertised that has
- consistent meaning on each router in the topology.
-
- .. code-block:: text
-
- interface Loopback0
- node-segment ipv4 index 1
-
-#. Verify local ISIS-SR configuration and MPLS label allocation on **EOS1**.
-
- #. Display the configured Node SID and other ISIS-SR information.
-
- .. code-block:: text
-
- show isis segment-routing prefix-segments self-originated
-
- #. Verify the MPLS label range assigned for use with ISIS-SR.
-
- .. note::
-
- EOS has a default allocation range for each type of MPLS label, which you can view. Of
- interest here is the ``isis-sr`` label range, called the Segment Routing Global Block, or
- **SRGB** which must match on all routers in the topology.
-
- .. code-block:: text
-
- show mpls label ranges
- show isis segment-routing global-blocks
-
- .. note::
-
- EOS takes the configured Node SID and adds that to the base value of the SRGB to get the MPLS
- label associated with router. In this case, **EOS1** will be assigned ``900,000`` (from the **SRGB**)
- + ``1`` (from the configured Node SID Index) or ``900,0001`` which we will see later.
-
-#. Repeat the above configuration steps on the other Service Provider nodes (**EOS2 - EOS8**) while assigning
- a unique Node SID and router-id to each router based on the EOS ID and Loopback0 IP (i.e. **EOS2** will have
- a Node SID index of ``2``).
-
-#. Now that the ISIS-SR topology is deployed, verify MPLS label advertisement and reachability. These steps can
- be performed on any of the Service Provider EOS nodes.
-
- #. Verify that all router Node SIDs are succesfully advertised. You should see an entry for each ISIS-SR
- enabled router.
-
- .. code-block:: text
-
- show isis segment-routing prefix-segments
-
- #. Now display the tunnel information ISIS-SR will use to inform the data-plane which MPLS labels and interfaces
- to use to reach the other routers in the topology.
-
- .. note::
-
- An MPLS label value of the ``3`` represents the implicit-null label, which signifies the destination
- or endpoint router is adjacent to this node.
-
- .. code-block:: text
-
- show isis segment-routing tunnel
-
- #. Verify the Adjacency Segment IDs dynamically allocated to interfaces attached to ISIS-SR enabled peers.
-
- .. note::
-
- As mentioned, these labels are dynamically allocted by EOS out of the ``isis (dynamic)`` label range. Also
- note that unlike Node SIDs, Adj. SIDs are only locally significant to the router, so they may overlap
- between the various nodes in the topology.
-
- .. code-block:: text
-
- show isis segment-routing adjacency-segments
-
- #. Test MPLS LSP reachability between routers by using MPLS ping and traceroute functions. This example is from **EOS1**
- to **EOS8**.
-
- .. code-block:: text
-
- ping mpls segment-routing ip 8.8.8.8/32 source 1.1.1.1
- traceroute mpls segment-routing ip 8.8.8.8/32 source 1.1.1.1
-
-**LAB COMPLETE!**
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/srte_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/srte_lab_guide.rst
deleted file mode 100644
index 4111b32d2..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/srte_lab_guide.rst
+++ /dev/null
@@ -1,410 +0,0 @@
-Leverage SR-TE to Steer VPN Traffic
-==================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_srte.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type or select the option for ``mesh-topology-evpn-labs`` to access the EVPN Labs.
-
- #. Type ``srte`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. In the first scenario, we will use Segment Routing Traffic Engineering, or **SR-TE** to manipulate L3VPN traffic for
- Customer-1. Configure the Service Provider network so that traffic from **EOS15** to **EOS12** follows the path pictured
- above.
-
- #. Before beginning the Service Provider configuration, verify connectivty and path to **EOS12** on **EOS15**.
-
- .. code-block:: text
-
- ping 12.12.12.12 source 15.15.15.15
- traceroute 12.12.12.12 source 15.15.15.15
-
- #. To start the configuration, first, create a Prefix-List and Route-Map **EOS1** and **EOS6** to set the BGP **Color**
- community on the route for **EOS12** to a value of ``12``. Ensure that this is applied to the Customer-1 CE Peering
- and that there is a open permit at the end to allow other routes that will not be colored.
-
- .. note::
-
- The BGP Color community is used to identify routes on the ingress PE that should be steered by the SR-TE policy,
- which we will see in a later step. Since the route for **EOS12**, ``12.12.12.12/32`` is received by both PEs, we can
- set the policy on both.
-
- **EOS1**
-
- .. code-block:: text
-
- ip prefix-list CUSTOMER-1_EOS12 seq 10 permit 12.12.12.12/32
- !
- route-map CUSTOMER-1_IN permit 10
- match ip address prefix-list CUSTOMER-1_EOS12
- set extcommunity color 12 additive
- !
- route-map CUSTOMER-1_IN permit 20
- !
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.1.11.11 route-map CUSTOMER-1_IN in
-
- **EOS6**
-
- .. code-block:: text
-
- ip prefix-list CUSTOMER-1_EOS12 seq 10 permit 12.12.12.12/32
- !
- route-map CUSTOMER-1_IN permit 10
- match ip address prefix-list CUSTOMER-1_EOS12
- set extcommunity color 12 additive
- !
- route-map CUSTOMER-1_IN permit 20
- !
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.6.13.13 route-map CUSTOMER-1_IN in
-
- #. Next, enable SR-TE on **EOS8** and apply the base settings to allow SR-TE tunnels to resolve and set a router-id.
-
- .. note::
-
- When enabling SR-TE, we must tell the router to look in ``system-colored-tunnel-rib`` in order to properly resolve
- SR-TE tunnels as BGP next-hops.
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- rib system-colored-tunnel-rib
- router-id ipv4 8.8.8.8
-
- #. With SR-TE enabled, create two static policies on **EOS8** that will steer VPN traffic to **EOS12** along the desired
- path to **EOS1** and **EOS6** for routes with the color value of ``12``.
-
- .. note::
-
- With a simple SR-TE static policy, the entire transport label stack is built and applied on ingress to the Service
- Provider network by the PE. This policy will match the BGP color applied to the VPN route in the previous step.
- SR-TE policies are defined by ``endpoint`` and ``color`` so we create one for each egress PE.
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- !
- policy endpoint 1.1.1.1 color 12
- description STEER TRAFFIC TO EOS12
- !
- policy endpoint 6.6.6.6 color 12
- description STEER TRAFFIC TO EOS12
-
- #. Define a Binding Segment-ID for each policy from the allowed range ().
-
- .. note::
-
- The ``binding-sid`` is a required value in order for a policy to be valid. However, it is most commonly used in
- inter-domain or controller based SR-TE deployments. For this lab, the value isn't significant.
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- !
- policy endpoint 1.1.1.1 color 12
- binding-sid 1000112
- !
- policy endpoint 6.6.6.6 color 12
- binding-sid 1000612
-
- #. Define a Path-Group with a preference of 100 for the policies. Within the Path-Group, set the desired MPLS transport
- label stack to define the path the traffic should take.
-
- .. note::
-
- In this case, we will explicity deifine the MPLS label for each EOS node in the desired path in order. Recall that
- the MPLS label value is determined by taking the Node SID index value plus the base value of the IS-IS SR label
- range, which by default is 900,000.
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- !
- policy endpoint 1.1.1.1 color 12
- !
- path-group preference 100
- segment-list label-stack 900004 900003 900007 900001
- !
- policy endpoint 6.6.6.6 color 12
- !
- path-group preference 100
- segment-list label-stack 900004 900003 900007 900001 900006
-
- #. With the policy fully in place, validate that the policies are active as well as the resolved path on **EOS8**.
-
- .. note::
-
- The command will show the policy as ``active`` if all attributes are configured correctly. Notice that the ``Label
- Stack`` and the ``Resolved Label Stack`` differ slightly. This is due to the fact that EOS will intelligently
- resolve the path and remove any unnecessary labels in the stack that will still acheive the same path. Also notice
- that a ``Backup Resolved Label Stack`` is calculated because TI-LFA is enabled. In this case, the backup path is
- somewhat ridiculous as it passes through or close to the egress PE before going back to the initial path. This would
- be better addressed by creating a secondary path-group with a lower preference.
-
- .. code-block:: text
-
- show traffic-engineering segment-routing policy
-
- #. Verify the forwarding plane information for **EOS12** in the Customer-1 VRF.
-
- .. note::
-
- Note that the traffic is still ECMP load-balanced since ``12.12.12.12/32`` is originated from two PEs.
-
- .. code-block:: text
-
- show ip route vrf CUSTOMER-1 12.12.12.12
- show tunnel fib traffic-engineering segment-routing policy
-
- #. Finally, verify connectivty and path again to **EOS12** on **EOS15**.
-
- .. note::
-
- Note that the additional hops will show in the traceroute path but will not resolve as they are tunneled through on
- the Service Provider network.
-
- .. code-block:: text
-
- ping 12.12.12.12 source 15.15.15.15
- traceroute 12.12.12.12 source 15.15.15.15
-
-#. In the next scenario, we will use **SR-TE** to steer L2VPN traffic for Customer-2. Configure the Service Provider network
- so that traffic from **EOS9** to **EOS10** follows the path pictured above.
-
- #. Similar to the L3VPN steering above, steering L2VPN traffic requires setting the BGP Color community. Create a
- Community-List and Route-Map to match the necessary RT value for Customer-2 which sets the color value to ``10`` and
- apply that to the BGP EVPN peering to the Route-Reflector on **EOS3** and **EOS4**.
-
- .. note::
-
- In this example, we will instead set the color on the ingress PEs attached to the source **EOS9**. Since this is a
- EVPN A-A attached CE, we will set the policy on both. Also note that we are using a Community-List to match the RT
- value instead of the specific CE endpoint.
-
- .. code-block:: text
-
- ip extcommunity-list CUSTOMER-2 permit rt 2:20
- !
- route-map EVPN-COLORING permit 10
- match extcommunity CUSTOMER-2
- set extcommunity color 10 additive
- !
- route-map EVPN-COLORING permit 20
- !
- router bgp 100
- !
- address-family evpn
- neighbor 5.5.5.5 route-map EVPN-COLORING in
-
- #. Next, enable SR-TE on **EOS3** and **EOS4** and apply the base settings to for SR-TE. In addtion, create the policy for
- steering traffic to **EOS7** with a color of ``10`` that was set above and set the binding-sid to a value of
- ``1000710``.
-
- .. note::
-
- The SR-TE policy config for all VPN types follows the same template.
-
- **EOS3**
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- rib system-colored-tunnel-rib
- !
- policy endpoint 7.7.7.7 color 10
- binding-sid 1000710
- description STEER TRAFFIC TO EOS10
- router-id ipv4 3.3.3.3
-
- **EOS4**
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- rib system-colored-tunnel-rib
- !
- policy endpoint 7.7.7.7 color 10
- binding-sid 1000710
- description STEER TRAFFIC TO EOS10
- router-id ipv4 4.4.4.4
-
- #. Finally, define the Path-Group and label stack for the pictured path on **EOS3** and **EOS4**.
-
- .. note::
-
- Here, we can more intelligently define the label stack necessary to steer traffic along the desired path. By
- understanding that IS-IS SR will automatically take the shortest path to a given destinantion router based on the
- label on the top of the stack, we can skip statically defining the labels for certain intermediate nodes.
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- !
- policy endpoint 7.7.7.7 color 10
- !
- path-group preference 100
- segment-list label-stack 900008 900001 900007
-
- #. With the policy fully in place, validate that the policies are active as well as the resolved path on **EOS3** and
- **EOS4**.
-
- .. code-block:: text
-
- show traffic-engineering segment-routing policy
-
- #. Verify the forwarding plane information for **EOS3** and **EOS4** in the Customer-2 L2VPN.
-
- .. note::
-
- The commands below reference the MAC of **EOS10**, which may differ in your lab. You can find the MAC of **EOS10**
- with the output of ``show interface Ethernet1``.
-
- .. code-block:: text
-
- show l2rib output mac 1426.0c23.74e4
- show tunnel fib traffic-engineering segment-routing policy
-
- #. Finally, verify connectivty to **EOS10** on **EOS9**.
-
- .. note::
-
- Since the Service Provider is emulating a LAN service, ``traceroute`` would not provide additional path hints.
-
- .. code-block:: text
-
- ping 10.10.10.10 source 9.9.9.9
-
-#. In the last scenario, we will use **SR-TE** to steer VPWS traffic for Customer-3. Configure the Service Provider network
- so that traffic between **EOS16** and **EOS17** follows the path pictured above bidirectionally.
-
- #. Similar to the L2VPN steering above, steering VPWS traffic requires setting the BGP Color community. Create a
- Community-List and Route-Map to match the necessary RT value for Customer-2 which sets the color value to ``1617`` and
- apply that to the BGP EVPN peering to the Route-Reflector on **EOS1** and **EOS4**.
-
- .. note::
-
- Since we already created a Route-Map and applied it on **EOS4** we will simply add another sequence to that
- existing Route-Map
-
- .. code-block:: text
-
- ip extcommunity-list CUSTOMER-3 permit rt 3:1617
- !
- route-map EVPN-COLORING permit 15
- match extcommunity CUSTOMER-3
- set extcommunity color 1617 additive
- !
- route-map EVPN-COLORING permit 20
- !
- router bgp 100
- !
- address-family evpn
- neighbor 5.5.5.5 route-map EVPN-COLORING in
-
- #. Next, enable SR-TE on **EOS1** and apply the base settings to for SR-TE. In addtion, create the policy on **EOS1** and
- **EOS4** for steering traffic with a color of ``1617`` (which was set above) and set the binding-sid to a value of
- ``1001617`` between **EOS1** and **EOS4**.
-
- .. note::
-
- Again, SR-TE was already enabled on **EOS4** so the base settings are already in place.
-
- **EOS1**
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- rib system-colored-tunnel-rib
- !
- policy endpoint 4.4.4.4 color 1617
- binding-sid 1001617
- description STEER TRAFFIC TO EOS16
- router-id ipv4 1.1.1.1
-
- **EOS4**
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- !
- policy endpoint 1.1.1.1 color 1617
- binding-sid 1001617
- description STEER TRAFFIC TO EOS17
-
- #. Finally, define the Path-Group and label stack for the pictured path on **EOS1** and **EOS4**.
-
- .. note::
-
- Note that the label stacks defined are providing a symmetrical path per the desired TE policy.
-
- **EOS1**
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- !
- policy endpoint 4.4.4.4 color 1617
- !
- path-group preference 100
- segment-list label-stack 900007 900004
-
- **EOS4**
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- !
- policy endpoint 1.1.1.1 color 1617
- !
- path-group preference 100
- segment-list label-stack 900007 900001
-
- #. With the policy fully in place, validate that the policies are active as well as the resolved path on **EOS1** and
- **EOS4**.
-
- .. code-block:: text
-
- show traffic-engineering segment-routing policy | section 1617
-
- #. Verify the forwarding plane information for **EOS1** and **EOS4** in the Customer-3 E-LINE Service.
-
- .. note::
-
- Note that the patch panel configuration is now forwarding into the SR-TE Policy Tunnel.
-
- .. code-block:: text
-
- show patch panel forwarding
- show tunnel fib traffic-engineering segment-routing policy
-
- .. note::
-
- Due to a limitation in software forwarding in vEOS-lab, forwarding of VPWS traffic into SR-TE tunnels does not function and as such, we cannot
- verify functionality via ICMP, etc. All control-plane functions should be verified using the commands above. Steering of VPWS traffic in
- hardware platforms functions as expected.
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/tilfa_lab_guide.rst b/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/tilfa_lab_guide.rst
deleted file mode 100644
index 10f4507cf..000000000
--- a/topologies/routing/labguides/source/ratd_mesh_guides/ratd_mesh_lab_guides/tilfa_lab_guide.rst
+++ /dev/null
@@ -1,121 +0,0 @@
-Enable TI-LFA Fast Reroute for ISIS-SR
-==================================================================
-
-.. image:: ../../images/ratd_mesh_images/ratd_mesh_tilfa.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type or select the option for ``mesh-topology-evpn-labs`` to access the EVPN Labs.
-
- #. Type ``tilfa`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. Enable Topology Independent Loop Free Alternate, or **TI-LFA**, calculation to occur on **EOS1**.
-
- #. First, enable TI-LFA to protect against link failures in the Level-2 IS-IS topology.
-
- .. note::
-
- TI-LFA will calculate backup paths between the IS-IS enabled nodes assuming that the
- primary best path has failed. In the event of an actual failure, hardware forwarding would
- switch to this backup path in 50 ms. This would normally be paired with BFD monitoring. In the
- virtual ATD labs, it is not possible to simulate actual failures, but the TI-LFA control-plane
- can still be validated.
-
- .. code-block:: text
-
- router isis 100
- !
- address-family ipv4 unicast
- fast-reroute ti-lfa mode link-protection level-2
-
- #. Set a delay so that traffic will transition to the post-failure path only after the network has fully
- converged.
-
- .. note::
-
- Normally, IS-IS would use the TI-LFA calculated path only until the local router has reconverged
- after the failure. To prevent micro-loops during failure events, we introduce a delay for the
- router to switch from the TI-LFA calculated backup path to give the network time to converge
- globally.
-
- .. code-block:: text
-
- router isis 100
- timers local-convergence-delay protected-prefixes
-
-#. Repeat the above configuration steps on all other Service Provider nodes.
-
- #. Configure **EOS2 - EOS8** for TI-LFA calculation.
-
- .. code-block:: text
-
- router isis 100
- timers local-convergence-delay protected-prefixes
- !
- address-family ipv4 unicast
- fast-reroute ti-lfa mode link-protection level-2
-
-#. Verify local ISIS-SR TI-LFA status and forwarding on **EOS1**.
-
- #. Display the Node SIDs of the topology and observe that some are now have ``Protection``.
-
- .. note::
-
- You will notice some prefix-segments are not protected. This is due to that fact
- that an ECMP route for those Nodes is already present, so there is no need to further
- calculate a backup path. If a link fails in the ECMP group, it will automatically use
- the other. Once a single link is the best path, it would then calculate a TI-LFA backup
- path. You can observe which nodes have an ECMP route with ``show ip route`` and verifying
- which prefixes have more than one next-hop listed.
-
- .. code-block:: text
-
- show isis segment-routing prefix-segments
-
- #. Display the logic **EOS1** uses to calculate the backup path to the other nodes in the topology.
-
- .. note::
-
- The ``Constraint`` is how EOS displays what would happen in the event of a given failure; basically
- following the format "If ``Constraint`` is true, then use ``Path`` to reach ``Destination``."
-
- .. code-block:: text
-
- show isis ti-lfa path
-
- #. Display primary and backup path information from **EOS1** to **EOS8**.
-
- .. note::
-
- We can check how **EOS1** will reach **EOS8** by first looking up the SR tunnel for the **EOS8** node prefix
- ``8.8.8.8/32``. Then we can check the ``TI-LFA tunnel index``, which in the below example happened to be ``7``
- though this may vary in your lab. Lastly, we can verify that the MPLS hardware table has programmed the label
- corresponding to the **EOS8** Node-SID to use the TI-LFA Tunnel.
-
- .. code-block:: text
-
- show isis segment-routing tunnel 8.8.8.8/32
- show isis ti-lfa tunnel 7
- show mpls lfib route 900008
-
- #. Verify L2VPN routes towards **EOS7** are using the TI-LFA tunnel from **EOS3**.
-
- .. note::
-
- We will trace the MAC of **EOS10**, which in this example is ``1426.0c23.74e4``. You should replace this in the
- commands below with the MAC of Et1 on **EOS10** which can be found in the command ``show interface Ethernet1``.
- Likewise the tunnel index of ``3`` should be replaced with the index found in parantheses from the l2rib output.
-
- .. code-block:: text
-
- show l2rib output mac 1426.0c23.74e4
- show tunnel fib isis segment-routing 3
-
-
-**LAB COMPLETE!**
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/c1_l3vpn_class_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/c1_l3vpn_class_guide.rst
deleted file mode 100644
index 2bf56973d..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/c1_l3vpn_class_guide.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-Deploy L3VPN Service for Customer-1
-=====================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_c1_l3vpn.png
- :align: center
-
-|
-
-===================================================================================
-Prepare for Customer-1 Layer 3 VPN Services
-===================================================================================
-
-#. On all PE nodes that are connected to Customer-1 CE nodes, define VRF “CUSTOMER-1”.
-
- - Ensure IPv4 Unicast Forwarding is enabled.
-
- - Route-Target for import and export should be 1:1.
-
- - Route-Distinguisher should be X.X.X.X:1 (X = Node-ID).
-
-#. Place the appropriate interfaces on the PE nodes into VRF “CUSTOMER-1”.
-
-=========================================================================
-Configure Customer-1 CE devices
-=========================================================================
-
-#. Configure EOS11, EOS12 and EOS13 to run OSPF process 100 in area 0.
-
-#. Advertise all connected interfaces into OSPF using a network statement.
-
- - Once this task is complete; EOS11, EOS12, and EOS13 should be able to ping each other’s loopbacks and directly connected interfaces
-
-=========================================================================
-Establish PE-CE peering with Customer-1
-=========================================================================
-
-#. Configure EOS11 and EOS12 for BGP AS 123.
-
- - EOS11 and EOS12 should originate the following networks via BGP (any method of network origination is acceptable):
-
- - 11.11.11.11/32
-
- - 12.12.12.12/32
-
- - 13.13.13.13/32
-
-#. Configure EOS15 for BGP AS 15.
-
- - EOS15 should originate the following networks via BGP (any method of network origination is acceptable):
-
- - 15.15.15.15/32
-
-#. Establish eBGP IPv4 Unicast peering between Customer-1 CE and Service Provider PE devices. These peerings should be within the Customer-1 VPN (VRF).
-
-#. Ensure EOS12 should has the following output from a ‘show ip route ospf’ command:
-
- .. image:: ../../images/ratd_common_images/ratd_c1_l3vpn_ospf.png
- :align: center
-
-#. Ensure EOS15 should has the following output from a ‘show ip route bgp’ command:
-
- .. image:: ../../images/ratd_common_images/ratd_c1_l3vpn_bgp.png
- :align: center
-
-#. Verify reachability between all Customer-1 CE devices by pinging each other’s Loopback0 interface while sourcing the pings from their own Loopback0 interface.
-
-=========================================================================
-Enable L3VPN Multi-Pathing
-=========================================================================
-
-#. Ensure that traffic from EOS15 to EOS12 uses multiple paths across the Service Provider network, distributing the load between EOS1 and EOS6.
-
- - It is ok to adjust the isis metric on the link between EOS6 and EOS8 in order to force multi-pathing to occur.
-
-#. EOS8 should have the following output from a ‘show ip route vrf A 12.12.12.12’ command:
-
- .. note::
-
- The specific labels may vary in your output.
-
- .. image:: ../../images/ratd_ring_images/ratd_ring_l3vpn_mp.png
- :align: center
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/c2_l2vpn_class_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/c2_l2vpn_class_guide.rst
deleted file mode 100644
index 0ddb82761..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/c2_l2vpn_class_guide.rst
+++ /dev/null
@@ -1,57 +0,0 @@
-Deploy L2VPN Service for Customer-2
-=====================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_c2_l2vpn.png
- :align: center
-
-|
-
-=========================================================================
-Prepare for Customer-2 Layer 2 VPN E-LAN Services
-=========================================================================
-
-#. On all PE nodes that are connected to Customer-2 CE nodes, create VLAN 20.
-
-#. Define the ‘VLAN 20’ MAC-VRF.
-
- - Route-Target for import and export should be 2:20.
-
- - Route-Distinguisher should be X.X.X.X:2 (X = Node-ID).
-
- - Ensure that all known MAC addresses in VLAN 20 are originated/advertised via BGP to other PE Nodes.
-
-#. Configure the appropriate interfaces on the PE Nodes as access (untagged) interfaces in VLAN 20.
-
-#. Enable EOS14 and EOS9 to be dual-homed to their respective PE nodes via an LACP port-channel.
-
- - Both links should be active for egress, as well as ingress traffic.
-
- - MLAG must not be used to accomplish this task.
-
-=========================================================================
-Configure the Customer-2 CE Nodes
-=========================================================================
-
-#. Configure EOS9, EOS10 and EOS14 to run OSPF process 200 in area 0.
-
-#. Advertise all connected interfaces into OSPF using a network statement.
-
-#. Ensure all traffic to/from multi-homed L2VPN locations should be load balanced across all PE-CE links into that location.
-
-#. Verify that EOS3 and EOS6 should have the following output from a ‘show l2rib input bgp vlan 20’ command:
-
- .. note::
-
- MAC addresses and Labels may differ in your output, this is ok. The key output is 2-way load balancing to MAC addresses that exist at remote dual-homed sites
-
- - EOS3:
-
- .. image:: ../../images/ratd_common_images/ratd_c2_l2vpn_mp_1.png
- :align: center
-
- - EOS6:
-
- .. image:: ../../images/ratd_common_images/ratd_c2_l2vpn_mp_2.png
- :align: center
-
-#. Confirm that EOS9, EOS10 and EOS14 have formed OSPF adjacencies with each other. These devices should all be able to ping each other’s Loopback0 interfaces when sourcing the ping from their Loopback0 interface.
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/c3_eline_class_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/c3_eline_class_guide.rst
deleted file mode 100644
index 37ae191a9..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/c3_eline_class_guide.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-Deploy E-LINE Service for Customer-3
-=========================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_c3_eline.png
- :align: center
-
-|
-
-#. Configure a P2P E-LINE service enabling direct Layer 2 adjacency between Customer-3 nodes EOS16 and EOS17.
-
- - This solution should not require any VLAN tagging from the CE devices.
-
-#. Ensure that EOS16 and EOS17 should form an OSPF adjacency with each other and be able to ping each other’s loopbacks.
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/c4_l3vpn_class_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/c4_l3vpn_class_guide.rst
deleted file mode 100644
index e5d68052c..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/c4_l3vpn_class_guide.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-Deploy L3VPN Service for Customer-4
-=====================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_c4_l3vpn.png
- :align: center
-
-|
-
-=========================================================================
-Prepare for Customer-4 Layer 3 VPN Services
-=========================================================================
-
-#. On all PE nodes that are connected to Customer-4 CE nodes, define VRF "CUSTOMER-4".
-
- - Ensure IPv4 Unicast Forwarding is enabled.
-
- - Route-Target for import and export should be 4:4.
-
- - Route-Distinguisher should be X.X.X.X:4 (X = Node-ID).
-
-#. Place the appropriate interfaces on the PE nodes into VRF “CUSTOMER-4”.
-
-=========================================================================
-Establish PE-CE peering with Customer-4
-=========================================================================
-
-#. Configure EOS18 and EOS19 should as BGP AS 200.
-
- - EOS18 should originate the following network via BGP (any method of network origination is acceptable):
-
- - 18.18.18.18/32
-
- - EOS19 should originate the following network via BGP (any method of network origination is acceptable):
-
- - 19.19.19.19/32
-
-#. Establish eBGP IPv4 Unicast peerings between Customer-4 CE and Service Provider PE devices. These peerings should be within the Customer-4 VPN (VRF).
-
-#. Verify reachability between Customer-4 CE devices by pinging each other’s Loopback0 interface when sourcing the pings from their own Loopback0 interface.
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/cent_svcs_l3vpn_class_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/cent_svcs_l3vpn_class_guide.rst
deleted file mode 100644
index 1d9bfd4a6..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/cent_svcs_l3vpn_class_guide.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-Offer Centralized Services to L3VPN Customers
-=========================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_cent_svcs_l3vpn.png
- :align: center
-
-|
-
-#. Configure EOS20 for BGP ASN 500.
-
- - EOS20 should originate the following network via BGP (any method of network origination is acceptable):
-
- - 20.20.20.20/32
-
-#. Create a Centralized Services VPN, utilizing the VRF “SVC” on the necessary PE nodes.
-
-#. Establish eBGP IPv4 Unicast peerings between EOS20 and Service Provider PE device. This peering should be within the Centralized Services VPN (VRF).
-
-#. Allow CE devices EOS12 and EOS19 to access the Centralized Service at 20.20.20.20.
-
- - EOS11, EOS13, EOS15 and EOS18 must not be able to ping 20.20.20.20.
-
- - Customer-1 (VRF A) and Customer-4 (VRF B) CE devices must not see each other’s routes, and must not be able to ping each other.
-
- - ACLs must not be used to accomplish any part of this task.
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/evpn_setup_class_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/evpn_setup_class_guide.rst
deleted file mode 100644
index a9e884189..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/evpn_setup_class_guide.rst
+++ /dev/null
@@ -1,27 +0,0 @@
-Prepare to Offer VPN Services to Customers via MP-BGP EVPN Control-Plane
-==================================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_evpn.png
- :align: center
-
-|
-
-#. BGP Autonomous System 100 is leveraged by the Service Provider
-
- :Question: Do all nodes within the Service Provider need to run BGP? Why, or why not?
-
-#. Enable BGP EVPN peering within the service provider
-
- - BGP Router-ID should be Loopback0 with a 32-bit value
-
- - Loopback0 IP address should be used for all BGP peerings
-
- - All PE nodes must be capable of advertising and receiving reachability information to/from all other PE nodes
-
- - A full mesh of peerings must not be used to accomplish this task
-
- - EOS8 should act as the peering point for all PE nodes
-
- - Disable any unnecessary BGP AFI/SAFI peerings
-
- - Use MPLS as the data-plane encapsulation / VPN label distribution
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/isis_underlay_class_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/isis_underlay_class_guide.rst
deleted file mode 100644
index 60a456631..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/isis_underlay_class_guide.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-Deploy IS-IS as the Service Provider Underlay IGP
-==========================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_isis_sr.png
- :align: center
-
-|
-
-#. Configure IS-IS to carry underlay IPv4 prefix reachability information.
-
- - All nodes should be within the same flooding domain.
-
- - All nodes should only maintain a Level-2 database.
-
- - Ensure that there are no unnecessary Pseudonodes within the topology
-
-#. (Optional) Only advertise reachability information for /32 loopback interfaces into the LSDB
-
- - Once this task has been completed, all Service Provider nodes should be able to ping all other node loopback addresses
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/ratd_ring_topo_class_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/ratd_ring_topo_class_guide.rst
deleted file mode 100644
index 22b5d68c1..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/ratd_ring_topo_class_guide.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-Routing ATD Class Guide - Ring Topology
-=================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_topo.png
- :align: center
-
-=================================================
-Class Guide Overview
-=================================================
-
-This is the full topology that will be used for the labs in this section. Each section
-will highlight the individual nodes that are relavent to the service or protocol for that
-step. The **Class** Guides in the Routing ATD are meant to provide high-level direction on the
-steps necessary to deploy the Service Provider network while not providing explicit examples
-of configurations to use. This implies that the operator is familiar with the configurations
-necessary to deploy IS-IS, Segment Routing, BGP EVPN, etc. If you would instead prefer to
-see example configurations with step-by-step instruction, please refer to the **Lab** Guides
-instead.
-
- .. note::
-
- In the Ring Topology, EOS2 and EOS5 are not used and all interfaces connecting to them are disabled.
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/sr_transport_class_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/sr_transport_class_guide.rst
deleted file mode 100644
index 329d1fe3b..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/sr_transport_class_guide.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-Establish MPLS Transport Label Distribution via Segment-Routing
-=========================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_isis_sr.png
- :align: center
-
-|
-
-#. Enable Segment-Routing extensions to IS-IS, leveraging MPLS data plane encapsulation.
-
- - The Segment Routing Global Block (SRGB) label range should be 900,000 – 965,535 on all Service Provider nodes.
-
-#. Configure each node should with a globally unique Node SID equal to 900,000 + NodeID.
-
- - For example, EOS1 should have a Node SID of 900,001.
-
-#. Review IS-IS adjacency SIDs on EOS7 and EOS8.
-
- :Question:
- Is there overlap? If so, will this present an issue? Why or Why not?
-
-#. Validate that all Service Provider nodes have a globally unique Node SID.
-
-#. To protect against black holes, and reduce convergence time:
-
- - Enable the equivalent of IGP Sync and Session-Protection within the Segment-Routing domain.
-
-#. Once this task has been completed, all Service Provider nodes should have an LSP established for reachability between loopbacks.
-
- .. code-block:: text
-
- ping mpls segment-routing ip x.x.x.x/32 source y.y.y.y
-
- .. code-block:: text
-
- traceroute mpls segment-routing ip x.x.x.x/32 source y.y.y.y
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/srte_class_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/srte_class_guide.rst
deleted file mode 100644
index 03da8e680..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/srte_class_guide.rst
+++ /dev/null
@@ -1,60 +0,0 @@
-Leverage SR-TE to Steer VPN Traffic
-==================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_srte.png
- :align: center
-
-|
-
-===================================================================================
-Steer Customer-1 Layer 3 VPN Traffic
-===================================================================================
-
-#. Use Segment Routing Traffic Engineering to manipulate L3VPN traffic for Customer-1. Configure the Service
- Provider network so that traffic from **EOS15** to **EOS12** follows the path pictured above.
-
- - Use a BGP Color Community value of 12.
-
- - The Binding SID for the TE policy should be 1000X12 (X = desintation Node-ID)
-
- - Only traffic for EOS12's Loopback should be matched.
-
- - Traffic should still be ECMP load balanced between PEs EOS1 and EOS6.
-
-===================================================================================
-Steer Customer-2 Layer 2 VPN Traffic
-===================================================================================
-
-#. Use **SR-TE** to manipulate L2VPN traffic for Customer-2. Configure the Service Provider network so that traffic
- from **EOS9** to **EOS10** follows the path pictured above.
-
- - Use a BGP Color Community value of 10.
-
- - The Binding SID for the TE policy should be 1000X12 (X = desintation Node-ID)
-
- - Only L2 traffic for EOS10 should be matched.
-
- - Traffic ingressing on EOS3 or EOS4 should be sent via the pictured path.
-
-===================================================================================
-Steer Customer-3 E-LINE Traffic
-===================================================================================
-
-#. Use **SR-TE** to manipulate VPWS traffic for Customer-3. Configure the Service Provider network so that traffic
- between **EOS16** and **EOS17** follows the path pictured above.
-
- - Use a BGP Color Community value of 1617.
-
- - The Binding SID for the TE policy should be 1001617 (X = desintation Node-ID)
-
- - Only VPWS traffic for EOS16 and EOS17 should be matched.
-
- - Traffic should follow the pictured path bidirectionally.
-
- .. note::
-
- Due to a limitation in software forwarding in vEOS-lab, forwarding of VPWS traffic into SR-TE tunnels does not function and as such, we cannot
- verify functionality via ICMP, etc. All control-plane functions should be verified using the commands above. Steering of VPWS traffic in
- hardware platforms functions as expected.
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/tilfa_class_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/tilfa_class_guide.rst
deleted file mode 100644
index b04750452..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_class_guides/tilfa_class_guide.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-Enable TI-LFA Fast Reroute for ISIS-SR
-==================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_tilfa.png
- :align: center
-
-|
-
-#. Enable Topology Indepent Loop Free Alternate calculation on the Service Provider network for Fast Reroute.
-
- - Enable for the IPv4 Unicast AF only.
-
- - Enable Link Protection mode for TI-LFA
-
- - TI-LFA should be enabled for IS-IS Level 2.
-
-#. Ensure the proper delay is respected so micro-loops do not occur.
-
-
-**LAB COMPLETE!**
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c1_ipvpn_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c1_ipvpn_lab_guide.rst
deleted file mode 100644
index daf23cfe9..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c1_ipvpn_lab_guide.rst
+++ /dev/null
@@ -1,407 +0,0 @@
-Deploy L3VPN Service for Customer-1
-=====================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_c1_l3vpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-ipvpn-labs`` to access the LDP and IPVPN Labs.
-
- #. Type ``c1l3vpn`` at the Labs Selection Menu. The script will configure the topology with the necessary prerequisites.
-
-#. Customer-1 is attached to three Service Provider nodes, **EOS1**, **EOS6** and **EOS8**. These will be our Provider
- Edge, or **PE** nodes. Since this customer will require a Layer 3 VPN Service, create an isolated VRF for their traffic
- and use IP-VPN to advertise the customer networks to other interested PEs.
-
- #. Create a VRF Instance called ``CUSTOMER-1`` on **EOS1**, **EOS6** and **EOS8**.
-
- .. note::
-
- Since we are using MPLS to create VPNs in the Service Provider network, the VRF only needs to be created on the
- nodes attached to the customer the VRF is for; in this case Customer-1. Also, note that by default, ``ip routing``
- and ``ipv6 unicast-routing`` are disabled by default in any VRF, so must be enabled for routing functions.
-
- .. code-block:: text
-
- vrf instance CUSTOMER-1
- !
- ip routing vrf CUSTOMER-1
- !
- ipv6 unicast-routing vrf CUSTOMER-1
-
- #. Place the interface attached to the Customer Edge, or **CE**, node for Customer-1 into VRF ``CUSTOMER-1`` on
- **EOS1** to ensure their traffic remains isolated.
-
- .. note::
-
- When an interface is moved from one VRF to another, in this case from the ``default`` VRF into our defined
- ``CUSTOMER-1`` VRF, any IP settings, including addresses, will be removed and will need to be reapplied.
-
- .. code-block:: text
-
- interface Ethernet3
- vrf CUSTOMER-1
- ip address 10.1.11.1/24
- ipv6 address fd00:1:11::1/64
-
- #. Repeat the above step for the interfaces on **EOS6** and **EOS8** attached to Customer-1 CE devices.
-
- **EOS6**
-
- .. code-block:: text
-
- interface Ethernet3
- vrf CUSTOMER-1
- ip address 10.6.13.6/24
- ipv6 address fd00:6:13::6/64
-
- **EOS8**
-
- .. code-block:: text
-
- interface Ethernet2
- vrf CUSTOMER-1
- ip address 10.8.15.8/24
- ipv6 address fd00:8:15::8/64
-
- #. Now leverage IP-VPN to advertise reachability of any routes learned in VRF ``CUSTOMER-1`` from the customer by
- setting a Route Distinguisher, or **RD**, and a Route Target, or **RT**, within BGP on **EOS1**. It should have a
- unique **RD** following the format of **** ``:1`` and the **RT** on all routers in the VPN should match
- as ``1:1`` for both v4 and v6.
-
- .. note::
-
- The **RD** can be used to determine the origination point of the VPN route and the **RT** is used by the routers
- in the Service Provider network to determine if they should import the advertised route into their local routing
- table(s). If they receive a VPN route, they check the **RT** value and see if they have a matching **RT** configured
- in BGP. If they do, the import the route into the associated VRF. If they do not, they ignore the route.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- rd 1.1.1.1:1
- route-target import vpn-ipv4 1:1
- route-target import vpn-ipv6 1:1
- route-target export vpn-ipv4 1:1
- route-target export vpn-ipv6 1:1
-
- #. Repeat the above step for **EOS6** and **EOS8**, adjusting the **RD** and using the same **RT**.
-
- **EOS6**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- rd 6.6.6.6:1
- route-target import vpn-ipv4 1:1
- route-target import vpn-ipv6 1:1
- route-target export vpn-ipv4 1:1
- route-target export vpn-ipv6 1:1
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- rd 8.8.8.8:1
- route-target import vpn-ipv4 1:1
- route-target import vpn-ipv6 1:1
- route-target export vpn-ipv4 1:1
- route-target export vpn-ipv6 1:1
-
- #. Finally, define the BGP peers facing the CE devices for route exchange into the customer VRF on **EOS1**. The CE node
- (**EOS11**) will use BGP ASN 123. Ensuring peering is configured for v4 and v6 unicast route exchange to the CE.
-
- .. note::
-
- Typically, CE-PE peerings will leverage eBGP as we do here. This allows for automatic route forwarding from the PE
- to the Route Reflector. Also note that in the previous lab, we disabled the default activation of the IPv4 unicast
- address-family for BGP peers, so we must explicitly enable for our PE-CE peering as well as the IPv6 unicast
- address-family.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.1.11.11 remote-as 123
- neighbor 10.1.11.11 maximum-routes 12000
- neighbor fd00:1:11::11 remote-as 123
- neighbor fd00:1:11::11 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.1.11.11 activate
- !
- address-family ipv6
- neighbor fd00:1:11::11 activate
-
- #. Again, repeat the above step for **EOS6** and **EOS8**, adjusting the peer IPs and ASN to reflect the attached CE node.
-
- **EOS6**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.6.13.13 remote-as 123
- neighbor 10.6.13.13 maximum-routes 12000
- neighbor fd00:6:13::13 remote-as 123
- neighbor fd00:6:13::13 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.6.13.13 activate
- !
- address-family ipv6
- neighbor fd00:6:13::13 activate
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.8.15.15 remote-as 15
- neighbor 10.8.15.15 maximum-routes 12000
- neighbor fd00:8:15::15 remote-as 15
- neighbor fd00:8:15::15 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.8.15.15 activate
- !
- address-family ipv6
- neighbor fd00:8:15::15 activate
-
- #. Verify configurations and VRF status. There will be no routes or BGP peers in our VRF as of yet since we have not
- peered with the CE devices.
-
- .. code-block:: text
-
- show running-config section CUSTOMER-1
- show vrf
-
-#. Now that the PE nodes are configured, configure CE nodes **EOS11**, **EOS12**, **EOS13**, and **EOS15** for Layer 3
- attachment to the Service Provider network.
-
- #. Since **EOS11**, **EOS12**, and **EOS13** represent a single customer site and LAN, configure OSPF to distribute
- routes locally within the site.
-
- .. note::
-
- The scope of these labs is mainly around the Service Provider network functions so it does not cover the specifics
- of the customer network configurations.
-
- **EOS11**
-
- .. code-block:: text
-
- interface Ethernet2
- ip ospf network point-to-point
- !
- router ospf 100
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- **EOS12**
-
- .. code-block:: text
-
- interface Ethernet1
- ip ospf network point-to-point
- !
- interface Ethernet2
- ip ospf network point-to-point
- !
- router ospf 100
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- **EOS13**
-
- .. code-block:: text
-
- interface Ethernet2
- ip ospf network point-to-point
- !
- router ospf 100
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- #. Configure the BGP peerings to the PE devices on **EOS11**, **EOS13** and **EOS15** ensuring that each router's
- Loopback0 address is advertised to the attached PE.
-
- **EOS11**
-
- .. code-block:: text
-
- router bgp 123
- router-id 11.11.11.11
- distance bgp 20 200 200
- neighbor 10.1.11.1 remote-as 100
- neighbor 10.1.11.1 maximum-routes 12000
- neighbor fd00:1:11::1 remote-as 100
- neighbor fd00:1:11::1 maximum-routes 12000
- !
- address-family ipv4
- network 11.11.11.11/32
- network 12.12.12.12/32
- network 13.13.13.13/32
- !
- address-family ipv6
- neighbor fd00:1:11::1 activate
- network 11:11:11::11/128
-
- **EOS13**
-
- .. code-block:: text
-
- router bgp 123
- router-id 13.13.13.13
- distance bgp 20 200 200
- neighbor 10.6.13.6 remote-as 100
- neighbor 10.6.13.6 maximum-routes 12000
- neighbor fd00:6:13::6 remote-as 100
- neighbor fd00:6:13::6 maximum-routes 12000
- !
- address-family ipv4
- network 11.11.11.11/32
- network 12.12.12.12/32
- network 13.13.13.13/32
- !
- address-family ipv6
- neighbor fd00:6:13::6 activate
- network 13:13:13::13/128
-
- **EOS15**
-
- .. code-block:: text
-
- router bgp 15
- router-id 15.15.15.15
- neighbor 10.8.15.8 remote-as 100
- neighbor 10.8.15.8 maximum-routes 12000
- neighbor fd00:8:15::8 remote-as 100
- neighbor fd00:8:15::8 maximum-routes 12000
- !
- address-family ipv4
- network 15.15.15.15/32
- !
- address-family ipv6
- neighbor fd00:8:15::8 activate
- network 15:15:15::15/128
-
-#. With the peerings fully established, verify and test connectivity between the Customer-1 locations.
-
- #. Verify BGP status and route exchange with the Service Provider network on **EOS15**
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp detail
- show ip route
- show ipv6 bgp summary
- show ipv6 bgp detail
- show ipv6 route
-
- #. Validate route advertisement to **EOS12** to ensure routes are coming in from the Service Provider network and
- being redistributed by the CE nodes into the IGP.
-
- .. code-block:: text
-
- show ip ospf database
- show ip route
-
- #. Test IPv4 connectivity from **EOS12** to **EOS15** using Loopback0 IP addressing.
-
- .. note::
-
- In the ATD labs, only connectivty of IPv4 traffic can be validated in L3VPNs. There is a limitation in the
- functionality of vEOS-lab, which the ATD labs are built on, in that it is unable to forward MPLS-decapsulated IPv6
- traffic to CE nodes. The control-plane for IPv6 based VPNs can still be fully built and validated as it would in
- a real environment with physical hardware.
-
- .. code-block:: text
-
- ping 15.15.15.15 source 12.12.12.12
-
-#. From the Service Provider nodes, verify route exchange and MPLS control-plane status.
-
- #. Display the peering status and routes being advertised by **EOS11** on **EOS1**.
-
- .. code-block:: text
-
- show ip bgp summary vrf CUSTOMER-1
- show ip bgp neighbor 10.1.11.11 routes vrf CUSTOMER-1
- show ipv6 bgp summary vrf CUSTOMER-1
- show ipv6 bgp peers 10.1.11.11 routes vrf CUSTOMER-1
-
- #. Now validate the IP-VPN routes are exchanged between the PE nodes **EOS1**, **EOS6**, and **EOS8** via the Route
- Relector.
-
- .. note::
-
- The key fields to notice in the following outputs are the **RD** which denotes the originator of the specified
- VPN route, the **RT** which denotes the associated Customer VRF and the assigned **MPLS label**, which represents
- the VPN or VRF label that EOS dynamically assigns via LDP.
-
- .. code-block:: text
-
- show bgp vpn-ipv4 summary
- show bgp vpn-ipv4 detail
- show bgp vpn-ipv6 summary
- show bgp vpn-ipv6 detail
-
- #. Finally, validate the forwarding path traffic will take for each destination in the customer VRF on the Service
- Provider network PEs, **EOS1**, **EOS6**, and **EOS8**.
-
- .. code-block:: text
-
- show ip route vrf CUSTOMER-1
- show ipv6 route vrf CUSTOMER-1
- show mpls route
-
-#. To show the ability for Equal Cost Multi-Pathing, or **ECMP**, to automatically occur where applicable on the Service
- Provider network, adjust the configuration so that IS-IS calculates multiple equal paths for traffic between these PE
- nodes.
-
- #. Adjust the IS-IS metric on the link between **EOS6** and **EOS8** so that multiple paths become available for
- forwarding.
-
- .. note::
-
- Normally, this would be done in a scenario where you would like to de-preference a given path in the network.
-
- **EOS6**
-
- .. code-block:: text
-
- interface Ethernet2
- isis metric 40
-
- **EOS8**
-
- .. code-block:: text
-
- interface Ethernet3
- isis metric 40
-
- #. Re-verify the forwarding path for the Customer-1 VRF on **EOS1**, **EOS6**, and **EOS8** to see ECMP is now available.
-
- .. code-block:: text
-
- show ip route vrf CUSTOMER-1
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c1_l3vpn_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c1_l3vpn_lab_guide.rst
deleted file mode 100644
index 45d206efc..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c1_l3vpn_lab_guide.rst
+++ /dev/null
@@ -1,348 +0,0 @@
-Deploy L3VPN Service for Customer-1
-=====================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_c1_l3vpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-evpn-supplemental-labs`` to access the Supplemental Labs.
-
- #. Type ``c1l3vpn`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. Customer-1 is attached to three Service Provider nodes, **EOS1**, **EOS6** and **EOS8**. These will be our Provider
- Edge, or **PE** nodes. Since this customer will require a Layer 3 VPN Service, create an isolated VRF for their
- traffic and use EVPN to advertise the customer networks to other interested PEs.
-
- #. Create a VRF Instance called ``CUSTOMER-1`` on **EOS1**, **EOS6** and **EOS8**.
-
- .. note::
-
- Since we are using MPLS to create VPNs in the Service Provider network, the VRF only needs to be created on the
- nodes attached to the customer the VRF is for; in this case Customer-1. Also, note that by default, ``ip routing``
- is disabled by default in any VRF, so must be enabled for routing functions.
-
- .. code-block:: text
-
- vrf instance CUSTOMER-1
- !
- ip routing vrf CUSTOMER-1
-
- #. Place the interface attached to the Customer Edge, or **CE**, node for Customer-1 into VRF ``CUSTOMER-1`` on
- **EOS1** to ensure their traffic remains isolated.
-
- .. note::
-
- When an interface is moved from one VRF to another, in this case from the ``default`` VRF into our defined
- ``CUSTOMER-1`` VRF, any IP settings, including address, will be removed and will need to be reapplied.
-
- .. code-block:: text
-
- interface Ethernet3
- vrf CUSTOMER-1
- ip address 10.1.11.1/24
-
- #. Repeat the above step for the interfaces on **EOS6** and **EOS8** attached to Customer-1 CE devices.
-
- **EOS6**
-
- .. code-block:: text
-
- interface Ethernet3
- vrf CUSTOMER-1
- ip address 10.6.13.6/24
-
- **EOS8**
-
- .. code-block:: text
-
- interface Ethernet2
- vrf CUSTOMER-1
- ip address 10.8.15.8/24
-
- #. Now leverage BGP EVPN to advertise reachability of any routes learned in VRF ``CUSTOMER-1`` from the customer by
- setting a Route Distinguisher, or **RD**, and a Route Target, or **RT**, within BGP on **EOS1**. It should have a
- unique **RD** following the format of **** ``:1`` and the **RT** on all routers in the VPN should match
- as ``1:1``.
-
- .. note::
-
- The **RD** can be used to determine the origination point of the VPN route and the **RT** is used by the routers
- in the Service Provider network to determine if they should import the advertised route into their local routing
- table(s). If they receive a VPN route, they check the **RT** value and see if they have a matching **RT** configured
- in BGP. If they do, they import the route into the associated VRF. If they do not, they ignore the route.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- rd 1.1.1.1:1
- route-target import evpn 1:1
- route-target export evpn 1:1
-
- #. Repeat the above step for **EOS6** and **EOS8**, adjusting the **RD** and using the same **RT**.
-
- **EOS6**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- rd 6.6.6.6:1
- route-target import evpn 1:1
- route-target export evpn 1:1
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- rd 8.8.8.8:1
- route-target import evpn 1:1
- route-target export evpn 1:1
-
- #. Finally, define the BGP peers facing the CE devices for route exchange into the customer VRF on **EOS1**. The CE
- node (**EOS11**) will use BGP ASN 123.
-
- .. note::
-
- Typically, CE-PE peerings will leverage eBGP as we do here. This allows for automatic route forwarding from
- the PE to the Route Reflector. Also note that in the previous lab, we disabled the default activation
- of the IPv4 unicast address-family for BGP peers, so we must explicitly enable for our PE-CE peering.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.1.11.11 remote-as 123
- neighbor 10.1.11.11 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.1.11.11 activate
-
- #. Again, repeat the above step for **EOS6** and **EOS8**, adjusting the peer IPs and ASN to reflect the attached CE node.
-
- **EOS6**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.6.13.13 remote-as 123
- neighbor 10.6.13.13 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.6.13.13 activate
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.8.15.15 remote-as 15
- neighbor 10.8.15.15 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.8.15.15 activate
-
- #. Verify configurations and VRF status. There will be no routes or BGP peers in our VRF as of yet since we have not
- configured and peered with the CE devices.
-
- .. code-block:: text
-
- show running-config section CUSTOMER-1
- show vrf
-
-#. Now that the PE nodes are configured, configure CE nodes **EOS11**, **EOS12**, **EOS13**, and **EOS15** for
- Layer 3 attachment to the Service Provider network.
-
- #. Since **EOS11**, **EOS12**, and **EOS13** represent a single customer site and LAN, configure OSPF to distribute
- routes locally within the site.
-
- .. note::
-
- The scope of these labs is mainly around the Service Provider network functions so it does not cover the specifics
- of the customer network configurations.
-
- **EOS11**
-
- .. code-block:: text
-
- interface Ethernet2
- ip ospf network point-to-point
- !
- router ospf 100
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- **EOS12**
-
- .. code-block:: text
-
- interface Ethernet1
- ip ospf network point-to-point
- !
- interface Ethernet2
- ip ospf network point-to-point
- !
- router ospf 100
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- **EOS13**
-
- .. code-block:: text
-
- interface Ethernet2
- ip ospf network point-to-point
- !
- router ospf 100
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- #. Configure the BGP peerings to the PE devices on **EOS11**, **EOS13** and **EOS15** ensuring that each router's
- Loopback0 address is advertised to the attached PE.
-
- **EOS11**
-
- .. code-block:: text
-
- router bgp 123
- router-id 11.11.11.11
- distance bgp 20 200 200
- neighbor 10.1.11.1 remote-as 100
- neighbor 10.1.11.1 maximum-routes 12000
- network 11.11.11.11/32
- network 12.12.12.12/32
- network 13.13.13.13/32
- !
- router ospf 100
- redistribute bgp
-
- **EOS13**
-
- .. code-block:: text
-
- router bgp 123
- router-id 13.13.13.13
- distance bgp 20 200 200
- neighbor 10.6.13.6 remote-as 100
- neighbor 10.6.13.6 maximum-routes 12000
- network 11.11.11.11/32
- network 12.12.12.12/32
- network 13.13.13.13/32
- !
- router ospf 100
- redistribute bgp
-
- **EOS15**
-
- .. code-block:: text
-
- router bgp 15
- router-id 15.15.15.15
- neighbor 10.8.15.8 remote-as 100
- neighbor 10.8.15.8 maximum-routes 12000
- network 15.15.15.15/32
-
-#. With the peerings fully established, verify and test connectivity between the Customer-1 locations.
-
- #. Verify BGP status and route exchange with the Service Provider network on **EOS15**
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp detail
- show ip route
-
- #. Validate route advertisement to **EOS12** to ensure routes are coming in from the Service Provider network and
- being redistributed by the CE nodes into the IGP.
-
- .. code-block:: text
-
- show ip ospf database
- show ip route
-
- #. Test connectivity from **EOS12** to **EOS15** using Loopback0 IP addressing.
-
- .. code-block:: text
-
- ping 15.15.15.15 source 12.12.12.12
-
-#. From the Service Provider nodes, verify route exchange and MPLS control-plane status.
-
- #. Display the peering status and routes being advertised by **EOS11** on **EOS1**.
-
- .. code-block:: text
-
- show ip bgp summary vrf CUSTOMER-1
- show ip bgp neighbor 10.1.11.11 routes vrf CUSTOMER-1
-
- #. Now validate the EVPN routes are exchanged between the PE nodes **EOS1**, **EOS6**, and **EOS8** via the Route
- Relector.
-
- .. note::
-
- The key fields to notice in the following outputs are the **RD** which denotes the originator of the specified
- EVPN Type-5 (IP Prefix) route, the **RT** which denotes the associated Customer VRF and the assigned **MPLS label**,
- which represents the VPN or VRF label that EOS dynamically assigns.
-
- .. code-block:: text
-
- show bgp evpn summary
- show bgp evpn route-type ip-prefix ipv4 detail
-
- #. Finally, validate the forwarding path traffic will take for each destination in the customer VRF on the Service
- Provider network PEs, **EOS1**, **EOS6**, and **EOS8**.
-
- .. code-block:: text
-
- show ip route vrf CUSTOMER-1
- show mpls route
-
-#. To show the ability for Equal Cost Multi-Pathing, or **ECMP**, to automatically occur where applicable on the Service
- Provider network, adjust the configuration so that IS-IS calculates multiple equal paths for traffic between these PE
- nodes.
-
- #. Adjust the IS-IS metric on the link between **EOS6** and **EOS8** so that multiple paths become available for
- forwarding.
-
- .. note::
-
- Normally, this would be done in a scenario where you would like to de-preference a given path in the network.
-
- **EOS6**
-
- .. code-block:: text
-
- interface Ethernet2
- isis metric 40
-
- **EOS8**
-
- .. code-block:: text
-
- interface Ethernet3
- isis metric 40
-
- #. Re-verify the forwarding path for the Customer-1 VRF on **EOS1**, **EOS6**, and **EOS8** to see ECMP is now available.
-
- .. code-block:: text
-
- show ip route vrf CUSTOMER-1
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c2_l2vpn_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c2_l2vpn_lab_guide.rst
deleted file mode 100644
index 2e07b3c66..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c2_l2vpn_lab_guide.rst
+++ /dev/null
@@ -1,382 +0,0 @@
-Deploy L2VPN Service for Customer-2
-=====================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_c2_l2vpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-evpn-supplemental-labs`` to access the Supplemental Labs.
-
- #. Type ``c2l2vpn`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. Customer-2 is attached to five Service Provider nodes, **EOS3**, **EOS4**, **EOS6**, **EOS7** and **EOS8**. These
- will be **PE** nodes. Since this customer will require a Layer 2 VPN Service, create a VLAN for their traffic and
- use EVPN to advertise the customer MAC addresses to other interested PEs.
-
- #. First, create a local VLAN with an ID of ``20`` on each of the PE nodes.
-
- .. note::
-
- Similar to the L3VPN, we are using MPLS to create VPNs in the Service Provider network. The only difference here
- is the VPN is providing a switched LAN service as opposed to a router service. Again, the VLAN only needs to be
- created on the nodes attached to the customer the VLAN is for; in this case Customer-2.
-
- .. code-block:: text
-
- vlan 20
- name Customer2_E-LAN
-
- #. Place the interface attached to the **CE** node for Customer-2 into VLAN ``20`` on **EOS7** to attach it to the E-LAN
- service.
-
- .. note::
-
- We are providing an untagged service. If a tagged service was required, we would configure a dot1q trunk instead.
-
- .. code-block:: text
-
- interface Ethernet2
- switchport access vlan 20
- spanning-tree portfast
-
- #. Repeat the above step to place the interfaces attached to Customer-2 **CE** nodes into VLAN ``20`` on **EOS3**,
- **EOS4**, **EOS6**, and **EOS8**. In addition, configure these interfaces for an Active-Active LACP Port-Channel.
-
- .. note::
-
- Normally, you cannot have two interfaces on separate routers as part of a single LAG without an additional
- protocol between them such as MLAG. In this case, we will configure BGP EVPN to properly signal this LAG later
- in the lab. For now, just create the base Port-Channel configuration for the interface.
-
- **EOS3**
-
- .. code-block:: text
-
- interface Port-Channel9
- description CE-EOS9
- switchport access vlan 20
- spanning-tree portfast
- !
- interface Ethernet1
- channel-group 9 mode active
-
- **EOS4**
-
- .. code-block:: text
-
- interface Port-Channel9
- description CE-EOS9
- switchport access vlan 20
- spanning-tree portfast
- !
- interface Ethernet1
- channel-group 9 mode active
-
- **EOS6**
-
- .. code-block:: text
-
- interface Port-Channel14
- description CE-EOS14
- switchport access vlan 20
- spanning-tree portfast
- !
- interface Ethernet6
- channel-group 14 mode active
-
- **EOS8**
-
- .. code-block:: text
-
- interface Port-Channel14
- description CE-EOS14
- switchport access vlan 20
- spanning-tree portfast
- !
- interface Ethernet4
- channel-group 14 mode active
-
- #. Configure BGP EVPN to advertise reachability of any MACs learned in VLAN ``20`` from the customer by setting
- an **RD** and an **RT**, within BGP on **EOS7**. It should have a unique **RD** following the format of
- **** ``:2`` and the **RT** on all routers in the VPN should match as ``2:20``.
-
- .. note::
-
- The **RD** and **RT** serves the same function for the L2VPN as they do for the L3VPN, providing a unified
- approach to VPN control-plane configuration. The ``redistribute learned`` command ensures that any locally
- learned MACs will be advertised to the Route Reflector using BGP EVPN.
-
- .. code-block:: text
-
- router bgp 100
- !
- vlan 20
- rd 7.7.7.7:2
- route-target both 2:20
- redistribute learned
-
- #. Repeat the above step on the remain PEs, **EOS3**, **EOS4**, **EOS6**, and **EOS8**, adjusting the **RD** as
- necessary while keeping the **RT** consistent.
-
- **EOS3**
-
- .. code-block:: text
-
- router bgp 100
- !
- vlan 20
- rd 3.3.3.3:2
- route-target both 2:20
- redistribute learned
-
- **EOS4**
-
- .. code-block:: text
-
- router bgp 100
- !
- vlan 20
- rd 4.4.4.4:2
- route-target both 2:20
- redistribute learned
-
- **EOS6**
-
- .. code-block:: text
-
- router bgp 100
- !
- vlan 20
- rd 6.6.6.6:2
- route-target both 2:20
- redistribute learned
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vlan 20
- rd 8.8.8.8:2
- route-target both 2:20
- redistribute learned
-
- #. Now, configure the previously created Port-Channel interfaces on **EOS3**, **EOS4**, **EOS6**, and **EOS8**
- to use EVPN All-Active to enable both PEs in each LAG to actively forward traffic for the CE node.
-
- .. note::
-
- EVPN A-A utilizes BGP to negotiate LAG membership and Designated Forwarder roll for each LAG using an unique
- Ethernet Segment Identifier, or **ESI**, for each LAG as well as a specific RT. To ensure the attached CE device
- sees both PEs as a single LACP system, we also statically set the ``lacp system-id`` to be the same on both PEs
- for the LAG.
-
- **EOS3**
-
- .. code-block:: text
-
- interface Port-Channel9
- !
- evpn ethernet-segment
- identifier 0000:0200:0200:1000:0304
- route-target import 00:02:00:01:00:20
- lacp system-id 0000.0000.0034
-
- **EOS4**
-
- .. code-block:: text
-
- interface Port-Channel9
- !
- evpn ethernet-segment
- identifier 0000:0200:0200:1000:0304
- route-target import 00:02:00:01:00:20
- lacp system-id 0000.0000.0034
-
- **EOS6**
-
- .. code-block:: text
-
- interface Port-Channel14
- !
- evpn ethernet-segment
- identifier 0000:0200:0200:2000:0608
- route-target import 00:02:00:02:00:20
- lacp system-id 0000.0000.0068
-
- **EOS8**
-
- .. code-block:: text
-
- interface Port-Channel14
- !
- evpn ethernet-segment
- identifier 0000:0200:0200:2000:0608
- route-target import 00:02:00:02:00:20
- lacp system-id 0000.0000.0068
-
-#. Now, configure the Customer-2 CE nodes to connect to each other over the emulated LAN service.
-
- #. Since the Service Provider is providing a Layer 2 service, configure the CE on **EOS9**, **EOS10**, and **EOS14**
- interfaces as part of a common subnet as if they were attached to a common Layer 2 switch. For dual-homed CEs,
- configure this link as an LACP Port-Channel.
-
- **EOS9**
-
- .. code-block:: text
-
- interface Port-Channel9
- description PEs: EOS3,EOS4
- no switchport
- ip address 10.0.0.9/24
- !
- interface Ethernet1
- channel-group 9 mode active
- !
- interface Ethernet2
- channel-group 9 mode active
- !
- router ospf 200
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- .. note::
-
- On **EOS10** we manually adjust the MAC address just to avoid any potential overlap in the virutalized lab
- environment.
-
- **EOS10**
-
- .. code-block:: text
-
- interface Ethernet1
- mac-address 00:00:00:00:10:10
- no switchport
- ip address 10.0.0.10/24
- !
- router ospf 200
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
- **EOS14**
-
- .. code-block:: text
-
- interface Port-Channel14
- description PEs: EOS6,EOS8
- no switchport
- ip address 10.0.0.14/24
- !
- interface Ethernet1
- channel-group 14 mode active
- !
- interface Ethernet2
- channel-group 14 mode active
- !
- router ospf 200
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
-#. With all PE and CE nodes configured, verify Layer 2 connectivity between CE nodes **EOS9**, **EOS10** and **EOS14**.
-
- #. Verify that all CE interfaces are able to resolve ARP for their peers and that dual-homed CEs have succesfully
- negotiated an LACP Port-Channel
-
- .. note::
-
- The Service Provider network is emulating the behavior of a Layer 2 switch and as such should be transparent to
- the Layer 3 operations between the CE nodes.
-
- .. code-block:: text
-
- show ip arp
- show port-channel summary
-
- #. Verify OSPF adjacencies have formed between the CEs and routes have been exchanged.
-
- .. code-block:: text
-
- show ip ospf neighbor
- show ip route
-
- #. Test connectivity between CE Loopback0 interfaces from **EOS9** to **EOS14**.
-
- .. code-block:: text
-
- ping 14.14.14.14 source 9.9.9.9
-
-#. Finally, verify the EVPN control-plane and MPLS data-plane for the customer L2VPN.
-
- #. Verify the local MAC address-table on **EOS3** as an example.
-
- .. note::
-
- The MACs tied to port ``Mt1``, or MPLStunnel1 are remote EVPN learned MACs.
-
- .. code-block:: text
-
- show mac address-table vlan 20
-
- #. Verify the EVPN Type-2 route advertisements on **EOS3**.
-
- .. note::
-
- The key fields to track, again similar to the L3VPN, are the **RD** which denotes the originator of the specified
- EVPN Type-2 (MAC-IP) route, the **RT** which denotes the associated Customer VRF and the assigned **MPLS label**,
- which represents the VPN or VLAN label that EOS dynamically assigns. Additionally, any MAC learned via an EVPN
- A-A Port-Channel will have the associated **ESI** value populated.
-
- .. code-block:: text
-
- show bgp evpn summary
- show bgp evpn route-type mac-ip detail
-
- #. Display the EVPN Type-3 route advertisements on **EOS3**.
-
- .. note::
-
- Each PE node in the lab should send a Type-3 **IMET** route to express their interest in receiving BUM traffic
- for VLAN 20.
-
- .. code-block:: text
-
- show bgp evpn route-type imet detail
-
- #. Validate the control-plane for the local LACP Port-Channel on **EOS3**.
-
- .. note::
-
- When viewing the EVPN instance, note that one of the two routers in the ES has been elected the
- ``Designated forwarder`` for BUM traffic for the CE LAG.
-
- .. code-block:: text
-
- show port-channel summary
- show bgp evpn route-type ethernet-segment esi 0000:0200:0200:1000:0304 detail
- show bgp evpn instance
-
- #. Verify Layer 2 ECMP towards remotely attached CE MAC of **EOS14** towards **EOS6** and **EOS8** by running the
- following commands on **EOS3**.
-
- .. note::
-
- For this step, the MAC address of **EOS14** will vary per lab. Log into **EOS14** and view the MAC of the LAG on
- **EOS14** with the command ``show interface Port-Channel14``. That MAC should be substituted in the below commands
- where you see the MAC ``041b.5d09.3f85``.
-
- .. code-block:: text
-
- show mac address-table address 041b.5d09.3f85
- show bgp evpn route-type mac-ip 041b.5d09.3f85
- show bgp evpn route-type auto-discovery esi 0000:0200:0200:2000:0608 detail
- show l2rib output mac 041b.5d09.3f85
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c3_eline_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c3_eline_lab_guide.rst
deleted file mode 100644
index 95f4769b2..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c3_eline_lab_guide.rst
+++ /dev/null
@@ -1,171 +0,0 @@
-Deploy E-LINE Service for Customer-3
-=========================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_c3_eline.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-evpn-supplemental-labs`` to access the Supplemental Labs.
-
- #. Type ``c3eline`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. Customer-3 is attached to two Service Provider nodes, **EOS1** and **EOS4**. These will be **PE** nodes. Since this
- customer will require a Layer 1 Wire Service, create a local patch and use EVPN to advertise the customers port to
- other interested PEs.
-
- #. On **EOS1** and **EOS4**, configure the port facing CE devices **EOS17** and **EOS16** respectively.
-
- .. note::
-
- For a port-based service (which differs from a VLAN-based service), the CE-facing interface must be configured
- as a routed interface with the ``no switchport`` command. We will also disable LLDP so those frames are not
- consumed on the interface.
-
- .. code-block:: text
-
- interface Ethernet6
- no switchport
- no lldp transmit
- no lldp receive
-
- #. On **EOS1** and **EOS4**, create the logical patch name ``C3-E-LINE`` between the local CE interface and the
- Virtual Private Wire Service, or **VPWS**, that will be created with a VPWS name of ``CUSTOMER-3`` and a pseudowire
- name of ``EOS16-EOS17``.
-
- .. note::
-
- As the name implies, the ``patch-panel`` configuration allows for stitching together local and remote interfaces
- using an emulated Layer 1 Service.
-
- .. code-block:: text
-
- patch panel
- patch C3-E-LINE
- connector 1 interface Ethernet6
- connector 2 pseudowire bgp vpws CUSTOMER-3 pseudowire EOS16-EOS17
-
- #. On **EOS1**, leverage EVPN to advertise the Layer 1 Service to the Route Reflector using the same VPWS and pseudowire
- name as the previous step. In addtion, use the format of **** ``:3`` as the RD and ``3:1617`` as the RT.
- Finally, set the local VPWS ID to ``16`` and the remote VPWS ID to ``17``. These values must be unique within the VPWS
- instance.
-
- .. note::
-
- These values tie together the previous patch configuration with the received BGP EVPN routes we will see later in
- this lab.
-
- .. code-block:: text
-
- router bgp 100
- !
- vpws CUSTOMER-3
- rd 1.1.1.1:3
- route-target import export evpn 3:1617
- !
- pseudowire EOS16-EOS17
- evpn vpws id local 16 remote 17
-
- #. Repeat the previous step on **EOS4** while adjusting the variables accordingly to match the other side of the service.
-
- .. code-block:: text
-
- router bgp 100
- !
- vpws CUSTOMER-3
- rd 4.4.4.4:3
- route-target import export evpn 3:1617
- !
- pseudowire EOS16-EOS17
- evpn vpws id local 17 remote 16
-
-#. Configure the Customer-3 CE nodes to connect to each other over the emulated LINE service.
-
- #. Since the Service Provider is providing a Layer 1 service, configure the CE on **EOS16** and **EOS17** interfaces
- as OSPF peers as if they were attached back to back with a cable.
-
- .. note::
-
- The IP addressing on the links has already been configured by the base IPv4 configuration template.
-
- .. code-block:: text
-
- interface Ethernet1
- ip ospf network point-to-point
- !
- router ospf 300
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
-#. With all PE and CE nodes configured, verify connectivity between CE nodes **EOS16** and **EOS17**.
-
- #. Verify that all CE interfaces are able to resolve ARP for their peers and are able to see each other as LLDP neighbors.
-
- .. note::
-
- The Service Provider network is emulating the behavior of a Layer 1 connection and as such should be transparent to
- the Layer 2 and 3 operations between the CE nodes. Note that depending on the holdtime of the CE LLDP table, the
- PEs may still be present, but they should age out.
-
- .. code-block:: text
-
- show ip arp
- show lldp neighbor
-
- #. Verify OSPF adjacencies have formed between the CEs and routes have been exchanged.
-
- .. code-block:: text
-
- show ip ospf neighbor
- show ip route
-
- #. Test connectivity between CE Loopback0 interfaces from **EOS16** to **EOS17**.
-
- .. code-block:: text
-
- ping 17.17.17.17 source 16.16.16.16
-
-#. Next, verify the EVPN control-plane and MPLS data-plane for the customer E-LINE service.
-
- #. On **EOS1**, verify the local patch status.
-
- .. note::
-
- Take note of the ``MPLS label`` assigned to the local and remote nodes and that they differ, since the VPN label
- for the E-LINE service is locally significant.
-
- .. code-block:: text
-
- show interface Ethernet6
- show patch panel detail
-
- #. Display the EVPN routes from **EOS4** on **EOS1** associated to the VPWS.
-
- .. note::
-
- The VPWS pseudowire ID is included as part of the EVPN Type-1 route.
-
- .. code-block:: text
-
- show bgp evpn route-type auto-discovery rd 4.4.4.4:3 detail
-
- #. Verify the forwarding path for traffic on the VPWS towards **EOS4** on **EOS1**.
-
- .. note::
-
- The In/Out section of the ``show patch panel forwarding`` output will show the VPN label for the VPWS and the
- associated IS-IS SR tunnel index for the destination PE. This tunnel index can then be found in the output of the
- ``show isis segment-routing tunnel`` command.
-
- .. code-block:: text
-
- show patch panel forwarding
- show isis segment-routing tunnel
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c3_ldppw_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c3_ldppw_lab_guide.rst
deleted file mode 100644
index 376038b3f..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c3_ldppw_lab_guide.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-Deploy E-LINE Service for Customer-3
-=========================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_c3_eline.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-ipvpn-labs`` to access the LDP and IPVPN Labs.
-
- #. Type ``c3eline`` at the Labs Selection Menu. The script will configure the topology with the necessary prerequisites.
-
-#. Customer-3 is attached to two Service Provider nodes, **EOS1** and **EOS4**. These will be **PE** nodes. Since this
- customer will require a Layer 1 Wire Service, create a local patch and use an LDP Pseudowire to advertise the customers
- port to the other interested PE.
-
- #. On **EOS1** and **EOS4**, configure the port facing CE devices **EOS17** and **EOS16** respectively.
-
- .. note::
-
- For a port-based service (which differs from a VLAN-based service), the CE-facing interface must be configured
- as a routed interface with the ``no switchport`` command. We will also disable LLDP so those frames are not
- consumed on the interface.
-
- .. code-block:: text
-
- interface Ethernet6
- no switchport
- no lldp transmit
- no lldp receive
-
- #. On **EOS1** and **EOS4**, create the logical patch name ``C3-E-LINE`` between the local CE interface and an,
- that will be created with a name of ``EOS16-EOS17``.
-
- .. note::
-
- As the name implies, the ``patch-panel`` configuration allows for stitching together local and remote interfaces
- using an emulated Layer 1 Service.
-
- .. code-block:: text
-
- patch panel
- patch C3-E-LINE
- connector 1 interface Ethernet6
- connector 2 pseudowire ldp EOS16-EOS17
-
- #. On **EOS1**, leverage LDP to advertise the Layer 1 Service to the peer node of **EOS4**. In addtion, use an MTU value
- of 9000. Use the pseudowire name of ``EOS16-EOS17`` and an ID of ``1617``. These values must match on both ends of the
- service.
-
- .. note::
-
- These values tie together the previous patch configuration.
-
- .. code-block:: text
-
- mpls ldp
- !
- pseudowires
- mtu 9000
- !
- pseudowire EOS16-EOS17
- neighbor 4.4.4.4
- pseudowire-id 1617
-
- #. Repeat the previous step on **EOS4** while adjusting the variables accordingly to match the other side of the service.
-
- .. code-block:: text
-
- mpls ldp
- !
- pseudowires
- mtu 9000
- !
- pseudowire EOS16-EOS17
- neighbor 1.1.1.1
- pseudowire-id 1617
-
-#. Configure the Customer-3 CE nodes to connect to each other over the emulated LINE service.
-
- #. Since the Service Provider is providing a Layer 1 service, configure the CE on **EOS16** and **EOS17** interfaces
- as OSPF peers as if they were attached back to back with a cable.
-
- .. note::
-
- The IP addressing on the links has already been configured by the base IPv4 configuration template.
-
- .. code-block:: text
-
- interface Ethernet1
- ip ospf network point-to-point
- !
- router ospf 300
- network 0.0.0.0/0 area 0.0.0.0
- max-lsa 12000
-
-#. With all PE and CE nodes configured, verify connectivity between CE nodes **EOS16** and **EOS17**.
-
- #. Verify that all CE interfaces are able to resolve ARP for their peers and are able to see each other as LLDP neighbors.
-
- .. note::
-
- The Service Provider network is emulating the behavior of a Layer 1 connection and as such should be transparent to
- the Layer 2 and 3 operations between the CE nodes. Note that depending on the holdtime of the CE LLDP table, the
- PEs may still be present, but they should age out.
-
- .. code-block:: text
-
- show ip arp
- show lldp neighbor
-
- #. Verify OSPF adjacencies have formed between the CEs and routes have been exchanged.
-
- .. code-block:: text
-
- show ip ospf neighbor
- show ip route
-
- #. Test connectivity between CE Loopback0 interfaces from **EOS16** to **EOS17**.
-
- .. code-block:: text
-
- ping 17.17.17.17 source 16.16.16.16
-
-#. Next, verify the LDP control-plane and MPLS data-plane for the customer E-LINE service.
-
- #. On **EOS1**, verify the local patch status.
-
- .. note::
-
- Take note of the ``MPLS label`` assigned to the local and remote nodes and that they may differ, since the VPN label
- for the E-LINE service is locally significant.
-
- .. code-block:: text
-
- show interface Ethernet6
- show patch panel detail
-
- #. Verify the forwarding path for traffic on the pseudowire towards **EOS4** on **EOS1**.
-
- .. note::
-
- The In/Out section of the ``show patch panel forwarding`` output will show the VPN label for the PW and the
- associated LDP tunnel index for the destination PE. This tunnel index can then be found in the output of the
- ``show tunnel rib brief`` command.
-
- .. code-block:: text
-
- show patch panel forwarding
- show mpls ldp tunnel
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c4_ipvpn_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c4_ipvpn_lab_guide.rst
deleted file mode 100644
index ffe85a4c4..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c4_ipvpn_lab_guide.rst
+++ /dev/null
@@ -1,238 +0,0 @@
-Deploy L3VPN Service for Customer-4
-=====================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_c4_l3vpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-ipvpn-labs`` to access the LDP and IPVPN Labs.
-
- #. Type ``c4l3vpn`` at the Labs Selection Menu. The script will configure the topology with the necessary prerequisites.
-
-#. Customer-4 is attached to two Service Provider nodes, **EOS7** and **EOS8**. These will be our **PE** nodes.
- Since this customer will require a Layer 3 VPN Service, create an isolated VRF for their traffic and use IP-VPN
- to advertise the customer networks to other interested PEs.
-
- #. Create a VRF Instance called ``CUSTOMER-4`` on **EOS7** and **EOS8**.
-
- .. note::
-
- The steps in this lab will be similar to the Customer-1 L3VPN lab, demonstrating the repeatable nature of
- an IP-VPN deployment, which can easily be automated with CloudVision once the concepts are understood.
-
- .. code-block:: text
-
- vrf instance CUSTOMER-4
- !
- ip routing vrf CUSTOMER-4
- !
- ipv6 unicast-routing vrf CUSTOMER-4
-
- #. Place the interface attached to the **CE** node for Customer-4 into VRF ``CUSTOMER-4`` on **EOS7** to ensure their
- traffic remains isolated.
-
- .. code-block:: text
-
- interface Ethernet4
- vrf CUSTOMER-4
- ip address 10.7.19.7/24
- ipv6 address fd00:7:19::7/64
-
- #. Repeat the above step for the interface on **EOS8** attached to Customer-4 CE device.
-
- .. code-block:: text
-
- interface Ethernet5
- vrf CUSTOMER-4
- ip address 10.8.18.8/24
- ipv6 address fd00:8:18::8/64
-
- #. Now leverage BGP to advertise VPN reachability of any routes learned in VRF ``CUSTOMER-4`` from the customer by
- setting an **RD** and an **RT**, within BGP on **EOS7** and **EOS8**. It should have a unique **RD** following the
- format of **** ``:4`` and the **RT** on all routers in the VPN should match as ``4:4``.
-
- **EOS7**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- rd 7.7.7.7:4
- route-target import vpn-ipv4 4:4
- route-target import vpn-ipv6 4:4
- route-target export vpn-ipv4 4:4
- route-target export vpn-ipv6 4:4
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- rd 8.8.8.8:4
- route-target import vpn-ipv4 4:4
- route-target import vpn-ipv6 4:4
- route-target export vpn-ipv4 4:4
- route-target export vpn-ipv6 4:4
-
- #. Finally, define the BGP peers facing the CE devices for route exchange into the customer VRF on **EOS7** and **EOS8**.
- The CE nodes (**EOS19** and **EOS18**) will use BGP ASN 200.
-
- **EOS7**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- neighbor 10.7.19.19 remote-as 200
- neighbor 10.7.19.19 maximum-routes 12000
- neighbor fd00:7:19::19 remote-as 200
- neighbor fd00:7:19::19 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.7.19.19 activate
- !
- address-family ipv6
- neighbor fd00:7:19::19 activate
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- neighbor 10.8.18.18 remote-as 123
- neighbor 10.8.18.18 maximum-routes 12000
- neighbor fd00:8:18::18 remote-as 200
- neighbor fd00:8:18::18 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.8.18.18 activate
- !
- address-family ipv6
- neighbor fd00:8:18::18 activate
-
- #. Verify configurations and VRF status. There will be no routes or BGP peers in our VRF as of yet since we have not
- peered with the CE devices.
-
- .. code-block:: text
-
- show running-config section CUSTOMER-4
- show vrf
-
-#. Now that the PE nodes are configured, configure CE nodes **EOS18** and **EOS19** for Layer 3 attachment to the
- Service Provider network.
-
- #. Configure the BGP peerings to the PE devices on **EOS18** and **EOS19** ensuring that each router's Loopback0
- address is advertised to the attached PE.
-
- .. note::
-
- Since both CE devices are using BGP ASN ``200``, we need to ensure BGP allows the router's own ASN in the
- AS-PATH, which normally is marked as an invalid route, with the ``allowas-in`` option.
-
- **EOS18**
-
- .. code-block:: text
-
- router bgp 200
- router-id 18.18.18.18
- neighbor 10.8.18.8 remote-as 100
- neighbor 10.8.18.8 allowas-in 1
- neighbor 10.8.18.8 maximum-routes 12000
- neighbor fd00:8:18::8 remote-as 100
- neighbor fd00:8:18::8 allowas-in 1
- neighbor fd00:8:18::8 maximum-routes 12000
- !
- address-family ipv4
- network 18.18.18.18/32
- !
- address-family ipv6
- neighbor fd00:8:18::8 activate
- network 18:18:18::18/128
-
- **EOS19**
-
- .. code-block:: text
-
- router bgp 200
- router-id 19.19.19.19
- neighbor 10.7.19.7 remote-as 100
- neighbor 10.7.19.7 allowas-in 1
- neighbor 10.7.19.7 maximum-routes 12000
- neighbor fd00:7:19::7 remote-as 100
- neighbor fd00:7:19::7 allowas-in 1
- neighbor fd00:7:19::7 maximum-routes 12000
- !
- address-family ipv4
- network 19.19.19.19/32
- !
- address-family ipv6
- neighbor fd00:7:19::7 activate
- network 19:19:19::19/128
-
-#. With the peerings fully established, verify and test connectivity between the Customer-4 locations.
-
- #. Verify BGP status and route exchange with the Service Provider network on **EOS18**
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp detail
- show ip route
- show ipv6 bgp summary
- show ipv6 bgp detail
- show ipv6 route
-
- #. Test connectivity from **EOS18** to **EOS19** using Loopback0 IP addressing.
-
- .. note::
-
- As seen previously, MPLS tunneling of IPv6 traffic does not function in vEOS-lab. The control-plane should form
- correctly and can be verified using show commands.
-
- .. code-block:: text
-
- ping 19.19.19.19 source 18.18.18.18
-
-#. From the Service Provider nodes, verify route exchange and MPLS control-plane status.
-
- #. Display the peering status and routes being advertised by **EOS18** on **EOS8**.
-
- .. code-block:: text
-
- show ip bgp summary vrf CUSTOMER-4
- show ip bgp neighbor 10.8.18.18 routes vrf CUSTOMER-4
- show ipv6 bgp summary vrf CUSTOMER-4
- show ipv6 bgp peers 10.8.18.18 routes vrf CUSTOMER-4
-
- #. Now validate the IP-VPN routes are exchanged between the PE nodes **EOS7** and **EOS8** via the Route
- Relector.
-
- .. code-block:: text
-
- show bgp vpn-ipv4 summary
- show bgp vpn-ipv4 detail
- show bgp vpn-ipv6 summary
- show bgp vpn-ipv6 detail
-
- #. Finally, validate the forwarding path traffic will take for each destination in the customer VRF on the Service
- Provider network PEs **EOS7** and **EOS8**.
-
- .. code-block:: text
-
- show ip route vrf CUSTOMER-1
- show ipv6 route vrf CUSTOMER-1
- show mpls route
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c4_l3vpn_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c4_l3vpn_lab_guide.rst
deleted file mode 100644
index 9b0793301..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/c4_l3vpn_lab_guide.rst
+++ /dev/null
@@ -1,190 +0,0 @@
-Deploy L3VPN Service for Customer-4
-=====================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_c4_l3vpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-evpn-supplemental-labs`` to access the Supplemental Labs.
-
- #. Type ``c4l3vpn`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. Customer-4 is attached to two Service Provider nodes, **EOS7** and **EOS8**. These will be our **PE** nodes.
- Since this customer will require a Layer 3 VPN Service, create an isolated VRF for their traffic and use EVPN
- to advertise the customer networks to other interested PEs.
-
- #. Create a VRF Instance called ``CUSTOMER-4`` on **EOS7** and **EOS8**.
-
- .. note::
-
- The steps in this lab will be similar to the Customer-1 L3VPN lab, demonstrating the repeatable nature of
- an EVPN deployment, which can easily be automated with CloudVision once the concepts are understood.
-
- .. code-block:: text
-
- vrf instance CUSTOMER-4
- !
- ip routing vrf CUSTOMER-4
-
- #. Place the interface attached to the **CE** node for Customer-4 into VRF ``CUSTOMER-4`` on **EOS7** to ensure their
- traffic remains isolated.
-
- .. code-block:: text
-
- interface Ethernet4
- vrf CUSTOMER-4
- ip address 10.7.19.7/24
-
- #. Repeat the above step for the interface on **EOS8** attached to Customer-4 CE device.
-
- .. code-block:: text
-
- interface Ethernet5
- vrf CUSTOMER-4
- ip address 10.8.18.8/24
-
- #. Now leverage BGP EVPN to advertise reachability of any routes learned in VRF ``CUSTOMER-4`` from the customer by
- setting an **RD** and an **RT**, within BGP on **EOS7** and **EOS8**. It should have a unique **RD** following the
- format of **** ``:4`` and the **RT** on all routers in the VPN should match as ``4:4``.
-
- **EOS7**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- rd 7.7.7.7:4
- route-target import evpn 4:4
- route-target export evpn 4:4
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- rd 8.8.8.8:4
- route-target import evpn 4:4
- route-target export evpn 4:4
-
- #. Finally, define the BGP peers facing the CE devices for route exchange into the customer VRF on **EOS7** and **EOS8**.
- The CE nodes (**EOS19** and **EOS18**) will use BGP ASN 200.
-
- **EOS7**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- neighbor 10.7.19.19 remote-as 200
- neighbor 10.7.19.19 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.7.19.19 activate
-
- **EOS8**
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- neighbor 10.8.18.18 remote-as 123
- neighbor 10.8.18.18 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.8.18.18 activate
-
- #. Verify configurations and VRF status. There will be no routes or BGP peers in our VRF as of yet since we have not
- peered with the CE devices.
-
- .. code-block:: text
-
- show running-config section CUSTOMER-4
- show vrf
-
-#. Now that the PE nodes are configured, configure CE nodes **EOS18** and **EOS19** for Layer 3 attachment to the
- Service Provider network.
-
- #. Configure the BGP peerings to the PE devices on **EOS18** and **EOS19** ensuring that each router's Loopback0
- address is advertised to the attached PE.
-
- .. note::
-
- Since both CE devices are using BGP ASN ``200``, we need to ensure BGP allows the router's own ASN in the
- AS-PATH, which normally is marked as an invalid route, with the ``allowas-in`` option.
-
- **EOS18**
-
- .. code-block:: text
-
- router bgp 200
- router-id 18.18.18.18
- neighbor 10.8.18.8 remote-as 100
- neighbor 10.8.18.8 allowas-in 1
- neighbor 10.8.18.8 maximum-routes 12000
- network 18.18.18.18/32
-
- **EOS19**
-
- .. code-block:: text
-
- router bgp 200
- router-id 19.19.19.19
- neighbor 10.7.19.7 remote-as 100
- neighbor 10.7.19.7 allowas-in 1
- neighbor 10.7.19.7 maximum-routes 12000
- network 19.19.19.19/32
-
-#. With the peerings fully established, verify and test connectivity between the Customer-4 locations.
-
- #. Verify BGP status and route exchange with the Service Provider network on **EOS18**
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp detail
- show ip route
-
- #. Test connectivity from **EOS18** to **EOS19** using Loopback0 IP addressing.
-
- .. code-block:: text
-
- ping 19.19.19.19 source 18.18.18.18
-
-#. From the Service Provider nodes, verify route exchange and MPLS control-plane status.
-
- #. Display the peering status and routes being advertised by **EOS18** on **EOS8**.
-
- .. code-block:: text
-
- show ip bgp summary vrf CUSTOMER-4
- show ip bgp neighbor 10.8.18.18 routes vrf CUSTOMER-4
-
- #. Now validate the EVPN routes are exchanged between the PE nodes **EOS7** and **EOS8** via the Route
- Relector.
-
- .. code-block:: text
-
- show bgp evpn summary
- show bgp evpn route-type ip-prefix ipv4 detail | section 4:4
-
- #. Finally, validate the forwarding path traffic will take for each destination in the customer VRF on the Service
- Provider network PEs **EOS7** and **EOS8**.
-
- .. code-block:: text
-
- show ip route vrf CUSTOMER-4
- show mpls route
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/cent_svcs_ipvpn_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/cent_svcs_ipvpn_lab_guide.rst
deleted file mode 100644
index 60eb33b49..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/cent_svcs_ipvpn_lab_guide.rst
+++ /dev/null
@@ -1,305 +0,0 @@
-Offer Centralized Services to L3VPN Customers
-=========================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_cent_svcs_l3vpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-ipvpn-labs`` to access the LDP and IPVPN Labs.
-
- #. Type ``centsvcs`` at the Labs Selection Menu. The script will configure the topology with the necessary prerequisites.
-
-#. The Centralized Service is attached to Service Provider node **EOS3**. These will be our **PE** node. Since this
- Centralized Service will be accessed via a Layer 3 VPN Service, create an isolated VRF for its traffic and use EVPN
- to advertise the customer networks to other interested PEs.
-
- #. Create a VRF Instance called ``SVC`` on **EOS3**.
-
- .. note::
-
- While this service will be accessed by Customers attached to other PEs, we will leverage IP-VPN to allow for
- inter-VRF communication and only require the ``SVC`` VRF where the node attaches to the Service Provider network.
-
- .. code-block:: text
-
- vrf instance SVC
- !
- ip routing vrf SVC
- !
- ipv6 unicast-routing vrf SVC
-
- #. Place the interface attached to the **CE** node for the Centralized Service into VRF ``SVC`` on **EOS3** to ensure its
- traffic remains isolated.
-
- .. code-block:: text
-
- interface Ethernet6
- vrf SVC
- ip address 10.3.20.3/24
- ipv6 address fd00:3:20::3/64
-
- #. Now leverage IP-VPN to advertise reachability of any routes learned in VRF ``SVC`` from the Centralized Service by
- setting an **RD** and an **RT** within BGP on **EOS3**. It should have a unique **RD** following the format of
- **** ``:5`` and the **RT** on all routers in the VPN should be ``5:5``.
-
- .. note::
-
- Unlike our previous L3VPN setups, for the Centralized Service model, we will only need to ``export`` the routes
- learned in the ``SVC`` VRF with this **RT**. In a later step, we will see how inter-VRF route-leaking can be
- controlled using a separate **RT** for import.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf SVC
- rd 3.3.3.3:5
- route-target export vpn-ipv4 5:5
- route-target export vpn-ipv6 5:5
-
- #. Finally, define the BGP peer facing the Centralized Service node for route exchange into the VRF on **EOS3**. The CE
- node (**EOS20**) will use BGP ASN 500.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf SVC
- neighbor 10.3.20.20 remote-as 500
- neighbor 10.3.20.20 maximum-routes 12000
- neighbor fd00:3:20::20 remote-as 500
- neighbor fd00:3:20::20 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.3.20.20 activate
- !
- address-family ipv6
- neighbor fd00:3:20::20 activate
-
-#. Now that the PE node is configured, configure CE node **EOS20** for Layer 3 attachment to the Service Provider network.
-
- #. Configure the BGP peerings to the PE devices on **EOS20** ensuring that the router's Loopback0 address is advertised
- to the attached PE.
-
- .. code-block:: text
-
- router bgp 500
- router-id 20.20.20.20
- neighbor 10.3.20.3 remote-as 100
- neighbor 10.3.20.3 maximum-routes 12000
- neighbor fd00:3:20::3 remote-as 100
- neighbor fd00:3:20::3 maximum-routes 12000
- !
- address-family ipv4
- network 20.20.20.20/32
- !
- address-family ipv6
- neighbor fd00:3:20::3 activate
- network 20:20:20::20/128
-
- #. Verify the BGP peering is active but that no routes have been learned from the PE.
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp detail
- show ip route
- show ipv6 bgp summary
- show ipv6 bgp detail
- show ipv6 route
-
-#. With the Centralized Service attached to the Service Provider network, configure restricted access to the service IP
- of ``20.20.20.20`` without using ACLs, allowing only **EOS11** and **EOS19** to access the Service.
-
- #. First, define a new **RT** of ``500:500`` that will be used for importing routes from **EOS11** and **EOS19** into the
- ``SVC`` VRF on **EOS3**
-
- .. note::
-
- The PE Nodes attached to Customer-1 and Customer-2 will handle the ``export`` of the routes for **EOS11** and
- **EOS19** with the proper **RT**, so on **EOS3** we only need to worry about importing VPNv4 and v6 routes with
- ``500:500`` into the Centralized Services VRF.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf SVC
- route-target import vpn-ipv4 500:500
- route-target import vpn-ipv6 500:500
-
- #. Now, export the route for ``11.11.11.11/32`` and ``11:11:11::11/128`` from the Customer-1 VRF on PE nodes **EOS1**
- using the **RT** of ``500:500``. To ensure only the route for **EOS11** is exported on the PEs, use a Route-Map and
- Prefix-List to control application of the **RT**.
-
- .. note::
-
- Applying the route-map to the IP-VPN ``export`` statement will allow ``500:500`` to be tagged onto the VPN route
- in addition to the Customer-1 default **RT** of ``1:1``.
-
- .. code-block:: text
-
- ip prefix-list SVC-ACCESS seq 10 permit 11.11.11.11/32
- !
- ipv6 prefix-list SVC-ACCESS
- seq 10 permit 11:11:11::11/128
- !
- route-map EXPORT-TO-SVC permit 10
- match ip address prefix-list SVC-ACCESS
- set extcommunity rt 500:500 additive
- !
- route-map EXPORT-TO-SVC permit 20
- match ipv6 address prefix-list SVC-ACCESS
- set extcommunity rt 500:500 additive
- !
- route-map EXPORT-TO-SVC permit 30
- !
- router bgp 100
- !
- vrf CUSTOMER-1
- route-target export vpn-ipv4 route-map EXPORT-TO-SVC
- route-target export vpn-ipv6 route-map EXPORT-TO-SVC
-
- #. Similarly, on **EOS7**, configure a Route-Map and Prefix-List to export the route for **EOS19**, ``19.19.19.19/32``,
- with the **RT** of ``500:500``.
-
- .. code-block:: text
-
- ip prefix-list SVC-ACCESS seq 20 permit 19.19.19.19/32
- !
- ipv6 prefix-list SVC-ACCESS
- seq 10 permit 19:19:19::19/128
- !
- route-map EXPORT-TO-SVC permit 10
- match ip address prefix-list SVC-ACCESS
- set extcommunity rt 500:500 additive
- !
- route-map EXPORT-TO-SVC permit 20
- match ipv6 address prefix-list SVC-ACCESS
- set extcommunity rt 500:500 additive
- !
- route-map EXPORT-TO-SVC permit 30
- !
- router bgp 100
- !
- vrf CUSTOMER-4
- route-target export vpn-ipv4 route-map EXPORT-TO-SVC
- route-target export vpn-ipv6 route-map EXPORT-TO-SVC
-
- #. Now, allow PE **EOS1** to import the route for the Centralized Service with the **RT** of ``5:5`` into the VRF for
- Customer-1.
-
- .. note::
-
- This will allow the PE to advertise the route for the Centralized Service, ``20.20.20.20/32`` and
- ``20:20:20::20/128``, to the attached CE node.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- route-target import vpn-ipv4 5:5
- route-target import vpn-ipv6 5:5
-
- #. Finally, repeat the above step on **EOS7** to import the Centralized Service route into the VRF for Customer-4.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- route-target import vpn-ipv4 5:5
- route-target import vpn-ipv6 5:5
-
-#. With the necessary inter-VRF route leaking configuration in place, validate the **EOS11** and **EOS19** can reach the
- Centralized Service while other CE nodes for the Customers cannot.
-
- #. View the routing tables of **EOS11** and **EOS19** to ensure the route for the Centralized Service, ``20.20.20.20/32``
- and ``20:20:20::20/128`` is present.
-
- .. code-block:: text
-
- show ip route 20.20.20.20
- show ipv6 route 20:20:20::20
-
- #. Verify connectivity from **EOS11** and **EOS19** to the Centralized Service at ``20.20.20.20`` from each router's
- Loopback0 IP.
-
- .. note::
-
- As mentioned earlier, MPLS forwarding for IPv6 overlay traffic does not working in vEOS-lab. The control-plane can
- still be validated for IPv6.
-
- **EOS11**
-
- .. code-block:: text
-
- ping 20.20.20.20 source 11.11.11.11
-
- **EOS19**
-
- .. code-block:: text
-
- ping 20.20.20.20 source 19.19.19.19
-
- #. Display the routing table of **EOS20** to ensure only the routes for the allowed Customer nodes are present.
-
- .. note::
-
- Only routes for the Loopback0 interfaces of **EOS11** and **EOS19** should be learned from the Service Provider
- network.
-
- .. code-block:: text
-
- show ip route bgp
- show ipv6 route bgp
-
- #. Confirm that other Customer-1 and Customer-2 nodes cannot access the Centralized Service.
-
- .. note::
-
- **EOS12** and **EOS13** will have the route for the Centralized Service due to redistribution of BGP into OSPF, but
- since the Centralized Service does not have a return route, no connections can be completed. Other customer nodes
- will not have the route at all.
-
- .. code-block:: text
-
- show ip route bgp
- show ipv6 route bgp
- ping 20.20.20.20 source ****
-
-#. On the Service Provider network, verify that the Centralized Service routes and approved Customer node routes are being
- exchanged with the proper IP-VPN and MPLS information.
-
- #. On **EOS3**, verify the incoming routes for forwarding path for **EOS11** and **EOS19** from the ``SVC`` VRF.
-
- .. note::
-
- The VPN routes have two RTs attached to them; one from the standard L3VPN export and one from the Route-Map to
- ensure it is imported properly into the ``SVC`` VRF. Since the Route-Map has the ``additive`` keyword, it will allow
- both to be present and not overwrite.
-
- .. code-block:: text
-
- show bgp vpn-ipv4 detail | section 500:500
- show bgp vpn-ipv6 detail | section 500:500
- show ip route vrf SVC
- show ipv6 route vrf SVC
-
- #. On **EOS1**, verify the incoming routes for forwarding path for **EOS20** from the ``CUSTOMER-1`` VRF.
-
- .. code-block:: text
-
- show bgp vpn-ipv4 detail | section 5:5
- show bgp vpn-ipv6 detail | section 5:5
- show ip route vrf CUSTOMER-1
- show ipv6 route vrf CUSTOMER-1
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/cent_svcs_l3vpn_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/cent_svcs_l3vpn_lab_guide.rst
deleted file mode 100644
index 9867df862..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/cent_svcs_l3vpn_lab_guide.rst
+++ /dev/null
@@ -1,259 +0,0 @@
-Offer Centralized Services to L3VPN Customers
-=========================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_cent_svcs_l3vpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-evpn-supplemental-labs`` to access the Supplemental Labs.
-
- #. Type ``centsvc`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. The Centralized Service is attached to Service Provider node **EOS3**. These will be our **PE** node. Since this
- Centralized Service will be accessed via a Layer 3 VPN Service, create an isolated VRF for its traffic and use EVPN
- to advertise the customer networks to other interested PEs.
-
- #. Create a VRF Instance called ``SVC`` on **EOS3**.
-
- .. note::
-
- While this service will be accessed by Customers attached to other PEs, we will leverage EVPN to allow for
- inter-VRF communication and only require the ``SVC`` VRF where the node attaches to the Service Provider network.
-
- .. code-block:: text
-
- vrf instance SVC
- !
- ip routing vrf SVC
-
- #. Place the interface attached to the **CE** node for the Centralized Service into VRF ``SVC`` on **EOS3** to ensure its
- traffic remains isolated.
-
- .. code-block:: text
-
- interface Ethernet6
- vrf SVC
- ip address 10.3.20.3/24
-
- #. Now leverage BGP EVPN to advertise reachability of any routes learned in VRF ``SVC`` from the Centralized Service by
- setting an **RD** and an **RT** within BGP on **EOS3**. It should have a unique **RD** following the format of
- **** ``:5`` and the **RT** on all routers in the VPN should be ``5:5``.
-
- .. note::
-
- Unlike our previous L3VPN setups, for the Centralized Service model, we will only need to ``export`` the routes
- learned in the ``SVC`` VRF with this **RT**. In a later step, we will see how inter-VRF route-leaking can be
- controlled using a separate **RT** for import.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf SVC
- rd 3.3.3.3:5
- route-target export evpn 5:5
-
- #. Finally, define the BGP peer facing the Centralized Service node for route exchange into the VRF on **EOS3**. The CE
- node (**EOS20**) will use BGP ASN 500.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf SVC
- neighbor 10.3.20.20 remote-as 500
- neighbor 10.3.20.20 maximum-routes 12000
- !
- address-family ipv4
- neighbor 10.3.20.20 activate
-
-#. Now that the PE node is configured, configure CE node **EOS20** for Layer 3 attachment to the Service Provider network.
-
- #. Configure the BGP peerings to the PE devices on **EOS20** ensuring that the router's Loopback0 address is advertised
- to the attached PE.
-
- .. code-block:: text
-
- router bgp 500
- router-id 20.20.20.20
- neighbor 10.3.20.3 remote-as 100
- neighbor 10.3.20.3 maximum-routes 12000
- network 20.20.20.20/32
-
- #. Verify the BGP peering is active but that no routes have been learned from the PE.
-
- .. code-block:: text
-
- show ip bgp summary
- show ip bgp detail
- show ip route
-
-#. With the Centralized Service attached to the Service Provider network, configure restricted access to the service IP
- of ``20.20.20.20`` without using ACLs, allowing only **EOS12** and **EOS19** to access the Service.
-
- #. First, define a new **RT** of ``500:500`` that will be used for importing routes from **EOS12** and **EOS19** into the
- ``SVC`` VRF on **EOS3**
-
- .. note::
-
- The PE Nodes attached to Customer-1 and Customer-2 will handle the ``export`` of the routes for **EOS12** and
- **EOS19** with the proper **RT**, so on **EOS3** we only need to worry about importing EVPN Type-5 routes with
- ``500:500`` into the Centralized Services VRF.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf SVC
- route-target import evpn 500:500
-
- #. Now, export the route for ``12.12.12.12/32`` from the Customer-1 VRF on PE nodes **EOS1** and **EOS6** using the
- **RT** of ``500:500``. To ensure only the route for **EOS12** is exported on the PEs, use a Route-Map and Prefix-List
- to control application of the **RT**.
-
- .. note::
-
- Applying the route-map to the EVPN ``export`` statement will allow ``500:500`` to be tagged onto the EVPN Type-5
- route in addition to the Customer-1 default **RT** of ``1:1``.
-
- .. code-block:: text
-
- ip prefix-list SVC-ACCESS seq 10 permit 12.12.12.12/32
- !
- route-map EXPORT-TO-SVC permit 10
- match ip address prefix-list SVC-ACCESS
- set extcommunity rt 500:500 additive
- !
- route-map EXPORT-TO-SVC permit 20
- !
- router bgp 100
- !
- vrf CUSTOMER-1
- route-target export evpn route-map EXPORT-TO-SVC
-
- #. Similarly, on **EOS7**, configure a Route-Map and Prefix-List to export the route for **EOS19**, ``19.19.19.19/32``,
- with the **RT** of ``500:500``.
-
- .. code-block:: text
-
- ip prefix-list SVC-ACCESS seq 10 permit 19.19.19.19/32
- !
- route-map EXPORT-TO-SVC permit 10
- match ip address prefix-list SVC-ACCESS
- set extcommunity rt 500:500 additive
- !
- route-map EXPORT-TO-SVC permit 20
- !
- router bgp 100
- !
- vrf CUSTOMER-4
- route-target export evpn route-map EXPORT-TO-SVC
-
- #. Now, allow PEs **EOS1** and **EOS6** to import the route for the Centralized Service with the **RT** of ``5:5`` into
- the VRF for Customer-1.
-
- .. note::
-
- This will allow the PEs to advertise the route for the Centralized Service, ``20.20.20.20/32``, to the attached CE
- nodes.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-1
- route-target import evpn 5:5
-
- #. Finally, repeat the above step on **EOS7** to import the Centralized Service route into the VRF for Customer-4.
-
- .. code-block:: text
-
- router bgp 100
- !
- vrf CUSTOMER-4
- route-target import evpn 5:5
-
-#. With the necessary inter-VRF route leaking configuration in place, validate the **EOS12** and **EOS19** can reach the
- Centralized Service while other CE nodes for the Customers cannot.
-
- #. View the routing tables of **EOS12** and **EOS19** to ensure the route for the Centralized Service, ``20.20.20.20/32``
- is present.
-
- .. note::
-
- **EOS19** will receive the route directly via the BGP peering to the adjacent PE node. **EOS12** will have the route
- received via OSPF where it was redistributed by the Customer-1 CE nodes **EOS11** and **EOS13**.
-
- .. code-block:: text
-
- show ip route 20.20.20.20
-
- #. Verify connectivity from **EOS12** and **EOS19** to the Centralized Service at ``20.20.20.20`` from each router's
- Loopback0 IP.
-
- **EOS12**
-
- .. code-block:: text
-
- ping 20.20.20.20 source 12.12.12.12
-
- **EOS19**
-
- .. code-block:: text
-
- ping 20.20.20.20 source 19.19.19.19
-
- #. Display the routing table of **EOS20** to ensure only the routes for the allowed Customer nodes are present.
-
- .. note::
-
- Only routes for the Loopback0 interfaces of **EOS12** and **EOS19** should be learned from the Service Provider
- network.
-
- .. code-block:: text
-
- show ip route bgp
-
- #. Confirm that other Customer-1 and Customer-2 nodes cannot access the Centralized Service.
-
- .. note::
-
- **EOS11** and **EOS13** will have the route for the Centralized Service, but since the Centralized Service does not
- have a return route, no connections can be completed. Other customer nodes will not have the route at all.
-
- .. code-block:: text
-
- show ip route bgp
- ping 20.20.20.20 source ****
-
-#. On the Service Provider network, verify that the Centralized Service routes and approved Customer node routes are being
- exchanged with the proper EVPN and MPLS information.
-
- #. On **EOS3**, verify the incoming routes for forwarding path for **EOS12** and **EOS19** from the ``SVC`` VRF.
-
- .. note::
-
- The EVPN routes have two RTs attached to them; one from the standard L3VPN export and one from the Route-Map to
- ensure it is imported properly into the ``SVC`` VRF. Since the Route-Map has the ``additive`` keyword, it will allow
- both to be present and not overwrite.
-
- .. code-block:: text
-
- show bgp evpn route-type ip-prefix ipv4 detail | section 500:500
- show ip route vrf SVC
-
- #. On **EOS6**, verify the incoming routes for forwarding path for **EOS20** from the ``CUSTOMER-1`` VRF.
-
- .. code-block:: text
-
- show bgp evpn route-type ip-prefix ipv4 detail | section 5:5
- show ip route vrf CUSTOMER-1
-
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/evpn_setup_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/evpn_setup_lab_guide.rst
deleted file mode 100644
index b2e89651e..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/evpn_setup_lab_guide.rst
+++ /dev/null
@@ -1,151 +0,0 @@
-Prepare to Offer VPN Services to Customers via MP-BGP EVPN Control-Plane
-==================================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_evpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-evpn-base-labs`` to access the Base Setup Labs.
-
- #. Type ``evpn`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. We will now leverage BGP as the control-plane for our VPNs in the Service Provider network. Specifically, we will use iBGP
- with a Route Reflector to ease the configuration load and not require us to setup a full mesh of BGP peerings. Configure
- **EOS8** as the Route Reflector in the Service Provider Network.
-
- #. On **EOS8**, enable BGP with ASN 100. Also set a router-id and disable the IPv4
- Unicast Address-Family within BGP.
-
- .. note::
-
- By default, all BGP neighbors in EOS will try to peer in the IPv4 Unicast AF. Since
- we are only leveraging BGP for VPNs and IS-IS is providing our IPv4 underlay, there is
- no need for this additional overhead. We can change the default state of BGP to **not**
- attempt to peer using the IPv4 Unicast AF.
-
- .. code-block:: text
-
- router bgp 100
- router-id 8.8.8.8
- no bgp default ipv4-unicast
-
- #. Allow BGP to utilize ECMP when available by increasing the Maximum Paths allowed for a route.
-
- .. note::
-
- By default, BGP will only install a single best-path. In a network with multiple equal paths
- available, this setting will allow BGP to load balance across the available paths. This is
- covered further in a later lab.
-
- .. code-block:: text
-
- router bgp 100
- maximum-paths 2
-
- #. Activate the EVPN address-family within BGP and set the data-plane encapsulation type to MPLS.
-
- .. note::
-
- EVPN will provide a signaling mechanism for all our L2, L3 and wire services in the
- Service Provider network. By default, EOS will leverage VXLAN as a data-plane encapsulation
- for EVPN. We can again change the default behavior according to our desired architecture.
-
- .. code-block:: text
-
- router bgp 100
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
-
- #. To simplify BGP configuration, create a **peer group** to apply common BGP attributes
- to the other EOS nodes in the Service Provider network that will act as Route Reflector
- Clients. We will peer using iBGP as mentioned and use the router Loopback0 interfaces
- as the source. Ensure that standard and extended BGP communities and the EVPN address-family
- are enabled for this peer-group as well.
-
- .. note::
-
- In EOS, the ``send-community`` command alone will send all communities. You can selectively
- enable them if you would prefer to send only extended. EVPN requires the use of extended communities. Also
- note that EOS by default includes a ``maximum-routes`` setting of 12,000 for all BGP peers to prevent
- a peer from sending more routes than expected. This value can be changed per network requirements.
-
- .. code-block:: text
-
- router bgp 100
- neighbor PE-RRCLIENTS peer group
- neighbor PE-RRCLIENTS remote-as 100
- neighbor PE-RRCLIENTS update-source Loopback0
- neighbor PE-RRCLIENTS route-reflector-client
- neighbor PE-RRCLIENTS send-community
- neighbor PE-RRCLIENTS maximum-routes 12000
- !
- address-family evpn
- neighbor PE-RRCLIENTS activate
-
- #. Finally, apply the peer group to the necessary routers in the Service Provider network.
-
- .. note::
-
- Since BGP EVPN is only providing our VPN control-plane, only Provider Edge (or **PE**) nodes, which are nodes
- attached to customer devices, will require the BGP peering. This is in contrast to Provider (or **P**) nodes,
- which only connect to other Service Provider nodes. In this topology, all active nodes are functioning as **PE**
- so will require BGP EVPN peerings to the Route Reflector.
-
- .. code-block:: text
-
- router bgp 100
- neighbor 1.1.1.1 peer group PE-RRCLIENTS
- neighbor 3.3.3.3 peer group PE-RRCLIENTS
- neighbor 4.4.4.4 peer group PE-RRCLIENTS
- neighbor 6.6.6.6 peer group PE-RRCLIENTS
- neighbor 7.7.7.7 peer group PE-RRCLIENTS
-
- #. Verify configuration on **EOS8**. Since the other routers are not yet configured, there will be no peerings to check as
- of yet.
-
- .. code-block:: text
-
- show run section bgp
-
-#. Now configure the PE nodes in the Service Provider network as the Route Reflector clients.
-
- #. Again, this will be iBGP and the peerings will look very similar to the setup on **EOS8**. However, we will not need
- to leverage a peer group as all PE nodes will only peer with the Route Reflector. The below example is for **EOS1**.
- Repeat this for all other active Service Provider nodes (**EOS2** and **EOS5** are disabled in the Ring), changing the
- router-id to match Loopback0.
-
- .. code-block:: text
-
- router bgp 100
- router-id 1.1.1.1
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor 8.8.8.8 remote-as 100
- neighbor 8.8.8.8 update-source Loopback0
- neighbor 8.8.8.8 send-community
- neighbor 8.8.8.8 maximum-routes 12000
- !
- address-family evpn
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 8.8.8.8 activate
-
-#. Once all other PE nodes are configured, verify BGP peerings are in place.
-
- #. All PE nodes will only have one BGP peer, while the **EOS8** as the route-reflector will
- peer with all other PE nodes. You will see the peerings as ``Established`` but no routes
- should be exchanged as no VPNs are configured. Also note that the standard ``show ip bgp
- summary`` command should have no output since the IPv4 unicast AF is not activated.
-
- .. code-block:: text
-
- show bgp evpn summary
- show bgp neighbors
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/ipvpn_setup_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/ipvpn_setup_lab_guide.rst
deleted file mode 100644
index 3c867b380..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/ipvpn_setup_lab_guide.rst
+++ /dev/null
@@ -1,137 +0,0 @@
-Prepare to Offer VPN Services to Customers via MP-BGP IP-VPN Control-Plane
-==================================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_ipvpn.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-ipvpn-labs`` to access the LDP and IPVPN Labs.
-
- #. Type ``ipvpn`` at the Labs Selection Menu. The script will configure the topology with the necessary prerequisites.
-
-#. We will now leverage BGP as the control-plane for our VPNs in the Service Provider network. Specifically, we will use
- iBGP with a Route Reflector to ease the configuration load and not require us to setup a full mesh of BGP peerings.
- Configure **EOS8** as the Route Reflector in the Service Provider Network.
-
- #. On **EOS8**, enable BGP with ASN 100. Also set a router-id and disable the IPv4 Unicast Address-Family within BGP.
-
- .. note::
-
- By default, all BGP neighbors in EOS will try to peer in the IPv4 Unicast AF. Since we are only leveraging BGP
- for VPNs and IS-IS is providing our IPv4 underlay, there is no need for this additional overhead. We can change
- the default state of BGP to **not** attempt to peer using the IPv4 Unicast AF.
-
- .. code-block:: text
-
- router bgp 100
- router-id 8.8.8.8
- no bgp default ipv4-unicast
-
- #. Allow BGP to utilize ECMP when available by increasing the Maximum Paths allowed for a route.
-
- .. note::
-
- By default, BGP will only install a single best-path. In a network with multiple equal paths available, this
- setting will allow BGP to load balance across the available paths. This is covered further in a later lab.
-
- .. code-block:: text
-
- router bgp 100
- maximum-paths 2
-
- #. To simplify BGP configuration, create a **peer group** to apply common BGP attributes to the other EOS nodes in the
- Service Provider network that will act as Route Reflector Clients. We will peer using iBGP as mentioned and use the
- router Loopback0 interfaces as the source. Ensure that standard and extended BGP communities and the IP-VPN
- address-families are enabled for this peer-group as well.
-
- .. note::
-
- In EOS, the ``send-community`` command alone will send all communities. You can selectively enable them if you
- would prefer to send only extended. Also note that EOS by default includes a ``maximum-routes`` setting of 12,000
- for all BGP peers to prevent a peer from sending more routes than expected. This value can be changed per network
- requirements.
-
- .. code-block:: text
-
- router bgp 100
- neighbor PE-RRCLIENTS peer group
- neighbor PE-RRCLIENTS remote-as 100
- neighbor PE-RRCLIENTS update-source Loopback0
- neighbor PE-RRCLIENTS route-reflector-client
- neighbor PE-RRCLIENTS send-community
- neighbor PE-RRCLIENTS maximum-routes 12000
- !
- address-family vpn-ipv4
- neighbor PE-RRCLIENTS activate
- !
- address-family vpn-ipv6
- neighbor PE-RRCLIENTS activate
-
- #. Finally, apply the peer group to the necessary routers in the Service Provider network.
-
- .. note::
-
- Since BGP is only providing our VPN control-plane, only PE nodes attached to customer devices will require the BGP
- peering. In this topology, all active nodes are functioning as **PE** so will require BGP EVPN peerings to the
- Route Reflector.
-
- .. code-block:: text
-
- router bgp 100
- neighbor 1.1.1.1 peer group PE-RRCLIENTS
- neighbor 3.3.3.3 peer group PE-RRCLIENTS
- neighbor 4.4.4.4 peer group PE-RRCLIENTS
- neighbor 6.6.6.6 peer group PE-RRCLIENTS
- neighbor 7.7.7.7 peer group PE-RRCLIENTS
-
- #. Verify configuration on **EOS8**. Since the other routers are not yet configured, there will be no peerings to check
- as of yet.
-
- .. code-block:: text
-
- show run section bgp
-
-#. Now configure the PE nodes in the Service Provider network as the Route Reflector clients.
-
- #. Again, this will be iBGP and the peerings will look very similar to the setup on **EOS8**. However, we will not need
- to leverage a peer group as all PE nodes will only peer with the route-reflector. The below example is for **EOS1**.
- Repeat this for all other Service Provider nodes (**EOS2** and **EOS5** are disabled in the Ring), changing the
- router-id to match Loopback0.
-
- .. code-block:: text
-
- router bgp 100
- router-id 1.1.1.1
- no bgp default ipv4-unicast
- maximum-paths 2
- neighbor 8.8.8.8 remote-as 100
- neighbor 8.8.8.8 update-source Loopback0
- neighbor 8.8.8.8 send-community
- neighbor 8.8.8.8 maximum-routes 12000
- !
- address-family vpn-ipv4
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 8.8.8.8 activate
- !
- address-family vpn-ipv6
- neighbor default encapsulation mpls next-hop-self source-interface Loopback0
- neighbor 8.8.8.8 activate
-
-#. Once all other PE nodes are configured, verify BGP peerings are in place.
-
- #. All PE nodes will only have one BGP peer, while the **EOS8** as the route-reflector will peer with all other PE nodes.
- You will see the peerings as ``Established`` but no routes should be exchanged as no VPNs are configured. Also note
- that the standard ``show ip bgp summary`` command should have no output since the IPv4 unicast AF is not activated.
-
- .. code-block:: text
-
- show bgp vpn-ipv4 summary
- show bgp vpn-ipv6 summary
- show bgp neighbors
-
-**LAB COMPLETE!**
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/isis_underlay_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/isis_underlay_lab_guide.rst
deleted file mode 100644
index be9402a09..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/isis_underlay_lab_guide.rst
+++ /dev/null
@@ -1,189 +0,0 @@
-Deploy IS-IS as the Service Provider Underlay IGP
-==========================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_isis_sr.png
- :align: center
-
-.. note::
- The Base Labs of the Routing ATD are structured to build on each other. You should complete
- all Base Labs before moving onto Supplemental Labs. Alternatively, using the Lab Selection
- Menus will complete configurations for prior labs as necessary. Supplemental Labs can be
- completed in any order.
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-evpn-base-labs`` to access the Base Setup Labs.
-
- #. Type ``reset`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
- .. admonition:: Did you know?
-
- The ``reset`` option (and all other options) makes use of CloudVision Portal APIs
- to apply "configlets" to each EOS node ensuring they have the proper configuration.
-
-#. Prior to configuration, verify the topology's base status.
-
- #. On **EOS1**, verify interface configurations and neighbors.
-
- .. note::
-
- Full commands will be typed for reference in lab steps, but commands in EOS can be shortened or tab-completed at the
- user's discretion.
-
- .. code-block:: text
-
- show ip interface brief
- show run interfaces Ethernet1-5
- show lldp neighbors
-
- #. Verify there is **no** routing protocol configuration or neighbors present as of yet.
-
- .. code-block:: text
-
- show run section isis
- show run section bgp
- show isis neighbors
- show ip bgp summary
-
-#. Configure the IS-IS routing protocol on the **EOS1** router using the following steps.
-
- #. Enable IS-IS with an instance ID of ``100`` and define a **NET** or Network Entity Title. For the NET, use the format
- of ``49.1111.0000.000`` **(EOS ID)** ``.00`` where ``1111`` is the IS-IS area ID and ``0000.000`` **(EOS ID)** is the
- System ID.
-
- .. note::
-
- Arista EOS utilizes the Industry-Standard CLI. When entering configuration commands, be sure to first type
- ``configure`` to enter configuration mode.
-
- .. code-block:: text
-
- router isis 100
- net 49.1111.0000.0001.00
-
- #. Set the IS-IS level to level-2 and activate the IPv4 unicast address-family to ensure the router will hold all backbone
- IPv4 routes.
-
- .. note::
-
- Our topology will maintain only IS-IS level-2 adjacenies. This will give us a single backbone
- area where all routes will be learned by all routers (similar to an OSPF topology where all
- routers are in area 0). This is sufficient for smaller topologies where there isn't a need to
- segment flooding domains.
-
- .. code-block:: text
-
- router isis 100
- is-type level-2
- !
- address-family ipv4 unicast
-
- #. To shrink the overall size of the LSDB and routing table, we will only advertise Loopback /32 networks to other EOS
- routers and not individual link addressing. This is accomplished by only advertising passive IS-IS interfaces and
- networks.
-
- .. code-block:: text
-
- router isis 100
- advertise passive-only
-
- #. Verify protocol configuration thus far.
-
- .. admonition:: Pro-Tip
-
- You do **not** need to ``exit`` configuration mode to execute show commands in EOS.
-
- .. code-block:: text
-
- show run section isis
-
-#. Configure IS-IS interfaces on **EOS1**.
-
- #. All links connecting to other SP routers (EOS1 through EOS8) will form IS-IS adjacenies. Configure the link between
- **EOS1** and **EOS7** as an IS-IS interface.
-
- .. code-block:: text
-
- interface Ethernet2
- isis enable 100
-
- #. Additionally, since this is point to point link to a level-2 router, we will define those characteristics to ensure
- proper peering and bypass unnecessary DIS elections.
-
- .. code-block:: text
-
- interface Ethernet2
- isis circuit-type level-2
- isis network point-to-point
-
- #. Repeat the above configurations for the other interface on **EOS1** that is attached to an adjacent SP nodes. Refer to
- the diagram above and LLDP neighbor information for interfaces requiring configuration.
-
- .. admonition:: Pro-Tip
-
- You can configure multiple interfaces at once using ranges and separators in EOS. For example, **EOS1** interfaces
- Et2 and 4 require IS-IS configuration, but the commands are the same for all interfaces. You can type ``interface
- Ethernet2,4`` to enter configurations for both at once.
-
- #. Next, the Loopback0 interface needs to be activated as an IS-IS interface.
-
- .. code-block:: text
-
- interface Loopback0
- isis enable 100
-
- #. Lastly, since Loopback0 is not attached to another router, we can set it as a passive interface for IS-IS to ensure
- proper operation.
-
- .. note::
-
- In addtion, this command works in conjunction with the ``advertise passive-only`` command in our IS-IS
- protocol configuration. It ensures only our passive (i.e. Loopback0) interfaces will be advertised.
-
- .. code-block:: text
-
- interface Loopback0
- isis passive
-
-#. Since no other routers have been configured, there are no peers as of yet. Configure **EOS7** using the same steps above.
-
- .. note::
-
- Each EOS node requires a unique NET. Following the format described above, **EOS7** will have a NET of
- ``49.1111.0000.0007.00`` under the IS-IS configuration. In addtion, interfaces Et1 and 3 are attached to SP routers so
- will require IS-IS configuration.
-
-#. With both **EOS1** and **EOS7** configured, verify IS-IS peering and route advertisement.
-
- #. Verify IS-IS adjacency and LSDB.
-
- .. note::
-
- IS-IS will automatically convert system IDs to configured hostnames to make show outputs easier to interpret.
-
- .. code-block:: text
-
- show isis neighbors
- show isis interface
- show isis database detail
-
- #. Verify routing table only show IS-IS routes for the associated Loopback0 /32 networks.
-
- .. code-block:: text
-
- show ip route
-
- #. Test reachability between Loopback0 interfaces from **EOS1** to **EOS7**.
-
- .. code-block:: text
-
- ping 7.7.7.7 source 1.1.1.1
-
-#. Configure the remaining Service Provider nodes (**EOS3, EOS4, EOS6, and EOS8**) for IS-IS using the steps above. Verify
- routing tables only show advertised Loopback0 interfaces for all nodes.
-
-
-**LAB COMPLETE!**
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/isisv6_underlay_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/isisv6_underlay_lab_guide.rst
deleted file mode 100644
index efe2300e2..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/isisv6_underlay_lab_guide.rst
+++ /dev/null
@@ -1,241 +0,0 @@
-Deploy IS-IS as the Service Provider Underlay IGP
-==========================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_isis_ldp.png
- :align: center
-
-.. note::
- The LDP and IP-VPN Labs of the Routing ATD are structured to build on each other. You should complete
- all labs before moving onto the next. Alternatively, using the Lab Selection
- Menus will complete configurations for prior labs as necessary.
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-ipvpn-labs`` to access the LDP and IPVPN Labs.
-
- #. Type ``reset`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
- .. admonition:: Did you know?
-
- The ``reset`` option (and all other options) makes use of CloudVision Portal APIs
- to apply "configlets" to each EOS node ensuring they have the proper configuration.
-
-#. Prior to configuration, verify the topology's base status.
-
- #. On **EOS1**, verify interface configurations and neighbors.
-
- .. note::
-
- Full commands will be typed for reference in lab steps, but commands in EOS can be
- shortened or tab-completed at the user's discretion.
-
- .. code-block:: text
-
- show ip interface brief
- show ipv6 interface brief
- show run interfaces Ethernet1-5
- show lldp neighbors
-
- #. Verify there is **no** routing protocol configuration or neighbors present as of yet.
-
- .. code-block:: text
-
- show run section isis
- show run section bgp
- show isis neighbors
- show ip bgp summary
-
-#. Configure the IS-IS routing protocol on the **EOS1** router using the following steps.
-
- #. Enable IS-IS with an instance ID of ``100`` and define a **NET** or Network Entity Title. For the
- NET, use the format of ``49.1111.0000.000`` **(EOS ID)** ``.00`` where ``1111`` is the IS-IS area
- ID and ``0000.000`` **(EOS ID)** is the System ID.
-
- .. note::
-
- Arista EOS utilizes the Industry-Standard CLI. When entering configuration commands, be
- sure to first type ``configure`` to enter configuration mode.
-
- .. code-block:: text
-
- router isis 100
- net 49.1111.0000.0001.00
-
- #. Set the IS-IS level to level-2 and activate the IPv4 and IPv6 unicast address-families to ensure the
- router will hold all backbone IPv4 and IPv6 routes.
-
- .. code-block:: text
-
- router isis 100
- is-type level-2
- !
- address-family ipv4 unicast
- !
- address-family ipv6 unicast
-
- #. To shrink the overall size of the LSDB and routing table, we will only advertise Loopback /32 networks
- to other EOS routers and not individual link addressing. This is accomplished by only advertising
- passive IS-IS interfaces and networks.
-
- .. code-block:: text
-
- router isis 100
- advertise passive-only
-
- #. Enable BFD in the IPv4 and IPv6 address-families for detection of faults in neighbor communication.
-
- .. code-block:: text
-
- router isis 100
- !
- address-family ipv4 unicast
- bfd all-interfaces
- !
- address-family ipv6 unicast
- bfd all-interfaces
-
- #. Enable IPv6 Multi-Topology for IS-IS to ensure each address-family has the ability to maintain a discrete
- view of the network.
-
- .. code-block:: text
-
- router isis 100
- !
- address-family ipv6 unicast
- multi-topology
-
- #. Adjust SPF and LSP timers for customization of protocol behavior within IS-IS.
-
- .. note::
-
- The timer values here are just examples. Since the lab environment is virtualized in the cloud, performance
- can be unpredictable if the timer values are set too aggressively in the virtual lab.
-
- .. code-block:: text
-
- router isis 100
- spf-interval 5 1000 2000
- timers lsp generation 5 1000 2000
-
- #. Enable Dynamic Flooding for IS-IS so a discrete restricted flooded topology is calculated for LSP flooding
- to reduce load on each router's control-plane.
-
- .. note::
-
- Dynamic flooding is most beneficial in highly redundant topologies with many adjacencies.
-
- .. code-block:: text
-
- router isis 100
- lsp flooding dynamic level-2
-
- #. Finally, ensure IS-IS explicitly logs all neighbor state changes.
-
- .. code-block:: text
-
- router isis 100
- log-adjacency-changes
-
- #. Verify protocol configuration thus far.
-
- .. admonition:: Pro-Tip
-
- You do **not** need to ``exit`` configuration mode to execute show commands in EOS.
-
- .. code-block:: text
-
- show run section isis
-
-#. Configure IS-IS interfaces on **EOS1**.
-
- #. All links connecting to other SP routers (EOS1 through EOS8) will form IS-IS adjacenies. Configure
- the link between **EOS1** and **EOS7** as an IS-IS interface.
-
- .. code-block:: text
-
- interface Ethernet2
- isis enable 100
-
- #. Additionally, since this is point to point link to a level-2 router, we will define those characteristics
- to ensure proper peering and bypass unnecessary DIS elections.
-
- .. code-block:: text
-
- interface Ethernet2
- isis circuit-type level-2
- isis network point-to-point
-
- #. Repeat the above configurations for the other interfaces on **EOS1** that are attached to adjacent
- SP nodes. Refer to the diagram above and LLDP neighbor information for interfaces requiring configuration.
-
- .. admonition:: Pro-Tip
-
- You can configure multiple interfaces at once using ranges and separators in EOS. For example, **EOS1**
- interfaces Et2 and 4 require IS-IS configuration, but the commands are the same for all interfaces.
- You can type ``interface Ethernet2,4`` to enter configurations for both at once.
-
- #. Next, the Loopback0 interface needs to be activated as an IS-IS interface.
-
- .. code-block:: text
-
- interface Loopback0
- isis enable 100
-
- #. Lastly, since Loopback0 is not attached to another router, we can set it as a passive interface for IS-IS
- to ensure proper operation.
-
- .. code-block:: text
-
- interface Loopback0
- isis passive
-
- .. note::
-
- In addtion, this command works in conjunction with the ``advertise passive-only`` command in our IS-IS
- protocol configuration. It ensures only our passive (i.e. Loopback0) interfaces will be advertised.
-
-#. Since no other routers have been configured, there are no peers as of yet. Configure **EOS7** using the same
- steps above.
-
- .. note::
-
- Each EOS node requires a unique NET. Following the format described above, **EOS7** will have a NET
- of ``49.1111.0000.0007.00`` under the IS-IS configuration. In addtion, interfaces Et1 3 are attached to SP routers
- so will require IS-IS configuration.
-
-#. With both **EOS1** and **EOS7** configured, verify IS-IS peering and route advertisement.
-
- #. Verify IS-IS adjacency and LSDB.
-
- .. code-block:: text
-
- show isis neighbors
- show isis interface
- show isis database detail
- show isis dynamic flooding topology
-
- .. note::
-
- IS-IS will automatically convert system IDs to configured hostnames to make show outputs easier to interpret.
-
- #. Verify routing table only show IS-IS routes for the associated Loopback0 /32 networks.
-
- .. code-block:: text
-
- show ip route
-
- #. Test reachability between Loopback0 interfaces from **EOS1** to **EOS7**.
-
- .. code-block:: text
-
- ping 7.7.7.7 source 1.1.1.1
- ping ipv6 7:7:7::7 source 1:1:1::1
-
-#. Configure the remaining Service Provider nodes (**EOS3, EOS4, EOS6, and EOS8**) for IS-IS using the steps above. Verify
- routing tables only show advertised Loopback0 interfaces for all nodes.
-
-
-**LAB COMPLETE!**
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/ldp_transport_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/ldp_transport_lab_guide.rst
deleted file mode 100644
index 2b7c8437d..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/ldp_transport_lab_guide.rst
+++ /dev/null
@@ -1,169 +0,0 @@
-Establish MPLS Transport Label Distribution via LDP
-==================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_isis_ldp.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-ipvpn-labs`` to access the LDP and IPVPN Labs.
-
- #. Type ``ldp`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. With IS-IS in place as the IGP for Loopback reachability, enable LDP for MPLS Label Distribution on **EOS1**.
-
- #. First, we must enable MPLS forwarding on the router.
-
- .. code-block:: text
-
- mpls ip
-
- #. Enable the Label Distribution Protocol for MPLS.
-
- .. code-block:: text
-
- mpls ldp
- no shutdown
-
- #. Set Loopback0 as the interface for transport and Router-ID functions.
-
- .. code-block:: text
-
- mpls ldp
- router-id interface Loopback0
- transport-address interface Loopback0
-
- #. Disable LDP globally on the router interfaces then selectively enable on Service Provider facing interfaces and the
- Loopback0 interface for transport.
-
- .. note::
-
- By default when LDP is enabled, EOS will attempt peering on all interfaces.
-
- .. code-block:: text
-
- interface Ethernet2
- mpls ldp interface
- !
- interface Ethernet4
- mpls ldp interface
- !
- interface Loopback0
- mpls ldp interface
- !
- mpls ldp
- interface disabled default
-
- #. Enable LDP Hello Redundancy to help maintain adjacencies in link-flap scenarios to cut down on session
- reestablishment time.
-
- .. note::
-
- Devices with Hello Redundancy enabled will begin sending Targeted Hello messages to the Transport Address found
- in the received LDP Link Hello message. The Targeted Hello adjacency can support the session established between
- peers even when all Link Hello adjacencies have timed out. The FEC label bindings between two peers with no Link
- Hello adjacency will not be active because the Interior Gateway Protocol will not use the other peer as the next
- hop. Nevertheless, maintaining the FEC label bindings and the session between the two peers can save significant
- time when the Link Hello adjacency is reestablished.
-
- .. code-block:: text
-
- mpls ldp
- neighbor hello-redundancy
-
- #. Enable Grace Restart capabilities for LDP to maintain forwarding when agent restarts occur.
-
- .. note::
-
- LDP Graceful Restart allows the device to preserve its entire MPLS LDP lable if the LDP agent restarts and can also
- preserve the LFIB entries of the peer whose LDP agent has restarted.
-
- .. code-block:: text
-
- mpls ldp
- !
- graceful-restart role speaker
- timer state-holding 500
- timer reconnect 500
-
- #. Lastly, enable LDP synchronization with IS-IS to ensure MPLS LSPs are generated on valid underlay links.
-
- .. note::
-
- Sync timers can be adjusted in LDP as desired.
-
- .. code-block:: text
-
- router isis 100
- mpls ldp sync default
-
-#. Verify local LDP configuration and MPLS label allocation on **EOS1**.
-
- #. Display the configured Node SID and other ISIS-SR information.
-
- .. code-block:: text
-
- show mpls ldp bindings detail
-
- #. Verify the MPLS label range assigned for use with LDP.
-
- .. note::
-
- EOS has a default allocation range for each type of MPLS label, which you can view. Of interest here is the
- ``ldp (dynamic)`` label range. LDP label bindings are locally significant to the router whose LFIB they exist in.
-
- .. code-block:: text
-
- show mpls label ranges
-
-#. Repeat the above configuration steps on the other Service Provider nodes (**EOS3, EOS4, EOS6, and EOS8**) while only
- activating LDP on the necessary interfaces for each device.
-
-#. Now that the LDP topology is deployed, verify MPLS label advertisement and reachability. These steps can
- be performed on any of the Service Provider EOS nodes.
-
- #. Verify that all router adjacencies are succesfully established. You should see an entry for each connected router.
-
- .. code-block:: text
-
- show mpls ldp neighbor
- show mpls ldp discovery detail
-
- #. Now display the tunnel information LDP will use to inform the data-plane which MPLS labels and interfaces
- to use to reach the other routers in the topology.
-
- .. note::
-
- An MPLS label value of the ``3`` represents the implicit-null label, which signfies the destination
- or endpoint router is adjacent to this node.
-
- .. code-block:: text
-
- show mpls ldp tunnel
-
- #. Verify the Label Bindings dynamically allocted to local and remote interfaces attached to LDP enabled peers.
-
- .. note::
-
- As mentioned, these labels are dynamically allocted by EOS out of the ``ldp (dynamic)`` label range. Also
- note these label values are only locally significant to the router, so they may overlap between the various nodes
- in the topology.
-
- .. code-block:: text
-
- show mpls ldp bindings detail
-
- #. Test MPLS LSP reachability between routers by using MPLS ping and traceroute functions. This example is from **EOS1**
- to **EOS8**.
-
- .. code-block:: text
-
- ping mpls ldp ip 8.8.8.8/32 source 1.1.1.1
- traceroute mpls ldp ip 8.8.8.8/32 source 1.1.1.1
-
-**LAB COMPLETE!**
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/ratd_ring_topo_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/ratd_ring_topo_lab_guide.rst
deleted file mode 100644
index 649e57fdb..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/ratd_ring_topo_lab_guide.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-Routing ATD Lab Guide - Ring Topology
-=================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_topo.png
- :align: center
-
-=================================================
-Lab Guide Overview
-=================================================
-
-This is the full topology that will be used for the labs in this section. Each section will highlight the individual nodes
-that are relavent to the service or protocol for that step. The **Lab** Guides in the Routing ATD are meant to provide example
-configurations with step-by-step instruction on setting up IS-IS, Segment Routing, BGP EVPN, etc. If you are already familiar
-with the protocols and configurations and would instead prefer to test your knowledge with only high-level direction on the
-steps necessary to deploy the Service Provider network, please refer to the **Class** Guides instead.
-
- .. note::
-
- In the Ring Topology, EOS2 and EOS5 are not used and all interfaces connecting to them are disabled.
\ No newline at end of file
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/sr_transport_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/sr_transport_lab_guide.rst
deleted file mode 100644
index ca7cb9008..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/sr_transport_lab_guide.rst
+++ /dev/null
@@ -1,126 +0,0 @@
-Establish MPLS Transport Label Distribution via Segment-Routing
-==================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_isis_sr.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-evpn-base-labs`` to access the Base Setup Labs.
-
- #. Type ``sr`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. With IS-IS in place as the IGP for Loopback reachability, enable IS-IS Segment Routing on **EOS1**.
-
- #. First, we must enable MPLS forwarding on the router.
-
- .. code-block:: text
-
- mpls ip
-
- #. Enable the Segment Routing extensions with IS-IS and assign a router-id based on the router's Loopback0 address.
-
- .. note::
-
- You will see a notification when setting the router-id. This simply means that if a global
- router-id is set, it will override this setting. For now, this can be ignored.
-
- .. code-block:: text
-
- router isis 100
- !
- segment-routing mpls
- router-id 1.1.1.1
- no shutdown
-
- #. Assign a Node Segment-ID, or **SID**, to the Loopback0 interface based on the EOS node ID.
-
- .. note::
-
- The Node SID is a globally unique and globally significant value, similar in nature to an IP address, that is
- assigned to each router in the SP network. Traditionally, MPLS labels are locally signifcant to each router. With the
- node SID, an MPLS label is advertised that has consistent meaning on each router in the topology.
-
- .. code-block:: text
-
- interface Loopback0
- node-segment ipv4 index 1
-
-#. Verify local ISIS-SR configuration and MPLS label allocation on **EOS1**.
-
- #. Display the configured Node SID and other ISIS-SR information.
-
- .. code-block:: text
-
- show isis segment-routing prefix-segments self-originated
-
- #. Verify the MPLS label range assigned for use with ISIS-SR.
-
- .. note::
-
- EOS has a default allocation range for each type of MPLS label, which you can view. Of interest here is the
- ``isis-sr`` label range, called the Segment Routing Global Block, or **SRGB** which must match on all routers in the
- topology.
-
- .. code-block:: text
-
- show mpls label ranges
- show isis segment-routing global-blocks
-
- .. note::
-
- EOS takes the configured Node SID and adds that to the base value of the SRGB to get the MPLS label associated with
- router. In this case, **EOS1** will be assigned ``900,000`` (from the **SRGB**) + ``1`` (from the configured Node
- SID Index) or ``900,0001`` which we will see later.
-
-#. Repeat the above configuration steps on the other Service Provider nodes (**EOS3, EOS4, and EOS6 - EOS8**) while assigning
- a unique Node SID and router-id to each router based on the EOS ID and Loopback0 IP (i.e. **EOS3** will have a Node SID
- index of ``3``).
-
-#. Now that the ISIS-SR topology is deployed, verify MPLS label advertisement and reachability. These steps can be performed
- on any of the Service Provider EOS nodes.
-
- #. Verify that all router Node SIDs are succesfully advertised. You should see an entry for each ISIS-SR enabled router.
-
- .. code-block:: text
-
- show isis segment-routing prefix-segments
-
- #. Now display the tunnel information ISIS-SR will use to inform the data-plane which MPLS labels and interfaces to use to
- reach the other routers in the topology.
-
- .. note::
-
- An MPLS label value of the ``3`` represents the implicit-null label, which signifies the destination or LSP endpoint
- router is adjacent to this node.
-
- .. code-block:: text
-
- show isis segment-routing tunnel
-
- #. Verify the Adjacency Segment IDs dynamically allocated to interfaces attached to ISIS-SR enabled peers.
-
- .. note::
-
- As mentioned, these labels are dynamically allocted by EOS out of the ``isis (dynamic)`` label range. Also note that
- unlike Node SIDs, Adj. SIDs are only locally significant to the router, so they may overlap between the various nodes
- in the topology.
-
- .. code-block:: text
-
- show isis segment-routing adjacency-segments
-
- #. Test MPLS LSP reachability between routers by using MPLS ping and traceroute functions. This example is from **EOS1** to
- **EOS8**.
-
- .. code-block:: text
-
- ping mpls segment-routing ip 8.8.8.8/32 source 1.1.1.1
- traceroute mpls segment-routing ip 8.8.8.8/32 source 1.1.1.1
-
-**LAB COMPLETE!**
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/srte_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/srte_lab_guide.rst
deleted file mode 100644
index bc0cb7196..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/srte_lab_guide.rst
+++ /dev/null
@@ -1,410 +0,0 @@
-Leverage SR-TE to Steer VPN Traffic
-==================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_srte.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-evpn-supplemental-labs`` to access the Supplemental Labs.
-
- #. Type ``srte`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. In the first scenario, we will use Segment Routing Traffic Engineering, or **SR-TE** to manipulate L3VPN traffic for
- Customer-1. Configure the Service Provider network so that traffic from **EOS15** to **EOS12** follows the path pictured
- above.
-
- #. Before beginning the Service Provider configuration, verify connectivty and path to **EOS12** on **EOS15**.
-
- .. code-block:: text
-
- ping 12.12.12.12 source 15.15.15.15
- traceroute 12.12.12.12 source 15.15.15.15
-
- #. To start the configuration, first, create a Prefix-List and Route-Map **EOS1** and **EOS6** to set the BGP **Color**
- community on the route for **EOS12** to a value of ``12``. Ensure that this is applied to the Customer-1 CE Peering
- and that there is a open permit at the end to allow other routes that will not be colored.
-
- .. note::
-
- The BGP Color community is used to identify routes on the ingress PE that should be steered by the SR-TE policy,
- which we will see in a later step. Since the route for **EOS12**, ``12.12.12.12/32`` is received by both PEs, we can
- set the policy on both.
-
- **EOS1**
-
- .. code-block:: text
-
- ip prefix-list CUSTOMER-1_EOS12 seq 10 permit 12.12.12.12/32
- !
- route-map CUSTOMER-1_IN permit 10
- match ip address prefix-list CUSTOMER-1_EOS12
- set extcommunity color 12 additive
- !
- route-map CUSTOMER-1_IN permit 20
- !
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.1.11.11 route-map CUSTOMER-1_IN in
-
- **EOS6**
-
- .. code-block:: text
-
- ip prefix-list CUSTOMER-1_EOS12 seq 10 permit 12.12.12.12/32
- !
- route-map CUSTOMER-1_IN permit 10
- match ip address prefix-list CUSTOMER-1_EOS12
- set extcommunity color 12 additive
- !
- route-map CUSTOMER-1_IN permit 20
- !
- router bgp 100
- !
- vrf CUSTOMER-1
- neighbor 10.6.13.13 route-map CUSTOMER-1_IN in
-
- #. Next, enable SR-TE on **EOS8** and apply the base settings to allow SR-TE tunnels to resolve and set a router-id.
-
- .. note::
-
- When enabling SR-TE, we must tell the router to look in ``system-colored-tunnel-rib`` in order to properly resolve
- SR-TE tunnels as BGP next-hops.
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- rib system-colored-tunnel-rib
- router-id ipv4 8.8.8.8
-
- #. With SR-TE enabled, create two static policies on **EOS8** that will steer VPN traffic to **EOS12** along the desired
- path to **EOS1** and **EOS6** for routes with the color value of ``12``.
-
- .. note::
-
- With a simple SR-TE static policy, the entire transport label stack is built and applied on ingress to the Service
- Provider network by the PE. This policy will match the BGP color applied to the VPN route in the previous step.
- SR-TE policies are defined by ``endpoint`` and ``color`` so we create one for each egress PE.
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- !
- policy endpoint 1.1.1.1 color 12
- description STEER TRAFFIC TO EOS12
- !
- policy endpoint 6.6.6.6 color 12
- description STEER TRAFFIC TO EOS12
-
- #. Define a Binding Segment-ID for each policy from the allowed range ().
-
- .. note::
-
- The ``binding-sid`` is a required value in order for a policy to be valid. However, it is most commonly used in
- inter-domain or controller based SR-TE deployments. For this lab, the value isn't significant.
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- !
- policy endpoint 1.1.1.1 color 12
- binding-sid 1000112
- !
- policy endpoint 6.6.6.6 color 12
- binding-sid 1000612
-
- #. Define a Path-Group with a preference of 100 for the policies. Within the Path-Group, set the desired MPLS transport
- label stack to define the path the traffic should take.
-
- .. note::
-
- In this case, we will explicity deifine the MPLS label for each EOS node in the desired path in order. Recall that
- the MPLS label value is determined by taking the Node SID index value plus the base value of the IS-IS SR label
- range, which by default is 900,000.
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- !
- policy endpoint 1.1.1.1 color 12
- !
- path-group preference 100
- segment-list label-stack 900004 900003 900007 900001
- !
- policy endpoint 6.6.6.6 color 12
- !
- path-group preference 100
- segment-list label-stack 900004 900003 900007 900001 900006
-
- #. With the policy fully in place, validate that the policies are active as well as the resolved path on **EOS8**.
-
- .. note::
-
- The command will show the policy as ``active`` if all attributes are configured correctly. Notice that the ``Label
- Stack`` and the ``Resolved Label Stack`` differ slightly. This is due to the fact that EOS will intelligently
- resolve the path and remove any unnecessary labels in the stack that will still acheive the same path. Also notice
- that a ``Backup Resolved Label Stack`` is calculated because TI-LFA is enabled. In this case, the backup path is
- somewhat ridiculous as it passes through or close to the egress PE before going back to the initial path. This would
- be better addressed by creating a secondary path-group with a lower preference.
-
- .. code-block:: text
-
- show traffic-engineering segment-routing policy
-
- #. Verify the forwarding plane information for **EOS12** in the Customer-1 VRF.
-
- .. note::
-
- Note that the traffic is still ECMP load-balanced since ``12.12.12.12/32`` is originated from two PEs.
-
- .. code-block:: text
-
- show ip route vrf CUSTOMER-1 12.12.12.12
- show tunnel fib traffic-engineering segment-routing policy
-
- #. Finally, verify connectivty and path again to **EOS12** on **EOS15**.
-
- .. note::
-
- Note that the additional hops will show in the traceroute path but will not resolve as they are tunneled through on
- the Service Provider network.
-
- .. code-block:: text
-
- ping 12.12.12.12 source 15.15.15.15
- traceroute 12.12.12.12 source 15.15.15.15
-
-#. In the next scenario, we will use **SR-TE** to steer L2VPN traffic for Customer-2. Configure the Service Provider network
- so that traffic from **EOS9** to **EOS10** follows the path pictured above.
-
- #. Similar to the L3VPN steering above, steering L2VPN traffic requires setting the BGP Color community. Create a
- Community-List and Route-Map to match the necessary RT value for Customer-2 which sets the color value to ``10`` and
- apply that to the BGP EVPN peering to the Route-Reflector on **EOS3** and **EOS4**.
-
- .. note::
-
- In this example, we will instead set the color on the ingress PEs attached to the source **EOS9**. Since this is a
- EVPN A-A attached CE, we will set the policy on both. Also note that we are using a Community-List to match the RT
- value instead of the specific CE endpoint.
-
- .. code-block:: text
-
- ip extcommunity-list CUSTOMER-2 permit rt 2:20
- !
- route-map EVPN-COLORING permit 10
- match extcommunity CUSTOMER-2
- set extcommunity color 10 additive
- !
- route-map EVPN-COLORING permit 20
- !
- router bgp 100
- !
- address-family evpn
- neighbor 8.8.8.8 route-map EVPN-COLORING in
-
- #. Next, enable SR-TE on **EOS3** and **EOS4** and apply the base settings to for SR-TE. In addtion, create the policy for
- steering traffic to **EOS7** with a color of ``10`` that was set above and set the binding-sid to a value of
- ``1000710``.
-
- .. note::
-
- The SR-TE policy config for all VPN types follows the same template.
-
- **EOS3**
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- rib system-colored-tunnel-rib
- !
- policy endpoint 7.7.7.7 color 10
- binding-sid 1000710
- description STEER TRAFFIC TO EOS10
- router-id ipv4 3.3.3.3
-
- **EOS4**
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- rib system-colored-tunnel-rib
- !
- policy endpoint 7.7.7.7 color 10
- binding-sid 1000710
- description STEER TRAFFIC TO EOS10
- router-id ipv4 4.4.4.4
-
- #. Finally, define the Path-Group and label stack for the pictured path on **EOS3** and **EOS4**.
-
- .. note::
-
- Here, we can more intelligently define the label stack necessary to steer traffic along the desired path. By
- understanding that IS-IS SR will automatically take the shortest path to a given destinantion router based on the
- label on the top of the stack, we can skip statically defining the labels for certain intermediate nodes.
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- !
- policy endpoint 7.7.7.7 color 10
- !
- path-group preference 100
- segment-list label-stack 900008 900001 900007
-
- #. With the policy fully in place, validate that the policies are active as well as the resolved path on **EOS3** and
- **EOS4**.
-
- .. code-block:: text
-
- show traffic-engineering segment-routing policy
-
- #. Verify the forwarding plane information for **EOS3** and **EOS4** in the Customer-2 L2VPN.
-
- .. note::
-
- The commands below reference the MAC of **EOS10**, which may differ in your lab. You can find the MAC of **EOS10**
- with the output of ``show interface Ethernet1``.
-
- .. code-block:: text
-
- show l2rib output mac 1426.0c23.74e4
- show tunnel fib traffic-engineering segment-routing policy
-
- #. Finally, verify connectivty to **EOS10** on **EOS9**.
-
- .. note::
-
- Since the Service Provider is emulating a LAN service, ``traceroute`` would not provide additional path hints.
-
- .. code-block:: text
-
- ping 10.10.10.10 source 9.9.9.9
-
-#. In the last scenario, we will use **SR-TE** to steer VPWS traffic for Customer-3. Configure the Service Provider network
- so that traffic between **EOS16** and **EOS17** follows the path pictured above bidirectionally.
-
- #. Similar to the L2VPN steering above, steering VPWS traffic requires setting the BGP Color community. Create a
- Community-List and Route-Map to match the necessary RT value for Customer-2 which sets the color value to ``1617`` and
- apply that to the BGP EVPN peering to the Route-Reflector on **EOS1** and **EOS4**.
-
- .. note::
-
- Since we already created a Route-Map and applied it on **EOS4** we will simply add another sequence to that
- existing Route-Map
-
- .. code-block:: text
-
- ip extcommunity-list CUSTOMER-3 permit rt 3:1617
- !
- route-map EVPN-COLORING permit 15
- match extcommunity CUSTOMER-3
- set extcommunity color 1617 additive
- !
- route-map EVPN-COLORING permit 20
- !
- router bgp 100
- !
- address-family evpn
- neighbor 8.8.8.8 route-map EVPN-COLORING in
-
- #. Next, enable SR-TE on **EOS1** and apply the base settings to for SR-TE. In addtion, create the policy on **EOS1** and
- **EOS4** for steering traffic with a color of ``1617`` (which was set above) and set the binding-sid to a value of
- ``1001617`` between **EOS1** and **EOS4**.
-
- .. note::
-
- Again, SR-TE was already enabled on **EOS4** so the base settings are already in place.
-
- **EOS1**
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- rib system-colored-tunnel-rib
- !
- policy endpoint 4.4.4.4 color 1617
- binding-sid 1001617
- description STEER TRAFFIC TO EOS16
- router-id ipv4 1.1.1.1
-
- **EOS4**
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- !
- policy endpoint 1.1.1.1 color 1617
- binding-sid 1001617
- description STEER TRAFFIC TO EOS17
-
- #. Finally, define the Path-Group and label stack for the pictured path on **EOS1** and **EOS4**.
-
- .. note::
-
- Note that the label stacks defined are providing a symmetrical path per the desired TE policy.
-
- **EOS1**
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- !
- policy endpoint 4.4.4.4 color 1617
- !
- path-group preference 100
- segment-list label-stack 900007 900004
-
- **EOS4**
-
- .. code-block:: text
-
- router traffic-engineering
- segment-routing
- !
- policy endpoint 1.1.1.1 color 1617
- !
- path-group preference 100
- segment-list label-stack 900007 900001
-
- #. With the policy fully in place, validate that the policies are active as well as the resolved path on **EOS1** and
- **EOS4**.
-
- .. code-block:: text
-
- show traffic-engineering segment-routing policy | section 1617
-
- #. Verify the forwarding plane information for **EOS1** and **EOS4** in the Customer-3 E-LINE Service.
-
- .. note::
-
- Note that the patch panel configuration is now forwarding into the SR-TE Policy Tunnel.
-
- .. code-block:: text
-
- show patch panel forwarding
- show tunnel fib traffic-engineering segment-routing policy
-
- .. note::
-
- Due to a limitation in software forwarding in vEOS-lab, forwarding of VPWS traffic into SR-TE tunnels does not function and as such, we cannot
- verify functionality via ICMP, etc. All control-plane functions should be verified using the commands above. Steering of VPWS traffic in
- hardware platforms functions as expected.
-
-
-**LAB COMPLETE!**
diff --git a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/tilfa_lab_guide.rst b/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/tilfa_lab_guide.rst
deleted file mode 100644
index 32d4f21bd..000000000
--- a/topologies/routing/labguides/source/ratd_ring_guides/ratd_ring_lab_guides/tilfa_lab_guide.rst
+++ /dev/null
@@ -1,121 +0,0 @@
-Enable TI-LFA Fast Reroute for ISIS-SR
-==================================================================
-
-.. image:: ../../images/ratd_ring_images/ratd_ring_tilfa.png
- :align: center
-
-|
-
-#. Log into the **LabAccess** jumpserver to prepare the lab environment.
-
- #. From the Main Menu, type ``labs`` or Option 97 for ``Additional Labs``.
-
- #. Type ``ring-topology-evpn-supplemental-labs`` to access the Supplemental Labs.
-
- #. Type ``tilfa`` at the Labs Selection Menu. The script will configure the topology
- with the necessary prerequisites.
-
-#. Enable Topology Independent Loop Free Alternate, or **TI-LFA**, calculation to occur on **EOS1**.
-
- #. First, enable TI-LFA to protect against link failures in the Level-2 IS-IS topology.
-
- .. note::
-
- TI-LFA will calculate backup paths between the IS-IS enabled nodes assuming that the
- primary best path has failed. In the event of an actual failure, hardware forwarding would
- switch to this backup path in 50 ms. This would normally be paired with BFD monitoring. In the
- virtual ATD labs, it is not possible to simulate actual failures, but the TI-LFA control-plane
- can still be validated.
-
- .. code-block:: text
-
- router isis 100
- !
- address-family ipv4 unicast
- fast-reroute ti-lfa mode link-protection level-2
-
- #. Set a delay so that traffic will transition to the post-failure path only after the network has fully
- converged.
-
- .. note::
-
- Normally, IS-IS would use the TI-LFA calculated path only until the local router has reconverged
- after the failure. To prevent micro-loops during failure events, we introduce a delay for the
- router to switch from the TI-LFA calculated backup path to give the network time to converge
- globally.
-
- .. code-block:: text
-
- router isis 100
- timers local-convergence-delay protected-prefixes
-
-#. Repeat the above configuration steps on all other Service Provider nodes.
-
- #. Configure **EOS3, EOS4 and EOS6 - EOS8** for TI-LFA calculation.
-
- .. code-block:: text
-
- router isis 100
- timers local-convergence-delay protected-prefixes
- !
- address-family ipv4 unicast
- fast-reroute ti-lfa mode link-protection level-2
-
-#. Verify local ISIS-SR TI-LFA status and forwarding on **EOS1**.
-
- #. Display the Node SIDs of the topology and observe that some are now have ``Protection``.
-
- .. note::
-
- You will notice some prefix-segments are not protected. This is due to that fact
- that an ECMP route for those Nodes is already present, so there is no need to further
- calculate a backup path. If a link fails in the ECMP group, it will automatically use
- the other. Once a single link is the best path, it would then calculate a TI-LFA backup
- path. You can observe which nodes have an ECMP route with ``show ip route`` and verifying
- which prefixes have more than one next-hop listed.
-
- .. code-block:: text
-
- show isis segment-routing prefix-segments
-
- #. Display the logic **EOS1** uses to calculate the backup path to the other nodes in the topology.
-
- .. note::
-
- The ``Constraint`` is how EOS displays what would happen in the event of a given failure; basically
- following the format "If ``Constraint`` is true, then use ``Path`` to reach ``Destination``."
-
- .. code-block:: text
-
- show isis ti-lfa path
-
- #. Display primary and backup path information from **EOS1** to **EOS8**.
-
- .. note::
-
- We can check how **EOS1** will reach **EOS8** by first looking up the SR tunnel for the **EOS8** node prefix
- ``8.8.8.8/32``. Then we can check the ``TI-LFA tunnel index``, which in the below example happened to be ``7``
- though this may vary in your lab. Lastly, we can verify that the MPLS hardware table has programmed the label
- corresponding to the **EOS8** Node-SID to use the TI-LFA Tunnel.
-
- .. code-block:: text
-
- show isis segment-routing tunnel 8.8.8.8/32
- show isis ti-lfa tunnel 7
- show mpls lfib route 900008
-
- #. Verify L2VPN routes towards **EOS7** are using the TI-LFA tunnel from **EOS3**.
-
- .. note::
-
- We will trace the MAC of **EOS10**, which in this example is ``1426.0c23.74e4``. You should replace this in the
- commands below with the MAC of Et1 on **EOS10** which can be found in the command ``show interface Ethernet1``.
- Likewise the tunnel index of ``3`` should be replaced with the index found in parantheses from the l2rib output.
-
- .. code-block:: text
-
- show l2rib output mac 1426.0c23.74e4
- show tunnel fib isis segment-routing 3
-
-
-**LAB COMPLETE!**
diff --git a/topologies/routing/topo_build.yml b/topologies/routing/topo_build.yml
deleted file mode 100644
index b0133f008..000000000
--- a/topologies/routing/topo_build.yml
+++ /dev/null
@@ -1,294 +0,0 @@
-host_cpu: 8
-cvp_cpu: 24
-cvp_ram: 32
-cvp_nodes: 1
-veos_cpu: 2
-
-nodes:
- - eos1:
- # interfaces: 6
- ip_addr: "192.168.0.10"
- neighbors:
- - neighborDevice: eos2
- neighborPort: Ethernet5
- port: Ethernet1
- - neighborDevice: eos7
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: eos11
- neighborPort: Ethernet1
- port: Ethernet3
- - neighborDevice: eos6
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: eos5
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: eos17
- neighborPort: Ethernet1
- port: Ethernet6
-
- - eos2:
- # interfaces: 5
- ip_addr: "192.168.0.11"
- neighbors:
- - neighborDevice: eos3
- neighborPort: Ethernet3
- port: Ethernet1
- - neighborDevice: eos4
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: eos5
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: eos6
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: eos1
- neighborPort: Ethernet1
- port: Ethernet5
-
- - eos3:
- # interfaces: 6
- ip_addr: "192.168.0.12"
- neighbors:
- - neighborDevice: eos9
- neighborPort: Ethernet2
- port: Ethernet1
- - neighborDevice: eos7
- neighborPort: Ethernet1
- port: Ethernet2
- - neighborDevice: eos2
- neighborPort: Ethernet1
- port: Ethernet3
- - neighborDevice: eos5
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: eos4
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: eos20
- neighborPort: Ethernet1
- port: Ethernet6
-
- - eos4:
- # interfaces: 6
- ip_addr: "192.168.0.13"
- neighbors:
- - neighborDevice: eos9
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: eos8
- neighborPort: Ethernet1
- port: Ethernet2
- - neighborDevice: eos5
- neighborPort: Ethernet1
- port: Ethernet3
- - neighborDevice: eos2
- neighborPort: Ethernet2
- port: Ethernet4
- - neighborDevice: eos3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: eos16
- neighborPort: Ethernet1
- port: Ethernet6
-
- - eos5:
- # interfaces: 5
- ip_addr: "192.168.0.14"
- neighbors:
- - neighborDevice: eos4
- neighborPort: Ethernet3
- port: Ethernet1
- - neighborDevice: eos3
- neighborPort: Ethernet4
- port: Ethernet2
- - neighborDevice: eos2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: eos1
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: eos6
- neighborPort: Ethernet1
- port: Ethernet5
-
- - eos6:
- # interfaces: 6
- ip_addr: "192.168.0.15"
- neighbors:
- - neighborDevice: eos5
- neighborPort: Ethernet5
- port: Ethernet1
- - neighborDevice: eos8
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: eos13
- neighborPort: Ethernet1
- port: Ethernet3
- - neighborDevice: eos1
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: eos2
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: eos14
- neighborPort: Ethernet2
- port: Ethernet6
-
- - eos7:
- # interfaces: 4
- ip_addr: "192.168.0.16"
- neighbors:
- - neighborDevice: eos3
- neighborPort: Ethernet2
- port: Ethernet1
- - neighborDevice: eos10
- neighborPort: Ethernet1
- port: Ethernet2
- - neighborDevice: eos1
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: eos19
- neighborPort: Ethernet1
- port: Ethernet4
-
- - eos8:
- # interfaces: 5
- ip_addr: "192.168.0.17"
- neighbors:
- - neighborDevice: eos4
- neighborPort: Ethernet2
- port: Ethernet1
- - neighborDevice: eos15
- neighborPort: Ethernet1
- port: Ethernet2
- - neighborDevice: eos6
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: eos14
- neighborPort: Ethernet1
- port: Ethernet4
- - neighborDevice: eos18
- neighborPort: Ethernet1
- port: Ethernet5
-
- - eos9:
- # interfaces: 2
- ip_addr: "192.168.0.18"
- neighbors:
- - neighborDevice: eos4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: eos3
- neighborPort: Ethernet1
- port: Ethernet2
-
- - eos10:
- # interfaces: 1
- ip_addr: "192.168.0.19"
- neighbors:
- - neighborDevice: eos7
- neighborPort: Ethernet2
- port: Ethernet1
-
- - eos11:
- # interfaces: 3
- ip_addr: "192.168.0.20"
- neighbors:
- - neighborDevice: eos1
- neighborPort: Ethernet3
- port: Ethernet1
- - neighborDevice: eos12
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: eos13
- neighborPort: Ethernet3
- port: Ethernet3
-
- - eos12:
- # interfaces: 2
- ip_addr: "192.168.0.21"
- neighbors:
- - neighborDevice: eos13
- neighborPort: Ethernet2
- port: Ethernet1
- - neighborDevice: eos11
- neighborPort: Ethernet2
- port: Ethernet2
-
- - eos13:
- ip_addr: "192.168.0.22"
- # interfaces: 3
- neighbors:
- - neighborDevice: eos6
- neighborPort: Ethernet3
- port: Ethernet1
- - neighborDevice: eos12
- neighborPort: Ethernet1
- port: Ethernet2
- - neighborDevice: eos11
- neighborPort: Ethernet3
- port: Ethernet3
-
- - eos14:
- # interfaces: 2
- ip_addr: "192.168.0.23"
- neighbors:
- - neighborDevice: eos8
- neighborPort: Ethernet4
- port: Ethernet1
- - neighborDevice: eos6
- neighborPort: Ethernet6
- port: Ethernet2
-
- - eos15:
- # interfaces: 1
- ip_addr: "192.168.0.24"
- neighbors:
- - neighborDevice: eos8
- neighborPort: Ethernet2
- port: Ethernet1
-
- - eos16:
- # interfaces: 1
- ip_addr: "192.168.0.25"
- neighbors:
- - neighborDevice: eos4
- neighborPort: Ethernet6
- port: Ethernet1
-
- - eos17:
- # interfaces: 1
- ip_addr: "192.168.0.26"
- neighbors:
- - neighborDevice: eos1
- neighborPort: Ethernet6
- port: Ethernet1
-
- - eos18:
- # interfaces: 1
- ip_addr: "192.168.0.27"
- neighbors:
- - neighborDevice: eos8
- neighborPort: Ethernet5
- port: Ethernet1
-
- - eos19:
- # interfaces: 1
- ip_addr: "192.168.0.28"
- neighbors:
- - neighborDevice: eos7
- neighborPort: Ethernet4
- port: Ethernet1
-
- - eos20:
- # interfaces: 1
- ip_addr: "192.168.0.29"
- neighbors:
- - neighborDevice: eos3
- neighborPort: Ethernet6
- port: Ethernet1
-
-additional_ssh_nodes:
diff --git a/topologies/training-fxf-ceos/atd-topo.png b/topologies/training-fxf-ceos/atd-topo.png
deleted file mode 100644
index bef5d0ca1..000000000
Binary files a/topologies/training-fxf-ceos/atd-topo.png and /dev/null differ
diff --git a/topologies/training-fxf-ceos/configlets/ATD-INFRA b/topologies/training-fxf-ceos/configlets/ATD-INFRA
deleted file mode 100644
index de87bc743..000000000
--- a/topologies/training-fxf-ceos/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-fxf-ceos/configlets/Access-1-BASE b/topologies/training-fxf-ceos/configlets/Access-1-BASE
deleted file mode 100644
index 9dba1bdb4..000000000
--- a/topologies/training-fxf-ceos/configlets/Access-1-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Access-1
-!
-!
-interface Management0
- vrf MGMT
- ip address 192.168.0.23/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf-ceos/configlets/Access-2-BASE b/topologies/training-fxf-ceos/configlets/Access-2-BASE
deleted file mode 100644
index d24c08883..000000000
--- a/topologies/training-fxf-ceos/configlets/Access-2-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Access-2
-!
-!
-interface Management0
- vrf MGMT
- ip address 192.168.0.24/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf-ceos/configlets/Base-Builder.py b/topologies/training-fxf-ceos/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-fxf-ceos/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-fxf-ceos/configlets/Core-1-BASE b/topologies/training-fxf-ceos/configlets/Core-1-BASE
deleted file mode 100644
index 7338e8067..000000000
--- a/topologies/training-fxf-ceos/configlets/Core-1-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Core-1
-!
-!
-interface Management0
- vrf MGMT
- ip address 192.168.0.21/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf-ceos/configlets/Core-2-BASE b/topologies/training-fxf-ceos/configlets/Core-2-BASE
deleted file mode 100644
index bac581d80..000000000
--- a/topologies/training-fxf-ceos/configlets/Core-2-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Core-2
-!
-!
-interface Management0
- vrf MGMT
- ip address 192.168.0.22/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf-ceos/configlets/Router-1-BASE b/topologies/training-fxf-ceos/configlets/Router-1-BASE
deleted file mode 100644
index 413d6a275..000000000
--- a/topologies/training-fxf-ceos/configlets/Router-1-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Router-1
-!
-!
-interface Management0
- vrf MGMT
- ip address 192.168.0.12/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf-ceos/configlets/Router-2-BASE b/topologies/training-fxf-ceos/configlets/Router-2-BASE
deleted file mode 100644
index 6e42217f8..000000000
--- a/topologies/training-fxf-ceos/configlets/Router-2-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Router-2
-!
-!
-interface Management0
- vrf MGMT
- ip address 192.168.0.13/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf-ceos/configlets/Wan-1-BASE b/topologies/training-fxf-ceos/configlets/Wan-1-BASE
deleted file mode 100644
index f1f6939a0..000000000
--- a/topologies/training-fxf-ceos/configlets/Wan-1-BASE
+++ /dev/null
@@ -1,72 +0,0 @@
-hostname Wan-1
-!
-switchport default mode routed
-!
-spanning-tree mode mstp
-!
-vlan 11
-!
-interface Loopback0
- ip address 1.1.1.7/32
-!
-interface Management0
- vrf MGMT
- ip address 192.168.0.11/24
-!
-interface Management0
- vrf MGMT
- ip address 192.168.0.11/24
-!
-ip routing
-!
-dns domain arista.lab
-
-management api http-commands
- no shutdown
- !
- vrf MGMT
- no shutdown
-!
-interface Ethernet1
- description L3 Link to Wan-1 E1
- no switchport
- ip address 172.28.138.1/20
-!
-interface Ethernet2
- no switchport
- ip address 172.28.144.1/20
-!
-interface Ethernet3
- switchport access vlan 11
- switchport
- spanning-tree portfast
-!
-interface Loopback0
- ip address 1.1.1.7/32
-!
-!
-interface Vlan11
- no autostate
- ip address 11.0.0.254/24
-!
-ip routing
-ip routing vrf MGMT
-!
-ip route 0.0.0.0/0 172.28.138.5 20
-ip route 0.0.0.0/0 172.28.144.5 21
-ip route 12.0.0.0/24 172.28.138.5 20
-ip route 12.0.0.0/24 172.28.144.5 21
-ip route 14.0.0.0/24 172.28.144.5 20
-ip route 14.0.0.0/24 172.28.138.5 21
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management0
-!
-ip radius source-interface Management0
-!
-management telnet
- no shutdown
-!
-
-management ssh
- no shutdown
diff --git a/topologies/training-fxf-ceos/files/.ansible.cfg b/topologies/training-fxf-ceos/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-fxf-ceos/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-fxf-ceos/files/.screenrc b/topologies/training-fxf-ceos/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-fxf-ceos/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-fxf-ceos/files/MenuOptions.yaml b/topologies/training-fxf-ceos/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-fxf-ceos/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-fxf-ceos/files/apps/coder/coder.yaml b/topologies/training-fxf-ceos/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-fxf-ceos/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-fxf-ceos/files/apps/coder/labfiles/.placeholder b/topologies/training-fxf-ceos/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-fxf-ceos/files/apps/gui/host-1/arista/host-startup.sh b/topologies/training-fxf-ceos/files/apps/gui/host-1/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-fxf-ceos/files/apps/gui/host-1/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-fxf-ceos/files/apps/gui/host-12/arista/host-startup.sh b/topologies/training-fxf-ceos/files/apps/gui/host-12/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-fxf-ceos/files/apps/gui/host-12/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-fxf-ceos/files/apps/gui/host-14/arista/host-startup.sh b/topologies/training-fxf-ceos/files/apps/gui/host-14/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-fxf-ceos/files/apps/gui/host-14/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-fxf-ceos/files/apps/ssh/web.json b/topologies/training-fxf-ceos/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-fxf-ceos/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-fxf-ceos/files/apps/syslog/172.18.0.1/.bkp b/topologies/training-fxf-ceos/files/apps/syslog/172.18.0.1/.bkp
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-fxf-ceos/files/apps/syslog/192.168.0.24/.bkp b/topologies/training-fxf-ceos/files/apps/syslog/192.168.0.24/.bkp
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-fxf-ceos/files/apps/tacacs/config b/topologies/training-fxf-ceos/files/apps/tacacs/config
deleted file mode 100644
index c756c03e8..000000000
--- a/topologies/training-fxf-ceos/files/apps/tacacs/config
+++ /dev/null
@@ -1,20 +0,0 @@
- key = "COOKBOOK"
-
-# user: fedexuser login password: fedexuser
-
- user = fedexuser {
- login = clear fedexuser
- service = shell {
- set priv-lvl = 15
- cmd = show {
- deny running-config
- permit .*
- }
- }
- }
-
-# user: fedex login password: arista
- user = fedex {
- default service = permit
- login = clear arista
- }
\ No newline at end of file
diff --git a/topologies/training-fxf-ceos/files/apps/tacacs/tac.log b/topologies/training-fxf-ceos/files/apps/tacacs/tac.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-fxf-ceos/files/apps/uilanding/modules.yaml b/topologies/training-fxf-ceos/files/apps/uilanding/modules.yaml
deleted file mode 100644
index 5d7df4ad4..000000000
--- a/topologies/training-fxf-ceos/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Access-1:
- coords: "73,468,189,532"
- ip: "192.168.0.14"
- Access-2:
- coords: "206,474,338,520"
- ip: "192.168.0.21"
- Core-1:
- coords: "81,319,176,381"
- ip: "192.168.0.22"
- Core-2:
- coords: "218,316,335,393"
- ip: "192.168.0.23"
- Router-1:
- coords: "81,218,192,284"
- ip: "192.168.0.24"
- Router-2:
- coords: "216,216,351,301"
- ip: "192.168.0.25"
- Wan-1:
- coords: "105,114,305,198"
- ip: "192.168.0.26"
- servers:
- Server-1:
- coords: "145,1,267,78"
- ip: "192.168.0.11"
- port : 6001
- Server-12:
- coords: "75,548,171,611"
- ip: "192.168.0.12"
- port : 6002
- Server-14:
- coords: "221,541,326,617"
- ip: "192.168.0.13"
- port : 6003
diff --git a/topologies/training-fxf-ceos/files/apps/webui/.vncpass_clear b/topologies/training-fxf-ceos/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-fxf-ceos/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-fxf-ceos/files/cvp/cvp_info.yaml b/topologies/training-fxf-ceos/files/cvp/cvp_info.yaml
deleted file mode 100644
index 9ac5b19d9..000000000
--- a/topologies/training-fxf-ceos/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- - Wan-1
- - Router-1
- - Router-2
- - Core-1
- - Core-2
- - Access-1
- - Access-2
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- Wan-1:
- - Wan-1-BASE
- Router-1:
- - Router-1-BASE
- Router-2:
- - Router-2-BASE
- Core-1:
- - Core-1-BASE
- Core-2:
- - Core-2-BASE
- Access-1:
- - Access-1-BASE
- Access-2:
- - Access-2-BASE
diff --git a/topologies/training-fxf-ceos/files/hosts b/topologies/training-fxf-ceos/files/hosts
deleted file mode 100644
index b01ba8483..000000000
--- a/topologies/training-fxf-ceos/files/hosts
+++ /dev/null
@@ -1,24 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.101 host5
-192.168.0.102 host6
-192.168.0.103 host7
-192.168.0.104 host8
-192.168.0.5 cvp
diff --git a/topologies/training-fxf-ceos/files/menus/default.yaml b/topologies/training-fxf-ceos/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-fxf-ceos/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-fxf-ceos/files/menus/training-l3.yaml b/topologies/training-fxf-ceos/files/menus/training-l3.yaml
deleted file mode 100644
index f5bc9bc09..000000000
--- a/topologies/training-fxf-ceos/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
----
- lab_list:
- reset:
- description: "Reset All Devices to Base Lab (reset)"
- labconfiglets:
- reset:
- Wan-1:
- - "Wan-1-BASE"
- Router-1:
- - "Router-1-BASE"
- Router-2:
- - "Router-2-BASE"
- Core-1:
- - "Core-1-BASE"
- Core-2:
- - "Core-2-BASE"
- Access-1:
- - "Access-1-BASE"
- Access-2:
- - "Access-2-BASE"
- host-1:
- - "host-1-BASE"
- host-12:
- - "host-12-BASE"
- host-14:
- - "host-14-BASE"
\ No newline at end of file
diff --git a/topologies/training-fxf-ceos/files/scripts/Authenticate-CVP b/topologies/training-fxf-ceos/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-fxf-ceos/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-fxf-ceos/files/scripts/Authenticate-CVP2 b/topologies/training-fxf-ceos/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-fxf-ceos/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-fxf-ceos/files/scripts/Authenticate-CVP3 b/topologies/training-fxf-ceos/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-fxf-ceos/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-fxf-ceos/files/scripts/Configlet1 b/topologies/training-fxf-ceos/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-fxf-ceos/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-fxf-ceos/files/scripts/ConfigletChange b/topologies/training-fxf-ceos/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-fxf-ceos/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-fxf-ceos/files/scripts/ConfigletDetail b/topologies/training-fxf-ceos/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-fxf-ceos/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-fxf-ceos/files/scripts/ConfigletHistory b/topologies/training-fxf-ceos/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-fxf-ceos/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-fxf-ceos/files/scripts/TaskBase b/topologies/training-fxf-ceos/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-fxf-ceos/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-fxf-ceos/files/scripts/TaskCVP1 b/topologies/training-fxf-ceos/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-fxf-ceos/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-fxf-ceos/files/scripts/TaskExecute b/topologies/training-fxf-ceos/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-fxf-ceos/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-fxf-ceos/files/scripts/TaskLog b/topologies/training-fxf-ceos/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-fxf-ceos/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-fxf-ceos/files/scripts/TaskLog1 b/topologies/training-fxf-ceos/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-fxf-ceos/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-fxf-ceos/files/scripts/TaskLogView b/topologies/training-fxf-ceos/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-fxf-ceos/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-fxf-ceos/files/scripts/TaskNote b/topologies/training-fxf-ceos/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-fxf-ceos/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-fxf-ceos/labguides/.gitignore b/topologies/training-fxf-ceos/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-fxf-ceos/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-fxf-ceos/labguides/Makefile b/topologies/training-fxf-ceos/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-fxf-ceos/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-fxf-ceos/labguides/readme.md b/topologies/training-fxf-ceos/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-fxf-ceos/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-fxf-ceos/labguides/source/_static/arista_logo.png b/topologies/training-fxf-ceos/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-fxf-ceos/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-fxf-ceos/labguides/source/_static/arista_logo_160by26.png b/topologies/training-fxf-ceos/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-fxf-ceos/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-fxf-ceos/labguides/source/_static/arista_logo_320by52.png b/topologies/training-fxf-ceos/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-fxf-ceos/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-fxf-ceos/labguides/source/_static/cloudvision-icon.png b/topologies/training-fxf-ceos/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-fxf-ceos/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-fxf-ceos/labguides/source/_static/logo.jpg b/topologies/training-fxf-ceos/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-fxf-ceos/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-fxf-ceos/labguides/source/_static/my-styles.css b/topologies/training-fxf-ceos/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-fxf-ceos/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-fxf-ceos/labguides/source/conf.py b/topologies/training-fxf-ceos/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-fxf-ceos/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-fxf-ceos/labguides/source/connecting.rst b/topologies/training-fxf-ceos/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-fxf-ceos/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-fxf-ceos/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-fxf-ceos/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-fxf-ceos/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-fxf-ceos/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-fxf-ceos/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-fxf-ceos/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-fxf-ceos/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-fxf-ceos/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-fxf-ceos/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-fxf-ceos/labguides/source/images/logo.jpg b/topologies/training-fxf-ceos/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-fxf-ceos/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-fxf-ceos/labguides/source/index.rst b/topologies/training-fxf-ceos/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-fxf-ceos/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-fxf-ceos/topo_build.yml b/topologies/training-fxf-ceos/topo_build.yml
deleted file mode 100644
index a3bc1988f..000000000
--- a/topologies/training-fxf-ceos/topo_build.yml
+++ /dev/null
@@ -1,142 +0,0 @@
-host_cpu: 4
-cvp_cpu: 32
-cvp_ram: 42
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - Wan-1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: Router-1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Router-2
- neighborPort: Ethernet1
- port: Ethernet2
- - neighborDevice: host-1
- neighborPort: Ethernet1
- port: Ethernet3
- - Router-1:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: Wan-1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Core-1
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: Router-2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: Router-2
- neighborPort: Ethernet4
- port: Ethernet4
- - Router-2:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: Wan-1
- neighborPort: Ethernet2
- port: Ethernet1
- - neighborDevice: Core-2
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: Router-1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: Router-1
- neighborPort: Ethernet4
- port: Ethernet4
- - Core-1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: Access-1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Access-2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: Core-2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: Core-2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: Router-1
- neighborPort: Ethernet2
- port: Ethernet5
- - Core-2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: Access-2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Access-1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: Core-1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: Core-1
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: Router-2
- neighborPort: Ethernet2
- port: Ethernet5
- - Access-1:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: Core-1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Core-2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: host-12
- neighborPort: Ethernet1
- port: Ethernet3
- - Access-2:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: Core-2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Core-1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: host-14
- neighborPort: Ethernet1
- port: Ethernet3
-servers:
- - host-1:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.41
- port : 6001
- neighbors:
- - neighborDevice: Wan-1
- neighborPort: Ethernet3
- port: Ethernet1
- - host-12:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.42
- port : 6002
- neighbors:
- - neighborDevice: Access-1
- neighborPort: Ethernet3
- port: Ethernet1
- - host-14:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.43
- port : 6003
- neighbors:
- - neighborDevice: Access-2
- neighborPort: Ethernet3
- port: Ethernet1
-additional_ssh_nodes:
-additional_clab_nodes:
diff --git a/topologies/training-fxf/atd-topo.png b/topologies/training-fxf/atd-topo.png
deleted file mode 100644
index bef5d0ca1..000000000
Binary files a/topologies/training-fxf/atd-topo.png and /dev/null differ
diff --git a/topologies/training-fxf/configlets/ATD-INFRA b/topologies/training-fxf/configlets/ATD-INFRA
deleted file mode 100644
index a8c0268c6..000000000
--- a/topologies/training-fxf/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management1
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management1
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-fxf/configlets/Access-1-BASE b/topologies/training-fxf/configlets/Access-1-BASE
deleted file mode 100644
index 603418ba9..000000000
--- a/topologies/training-fxf/configlets/Access-1-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Access-1
-!
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.23/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf/configlets/Access-2-BASE b/topologies/training-fxf/configlets/Access-2-BASE
deleted file mode 100644
index 429a9159e..000000000
--- a/topologies/training-fxf/configlets/Access-2-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Access-2
-!
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.24/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf/configlets/Base-Builder.py b/topologies/training-fxf/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-fxf/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-fxf/configlets/Core-1-BASE b/topologies/training-fxf/configlets/Core-1-BASE
deleted file mode 100644
index 4a983df28..000000000
--- a/topologies/training-fxf/configlets/Core-1-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Core-1
-!
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.21/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf/configlets/Core-2-BASE b/topologies/training-fxf/configlets/Core-2-BASE
deleted file mode 100644
index af2399087..000000000
--- a/topologies/training-fxf/configlets/Core-2-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Core-2
-!
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.22/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf/configlets/Router-1-BASE b/topologies/training-fxf/configlets/Router-1-BASE
deleted file mode 100644
index e68fe76ad..000000000
--- a/topologies/training-fxf/configlets/Router-1-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Router-1
-!
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.12/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf/configlets/Router-2-BASE b/topologies/training-fxf/configlets/Router-2-BASE
deleted file mode 100644
index 992c28f23..000000000
--- a/topologies/training-fxf/configlets/Router-2-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Router-2
-!
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.13/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf/configlets/Wan-1-BASE b/topologies/training-fxf/configlets/Wan-1-BASE
deleted file mode 100644
index 4a6c7e767..000000000
--- a/topologies/training-fxf/configlets/Wan-1-BASE
+++ /dev/null
@@ -1,57 +0,0 @@
-hostname Wan-1
-dns domain arista.lab
-!
-transceiver qsfp default-mode 4x10G
-!
-service routing protocols model multi-agent
-spanning-tree mode mstp
-!
-vlan 11
-!
-!
-management api http-commands
- no shutdown
- !
- vrf MGMT
- no shutdown
-
-!
-!
-interface Ethernet1
- description L3 Link to Wan-1 E1
- no switchport
- ip address 172.28.138.1/20
-!
-interface Ethernet2
- no switchport
- ip address 172.28.144.1/20
-!
-interface Ethernet3
- switchport access vlan 11
- switchport
- spanning-tree portfast
-!
-interface Loopback0
- ip address 1.1.1.7/32
-!
-!
-interface Vlan11
- no autostate
- ip address 11.0.0.254/24
-!
-ip routing
-ip routing vrf MGMT
-!
-ip route 0.0.0.0/0 172.28.138.5 20
-ip route 0.0.0.0/0 172.28.144.5 21
-ip route 12.0.0.0/24 172.28.138.5 20
-ip route 12.0.0.0/24 172.28.144.5 21
-ip route 14.0.0.0/24 172.28.144.5 20
-ip route 14.0.0.0/24 172.28.138.5 21
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-!
-management telnet
- no shutdown
-!
-
diff --git a/topologies/training-fxf/configlets/Wan-1-OSPF b/topologies/training-fxf/configlets/Wan-1-OSPF
deleted file mode 100644
index 8e2237a54..000000000
--- a/topologies/training-fxf/configlets/Wan-1-OSPF
+++ /dev/null
@@ -1,27 +0,0 @@
-router ospf 1
- router-id 1.1.1.7
- passive-interface default
- no passive-interface Ethernet1
- no passive-interface Ethernet2
- no passive-interface Vlan14
- network 10.0.0.16/30 area 0.0.0.1
- network 10.0.0.20/30 area 0.0.0.1
- network 14.0.0.0/24 area 0.0.0.0
- default-information originate always
-
-
- interface Vlan14
- no autostate
- ip address 14.0.0.254/24
- ip ospf area 0.0.0.0
-
- interface Ethernet 1
- description OSPF Area 1 to Router-1
- ip ospf network point-to-point
- ip ospf area 0.0.0.1
-
-
- interface Ethernet 2
- description OSPF Area 1 to Router-2
- ip ospf network point-to-point
- ip ospf area 0.0.0.1
\ No newline at end of file
diff --git a/topologies/training-fxf/configlets/host-1-BASE b/topologies/training-fxf/configlets/host-1-BASE
deleted file mode 100644
index 314cfd674..000000000
--- a/topologies/training-fxf/configlets/host-1-BASE
+++ /dev/null
@@ -1,27 +0,0 @@
-hostname host-1
-!
-no spanning-tree vlan-id 14
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.41/24
-!
-vlan 14
-!
-interface Vlan14
- ip address 14.0.0.11/24
- no autostate
-!
-interface Ethernet 1
- switchport
- switchport mode access
- switchport access vlan 14
-!
-ip routing
-ip route 0.0.0.0/0 14.0.0.254
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf/configlets/host-12-BASE b/topologies/training-fxf/configlets/host-12-BASE
deleted file mode 100644
index 376ad91f8..000000000
--- a/topologies/training-fxf/configlets/host-12-BASE
+++ /dev/null
@@ -1,28 +0,0 @@
-hostname host-12
-!
-no spanning-tree vlan-id 13
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.42/24
-!
-vlan 12
-!
-interface Vlan13
- ip address 13.0.0.11/24
- no autostate
-!
-interface Ethernet 1
- switchport
- switchport mode access
- switchport access vlan 13
-!
-ip routing
-!
-ip route 0.0.0.0/0 13.0.0.1
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf/configlets/host-14-BASE b/topologies/training-fxf/configlets/host-14-BASE
deleted file mode 100644
index 7057584ea..000000000
--- a/topologies/training-fxf/configlets/host-14-BASE
+++ /dev/null
@@ -1,28 +0,0 @@
-hostname host-14
-!
-no spanning-tree vlan-id 14
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.43/24
-!
-vlan 14
-!
-interface Vlan14
- ip address 14.0.0.11/24
- no autostate
-!
-interface Ethernet 1
- switchport
- switchport mode access
- switchport access vlan 14
-!
-ip routing
-!
-ip route 0.0.0.0/0 14.0.0.254
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxf/files/.ansible.cfg b/topologies/training-fxf/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-fxf/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-fxf/files/.screenrc b/topologies/training-fxf/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-fxf/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-fxf/files/MenuOptions.yaml b/topologies/training-fxf/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-fxf/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-fxf/files/apps/coder/coder.yaml b/topologies/training-fxf/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-fxf/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-fxf/files/apps/coder/labfiles/.placeholder b/topologies/training-fxf/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-fxf/files/apps/gui/Server-1/arista/host-startup.sh b/topologies/training-fxf/files/apps/gui/Server-1/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-fxf/files/apps/gui/Server-1/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-fxf/files/apps/gui/Server-11/arista/host-startup.sh b/topologies/training-fxf/files/apps/gui/Server-11/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-fxf/files/apps/gui/Server-11/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-fxf/files/apps/gui/Server-12/arista/host-startup.sh b/topologies/training-fxf/files/apps/gui/Server-12/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-fxf/files/apps/gui/Server-12/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-fxf/files/apps/gui/host6/arista/host-startup.sh b/topologies/training-fxf/files/apps/gui/host6/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-fxf/files/apps/gui/host6/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-fxf/files/apps/ssh/web.json b/topologies/training-fxf/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-fxf/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-fxf/files/apps/syslog/172.18.0.1/.bkp b/topologies/training-fxf/files/apps/syslog/172.18.0.1/.bkp
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-fxf/files/apps/syslog/192.168.0.24/.bkp b/topologies/training-fxf/files/apps/syslog/192.168.0.24/.bkp
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-fxf/files/apps/tacacs/config b/topologies/training-fxf/files/apps/tacacs/config
deleted file mode 100644
index c756c03e8..000000000
--- a/topologies/training-fxf/files/apps/tacacs/config
+++ /dev/null
@@ -1,20 +0,0 @@
- key = "COOKBOOK"
-
-# user: fedexuser login password: fedexuser
-
- user = fedexuser {
- login = clear fedexuser
- service = shell {
- set priv-lvl = 15
- cmd = show {
- deny running-config
- permit .*
- }
- }
- }
-
-# user: fedex login password: arista
- user = fedex {
- default service = permit
- login = clear arista
- }
\ No newline at end of file
diff --git a/topologies/training-fxf/files/apps/tacacs/tac.log b/topologies/training-fxf/files/apps/tacacs/tac.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-fxf/files/apps/uilanding/modules.yaml b/topologies/training-fxf/files/apps/uilanding/modules.yaml
deleted file mode 100644
index 5d7df4ad4..000000000
--- a/topologies/training-fxf/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Access-1:
- coords: "73,468,189,532"
- ip: "192.168.0.14"
- Access-2:
- coords: "206,474,338,520"
- ip: "192.168.0.21"
- Core-1:
- coords: "81,319,176,381"
- ip: "192.168.0.22"
- Core-2:
- coords: "218,316,335,393"
- ip: "192.168.0.23"
- Router-1:
- coords: "81,218,192,284"
- ip: "192.168.0.24"
- Router-2:
- coords: "216,216,351,301"
- ip: "192.168.0.25"
- Wan-1:
- coords: "105,114,305,198"
- ip: "192.168.0.26"
- servers:
- Server-1:
- coords: "145,1,267,78"
- ip: "192.168.0.11"
- port : 6001
- Server-12:
- coords: "75,548,171,611"
- ip: "192.168.0.12"
- port : 6002
- Server-14:
- coords: "221,541,326,617"
- ip: "192.168.0.13"
- port : 6003
diff --git a/topologies/training-fxf/files/apps/webui/.vncpass_clear b/topologies/training-fxf/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-fxf/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-fxf/files/cvp/cvp_info.yaml b/topologies/training-fxf/files/cvp/cvp_info.yaml
deleted file mode 100644
index ac8b5450b..000000000
--- a/topologies/training-fxf/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- - Wan-1
- - Router-1
- - Router-2
- - Core-1
- - Core-2
- - Access-1
- - Access-2
- - host-1-BASE
- - host-12-BASE
- - host-14-BASE
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- Wan-1:
- - Wan-1-BASE
- Router-1:
- - Router-1-BASE
- Router-2:
- - Router-2-BASE
- Core-1:
- - Core-1-BASE
- Core-2:
- - Core-2-BASE
- Access-1:
- - Access-1-BASE
- Access-2:
- - Access-2-BASE
- host-1:
- - host-1-BASE
- host-12:
- - host-12-BASE
- host-14:
- - host-14-BASE
diff --git a/topologies/training-fxf/files/hosts b/topologies/training-fxf/files/hosts
deleted file mode 100644
index b01ba8483..000000000
--- a/topologies/training-fxf/files/hosts
+++ /dev/null
@@ -1,24 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.101 host5
-192.168.0.102 host6
-192.168.0.103 host7
-192.168.0.104 host8
-192.168.0.5 cvp
diff --git a/topologies/training-fxf/files/menus/default.yaml b/topologies/training-fxf/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-fxf/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-fxf/files/menus/training-l3.yaml b/topologies/training-fxf/files/menus/training-l3.yaml
deleted file mode 100644
index f5bc9bc09..000000000
--- a/topologies/training-fxf/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
----
- lab_list:
- reset:
- description: "Reset All Devices to Base Lab (reset)"
- labconfiglets:
- reset:
- Wan-1:
- - "Wan-1-BASE"
- Router-1:
- - "Router-1-BASE"
- Router-2:
- - "Router-2-BASE"
- Core-1:
- - "Core-1-BASE"
- Core-2:
- - "Core-2-BASE"
- Access-1:
- - "Access-1-BASE"
- Access-2:
- - "Access-2-BASE"
- host-1:
- - "host-1-BASE"
- host-12:
- - "host-12-BASE"
- host-14:
- - "host-14-BASE"
\ No newline at end of file
diff --git a/topologies/training-fxf/files/scripts/Authenticate-CVP b/topologies/training-fxf/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-fxf/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-fxf/files/scripts/Authenticate-CVP2 b/topologies/training-fxf/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-fxf/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-fxf/files/scripts/Authenticate-CVP3 b/topologies/training-fxf/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-fxf/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-fxf/files/scripts/Configlet1 b/topologies/training-fxf/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-fxf/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-fxf/files/scripts/ConfigletChange b/topologies/training-fxf/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-fxf/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-fxf/files/scripts/ConfigletDetail b/topologies/training-fxf/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-fxf/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-fxf/files/scripts/ConfigletHistory b/topologies/training-fxf/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-fxf/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-fxf/files/scripts/TaskBase b/topologies/training-fxf/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-fxf/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-fxf/files/scripts/TaskCVP1 b/topologies/training-fxf/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-fxf/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-fxf/files/scripts/TaskExecute b/topologies/training-fxf/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-fxf/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-fxf/files/scripts/TaskLog b/topologies/training-fxf/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-fxf/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-fxf/files/scripts/TaskLog1 b/topologies/training-fxf/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-fxf/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-fxf/files/scripts/TaskLogView b/topologies/training-fxf/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-fxf/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-fxf/files/scripts/TaskNote b/topologies/training-fxf/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-fxf/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-fxf/labguides/.gitignore b/topologies/training-fxf/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-fxf/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-fxf/labguides/Makefile b/topologies/training-fxf/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-fxf/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-fxf/labguides/readme.md b/topologies/training-fxf/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-fxf/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-fxf/labguides/source/_static/arista_logo.png b/topologies/training-fxf/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-fxf/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-fxf/labguides/source/_static/arista_logo_160by26.png b/topologies/training-fxf/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-fxf/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-fxf/labguides/source/_static/arista_logo_320by52.png b/topologies/training-fxf/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-fxf/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-fxf/labguides/source/_static/cloudvision-icon.png b/topologies/training-fxf/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-fxf/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-fxf/labguides/source/_static/logo.jpg b/topologies/training-fxf/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-fxf/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-fxf/labguides/source/_static/my-styles.css b/topologies/training-fxf/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-fxf/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-fxf/labguides/source/conf.py b/topologies/training-fxf/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-fxf/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-fxf/labguides/source/connecting.rst b/topologies/training-fxf/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-fxf/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-fxf/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-fxf/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-fxf/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-fxf/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-fxf/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-fxf/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-fxf/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-fxf/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-fxf/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-fxf/labguides/source/images/logo.jpg b/topologies/training-fxf/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-fxf/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-fxf/labguides/source/index.rst b/topologies/training-fxf/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-fxf/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-fxf/topo_build.yml b/topologies/training-fxf/topo_build.yml
deleted file mode 100644
index 4e1538a08..000000000
--- a/topologies/training-fxf/topo_build.yml
+++ /dev/null
@@ -1,138 +0,0 @@
-host_cpu: 4
-cvp_cpu: 32
-cvp_ram: 42
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - Wan-1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: Router-1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Router-2
- neighborPort: Ethernet1
- port: Ethernet2
- - neighborDevice: host-1
- neighborPort: Ethernet1
- port: Ethernet3
- - Router-1:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: Wan-1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Core-1
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: Router-2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: Router-2
- neighborPort: Ethernet4
- port: Ethernet4
- - Router-2:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: Wan-1
- neighborPort: Ethernet2
- port: Ethernet1
- - neighborDevice: Core-2
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: Router-1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: Router-1
- neighborPort: Ethernet4
- port: Ethernet4
- - Core-1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: Access-1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Access-2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: Core-2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: Core-2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: Router-1
- neighborPort: Ethernet2
- port: Ethernet5
- - Core-2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: Access-2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Access-1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: Core-1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: Core-1
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: Router-2
- neighborPort: Ethernet2
- port: Ethernet5
- - Access-1:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: Core-1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Core-2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: host-12
- neighborPort: Ethernet1
- port: Ethernet3
- - Access-2:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: Core-2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Core-1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: host-14
- neighborPort: Ethernet1
- port: Ethernet3
- - host-1:
- ip_addr: 192.168.0.41
- sys_mac: 00:1c:73:e1:c6:01
- neighbors:
- - neighborDevice: Wan-1
- neighborPort: Ethernet3
- port: Ethernet1
- - host-12:
- ip_addr: 192.168.0.42
- sys_mac: 00:1c:73:e2:c6:01
- neighbors:
- - neighborDevice: Access-1
- neighborPort: Ethernet3
- port: Ethernet1
- - host-14:
- ip_addr: 192.168.0.43
- sys_mac: 00:1c:73:e3:c6:01
- neighbors:
- - neighborDevice: Access-2
- neighborPort: Ethernet3
- port: Ethernet1
-additional_ssh_nodes:
-additional_clab_nodes:
diff --git a/topologies/training-fxg/atd-topo.png b/topologies/training-fxg/atd-topo.png
deleted file mode 100644
index cf663b5dc..000000000
Binary files a/topologies/training-fxg/atd-topo.png and /dev/null differ
diff --git a/topologies/training-fxg/configlets/ATD-INFRA b/topologies/training-fxg/configlets/ATD-INFRA
deleted file mode 100644
index a8c0268c6..000000000
--- a/topologies/training-fxg/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management1
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management1
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-fxg/configlets/Access-1-BASE b/topologies/training-fxg/configlets/Access-1-BASE
deleted file mode 100644
index 603418ba9..000000000
--- a/topologies/training-fxg/configlets/Access-1-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Access-1
-!
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.23/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxg/configlets/Access-2-BASE b/topologies/training-fxg/configlets/Access-2-BASE
deleted file mode 100644
index 429a9159e..000000000
--- a/topologies/training-fxg/configlets/Access-2-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Access-2
-!
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.24/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxg/configlets/Base-Builder.py b/topologies/training-fxg/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-fxg/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-fxg/configlets/Core-1-BASE b/topologies/training-fxg/configlets/Core-1-BASE
deleted file mode 100644
index 4a983df28..000000000
--- a/topologies/training-fxg/configlets/Core-1-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Core-1
-!
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.21/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxg/configlets/Core-2-BASE b/topologies/training-fxg/configlets/Core-2-BASE
deleted file mode 100644
index af2399087..000000000
--- a/topologies/training-fxg/configlets/Core-2-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Core-2
-!
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.22/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxg/configlets/Router-1-BASE b/topologies/training-fxg/configlets/Router-1-BASE
deleted file mode 100644
index e68fe76ad..000000000
--- a/topologies/training-fxg/configlets/Router-1-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Router-1
-!
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.12/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxg/configlets/Router-2-BASE b/topologies/training-fxg/configlets/Router-2-BASE
deleted file mode 100644
index da13cac20..000000000
--- a/topologies/training-fxg/configlets/Router-2-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Router-2
-!
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.13/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxg/configlets/Wan-1-BASE b/topologies/training-fxg/configlets/Wan-1-BASE
deleted file mode 100644
index 42431a61b..000000000
--- a/topologies/training-fxg/configlets/Wan-1-BASE
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname Wan-1
-!
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.11/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxg/configlets/Wan-1-OSPF b/topologies/training-fxg/configlets/Wan-1-OSPF
deleted file mode 100644
index 8e2237a54..000000000
--- a/topologies/training-fxg/configlets/Wan-1-OSPF
+++ /dev/null
@@ -1,27 +0,0 @@
-router ospf 1
- router-id 1.1.1.7
- passive-interface default
- no passive-interface Ethernet1
- no passive-interface Ethernet2
- no passive-interface Vlan14
- network 10.0.0.16/30 area 0.0.0.1
- network 10.0.0.20/30 area 0.0.0.1
- network 14.0.0.0/24 area 0.0.0.0
- default-information originate always
-
-
- interface Vlan14
- no autostate
- ip address 14.0.0.254/24
- ip ospf area 0.0.0.0
-
- interface Ethernet 1
- description OSPF Area 1 to Router-1
- ip ospf network point-to-point
- ip ospf area 0.0.0.1
-
-
- interface Ethernet 2
- description OSPF Area 1 to Router-2
- ip ospf network point-to-point
- ip ospf area 0.0.0.1
\ No newline at end of file
diff --git a/topologies/training-fxg/configlets/host-1-BASE b/topologies/training-fxg/configlets/host-1-BASE
deleted file mode 100644
index 6860bc957..000000000
--- a/topologies/training-fxg/configlets/host-1-BASE
+++ /dev/null
@@ -1,27 +0,0 @@
-hostname host-1
-!
-no spanning-tree vlan-id 14
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.41/24
-!
-vlan 14
-!
-interface Vlan14
- ip address 14.0.0.11/24
- no autostate
-!
-interface Ethernet 1
- switchport
- switchport mode access
- switchport access vlan 14
-!
-ip routing
-ip route 0.0.0.0/0 14.0.0.254
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxg/configlets/host-11-BASE b/topologies/training-fxg/configlets/host-11-BASE
deleted file mode 100644
index 57f678028..000000000
--- a/topologies/training-fxg/configlets/host-11-BASE
+++ /dev/null
@@ -1,28 +0,0 @@
-hostname host-11
-!
-no spanning-tree vlan-id 11
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.42/24
-!
-vlan 11
-!
-interface Vlan11
- ip address 11.0.0.11/24
- no autostate
-!
-interface Ethernet 1
- switchport
- switchport mode access
- switchport access vlan 11
-!
-ip routing
-!
-ip route 0.0.0.0/0 11.0.0.1
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxg/configlets/host-12-BASE b/topologies/training-fxg/configlets/host-12-BASE
deleted file mode 100644
index 5ff9d1335..000000000
--- a/topologies/training-fxg/configlets/host-12-BASE
+++ /dev/null
@@ -1,28 +0,0 @@
-hostname host-12
-!
-no spanning-tree vlan-id 13
-!
-interface Management1
- vrf MGMT
- ip address 192.168.0.43/24
-!
-vlan 13
-!
-interface Vlan13
- ip address 13.0.0.11/24
- no autostate
-!
-interface Ethernet 1
- switchport
- switchport mode access
- switchport access vlan 13
-!
-ip routing
-!
-ip route 0.0.0.0/0 13.0.0.1
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-fxg/files/.ansible.cfg b/topologies/training-fxg/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-fxg/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-fxg/files/.screenrc b/topologies/training-fxg/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-fxg/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-fxg/files/MenuOptions.yaml b/topologies/training-fxg/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-fxg/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-fxg/files/apps/coder/coder.yaml b/topologies/training-fxg/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-fxg/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-fxg/files/apps/coder/labfiles/.placeholder b/topologies/training-fxg/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-fxg/files/apps/gui/host-1/arista/host-startup.sh b/topologies/training-fxg/files/apps/gui/host-1/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-fxg/files/apps/gui/host-1/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-fxg/files/apps/gui/host-11/arista/host-startup.sh b/topologies/training-fxg/files/apps/gui/host-11/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-fxg/files/apps/gui/host-11/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-fxg/files/apps/gui/host-12/arista/host-startup.sh b/topologies/training-fxg/files/apps/gui/host-12/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-fxg/files/apps/gui/host-12/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-fxg/files/apps/gui/host6/arista/host-startup.sh b/topologies/training-fxg/files/apps/gui/host6/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-fxg/files/apps/gui/host6/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-fxg/files/apps/ssh/web.json b/topologies/training-fxg/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-fxg/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-fxg/files/apps/syslog/172.18.0.1/.bkp b/topologies/training-fxg/files/apps/syslog/172.18.0.1/.bkp
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-fxg/files/apps/syslog/192.168.0.24/.bkp b/topologies/training-fxg/files/apps/syslog/192.168.0.24/.bkp
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-fxg/files/apps/tacacs/config b/topologies/training-fxg/files/apps/tacacs/config
deleted file mode 100644
index c756c03e8..000000000
--- a/topologies/training-fxg/files/apps/tacacs/config
+++ /dev/null
@@ -1,20 +0,0 @@
- key = "COOKBOOK"
-
-# user: fedexuser login password: fedexuser
-
- user = fedexuser {
- login = clear fedexuser
- service = shell {
- set priv-lvl = 15
- cmd = show {
- deny running-config
- permit .*
- }
- }
- }
-
-# user: fedex login password: arista
- user = fedex {
- default service = permit
- login = clear arista
- }
\ No newline at end of file
diff --git a/topologies/training-fxg/files/apps/tacacs/tac.log b/topologies/training-fxg/files/apps/tacacs/tac.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-fxg/files/apps/uilanding/modules.yaml b/topologies/training-fxg/files/apps/uilanding/modules.yaml
deleted file mode 100644
index 9738c6e9d..000000000
--- a/topologies/training-fxg/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Access-1:
- coords: "201,555,390,658"
- ip: "192.168.0.23"
- Access-2:
- coords: "428,558,600,648"
- ip: "192.168.0.24"
- Core-1:
- coords: "200,413,381,505"
- ip: "192.168.0.21"
- Core-2:
- coords: "421,415,612,505"
- ip: "192.168.0.22"
- Router-1:
- coords: "214,258,393,363"
- ip: "192.168.0.12"
- Router-2:
- coords: "432,264,608,366"
- ip: "192.168.0.13"
- Wan-1:
- coords: "312,158,484,251"
- ip: "192.168.0.11"
- servers:
- Server-1:
- coords: "339,38,469,127"
- ip: "192.168.0.41"
- port : 6001
- Server-11:
- coords: "214,683,364,766"
- ip: "192.168.0.42"
- port : 6002
- Server-12:
- coords: "445,678,578,772"
- ip: "192.168.0.43"
- port : 6003
diff --git a/topologies/training-fxg/files/apps/webui/.vncpass_clear b/topologies/training-fxg/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-fxg/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-fxg/files/cvp/cvp_info.yaml b/topologies/training-fxg/files/cvp/cvp_info.yaml
deleted file mode 100644
index c4556ac60..000000000
--- a/topologies/training-fxg/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- - Wan-1
- - Router-1
- - Router-2
- - Core-1
- - Core-2
- - Access-1
- - Access-2
- - host-1
- - host-11
- - host-12
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- Wan-1:
- - Wan-1-BASE
- Router-1:
- - Router-1-BASE
- Router-2:
- - Router-2-BASE
- Core-1:
- - Core-1-BASE
- Core-2:
- - Core-2-BASE
- Access-1:
- - Access-1-BASE
- Access-2:
- - Access-2-BASE
- host-1:
- - host-1-BASE
- host-11:
- - host-11-BASE
- host-12:
- - host-12-BASE
\ No newline at end of file
diff --git a/topologies/training-fxg/files/hosts b/topologies/training-fxg/files/hosts
deleted file mode 100644
index b01ba8483..000000000
--- a/topologies/training-fxg/files/hosts
+++ /dev/null
@@ -1,24 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.101 host5
-192.168.0.102 host6
-192.168.0.103 host7
-192.168.0.104 host8
-192.168.0.5 cvp
diff --git a/topologies/training-fxg/files/menus/default.yaml b/topologies/training-fxg/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-fxg/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-fxg/files/menus/training-l3.yaml b/topologies/training-fxg/files/menus/training-l3.yaml
deleted file mode 100644
index 0ec5f26cc..000000000
--- a/topologies/training-fxg/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
----
- lab_list:
- reset:
- description: "Reset All Devices to Base Lab (reset)"
- labconfiglets:
- reset:
- Wan-1:
- - "Wan-1-BASE"
- Router-1:
- - "Router-1-BASE"
- Router-2:
- - "Router-2-BASE"
- Core-1:
- - "Core-1-BASE"
- Core-2:
- - "Core-2-BASE"
- Access-1:
- - "Access-1-BASE"
- Access-2:
- - "Access-2-BASE"
- host-1:
- - "host-1-BASE"
- host-11:
- - "host-11-BASE"
- host-12:
- - "host-12-BASE"
\ No newline at end of file
diff --git a/topologies/training-fxg/files/scripts/Authenticate-CVP b/topologies/training-fxg/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-fxg/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-fxg/files/scripts/Authenticate-CVP2 b/topologies/training-fxg/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-fxg/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-fxg/files/scripts/Authenticate-CVP3 b/topologies/training-fxg/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-fxg/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-fxg/files/scripts/Configlet1 b/topologies/training-fxg/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-fxg/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-fxg/files/scripts/ConfigletChange b/topologies/training-fxg/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-fxg/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-fxg/files/scripts/ConfigletDetail b/topologies/training-fxg/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-fxg/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-fxg/files/scripts/ConfigletHistory b/topologies/training-fxg/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-fxg/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-fxg/files/scripts/TaskBase b/topologies/training-fxg/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-fxg/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-fxg/files/scripts/TaskCVP1 b/topologies/training-fxg/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-fxg/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-fxg/files/scripts/TaskExecute b/topologies/training-fxg/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-fxg/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-fxg/files/scripts/TaskLog b/topologies/training-fxg/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-fxg/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-fxg/files/scripts/TaskLog1 b/topologies/training-fxg/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-fxg/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-fxg/files/scripts/TaskLogView b/topologies/training-fxg/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-fxg/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-fxg/files/scripts/TaskNote b/topologies/training-fxg/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-fxg/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-fxg/labguides/.gitignore b/topologies/training-fxg/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-fxg/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-fxg/labguides/Makefile b/topologies/training-fxg/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-fxg/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-fxg/labguides/readme.md b/topologies/training-fxg/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-fxg/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-fxg/labguides/source/_static/arista_logo.png b/topologies/training-fxg/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-fxg/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-fxg/labguides/source/_static/arista_logo_160by26.png b/topologies/training-fxg/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-fxg/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-fxg/labguides/source/_static/arista_logo_320by52.png b/topologies/training-fxg/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-fxg/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-fxg/labguides/source/_static/cloudvision-icon.png b/topologies/training-fxg/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-fxg/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-fxg/labguides/source/_static/logo.jpg b/topologies/training-fxg/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-fxg/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-fxg/labguides/source/_static/my-styles.css b/topologies/training-fxg/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-fxg/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-fxg/labguides/source/conf.py b/topologies/training-fxg/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-fxg/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-fxg/labguides/source/connecting.rst b/topologies/training-fxg/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-fxg/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-fxg/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-fxg/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-fxg/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-fxg/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-fxg/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-fxg/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-fxg/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-fxg/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-fxg/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-fxg/labguides/source/images/logo.jpg b/topologies/training-fxg/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-fxg/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-fxg/labguides/source/index.rst b/topologies/training-fxg/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-fxg/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-fxg/topo_build.yml b/topologies/training-fxg/topo_build.yml
deleted file mode 100644
index bd9b78a0f..000000000
--- a/topologies/training-fxg/topo_build.yml
+++ /dev/null
@@ -1,154 +0,0 @@
-host_cpu: 4
-cvp_cpu: 32
-cvp_ram: 42
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - Wan-1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: Router-1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Router-2
- neighborPort: Ethernet1
- port: Ethernet2
- - neighborDevice: host-1
- neighborPort: Ethernet1
- port: Ethernet3
- - Router-1:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: Wan-1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Core-1
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: Router-2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: Router-2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: Core-2
- neighborPort: Ethernet6
- port: Ethernet5
- - Router-2:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: Wan-1
- neighborPort: Ethernet2
- port: Ethernet1
- - neighborDevice: Core-2
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: Router-1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: Router-1
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: Core-1
- neighborPort: Ethernet6
- port: Ethernet5
- - Core-1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: Access-1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Access-2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: Core-2
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: Core-2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: Router-1
- neighborPort: Ethernet2
- port: Ethernet5
- - neighborDevice: Router-2
- neighborPort: Ethernet5
- port: Ethernet6
- - Core-2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: Access-2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Access-1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: Core-1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: Core-1
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: Router-2
- neighborPort: Ethernet2
- port: Ethernet5
- - neighborDevice: Router-1
- neighborPort: Ethernet5
- port: Ethernet6
- - Access-1:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: Core-1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Core-2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: host-11
- neighborPort: Ethernet1
- port: Ethernet3
- - Access-2:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: Core-2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: Core-1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: host-12
- neighborPort: Ethernet1
- port: Ethernet3
-servers:
- - host-1:
- ip_addr: 192.168.0.41
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- port : 6001
- neighbors:
- - neighborDevice: Wan-1
- neighborPort: Ethernet3
- port: Ethernet1
- - host-11:
- ip_addr: 192.168.0.42
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- port : 6002
- neighbors:
- - neighborDevice: Access-1
- neighborPort: Ethernet3
- port: Ethernet1
- - host-12:
- ip_addr: 192.168.0.43
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- port : 6003
- neighbors:
- - neighborDevice: Access-2
- neighborPort: Ethernet3
- port: Ethernet1
-additional_ssh_nodes:
-additional_clab_nodes:
diff --git a/topologies/training-level-1-3-cisco-labs/atd-topo-del.png b/topologies/training-level-1-3-cisco-labs/atd-topo-del.png
deleted file mode 100644
index 4cc023b85..000000000
Binary files a/topologies/training-level-1-3-cisco-labs/atd-topo-del.png and /dev/null differ
diff --git a/topologies/training-level-1-3-cisco-labs/atd-topo.png b/topologies/training-level-1-3-cisco-labs/atd-topo.png
deleted file mode 100644
index ff5e3171a..000000000
Binary files a/topologies/training-level-1-3-cisco-labs/atd-topo.png and /dev/null differ
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/ATD-INFRA b/topologies/training-level-1-3-cisco-labs/configlets/ATD-INFRA
deleted file mode 100644
index de87bc743..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/Base-Builder.py b/topologies/training-level-1-3-cisco-labs/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/borderleaf1-base b/topologies/training-level-1-3-cisco-labs/configlets/borderleaf1-base
deleted file mode 100644
index c5bdbece2..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/borderleaf1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.25/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/borderleaf2-base b/topologies/training-level-1-3-cisco-labs/configlets/borderleaf2-base
deleted file mode 100644
index 3168fb4b4..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/borderleaf2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname borderleaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.26/24
-
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/host1-base b/topologies/training-level-1-3-cisco-labs/configlets/host1-base
deleted file mode 100644
index 915d58edb..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/host1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host1
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.51/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/host10-base b/topologies/training-level-1-3-cisco-labs/configlets/host10-base
deleted file mode 100644
index e0a571f30..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/host10-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host10
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.56/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/host2-base b/topologies/training-level-1-3-cisco-labs/configlets/host2-base
deleted file mode 100644
index 63f0c9c38..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/host2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host2
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.52/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/host3-base b/topologies/training-level-1-3-cisco-labs/configlets/host3-base
deleted file mode 100644
index 7d5e4c331..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/host3-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname host3
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.53/24
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/host4-base b/topologies/training-level-1-3-cisco-labs/configlets/host4-base
deleted file mode 100644
index aec58fa5d..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/host4-base
+++ /dev/null
@@ -1,16 +0,0 @@
-hostname host4
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.54/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/host9-base b/topologies/training-level-1-3-cisco-labs/configlets/host9-base
deleted file mode 100644
index d7e5cf794..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/host9-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname host9
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.55/24
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/leaf1-base b/topologies/training-level-1-3-cisco-labs/configlets/leaf1-base
deleted file mode 100644
index 34fa715b4..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/leaf1-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.21/24
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/leaf2-base b/topologies/training-level-1-3-cisco-labs/configlets/leaf2-base
deleted file mode 100644
index a44ce66ac..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/leaf2-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname leaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.22/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/leaf3-base b/topologies/training-level-1-3-cisco-labs/configlets/leaf3-base
deleted file mode 100644
index 685c070f1..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/leaf3-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname leaf3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.23/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/leaf4-base b/topologies/training-level-1-3-cisco-labs/configlets/leaf4-base
deleted file mode 100644
index 0c2d76c51..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/leaf4-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname leaf4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.24/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/spine1-base b/topologies/training-level-1-3-cisco-labs/configlets/spine1-base
deleted file mode 100644
index 5e9d072b1..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/spine1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.11/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/spine2-base b/topologies/training-level-1-3-cisco-labs/configlets/spine2-base
deleted file mode 100644
index ec2af056f..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/spine2-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.12/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/spine3-base b/topologies/training-level-1-3-cisco-labs/configlets/spine3-base
deleted file mode 100644
index 853f6564a..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/spine3-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.13/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-cisco-labs/configlets/spine4-base b/topologies/training-level-1-3-cisco-labs/configlets/spine4-base
deleted file mode 100644
index 7e54878ba..000000000
--- a/topologies/training-level-1-3-cisco-labs/configlets/spine4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname spine4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.14/24
-
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-cisco-labs/files/.ansible.cfg b/topologies/training-level-1-3-cisco-labs/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-level-1-3-cisco-labs/files/.screenrc b/topologies/training-level-1-3-cisco-labs/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-level-1-3-cisco-labs/files/MenuOptions.yaml b/topologies/training-level-1-3-cisco-labs/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/files/apps/coder/coder.yaml b/topologies/training-level-1-3-cisco-labs/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/files/apps/coder/labfiles/.placeholder b/topologies/training-level-1-3-cisco-labs/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-level-1-3-cisco-labs/files/apps/gui/host1/arista/host-startup.sh b/topologies/training-level-1-3-cisco-labs/files/apps/gui/host1/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/apps/gui/host1/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/files/apps/gui/host2/arista/host-startup.sh b/topologies/training-level-1-3-cisco-labs/files/apps/gui/host2/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/apps/gui/host2/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/files/apps/gui/host5/arista/host-startup.sh b/topologies/training-level-1-3-cisco-labs/files/apps/gui/host5/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/apps/gui/host5/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/files/apps/gui/host6/arista/host-startup.sh b/topologies/training-level-1-3-cisco-labs/files/apps/gui/host6/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/apps/gui/host6/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/files/apps/gui/host7/arista/host-startup.sh b/topologies/training-level-1-3-cisco-labs/files/apps/gui/host7/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/apps/gui/host7/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/files/apps/gui/host8/arista/host-startup.sh b/topologies/training-level-1-3-cisco-labs/files/apps/gui/host8/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/apps/gui/host8/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/files/apps/ssh/web.json b/topologies/training-level-1-3-cisco-labs/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/files/apps/uilanding/modules.yaml b/topologies/training-level-1-3-cisco-labs/files/apps/uilanding/modules.yaml
deleted file mode 100644
index 21d2faaf3..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,77 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "17,545,148,623"
- ip: "192.168.0.11"
- Spine2:
- coords: "368,548,507,622"
- ip: "192.168.0.12"
- Spine3:
- coords: "560,548,706,619"
- ip: "192.168.0.13"
- Spine4:
- coords: "937,553,1079,627"
- ip: "192.168.0.14"
- Leaf1:
- coords: "15,754,150,832"
- ip: "192.168.0.21"
- Leaf2:
- coords: "361,754,506,825"
- ip: "192.168.0.22"
- Leaf3:
- coords: "559,760,705,835"
- ip: "192.168.0.23"
- Leaf4:
- coords: "927,761,1074,833"
- ip: "192.168.0.24"
- BorderLeaf1:
- coords: "368,402,502,470"
- ip: "192.168.0.25"
- BorderLeaf2:
- coords: "566,401,712,467,990,417"
- ip: "192.168.0.26"
- host1:
- coords: "563,871,704,939"
- ip: "192.168.0.51"
- host2:
- coords: "930,873,1075,943"
- ip: "192.168.0.52"
- host3:
- coords: "563,871,704,939"
- ip: "192.168.0.52"
- host4:
- coords: "930,873,1075,943"
- ip: "192.168.0.54"
- host9:
- coords: "368,6,517,85"
- ip: "192.168.0.55"
- host10:
- coords: "560,9,722,86"
- ip: "192.168.0.56"
- ciscoL1:
- coords: "370,120,513,197"
- ip: "192.168.0.121"
- ciscoL2:
- coords: "575,121,719,196"
- ip: "192.168.0.122"
- ciscoS1:
- coords: "475,292,608,365"
- ip: "192.168.0.111"
- servers:
- host5:
- coords: "178,869,302,962"
- ip: "192.168.0.101"
- port : 6001
- host6:
- coords: "180,975,311,1061"
- ip: "192.168.0.102"
- port : 6002
- host7:
- coords: "750,877,876,957"
- ip: "192.168.0.103"
- port : 6003
- host8:
- coords: "738,975,872,1065,697,1066"
- ip: "192.168.0.104"
- port : 6004
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/files/apps/webui/.vncpass_clear b/topologies/training-level-1-3-cisco-labs/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/files/cvp/cvp_info.yaml b/topologies/training-level-1-3-cisco-labs/files/cvp/cvp_info.yaml
deleted file mode 100644
index f3a9090ea..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,71 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf:
- parent: Tenant
- nodes:
- - leaf1
- - leaf2
- - leaf3
- - leaf4
- Borderleaf:
- parent: Tenant
- nodes:
- - borderleaf1
- - borderleaf2
- Spine:
- parent: Tenant
- nodes:
- - spine1
- - spine2
- - spine3
- - spine4
- Hosts:
- parent: Tenant
- nodes:
- - host1
- - host2
- - host3
- - host4
- - host9
- - host10
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- spine1:
- - spine1-base
- spine2:
- - spine2-base
- spine3:
- - spine3-base
- spine4:
- - spine4-base
- leaf1:
- - leaf1-base
- leaf2:
- - leaf2-base
- borderleaf1:
- - borderleaf1-base
- borderleaf2:
- - borderleaf2-base
- leaf3:
- - leaf3-base
- leaf4:
- - leaf4-base
- host3:
- - host3-base
- host4:
- - host4-base
- host1:
- - host1-base
- host2:
- - host2-base
- host9:
- - host9-base
- host10:
- - host10-base
-
diff --git a/topologies/training-level-1-3-cisco-labs/files/hosts b/topologies/training-level-1-3-cisco-labs/files/hosts
deleted file mode 100644
index 961a8678f..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/hosts
+++ /dev/null
@@ -1,26 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.5 cvp
-192.168.0.55 host9
-192.168.0.56 host10
-192.168.0.101 host5
-192.168.0.102 host6
-192.168.0.103 host7
-192.168.0.104 host8
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/files/menus/default.yaml b/topologies/training-level-1-3-cisco-labs/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/files/menus/training-l3.yaml b/topologies/training-level-1-3-cisco-labs/files/menus/training-l3.yaml
deleted file mode 100644
index 41133498a..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
- lab_list:
- reset:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base Lab (reset)"
- labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
diff --git a/topologies/training-level-1-3-cisco-labs/files/scripts/Authenticate-CVP b/topologies/training-level-1-3-cisco-labs/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-level-1-3-cisco-labs/files/scripts/Authenticate-CVP2 b/topologies/training-level-1-3-cisco-labs/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-1-3-cisco-labs/files/scripts/Authenticate-CVP3 b/topologies/training-level-1-3-cisco-labs/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-cisco-labs/files/scripts/Configlet1 b/topologies/training-level-1-3-cisco-labs/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-1-3-cisco-labs/files/scripts/ConfigletChange b/topologies/training-level-1-3-cisco-labs/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-cisco-labs/files/scripts/ConfigletDetail b/topologies/training-level-1-3-cisco-labs/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-level-1-3-cisco-labs/files/scripts/ConfigletHistory b/topologies/training-level-1-3-cisco-labs/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-level-1-3-cisco-labs/files/scripts/TaskBase b/topologies/training-level-1-3-cisco-labs/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-cisco-labs/files/scripts/TaskCVP1 b/topologies/training-level-1-3-cisco-labs/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-level-1-3-cisco-labs/files/scripts/TaskExecute b/topologies/training-level-1-3-cisco-labs/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-level-1-3-cisco-labs/files/scripts/TaskLog b/topologies/training-level-1-3-cisco-labs/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-cisco-labs/files/scripts/TaskLog1 b/topologies/training-level-1-3-cisco-labs/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-cisco-labs/files/scripts/TaskLogView b/topologies/training-level-1-3-cisco-labs/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-cisco-labs/files/scripts/TaskNote b/topologies/training-level-1-3-cisco-labs/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-level-1-3-cisco-labs/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/.gitignore b/topologies/training-level-1-3-cisco-labs/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-level-1-3-cisco-labs/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/Makefile b/topologies/training-level-1-3-cisco-labs/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-level-1-3-cisco-labs/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/readme.md b/topologies/training-level-1-3-cisco-labs/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-level-1-3-cisco-labs/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/source/_static/arista_logo.png b/topologies/training-level-1-3-cisco-labs/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-level-1-3-cisco-labs/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/source/_static/arista_logo_160by26.png b/topologies/training-level-1-3-cisco-labs/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-level-1-3-cisco-labs/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/source/_static/arista_logo_320by52.png b/topologies/training-level-1-3-cisco-labs/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-level-1-3-cisco-labs/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/source/_static/cloudvision-icon.png b/topologies/training-level-1-3-cisco-labs/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-level-1-3-cisco-labs/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/source/_static/logo.jpg b/topologies/training-level-1-3-cisco-labs/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-1-3-cisco-labs/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/source/_static/my-styles.css b/topologies/training-level-1-3-cisco-labs/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-level-1-3-cisco-labs/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/source/conf.py b/topologies/training-level-1-3-cisco-labs/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-level-1-3-cisco-labs/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/source/connecting.rst b/topologies/training-level-1-3-cisco-labs/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-level-1-3-cisco-labs/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-level-1-3-cisco-labs/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-level-1-3-cisco-labs/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-level-1-3-cisco-labs/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-level-1-3-cisco-labs/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-level-1-3-cisco-labs/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-level-1-3-cisco-labs/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/source/images/logo.jpg b/topologies/training-level-1-3-cisco-labs/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-1-3-cisco-labs/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-1-3-cisco-labs/labguides/source/index.rst b/topologies/training-level-1-3-cisco-labs/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-level-1-3-cisco-labs/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-level-1-3-cisco-labs/topo_build.yml b/topologies/training-level-1-3-cisco-labs/topo_build.yml
deleted file mode 100644
index 632e0ea33..000000000
--- a/topologies/training-level-1-3-cisco-labs/topo_build.yml
+++ /dev/null
@@ -1,514 +0,0 @@
-host_cpu: 4
-cvp_cpu: 24
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - spine1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet3
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet3
- port: Ethernet8
- - spine2:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet4
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet4
- port: Ethernet8
- - spine3:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: spine4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet5
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet5
- port: Ethernet8
- - spine4:
- ip_addr: 192.168.0.14
- sys_mac: 00:1c:73:b4:c6:01
- neighbors:
- - neighborDevice: spine3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet6
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet6
- port: Ethernet8
- - leaf1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet2
- port: Ethernet10
- - leaf3:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf4:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet2
- port: Ethernet10
- - borderleaf1:
- ip_addr: 192.168.0.25
- sys_mac: 00:1c:73:c5:c6:01
- neighbors:
- - neighborDevice: borderleaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet7
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet7
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet7
- port: Ethernet6
- - neighborDevice: CiscoL1
- neighborPort: Ethernet4
- port: Ethernet8
- - neighborDevice: CiscoS1
- neighborPort: Ethernet3
- port: Ethernet7
-
-
- - borderleaf2:
- ip_addr: 192.168.0.26
- sys_mac: 00:1c:73:c6:c6:01
- neighbors:
- - neighborDevice: borderleaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet8
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet8
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet8
- port: Ethernet6
- - neighborDevice: CiscoL2
- neighborPort: Ethernet4
- port: Ethernet8
- - neighborDevice: CiscoS1
- neighborPort: Ethernet4
- port: Ethernet7
- - host1:
- ip_addr: 192.168.0.51
- sys_mac: 00:1c:73:f1:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet7
- port: Ethernet2
- - host2:
- ip_addr: 192.168.0.52
- sys_mac: 00:1c:73:f2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet9
- port: Ethernet2
- - host3:
- ip_addr: 192.168.0.53
- sys_mac: 00:1c:73:f3:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet7
- port: Ethernet2
- - host4:
- ip_addr: 192.168.0.54
- sys_mac: 00:1c:73:f4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet9
- port: Ethernet2
- - host9:
- ip_addr: 192.168.0.55
- sys_mac: 00:1c:73:f5:c6:01
- neighbors:
- - neighborDevice: CiscoL1
- neighborPort: Ethernet5
- port: Ethernet1
- - neighborDevice: CiscoL2
- neighborPort: Ethernet5
- port: Ethernet2
- - neighborDevice: CiscoL1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: CiscoL2
- neighborPort: Ethernet6
- port: Ethernet4
- - host10:
- ip_addr: 192.168.0.56
- sys_mac: 00:1c:73:f6:c6:01
- neighbors:
- - neighborDevice: CiscoL1
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: CiscoL2
- neighborPort: Ethernet7
- port: Ethernet2
- - neighborDevice: CiscoL1
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: CiscoL2
- neighborPort: Ethernet8
- port: Ethernet4
-
-servers:
- - host5:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.101
- port : 6001
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet8
- port: Ethernet2
- - host6:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.102
- port : 6002
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet10
- port: Ethernet2
- - host7:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.103
- port : 6003
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet8
- port: Ethernet2
- - host8:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.104
- port : 6004
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet10
- port: Ethernet2
-additional_ssh_nodes:
-additional_clab_nodes:
- - CiscoS1:
- kind : vr-n9kv
- image_name: "gcr.io/atd-testdrivetraining-dev/vr-n9kv:9.3.3"
- port : 22
- ip_addr: 192.168.0.111
- sys_mac: 00:1c:73:d3:c6:01
- neighbors:
- - neighborDevice: CiscoL1
- neighborPort: Ethernet3
- port: Ethernet1
- - neighborDevice: CiscoL2
- neighborPort: Ethernet3
- port: Ethernet2
- - neighborDevice: borderleaf1
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: borderleaf2
- neighborPort: Ethernet7
- port: Ethernet4
- - CiscoL1:
- kind : vr-n9kv
- image_name: "gcr.io/atd-testdrivetraining-dev/vr-n9kv:9.3.3"
- ip_addr: 192.168.0.121
- port : 22
- sys_mac: 00:1c:73:a1:c6:01
- neighbors:
- - neighborDevice: CiscoL2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: CiscoL2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: CiscoS1
- neighborPort: Ethernet1
- port: Ethernet3
- - neighborDevice: borderleaf1
- neighborPort: Ethernet8
- port: Ethernet4
- - neighborDevice: host9
- neighborPort: Ethernet1
- port: Ethernet5
- - neighborDevice: host9
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: host10
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host10
- neighborPort: Ethernet3
- port: Ethernet8
- - CiscoL2:
- kind : vr-n9kv
- image_name: "gcr.io/atd-testdrivetraining-dev/vr-n9kv:9.3.3"
- ip_addr: 192.168.0.122
- port : 22
- sys_mac: 00:1c:73:a2:c6:01
- neighbors:
- - neighborDevice: CiscoL1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: CiscoL1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: CiscoS1
- neighborPort: Ethernet2
- port: Ethernet3
- - neighborDevice: borderleaf2
- neighborPort: Ethernet8
- port: Ethernet4
- - neighborDevice: host9
- neighborPort: Ethernet2
- port: Ethernet5
- - neighborDevice: host9
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: host10
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host10
- neighborPort: Ethernet4
- port: Ethernet8
-
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/atd-topo-bkp-2.png b/topologies/training-level-1-3-container-labs-dual-topo/atd-topo-bkp-2.png
deleted file mode 100644
index ce621aec8..000000000
Binary files a/topologies/training-level-1-3-container-labs-dual-topo/atd-topo-bkp-2.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/atd-topo-bkp.png b/topologies/training-level-1-3-container-labs-dual-topo/atd-topo-bkp.png
deleted file mode 100644
index 4cc023b85..000000000
Binary files a/topologies/training-level-1-3-container-labs-dual-topo/atd-topo-bkp.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/atd-topo.png b/topologies/training-level-1-3-container-labs-dual-topo/atd-topo.png
deleted file mode 100644
index 53ba5d7d9..000000000
Binary files a/topologies/training-level-1-3-container-labs-dual-topo/atd-topo.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/ATD-INFRA b/topologies/training-level-1-3-container-labs-dual-topo/configlets/ATD-INFRA
deleted file mode 100644
index de87bc743..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/Base-Builder.py b/topologies/training-level-1-3-container-labs-dual-topo/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/borderleaf1-base b/topologies/training-level-1-3-container-labs-dual-topo/configlets/borderleaf1-base
deleted file mode 100644
index e274c6eb4..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/borderleaf1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.25/24
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/borderleaf2-base b/topologies/training-level-1-3-container-labs-dual-topo/configlets/borderleaf2-base
deleted file mode 100644
index a7778e0b4..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/borderleaf2-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.26/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/host1-base b/topologies/training-level-1-3-container-labs-dual-topo/configlets/host1-base
deleted file mode 100644
index 915d58edb..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/host1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host1
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.51/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/host2-base b/topologies/training-level-1-3-container-labs-dual-topo/configlets/host2-base
deleted file mode 100644
index 63f0c9c38..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/host2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host2
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.52/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/host3-base b/topologies/training-level-1-3-container-labs-dual-topo/configlets/host3-base
deleted file mode 100644
index 979a49b28..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/host3-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host3
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.53/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/host4-base b/topologies/training-level-1-3-container-labs-dual-topo/configlets/host4-base
deleted file mode 100644
index f85e77a77..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/host4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host4
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.54/24
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/leaf1-base b/topologies/training-level-1-3-container-labs-dual-topo/configlets/leaf1-base
deleted file mode 100644
index 7b316b33b..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/leaf1-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.21/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/leaf2-base b/topologies/training-level-1-3-container-labs-dual-topo/configlets/leaf2-base
deleted file mode 100644
index 22fffb444..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/leaf2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.22/24
-
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/leaf3-base b/topologies/training-level-1-3-container-labs-dual-topo/configlets/leaf3-base
deleted file mode 100644
index 37e7bc8d3..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/leaf3-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.23/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/leaf4-base b/topologies/training-level-1-3-container-labs-dual-topo/configlets/leaf4-base
deleted file mode 100644
index f0cff7b25..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/leaf4-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.24/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/spine1-base b/topologies/training-level-1-3-container-labs-dual-topo/configlets/spine1-base
deleted file mode 100644
index 5e9d072b1..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/spine1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.11/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/spine2-base b/topologies/training-level-1-3-container-labs-dual-topo/configlets/spine2-base
deleted file mode 100644
index cc9d0bef1..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/spine2-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname spine2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.12/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/spine3-base b/topologies/training-level-1-3-container-labs-dual-topo/configlets/spine3-base
deleted file mode 100644
index 853f6564a..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/spine3-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.13/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/configlets/spine4-base b/topologies/training-level-1-3-container-labs-dual-topo/configlets/spine4-base
deleted file mode 100644
index 240453581..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/configlets/spine4-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.14/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/.ansible.cfg b/topologies/training-level-1-3-container-labs-dual-topo/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/.screenrc b/topologies/training-level-1-3-container-labs-dual-topo/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/MenuOptions.yaml b/topologies/training-level-1-3-container-labs-dual-topo/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/coder/coder.yaml b/topologies/training-level-1-3-container-labs-dual-topo/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/coder/labfiles/.placeholder b/topologies/training-level-1-3-container-labs-dual-topo/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/gui/host5/arista/host-startup.sh b/topologies/training-level-1-3-container-labs-dual-topo/files/apps/gui/host5/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/gui/host5/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/gui/host6/arista/host-startup.sh b/topologies/training-level-1-3-container-labs-dual-topo/files/apps/gui/host6/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/gui/host6/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/gui/host7/arista/host-startup.sh b/topologies/training-level-1-3-container-labs-dual-topo/files/apps/gui/host7/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/gui/host7/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/gui/host8/arista/host-startup.sh b/topologies/training-level-1-3-container-labs-dual-topo/files/apps/gui/host8/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/gui/host8/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/ssh/web.json b/topologies/training-level-1-3-container-labs-dual-topo/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/uilanding/modules.yaml b/topologies/training-level-1-3-container-labs-dual-topo/files/apps/uilanding/modules.yaml
deleted file mode 100644
index c983faac0..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "22,218,167,296"
- ip: "192.168.0.11"
- Spine2:
- coords: "356,215,517,300"
- ip: "192.168.0.12"
- Spine3:
- coords: "555,214,724,294"
- ip: "192.168.0.13"
- Spine4:
- coords: "925,218,1077,293"
- ip: "192.168.0.14"
- Leaf1:
- coords: "16,424,165,501"
- ip: "192.168.0.21"
- Leaf2:
- coords: "353,425,520,493"
- ip: "192.168.0.22"
- Leaf3:
- coords: "569,430,714,499"
- ip: "192.168.0.23"
- Leaf4:
- coords: "921,423,1074,502"
- ip: "192.168.0.24"
- BorderLeaf1:
- coords: "370,57,511,138"
- ip: "192.168.0.25"
- BorderLeaf2:
- coords: "561,65,726,145"
- ip: "192.168.0.26"
- Host1:
- coords: "15,534,149,611"
- ip: "192.168.0.51"
- Host2:
- coords: "365,539,504,619"
- ip: "192.168.0.52"
- Host3:
- coords: "566,542,711,620"
- ip: "192.168.0.53"
- Host4:
- coords: "929,542,1075,615"
- ip: "192.168.0.54"
- servers:
- Host5:
- coords: "182,545,307,636"
- ip: "192.168.0.101"
- port : 6001
- Host6:
- coords: "183,650,312,744"
- ip: "192.168.0.102"
- port : 6002
- Host7:
- coords: "747,545,875,636"
- ip: "192.168.0.103"
- port : 6003
- Host8:
- coords: "752,645,877,731"
- ip: "192.168.0.104"
- port : 6004
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/webui/.vncpass_clear b/topologies/training-level-1-3-container-labs-dual-topo/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/cvp/cvp_info.yaml b/topologies/training-level-1-3-container-labs-dual-topo/files/cvp/cvp_info.yaml
deleted file mode 100644
index 7e796e77f..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf:
- parent: Tenant
- nodes:
- - leaf1
- - leaf2
- - leaf3
- - leaf4
- Borderleaf:
- parent: Tenant
- nodes:
- - borderleaf1
- - borderleaf2
- Spine:
- parent: Tenant
- nodes:
- - spine1
- - spine2
- - spine3
- - spine4
- Hosts:
- parent: Tenant
- nodes:
- - host1
- - host2
- - host3
- - host4
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- spine1:
- - spine1-base
- spine2:
- - spine2-base
- spine3:
- - spine3-base
- spine4:
- - spine4-base
- leaf1:
- - leaf1-base
- leaf2:
- - leaf2-base
- borderleaf1:
- - borderleaf1-base
- borderleaf2:
- - borderleaf2-base
- leaf3:
- - leaf3-base
- leaf4:
- - leaf4-base
- host3:
- - host3-base
- host4:
- - host4-base
- host1:
- - host1-base
- host2:
- - host2-base
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/hosts b/topologies/training-level-1-3-container-labs-dual-topo/files/hosts
deleted file mode 100644
index b01ba8483..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/hosts
+++ /dev/null
@@ -1,24 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.101 host5
-192.168.0.102 host6
-192.168.0.103 host7
-192.168.0.104 host8
-192.168.0.5 cvp
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/menus/default.yaml b/topologies/training-level-1-3-container-labs-dual-topo/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/menus/training-l3.yaml b/topologies/training-level-1-3-container-labs-dual-topo/files/menus/training-l3.yaml
deleted file mode 100644
index 41133498a..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
- lab_list:
- reset:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base Lab (reset)"
- labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/Authenticate-CVP b/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/Authenticate-CVP2 b/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/Authenticate-CVP3 b/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/Configlet1 b/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/ConfigletChange b/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/ConfigletDetail b/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/ConfigletHistory b/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskBase b/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskCVP1 b/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskExecute b/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskLog b/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskLog1 b/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskLogView b/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskNote b/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/.gitignore b/topologies/training-level-1-3-container-labs-dual-topo/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/Makefile b/topologies/training-level-1-3-container-labs-dual-topo/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/readme.md b/topologies/training-level-1-3-container-labs-dual-topo/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/arista_logo.png b/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/arista_logo_160by26.png b/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/arista_logo_320by52.png b/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/cloudvision-icon.png b/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/logo.jpg b/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/my-styles.css b/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/conf.py b/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/connecting.rst b/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/images/logo.jpg b/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/index.rst b/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-level-1-3-container-labs-dual-topo/topo_build.yml b/topologies/training-level-1-3-container-labs-dual-topo/topo_build.yml
deleted file mode 100644
index d428dd147..000000000
--- a/topologies/training-level-1-3-container-labs-dual-topo/topo_build.yml
+++ /dev/null
@@ -1,385 +0,0 @@
-host_cpu: 8
-cvp_cpu: 24
-cvp_ram: 32
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - spine1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet3
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet3
- port: Ethernet8
- - spine2:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet4
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet4
- port: Ethernet8
- - spine3:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: spine4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet5
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet5
- port: Ethernet8
- - spine4:
- ip_addr: 192.168.0.14
- sys_mac: 00:1c:73:b4:c6:01
- neighbors:
- - neighborDevice: spine3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet6
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet6
- port: Ethernet8
- - leaf1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet2
- port: Ethernet10
- - leaf3:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf4:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet2
- port: Ethernet10
- - borderleaf1:
- ip_addr: 192.168.0.25
- sys_mac: 00:1c:73:c5:c6:01
- neighbors:
- - neighborDevice: borderleaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet7
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet7
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet7
- port: Ethernet6
- - borderleaf2:
- ip_addr: 192.168.0.26
- sys_mac: 00:1c:73:c6:c6:01
- neighbors:
- - neighborDevice: borderleaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet8
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet8
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet8
- port: Ethernet6
- - host1:
- ip_addr: 192.168.0.51
- sys_mac: 00:1c:73:f1:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet7
- port: Ethernet2
- - host2:
- ip_addr: 192.168.0.52
- sys_mac: 00:1c:73:f2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet9
- port: Ethernet2
- - host3:
- ip_addr: 192.168.0.53
- sys_mac: 00:1c:73:f3:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet7
- port: Ethernet2
- - host4:
- ip_addr: 192.168.0.54
- sys_mac: 00:1c:73:f4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet9
- port: Ethernet2
-servers:
- - host5:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.101
- port : 6001
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet8
- port: Ethernet2
- - host6:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.102
- port : 6002
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet10
- port: Ethernet2
- - host7:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.103
- port : 6003
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet8
- port: Ethernet2
- - host8:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.104
- port : 6004
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet10
- port: Ethernet2
-additional_ssh_nodes:
-additional_clab_nodes:
diff --git a/topologies/training-level-1-3-container-labs/atd-topo-bkp-2.png b/topologies/training-level-1-3-container-labs/atd-topo-bkp-2.png
deleted file mode 100644
index ce621aec8..000000000
Binary files a/topologies/training-level-1-3-container-labs/atd-topo-bkp-2.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs/atd-topo-bkp.png b/topologies/training-level-1-3-container-labs/atd-topo-bkp.png
deleted file mode 100644
index 4cc023b85..000000000
Binary files a/topologies/training-level-1-3-container-labs/atd-topo-bkp.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs/atd-topo.png b/topologies/training-level-1-3-container-labs/atd-topo.png
deleted file mode 100644
index 53ba5d7d9..000000000
Binary files a/topologies/training-level-1-3-container-labs/atd-topo.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs/configlets/ATD-INFRA b/topologies/training-level-1-3-container-labs/configlets/ATD-INFRA
deleted file mode 100644
index de87bc743..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-level-1-3-container-labs/configlets/Base-Builder.py b/topologies/training-level-1-3-container-labs/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs/configlets/borderleaf1-base b/topologies/training-level-1-3-container-labs/configlets/borderleaf1-base
deleted file mode 100644
index e274c6eb4..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/borderleaf1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.25/24
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
diff --git a/topologies/training-level-1-3-container-labs/configlets/borderleaf2-base b/topologies/training-level-1-3-container-labs/configlets/borderleaf2-base
deleted file mode 100644
index a7778e0b4..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/borderleaf2-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.26/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs/configlets/host1-base b/topologies/training-level-1-3-container-labs/configlets/host1-base
deleted file mode 100644
index 915d58edb..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/host1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host1
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.51/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs/configlets/host2-base b/topologies/training-level-1-3-container-labs/configlets/host2-base
deleted file mode 100644
index 63f0c9c38..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/host2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host2
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.52/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs/configlets/host3-base b/topologies/training-level-1-3-container-labs/configlets/host3-base
deleted file mode 100644
index 979a49b28..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/host3-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host3
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.53/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs/configlets/host4-base b/topologies/training-level-1-3-container-labs/configlets/host4-base
deleted file mode 100644
index f85e77a77..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/host4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host4
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.54/24
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-
diff --git a/topologies/training-level-1-3-container-labs/configlets/leaf1-base b/topologies/training-level-1-3-container-labs/configlets/leaf1-base
deleted file mode 100644
index 7b316b33b..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/leaf1-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.21/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs/configlets/leaf2-base b/topologies/training-level-1-3-container-labs/configlets/leaf2-base
deleted file mode 100644
index 22fffb444..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/leaf2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.22/24
-
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs/configlets/leaf3-base b/topologies/training-level-1-3-container-labs/configlets/leaf3-base
deleted file mode 100644
index 37e7bc8d3..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/leaf3-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.23/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs/configlets/leaf4-base b/topologies/training-level-1-3-container-labs/configlets/leaf4-base
deleted file mode 100644
index f0cff7b25..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/leaf4-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.24/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs/configlets/spine1-base b/topologies/training-level-1-3-container-labs/configlets/spine1-base
deleted file mode 100644
index 5e9d072b1..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/spine1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.11/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs/configlets/spine2-base b/topologies/training-level-1-3-container-labs/configlets/spine2-base
deleted file mode 100644
index cc9d0bef1..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/spine2-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname spine2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.12/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs/configlets/spine3-base b/topologies/training-level-1-3-container-labs/configlets/spine3-base
deleted file mode 100644
index 853f6564a..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/spine3-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.13/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs/configlets/spine4-base b/topologies/training-level-1-3-container-labs/configlets/spine4-base
deleted file mode 100644
index 240453581..000000000
--- a/topologies/training-level-1-3-container-labs/configlets/spine4-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.14/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-3-container-labs/files/.ansible.cfg b/topologies/training-level-1-3-container-labs/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-level-1-3-container-labs/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-level-1-3-container-labs/files/.screenrc b/topologies/training-level-1-3-container-labs/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-level-1-3-container-labs/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-level-1-3-container-labs/files/MenuOptions.yaml b/topologies/training-level-1-3-container-labs/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-level-1-3-container-labs/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs/files/apps/coder/coder.yaml b/topologies/training-level-1-3-container-labs/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-level-1-3-container-labs/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs/files/apps/coder/labfiles/.placeholder b/topologies/training-level-1-3-container-labs/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-level-1-3-container-labs/files/apps/gui/host5/arista/host-startup.sh b/topologies/training-level-1-3-container-labs/files/apps/gui/host5/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-3-container-labs/files/apps/gui/host5/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs/files/apps/gui/host6/arista/host-startup.sh b/topologies/training-level-1-3-container-labs/files/apps/gui/host6/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-3-container-labs/files/apps/gui/host6/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs/files/apps/gui/host7/arista/host-startup.sh b/topologies/training-level-1-3-container-labs/files/apps/gui/host7/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-3-container-labs/files/apps/gui/host7/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs/files/apps/gui/host8/arista/host-startup.sh b/topologies/training-level-1-3-container-labs/files/apps/gui/host8/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-3-container-labs/files/apps/gui/host8/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs/files/apps/ssh/web.json b/topologies/training-level-1-3-container-labs/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-level-1-3-container-labs/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs/files/apps/uilanding/modules.yaml b/topologies/training-level-1-3-container-labs/files/apps/uilanding/modules.yaml
deleted file mode 100644
index c983faac0..000000000
--- a/topologies/training-level-1-3-container-labs/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "22,218,167,296"
- ip: "192.168.0.11"
- Spine2:
- coords: "356,215,517,300"
- ip: "192.168.0.12"
- Spine3:
- coords: "555,214,724,294"
- ip: "192.168.0.13"
- Spine4:
- coords: "925,218,1077,293"
- ip: "192.168.0.14"
- Leaf1:
- coords: "16,424,165,501"
- ip: "192.168.0.21"
- Leaf2:
- coords: "353,425,520,493"
- ip: "192.168.0.22"
- Leaf3:
- coords: "569,430,714,499"
- ip: "192.168.0.23"
- Leaf4:
- coords: "921,423,1074,502"
- ip: "192.168.0.24"
- BorderLeaf1:
- coords: "370,57,511,138"
- ip: "192.168.0.25"
- BorderLeaf2:
- coords: "561,65,726,145"
- ip: "192.168.0.26"
- Host1:
- coords: "15,534,149,611"
- ip: "192.168.0.51"
- Host2:
- coords: "365,539,504,619"
- ip: "192.168.0.52"
- Host3:
- coords: "566,542,711,620"
- ip: "192.168.0.53"
- Host4:
- coords: "929,542,1075,615"
- ip: "192.168.0.54"
- servers:
- Host5:
- coords: "182,545,307,636"
- ip: "192.168.0.101"
- port : 6001
- Host6:
- coords: "183,650,312,744"
- ip: "192.168.0.102"
- port : 6002
- Host7:
- coords: "747,545,875,636"
- ip: "192.168.0.103"
- port : 6003
- Host8:
- coords: "752,645,877,731"
- ip: "192.168.0.104"
- port : 6004
diff --git a/topologies/training-level-1-3-container-labs/files/apps/webui/.vncpass_clear b/topologies/training-level-1-3-container-labs/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-level-1-3-container-labs/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs/files/cvp/cvp_info.yaml b/topologies/training-level-1-3-container-labs/files/cvp/cvp_info.yaml
deleted file mode 100644
index 7e796e77f..000000000
--- a/topologies/training-level-1-3-container-labs/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf:
- parent: Tenant
- nodes:
- - leaf1
- - leaf2
- - leaf3
- - leaf4
- Borderleaf:
- parent: Tenant
- nodes:
- - borderleaf1
- - borderleaf2
- Spine:
- parent: Tenant
- nodes:
- - spine1
- - spine2
- - spine3
- - spine4
- Hosts:
- parent: Tenant
- nodes:
- - host1
- - host2
- - host3
- - host4
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- spine1:
- - spine1-base
- spine2:
- - spine2-base
- spine3:
- - spine3-base
- spine4:
- - spine4-base
- leaf1:
- - leaf1-base
- leaf2:
- - leaf2-base
- borderleaf1:
- - borderleaf1-base
- borderleaf2:
- - borderleaf2-base
- leaf3:
- - leaf3-base
- leaf4:
- - leaf4-base
- host3:
- - host3-base
- host4:
- - host4-base
- host1:
- - host1-base
- host2:
- - host2-base
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs/files/hosts b/topologies/training-level-1-3-container-labs/files/hosts
deleted file mode 100644
index b01ba8483..000000000
--- a/topologies/training-level-1-3-container-labs/files/hosts
+++ /dev/null
@@ -1,24 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.101 host5
-192.168.0.102 host6
-192.168.0.103 host7
-192.168.0.104 host8
-192.168.0.5 cvp
diff --git a/topologies/training-level-1-3-container-labs/files/menus/default.yaml b/topologies/training-level-1-3-container-labs/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-level-1-3-container-labs/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs/files/menus/training-l3.yaml b/topologies/training-level-1-3-container-labs/files/menus/training-l3.yaml
deleted file mode 100644
index 41133498a..000000000
--- a/topologies/training-level-1-3-container-labs/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
- lab_list:
- reset:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base Lab (reset)"
- labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
diff --git a/topologies/training-level-1-3-container-labs/files/scripts/Authenticate-CVP b/topologies/training-level-1-3-container-labs/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-level-1-3-container-labs/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-level-1-3-container-labs/files/scripts/Authenticate-CVP2 b/topologies/training-level-1-3-container-labs/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-1-3-container-labs/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs/files/scripts/Authenticate-CVP3 b/topologies/training-level-1-3-container-labs/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-level-1-3-container-labs/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs/files/scripts/Configlet1 b/topologies/training-level-1-3-container-labs/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-1-3-container-labs/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs/files/scripts/ConfigletChange b/topologies/training-level-1-3-container-labs/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-level-1-3-container-labs/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs/files/scripts/ConfigletDetail b/topologies/training-level-1-3-container-labs/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-level-1-3-container-labs/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-level-1-3-container-labs/files/scripts/ConfigletHistory b/topologies/training-level-1-3-container-labs/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-level-1-3-container-labs/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs/files/scripts/TaskBase b/topologies/training-level-1-3-container-labs/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-level-1-3-container-labs/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs/files/scripts/TaskCVP1 b/topologies/training-level-1-3-container-labs/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-level-1-3-container-labs/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-level-1-3-container-labs/files/scripts/TaskExecute b/topologies/training-level-1-3-container-labs/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-level-1-3-container-labs/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs/files/scripts/TaskLog b/topologies/training-level-1-3-container-labs/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-1-3-container-labs/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs/files/scripts/TaskLog1 b/topologies/training-level-1-3-container-labs/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-1-3-container-labs/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs/files/scripts/TaskLogView b/topologies/training-level-1-3-container-labs/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-level-1-3-container-labs/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs/files/scripts/TaskNote b/topologies/training-level-1-3-container-labs/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-level-1-3-container-labs/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3-container-labs/labguides/.gitignore b/topologies/training-level-1-3-container-labs/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-level-1-3-container-labs/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-level-1-3-container-labs/labguides/Makefile b/topologies/training-level-1-3-container-labs/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-level-1-3-container-labs/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs/labguides/readme.md b/topologies/training-level-1-3-container-labs/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-level-1-3-container-labs/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-level-1-3-container-labs/labguides/source/_static/arista_logo.png b/topologies/training-level-1-3-container-labs/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-level-1-3-container-labs/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs/labguides/source/_static/arista_logo_160by26.png b/topologies/training-level-1-3-container-labs/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-level-1-3-container-labs/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs/labguides/source/_static/arista_logo_320by52.png b/topologies/training-level-1-3-container-labs/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-level-1-3-container-labs/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs/labguides/source/_static/cloudvision-icon.png b/topologies/training-level-1-3-container-labs/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-level-1-3-container-labs/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs/labguides/source/_static/logo.jpg b/topologies/training-level-1-3-container-labs/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-1-3-container-labs/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs/labguides/source/_static/my-styles.css b/topologies/training-level-1-3-container-labs/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-level-1-3-container-labs/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-level-1-3-container-labs/labguides/source/conf.py b/topologies/training-level-1-3-container-labs/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-level-1-3-container-labs/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-level-1-3-container-labs/labguides/source/connecting.rst b/topologies/training-level-1-3-container-labs/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-level-1-3-container-labs/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-level-1-3-container-labs/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-level-1-3-container-labs/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-level-1-3-container-labs/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-level-1-3-container-labs/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-level-1-3-container-labs/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-level-1-3-container-labs/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-level-1-3-container-labs/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs/labguides/source/images/logo.jpg b/topologies/training-level-1-3-container-labs/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-1-3-container-labs/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-1-3-container-labs/labguides/source/index.rst b/topologies/training-level-1-3-container-labs/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-level-1-3-container-labs/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-level-1-3-container-labs/topo_build.yml b/topologies/training-level-1-3-container-labs/topo_build.yml
deleted file mode 100644
index 9ccba5edb..000000000
--- a/topologies/training-level-1-3-container-labs/topo_build.yml
+++ /dev/null
@@ -1,385 +0,0 @@
-host_cpu: 4
-cvp_cpu: 32
-cvp_ram: 42
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - spine1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet3
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet3
- port: Ethernet8
- - spine2:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet4
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet4
- port: Ethernet8
- - spine3:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: spine4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet5
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet5
- port: Ethernet8
- - spine4:
- ip_addr: 192.168.0.14
- sys_mac: 00:1c:73:b4:c6:01
- neighbors:
- - neighborDevice: spine3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet6
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet6
- port: Ethernet8
- - leaf1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet2
- port: Ethernet10
- - leaf3:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf4:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet2
- port: Ethernet10
- - borderleaf1:
- ip_addr: 192.168.0.25
- sys_mac: 00:1c:73:c5:c6:01
- neighbors:
- - neighborDevice: borderleaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet7
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet7
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet7
- port: Ethernet6
- - borderleaf2:
- ip_addr: 192.168.0.26
- sys_mac: 00:1c:73:c6:c6:01
- neighbors:
- - neighborDevice: borderleaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet8
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet8
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet8
- port: Ethernet6
- - host1:
- ip_addr: 192.168.0.51
- sys_mac: 00:1c:73:f1:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet7
- port: Ethernet2
- - host2:
- ip_addr: 192.168.0.52
- sys_mac: 00:1c:73:f2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet9
- port: Ethernet2
- - host3:
- ip_addr: 192.168.0.53
- sys_mac: 00:1c:73:f3:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet7
- port: Ethernet2
- - host4:
- ip_addr: 192.168.0.54
- sys_mac: 00:1c:73:f4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet9
- port: Ethernet2
-servers:
- - host5:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.101
- port : 6001
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet8
- port: Ethernet2
- - host6:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.102
- port : 6002
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet10
- port: Ethernet2
- - host7:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.103
- port : 6003
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet8
- port: Ethernet2
- - host8:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.104
- port : 6004
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet10
- port: Ethernet2
-additional_ssh_nodes:
-additional_clab_nodes:
diff --git a/topologies/training-level-1-3/atd-topo.png b/topologies/training-level-1-3/atd-topo.png
deleted file mode 100644
index 4cc023b85..000000000
Binary files a/topologies/training-level-1-3/atd-topo.png and /dev/null differ
diff --git a/topologies/training-level-1-3/configlets/ATD-INFRA b/topologies/training-level-1-3/configlets/ATD-INFRA
deleted file mode 100644
index 6a88951d1..000000000
--- a/topologies/training-level-1-3/configlets/ATD-INFRA
+++ /dev/null
@@ -1,45 +0,0 @@
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=default -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server 192.168.0.1 iburst source Management1
-!
-radius-server host 192.168.0.1 key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management1
-!
-management api http-commands
- no shutdown
-!
diff --git a/topologies/training-level-1-3/configlets/Base-Builder.py b/topologies/training-level-1-3/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-level-1-3/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-level-1-3/configlets/borderleaf1-base b/topologies/training-level-1-3/configlets/borderleaf1-base
deleted file mode 100644
index 556895b8c..000000000
--- a/topologies/training-level-1-3/configlets/borderleaf1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname borderleaf1
-!
-interface Management 1
- ip address 192.168.0.25/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/training-level-1-3/configlets/borderleaf2-base b/topologies/training-level-1-3/configlets/borderleaf2-base
deleted file mode 100644
index cde4736cf..000000000
--- a/topologies/training-level-1-3/configlets/borderleaf2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname borderleaf2
-!
-interface Management 1
- ip address 192.168.0.26/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/training-level-1-3/configlets/host1-base b/topologies/training-level-1-3/configlets/host1-base
deleted file mode 100644
index 9bf7152e8..000000000
--- a/topologies/training-level-1-3/configlets/host1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host1
-!
-spanning-tree mode none
-!
-interface Management 1
- ip address 192.168.0.51/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
\ No newline at end of file
diff --git a/topologies/training-level-1-3/configlets/host2-base b/topologies/training-level-1-3/configlets/host2-base
deleted file mode 100644
index b2e6e735e..000000000
--- a/topologies/training-level-1-3/configlets/host2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host2
-!
-spanning-tree mode none
-!
-interface Management 1
- ip address 192.168.0.52/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/training-level-1-3/configlets/host3-base b/topologies/training-level-1-3/configlets/host3-base
deleted file mode 100644
index b2812b722..000000000
--- a/topologies/training-level-1-3/configlets/host3-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host3
-!
-spanning-tree mode none
-!
-interface Management 1
- ip address 192.168.0.53/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/training-level-1-3/configlets/host4-base b/topologies/training-level-1-3/configlets/host4-base
deleted file mode 100644
index 252a6e4a2..000000000
--- a/topologies/training-level-1-3/configlets/host4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host4
-!
-spanning-tree mode none
-!
-interface Management 1
- ip address 192.168.0.54/24
- no lldp transmit
- no lldp receive
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/training-level-1-3/configlets/leaf1-base b/topologies/training-level-1-3/configlets/leaf1-base
deleted file mode 100644
index 47e0ce3f6..000000000
--- a/topologies/training-level-1-3/configlets/leaf1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf1
-!
-interface Management 1
- ip address 192.168.0.21/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/training-level-1-3/configlets/leaf2-base b/topologies/training-level-1-3/configlets/leaf2-base
deleted file mode 100644
index 72fae64c3..000000000
--- a/topologies/training-level-1-3/configlets/leaf2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf2
-!
-interface Management 1
- ip address 192.168.0.22/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/training-level-1-3/configlets/leaf3-base b/topologies/training-level-1-3/configlets/leaf3-base
deleted file mode 100644
index ab93834f4..000000000
--- a/topologies/training-level-1-3/configlets/leaf3-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf3
-!
-interface Management 1
- ip address 192.168.0.23/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/training-level-1-3/configlets/leaf4-base b/topologies/training-level-1-3/configlets/leaf4-base
deleted file mode 100644
index a3b808c25..000000000
--- a/topologies/training-level-1-3/configlets/leaf4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf4
-!
-interface Management 1
- ip address 192.168.0.24/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/training-level-1-3/configlets/spine1-base b/topologies/training-level-1-3/configlets/spine1-base
deleted file mode 100644
index 322102842..000000000
--- a/topologies/training-level-1-3/configlets/spine1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname spine1
-!
-interface Management 1
- ip address 192.168.0.11/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/training-level-1-3/configlets/spine2-base b/topologies/training-level-1-3/configlets/spine2-base
deleted file mode 100644
index c664c14cc..000000000
--- a/topologies/training-level-1-3/configlets/spine2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname spine2
-!
-interface Management 1
- ip address 192.168.0.12/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
diff --git a/topologies/training-level-1-3/configlets/spine3-base b/topologies/training-level-1-3/configlets/spine3-base
deleted file mode 100644
index d964a927a..000000000
--- a/topologies/training-level-1-3/configlets/spine3-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname spine3
-!
-interface Management 1
- ip address 192.168.0.13/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
\ No newline at end of file
diff --git a/topologies/training-level-1-3/configlets/spine4-base b/topologies/training-level-1-3/configlets/spine4-base
deleted file mode 100644
index db1c7c18a..000000000
--- a/topologies/training-level-1-3/configlets/spine4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname spine4
-!
-interface Management 1
- ip address 192.168.0.14/24
- no lldp transmit
- no lldp receive
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip route 0.0.0.0/0 192.168.0.1
-!
-ip routing
-!
\ No newline at end of file
diff --git a/topologies/training-level-1-3/files/.ansible.cfg b/topologies/training-level-1-3/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-level-1-3/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-level-1-3/files/.screenrc b/topologies/training-level-1-3/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-level-1-3/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-level-1-3/files/MenuOptions.yaml b/topologies/training-level-1-3/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-level-1-3/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-level-1-3/files/apps/coder/coder.yaml b/topologies/training-level-1-3/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-level-1-3/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-level-1-3/files/apps/coder/labfiles/.placeholder b/topologies/training-level-1-3/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-level-1-3/files/apps/ssh/web.json b/topologies/training-level-1-3/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-level-1-3/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-level-1-3/files/apps/uilanding/modules.yaml b/topologies/training-level-1-3/files/apps/uilanding/modules.yaml
deleted file mode 100644
index 64d0909f1..000000000
--- a/topologies/training-level-1-3/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "43,231,220,314"
- ip: "192.168.0.11"
- Spine2:
- coords: "324,227,503,315"
- ip: "192.168.0.12"
- Spine3:
- coords: "596,231,777,316"
- ip: "192.168.0.13"
- Spine4:
- coords: "880,233,1056,315"
- ip: "192.168.0.14"
- Leaf1:
- coords: "42,518,219,601"
- ip: "192.168.0.21"
- Leaf2:
- coords: "324,519,502,603"
- ip: "192.168.0.22"
- Leaf3:
- coords: "597,519,779,605"
- ip: "192.168.0.23"
- Leaf4:
- coords: "882,522,1055,603"
- ip: "192.168.0.24"
- BorderLeaf1:
- coords: "501,100,323,20"
- ip: "192.168.0.25"
- BorderLeaf2:
- coords: "599,20,778,101"
- ip: "192.168.0.26"
- Host1:
- coords: "29,675,212,765"
- ip: "192.168.0.51"
- Host2:
- coords: "319,673,498,754"
- ip: "192.168.0.52"
-
-
\ No newline at end of file
diff --git a/topologies/training-level-1-3/files/apps/webui/.vncpass_clear b/topologies/training-level-1-3/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-level-1-3/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-level-1-3/files/cvp/cvp_info.yaml b/topologies/training-level-1-3/files/cvp/cvp_info.yaml
deleted file mode 100644
index 89744587c..000000000
--- a/topologies/training-level-1-3/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf:
- parent: Tenant
- nodes:
- - leaf1
- - leaf2
- - leaf3
- - leaf4
- Borderleaf:
- parent: Tenant
- nodes:
- - borderleaf1
- - borderleaf2
- Spine:
- parent: Tenant
- nodes:
- - spine1
- - spine2
- - spine3
- - spine4
- Hosts:
- parent: Tenant
- nodes:
- - host1
- - host2
- - host3
- - host4
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- spine1:
- - spine1-base
- spine2:
- - spine2-base
- spine3:
- - spine3-base
- spine4:
- - spine4-base
- leaf1:
- - leaf1-base
- leaf2:
- - leaf2-base
- borderleaf1:
- - borderleaf1-base
- borderleaf2:
- - borderleaf2-base
- leaf3:
- - leaf3-base
- leaf4:
- - leaf4-base
- host1:
- - host1-base
- host2:
- - host2-base
- host3:
- - host3-base
- host4:
- - host4-base
diff --git a/topologies/training-level-1-3/files/hosts b/topologies/training-level-1-3/files/hosts
deleted file mode 100644
index ee9fda588..000000000
--- a/topologies/training-level-1-3/files/hosts
+++ /dev/null
@@ -1,20 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.5 cvp
diff --git a/topologies/training-level-1-3/files/menus/default.yaml b/topologies/training-level-1-3/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-level-1-3/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-level-1-3/files/menus/training-l3.yaml b/topologies/training-level-1-3/files/menus/training-l3.yaml
deleted file mode 100644
index 41133498a..000000000
--- a/topologies/training-level-1-3/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
- lab_list:
- reset:
- additional_commands:
- - "bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base Lab (reset)"
- labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
diff --git a/topologies/training-level-1-3/files/scripts/Authenticate-CVP b/topologies/training-level-1-3/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-level-1-3/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-level-1-3/files/scripts/Authenticate-CVP2 b/topologies/training-level-1-3/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-1-3/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-1-3/files/scripts/Authenticate-CVP3 b/topologies/training-level-1-3/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-level-1-3/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3/files/scripts/Configlet1 b/topologies/training-level-1-3/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-1-3/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-1-3/files/scripts/ConfigletChange b/topologies/training-level-1-3/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-level-1-3/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3/files/scripts/ConfigletDetail b/topologies/training-level-1-3/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-level-1-3/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-level-1-3/files/scripts/ConfigletHistory b/topologies/training-level-1-3/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-level-1-3/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-level-1-3/files/scripts/TaskBase b/topologies/training-level-1-3/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-level-1-3/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3/files/scripts/TaskCVP1 b/topologies/training-level-1-3/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-level-1-3/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-level-1-3/files/scripts/TaskExecute b/topologies/training-level-1-3/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-level-1-3/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-level-1-3/files/scripts/TaskLog b/topologies/training-level-1-3/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-1-3/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3/files/scripts/TaskLog1 b/topologies/training-level-1-3/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-1-3/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3/files/scripts/TaskLogView b/topologies/training-level-1-3/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-level-1-3/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3/files/scripts/TaskNote b/topologies/training-level-1-3/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-level-1-3/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-level-1-3/labguides/.gitignore b/topologies/training-level-1-3/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-level-1-3/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-level-1-3/labguides/Makefile b/topologies/training-level-1-3/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-level-1-3/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-level-1-3/labguides/readme.md b/topologies/training-level-1-3/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-level-1-3/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-level-1-3/labguides/source/_static/arista_logo.png b/topologies/training-level-1-3/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-level-1-3/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-level-1-3/labguides/source/_static/arista_logo_160by26.png b/topologies/training-level-1-3/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-level-1-3/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-level-1-3/labguides/source/_static/arista_logo_320by52.png b/topologies/training-level-1-3/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-level-1-3/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-level-1-3/labguides/source/_static/cloudvision-icon.png b/topologies/training-level-1-3/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-level-1-3/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-level-1-3/labguides/source/_static/logo.jpg b/topologies/training-level-1-3/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-1-3/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-1-3/labguides/source/_static/my-styles.css b/topologies/training-level-1-3/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-level-1-3/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-level-1-3/labguides/source/conf.py b/topologies/training-level-1-3/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-level-1-3/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-level-1-3/labguides/source/connecting.rst b/topologies/training-level-1-3/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-level-1-3/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-level-1-3/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-level-1-3/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-level-1-3/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-level-1-3/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-level-1-3/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-level-1-3/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-level-1-3/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-level-1-3/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-level-1-3/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-level-1-3/labguides/source/images/logo.jpg b/topologies/training-level-1-3/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-1-3/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-1-3/labguides/source/index.rst b/topologies/training-level-1-3/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-level-1-3/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-level-1-3/topo_build.yml b/topologies/training-level-1-3/topo_build.yml
deleted file mode 100644
index 5b2678679..000000000
--- a/topologies/training-level-1-3/topo_build.yml
+++ /dev/null
@@ -1,416 +0,0 @@
-host_cpu: 4
-cvp_cpu: 24
-cvp_ram: 32
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - spine1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet3
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet3
- port: Ethernet8
- - spine2:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet4
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet4
- port: Ethernet8
- - spine3:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: spine4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet5
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet5
- port: Ethernet8
- - spine4:
- ip_addr: 192.168.0.14
- sys_mac: 00:1c:73:b4:c6:01
- neighbors:
- - neighborDevice: spine3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet6
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet6
- port: Ethernet8
- - leaf1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host1
- neighborPort: Ethernet3
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host2
- neighborPort: Ethernet3
- port: Ethernet10
- - leaf2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host1
- neighborPort: Ethernet4
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host2
- neighborPort: Ethernet4
- port: Ethernet10
- - leaf3:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host3
- neighborPort: Ethernet3
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host4
- neighborPort: Ethernet3
- port: Ethernet10
- - leaf4:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host3
- neighborPort: Ethernet4
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host4
- neighborPort: Ethernet4
- port: Ethernet10
- - borderleaf1:
- ip_addr: 192.168.0.25
- sys_mac: 00:1c:73:c5:c6:01
- neighbors:
- - neighborDevice: borderleaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet7
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet7
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet7
- port: Ethernet6
- - borderleaf2:
- ip_addr: 192.168.0.26
- sys_mac: 00:1c:73:c6:c6:01
- neighbors:
- - neighborDevice: borderleaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet8
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet8
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet8
- port: Ethernet6
- - host1:
- ip_addr: 192.168.0.51
- sys_mac: 00:1c:73:f1:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet7
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet8
- port: Ethernet4
- - host2:
- ip_addr: 192.168.0.52
- sys_mac: 00:1c:73:f2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet9
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet10
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet10
- port: Ethernet4
- - host3:
- ip_addr: 192.168.0.53
- sys_mac: 00:1c:73:f3:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet7
- port: Ethernet2
- - neighborDevice: leaf3
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: leaf4
- neighborPort: Ethernet8
- port: Ethernet4
- - host4:
- ip_addr: 192.168.0.54
- sys_mac: 00:1c:73:f4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet9
- port: Ethernet2
- - neighborDevice: leaf3
- neighborPort: Ethernet10
- port: Ethernet3
- - neighborDevice: leaf4
- neighborPort: Ethernet10
- port: Ethernet4
-servers:
- - server1:
- ami_name: "cloud-deploy-generic-CentOS-8-8.2.2004"
- size: "t2.medium"
- type: generic
- ip_addr: 192.168.0.41
- sys_mac: 00:1c:73:e1:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet11
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet11
- port: Ethernet2
- - server2:
- ami_name: "cloud-deploy-generic-CentOS-8-8.2.2004"
- size: "t2.medium"
- type: generic
- ip_addr: 192.168.0.42
- sys_mac: 00:1c:73:e2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet12
- port: Ethernet2
- - neighborDevice: leaf2
- neighborPort: Ethernet12
- port: Ethernet1
- - server3:
- ami_name: "cloud-deploy-generic-CentOS-8-8.2.2004"
- size: "t2.medium"
- type: generic
- ip_addr: 192.168.0.43
- sys_mac: 00:1c:73:e3:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet11
- port: Ethernet1
- - neighborDevice: leaf3
- neighborPort: Ethernet12
- port: Ethernet2
- - server4:
- ami_name: "cloud-deploy-generic-CentOS-8-8.2.2004"
- size: "t2.medium"
- type: generic
- ip_addr: 192.168.0.44
- sys_mac: 00:1c:73:e4:c6:01
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet11
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet12
- port: Ethernet2
-additional_ssh_nodes:
diff --git a/topologies/training-level-1-cl/atd-topo-bkp-2.png b/topologies/training-level-1-cl/atd-topo-bkp-2.png
deleted file mode 100644
index ce621aec8..000000000
Binary files a/topologies/training-level-1-cl/atd-topo-bkp-2.png and /dev/null differ
diff --git a/topologies/training-level-1-cl/atd-topo-bkp.png b/topologies/training-level-1-cl/atd-topo-bkp.png
deleted file mode 100644
index 4cc023b85..000000000
Binary files a/topologies/training-level-1-cl/atd-topo-bkp.png and /dev/null differ
diff --git a/topologies/training-level-1-cl/atd-topo.png b/topologies/training-level-1-cl/atd-topo.png
deleted file mode 100644
index 53ba5d7d9..000000000
Binary files a/topologies/training-level-1-cl/atd-topo.png and /dev/null differ
diff --git a/topologies/training-level-1-cl/configlets/ATD-INFRA b/topologies/training-level-1-cl/configlets/ATD-INFRA
deleted file mode 100644
index de87bc743..000000000
--- a/topologies/training-level-1-cl/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-level-1-cl/configlets/Base-Builder.py b/topologies/training-level-1-cl/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-level-1-cl/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-level-1-cl/configlets/borderleaf1-base b/topologies/training-level-1-cl/configlets/borderleaf1-base
deleted file mode 100644
index e274c6eb4..000000000
--- a/topologies/training-level-1-cl/configlets/borderleaf1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.25/24
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
diff --git a/topologies/training-level-1-cl/configlets/borderleaf2-base b/topologies/training-level-1-cl/configlets/borderleaf2-base
deleted file mode 100644
index a7778e0b4..000000000
--- a/topologies/training-level-1-cl/configlets/borderleaf2-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.26/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-cl/configlets/host1-base b/topologies/training-level-1-cl/configlets/host1-base
deleted file mode 100644
index 915d58edb..000000000
--- a/topologies/training-level-1-cl/configlets/host1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host1
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.51/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-cl/configlets/host2-base b/topologies/training-level-1-cl/configlets/host2-base
deleted file mode 100644
index 63f0c9c38..000000000
--- a/topologies/training-level-1-cl/configlets/host2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host2
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.52/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-cl/configlets/host3-base b/topologies/training-level-1-cl/configlets/host3-base
deleted file mode 100644
index 979a49b28..000000000
--- a/topologies/training-level-1-cl/configlets/host3-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host3
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.53/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-cl/configlets/host4-base b/topologies/training-level-1-cl/configlets/host4-base
deleted file mode 100644
index f85e77a77..000000000
--- a/topologies/training-level-1-cl/configlets/host4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host4
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.54/24
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-
diff --git a/topologies/training-level-1-cl/configlets/leaf1-base b/topologies/training-level-1-cl/configlets/leaf1-base
deleted file mode 100644
index 7b316b33b..000000000
--- a/topologies/training-level-1-cl/configlets/leaf1-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.21/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-cl/configlets/leaf2-base b/topologies/training-level-1-cl/configlets/leaf2-base
deleted file mode 100644
index 22fffb444..000000000
--- a/topologies/training-level-1-cl/configlets/leaf2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.22/24
-
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-cl/configlets/leaf3-base b/topologies/training-level-1-cl/configlets/leaf3-base
deleted file mode 100644
index 37e7bc8d3..000000000
--- a/topologies/training-level-1-cl/configlets/leaf3-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.23/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-cl/configlets/leaf4-base b/topologies/training-level-1-cl/configlets/leaf4-base
deleted file mode 100644
index f0cff7b25..000000000
--- a/topologies/training-level-1-cl/configlets/leaf4-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.24/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-cl/configlets/spine1-base b/topologies/training-level-1-cl/configlets/spine1-base
deleted file mode 100644
index 5e9d072b1..000000000
--- a/topologies/training-level-1-cl/configlets/spine1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.11/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-cl/configlets/spine2-base b/topologies/training-level-1-cl/configlets/spine2-base
deleted file mode 100644
index cc9d0bef1..000000000
--- a/topologies/training-level-1-cl/configlets/spine2-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname spine2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.12/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-cl/configlets/spine3-base b/topologies/training-level-1-cl/configlets/spine3-base
deleted file mode 100644
index 853f6564a..000000000
--- a/topologies/training-level-1-cl/configlets/spine3-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.13/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-cl/configlets/spine4-base b/topologies/training-level-1-cl/configlets/spine4-base
deleted file mode 100644
index 240453581..000000000
--- a/topologies/training-level-1-cl/configlets/spine4-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.14/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-cl/files/.ansible.cfg b/topologies/training-level-1-cl/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-level-1-cl/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-level-1-cl/files/.screenrc b/topologies/training-level-1-cl/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-level-1-cl/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-level-1-cl/files/MenuOptions.yaml b/topologies/training-level-1-cl/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-level-1-cl/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-level-1-cl/files/apps/coder/coder.yaml b/topologies/training-level-1-cl/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-level-1-cl/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-level-1-cl/files/apps/coder/labfiles/.placeholder b/topologies/training-level-1-cl/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-level-1-cl/files/apps/gui/host5/arista/host-startup.sh b/topologies/training-level-1-cl/files/apps/gui/host5/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-cl/files/apps/gui/host5/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-cl/files/apps/gui/host6/arista/host-startup.sh b/topologies/training-level-1-cl/files/apps/gui/host6/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-cl/files/apps/gui/host6/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-cl/files/apps/gui/host7/arista/host-startup.sh b/topologies/training-level-1-cl/files/apps/gui/host7/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-cl/files/apps/gui/host7/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-cl/files/apps/gui/host8/arista/host-startup.sh b/topologies/training-level-1-cl/files/apps/gui/host8/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-cl/files/apps/gui/host8/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-cl/files/apps/ssh/web.json b/topologies/training-level-1-cl/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-level-1-cl/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-level-1-cl/files/apps/uilanding/modules.yaml b/topologies/training-level-1-cl/files/apps/uilanding/modules.yaml
deleted file mode 100644
index c983faac0..000000000
--- a/topologies/training-level-1-cl/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "22,218,167,296"
- ip: "192.168.0.11"
- Spine2:
- coords: "356,215,517,300"
- ip: "192.168.0.12"
- Spine3:
- coords: "555,214,724,294"
- ip: "192.168.0.13"
- Spine4:
- coords: "925,218,1077,293"
- ip: "192.168.0.14"
- Leaf1:
- coords: "16,424,165,501"
- ip: "192.168.0.21"
- Leaf2:
- coords: "353,425,520,493"
- ip: "192.168.0.22"
- Leaf3:
- coords: "569,430,714,499"
- ip: "192.168.0.23"
- Leaf4:
- coords: "921,423,1074,502"
- ip: "192.168.0.24"
- BorderLeaf1:
- coords: "370,57,511,138"
- ip: "192.168.0.25"
- BorderLeaf2:
- coords: "561,65,726,145"
- ip: "192.168.0.26"
- Host1:
- coords: "15,534,149,611"
- ip: "192.168.0.51"
- Host2:
- coords: "365,539,504,619"
- ip: "192.168.0.52"
- Host3:
- coords: "566,542,711,620"
- ip: "192.168.0.53"
- Host4:
- coords: "929,542,1075,615"
- ip: "192.168.0.54"
- servers:
- Host5:
- coords: "182,545,307,636"
- ip: "192.168.0.101"
- port : 6001
- Host6:
- coords: "183,650,312,744"
- ip: "192.168.0.102"
- port : 6002
- Host7:
- coords: "747,545,875,636"
- ip: "192.168.0.103"
- port : 6003
- Host8:
- coords: "752,645,877,731"
- ip: "192.168.0.104"
- port : 6004
diff --git a/topologies/training-level-1-cl/files/apps/webui/.vncpass_clear b/topologies/training-level-1-cl/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-level-1-cl/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-level-1-cl/files/cvp/cvp_info.yaml b/topologies/training-level-1-cl/files/cvp/cvp_info.yaml
deleted file mode 100644
index 7e796e77f..000000000
--- a/topologies/training-level-1-cl/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf:
- parent: Tenant
- nodes:
- - leaf1
- - leaf2
- - leaf3
- - leaf4
- Borderleaf:
- parent: Tenant
- nodes:
- - borderleaf1
- - borderleaf2
- Spine:
- parent: Tenant
- nodes:
- - spine1
- - spine2
- - spine3
- - spine4
- Hosts:
- parent: Tenant
- nodes:
- - host1
- - host2
- - host3
- - host4
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- spine1:
- - spine1-base
- spine2:
- - spine2-base
- spine3:
- - spine3-base
- spine4:
- - spine4-base
- leaf1:
- - leaf1-base
- leaf2:
- - leaf2-base
- borderleaf1:
- - borderleaf1-base
- borderleaf2:
- - borderleaf2-base
- leaf3:
- - leaf3-base
- leaf4:
- - leaf4-base
- host3:
- - host3-base
- host4:
- - host4-base
- host1:
- - host1-base
- host2:
- - host2-base
\ No newline at end of file
diff --git a/topologies/training-level-1-cl/files/hosts b/topologies/training-level-1-cl/files/hosts
deleted file mode 100644
index b01ba8483..000000000
--- a/topologies/training-level-1-cl/files/hosts
+++ /dev/null
@@ -1,24 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.101 host5
-192.168.0.102 host6
-192.168.0.103 host7
-192.168.0.104 host8
-192.168.0.5 cvp
diff --git a/topologies/training-level-1-cl/files/menus/default.yaml b/topologies/training-level-1-cl/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-level-1-cl/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-level-1-cl/files/menus/training-l3.yaml b/topologies/training-level-1-cl/files/menus/training-l3.yaml
deleted file mode 100644
index dc084582e..000000000
--- a/topologies/training-level-1-cl/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
----
- lab_list:
- reset:
- description: "Reset All Devices to Base Lab (reset)"
- labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
diff --git a/topologies/training-level-1-cl/files/scripts/Authenticate-CVP b/topologies/training-level-1-cl/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-level-1-cl/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-level-1-cl/files/scripts/Authenticate-CVP2 b/topologies/training-level-1-cl/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-1-cl/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-1-cl/files/scripts/Authenticate-CVP3 b/topologies/training-level-1-cl/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-level-1-cl/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-1-cl/files/scripts/Configlet1 b/topologies/training-level-1-cl/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-1-cl/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-1-cl/files/scripts/ConfigletChange b/topologies/training-level-1-cl/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-level-1-cl/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-1-cl/files/scripts/ConfigletDetail b/topologies/training-level-1-cl/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-level-1-cl/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-level-1-cl/files/scripts/ConfigletHistory b/topologies/training-level-1-cl/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-level-1-cl/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-level-1-cl/files/scripts/TaskBase b/topologies/training-level-1-cl/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-level-1-cl/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-cl/files/scripts/TaskCVP1 b/topologies/training-level-1-cl/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-level-1-cl/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-level-1-cl/files/scripts/TaskExecute b/topologies/training-level-1-cl/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-level-1-cl/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-level-1-cl/files/scripts/TaskLog b/topologies/training-level-1-cl/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-1-cl/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-cl/files/scripts/TaskLog1 b/topologies/training-level-1-cl/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-1-cl/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-cl/files/scripts/TaskLogView b/topologies/training-level-1-cl/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-level-1-cl/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-cl/files/scripts/TaskNote b/topologies/training-level-1-cl/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-level-1-cl/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-level-1-cl/labguides/.gitignore b/topologies/training-level-1-cl/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-level-1-cl/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-level-1-cl/labguides/Makefile b/topologies/training-level-1-cl/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-level-1-cl/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-level-1-cl/labguides/readme.md b/topologies/training-level-1-cl/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-level-1-cl/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-level-1-cl/labguides/source/_static/arista_logo.png b/topologies/training-level-1-cl/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-level-1-cl/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-level-1-cl/labguides/source/_static/arista_logo_160by26.png b/topologies/training-level-1-cl/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-level-1-cl/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-level-1-cl/labguides/source/_static/arista_logo_320by52.png b/topologies/training-level-1-cl/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-level-1-cl/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-level-1-cl/labguides/source/_static/cloudvision-icon.png b/topologies/training-level-1-cl/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-level-1-cl/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-level-1-cl/labguides/source/_static/logo.jpg b/topologies/training-level-1-cl/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-1-cl/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-1-cl/labguides/source/_static/my-styles.css b/topologies/training-level-1-cl/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-level-1-cl/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-level-1-cl/labguides/source/conf.py b/topologies/training-level-1-cl/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-level-1-cl/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-level-1-cl/labguides/source/connecting.rst b/topologies/training-level-1-cl/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-level-1-cl/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-level-1-cl/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-level-1-cl/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-level-1-cl/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-level-1-cl/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-level-1-cl/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-level-1-cl/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-level-1-cl/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-level-1-cl/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-level-1-cl/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-level-1-cl/labguides/source/images/logo.jpg b/topologies/training-level-1-cl/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-1-cl/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-1-cl/labguides/source/index.rst b/topologies/training-level-1-cl/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-level-1-cl/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-level-1-cl/topo_build.yml b/topologies/training-level-1-cl/topo_build.yml
deleted file mode 100644
index 9ccba5edb..000000000
--- a/topologies/training-level-1-cl/topo_build.yml
+++ /dev/null
@@ -1,385 +0,0 @@
-host_cpu: 4
-cvp_cpu: 32
-cvp_ram: 42
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - spine1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet3
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet3
- port: Ethernet8
- - spine2:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet4
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet4
- port: Ethernet8
- - spine3:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: spine4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet5
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet5
- port: Ethernet8
- - spine4:
- ip_addr: 192.168.0.14
- sys_mac: 00:1c:73:b4:c6:01
- neighbors:
- - neighborDevice: spine3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet6
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet6
- port: Ethernet8
- - leaf1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet2
- port: Ethernet10
- - leaf3:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf4:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet2
- port: Ethernet10
- - borderleaf1:
- ip_addr: 192.168.0.25
- sys_mac: 00:1c:73:c5:c6:01
- neighbors:
- - neighborDevice: borderleaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet7
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet7
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet7
- port: Ethernet6
- - borderleaf2:
- ip_addr: 192.168.0.26
- sys_mac: 00:1c:73:c6:c6:01
- neighbors:
- - neighborDevice: borderleaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet8
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet8
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet8
- port: Ethernet6
- - host1:
- ip_addr: 192.168.0.51
- sys_mac: 00:1c:73:f1:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet7
- port: Ethernet2
- - host2:
- ip_addr: 192.168.0.52
- sys_mac: 00:1c:73:f2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet9
- port: Ethernet2
- - host3:
- ip_addr: 192.168.0.53
- sys_mac: 00:1c:73:f3:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet7
- port: Ethernet2
- - host4:
- ip_addr: 192.168.0.54
- sys_mac: 00:1c:73:f4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet9
- port: Ethernet2
-servers:
- - host5:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.101
- port : 6001
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet8
- port: Ethernet2
- - host6:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.102
- port : 6002
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet10
- port: Ethernet2
- - host7:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.103
- port : 6003
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet8
- port: Ethernet2
- - host8:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.104
- port : 6004
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet10
- port: Ethernet2
-additional_ssh_nodes:
-additional_clab_nodes:
diff --git a/topologies/training-level-1-mini-1/atd-topo-bkp-2.png b/topologies/training-level-1-mini-1/atd-topo-bkp-2.png
deleted file mode 100644
index ce621aec8..000000000
Binary files a/topologies/training-level-1-mini-1/atd-topo-bkp-2.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-1/atd-topo-bkp.png b/topologies/training-level-1-mini-1/atd-topo-bkp.png
deleted file mode 100644
index 4cc023b85..000000000
Binary files a/topologies/training-level-1-mini-1/atd-topo-bkp.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-1/atd-topo.png b/topologies/training-level-1-mini-1/atd-topo.png
deleted file mode 100644
index 53ba5d7d9..000000000
Binary files a/topologies/training-level-1-mini-1/atd-topo.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-1/configlets/ATD-INFRA b/topologies/training-level-1-mini-1/configlets/ATD-INFRA
deleted file mode 100644
index de87bc743..000000000
--- a/topologies/training-level-1-mini-1/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-level-1-mini-1/configlets/Base-Builder.py b/topologies/training-level-1-mini-1/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-level-1-mini-1/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-1/configlets/borderleaf1-base b/topologies/training-level-1-mini-1/configlets/borderleaf1-base
deleted file mode 100644
index e274c6eb4..000000000
--- a/topologies/training-level-1-mini-1/configlets/borderleaf1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.25/24
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
diff --git a/topologies/training-level-1-mini-1/configlets/borderleaf2-base b/topologies/training-level-1-mini-1/configlets/borderleaf2-base
deleted file mode 100644
index a7778e0b4..000000000
--- a/topologies/training-level-1-mini-1/configlets/borderleaf2-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.26/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-1/configlets/host1-base b/topologies/training-level-1-mini-1/configlets/host1-base
deleted file mode 100644
index 915d58edb..000000000
--- a/topologies/training-level-1-mini-1/configlets/host1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host1
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.51/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-1/configlets/host2-base b/topologies/training-level-1-mini-1/configlets/host2-base
deleted file mode 100644
index 63f0c9c38..000000000
--- a/topologies/training-level-1-mini-1/configlets/host2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host2
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.52/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-1/configlets/host3-base b/topologies/training-level-1-mini-1/configlets/host3-base
deleted file mode 100644
index 979a49b28..000000000
--- a/topologies/training-level-1-mini-1/configlets/host3-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host3
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.53/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-1/configlets/host4-base b/topologies/training-level-1-mini-1/configlets/host4-base
deleted file mode 100644
index f85e77a77..000000000
--- a/topologies/training-level-1-mini-1/configlets/host4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host4
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.54/24
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-
diff --git a/topologies/training-level-1-mini-1/configlets/leaf1-base b/topologies/training-level-1-mini-1/configlets/leaf1-base
deleted file mode 100644
index 7b316b33b..000000000
--- a/topologies/training-level-1-mini-1/configlets/leaf1-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.21/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-1/configlets/leaf2-base b/topologies/training-level-1-mini-1/configlets/leaf2-base
deleted file mode 100644
index 22fffb444..000000000
--- a/topologies/training-level-1-mini-1/configlets/leaf2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.22/24
-
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-1/configlets/leaf3-base b/topologies/training-level-1-mini-1/configlets/leaf3-base
deleted file mode 100644
index 37e7bc8d3..000000000
--- a/topologies/training-level-1-mini-1/configlets/leaf3-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.23/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-1/configlets/leaf4-base b/topologies/training-level-1-mini-1/configlets/leaf4-base
deleted file mode 100644
index f0cff7b25..000000000
--- a/topologies/training-level-1-mini-1/configlets/leaf4-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.24/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-1/configlets/spine1-base b/topologies/training-level-1-mini-1/configlets/spine1-base
deleted file mode 100644
index 5e9d072b1..000000000
--- a/topologies/training-level-1-mini-1/configlets/spine1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.11/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-1/configlets/spine2-base b/topologies/training-level-1-mini-1/configlets/spine2-base
deleted file mode 100644
index cc9d0bef1..000000000
--- a/topologies/training-level-1-mini-1/configlets/spine2-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname spine2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.12/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-1/configlets/spine3-base b/topologies/training-level-1-mini-1/configlets/spine3-base
deleted file mode 100644
index 853f6564a..000000000
--- a/topologies/training-level-1-mini-1/configlets/spine3-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.13/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-1/configlets/spine4-base b/topologies/training-level-1-mini-1/configlets/spine4-base
deleted file mode 100644
index 240453581..000000000
--- a/topologies/training-level-1-mini-1/configlets/spine4-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.14/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-1/files/.ansible.cfg b/topologies/training-level-1-mini-1/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-level-1-mini-1/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-level-1-mini-1/files/.screenrc b/topologies/training-level-1-mini-1/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-level-1-mini-1/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-level-1-mini-1/files/MenuOptions.yaml b/topologies/training-level-1-mini-1/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-level-1-mini-1/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-1/files/apps/coder/coder.yaml b/topologies/training-level-1-mini-1/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-level-1-mini-1/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-1/files/apps/coder/labfiles/.placeholder b/topologies/training-level-1-mini-1/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-level-1-mini-1/files/apps/gui/host5/arista/host-startup.sh b/topologies/training-level-1-mini-1/files/apps/gui/host5/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-mini-1/files/apps/gui/host5/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-1/files/apps/gui/host6/arista/host-startup.sh b/topologies/training-level-1-mini-1/files/apps/gui/host6/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-mini-1/files/apps/gui/host6/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-1/files/apps/gui/host7/arista/host-startup.sh b/topologies/training-level-1-mini-1/files/apps/gui/host7/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-mini-1/files/apps/gui/host7/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-1/files/apps/gui/host8/arista/host-startup.sh b/topologies/training-level-1-mini-1/files/apps/gui/host8/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-mini-1/files/apps/gui/host8/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-1/files/apps/ssh/web.json b/topologies/training-level-1-mini-1/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-level-1-mini-1/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-1/files/apps/uilanding/modules.yaml b/topologies/training-level-1-mini-1/files/apps/uilanding/modules.yaml
deleted file mode 100644
index c983faac0..000000000
--- a/topologies/training-level-1-mini-1/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "22,218,167,296"
- ip: "192.168.0.11"
- Spine2:
- coords: "356,215,517,300"
- ip: "192.168.0.12"
- Spine3:
- coords: "555,214,724,294"
- ip: "192.168.0.13"
- Spine4:
- coords: "925,218,1077,293"
- ip: "192.168.0.14"
- Leaf1:
- coords: "16,424,165,501"
- ip: "192.168.0.21"
- Leaf2:
- coords: "353,425,520,493"
- ip: "192.168.0.22"
- Leaf3:
- coords: "569,430,714,499"
- ip: "192.168.0.23"
- Leaf4:
- coords: "921,423,1074,502"
- ip: "192.168.0.24"
- BorderLeaf1:
- coords: "370,57,511,138"
- ip: "192.168.0.25"
- BorderLeaf2:
- coords: "561,65,726,145"
- ip: "192.168.0.26"
- Host1:
- coords: "15,534,149,611"
- ip: "192.168.0.51"
- Host2:
- coords: "365,539,504,619"
- ip: "192.168.0.52"
- Host3:
- coords: "566,542,711,620"
- ip: "192.168.0.53"
- Host4:
- coords: "929,542,1075,615"
- ip: "192.168.0.54"
- servers:
- Host5:
- coords: "182,545,307,636"
- ip: "192.168.0.101"
- port : 6001
- Host6:
- coords: "183,650,312,744"
- ip: "192.168.0.102"
- port : 6002
- Host7:
- coords: "747,545,875,636"
- ip: "192.168.0.103"
- port : 6003
- Host8:
- coords: "752,645,877,731"
- ip: "192.168.0.104"
- port : 6004
diff --git a/topologies/training-level-1-mini-1/files/apps/webui/.vncpass_clear b/topologies/training-level-1-mini-1/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-level-1-mini-1/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-1/files/cvp/cvp_info.yaml b/topologies/training-level-1-mini-1/files/cvp/cvp_info.yaml
deleted file mode 100644
index 7e796e77f..000000000
--- a/topologies/training-level-1-mini-1/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf:
- parent: Tenant
- nodes:
- - leaf1
- - leaf2
- - leaf3
- - leaf4
- Borderleaf:
- parent: Tenant
- nodes:
- - borderleaf1
- - borderleaf2
- Spine:
- parent: Tenant
- nodes:
- - spine1
- - spine2
- - spine3
- - spine4
- Hosts:
- parent: Tenant
- nodes:
- - host1
- - host2
- - host3
- - host4
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- spine1:
- - spine1-base
- spine2:
- - spine2-base
- spine3:
- - spine3-base
- spine4:
- - spine4-base
- leaf1:
- - leaf1-base
- leaf2:
- - leaf2-base
- borderleaf1:
- - borderleaf1-base
- borderleaf2:
- - borderleaf2-base
- leaf3:
- - leaf3-base
- leaf4:
- - leaf4-base
- host3:
- - host3-base
- host4:
- - host4-base
- host1:
- - host1-base
- host2:
- - host2-base
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-1/files/hosts b/topologies/training-level-1-mini-1/files/hosts
deleted file mode 100644
index b01ba8483..000000000
--- a/topologies/training-level-1-mini-1/files/hosts
+++ /dev/null
@@ -1,24 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.101 host5
-192.168.0.102 host6
-192.168.0.103 host7
-192.168.0.104 host8
-192.168.0.5 cvp
diff --git a/topologies/training-level-1-mini-1/files/menus/default.yaml b/topologies/training-level-1-mini-1/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-level-1-mini-1/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-1/files/menus/training-l3.yaml b/topologies/training-level-1-mini-1/files/menus/training-l3.yaml
deleted file mode 100644
index dc084582e..000000000
--- a/topologies/training-level-1-mini-1/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
----
- lab_list:
- reset:
- description: "Reset All Devices to Base Lab (reset)"
- labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
diff --git a/topologies/training-level-1-mini-1/files/scripts/Authenticate-CVP b/topologies/training-level-1-mini-1/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-level-1-mini-1/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-level-1-mini-1/files/scripts/Authenticate-CVP2 b/topologies/training-level-1-mini-1/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-1-mini-1/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-1-mini-1/files/scripts/Authenticate-CVP3 b/topologies/training-level-1-mini-1/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-level-1-mini-1/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-1-mini-1/files/scripts/Configlet1 b/topologies/training-level-1-mini-1/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-1-mini-1/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-1-mini-1/files/scripts/ConfigletChange b/topologies/training-level-1-mini-1/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-level-1-mini-1/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-1-mini-1/files/scripts/ConfigletDetail b/topologies/training-level-1-mini-1/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-level-1-mini-1/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-level-1-mini-1/files/scripts/ConfigletHistory b/topologies/training-level-1-mini-1/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-level-1-mini-1/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-level-1-mini-1/files/scripts/TaskBase b/topologies/training-level-1-mini-1/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-level-1-mini-1/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-mini-1/files/scripts/TaskCVP1 b/topologies/training-level-1-mini-1/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-level-1-mini-1/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-level-1-mini-1/files/scripts/TaskExecute b/topologies/training-level-1-mini-1/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-level-1-mini-1/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-level-1-mini-1/files/scripts/TaskLog b/topologies/training-level-1-mini-1/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-1-mini-1/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-mini-1/files/scripts/TaskLog1 b/topologies/training-level-1-mini-1/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-1-mini-1/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-mini-1/files/scripts/TaskLogView b/topologies/training-level-1-mini-1/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-level-1-mini-1/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-mini-1/files/scripts/TaskNote b/topologies/training-level-1-mini-1/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-level-1-mini-1/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-level-1-mini-1/labguides/.gitignore b/topologies/training-level-1-mini-1/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-level-1-mini-1/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-level-1-mini-1/labguides/Makefile b/topologies/training-level-1-mini-1/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-level-1-mini-1/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-1/labguides/readme.md b/topologies/training-level-1-mini-1/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-level-1-mini-1/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-1/labguides/source/_static/arista_logo.png b/topologies/training-level-1-mini-1/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-level-1-mini-1/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-1/labguides/source/_static/arista_logo_160by26.png b/topologies/training-level-1-mini-1/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-level-1-mini-1/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-1/labguides/source/_static/arista_logo_320by52.png b/topologies/training-level-1-mini-1/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-level-1-mini-1/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-1/labguides/source/_static/cloudvision-icon.png b/topologies/training-level-1-mini-1/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-level-1-mini-1/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-1/labguides/source/_static/logo.jpg b/topologies/training-level-1-mini-1/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-1-mini-1/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-1-mini-1/labguides/source/_static/my-styles.css b/topologies/training-level-1-mini-1/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-level-1-mini-1/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-level-1-mini-1/labguides/source/conf.py b/topologies/training-level-1-mini-1/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-level-1-mini-1/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-level-1-mini-1/labguides/source/connecting.rst b/topologies/training-level-1-mini-1/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-level-1-mini-1/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-level-1-mini-1/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-level-1-mini-1/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-level-1-mini-1/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-1/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-level-1-mini-1/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-level-1-mini-1/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-1/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-level-1-mini-1/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-level-1-mini-1/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-1/labguides/source/images/logo.jpg b/topologies/training-level-1-mini-1/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-1-mini-1/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-1-mini-1/labguides/source/index.rst b/topologies/training-level-1-mini-1/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-level-1-mini-1/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-level-1-mini-1/topo_build.yml b/topologies/training-level-1-mini-1/topo_build.yml
deleted file mode 100644
index 9ccba5edb..000000000
--- a/topologies/training-level-1-mini-1/topo_build.yml
+++ /dev/null
@@ -1,385 +0,0 @@
-host_cpu: 4
-cvp_cpu: 32
-cvp_ram: 42
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - spine1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet3
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet3
- port: Ethernet8
- - spine2:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet4
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet4
- port: Ethernet8
- - spine3:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: spine4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet5
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet5
- port: Ethernet8
- - spine4:
- ip_addr: 192.168.0.14
- sys_mac: 00:1c:73:b4:c6:01
- neighbors:
- - neighborDevice: spine3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet6
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet6
- port: Ethernet8
- - leaf1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet2
- port: Ethernet10
- - leaf3:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf4:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet2
- port: Ethernet10
- - borderleaf1:
- ip_addr: 192.168.0.25
- sys_mac: 00:1c:73:c5:c6:01
- neighbors:
- - neighborDevice: borderleaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet7
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet7
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet7
- port: Ethernet6
- - borderleaf2:
- ip_addr: 192.168.0.26
- sys_mac: 00:1c:73:c6:c6:01
- neighbors:
- - neighborDevice: borderleaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet8
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet8
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet8
- port: Ethernet6
- - host1:
- ip_addr: 192.168.0.51
- sys_mac: 00:1c:73:f1:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet7
- port: Ethernet2
- - host2:
- ip_addr: 192.168.0.52
- sys_mac: 00:1c:73:f2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet9
- port: Ethernet2
- - host3:
- ip_addr: 192.168.0.53
- sys_mac: 00:1c:73:f3:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet7
- port: Ethernet2
- - host4:
- ip_addr: 192.168.0.54
- sys_mac: 00:1c:73:f4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet9
- port: Ethernet2
-servers:
- - host5:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.101
- port : 6001
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet8
- port: Ethernet2
- - host6:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.102
- port : 6002
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet10
- port: Ethernet2
- - host7:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.103
- port : 6003
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet8
- port: Ethernet2
- - host8:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.104
- port : 6004
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet10
- port: Ethernet2
-additional_ssh_nodes:
-additional_clab_nodes:
diff --git a/topologies/training-level-1-mini-2/atd-topo-bkp-2.png b/topologies/training-level-1-mini-2/atd-topo-bkp-2.png
deleted file mode 100644
index ce621aec8..000000000
Binary files a/topologies/training-level-1-mini-2/atd-topo-bkp-2.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-2/atd-topo-bkp.png b/topologies/training-level-1-mini-2/atd-topo-bkp.png
deleted file mode 100644
index 4cc023b85..000000000
Binary files a/topologies/training-level-1-mini-2/atd-topo-bkp.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-2/atd-topo.png b/topologies/training-level-1-mini-2/atd-topo.png
deleted file mode 100644
index 53ba5d7d9..000000000
Binary files a/topologies/training-level-1-mini-2/atd-topo.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-2/configlets/ATD-INFRA b/topologies/training-level-1-mini-2/configlets/ATD-INFRA
deleted file mode 100644
index de87bc743..000000000
--- a/topologies/training-level-1-mini-2/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-level-1-mini-2/configlets/Base-Builder.py b/topologies/training-level-1-mini-2/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-level-1-mini-2/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-2/configlets/borderleaf1-base b/topologies/training-level-1-mini-2/configlets/borderleaf1-base
deleted file mode 100644
index e274c6eb4..000000000
--- a/topologies/training-level-1-mini-2/configlets/borderleaf1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.25/24
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
diff --git a/topologies/training-level-1-mini-2/configlets/borderleaf2-base b/topologies/training-level-1-mini-2/configlets/borderleaf2-base
deleted file mode 100644
index a7778e0b4..000000000
--- a/topologies/training-level-1-mini-2/configlets/borderleaf2-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.26/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-2/configlets/host1-base b/topologies/training-level-1-mini-2/configlets/host1-base
deleted file mode 100644
index 915d58edb..000000000
--- a/topologies/training-level-1-mini-2/configlets/host1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host1
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.51/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-2/configlets/host2-base b/topologies/training-level-1-mini-2/configlets/host2-base
deleted file mode 100644
index 63f0c9c38..000000000
--- a/topologies/training-level-1-mini-2/configlets/host2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host2
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.52/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-2/configlets/host3-base b/topologies/training-level-1-mini-2/configlets/host3-base
deleted file mode 100644
index 979a49b28..000000000
--- a/topologies/training-level-1-mini-2/configlets/host3-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host3
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.53/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-2/configlets/host4-base b/topologies/training-level-1-mini-2/configlets/host4-base
deleted file mode 100644
index f85e77a77..000000000
--- a/topologies/training-level-1-mini-2/configlets/host4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host4
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.54/24
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-
diff --git a/topologies/training-level-1-mini-2/configlets/leaf1-base b/topologies/training-level-1-mini-2/configlets/leaf1-base
deleted file mode 100644
index 7b316b33b..000000000
--- a/topologies/training-level-1-mini-2/configlets/leaf1-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.21/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-2/configlets/leaf2-base b/topologies/training-level-1-mini-2/configlets/leaf2-base
deleted file mode 100644
index 22fffb444..000000000
--- a/topologies/training-level-1-mini-2/configlets/leaf2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.22/24
-
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-2/configlets/leaf3-base b/topologies/training-level-1-mini-2/configlets/leaf3-base
deleted file mode 100644
index 37e7bc8d3..000000000
--- a/topologies/training-level-1-mini-2/configlets/leaf3-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.23/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-2/configlets/leaf4-base b/topologies/training-level-1-mini-2/configlets/leaf4-base
deleted file mode 100644
index f0cff7b25..000000000
--- a/topologies/training-level-1-mini-2/configlets/leaf4-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.24/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-2/configlets/spine1-base b/topologies/training-level-1-mini-2/configlets/spine1-base
deleted file mode 100644
index 5e9d072b1..000000000
--- a/topologies/training-level-1-mini-2/configlets/spine1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.11/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-2/configlets/spine2-base b/topologies/training-level-1-mini-2/configlets/spine2-base
deleted file mode 100644
index cc9d0bef1..000000000
--- a/topologies/training-level-1-mini-2/configlets/spine2-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname spine2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.12/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-2/configlets/spine3-base b/topologies/training-level-1-mini-2/configlets/spine3-base
deleted file mode 100644
index 853f6564a..000000000
--- a/topologies/training-level-1-mini-2/configlets/spine3-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.13/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-2/configlets/spine4-base b/topologies/training-level-1-mini-2/configlets/spine4-base
deleted file mode 100644
index 240453581..000000000
--- a/topologies/training-level-1-mini-2/configlets/spine4-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.14/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-1-mini-2/files/.ansible.cfg b/topologies/training-level-1-mini-2/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-level-1-mini-2/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-level-1-mini-2/files/.screenrc b/topologies/training-level-1-mini-2/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-level-1-mini-2/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-level-1-mini-2/files/MenuOptions.yaml b/topologies/training-level-1-mini-2/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-level-1-mini-2/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-2/files/apps/coder/coder.yaml b/topologies/training-level-1-mini-2/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-level-1-mini-2/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-2/files/apps/coder/labfiles/.placeholder b/topologies/training-level-1-mini-2/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-level-1-mini-2/files/apps/gui/host5/arista/host-startup.sh b/topologies/training-level-1-mini-2/files/apps/gui/host5/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-mini-2/files/apps/gui/host5/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-2/files/apps/gui/host6/arista/host-startup.sh b/topologies/training-level-1-mini-2/files/apps/gui/host6/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-mini-2/files/apps/gui/host6/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-2/files/apps/gui/host7/arista/host-startup.sh b/topologies/training-level-1-mini-2/files/apps/gui/host7/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-mini-2/files/apps/gui/host7/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-2/files/apps/gui/host8/arista/host-startup.sh b/topologies/training-level-1-mini-2/files/apps/gui/host8/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-1-mini-2/files/apps/gui/host8/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-2/files/apps/ssh/web.json b/topologies/training-level-1-mini-2/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-level-1-mini-2/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-2/files/apps/uilanding/modules.yaml b/topologies/training-level-1-mini-2/files/apps/uilanding/modules.yaml
deleted file mode 100644
index c983faac0..000000000
--- a/topologies/training-level-1-mini-2/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "22,218,167,296"
- ip: "192.168.0.11"
- Spine2:
- coords: "356,215,517,300"
- ip: "192.168.0.12"
- Spine3:
- coords: "555,214,724,294"
- ip: "192.168.0.13"
- Spine4:
- coords: "925,218,1077,293"
- ip: "192.168.0.14"
- Leaf1:
- coords: "16,424,165,501"
- ip: "192.168.0.21"
- Leaf2:
- coords: "353,425,520,493"
- ip: "192.168.0.22"
- Leaf3:
- coords: "569,430,714,499"
- ip: "192.168.0.23"
- Leaf4:
- coords: "921,423,1074,502"
- ip: "192.168.0.24"
- BorderLeaf1:
- coords: "370,57,511,138"
- ip: "192.168.0.25"
- BorderLeaf2:
- coords: "561,65,726,145"
- ip: "192.168.0.26"
- Host1:
- coords: "15,534,149,611"
- ip: "192.168.0.51"
- Host2:
- coords: "365,539,504,619"
- ip: "192.168.0.52"
- Host3:
- coords: "566,542,711,620"
- ip: "192.168.0.53"
- Host4:
- coords: "929,542,1075,615"
- ip: "192.168.0.54"
- servers:
- Host5:
- coords: "182,545,307,636"
- ip: "192.168.0.101"
- port : 6001
- Host6:
- coords: "183,650,312,744"
- ip: "192.168.0.102"
- port : 6002
- Host7:
- coords: "747,545,875,636"
- ip: "192.168.0.103"
- port : 6003
- Host8:
- coords: "752,645,877,731"
- ip: "192.168.0.104"
- port : 6004
diff --git a/topologies/training-level-1-mini-2/files/apps/webui/.vncpass_clear b/topologies/training-level-1-mini-2/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-level-1-mini-2/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-2/files/cvp/cvp_info.yaml b/topologies/training-level-1-mini-2/files/cvp/cvp_info.yaml
deleted file mode 100644
index 7e796e77f..000000000
--- a/topologies/training-level-1-mini-2/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf:
- parent: Tenant
- nodes:
- - leaf1
- - leaf2
- - leaf3
- - leaf4
- Borderleaf:
- parent: Tenant
- nodes:
- - borderleaf1
- - borderleaf2
- Spine:
- parent: Tenant
- nodes:
- - spine1
- - spine2
- - spine3
- - spine4
- Hosts:
- parent: Tenant
- nodes:
- - host1
- - host2
- - host3
- - host4
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- spine1:
- - spine1-base
- spine2:
- - spine2-base
- spine3:
- - spine3-base
- spine4:
- - spine4-base
- leaf1:
- - leaf1-base
- leaf2:
- - leaf2-base
- borderleaf1:
- - borderleaf1-base
- borderleaf2:
- - borderleaf2-base
- leaf3:
- - leaf3-base
- leaf4:
- - leaf4-base
- host3:
- - host3-base
- host4:
- - host4-base
- host1:
- - host1-base
- host2:
- - host2-base
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-2/files/hosts b/topologies/training-level-1-mini-2/files/hosts
deleted file mode 100644
index b01ba8483..000000000
--- a/topologies/training-level-1-mini-2/files/hosts
+++ /dev/null
@@ -1,24 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.101 host5
-192.168.0.102 host6
-192.168.0.103 host7
-192.168.0.104 host8
-192.168.0.5 cvp
diff --git a/topologies/training-level-1-mini-2/files/menus/default.yaml b/topologies/training-level-1-mini-2/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-level-1-mini-2/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-2/files/menus/training-l3.yaml b/topologies/training-level-1-mini-2/files/menus/training-l3.yaml
deleted file mode 100644
index dc084582e..000000000
--- a/topologies/training-level-1-mini-2/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
----
- lab_list:
- reset:
- description: "Reset All Devices to Base Lab (reset)"
- labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
diff --git a/topologies/training-level-1-mini-2/files/scripts/Authenticate-CVP b/topologies/training-level-1-mini-2/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-level-1-mini-2/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-level-1-mini-2/files/scripts/Authenticate-CVP2 b/topologies/training-level-1-mini-2/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-1-mini-2/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-1-mini-2/files/scripts/Authenticate-CVP3 b/topologies/training-level-1-mini-2/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-level-1-mini-2/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-1-mini-2/files/scripts/Configlet1 b/topologies/training-level-1-mini-2/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-1-mini-2/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-1-mini-2/files/scripts/ConfigletChange b/topologies/training-level-1-mini-2/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-level-1-mini-2/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-1-mini-2/files/scripts/ConfigletDetail b/topologies/training-level-1-mini-2/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-level-1-mini-2/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-level-1-mini-2/files/scripts/ConfigletHistory b/topologies/training-level-1-mini-2/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-level-1-mini-2/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-level-1-mini-2/files/scripts/TaskBase b/topologies/training-level-1-mini-2/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-level-1-mini-2/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-mini-2/files/scripts/TaskCVP1 b/topologies/training-level-1-mini-2/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-level-1-mini-2/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-level-1-mini-2/files/scripts/TaskExecute b/topologies/training-level-1-mini-2/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-level-1-mini-2/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-level-1-mini-2/files/scripts/TaskLog b/topologies/training-level-1-mini-2/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-1-mini-2/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-mini-2/files/scripts/TaskLog1 b/topologies/training-level-1-mini-2/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-1-mini-2/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-mini-2/files/scripts/TaskLogView b/topologies/training-level-1-mini-2/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-level-1-mini-2/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-1-mini-2/files/scripts/TaskNote b/topologies/training-level-1-mini-2/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-level-1-mini-2/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-level-1-mini-2/labguides/.gitignore b/topologies/training-level-1-mini-2/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-level-1-mini-2/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-level-1-mini-2/labguides/Makefile b/topologies/training-level-1-mini-2/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-level-1-mini-2/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-2/labguides/readme.md b/topologies/training-level-1-mini-2/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-level-1-mini-2/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-level-1-mini-2/labguides/source/_static/arista_logo.png b/topologies/training-level-1-mini-2/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-level-1-mini-2/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-2/labguides/source/_static/arista_logo_160by26.png b/topologies/training-level-1-mini-2/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-level-1-mini-2/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-2/labguides/source/_static/arista_logo_320by52.png b/topologies/training-level-1-mini-2/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-level-1-mini-2/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-2/labguides/source/_static/cloudvision-icon.png b/topologies/training-level-1-mini-2/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-level-1-mini-2/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-2/labguides/source/_static/logo.jpg b/topologies/training-level-1-mini-2/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-1-mini-2/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-1-mini-2/labguides/source/_static/my-styles.css b/topologies/training-level-1-mini-2/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-level-1-mini-2/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-level-1-mini-2/labguides/source/conf.py b/topologies/training-level-1-mini-2/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-level-1-mini-2/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-level-1-mini-2/labguides/source/connecting.rst b/topologies/training-level-1-mini-2/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-level-1-mini-2/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-level-1-mini-2/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-level-1-mini-2/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-level-1-mini-2/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-2/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-level-1-mini-2/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-level-1-mini-2/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-2/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-level-1-mini-2/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-level-1-mini-2/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-level-1-mini-2/labguides/source/images/logo.jpg b/topologies/training-level-1-mini-2/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-1-mini-2/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-1-mini-2/labguides/source/index.rst b/topologies/training-level-1-mini-2/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-level-1-mini-2/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-level-1-mini-2/topo_build.yml b/topologies/training-level-1-mini-2/topo_build.yml
deleted file mode 100644
index 9ccba5edb..000000000
--- a/topologies/training-level-1-mini-2/topo_build.yml
+++ /dev/null
@@ -1,385 +0,0 @@
-host_cpu: 4
-cvp_cpu: 32
-cvp_ram: 42
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - spine1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet3
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet3
- port: Ethernet8
- - spine2:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet4
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet4
- port: Ethernet8
- - spine3:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: spine4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet5
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet5
- port: Ethernet8
- - spine4:
- ip_addr: 192.168.0.14
- sys_mac: 00:1c:73:b4:c6:01
- neighbors:
- - neighborDevice: spine3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet6
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet6
- port: Ethernet8
- - leaf1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet2
- port: Ethernet10
- - leaf3:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf4:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet2
- port: Ethernet10
- - borderleaf1:
- ip_addr: 192.168.0.25
- sys_mac: 00:1c:73:c5:c6:01
- neighbors:
- - neighborDevice: borderleaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet7
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet7
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet7
- port: Ethernet6
- - borderleaf2:
- ip_addr: 192.168.0.26
- sys_mac: 00:1c:73:c6:c6:01
- neighbors:
- - neighborDevice: borderleaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet8
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet8
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet8
- port: Ethernet6
- - host1:
- ip_addr: 192.168.0.51
- sys_mac: 00:1c:73:f1:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet7
- port: Ethernet2
- - host2:
- ip_addr: 192.168.0.52
- sys_mac: 00:1c:73:f2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet9
- port: Ethernet2
- - host3:
- ip_addr: 192.168.0.53
- sys_mac: 00:1c:73:f3:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet7
- port: Ethernet2
- - host4:
- ip_addr: 192.168.0.54
- sys_mac: 00:1c:73:f4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet9
- port: Ethernet2
-servers:
- - host5:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.101
- port : 6001
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet8
- port: Ethernet2
- - host6:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.102
- port : 6002
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet10
- port: Ethernet2
- - host7:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.103
- port : 6003
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet8
- port: Ethernet2
- - host8:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.104
- port : 6004
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet10
- port: Ethernet2
-additional_ssh_nodes:
-additional_clab_nodes:
diff --git a/topologies/training-level-2-cl/atd-topo-bkp-2.png b/topologies/training-level-2-cl/atd-topo-bkp-2.png
deleted file mode 100644
index ce621aec8..000000000
Binary files a/topologies/training-level-2-cl/atd-topo-bkp-2.png and /dev/null differ
diff --git a/topologies/training-level-2-cl/atd-topo-bkp.png b/topologies/training-level-2-cl/atd-topo-bkp.png
deleted file mode 100644
index 4cc023b85..000000000
Binary files a/topologies/training-level-2-cl/atd-topo-bkp.png and /dev/null differ
diff --git a/topologies/training-level-2-cl/atd-topo.png b/topologies/training-level-2-cl/atd-topo.png
deleted file mode 100644
index 53ba5d7d9..000000000
Binary files a/topologies/training-level-2-cl/atd-topo.png and /dev/null differ
diff --git a/topologies/training-level-2-cl/configlets/ACL-Start-BorderLeaf1 b/topologies/training-level-2-cl/configlets/ACL-Start-BorderLeaf1
deleted file mode 100644
index a81da3e50..000000000
--- a/topologies/training-level-2-cl/configlets/ACL-Start-BorderLeaf1
+++ /dev/null
@@ -1,26 +0,0 @@
-
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.5.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.5.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.5.9/30
- no shutdown
-
-int e6
- no switchport
- ip address 10.10.5.13/30
- no shutdown
-
-int lo0
- ip address 10.51.51.51/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/ACL-Start-BorderLeaf2 b/topologies/training-level-2-cl/configlets/ACL-Start-BorderLeaf2
deleted file mode 100644
index 76a5a1feb..000000000
--- a/topologies/training-level-2-cl/configlets/ACL-Start-BorderLeaf2
+++ /dev/null
@@ -1,25 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.6.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.6.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.6.9/30
- no shutdown
-
-int e6
- no switchport
- ip address 10.10.6.13/30
- no shutdown
-
-int lo0
- ip address 10.52.52.52/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/ACL-Start-Leaf1 b/topologies/training-level-2-cl/configlets/ACL-Start-Leaf1
deleted file mode 100644
index a3e834bb0..000000000
--- a/topologies/training-level-2-cl/configlets/ACL-Start-Leaf1
+++ /dev/null
@@ -1,26 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.2/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.2/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.2/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.2/30
- no shutdown
-
-int lo0
- ip address 10.11.11.11/32
diff --git a/topologies/training-level-2-cl/configlets/ACL-Start-Leaf2 b/topologies/training-level-2-cl/configlets/ACL-Start-Leaf2
deleted file mode 100644
index ddbf8ae61..000000000
--- a/topologies/training-level-2-cl/configlets/ACL-Start-Leaf2
+++ /dev/null
@@ -1,26 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.6/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.6/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.6/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.6/30
- no shutdown
-
-int lo0
- ip address 10.12.12.12/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/ACL-Start-Leaf3 b/topologies/training-level-2-cl/configlets/ACL-Start-Leaf3
deleted file mode 100644
index c41dbf772..000000000
--- a/topologies/training-level-2-cl/configlets/ACL-Start-Leaf3
+++ /dev/null
@@ -1,26 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.10/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.10/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.10/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.10/30
- no shutdown
-
-int lo0
- ip address 10.13.13.13/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/ACL-Start-Leaf4 b/topologies/training-level-2-cl/configlets/ACL-Start-Leaf4
deleted file mode 100644
index 4a6f65cc0..000000000
--- a/topologies/training-level-2-cl/configlets/ACL-Start-Leaf4
+++ /dev/null
@@ -1,26 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.14/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.14/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.14/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.14/30
- no shutdown
-
-int lo0
- ip address 10.14.14.14/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/ACL-Start-Spine1 b/topologies/training-level-2-cl/configlets/ACL-Start-Spine1
deleted file mode 100644
index 5d4bdbdc0..000000000
--- a/topologies/training-level-2-cl/configlets/ACL-Start-Spine1
+++ /dev/null
@@ -1,36 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.1.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.1.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.1.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.2/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.2/30
- no shutdown
-
-int lo0
- ip address 10.21.21.21/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/ACL-Start-Spine2 b/topologies/training-level-2-cl/configlets/ACL-Start-Spine2
deleted file mode 100644
index 813e00769..000000000
--- a/topologies/training-level-2-cl/configlets/ACL-Start-Spine2
+++ /dev/null
@@ -1,36 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.2.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.2.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.2.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.6/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.6/30
- no shutdown
-
-int lo0
- ip address 10.22.22.22/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/ACL-Start-Spine3 b/topologies/training-level-2-cl/configlets/ACL-Start-Spine3
deleted file mode 100644
index c626a1a48..000000000
--- a/topologies/training-level-2-cl/configlets/ACL-Start-Spine3
+++ /dev/null
@@ -1,36 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.3.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.3.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.3.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.10/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.10/30
- no shutdown
-
-int lo0
- ip address 10.23.23.23/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/ACL-Start-Spine4 b/topologies/training-level-2-cl/configlets/ACL-Start-Spine4
deleted file mode 100644
index a82f28e11..000000000
--- a/topologies/training-level-2-cl/configlets/ACL-Start-Spine4
+++ /dev/null
@@ -1,36 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.4.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.4.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.4.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.14/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.14/30
- no shutdown
-
-int lo0
- ip address 10.24.24.24/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/ATD-INFRA b/topologies/training-level-2-cl/configlets/ATD-INFRA
deleted file mode 100644
index de87bc743..000000000
--- a/topologies/training-level-2-cl/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-level-2-cl/configlets/Base-Builder.py b/topologies/training-level-2-cl/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-level-2-cl/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/BorderLeaf1-OSPFMultiArea-Start b/topologies/training-level-2-cl/configlets/BorderLeaf1-OSPFMultiArea-Start
deleted file mode 100644
index 3aa7a825d..000000000
--- a/topologies/training-level-2-cl/configlets/BorderLeaf1-OSPFMultiArea-Start
+++ /dev/null
@@ -1,38 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.5.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.5.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.5.9/30
- no shutdown
-
-int e6
- no switchport
- ip address 10.10.5.13/30
- no shutdown
-
-int lo0
- ip address 10.51.51.51/32
-
- ip routing
-
- router ospf 1
- router-id 10.51.51.51
- passive-interface default
- no passive-interface Ethernet 3-6
- network 0.0.0.0/0 area 0
-
-
-interface Ethernet 3-6
- ip ospf network point-to-point
- no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/BorderLeaf2-OSPFMultiArea-Start b/topologies/training-level-2-cl/configlets/BorderLeaf2-OSPFMultiArea-Start
deleted file mode 100644
index ae068e8be..000000000
--- a/topologies/training-level-2-cl/configlets/BorderLeaf2-OSPFMultiArea-Start
+++ /dev/null
@@ -1,39 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.6.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.6.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.6.9/30
- no shutdown
-
-int e6
- no switchport
- ip address 10.10.6.13/30
- no shutdown
-
-int lo0
- ip address 10.52.52.52/32
-
-
- ip routing
-
- router ospf 1
- router-id 10.51.51.51
- passive-interface default
- no passive-interface Ethernet 3-6
- network 0.0.0.0/0 area 0
-
-
-interface Ethernet 3-6
- ip ospf network point-to-point
- no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/Leaf1-OSPFMultiaArea-Start b/topologies/training-level-2-cl/configlets/Leaf1-OSPFMultiaArea-Start
deleted file mode 100644
index 6442ec8b5..000000000
--- a/topologies/training-level-2-cl/configlets/Leaf1-OSPFMultiaArea-Start
+++ /dev/null
@@ -1,32 +0,0 @@
-interface Ethernet1
-shutdown
-!
-interface Ethernet2
-shutdown
-!
-interface Ethernet3
-no switchport
-ip address 10.10.1.2/30
-!
-interface Ethernet4
-no switchport
-ip address 10.10.2.2/30
-!
-interface Ethernet5
-no switchport
-ip address 10.10.3.2/30
-!
-interface Ethernet6
-no switchport
-ip address 10.10.4.2/30
-!
-interface Ethernet7
-!
-interface Ethernet8
-!
-interface Ethernet9
-!
-interface Ethernet10
-!
-interface Loopback0
-ip address 10.11.11.11/32
diff --git a/topologies/training-level-2-cl/configlets/Leaf2-OSPFMultiArea-Start b/topologies/training-level-2-cl/configlets/Leaf2-OSPFMultiArea-Start
deleted file mode 100644
index 90a6d187f..000000000
--- a/topologies/training-level-2-cl/configlets/Leaf2-OSPFMultiArea-Start
+++ /dev/null
@@ -1,30 +0,0 @@
-interface Ethernet1
-shutdown
-!
-interface Ethernet2
-shutdown
-!
-interface Ethernet3
-no switchport
-ip address 10.10.1.6/30
-!
-interface Ethernet4
-no switchport
-ip address 10.10.2.6/30
-!
-interface Ethernet5
-no switchport
-ip address 10.10.3.6/30
-!
-interface Ethernet6
-no switchport
-ip address 10.10.4.6/30
-!
-interface Ethernet7
-!
-interface Ethernet8
-!
-interface Ethernet9
-!
-interface Ethernet10
-!
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/Leaf3-OSPFMultiArea-Start b/topologies/training-level-2-cl/configlets/Leaf3-OSPFMultiArea-Start
deleted file mode 100644
index b5165633f..000000000
--- a/topologies/training-level-2-cl/configlets/Leaf3-OSPFMultiArea-Start
+++ /dev/null
@@ -1,49 +0,0 @@
-interface Ethernet1
-shutdown
-!
-interface Ethernet2
-shutdown
-!
-interface Ethernet3
-no switchport
-ip address 10.10.1.10/30
-ip ospf network point-to-point
-!
-interface Ethernet4
-no switchport
-ip address 10.10.2.10/30
-ip ospf network point-to-point
-!
-interface Ethernet5
-no switchport
-ip address 10.10.3.10/30
-ip ospf network point-to-point
-!
-interface Ethernet6
-no switchport
-ip address 10.10.4.10/30
-ip ospf network point-to-point
-!
-interface Ethernet7
-!
-interface Ethernet8
-!
-interface Ethernet9
-!
-interface Ethernet10
-!
-interface Loopback0
-ip address 10.13.13.13/32
-!
-!
-ip routing
-!
-router ospf 1
-router-id 10.13.13.13
-passive-interface default
-no passive-interface Ethernet3
-no passive-interface Ethernet4
-no passive-interface Ethernet5
-no passive-interface Ethernet6
-network 0.0.0.0/0 area 0.0.0.0
-max-lsa 12000
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/Leaf4-OSPFMultiArea-Start b/topologies/training-level-2-cl/configlets/Leaf4-OSPFMultiArea-Start
deleted file mode 100644
index 38ea117f3..000000000
--- a/topologies/training-level-2-cl/configlets/Leaf4-OSPFMultiArea-Start
+++ /dev/null
@@ -1,40 +0,0 @@
-
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.14/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.14/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.14/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.14/30
- no shutdown
-
-int lo0
- ip address 10.14.14.14/32
-
-ip routing
-
- router ospf 1
- router-id 10.14.14.14
- passive-interface default
- no passive-interface Ethernet 3-6
- network 0.0.0.0/0 area 0
-
-
-interface Ethernet 3-6
- ip ospf network point-to-point
- no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/NSSA-Start-BorderLeaf1 b/topologies/training-level-2-cl/configlets/NSSA-Start-BorderLeaf1
deleted file mode 100644
index 3f328e044..000000000
--- a/topologies/training-level-2-cl/configlets/NSSA-Start-BorderLeaf1
+++ /dev/null
@@ -1,38 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.5.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.5.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.5.9/30
- no shutdown
-
-int e6
- no switchport
- ip address 10.10.5.13/30
- no shutdown
-
-int lo0
- ip address 10.51.51.51/32
-
-
- ip routing
-
- router ospf 1
- router-id 10.51.51.51
- passive-interface default
- no passive-interface Ethernet 3-6
- network 0.0.0.0/0 area 0
-
-interface Ethernet 3-6
- ip ospf network point-to-point
- no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/NSSA-Start-BorderLeaf2 b/topologies/training-level-2-cl/configlets/NSSA-Start-BorderLeaf2
deleted file mode 100644
index eb8a5d200..000000000
--- a/topologies/training-level-2-cl/configlets/NSSA-Start-BorderLeaf2
+++ /dev/null
@@ -1,39 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.6.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.6.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.6.9/30
- no shutdown
-
-int e6
- no switchport
- ip address 10.10.6.13/30
- no shutdown
-
-int lo0
- ip address 10.52.52.52/32
-
-
- ip routing
-
- router ospf 1
- router-id 10.52.52.52
- passive-interface default
- no passive-interface Ethernet 3-6
- network 0.0.0.0/0 area 0
-
-
-interface Ethernet 3-6
- ip ospf network point-to-point
- no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/NSSA-Start-Leaf1 b/topologies/training-level-2-cl/configlets/NSSA-Start-Leaf1
deleted file mode 100644
index a717dd8f5..000000000
--- a/topologies/training-level-2-cl/configlets/NSSA-Start-Leaf1
+++ /dev/null
@@ -1,26 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.2/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.2/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.2/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.2/30
- no shutdown
-
-int lo0
- ip address 10.11.11.11/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/NSSA-Start-Leaf2 b/topologies/training-level-2-cl/configlets/NSSA-Start-Leaf2
deleted file mode 100644
index b88633af6..000000000
--- a/topologies/training-level-2-cl/configlets/NSSA-Start-Leaf2
+++ /dev/null
@@ -1,39 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.6/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.6/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.6/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.6/30
- no shutdown
-
-int lo0
- ip address 10.12.12.12/32
-
-ip routing
-
-router ospf 1
- router-id 10.13.13.13
- passive-interface default
- no passive-interface Ethernet 3-6
- network 0.0.0.0/0 area 0
-
-
-interface Ethernet 3-6
-ip ospf network point-to-point
-no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/NSSA-Start-Leaf3 b/topologies/training-level-2-cl/configlets/NSSA-Start-Leaf3
deleted file mode 100644
index a758d383d..000000000
--- a/topologies/training-level-2-cl/configlets/NSSA-Start-Leaf3
+++ /dev/null
@@ -1,43 +0,0 @@
-
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.2/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.2/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.2/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.2/30
- no shutdown
-
-int e7,8,9,10
- shutdown
-
-int lo0
- ip address 10.11.11.11/32
-
-ip routing
-
-router ospf 1
- router-id 10.13.13.13
- passive-interface default
- no passive-interface Ethernet 3-6
- network 0.0.0.0/0 area 0
-
-
-interface Ethernet 3-6
-ip ospf network point-to-point
-no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/NSSA-Start-Leaf4 b/topologies/training-level-2-cl/configlets/NSSA-Start-Leaf4
deleted file mode 100644
index 117c5085e..000000000
--- a/topologies/training-level-2-cl/configlets/NSSA-Start-Leaf4
+++ /dev/null
@@ -1,39 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.14/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.14/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.14/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.14/30
- no shutdown
-
-int lo0
- ip address 10.14.14.14/32
-
- ip routing
-
- router ospf 1
- router-id 10.14.14.14
- passive-interface default
- no passive-interface Ethernet 3-6
- network 0.0.0.0/0 area 0
-
-
-interface Ethernet 3-6
- ip ospf network point-to-point
- no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/NSSA-Start-Spine1 b/topologies/training-level-2-cl/configlets/NSSA-Start-Spine1
deleted file mode 100644
index 591bd11ac..000000000
--- a/topologies/training-level-2-cl/configlets/NSSA-Start-Spine1
+++ /dev/null
@@ -1,49 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.1.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.1.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.1.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.2/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.2/30
- no shutdown
-
-int lo0
- ip address 10.21.21.21/32
-
-
- ip routing
-
- router ospf 1
- router-id 10.21.21.21
- passive-interface default
- no passive-interface Ethernet 3-8
- network 0.0.0.0/0 area 0
-
-interface Ethernet 3-8
- ip ospf network point-to-point
- no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/NSSA-Start-Spine2 b/topologies/training-level-2-cl/configlets/NSSA-Start-Spine2
deleted file mode 100644
index 641e07d03..000000000
--- a/topologies/training-level-2-cl/configlets/NSSA-Start-Spine2
+++ /dev/null
@@ -1,49 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.2.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.2.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.2.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.6/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.6/30
- no shutdown
-
-int lo0
- ip address 10.22.22.22/32
-
- ip routing
-
- router ospf 1
- router-id 10.22.22.22
- passive-interface default
- no passive-interface Ethernet 3-8
- network 0.0.0.0/0 area 0
-
-
-interface Ethernet 3-8
- ip ospf network point-to-point
- no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/NSSA-Start-Spine3 b/topologies/training-level-2-cl/configlets/NSSA-Start-Spine3
deleted file mode 100644
index 3b4c694c3..000000000
--- a/topologies/training-level-2-cl/configlets/NSSA-Start-Spine3
+++ /dev/null
@@ -1,49 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.3.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.3.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.3.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.10/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.10/30
- no shutdown
-
-int lo0
- ip address 10.23.23.23/32
-
- ip routing
-
- router ospf 1
- router-id 10.23.23.23
- passive-interface default
- no passive-interface Ethernet 3-8
- network 0.0.0.0/0 area 0
-
-
-interface Ethernet 3-8
- ip ospf network point-to-point
- no shut
diff --git a/topologies/training-level-2-cl/configlets/NSSA-Start-Spine4 b/topologies/training-level-2-cl/configlets/NSSA-Start-Spine4
deleted file mode 100644
index c05ddea23..000000000
--- a/topologies/training-level-2-cl/configlets/NSSA-Start-Spine4
+++ /dev/null
@@ -1,49 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.4.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.4.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.4.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.14/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.14/30
- no shutdown
-
-int lo0
- ip address 10.24.24.24/32
-
- ip routing
-
- router ospf 1
- router-id 10.24.24.24
- passive-interface default
- no passive-interface Ethernet 3-8
- network 0.0.0.0/0 area 0
-
-
-interface Ethernet 3-8
- ip ospf network point-to-point
- no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/Spine1-OSPFMultiArea-Start b/topologies/training-level-2-cl/configlets/Spine1-OSPFMultiArea-Start
deleted file mode 100644
index 26a8c1eb0..000000000
--- a/topologies/training-level-2-cl/configlets/Spine1-OSPFMultiArea-Start
+++ /dev/null
@@ -1,49 +0,0 @@
-
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.1.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.1.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.1.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.2/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.2/30
- no shutdown
-
-int lo0
- ip address 10.21.21.21/32
-
-ip routing
-
- router ospf 1
- router-id 10.21.21.21
- passive-interface default
- no passive-interface Ethernet 3-8
- network 0.0.0.0/0 area 0
-
-interface Ethernet 3-8
- ip ospf network point-to-point
- no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/Spine2-OSPFMultiArea-Start b/topologies/training-level-2-cl/configlets/Spine2-OSPFMultiArea-Start
deleted file mode 100644
index 641e07d03..000000000
--- a/topologies/training-level-2-cl/configlets/Spine2-OSPFMultiArea-Start
+++ /dev/null
@@ -1,49 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.2.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.2.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.2.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.6/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.6/30
- no shutdown
-
-int lo0
- ip address 10.22.22.22/32
-
- ip routing
-
- router ospf 1
- router-id 10.22.22.22
- passive-interface default
- no passive-interface Ethernet 3-8
- network 0.0.0.0/0 area 0
-
-
-interface Ethernet 3-8
- ip ospf network point-to-point
- no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/Spine3-OSPFMultiArea-Start b/topologies/training-level-2-cl/configlets/Spine3-OSPFMultiArea-Start
deleted file mode 100644
index ac3708ce9..000000000
--- a/topologies/training-level-2-cl/configlets/Spine3-OSPFMultiArea-Start
+++ /dev/null
@@ -1,49 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.3.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.3.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.3.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.10/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.10/30
- no shutdown
-
-int lo0
- ip address 10.23.23.23/32
-
- ip routing
-
- router ospf 1
- router-id 10.23.23.23
- passive-interface default
- no passive-interface Ethernet 3-8
- network 0.0.0.0/0 area 0
-
-
-interface Ethernet 3-8
- ip ospf network point-to-point
- no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/Spine4-OSPFMultiArea-Start b/topologies/training-level-2-cl/configlets/Spine4-OSPFMultiArea-Start
deleted file mode 100644
index 0cafd6461..000000000
--- a/topologies/training-level-2-cl/configlets/Spine4-OSPFMultiArea-Start
+++ /dev/null
@@ -1,50 +0,0 @@
-
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.4.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.4.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.4.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.14/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.14/30
- no shutdown
-
-int lo0
- ip address 10.24.24.24/32
-
- ip routing
-
- router ospf 1
- router-id 10.24.24.24
- passive-interface default
- no passive-interface Ethernet 3-8
- network 0.0.0.0/0 area 0
-
-
-interface Ethernet 3-8
- ip ospf network point-to-point
- no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleACL-Start-BorderLeaf1 b/topologies/training-level-2-cl/configlets/TroubleACL-Start-BorderLeaf1
deleted file mode 100644
index a81da3e50..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleACL-Start-BorderLeaf1
+++ /dev/null
@@ -1,26 +0,0 @@
-
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.5.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.5.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.5.9/30
- no shutdown
-
-int e6
- no switchport
- ip address 10.10.5.13/30
- no shutdown
-
-int lo0
- ip address 10.51.51.51/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleACL-Start-BorderLeaf2 b/topologies/training-level-2-cl/configlets/TroubleACL-Start-BorderLeaf2
deleted file mode 100644
index 76a5a1feb..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleACL-Start-BorderLeaf2
+++ /dev/null
@@ -1,25 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.6.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.6.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.6.9/30
- no shutdown
-
-int e6
- no switchport
- ip address 10.10.6.13/30
- no shutdown
-
-int lo0
- ip address 10.52.52.52/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Leaf1 b/topologies/training-level-2-cl/configlets/TroubleACL-Start-Leaf1
deleted file mode 100644
index e5d0d0a60..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Leaf1
+++ /dev/null
@@ -1,30 +0,0 @@
-
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.2/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.2/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.2/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.2/30
- no shutdown
-
-int e7,8,9,10
- shutdown
-
-int lo0
- ip address 10.11.11.11/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Leaf2 b/topologies/training-level-2-cl/configlets/TroubleACL-Start-Leaf2
deleted file mode 100644
index ddbf8ae61..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Leaf2
+++ /dev/null
@@ -1,26 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.6/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.6/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.6/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.6/30
- no shutdown
-
-int lo0
- ip address 10.12.12.12/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Leaf3 b/topologies/training-level-2-cl/configlets/TroubleACL-Start-Leaf3
deleted file mode 100644
index c41dbf772..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Leaf3
+++ /dev/null
@@ -1,26 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.10/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.10/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.10/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.10/30
- no shutdown
-
-int lo0
- ip address 10.13.13.13/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Leaf4 b/topologies/training-level-2-cl/configlets/TroubleACL-Start-Leaf4
deleted file mode 100644
index 4a6f65cc0..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Leaf4
+++ /dev/null
@@ -1,26 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.14/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.14/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.14/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.14/30
- no shutdown
-
-int lo0
- ip address 10.14.14.14/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Spine1 b/topologies/training-level-2-cl/configlets/TroubleACL-Start-Spine1
deleted file mode 100644
index fe955e2c6..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Spine1
+++ /dev/null
@@ -1,43 +0,0 @@
-
-int e1,2
-shutdown
-
-int e3
-no switchport
-ip address 10.10.1.1/30
-no shutdown
-
-int e4
- no switchport
- ip address 10.10.1.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.1.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.1.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.2/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.2/30
- no shutdown
-
-int lo0
- ip address 10.21.21.21/32
-
-ip access-list ServiceControl
- 10 deny ip host 10.10.1.2 host 10.10.1.1 log
-
-management ssh
- ip access-group ServiceControl in
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Spine2 b/topologies/training-level-2-cl/configlets/TroubleACL-Start-Spine2
deleted file mode 100644
index 813e00769..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Spine2
+++ /dev/null
@@ -1,36 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.2.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.2.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.2.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.6/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.6/30
- no shutdown
-
-int lo0
- ip address 10.22.22.22/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Spine3 b/topologies/training-level-2-cl/configlets/TroubleACL-Start-Spine3
deleted file mode 100644
index c626a1a48..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Spine3
+++ /dev/null
@@ -1,36 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.3.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.3.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.3.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.10/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.10/30
- no shutdown
-
-int lo0
- ip address 10.23.23.23/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Spine4 b/topologies/training-level-2-cl/configlets/TroubleACL-Start-Spine4
deleted file mode 100644
index a82f28e11..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleACL-Start-Spine4
+++ /dev/null
@@ -1,36 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.4.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.4.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.4.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.14/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.14/30
- no shutdown
-
-int lo0
- ip address 10.24.24.24/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleBGP-BorderLeaf1 b/topologies/training-level-2-cl/configlets/TroubleBGP-BorderLeaf1
deleted file mode 100644
index 33c1963cb..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleBGP-BorderLeaf1
+++ /dev/null
@@ -1,48 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.5.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.5.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.5.9/30
- no shutdown
-
-int e6
- no switchport
- ip address 10.10.5.13/30
- no shutdown
-
-int lo0
- ip address 10.51.51.51/32
-
-
-ip routing
-
-router bgp 65500
-
- router-id 10.51.51.51
- maximum-paths 4 ecmp 4
- neighbor Spines peer group
- neighbor Spines remote-as 65100
- neighbor Spines allowas-in 1
- neighbor 10.10.5.2 peer group Spines
- neighbor 10.10.5.6 peer group Spines
- neighbor 10.10.5.10 peer group Spines
- neighbor 10.10.5.14 peer group Spines
-
- neighbor 10.10.5.2 description Spine1
- neighbor 10.10.5.6 description Spine2
- neighbor 10.10.5.10 description Spine3
- neighbor 10.10.5.14 description Spine4
-
- network 10.51.51.51/32
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleBGP-BorderLeaf2 b/topologies/training-level-2-cl/configlets/TroubleBGP-BorderLeaf2
deleted file mode 100644
index e59c76002..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleBGP-BorderLeaf2
+++ /dev/null
@@ -1,48 +0,0 @@
-
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.6.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.6.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.6.9/30
- no shutdown
-
-int e6
- no switchport
- ip address 10.10.6.13/30
- no shutdown
-
-int lo0
- ip address 10.52.52.52/32
-
-ip routing
-
-router bgp 65500
-
- router-id 10.52.52.52
- maximum-paths 4 ecmp 4
- neighbor Spines peer group
- neighbor Spines remote-as 65100
- neighbor Spines allowas-in 1
- neighbor 10.10.6.2 peer group Spines
- neighbor 10.10.6.6 peer group Spines
- neighbor 10.10.6.10 peer group Spines
- neighbor 10.10.6.14 peer group Spines
-
- neighbor 10.10.6.2 description Spine1
- neighbor 10.10.6.6 description Spine2
- neighbor 10.10.6.10 description Spine3
- neighbor 10.10.6.14 description Spine4
-
- network 10.52.52.52/32
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleBGP-Leaf4 b/topologies/training-level-2-cl/configlets/TroubleBGP-Leaf4
deleted file mode 100644
index c7ce728e5..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleBGP-Leaf4
+++ /dev/null
@@ -1,61 +0,0 @@
-
-vlan 104
-!
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- shutdown
-!
-interface Ethernet3
- no switchport
- ip address 10.10.1.14/30
-!
-interface Ethernet4
- no switchport
- ip address 10.10.2.14/30
-!
-interface Ethernet5
- no switchport
- ip address 10.10.3.14/30
-!
-interface Ethernet6
- no switchport
- ip address 10.10.4.14/30
-!
-interface Ethernet7
-!
-interface Ethernet8
-!
-interface Ethernet9
-!
-interface Ethernet10
-!
-interface Loopback0
- ip address 10.14.14.14/32
-
-!
-interface Vlan104
- no autostate
- ip address 172.16.104.1/24
-!
-ip routing
-
-
-!
-router bgp 65004
- router-id 10.14.14.14
- maximum-paths 4 ecmp 4
- neighbor Spines peer group
- neighbor Spines remote-as 65100
- neighbor 10.10.1.13 peer group Spines
- neighbor 10.10.1.13 description Spine1
- neighbor 10.10.2.13 peer group Spines
- neighbor 10.10.2.13 description Spine2
- neighbor 10.10.3.13 peer group Spines
- neighbor 10.10.3.13 description Spine3
- neighbor 10.10.4.13 peer group Spines
- neighbor 10.10.4.13 description Spine4
- network 10.14.14.14/32
- redistribute connected
-!
diff --git a/topologies/training-level-2-cl/configlets/TroubleBGP-Spine1 b/topologies/training-level-2-cl/configlets/TroubleBGP-Spine1
deleted file mode 100644
index 546dff4e0..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleBGP-Spine1
+++ /dev/null
@@ -1,58 +0,0 @@
-
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.1.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.1.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.1.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.2/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.2/30
- no shutdown
-
-int lo0
- ip address 10.21.21.21/32
-
-ip routing
-
-router bgp 65100
- router-id 10.21.21.21
- bgp log-neighbor-changes
- neighbor 10.10.1.2 remote-as 65000
- neighbor 10.10.1.2 description Leaf1
- neighbor 10.10.1.6 remote-as 65002
- neighbor 10.10.1.6 description Leaf2
- neighbor 10.10.1.10 remote-as 65003
- neighbor 10.10.1.10 description Leaf3
- neighbor 10.10.1.14 remote-as 65004
- neighbor 10.10.1.14 description Leaf4
- neighbor 10.10.5.1 remote-as 65500
- neighbor 10.10.5.1 description BorderLeaf1
- neighbor 10.10.6.1 remote-as 65500
- neighbor 10.10.6.1 description BorderLeaf2
- network 10.21.21.21/32
- redistribute connected
-!
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleBGP-Spine2 b/topologies/training-level-2-cl/configlets/TroubleBGP-Spine2
deleted file mode 100644
index a19beff83..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleBGP-Spine2
+++ /dev/null
@@ -1,57 +0,0 @@
-
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.2.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.2.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.2.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.6/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.6/30
- no shutdown
-
-int lo0
- ip address 10.22.22.22/32
-
-ip routing
-
-router bgp 65100
- bgp log-neighbor-changes
- router-id 10.22.22.22
- neighbor 10.10.2.2 remote-as 65001
- neighbor 10.10.2.2 description Leaf1
- neighbor 10.10.2.2 update-source Loopback0
- neighbor 10.10.2.6 remote-as 65002
- neighbor 10.10.2.6 description Leaf2
- neighbor 10.10.2.10 remote-as 65003
- neighbor 10.10.2.10 description Leaf3
- neighbor 10.10.2.14 remote-as 65004
- neighbor 10.10.2.14 description Leaf4
- neighbor 10.10.5.5 remote-as 65500
- neighbor 10.10.5.5 description BorderLeaf1
- neighbor 10.10.6.5 remote-as 65500
- neighbor 10.10.6.5 description BorderLeaf2
- network 10.22.22.22/32
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleBGP-Spine3 b/topologies/training-level-2-cl/configlets/TroubleBGP-Spine3
deleted file mode 100644
index d9f2a5412..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleBGP-Spine3
+++ /dev/null
@@ -1,64 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.3.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.3.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.3.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.10/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.10/30
- no shutdown
-
-int lo0
- ip address 10.23.23.23/32
-
-
-
-ip routing
-
-router bgp 65100
- router-id 10.23.23.23
-
- neighbor 10.10.3.2 description Leaf1
- neighbor 10.10.3.2 remote-as 65001
-
- neighbor 10.10.3.6 description Leaf2
- neighbor 10.10.3.6 remote-as 65002
-
- neighbor 10.10.3.10 description Leaf3
- neighbor 10.10.3.10 remote-as 65003
-
- neighbor 10.10.3.14 description Leaf4
- neighbor 10.10.3.14 remote-as 65004
-
- neighbor 10.10.5.9 description BorderLeaf1
- neighbor 10.10.5.9 remote-as 65500
-
- neighbor 10.10.6.9 description BorderLeaf2
- neighbor 10.10.6.9 remote-as 65500
-
- network 10.23.23.23/32
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleBGP-Spine4 b/topologies/training-level-2-cl/configlets/TroubleBGP-Spine4
deleted file mode 100644
index 8ae59a38c..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleBGP-Spine4
+++ /dev/null
@@ -1,63 +0,0 @@
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.4.1/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.4.5/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.4.9/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.13/30
- no shutdown
-
-int e7
- no switchport
- ip address 10.10.5.14/30
- no shutdown
-
-int e8
- no switchport
- ip address 10.10.6.14/30
- no shutdown
-
-int lo0
- ip address 10.24.24.24/32
-
-ip routing
-
-router bgp 65100
- router-id 10.24.24.24
-
- neighbor 10.10.4.2 description Leaf1
- neighbor 10.10.4.2 remote-as 65001
-
- neighbor 10.10.4.6 description Leaf2
- neighbor 10.10.4.6 remote-as 65002
-
- neighbor 10.10.4.10 description Leaf3
- neighbor 10.10.4.10 remote-as 65003
-
- neighbor 10.10.4.14 description Leaf4
- neighbor 10.10.4.14 remote-as 65004
-
- neighbor 10.10.5.13 description BorderLeaf1
- neighbor 10.10.5.13 remote-as 65500
-
- neighbor 10.10.6.13 description BorderLeaf2
- neighbor 10.10.6.13 remote-as 65500
-
-
- network 10.24.24.24/32
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleBGP-Start-Leaf1 b/topologies/training-level-2-cl/configlets/TroubleBGP-Start-Leaf1
deleted file mode 100644
index 43c278bc5..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleBGP-Start-Leaf1
+++ /dev/null
@@ -1,57 +0,0 @@
-vlan 101
-
-interface Ethernet1
- shutdown
-!
-interface Ethernet2
- shutdown
-!
-interface Ethernet3
- no switchport
- ip address 10.10.1.2/30
-!
-interface Ethernet4
- no switchport
- ip address 10.10.2.2/30
-!
-interface Ethernet5
- no switchport
- ip address 10.10.3.2/30
-!
-interface Ethernet6
- no switchport
- ip address 10.10.4.2/30
-!
-interface Ethernet7
-!
-interface Ethernet8
-!
-interface Ethernet9
-!
-interface Ethernet10
-!
-interface Loopback0
- ip address 10.11.11.11/32
-!
-interface Vlan101
- no autostate
- ip address 172.16.101.1/24
-!
-ip routing
-!
-router bgp 65001
- router-id 10.11.11.11
- maximum-paths 4 ecmp 4
- neighbor Spines peer group
- neighbor Spines remote-as 65100
- neighbor 10.10.1.1 peer group Spines
- neighbor 10.10.1.1 description Spine1
- neighbor 10.10.3.1 peer group Spines
- neighbor 10.10.3.1 description Spine3
- neighbor 10.10.4.1 peer group Spines
- neighbor 10.10.4.1 description Spine4
- neighbor 10.10.20.1 peer group Spines
- neighbor 10.10.20.1 update-source Loopback0
- neighbor 10.10.20.1 description Spine2
- network 10.11.11.11/32
-!
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleBGP-Start-Leaf2 b/topologies/training-level-2-cl/configlets/TroubleBGP-Start-Leaf2
deleted file mode 100644
index 60de2742c..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleBGP-Start-Leaf2
+++ /dev/null
@@ -1,50 +0,0 @@
-vlan 102
-
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.6/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.6/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.6/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.6/30
- no shutdown
-!
-int lo0
- ip address 10.12.12.12/32
-!
-interface Vlan102
- no autostate
- ip address 172.16.102.1/24
-!
-ip routing
-!
-router bgp 65002
- router-id 10.12.12.12
- maximum-paths 4 ecmp 4
- neighbor Spines peer group
- neighbor Spines remote-as 65100
- neighbor 10.10.1.5 peer group Spines
- neighbor 10.10.1.5 description Spine1
- neighbor 10.10.2.5 peer group Spines
- neighbor 10.10.2.5 description Spine2
- neighbor 10.10.3.5 peer group Spines
- neighbor 10.10.3.5 description Spine3
- neighbor 10.10.4.5 peer group Spines
- neighbor 10.10.4.5 description Spine4
- network 10.12.12.12/32
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleBGP-Start-Leaf3 b/topologies/training-level-2-cl/configlets/TroubleBGP-Start-Leaf3
deleted file mode 100644
index dac22a1d7..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleBGP-Start-Leaf3
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-vlan 103
-
-int vlan 103
- ip address 172.16.103.1/24
- no autostate
-
-int e1,2
- shutdown
-
-int e3
- no switchport
- ip address 10.10.1.10/30
- no shutdown
-
-int e4
- no switchport
- ip address 10.10.2.10/30
- no shutdown
-
-int e5
- no switchport
- ip address 10.10.3.10/30
- no shutdown
-
-
-int e6
- no switchport
- ip address 10.10.4.10/30
- no shutdown
-
-int lo0
- ip address 10.13.13.13/32
-
-ip routing
-
-ip route 172.16.101.0/24 10.11.11.11
-
-
- router bgp 65003
- router-id 10.13.13.13
- maximum-paths 4 ecmp 4
- neighbor Spines peer group
- neighbor Spines remote-as 65100
- neighbor 10.10.1.9 peer group Spines
- neighbor 10.10.1.9 description Spine1
- neighbor 10.10.2.9 peer group Spines
- neighbor 10.10.2.9 description Spine2
- neighbor 10.10.3.9 peer group Spines
- neighbor 10.10.3.9 description Spine3
- neighbor 10.10.4.9 peer group Spines
- neighbor 10.10.4.9 description Spine4
- network 10.13.13.13/32
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleMLAG-Host1 b/topologies/training-level-2-cl/configlets/TroubleMLAG-Host1
deleted file mode 100644
index 3238c399d..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleMLAG-Host1
+++ /dev/null
@@ -1,30 +0,0 @@
-
- vlan 10
-
-interface Vlan10
- ip address 192.168.10.10/24
- no autostate
-
-interface Port-Channel1
- description Connection to MLAG Leaf1-Leaf2
- switchport
- switchport mode access
- switchport access vlan 10
- no shut
-
-interface Ethernet1
- description Connection to MLAG Leaf1
- channel-group 1 mode active
-
-
-
-interface Ethernet2
- description Connection to MLAG Leaf2
- channel-group 1 mode active
-
-
-ip route 192.168.10.0/24 192.168.10.254
-ip route 192.168.10.0/24 192.168.10.254
-ip route 192.168.20.0/24 192.168.10.254
-ip route 192.168.30.0/24 192.168.10.254
-ip route 192.168.40.0/24 192.168.10.254
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleMLAG-Host2 b/topologies/training-level-2-cl/configlets/TroubleMLAG-Host2
deleted file mode 100644
index 5a4212e2f..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleMLAG-Host2
+++ /dev/null
@@ -1,28 +0,0 @@
-
- vlan 20
-
-interface Vlan20
- ip address 192.168.20.10/24
- no autostate
-
-interface Port-Channel2
- description Connection to MLAG Leaf1-Leaf2
- switchport
- switchport mode access
- switchport access vlan 20
- no shut
-
-interface Ethernet1
- description Connection to MLAG Leaf1
- channel-group 2 mode active
-
-
-interface Ethernet2
- description Connection to MLAG Leaf2
- channel-group 2 mode active
-
-ip route 192.168.20.0/24 192.168.20.254
-ip route 192.168.10.0/24 192.168.20.254
-ip route 192.168.20.0/24 192.168.20.254
-ip route 192.168.30.0/24 192.168.20.254
-ip route 192.168.40.0/24 192.168.20.254
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleMLAG-Host3 b/topologies/training-level-2-cl/configlets/TroubleMLAG-Host3
deleted file mode 100644
index d6084e4fc..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleMLAG-Host3
+++ /dev/null
@@ -1,28 +0,0 @@
-
- vlan 30
-
-interface Vlan30
- ip address 192.168.30.10/24
- no autostate
-
-interface Port-Channel1
- description Connection to MLAG Leaf3-Leaf4
- switchport
- switchport mode access
- switchport access vlan 30
- no shut
-
-interface Ethernet1
- description Connection to MLAG Leaf3
- channel-group 1 mode active
-
-
-interface Ethernet2
- description Connection to MLAG Leaf4
- channel-group 1 mode active
-
-
-ip route 192.168.10.0/24 192.168.30.254
-ip route 192.168.20.0/24 192.168.30.254
-ip route 192.168.30.0/24 192.168.30.254
-ip route 192.168.40.0/24 192.168.30.254
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleMLAG-Host4 b/topologies/training-level-2-cl/configlets/TroubleMLAG-Host4
deleted file mode 100644
index d79eeb0d9..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleMLAG-Host4
+++ /dev/null
@@ -1,29 +0,0 @@
-
- vlan 40
-
-interface Vlan40
- ip address 192.168.40.10/24
- no autostate
-
-interface Port-Channel2
- description Connection to MLAG Leaf3-Leaf4
- switchport
- switchport mode access
- switchport access vlan 40
- no shut
-
-interface Ethernet1
- description Connection to MLAG Leaf3
- channel-group 2 mode active
-
-
-interface Ethernet2
- description Connection to MLAG Leaf4
- channel-group 2 mode active
-
-
-
-ip route 192.168.10.0/24 192.168.40.254
-ip route 192.168.20.0/24 192.168.40.254
-ip route 192.168.30.0/24 192.168.40.254
-ip route 192.168.40.0/24 192.168.40.254
diff --git a/topologies/training-level-2-cl/configlets/TroubleMLAG-Leaf1 b/topologies/training-level-2-cl/configlets/TroubleMLAG-Leaf1
deleted file mode 100644
index 35881bff3..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleMLAG-Leaf1
+++ /dev/null
@@ -1,125 +0,0 @@
- !
- vlan 10
- vlan 20
-
- !
-interface Port-Channel20
- description Leaf 1 and Leaf 2 MLAG PortChannel 20 to Spine MLAG
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 10,20
- mlag 20
- no shut
-
-
-interface Ethernet3
- channel-group 20 mode active
-
-
-interface Ethernet4
- channel-group 20 mode active
-
-
- vlan 4094
- name MLAG
- trunk group MLAGVLAN
-
- spanning-tree mode mstp
-
-
- ip virtual-router mac-address 001c.7300.0098
-
- interface Vlan4094
- ip address 172.16.40.1/24
- no autostate
-
- interface Port-Channel200
- description MLAG Peer Link
- switchport
- switchport mode trunk
- switchport trunk group MLAGVLAN
-
- interface Ethernet1
- description MLAG Peer Link Member
- channel-group 200 mode active
-
-
- interface Ethernet2
- description MLAG Peer Link Member
- channel-group 200 mode active
-
-
- mlag configuration
- domain-id MLAGLeaf1
- local-interface Vlan4094
- peer-address 172.16.40.2
- peer-link Port-Channel200
- primary-priority 10
-
- heartbeat-interval 2500
-
-
-
- ip access-list default-control-plane-acl-new
- 10 permit icmp any any
- 20 permit ip any any tracked
- 30 permit udp any any eq bfd ttl eq 255
- 40 permit udp any any eq bfd-echo ttl eq 254
- 50 permit udp any any eq multihop-bfd micro-bfd sbfd
- 60 permit udp any eq sbfd any eq sbfd-initiator
- 70 permit ospf any any
- 80 permit tcp any any eq ssh telnet www snmp bgp https msdp ldp netconf-ssh gnmi
- 90 permit udp any any eq bootps bootpc ntp snmp ptp-event ptp-general rip ldp
- 120 permit vrrp any any
- 130 permit ahp any any
- 140 permit pim any any
- 150 permit igmp any any
- 160 permit tcp any any range 5900 5910
- 170 permit tcp any any range 50000 50100
- 180 permit udp any any range 51000 51100
- 190 permit tcp any any eq 3333
- 200 permit tcp any any eq nat ttl eq 255
- 210 permit tcp any eq bgp any
- 220 permit rsvp any any
- 230 permit tcp any any eq 9340
- 240 permit tcp any any eq 9559
- 250 permit udp any any eq 8503
- 260 permit udp any any eq lsp-ping
- 270 permit udp any eq lsp-ping any
-
-
-system control-plane
- ip access-group default-control-plane-acl-new in
- ip access-group default-control-plane-acl-new vrf MGMT in
-
-
-
-vlan 10
-
-interface Port-Channel1
- description MLAG Connection to Host1
- switchport
- switchport mode access
- switchport access vlan 10
- mlag 1
- no shut
-
-interface Ethernet7
- description LACP Connection to Host 1
- channel-group 1 mode active
-
-
-vlan 20
-
-interface Port-Channel2
- description MLAG Connection to Host2
- switchport
- switchport mode access
- switchport access vlan 20
- mlag 2
- no shut
-
-interface Ethernet9
- description LACP Connection to Host 2
- channel-group 2 mode active
-
diff --git a/topologies/training-level-2-cl/configlets/TroubleMLAG-Leaf2 b/topologies/training-level-2-cl/configlets/TroubleMLAG-Leaf2
deleted file mode 100644
index 4c8d6b183..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleMLAG-Leaf2
+++ /dev/null
@@ -1,118 +0,0 @@
- !
- vlan 10
- vlan 20
-
- !
-interface Port-Channel20
- description Leaf 1 and Leaf 2 MLAG PortChannel 20 to Spine MLAG
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 10,20
- mlag 20
- no shut
-
-
-interface Ethernet3
- channel-group 20 mode active
-
-
-interface Ethernet4
- channel-group 20 mode active
-
-vlan 4094
-name MLAG
-trunk group MLAGVLAN
-
-spanning-tree mode mstp
-no spanning-tree vlan-id 4094
-
-ip virtual-router mac-address 001c.7300.0098
-
-interface Vlan4094
-ip address 172.16.40.2/24
-no autostate
-
-interface Port-Channel200
-description MLAG Peer Link
-switchport
-switchport mode trunk
-switchport trunk group MLAGVLAN
-no shut
-
-interface Ethernet1
-description MLAG Peer Link Member
-channel-group 200 mode active
-
-
-interface Ethernet2
-description MLAG Peer Link Member
-channel-group 200 mode active
-
-
-mlag configuration
-domain-id MLAGLeaf1Leaf2
-local-interface Vlan4094
-peer-address 172.16.40.1
-peer-link Port-Channel200
-primary-priority 20
-heartbeat-interval 2500
-
-ip access-list default-control-plane-acl-new
- 10 permit icmp any any
- 20 permit ip any any tracked
- 30 permit udp any any eq bfd ttl eq 255
- 40 permit udp any any eq bfd-echo ttl eq 254
- 50 permit udp any any eq multihop-bfd micro-bfd sbfd
- 60 permit udp any eq sbfd any eq sbfd-initiator
- 70 permit ospf any any
- 80 permit tcp any any eq ssh telnet www snmp bgp https msdp ldp netconf-ssh gnmi
- 90 permit udp any any eq bootps bootpc ntp snmp ptp-event ptp-general rip ldp
- 120 permit vrrp any any
- 130 permit ahp any any
- 140 permit pim any any
- 150 permit igmp any any
- 160 permit tcp any any range 5900 5910
- 170 permit tcp any any range 50000 50100
- 180 permit udp any any range 51000 51100
- 190 permit tcp any any eq 3333
- 200 permit tcp any any eq nat ttl eq 255
- 210 permit tcp any eq bgp any
- 220 permit rsvp any any
- 230 permit tcp any any eq 9340
- 240 permit tcp any any eq 9559
- 250 permit udp any any eq 8503
- 260 permit udp any any eq lsp-ping
- 270 permit udp any eq lsp-ping any
-
-
-system control-plane
- ip access-group default-control-plane-acl-new in
- ip access-group default-control-plane-acl-new vrf MGMT in
-
- vlan 10
-
-interface Port-Channel1
- description MLAG Connection to Host1
- switchport
- switchport mode access
- switchport access vlan 10
- mlag 1
- no shut
-
-interface Ethernet7
- description LACP Connection to Host 1
- channel-group 1 mode active
-
- vlan 20
- !
-interface Port-Channel2
- description MLAG Connection to Host2
- switchport
- switchport mode access
- switchport access vlan 20
- mlag 2
- no shut
-
-interface Ethernet9
- description LACP Connection to Host 2
- channel-group 2 mode active
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleMLAG-Leaf3 b/topologies/training-level-2-cl/configlets/TroubleMLAG-Leaf3
deleted file mode 100644
index c70f7452e..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleMLAG-Leaf3
+++ /dev/null
@@ -1,124 +0,0 @@
- vlan 30
- vlan 40
-
-interface Port-Channel40
- description Leaf 3 and Leaf 4 MLAG PortChannel 40 to Spine MLAG
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 30,40
- mlag 40
- no shut
-
-
-interface Ethernet3
- channel-group 40 mode active
-
-
-
-interface Ethernet4
- channel-group 40 mode active
-
-vlan 40
-
-interface Port-Channel2
- description MLAG Connection to Host4
- switchport
- switchport mode access
- switchport access vlan 40
- mlag 2
- no shut
-
-
-interface Ethernet9
- description LACP Connection to Host 4
- channel-group 2 mode active
-
-vlan 30
-
-interface Port-Channel1
- description MLAG Connection to Host3
- switchport
- switchport mode access
- switchport access vlan 30
- mlag 1
- no shut
-
-interface Ethernet7
- description LACP Connection to Host 3
- channel-group 1 mode active
-
- vlan 4094
- name MLAG
- trunk group MLAGVLAN
-
- spanning-tree mode mstp
- no spanning-tree vlan-id 4094
-
- ip virtual-router mac-address 001c.7300.0097
-
-interface Vlan4094
- ip address 172.16.50.1/30
- no autostate
-
-interface Port-Channel200
- description MLAG Peer Link
- switchport
- switchport mode trunk
- switchport trunk group MLAGVLAN
-
-interface Ethernet1
- description MLAG Peer Link Member
- channel-group 200 mode active
-
-
- vlan 4094
- name MLAG
- trunk group MLAGVLAN
-
- spanning-tree mode mstp
- no spanning-tree vlan-id 4094
-
- ip virtual-router mac-address 001c.7300.0097
-
-interface Vlan4094
- ip address 172.16.50.1/30
- no autostate
-
-interface Port-Channel200
- description MLAG Peer Link
- switchport
- switchport mode trunk
- switchport trunk group MLAGVLAN
-
-interface Ethernet1
- description MLAG Peer Link Member
- channel-group 200 mode active
-
-
-interface Ethernet2
- description MLAG Peer Link Member
- channel-group 200 mode active
-
-
-mlag configuration
- domain-id MLAGLeaf3Leaf4
- local-interface Vlan4094
- peer-address 172.16.50.2
- peer-link Port-Channel200
- primary-priority 10
- heartbeat-interval 2500
-
-interface Ethernet2
- description MLAG Peer Link Member
- channel-group 200 mode active
-
-
-mlag configuration
- domain-id MLAGLeaf3Leaf4
- local-interface Vlan4094
- peer-address 172.16.50.2
- peer-link Port-Channel200
- primary-priority 10
- heartbeat-interval 2500
-
-
diff --git a/topologies/training-level-2-cl/configlets/TroubleMLAG-Leaf4 b/topologies/training-level-2-cl/configlets/TroubleMLAG-Leaf4
deleted file mode 100644
index 42eceb525..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleMLAG-Leaf4
+++ /dev/null
@@ -1,88 +0,0 @@
- vlan 30
- vlan 40
-
-interface Port-Channel40
- description Leaf 3 and Leaf 4 MLAG PortChannel 40 to Spine MLAG
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 30,40
- mlag 40
- no shut
-
-
-interface Ethernet3
- channel-group 40 mode active
-
-
-
-interface Ethernet4
- channel-group 40 mode active
-
-
- vlan 40
-
-interface Port-Channel2
- description MLAG Connection to Host4
- switchport
- switchport mode access
- switchport access vlan 40
- mlag 2
- no shut
-
-
-
-interface Ethernet9
- description LACP Connection to Host 4
- channel-group 2 mode active
-
- vlan 30
-
-interface Port-Channel1
- description MLAG Connection to Host3
- switchport
- switchport mode access
- switchport access vlan 30
- mlag 1
- no shut
-
-interface Ethernet7
- description LACP Connection to Host 3
- channel-group 1 mode active
-
- vlan 4094
- name MLAG
- trunk group MLAGVLAN
-
- spanning-tree mode mstp
- no spanning-tree vlan-id 4094
-
- ip virtual-router mac-address 001c.7300.0097
-
-interface Vlan4094
- ip address 172.16.50.2/30
- no autostate
-
-interface Port-Channel200
- description MLAG Peer Link
- switchport
- switchport mode trunk
- switchport trunk group MLAGVLAN
- no shut
-
-interface Ethernet1
- description MLAG Peer Link Member
- channel-group 200 mode active
-
-
-interface Ethernet2
- description MLAG Peer Link Member
- channel-group 200 mode active
-
-
-mlag configuration
- domain-id MLAGLeaf3Leaf4
- local-interface Vlan4094
- peer-address 172.16.50.1
- peer-link Port-Channel200
- primary-priority 20
- heartbeat-interval 2500
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleMLAG-Spine1 b/topologies/training-level-2-cl/configlets/TroubleMLAG-Spine1
deleted file mode 100644
index 5cd115436..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleMLAG-Spine1
+++ /dev/null
@@ -1,117 +0,0 @@
-!
-spanning-tree mode mst
-
-spanning-tree mst configuration
- instance 0 vlan 1-4094
- spanning-tree mst 0 root primary
-
-vlan 10
-vlan 20
-vlan 30
-vlan 40
-
-interface Port-Channel10
- description Spine 1 and Spine 2 MLAG PortChannel 10 to Leaf 1 and Leaf 2 MLAG
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 10,20
- mlag 10
- no shut
-
-interface Ethernet3
- channel-group 10 mode active
-
-
-interface Ethernet4
- channel-group 10 mode active
-
-
-interface Ethernet7
- shutdown
-
-interface Ethernet8
- shutdown
-
-
-interface Port-Channel30
- description Spine 1 and SPine 2 MLAG PortChannel 30 to Leaf 3 and Leaf 4 MLAG
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 30,40
- mlag 30
- no shut
-
-interface Ethernet5
- channel-group 30 mode active
-
-
-interface Ethernet6
- channel-group 30 mode active
-
-
-
-
- vlan 4094
- name MLAG
- trunk group MLAGVLAN
-
- spanning-tree mode mstp
- no spanning-tree vlan-id 4094
-
- ip virtual-router mac-address 001c.7300.0099
-
-interface Vlan4094
- ip address 172.16.30.1/30
- no autostate
-
-interface Port-Channel200
- description MLAG Peer Link
- switchport
- switchport mode trunk
- switchport trunk group MLAGVLAN
-
-interface Ethernet1
- description MLAG Peer Link Member
- channel-group 200 mode active
-
-
-interface Ethernet2
- description MLAG Peer Link Member
- channel-group 200 mode active
-
-
-mlag configuration
- domain-id MLAGSpine1Spine2
- local-interface Vlan4094
- peer-address 172.16.30.2
- peer-link Port-Channel200
- primary-priority 10
-
-vlan 10
-vlan 20
-vlan 30
-vlan 40
-
-ip routing
-
-ip virtual-router mac-address 001c.7300.0099
-
-interface vlan 10
- ip address 192.168.10.1/24
- ip virtual-router address 192.168.10.254
- no autostate
-
-interface vlan 20
- ip address 192.168.20.1/24
- ip virtual-router address 192.168.20.254
- no autostate
-
-interface vlan 30
- ip address 192.168.30.1/24
- ip virtual-router address 192.168.30.254
- no autostate
-
-interface vlan 40
- ip address 192.168.40.1/24
- ip virtual-router address 192.168.40.254
- no autostate
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleMLAG-Spine2 b/topologies/training-level-2-cl/configlets/TroubleMLAG-Spine2
deleted file mode 100644
index 52fb30005..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleMLAG-Spine2
+++ /dev/null
@@ -1,115 +0,0 @@
-!
-spanning-tree mode mst
-
-spanning-tree mst configuration
- instance 0 vlan 1-4094
- spanning-tree mst 0 root primary
-
-vlan 10
-vlan 20
-vlan 30
-vlan 40
-
-interface Port-Channel10
- description Spine 1 and Spine 2 MLAG PortChannel 10 to Leaf 1 and Leaf 2 MLAG
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 10,20
- mlag 10
- no shut
-
-interface Ethernet3
- channel-group 10 mode active
-
-
-interface Ethernet4
- channel-group 10 mode active
-
-
-interface Ethernet7
- shutdown
-
-interface Ethernet8
- shutdown
-
- interface Port-Channel30
- description Spine 1 and Spine 2 MLAG PortChannel 30 to Leaf 3 and Leaf 4 MLAG
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 30,40
- mlag 30
- no shut
-
-interface Ethernet5
- channel-group 30 mode active
-
-
-interface Ethernet6
- channel-group 30 mode active
-
-vlan 4094
- name MLAG
- trunk group MLAGVLAN
-
- spanning-tree mode mstp
- no spanning-tree vlan-id 4094
-
- ip virtual-router mac-address 001c.7300.0099
-
-interface Vlan4094
- ip address 172.16.30.2/30
- no autostate
-
-interface Port-Channel200
- description MLAG Peer Link
- switchport
- switchport mode trunk
- switchport trunk group MLAGVLAN
- no shut
-
-interface Ethernet1
- description MLAG Peer Link Member
- channel-group 200 mode active
-
-
-interface Ethernet2
- description MLAG Peer Link Member
- channel-group 200 mode active
-
-
-mlag configuration
- domain-id MLAGSpine1Spine2
- local-interface Vlan4094
- peer-address 172.16.30.1
- peer-link Port-Channel200
- primary-priority 20
-
-
-vlan 10
-vlan 20
-vlan 30
-vlan 40
-
-ip routing
-
-ip virtual-router mac-address 001c.7300.0099
-
-interface vlan 10
- ip address 192.168.10.2/24
- ip virtual-router address 192.168.10.254
- no autostate
-
-interface vlan 20
- ip address 192.168.20.2/24
- ip virtual-router address 192.168.20.254
- no autostate
-
-interface vlan 30
- ip address 192.168.30.2/24
- ip virtual-router address 192.168.30.254
- no autostate
-
-interface vlan 40
- ip address 192.168.40.2/24
- ip virtual-router address 192.168.40.254
- no autostate
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Leaf1 b/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Leaf1
deleted file mode 100644
index f8127525d..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Leaf1
+++ /dev/null
@@ -1,22 +0,0 @@
-vlan 10
-name VLAN10
-
-interface eth 3,4,5,6
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 10
- no shutdown
-
-interface eth 1,2
- shutdown
- interface eth 7-10
- shutdown
-
-interface Ethernet7
- switchport
- switchport mode access
- switchport access vlan 10
- spanning-tree portfast
- spanning-tree bpduguard enable
- spanning-tree guard root
- no shut
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Leaf2 b/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Leaf2
deleted file mode 100644
index c04fe5505..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Leaf2
+++ /dev/null
@@ -1,14 +0,0 @@
-vlan 10
- name VLAN10
-
-
-interface eth 3,4,5,6
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 10
- no shutdown
-
-interface eth 1,2
- shutdown
-interface eth 7-10
- shutdown
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Leaf3 b/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Leaf3
deleted file mode 100644
index c04fe5505..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Leaf3
+++ /dev/null
@@ -1,14 +0,0 @@
-vlan 10
- name VLAN10
-
-
-interface eth 3,4,5,6
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 10
- no shutdown
-
-interface eth 1,2
- shutdown
-interface eth 7-10
- shutdown
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Leaf4 b/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Leaf4
deleted file mode 100644
index c04fe5505..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Leaf4
+++ /dev/null
@@ -1,14 +0,0 @@
-vlan 10
- name VLAN10
-
-
-interface eth 3,4,5,6
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 10
- no shutdown
-
-interface eth 1,2
- shutdown
-interface eth 7-10
- shutdown
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Spine1 b/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Spine1
deleted file mode 100644
index f9afc3c4e..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Spine1
+++ /dev/null
@@ -1,12 +0,0 @@
-vlan 10
- name VLAN10
-
-
-interface eth 3,4,5,6
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 10
- no shutdown
-
-interface eth 1,2,7,8
- shutdown
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Spine2 b/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Spine2
deleted file mode 100644
index f9afc3c4e..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Spine2
+++ /dev/null
@@ -1,12 +0,0 @@
-vlan 10
- name VLAN10
-
-
-interface eth 3,4,5,6
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 10
- no shutdown
-
-interface eth 1,2,7,8
- shutdown
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Spine3 b/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Spine3
deleted file mode 100644
index f9afc3c4e..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Spine3
+++ /dev/null
@@ -1,12 +0,0 @@
-vlan 10
- name VLAN10
-
-
-interface eth 3,4,5,6
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 10
- no shutdown
-
-interface eth 1,2,7,8
- shutdown
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Spine4 b/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Spine4
deleted file mode 100644
index f9afc3c4e..000000000
--- a/topologies/training-level-2-cl/configlets/TroubleSTP-Start-Spine4
+++ /dev/null
@@ -1,12 +0,0 @@
-vlan 10
- name VLAN10
-
-
-interface eth 3,4,5,6
- switchport
- switchport mode trunk
- switchport trunk allowed vlan 10
- no shutdown
-
-interface eth 1,2,7,8
- shutdown
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/configlets/borderleaf1-base b/topologies/training-level-2-cl/configlets/borderleaf1-base
deleted file mode 100644
index e274c6eb4..000000000
--- a/topologies/training-level-2-cl/configlets/borderleaf1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.25/24
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
diff --git a/topologies/training-level-2-cl/configlets/borderleaf2-base b/topologies/training-level-2-cl/configlets/borderleaf2-base
deleted file mode 100644
index a7778e0b4..000000000
--- a/topologies/training-level-2-cl/configlets/borderleaf2-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.26/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-2-cl/configlets/host1-base b/topologies/training-level-2-cl/configlets/host1-base
deleted file mode 100644
index 915d58edb..000000000
--- a/topologies/training-level-2-cl/configlets/host1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host1
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.51/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-2-cl/configlets/host2-base b/topologies/training-level-2-cl/configlets/host2-base
deleted file mode 100644
index 63f0c9c38..000000000
--- a/topologies/training-level-2-cl/configlets/host2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host2
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.52/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-2-cl/configlets/host3-base b/topologies/training-level-2-cl/configlets/host3-base
deleted file mode 100644
index 979a49b28..000000000
--- a/topologies/training-level-2-cl/configlets/host3-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host3
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.53/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-2-cl/configlets/host4-base b/topologies/training-level-2-cl/configlets/host4-base
deleted file mode 100644
index f85e77a77..000000000
--- a/topologies/training-level-2-cl/configlets/host4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host4
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.54/24
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-
diff --git a/topologies/training-level-2-cl/configlets/leaf1-base b/topologies/training-level-2-cl/configlets/leaf1-base
deleted file mode 100644
index 7b316b33b..000000000
--- a/topologies/training-level-2-cl/configlets/leaf1-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.21/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-2-cl/configlets/leaf2-base b/topologies/training-level-2-cl/configlets/leaf2-base
deleted file mode 100644
index 22fffb444..000000000
--- a/topologies/training-level-2-cl/configlets/leaf2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.22/24
-
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-2-cl/configlets/leaf3-base b/topologies/training-level-2-cl/configlets/leaf3-base
deleted file mode 100644
index 37e7bc8d3..000000000
--- a/topologies/training-level-2-cl/configlets/leaf3-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.23/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-2-cl/configlets/leaf4-base b/topologies/training-level-2-cl/configlets/leaf4-base
deleted file mode 100644
index f0cff7b25..000000000
--- a/topologies/training-level-2-cl/configlets/leaf4-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.24/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-2-cl/configlets/spine1-base b/topologies/training-level-2-cl/configlets/spine1-base
deleted file mode 100644
index 5e9d072b1..000000000
--- a/topologies/training-level-2-cl/configlets/spine1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.11/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-2-cl/configlets/spine2-base b/topologies/training-level-2-cl/configlets/spine2-base
deleted file mode 100644
index cc9d0bef1..000000000
--- a/topologies/training-level-2-cl/configlets/spine2-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname spine2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.12/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-2-cl/configlets/spine3-base b/topologies/training-level-2-cl/configlets/spine3-base
deleted file mode 100644
index 853f6564a..000000000
--- a/topologies/training-level-2-cl/configlets/spine3-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.13/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-2-cl/configlets/spine4-base b/topologies/training-level-2-cl/configlets/spine4-base
deleted file mode 100644
index 240453581..000000000
--- a/topologies/training-level-2-cl/configlets/spine4-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.14/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-2-cl/files/.ansible.cfg b/topologies/training-level-2-cl/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-level-2-cl/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-level-2-cl/files/.screenrc b/topologies/training-level-2-cl/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-level-2-cl/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-level-2-cl/files/MenuOptions.yaml b/topologies/training-level-2-cl/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-level-2-cl/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/files/apps/coder/coder.yaml b/topologies/training-level-2-cl/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-level-2-cl/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/files/apps/coder/labfiles/.placeholder b/topologies/training-level-2-cl/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-level-2-cl/files/apps/gui/host5/arista/host-startup.sh b/topologies/training-level-2-cl/files/apps/gui/host5/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-2-cl/files/apps/gui/host5/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/files/apps/gui/host6/arista/host-startup.sh b/topologies/training-level-2-cl/files/apps/gui/host6/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-2-cl/files/apps/gui/host6/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/files/apps/gui/host7/arista/host-startup.sh b/topologies/training-level-2-cl/files/apps/gui/host7/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-2-cl/files/apps/gui/host7/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/files/apps/gui/host8/arista/host-startup.sh b/topologies/training-level-2-cl/files/apps/gui/host8/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-2-cl/files/apps/gui/host8/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/files/apps/ssh/web.json b/topologies/training-level-2-cl/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-level-2-cl/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/files/apps/uilanding/modules.yaml b/topologies/training-level-2-cl/files/apps/uilanding/modules.yaml
deleted file mode 100644
index c983faac0..000000000
--- a/topologies/training-level-2-cl/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "22,218,167,296"
- ip: "192.168.0.11"
- Spine2:
- coords: "356,215,517,300"
- ip: "192.168.0.12"
- Spine3:
- coords: "555,214,724,294"
- ip: "192.168.0.13"
- Spine4:
- coords: "925,218,1077,293"
- ip: "192.168.0.14"
- Leaf1:
- coords: "16,424,165,501"
- ip: "192.168.0.21"
- Leaf2:
- coords: "353,425,520,493"
- ip: "192.168.0.22"
- Leaf3:
- coords: "569,430,714,499"
- ip: "192.168.0.23"
- Leaf4:
- coords: "921,423,1074,502"
- ip: "192.168.0.24"
- BorderLeaf1:
- coords: "370,57,511,138"
- ip: "192.168.0.25"
- BorderLeaf2:
- coords: "561,65,726,145"
- ip: "192.168.0.26"
- Host1:
- coords: "15,534,149,611"
- ip: "192.168.0.51"
- Host2:
- coords: "365,539,504,619"
- ip: "192.168.0.52"
- Host3:
- coords: "566,542,711,620"
- ip: "192.168.0.53"
- Host4:
- coords: "929,542,1075,615"
- ip: "192.168.0.54"
- servers:
- Host5:
- coords: "182,545,307,636"
- ip: "192.168.0.101"
- port : 6001
- Host6:
- coords: "183,650,312,744"
- ip: "192.168.0.102"
- port : 6002
- Host7:
- coords: "747,545,875,636"
- ip: "192.168.0.103"
- port : 6003
- Host8:
- coords: "752,645,877,731"
- ip: "192.168.0.104"
- port : 6004
diff --git a/topologies/training-level-2-cl/files/apps/webui/.vncpass_clear b/topologies/training-level-2-cl/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-level-2-cl/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/files/cvp/cvp_info.yaml b/topologies/training-level-2-cl/files/cvp/cvp_info.yaml
deleted file mode 100644
index 7e796e77f..000000000
--- a/topologies/training-level-2-cl/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf:
- parent: Tenant
- nodes:
- - leaf1
- - leaf2
- - leaf3
- - leaf4
- Borderleaf:
- parent: Tenant
- nodes:
- - borderleaf1
- - borderleaf2
- Spine:
- parent: Tenant
- nodes:
- - spine1
- - spine2
- - spine3
- - spine4
- Hosts:
- parent: Tenant
- nodes:
- - host1
- - host2
- - host3
- - host4
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- spine1:
- - spine1-base
- spine2:
- - spine2-base
- spine3:
- - spine3-base
- spine4:
- - spine4-base
- leaf1:
- - leaf1-base
- leaf2:
- - leaf2-base
- borderleaf1:
- - borderleaf1-base
- borderleaf2:
- - borderleaf2-base
- leaf3:
- - leaf3-base
- leaf4:
- - leaf4-base
- host3:
- - host3-base
- host4:
- - host4-base
- host1:
- - host1-base
- host2:
- - host2-base
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/files/hosts b/topologies/training-level-2-cl/files/hosts
deleted file mode 100644
index b01ba8483..000000000
--- a/topologies/training-level-2-cl/files/hosts
+++ /dev/null
@@ -1,24 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.101 host5
-192.168.0.102 host6
-192.168.0.103 host7
-192.168.0.104 host8
-192.168.0.5 cvp
diff --git a/topologies/training-level-2-cl/files/menus/default.yaml b/topologies/training-level-2-cl/files/menus/default.yaml
deleted file mode 100644
index ea5255267..000000000
--- a/topologies/training-level-2-cl/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l2.yaml
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/files/menus/training-l2.yaml b/topologies/training-level-2-cl/files/menus/training-l2.yaml
deleted file mode 100644
index 530b8d433..000000000
--- a/topologies/training-level-2-cl/files/menus/training-l2.yaml
+++ /dev/null
@@ -1,443 +0,0 @@
----
- lab_list:
- reset:
- description: "Reset All Devices to Base Lab (reset)"
- STP-Start:
- description: "Start STP LAB"
- STP-Troubleshooting:
- description: "Start TROUBLESHOOTING STP LAB"
- MLAG-Start:
- description: "Start MLAG BOWTIE LAB"
- MLAG-Troubleshooting:
- description: "Start TROUBLESHOOTING MLAG LAB"
- Routing-Start:
- description: "Start ROUTING BGP LAB"
- routing-troubleshooting:
- description: "Start TROUBLESHOOTING ROUTING BGP LAB"
- OSPF-Start:
- description: "Start ROUTING OSPF LAB"
- OSPF-MA-Start:
- description: "Start ROUTING MULTIAREA OSPF LAB"
- ACL-Start:
- description: "Start ACL LAB"
- ACL-Troubleshoot:
- description: "Start TROUBLESHOOTING ACL LAB"
- NSSA-Start:
- description: "Start BONUS LAB OSPF NSSA"
- labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- STP-Start:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- STP-Troubleshooting:
- spine1:
- - "spine1-base"
- - "TroubleSTP-Start-Spine1"
- spine2:
- - "spine2-base"
- - "TroubleSTP-Start-Spine2"
- spine3:
- - "spine3-base"
- - "TroubleSTP-Start-Spine3"
- spine4:
- - "spine4-base"
- - "TroubleSTP-Start-Spine4"
- leaf1:
- - "leaf1-base"
- - "TroubleSTP-Start-Leaf1"
- leaf2:
- - "leaf2-base"
- - "TroubleSTP-Start-Leaf2"
- leaf3:
- - "leaf3-base"
- - "TroubleSTP-Start-Leaf3"
- leaf4:
- - "leaf4-base"
- - "TroubleSTP-Start-Leaf4"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- MLAG-Start:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- MLAG-Troubleshooting:
- spine1:
- - "spine1-base"
- - "TroubleMLAG-Spine1"
- spine2:
- - "spine2-base"
- - "TroubleMLAG-Spine2"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- - "TroubleMLAG-Leaf1"
- leaf2:
- - "leaf2-base"
- - "TroubleMLAG-Leaf2"
- leaf3:
- - "leaf3-base"
- - "TroubleMLAG-Leaf3"
- leaf4:
- - "leaf4-base"
- - "TroubleMLAG-Leaf4"
- host1:
- - "host1-base"
- - "TroubleMLAG-Host1"
- host2:
- - "host2-base"
- - "TroubleMLAG-Host2"
- host3:
- - "host3-base"
- - "TroubleMLAG-Host3"
- host4:
- - "host4-base"
- - "TroubleMLAG-Host4"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- Routing-Start:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- OSPF-Start:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- NSSA-Start:
- spine1:
- - "spine1-base"
- - "NSSA-Start-Spine1"
- spine2:
- - "spine2-base"
- - "NSSA-Start-Spine2"
- spine3:
- - "spine3-base"
- - "NSSA-Start-Spine3"
- spine4:
- - "spine4-base"
- - "NSSA-Start-Spine4"
- leaf1:
- - "leaf1-base"
- - "NSSA-Start-Leaf1"
- leaf2:
- - "leaf2-base"
- - "NSSA-Start-Leaf2"
- leaf3:
- - "leaf3-base"
- - "NSSA-Start-Leaf3"
- leaf4:
- - "leaf4-base"
- - "NSSA-Start-Leaf4"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- - "NSSA-Start-BorderLeaf1"
- borderleaf2:
- - "borderleaf2-base"
- - "NSSA-Start-BorderLeaf2"
- ACL-Start:
- spine1:
- - "spine1-base"
- - "ACL-Start-Spine1"
- spine2:
- - "spine2-base"
- - "ACL-Start-Spine2"
- spine3:
- - "spine3-base"
- - "ACL-Start-Spine3"
- spine4:
- - "spine4-base"
- - "ACL-Start-Spine4"
- leaf1:
- - "leaf1-base"
- - "ACL-Start-Leaf1"
- leaf2:
- - "leaf2-base"
- - "ACL-Start-Leaf2"
- leaf3:
- - "leaf3-base"
- - "ACL-Start-Leaf3"
- leaf4:
- - "leaf4-base"
- - "ACL-Start-Leaf4"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- - "ACL-Start-BorderLeaf1"
- borderleaf2:
- - "borderleaf2-base"
- - "ACL-Start-BorderLeaf2"
- ACL-Troubleshoot:
- spine1:
- - "spine1-base"
- - "TroubleACL-Start-Spine1"
- spine2:
- - "spine2-base"
- - "TroubleACL-Start-Spine2"
- spine3:
- - "spine3-base"
- - "TroubleACL-Start-Spine3"
- spine4:
- - "spine4-base"
- - "TroubleACL-Start-Spine4"
- leaf1:
- - "leaf1-base"
- - "TroubleACL-Start-Leaf1"
- leaf2:
- - "leaf2-base"
- - "TroubleACL-Start-Leaf2"
- leaf3:
- - "leaf3-base"
- - "TroubleACL-Start-Leaf3"
- leaf4:
- - "leaf4-base"
- - "TroubleACL-Start-Leaf4"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- - "TroubleACL-Start-BorderLeaf1"
- borderleaf2:
- - "borderleaf2-base"
- - "TroubleACL-Start-BorderLeaf2"
- routing-troubleshooting:
- spine1:
- - "spine1-base"
- - "TroubleBGP-Spine1"
- spine2:
- - "spine2-base"
- - "TroubleBGP-Spine2"
- spine3:
- - "spine3-base"
- - "TroubleBGP-Spine3"
- spine4:
- - "spine4-base"
- - "TroubleBGP-Spine4"
- leaf1:
- - "leaf1-base"
- - "TroubleBGP-Start-Leaf1"
- leaf2:
- - "leaf2-base"
- - "TroubleBGP-Start-Leaf2"
- leaf3:
- - "leaf3-base"
- - "TroubleBGP-Start-Leaf3"
- leaf4:
- - "leaf4-base"
- - "TroubleBGP-Leaf4"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- - "TroubleBGP-BorderLeaf1"
- borderleaf2:
- - "borderleaf2-base"
- - "TroubleBGP-BorderLeaf2"
- OSPF-MA-Start:
- spine1:
- - "spine1-base"
- - "Spine1-OSPFMultiArea-Start"
- spine2:
- - "spine2-base"
- - "Spine2-OSPFMultiArea-Start"
- spine3:
- - "spine3-base"
- - "Spine3-OSPFMultiArea-Start"
- spine4:
- - "spine4-base"
- - "Spine4-OSPFMultiArea-Start"
- leaf1:
- - "leaf1-base"
- - "Leaf1-OSPFMultiaArea-Start"
- leaf2:
- - "leaf2-base"
- - "Leaf2-OSPFMultiaArea-Start"
- leaf3:
- - "leaf3-base"
- - "Leaf3-OSPFMultiaArea-Start"
- leaf4:
- - "leaf4-base"
- - "Leaf4-OSPFMultiaArea-Start"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- - "BorderLeaf1-OSPFMultiArea-Start"
- borderleaf2:
- - "borderleaf2-base"
- - "BorderLeaf2-OSPFMultiArea-Start"
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/files/scripts/Authenticate-CVP b/topologies/training-level-2-cl/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-level-2-cl/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-level-2-cl/files/scripts/Authenticate-CVP2 b/topologies/training-level-2-cl/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-2-cl/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-2-cl/files/scripts/Authenticate-CVP3 b/topologies/training-level-2-cl/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-level-2-cl/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-2-cl/files/scripts/Configlet1 b/topologies/training-level-2-cl/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-2-cl/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-2-cl/files/scripts/ConfigletChange b/topologies/training-level-2-cl/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-level-2-cl/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-2-cl/files/scripts/ConfigletDetail b/topologies/training-level-2-cl/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-level-2-cl/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-level-2-cl/files/scripts/ConfigletHistory b/topologies/training-level-2-cl/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-level-2-cl/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-level-2-cl/files/scripts/TaskBase b/topologies/training-level-2-cl/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-level-2-cl/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-2-cl/files/scripts/TaskCVP1 b/topologies/training-level-2-cl/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-level-2-cl/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-level-2-cl/files/scripts/TaskExecute b/topologies/training-level-2-cl/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-level-2-cl/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-level-2-cl/files/scripts/TaskLog b/topologies/training-level-2-cl/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-2-cl/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-2-cl/files/scripts/TaskLog1 b/topologies/training-level-2-cl/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-2-cl/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-2-cl/files/scripts/TaskLogView b/topologies/training-level-2-cl/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-level-2-cl/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-2-cl/files/scripts/TaskNote b/topologies/training-level-2-cl/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-level-2-cl/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-level-2-cl/labguides/.gitignore b/topologies/training-level-2-cl/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-level-2-cl/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-level-2-cl/labguides/Makefile b/topologies/training-level-2-cl/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-level-2-cl/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/labguides/readme.md b/topologies/training-level-2-cl/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-level-2-cl/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-level-2-cl/labguides/source/_static/arista_logo.png b/topologies/training-level-2-cl/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-level-2-cl/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-level-2-cl/labguides/source/_static/arista_logo_160by26.png b/topologies/training-level-2-cl/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-level-2-cl/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-level-2-cl/labguides/source/_static/arista_logo_320by52.png b/topologies/training-level-2-cl/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-level-2-cl/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-level-2-cl/labguides/source/_static/cloudvision-icon.png b/topologies/training-level-2-cl/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-level-2-cl/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-level-2-cl/labguides/source/_static/logo.jpg b/topologies/training-level-2-cl/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-2-cl/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-2-cl/labguides/source/_static/my-styles.css b/topologies/training-level-2-cl/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-level-2-cl/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-level-2-cl/labguides/source/conf.py b/topologies/training-level-2-cl/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-level-2-cl/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-level-2-cl/labguides/source/connecting.rst b/topologies/training-level-2-cl/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-level-2-cl/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-level-2-cl/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-level-2-cl/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-level-2-cl/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-level-2-cl/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-level-2-cl/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-level-2-cl/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-level-2-cl/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-level-2-cl/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-level-2-cl/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-level-2-cl/labguides/source/images/logo.jpg b/topologies/training-level-2-cl/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-2-cl/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-2-cl/labguides/source/index.rst b/topologies/training-level-2-cl/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-level-2-cl/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-level-2-cl/topo_build.yml b/topologies/training-level-2-cl/topo_build.yml
deleted file mode 100644
index 9ccba5edb..000000000
--- a/topologies/training-level-2-cl/topo_build.yml
+++ /dev/null
@@ -1,385 +0,0 @@
-host_cpu: 4
-cvp_cpu: 32
-cvp_ram: 42
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - spine1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet3
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet3
- port: Ethernet8
- - spine2:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet4
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet4
- port: Ethernet8
- - spine3:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: spine4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet5
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet5
- port: Ethernet8
- - spine4:
- ip_addr: 192.168.0.14
- sys_mac: 00:1c:73:b4:c6:01
- neighbors:
- - neighborDevice: spine3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet6
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet6
- port: Ethernet8
- - leaf1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet2
- port: Ethernet10
- - leaf3:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf4:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet2
- port: Ethernet10
- - borderleaf1:
- ip_addr: 192.168.0.25
- sys_mac: 00:1c:73:c5:c6:01
- neighbors:
- - neighborDevice: borderleaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet7
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet7
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet7
- port: Ethernet6
- - borderleaf2:
- ip_addr: 192.168.0.26
- sys_mac: 00:1c:73:c6:c6:01
- neighbors:
- - neighborDevice: borderleaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet8
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet8
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet8
- port: Ethernet6
- - host1:
- ip_addr: 192.168.0.51
- sys_mac: 00:1c:73:f1:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet7
- port: Ethernet2
- - host2:
- ip_addr: 192.168.0.52
- sys_mac: 00:1c:73:f2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet9
- port: Ethernet2
- - host3:
- ip_addr: 192.168.0.53
- sys_mac: 00:1c:73:f3:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet7
- port: Ethernet2
- - host4:
- ip_addr: 192.168.0.54
- sys_mac: 00:1c:73:f4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet9
- port: Ethernet2
-servers:
- - host5:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.101
- port : 6001
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet8
- port: Ethernet2
- - host6:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.102
- port : 6002
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet10
- port: Ethernet2
- - host7:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.103
- port : 6003
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet8
- port: Ethernet2
- - host8:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.104
- port : 6004
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet10
- port: Ethernet2
-additional_ssh_nodes:
-additional_clab_nodes:
diff --git a/topologies/training-level-3-cl/atd-topo-bkp-2.png b/topologies/training-level-3-cl/atd-topo-bkp-2.png
deleted file mode 100644
index ce621aec8..000000000
Binary files a/topologies/training-level-3-cl/atd-topo-bkp-2.png and /dev/null differ
diff --git a/topologies/training-level-3-cl/atd-topo-bkp.png b/topologies/training-level-3-cl/atd-topo-bkp.png
deleted file mode 100644
index 4cc023b85..000000000
Binary files a/topologies/training-level-3-cl/atd-topo-bkp.png and /dev/null differ
diff --git a/topologies/training-level-3-cl/atd-topo.png b/topologies/training-level-3-cl/atd-topo.png
deleted file mode 100644
index 53ba5d7d9..000000000
Binary files a/topologies/training-level-3-cl/atd-topo.png and /dev/null differ
diff --git a/topologies/training-level-3-cl/configlets/ATD-INFRA b/topologies/training-level-3-cl/configlets/ATD-INFRA
deleted file mode 100644
index de87bc743..000000000
--- a/topologies/training-level-3-cl/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-level-3-cl/configlets/Base-Builder.py b/topologies/training-level-3-cl/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-level-3-cl/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/configlets/BorderLeaf1-Multicast-Start b/topologies/training-level-3-cl/configlets/BorderLeaf1-Multicast-Start
deleted file mode 100644
index cb538eb71..000000000
--- a/topologies/training-level-3-cl/configlets/BorderLeaf1-Multicast-Start
+++ /dev/null
@@ -1,54 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.5.1/30
-interface Ethernet4
- no switchport
- ip address 10.10.5.5/30
-interface Ethernet5
- no switchport
- ip address 10.10.5.9/30
-interface Ethernet6
- no switchport
- ip address 10.10.5.13/30
-
-interface Loopback0
- ip address 10.31.31.31/32
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65500
- router-id 10.31.31.31
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
-
- neighbor 10.10.5.2 peer group SpineUnderlay
- neighbor 10.10.5.6 peer group SpineUnderlay
- neighbor 10.10.5.10 peer group SpineUnderlay
- neighbor 10.10.5.14 peer group SpineUnderlay
-
- neighbor 10.10.5.2 description Spine1
- neighbor 10.10.5.6 description Spine2
- neighbor 10.10.5.10 description Spine3
- neighbor 10.10.5.14 description Spine4
-
- neighbor SpineUnderlay remote-as 65100
- neighbor SpineUnderlay maximum-routes 12000
-
-
- address-family ipv4
- network 10.31.31.31/32
- neighbor 10.10.5.2 activate
- neighbor 10.10.5.6 activate
- neighbor 10.10.5.10 activate
- neighbor 10.10.5.12 activate
- neighbor SpineUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/configlets/BorderLeaf2-Multicast-Start b/topologies/training-level-3-cl/configlets/BorderLeaf2-Multicast-Start
deleted file mode 100644
index 804e70667..000000000
--- a/topologies/training-level-3-cl/configlets/BorderLeaf2-Multicast-Start
+++ /dev/null
@@ -1,54 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.6.1/30
-interface Ethernet4
- no switchport
- ip address 10.10.6.5/30
-interface Ethernet5
- no switchport
- ip address 10.10.6.9/30
-interface Ethernet6
- no switchport
- ip address 10.10.6.13/30
-
-interface Loopback0
- ip address 10.32.32.32/32
-!
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65500
- router-id 10.32.32.32
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
-
- neighbor 10.10.6.2 peer group SpineUnderlay
- neighbor 10.10.6.6 peer group SpineUnderlay
- neighbor 10.10.6.10 peer group SpineUnderlay
- neighbor 10.10.6.14 peer group SpineUnderlay
-
- neighbor 10.10.6.2 description Spine1
- neighbor 10.10.6.6 description Spine2
- neighbor 10.10.6.10 description Spine3
- neighbor 10.10.6.14 description Spine4
-
- neighbor SpineUnderlay remote-as 65100
- neighbor SpineUnderlay maximum-routes 12000
-
- address-family ipv4
- network 10.32.32.32/32
- neighbor 10.10.6.2 activate
- neighbor 10.10.6.6 activate
- neighbor 10.10.6.10 activate
- neighbor 10.10.6.14 activate
- neighbor SpineUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/configlets/Leaf1-Multicast-Start b/topologies/training-level-3-cl/configlets/Leaf1-Multicast-Start
deleted file mode 100644
index 3894a55c2..000000000
--- a/topologies/training-level-3-cl/configlets/Leaf1-Multicast-Start
+++ /dev/null
@@ -1,50 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.1.2/30
-interface Ethernet4
- no switchport
- ip address 10.10.2.2/30
-interface Ethernet5
- no switchport
- ip address 10.10.3.2/30
-interface Ethernet6
- no switchport
- ip address 10.10.4.2/30
-
-interface Loopback0
- ip address 10.11.11.11/32
-!
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65001
- router-id 10.11.11.11
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
-
- neighbor 10.10.1.1 peer group SpineUnderlay
- neighbor 10.10.2.1 peer group SpineUnderlay
- neighbor 10.10.3.1 peer group SpineUnderlay
- neighbor 10.10.4.1 peer group SpineUnderlay
-
- neighbor 10.10.1.1 description Spine1
- neighbor 10.10.2.1 description Spine2
- neighbor 10.10.3.1 description Spine3
- neighbor 10.10.4.1 description Spine4
-
- neighbor SpineUnderlay remote-as 65100
- neighbor SpineUnderlay maximum-routes 12000
-
- address-family ipv4
- network 10.11.11.11/32
- neighbor SpineUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/configlets/Leaf2-Multicast-Start b/topologies/training-level-3-cl/configlets/Leaf2-Multicast-Start
deleted file mode 100644
index f8654840f..000000000
--- a/topologies/training-level-3-cl/configlets/Leaf2-Multicast-Start
+++ /dev/null
@@ -1,51 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.1.6/30
-interface Ethernet4
- no switchport
- ip address 10.10.2.6/30
-interface Ethernet5
- no switchport
- ip address 10.10.3.6/30
-interface Ethernet6
- no switchport
- ip address 10.10.4.6/30
-
-interface Loopback0
- ip address 10.12.12.12/32
-!
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65002
- router-id 10.12.12.12
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
-
- neighbor 10.10.1.5 peer group SpineUnderlay
- neighbor 10.10.2.5 peer group SpineUnderlay
- neighbor 10.10.3.5 peer group SpineUnderlay
- neighbor 10.10.4.5 peer group SpineUnderlay
-
- neighbor 10.10.1.5 description Spine1
- neighbor 10.10.2.5 description Spine2
- neighbor 10.10.3.5 description Spine3
- neighbor 10.10.4.5 description Spine4
-
-
- neighbor SpineUnderlay remote-as 65100
- neighbor SpineUnderlay maximum-routes 12000
-
-address-family ipv4
- network 10.12.12.12/32
- neighbor SpineUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/configlets/Leaf3-Multicast-Start b/topologies/training-level-3-cl/configlets/Leaf3-Multicast-Start
deleted file mode 100644
index 2e1e7e2be..000000000
--- a/topologies/training-level-3-cl/configlets/Leaf3-Multicast-Start
+++ /dev/null
@@ -1,50 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.1.10/30
-interface Ethernet4
- no switchport
- ip address 10.10.2.10/30
-interface Ethernet5
- no switchport
- ip address 10.10.3.10/30
-interface Ethernet6
- no switchport
- ip address 10.10.4.10/30
-
-interface Loopback0
- ip address 10.13.13.13/32
-!
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65003
- router-id 10.13.13.13
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
-
- neighbor 10.10.1.9 peer group SpineUnderlay
- neighbor 10.10.2.9 peer group SpineUnderlay
- neighbor 10.10.3.9 peer group SpineUnderlay
- neighbor 10.10.4.9 peer group SpineUnderlay
-
- neighbor 10.10.1.9 description Spine1
- neighbor 10.10.2.9 description Spine2
- neighbor 10.10.3.9 description Spine3
- neighbor 10.10.4.9 description Spine4
-
- neighbor SpineUnderlay remote-as 65100
- neighbor SpineUnderlay maximum-routes 12000
-
-address-family ipv4
- network 10.13.13.13/32
- neighbor SpineUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/configlets/Leaf4-Multicast-Start b/topologies/training-level-3-cl/configlets/Leaf4-Multicast-Start
deleted file mode 100644
index e441170ff..000000000
--- a/topologies/training-level-3-cl/configlets/Leaf4-Multicast-Start
+++ /dev/null
@@ -1,51 +0,0 @@
-
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.1.14/30
-interface Ethernet4
- no switchport
- ip address 10.10.2.14/30
-interface Ethernet5
- no switchport
- ip address 10.10.3.14/30
-interface Ethernet6
- no switchport
- ip address 10.10.4.14/30
-
-interface Loopback0
- ip address 10.14.14.14/32
-!
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65004
-router-id 10.14.14.14
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
-
- neighbor 10.10.1.13 peer group SpineUnderlay
- neighbor 10.10.2.13 peer group SpineUnderlay
- neighbor 10.10.3.13 peer group SpineUnderlay
- neighbor 10.10.4.13 peer group SpineUnderlay
-
- neighbor 10.10.1.13 description Spine1
- neighbor 10.10.2.13 description Spine2
- neighbor 10.10.3.13 description Spine3
- neighbor 10.10.4.13 description Spine4
-
- neighbor SpineUnderlay remote-as 65100
- neighbor SpineUnderlay maximum-routes 12000
-
-address-family ipv4
- network 10.14.14.14/32
- neighbor SpineUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/configlets/Spine1-Multicast-Start b/topologies/training-level-3-cl/configlets/Spine1-Multicast-Start
deleted file mode 100644
index 186853976..000000000
--- a/topologies/training-level-3-cl/configlets/Spine1-Multicast-Start
+++ /dev/null
@@ -1,76 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.1.1/30
-interface Ethernet4
- no switchport
- ip address 10.10.1.5/30
-interface Ethernet5
- no switchport
- ip address 10.10.1.9/30
-interface Ethernet6
- no switchport
- ip address 10.10.1.13/30
-interface Ethernet7
- no switchport
- ip address 10.10.5.2/30
-interface Ethernet8
- no switchport
- ip address 10.10.6.2/30
-interface Loopback0
- ip address 10.21.21.21/32
-!
-
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65100
- router-id 10.21.21.21
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
- neighbor 10.10.1.2 description Leaf1
- neighbor 10.10.1.2 remote-as 65001
- neighbor 10.10.1.2 maximum-routes 12000
-
-
- neighbor 10.10.1.6 description Leaf2
- neighbor 10.10.1.6 remote-as 65002
- neighbor 10.10.1.6 maximum-routes 12000
-
-
- neighbor 10.10.1.10 description Leaf3
- neighbor 10.10.1.10 remote-as 65003
- neighbor 10.10.1.10 maximum-routes 12000
-
-
- neighbor 10.10.1.14 description Leaf4
- neighbor 10.10.1.14 remote-as 65004
- neighbor 10.10.1.14 maximum-routes 12000
-
- neighbor BorderleafUnderlay peer group
- neighbor BorderleafUnderlay maximum-routes 12000
- neighbor BorderleafUnderlay remote-as 65500
-
-
- neighbor 10.10.5.1 peer group BorderleafUnderlay
- neighbor 10.10.5.1 description Borderleaf1
- neighbor 10.10.6.1 peer group BorderleafUnderlay
- neighbor 10.10.6.1 description Borderleaf2
-
- !
- !
- address-family ipv4
- network 10.21.21.21/32
- neighbor 10.10.1.2 activate
- neighbor 10.10.1.6 activate
- neighbor 10.10.1.10 activate
- neighbor 10.10.1.14 activate
- neighbor BorderleafUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/configlets/Spine2-Multicast-Start b/topologies/training-level-3-cl/configlets/Spine2-Multicast-Start
deleted file mode 100644
index 0161e765b..000000000
--- a/topologies/training-level-3-cl/configlets/Spine2-Multicast-Start
+++ /dev/null
@@ -1,78 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.2.1/30
-interface Ethernet4
- no switchport
- ip address 10.10.2.5/30
-interface Ethernet5
- no switchport
- ip address 10.10.2.9/30
-interface Ethernet6
- no switchport
- ip address 10.10.2.13/30
-interface Ethernet7
- no switchport
- ip address 10.10.5.6/30
-interface Ethernet8
- no switchport
- ip address 10.10.6.6/30
-interface Loopback0
- ip address 10.22.22.22/32
-!
-
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65100
- router-id 10.22.22.22
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
-
-neighbor 10.10.2.2 description Leaf1
-neighbor 10.10.2.2 remote-as 65001
-neighbor 10.10.2.2 maximum-routes 12000
-
-
-
-neighbor 10.10.2.6 description Leaf2
-neighbor 10.10.2.6 remote-as 65002
-neighbor 10.10.2.6 maximum-routes 12000
-
-
-neighbor 10.10.2.10 description Leaf3
-neighbor 10.10.2.10 remote-as 65003
-neighbor 10.10.2.10 maximum-routes 12000
-
-
-neighbor 10.10.2.14 description Leaf4
-neighbor 10.10.2.14 remote-as 65004
-neighbor 10.10.2.14 maximum-routes 12000
-
-neighbor BorderleafUnderlay peer group
-neighbor BorderleafUnderlay maximum-routes 12000
-neighbor BorderleafUnderlay remote-as 65500
-
-
-neighbor 10.10.5.5 peer group BorderleafUnderlay
-neighbor 10.10.5.5 description Borderleaf1
-neighbor 10.10.6.5 peer group BorderleafUnderlay
-neighbor 10.10.6.5 description Borderleaf2
-
-!
-!
-address-family ipv4
- network 10.22.22.22/32
- neighbor 10.10.2.2 activate
- neighbor 10.10.2.6 activate
- neighbor 10.10.2.10 activate
- neighbor 10.10.2.14 activate
- neighbor BorderleafUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/configlets/Spine3-Multicast-Start b/topologies/training-level-3-cl/configlets/Spine3-Multicast-Start
deleted file mode 100644
index 6c9e3afc2..000000000
--- a/topologies/training-level-3-cl/configlets/Spine3-Multicast-Start
+++ /dev/null
@@ -1,78 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.3.1/30
-interface Ethernet4
- no switchport
- ip address 10.10.3.5/30
-interface Ethernet5
- no switchport
- ip address 10.10.3.9/30
-interface Ethernet6
- no switchport
- ip address 10.10.3.13/30
-interface Ethernet7
- no switchport
- ip address 10.10.5.10/30
-interface Ethernet8
- no switchport
- ip address 10.10.6.10/30
-interface Loopback0
- ip address 10.23.23.23/32
-!
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65100
- router-id 10.23.23.23
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
- neighbor 10.10.3.2 description Leaf
- neighbor 10.10.3.2 remote-as 65001
- neighbor 10.10.3.2 maximum-routes 12000
-
-
-
- neighbor 10.10.3.6 description Leaf2
- neighbor 10.10.3.6 remote-as 65002
- neighbor 10.10.3.6 maximum-routes 12000
-
-
- neighbor 10.10.3.10 description Leaf3
- neighbor 10.10.3.10 remote-as 65003
- neighbor 10.10.3.10 maximum-routes 12000
-
-
- neighbor 10.10.3.14 description Leaf4
- neighbor 10.10.3.14 remote-as 65004
- neighbor 10.10.3.14 maximum-routes 12000
-
-
- neighbor BorderleafUnderlay peer group
- neighbor BorderleafUnderlay maximum-routes 12000
- neighbor BorderleafUnderlay remote-as 65500
-
-
- neighbor 10.10.5.9 peer group BorderleafUnderlay
- neighbor 10.10.5.9 description Borderleaf1
- neighbor 10.10.6.9 peer group BorderleafUnderlay
- neighbor 10.10.6.9 description Borderleaf2
- !
- !
- address-family ipv4
- network 10.23.23.23/32
- neighbor 10.10.3.2 activate
- neighbor 10.10.3.6 activate
- neighbor 10.10.3.10 activate
- neighbor 10.10.3.14 activate
- neighbor BorderleafUnderlay activate
- redistribute connected
- !
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/configlets/Spine4-Multicast-Start b/topologies/training-level-3-cl/configlets/Spine4-Multicast-Start
deleted file mode 100644
index 91c0fa705..000000000
--- a/topologies/training-level-3-cl/configlets/Spine4-Multicast-Start
+++ /dev/null
@@ -1,72 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.4.1/30
-interface Ethernet4
- no switchport
- ip address 10.10.4.5/30
-interface Ethernet5
- no switchport
- ip address 10.10.4.9/30
-interface Ethernet6
- no switchport
- ip address 10.10.4.13/30
-interface Ethernet7
- no switchport
- ip address 10.10.5.14/30
-interface Ethernet8
- no switchport
- ip address 10.10.6.14/30
-interface Loopback0
- ip address 10.24.24.24/32
-!
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65100
- router-id 10.24.24.24
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
- neighbor 10.10.4.2 description Leaf1
- neighbor 10.10.4.2 remote-as 65001
- neighbor 10.10.4.2 maximum-routes 12000
-
- neighbor 10.10.4.6 description Leaf2
- neighbor 10.10.4.6 remote-as 65002
- neighbor 10.10.4.6 maximum-routes 12000
-
- neighbor 10.10.4.10 description Leaf3
- neighbor 10.10.4.10 remote-as 65003
- neighbor 10.10.4.10 maximum-routes 12000
-
- neighbor 10.10.4.14 description Leaf4
- neighbor 10.10.4.14 remote-as 65004
- neighbor 10.10.4.14 maximum-routes 12000
-
- neighbor BorderleafUnderlay peer group
- neighbor BorderleafUnderlay maximum-routes 12000
- neighbor BorderleafUnderlay remote-as 65500
-
- neighbor 10.10.5.13 peer group BorderleafUnderlay
- neighbor 10.10.5.13 description Borderleaf1
- neighbor 10.10.6.13 peer group BorderleafUnderlay
- neighbor 10.10.6.13 description Borderleaf2
- !
- !
- address-family ipv4
- network 10.24.24.24/32
- neighbor 10.10.4.2 activate
- neighbor 10.10.4.6 activate
- neighbor 10.10.4.10 activate
- neighbor 10.10.4.14 activate
- neighbor BorderleafUnderlay activate
- redistribute connected
- !
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/configlets/borderleaf1-base b/topologies/training-level-3-cl/configlets/borderleaf1-base
deleted file mode 100644
index e274c6eb4..000000000
--- a/topologies/training-level-3-cl/configlets/borderleaf1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.25/24
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
diff --git a/topologies/training-level-3-cl/configlets/borderleaf2-base b/topologies/training-level-3-cl/configlets/borderleaf2-base
deleted file mode 100644
index a7778e0b4..000000000
--- a/topologies/training-level-3-cl/configlets/borderleaf2-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.26/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-3-cl/configlets/host1-base b/topologies/training-level-3-cl/configlets/host1-base
deleted file mode 100644
index 915d58edb..000000000
--- a/topologies/training-level-3-cl/configlets/host1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host1
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.51/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-3-cl/configlets/host2-base b/topologies/training-level-3-cl/configlets/host2-base
deleted file mode 100644
index 63f0c9c38..000000000
--- a/topologies/training-level-3-cl/configlets/host2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host2
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.52/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-3-cl/configlets/host3-base b/topologies/training-level-3-cl/configlets/host3-base
deleted file mode 100644
index 979a49b28..000000000
--- a/topologies/training-level-3-cl/configlets/host3-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host3
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.53/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-3-cl/configlets/host4-base b/topologies/training-level-3-cl/configlets/host4-base
deleted file mode 100644
index f85e77a77..000000000
--- a/topologies/training-level-3-cl/configlets/host4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host4
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.54/24
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-
diff --git a/topologies/training-level-3-cl/configlets/leaf1-base b/topologies/training-level-3-cl/configlets/leaf1-base
deleted file mode 100644
index 7b316b33b..000000000
--- a/topologies/training-level-3-cl/configlets/leaf1-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.21/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-3-cl/configlets/leaf2-base b/topologies/training-level-3-cl/configlets/leaf2-base
deleted file mode 100644
index 22fffb444..000000000
--- a/topologies/training-level-3-cl/configlets/leaf2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.22/24
-
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-3-cl/configlets/leaf3-base b/topologies/training-level-3-cl/configlets/leaf3-base
deleted file mode 100644
index 37e7bc8d3..000000000
--- a/topologies/training-level-3-cl/configlets/leaf3-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.23/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-3-cl/configlets/leaf4-base b/topologies/training-level-3-cl/configlets/leaf4-base
deleted file mode 100644
index f0cff7b25..000000000
--- a/topologies/training-level-3-cl/configlets/leaf4-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.24/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-3-cl/configlets/spine1-base b/topologies/training-level-3-cl/configlets/spine1-base
deleted file mode 100644
index 5e9d072b1..000000000
--- a/topologies/training-level-3-cl/configlets/spine1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.11/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-3-cl/configlets/spine2-base b/topologies/training-level-3-cl/configlets/spine2-base
deleted file mode 100644
index cc9d0bef1..000000000
--- a/topologies/training-level-3-cl/configlets/spine2-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname spine2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.12/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-3-cl/configlets/spine3-base b/topologies/training-level-3-cl/configlets/spine3-base
deleted file mode 100644
index 853f6564a..000000000
--- a/topologies/training-level-3-cl/configlets/spine3-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.13/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-3-cl/configlets/spine4-base b/topologies/training-level-3-cl/configlets/spine4-base
deleted file mode 100644
index 240453581..000000000
--- a/topologies/training-level-3-cl/configlets/spine4-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.14/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-3-cl/files/.ansible.cfg b/topologies/training-level-3-cl/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-level-3-cl/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-level-3-cl/files/.screenrc b/topologies/training-level-3-cl/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-level-3-cl/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-level-3-cl/files/MenuOptions.yaml b/topologies/training-level-3-cl/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-level-3-cl/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/files/apps/coder/coder.yaml b/topologies/training-level-3-cl/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-level-3-cl/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/files/apps/coder/labfiles/.placeholder b/topologies/training-level-3-cl/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-level-3-cl/files/apps/gui/host5/arista/host-startup.sh b/topologies/training-level-3-cl/files/apps/gui/host5/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-3-cl/files/apps/gui/host5/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/files/apps/gui/host6/arista/host-startup.sh b/topologies/training-level-3-cl/files/apps/gui/host6/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-3-cl/files/apps/gui/host6/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/files/apps/gui/host7/arista/host-startup.sh b/topologies/training-level-3-cl/files/apps/gui/host7/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-3-cl/files/apps/gui/host7/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/files/apps/gui/host8/arista/host-startup.sh b/topologies/training-level-3-cl/files/apps/gui/host8/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-3-cl/files/apps/gui/host8/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/files/apps/ssh/web.json b/topologies/training-level-3-cl/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-level-3-cl/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/files/apps/uilanding/modules.yaml b/topologies/training-level-3-cl/files/apps/uilanding/modules.yaml
deleted file mode 100644
index c983faac0..000000000
--- a/topologies/training-level-3-cl/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "22,218,167,296"
- ip: "192.168.0.11"
- Spine2:
- coords: "356,215,517,300"
- ip: "192.168.0.12"
- Spine3:
- coords: "555,214,724,294"
- ip: "192.168.0.13"
- Spine4:
- coords: "925,218,1077,293"
- ip: "192.168.0.14"
- Leaf1:
- coords: "16,424,165,501"
- ip: "192.168.0.21"
- Leaf2:
- coords: "353,425,520,493"
- ip: "192.168.0.22"
- Leaf3:
- coords: "569,430,714,499"
- ip: "192.168.0.23"
- Leaf4:
- coords: "921,423,1074,502"
- ip: "192.168.0.24"
- BorderLeaf1:
- coords: "370,57,511,138"
- ip: "192.168.0.25"
- BorderLeaf2:
- coords: "561,65,726,145"
- ip: "192.168.0.26"
- Host1:
- coords: "15,534,149,611"
- ip: "192.168.0.51"
- Host2:
- coords: "365,539,504,619"
- ip: "192.168.0.52"
- Host3:
- coords: "566,542,711,620"
- ip: "192.168.0.53"
- Host4:
- coords: "929,542,1075,615"
- ip: "192.168.0.54"
- servers:
- Host5:
- coords: "182,545,307,636"
- ip: "192.168.0.101"
- port : 6001
- Host6:
- coords: "183,650,312,744"
- ip: "192.168.0.102"
- port : 6002
- Host7:
- coords: "747,545,875,636"
- ip: "192.168.0.103"
- port : 6003
- Host8:
- coords: "752,645,877,731"
- ip: "192.168.0.104"
- port : 6004
diff --git a/topologies/training-level-3-cl/files/apps/webui/.vncpass_clear b/topologies/training-level-3-cl/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-level-3-cl/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/files/cvp/cvp_info.yaml b/topologies/training-level-3-cl/files/cvp/cvp_info.yaml
deleted file mode 100644
index 7e796e77f..000000000
--- a/topologies/training-level-3-cl/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf:
- parent: Tenant
- nodes:
- - leaf1
- - leaf2
- - leaf3
- - leaf4
- Borderleaf:
- parent: Tenant
- nodes:
- - borderleaf1
- - borderleaf2
- Spine:
- parent: Tenant
- nodes:
- - spine1
- - spine2
- - spine3
- - spine4
- Hosts:
- parent: Tenant
- nodes:
- - host1
- - host2
- - host3
- - host4
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- spine1:
- - spine1-base
- spine2:
- - spine2-base
- spine3:
- - spine3-base
- spine4:
- - spine4-base
- leaf1:
- - leaf1-base
- leaf2:
- - leaf2-base
- borderleaf1:
- - borderleaf1-base
- borderleaf2:
- - borderleaf2-base
- leaf3:
- - leaf3-base
- leaf4:
- - leaf4-base
- host3:
- - host3-base
- host4:
- - host4-base
- host1:
- - host1-base
- host2:
- - host2-base
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/files/hosts b/topologies/training-level-3-cl/files/hosts
deleted file mode 100644
index b01ba8483..000000000
--- a/topologies/training-level-3-cl/files/hosts
+++ /dev/null
@@ -1,24 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.101 host5
-192.168.0.102 host6
-192.168.0.103 host7
-192.168.0.104 host8
-192.168.0.5 cvp
diff --git a/topologies/training-level-3-cl/files/menus/default.yaml b/topologies/training-level-3-cl/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-level-3-cl/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/files/menus/training-l3.yaml b/topologies/training-level-3-cl/files/menus/training-l3.yaml
deleted file mode 100644
index 0b24a5ed6..000000000
--- a/topologies/training-level-3-cl/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,137 +0,0 @@
----
- lab_list:
- reset:
- description: "Reset All Devices to Base Lab (reset)"
- l2evpn:
- description: "Start L2EVPN LAB"
- l3evpn:
- description: "Start L3EVPN LAB"
- multicast:
- description: "Start MULTICAST LAB"
- labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- l2evpn:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- l3evpn:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- multicast:
- spine1:
- - "spine1-base"
- - "Spine1-Multicast-Start"
- spine2:
- - "spine2-base"
- - "Spine2-Multicast-Start"
- spine3:
- - "spine3-base"
- - "Spine3-Multicast-Start"
- spine4:
- - "spine4-base"
- - "Spine4-Multicast-Start"
- leaf1:
- - "leaf1-base"
- - "Leaf1-Multicast-Start"
- leaf2:
- - "leaf2-base"
- - "Leaf2-Multicast-Start"
- leaf3:
- - "leaf3-base"
- - "Leaf3-Multicast-Start"
- leaf4:
- - "leaf4-base"
- - "Leaf4-Multicast-Start"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- - "BorderLeaf1-Multicast-Start"
- borderleaf2:
- - "borderleaf2-base"
- - "BorderLeaf2-Multicast-Start"
diff --git a/topologies/training-level-3-cl/files/scripts/Authenticate-CVP b/topologies/training-level-3-cl/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-level-3-cl/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-level-3-cl/files/scripts/Authenticate-CVP2 b/topologies/training-level-3-cl/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-3-cl/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-3-cl/files/scripts/Authenticate-CVP3 b/topologies/training-level-3-cl/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-level-3-cl/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-3-cl/files/scripts/Configlet1 b/topologies/training-level-3-cl/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-3-cl/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-3-cl/files/scripts/ConfigletChange b/topologies/training-level-3-cl/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-level-3-cl/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-3-cl/files/scripts/ConfigletDetail b/topologies/training-level-3-cl/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-level-3-cl/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-level-3-cl/files/scripts/ConfigletHistory b/topologies/training-level-3-cl/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-level-3-cl/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-level-3-cl/files/scripts/TaskBase b/topologies/training-level-3-cl/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-level-3-cl/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-3-cl/files/scripts/TaskCVP1 b/topologies/training-level-3-cl/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-level-3-cl/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-level-3-cl/files/scripts/TaskExecute b/topologies/training-level-3-cl/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-level-3-cl/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-level-3-cl/files/scripts/TaskLog b/topologies/training-level-3-cl/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-3-cl/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-3-cl/files/scripts/TaskLog1 b/topologies/training-level-3-cl/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-3-cl/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-3-cl/files/scripts/TaskLogView b/topologies/training-level-3-cl/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-level-3-cl/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-3-cl/files/scripts/TaskNote b/topologies/training-level-3-cl/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-level-3-cl/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-level-3-cl/labguides/.gitignore b/topologies/training-level-3-cl/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-level-3-cl/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-level-3-cl/labguides/Makefile b/topologies/training-level-3-cl/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-level-3-cl/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/labguides/readme.md b/topologies/training-level-3-cl/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-level-3-cl/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-level-3-cl/labguides/source/_static/arista_logo.png b/topologies/training-level-3-cl/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-level-3-cl/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-level-3-cl/labguides/source/_static/arista_logo_160by26.png b/topologies/training-level-3-cl/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-level-3-cl/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-level-3-cl/labguides/source/_static/arista_logo_320by52.png b/topologies/training-level-3-cl/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-level-3-cl/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-level-3-cl/labguides/source/_static/cloudvision-icon.png b/topologies/training-level-3-cl/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-level-3-cl/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-level-3-cl/labguides/source/_static/logo.jpg b/topologies/training-level-3-cl/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-3-cl/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-3-cl/labguides/source/_static/my-styles.css b/topologies/training-level-3-cl/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-level-3-cl/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-level-3-cl/labguides/source/conf.py b/topologies/training-level-3-cl/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-level-3-cl/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-level-3-cl/labguides/source/connecting.rst b/topologies/training-level-3-cl/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-level-3-cl/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-level-3-cl/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-level-3-cl/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-level-3-cl/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-level-3-cl/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-level-3-cl/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-level-3-cl/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-level-3-cl/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-level-3-cl/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-level-3-cl/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-level-3-cl/labguides/source/images/logo.jpg b/topologies/training-level-3-cl/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-3-cl/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-3-cl/labguides/source/index.rst b/topologies/training-level-3-cl/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-level-3-cl/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-level-3-cl/topo_build.yml b/topologies/training-level-3-cl/topo_build.yml
deleted file mode 100644
index 9ccba5edb..000000000
--- a/topologies/training-level-3-cl/topo_build.yml
+++ /dev/null
@@ -1,385 +0,0 @@
-host_cpu: 4
-cvp_cpu: 32
-cvp_ram: 42
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - spine1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet3
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet3
- port: Ethernet8
- - spine2:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet4
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet4
- port: Ethernet8
- - spine3:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: spine4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet5
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet5
- port: Ethernet8
- - spine4:
- ip_addr: 192.168.0.14
- sys_mac: 00:1c:73:b4:c6:01
- neighbors:
- - neighborDevice: spine3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet6
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet6
- port: Ethernet8
- - leaf1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet2
- port: Ethernet10
- - leaf3:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf4:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet2
- port: Ethernet10
- - borderleaf1:
- ip_addr: 192.168.0.25
- sys_mac: 00:1c:73:c5:c6:01
- neighbors:
- - neighborDevice: borderleaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet7
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet7
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet7
- port: Ethernet6
- - borderleaf2:
- ip_addr: 192.168.0.26
- sys_mac: 00:1c:73:c6:c6:01
- neighbors:
- - neighborDevice: borderleaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet8
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet8
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet8
- port: Ethernet6
- - host1:
- ip_addr: 192.168.0.51
- sys_mac: 00:1c:73:f1:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet7
- port: Ethernet2
- - host2:
- ip_addr: 192.168.0.52
- sys_mac: 00:1c:73:f2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet9
- port: Ethernet2
- - host3:
- ip_addr: 192.168.0.53
- sys_mac: 00:1c:73:f3:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet7
- port: Ethernet2
- - host4:
- ip_addr: 192.168.0.54
- sys_mac: 00:1c:73:f4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet9
- port: Ethernet2
-servers:
- - host5:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.101
- port : 6001
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet8
- port: Ethernet2
- - host6:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.102
- port : 6002
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet10
- port: Ethernet2
- - host7:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.103
- port : 6003
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet8
- port: Ethernet2
- - host8:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.104
- port : 6004
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet10
- port: Ethernet2
-additional_ssh_nodes:
-additional_clab_nodes:
diff --git a/topologies/training-level-5-cl/atd-topo.png b/topologies/training-level-5-cl/atd-topo.png
deleted file mode 100644
index 53ba5d7d9..000000000
Binary files a/topologies/training-level-5-cl/atd-topo.png and /dev/null differ
diff --git a/topologies/training-level-5-cl/configlets/ATD-INFRA b/topologies/training-level-5-cl/configlets/ATD-INFRA
deleted file mode 100644
index de87bc743..000000000
--- a/topologies/training-level-5-cl/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-level-5-cl/configlets/Base-Builder.py b/topologies/training-level-5-cl/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-level-5-cl/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/configlets/BorderLeaf1-Multicast-Start b/topologies/training-level-5-cl/configlets/BorderLeaf1-Multicast-Start
deleted file mode 100644
index cb538eb71..000000000
--- a/topologies/training-level-5-cl/configlets/BorderLeaf1-Multicast-Start
+++ /dev/null
@@ -1,54 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.5.1/30
-interface Ethernet4
- no switchport
- ip address 10.10.5.5/30
-interface Ethernet5
- no switchport
- ip address 10.10.5.9/30
-interface Ethernet6
- no switchport
- ip address 10.10.5.13/30
-
-interface Loopback0
- ip address 10.31.31.31/32
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65500
- router-id 10.31.31.31
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
-
- neighbor 10.10.5.2 peer group SpineUnderlay
- neighbor 10.10.5.6 peer group SpineUnderlay
- neighbor 10.10.5.10 peer group SpineUnderlay
- neighbor 10.10.5.14 peer group SpineUnderlay
-
- neighbor 10.10.5.2 description Spine1
- neighbor 10.10.5.6 description Spine2
- neighbor 10.10.5.10 description Spine3
- neighbor 10.10.5.14 description Spine4
-
- neighbor SpineUnderlay remote-as 65100
- neighbor SpineUnderlay maximum-routes 12000
-
-
- address-family ipv4
- network 10.31.31.31/32
- neighbor 10.10.5.2 activate
- neighbor 10.10.5.6 activate
- neighbor 10.10.5.10 activate
- neighbor 10.10.5.12 activate
- neighbor SpineUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/configlets/BorderLeaf2-Multicast-Start b/topologies/training-level-5-cl/configlets/BorderLeaf2-Multicast-Start
deleted file mode 100644
index 804e70667..000000000
--- a/topologies/training-level-5-cl/configlets/BorderLeaf2-Multicast-Start
+++ /dev/null
@@ -1,54 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.6.1/30
-interface Ethernet4
- no switchport
- ip address 10.10.6.5/30
-interface Ethernet5
- no switchport
- ip address 10.10.6.9/30
-interface Ethernet6
- no switchport
- ip address 10.10.6.13/30
-
-interface Loopback0
- ip address 10.32.32.32/32
-!
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65500
- router-id 10.32.32.32
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
-
- neighbor 10.10.6.2 peer group SpineUnderlay
- neighbor 10.10.6.6 peer group SpineUnderlay
- neighbor 10.10.6.10 peer group SpineUnderlay
- neighbor 10.10.6.14 peer group SpineUnderlay
-
- neighbor 10.10.6.2 description Spine1
- neighbor 10.10.6.6 description Spine2
- neighbor 10.10.6.10 description Spine3
- neighbor 10.10.6.14 description Spine4
-
- neighbor SpineUnderlay remote-as 65100
- neighbor SpineUnderlay maximum-routes 12000
-
- address-family ipv4
- network 10.32.32.32/32
- neighbor 10.10.6.2 activate
- neighbor 10.10.6.6 activate
- neighbor 10.10.6.10 activate
- neighbor 10.10.6.14 activate
- neighbor SpineUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/configlets/Leaf1-Multicast-Start b/topologies/training-level-5-cl/configlets/Leaf1-Multicast-Start
deleted file mode 100644
index 3894a55c2..000000000
--- a/topologies/training-level-5-cl/configlets/Leaf1-Multicast-Start
+++ /dev/null
@@ -1,50 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.1.2/30
-interface Ethernet4
- no switchport
- ip address 10.10.2.2/30
-interface Ethernet5
- no switchport
- ip address 10.10.3.2/30
-interface Ethernet6
- no switchport
- ip address 10.10.4.2/30
-
-interface Loopback0
- ip address 10.11.11.11/32
-!
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65001
- router-id 10.11.11.11
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
-
- neighbor 10.10.1.1 peer group SpineUnderlay
- neighbor 10.10.2.1 peer group SpineUnderlay
- neighbor 10.10.3.1 peer group SpineUnderlay
- neighbor 10.10.4.1 peer group SpineUnderlay
-
- neighbor 10.10.1.1 description Spine1
- neighbor 10.10.2.1 description Spine2
- neighbor 10.10.3.1 description Spine3
- neighbor 10.10.4.1 description Spine4
-
- neighbor SpineUnderlay remote-as 65100
- neighbor SpineUnderlay maximum-routes 12000
-
- address-family ipv4
- network 10.11.11.11/32
- neighbor SpineUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/configlets/Leaf2-Multicast-Start b/topologies/training-level-5-cl/configlets/Leaf2-Multicast-Start
deleted file mode 100644
index f8654840f..000000000
--- a/topologies/training-level-5-cl/configlets/Leaf2-Multicast-Start
+++ /dev/null
@@ -1,51 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.1.6/30
-interface Ethernet4
- no switchport
- ip address 10.10.2.6/30
-interface Ethernet5
- no switchport
- ip address 10.10.3.6/30
-interface Ethernet6
- no switchport
- ip address 10.10.4.6/30
-
-interface Loopback0
- ip address 10.12.12.12/32
-!
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65002
- router-id 10.12.12.12
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
-
- neighbor 10.10.1.5 peer group SpineUnderlay
- neighbor 10.10.2.5 peer group SpineUnderlay
- neighbor 10.10.3.5 peer group SpineUnderlay
- neighbor 10.10.4.5 peer group SpineUnderlay
-
- neighbor 10.10.1.5 description Spine1
- neighbor 10.10.2.5 description Spine2
- neighbor 10.10.3.5 description Spine3
- neighbor 10.10.4.5 description Spine4
-
-
- neighbor SpineUnderlay remote-as 65100
- neighbor SpineUnderlay maximum-routes 12000
-
-address-family ipv4
- network 10.12.12.12/32
- neighbor SpineUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/configlets/Leaf3-Multicast-Start b/topologies/training-level-5-cl/configlets/Leaf3-Multicast-Start
deleted file mode 100644
index 2e1e7e2be..000000000
--- a/topologies/training-level-5-cl/configlets/Leaf3-Multicast-Start
+++ /dev/null
@@ -1,50 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.1.10/30
-interface Ethernet4
- no switchport
- ip address 10.10.2.10/30
-interface Ethernet5
- no switchport
- ip address 10.10.3.10/30
-interface Ethernet6
- no switchport
- ip address 10.10.4.10/30
-
-interface Loopback0
- ip address 10.13.13.13/32
-!
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65003
- router-id 10.13.13.13
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
-
- neighbor 10.10.1.9 peer group SpineUnderlay
- neighbor 10.10.2.9 peer group SpineUnderlay
- neighbor 10.10.3.9 peer group SpineUnderlay
- neighbor 10.10.4.9 peer group SpineUnderlay
-
- neighbor 10.10.1.9 description Spine1
- neighbor 10.10.2.9 description Spine2
- neighbor 10.10.3.9 description Spine3
- neighbor 10.10.4.9 description Spine4
-
- neighbor SpineUnderlay remote-as 65100
- neighbor SpineUnderlay maximum-routes 12000
-
-address-family ipv4
- network 10.13.13.13/32
- neighbor SpineUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/configlets/Leaf4-Multicast-Start b/topologies/training-level-5-cl/configlets/Leaf4-Multicast-Start
deleted file mode 100644
index e441170ff..000000000
--- a/topologies/training-level-5-cl/configlets/Leaf4-Multicast-Start
+++ /dev/null
@@ -1,51 +0,0 @@
-
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.1.14/30
-interface Ethernet4
- no switchport
- ip address 10.10.2.14/30
-interface Ethernet5
- no switchport
- ip address 10.10.3.14/30
-interface Ethernet6
- no switchport
- ip address 10.10.4.14/30
-
-interface Loopback0
- ip address 10.14.14.14/32
-!
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65004
-router-id 10.14.14.14
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
-
- neighbor 10.10.1.13 peer group SpineUnderlay
- neighbor 10.10.2.13 peer group SpineUnderlay
- neighbor 10.10.3.13 peer group SpineUnderlay
- neighbor 10.10.4.13 peer group SpineUnderlay
-
- neighbor 10.10.1.13 description Spine1
- neighbor 10.10.2.13 description Spine2
- neighbor 10.10.3.13 description Spine3
- neighbor 10.10.4.13 description Spine4
-
- neighbor SpineUnderlay remote-as 65100
- neighbor SpineUnderlay maximum-routes 12000
-
-address-family ipv4
- network 10.14.14.14/32
- neighbor SpineUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/configlets/Spine1-Multicast-Start b/topologies/training-level-5-cl/configlets/Spine1-Multicast-Start
deleted file mode 100644
index 186853976..000000000
--- a/topologies/training-level-5-cl/configlets/Spine1-Multicast-Start
+++ /dev/null
@@ -1,76 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.1.1/30
-interface Ethernet4
- no switchport
- ip address 10.10.1.5/30
-interface Ethernet5
- no switchport
- ip address 10.10.1.9/30
-interface Ethernet6
- no switchport
- ip address 10.10.1.13/30
-interface Ethernet7
- no switchport
- ip address 10.10.5.2/30
-interface Ethernet8
- no switchport
- ip address 10.10.6.2/30
-interface Loopback0
- ip address 10.21.21.21/32
-!
-
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65100
- router-id 10.21.21.21
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
- neighbor 10.10.1.2 description Leaf1
- neighbor 10.10.1.2 remote-as 65001
- neighbor 10.10.1.2 maximum-routes 12000
-
-
- neighbor 10.10.1.6 description Leaf2
- neighbor 10.10.1.6 remote-as 65002
- neighbor 10.10.1.6 maximum-routes 12000
-
-
- neighbor 10.10.1.10 description Leaf3
- neighbor 10.10.1.10 remote-as 65003
- neighbor 10.10.1.10 maximum-routes 12000
-
-
- neighbor 10.10.1.14 description Leaf4
- neighbor 10.10.1.14 remote-as 65004
- neighbor 10.10.1.14 maximum-routes 12000
-
- neighbor BorderleafUnderlay peer group
- neighbor BorderleafUnderlay maximum-routes 12000
- neighbor BorderleafUnderlay remote-as 65500
-
-
- neighbor 10.10.5.1 peer group BorderleafUnderlay
- neighbor 10.10.5.1 description Borderleaf1
- neighbor 10.10.6.1 peer group BorderleafUnderlay
- neighbor 10.10.6.1 description Borderleaf2
-
- !
- !
- address-family ipv4
- network 10.21.21.21/32
- neighbor 10.10.1.2 activate
- neighbor 10.10.1.6 activate
- neighbor 10.10.1.10 activate
- neighbor 10.10.1.14 activate
- neighbor BorderleafUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/configlets/Spine2-Multicast-Start b/topologies/training-level-5-cl/configlets/Spine2-Multicast-Start
deleted file mode 100644
index 0161e765b..000000000
--- a/topologies/training-level-5-cl/configlets/Spine2-Multicast-Start
+++ /dev/null
@@ -1,78 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.2.1/30
-interface Ethernet4
- no switchport
- ip address 10.10.2.5/30
-interface Ethernet5
- no switchport
- ip address 10.10.2.9/30
-interface Ethernet6
- no switchport
- ip address 10.10.2.13/30
-interface Ethernet7
- no switchport
- ip address 10.10.5.6/30
-interface Ethernet8
- no switchport
- ip address 10.10.6.6/30
-interface Loopback0
- ip address 10.22.22.22/32
-!
-
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65100
- router-id 10.22.22.22
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
-
-neighbor 10.10.2.2 description Leaf1
-neighbor 10.10.2.2 remote-as 65001
-neighbor 10.10.2.2 maximum-routes 12000
-
-
-
-neighbor 10.10.2.6 description Leaf2
-neighbor 10.10.2.6 remote-as 65002
-neighbor 10.10.2.6 maximum-routes 12000
-
-
-neighbor 10.10.2.10 description Leaf3
-neighbor 10.10.2.10 remote-as 65003
-neighbor 10.10.2.10 maximum-routes 12000
-
-
-neighbor 10.10.2.14 description Leaf4
-neighbor 10.10.2.14 remote-as 65004
-neighbor 10.10.2.14 maximum-routes 12000
-
-neighbor BorderleafUnderlay peer group
-neighbor BorderleafUnderlay maximum-routes 12000
-neighbor BorderleafUnderlay remote-as 65500
-
-
-neighbor 10.10.5.5 peer group BorderleafUnderlay
-neighbor 10.10.5.5 description Borderleaf1
-neighbor 10.10.6.5 peer group BorderleafUnderlay
-neighbor 10.10.6.5 description Borderleaf2
-
-!
-!
-address-family ipv4
- network 10.22.22.22/32
- neighbor 10.10.2.2 activate
- neighbor 10.10.2.6 activate
- neighbor 10.10.2.10 activate
- neighbor 10.10.2.14 activate
- neighbor BorderleafUnderlay activate
- redistribute connected
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/configlets/Spine3-Multicast-Start b/topologies/training-level-5-cl/configlets/Spine3-Multicast-Start
deleted file mode 100644
index 6c9e3afc2..000000000
--- a/topologies/training-level-5-cl/configlets/Spine3-Multicast-Start
+++ /dev/null
@@ -1,78 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.3.1/30
-interface Ethernet4
- no switchport
- ip address 10.10.3.5/30
-interface Ethernet5
- no switchport
- ip address 10.10.3.9/30
-interface Ethernet6
- no switchport
- ip address 10.10.3.13/30
-interface Ethernet7
- no switchport
- ip address 10.10.5.10/30
-interface Ethernet8
- no switchport
- ip address 10.10.6.10/30
-interface Loopback0
- ip address 10.23.23.23/32
-!
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65100
- router-id 10.23.23.23
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
- neighbor 10.10.3.2 description Leaf
- neighbor 10.10.3.2 remote-as 65001
- neighbor 10.10.3.2 maximum-routes 12000
-
-
-
- neighbor 10.10.3.6 description Leaf2
- neighbor 10.10.3.6 remote-as 65002
- neighbor 10.10.3.6 maximum-routes 12000
-
-
- neighbor 10.10.3.10 description Leaf3
- neighbor 10.10.3.10 remote-as 65003
- neighbor 10.10.3.10 maximum-routes 12000
-
-
- neighbor 10.10.3.14 description Leaf4
- neighbor 10.10.3.14 remote-as 65004
- neighbor 10.10.3.14 maximum-routes 12000
-
-
- neighbor BorderleafUnderlay peer group
- neighbor BorderleafUnderlay maximum-routes 12000
- neighbor BorderleafUnderlay remote-as 65500
-
-
- neighbor 10.10.5.9 peer group BorderleafUnderlay
- neighbor 10.10.5.9 description Borderleaf1
- neighbor 10.10.6.9 peer group BorderleafUnderlay
- neighbor 10.10.6.9 description Borderleaf2
- !
- !
- address-family ipv4
- network 10.23.23.23/32
- neighbor 10.10.3.2 activate
- neighbor 10.10.3.6 activate
- neighbor 10.10.3.10 activate
- neighbor 10.10.3.14 activate
- neighbor BorderleafUnderlay activate
- redistribute connected
- !
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/configlets/Spine4-Multicast-Start b/topologies/training-level-5-cl/configlets/Spine4-Multicast-Start
deleted file mode 100644
index 91c0fa705..000000000
--- a/topologies/training-level-5-cl/configlets/Spine4-Multicast-Start
+++ /dev/null
@@ -1,72 +0,0 @@
-!
-interface Ethernet1
- shutdown
-interface Ethernet2
- shutdown
-interface Ethernet3
- no switchport
- ip address 10.10.4.1/30
-interface Ethernet4
- no switchport
- ip address 10.10.4.5/30
-interface Ethernet5
- no switchport
- ip address 10.10.4.9/30
-interface Ethernet6
- no switchport
- ip address 10.10.4.13/30
-interface Ethernet7
- no switchport
- ip address 10.10.5.14/30
-interface Ethernet8
- no switchport
- ip address 10.10.6.14/30
-interface Loopback0
- ip address 10.24.24.24/32
-!
-!
-service routing protocols model multi-agent
-!
-ip routing
-!
-router bgp 65100
- router-id 10.24.24.24
- maximum-paths 4 ecmp 4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
-
- neighbor 10.10.4.2 description Leaf1
- neighbor 10.10.4.2 remote-as 65001
- neighbor 10.10.4.2 maximum-routes 12000
-
- neighbor 10.10.4.6 description Leaf2
- neighbor 10.10.4.6 remote-as 65002
- neighbor 10.10.4.6 maximum-routes 12000
-
- neighbor 10.10.4.10 description Leaf3
- neighbor 10.10.4.10 remote-as 65003
- neighbor 10.10.4.10 maximum-routes 12000
-
- neighbor 10.10.4.14 description Leaf4
- neighbor 10.10.4.14 remote-as 65004
- neighbor 10.10.4.14 maximum-routes 12000
-
- neighbor BorderleafUnderlay peer group
- neighbor BorderleafUnderlay maximum-routes 12000
- neighbor BorderleafUnderlay remote-as 65500
-
- neighbor 10.10.5.13 peer group BorderleafUnderlay
- neighbor 10.10.5.13 description Borderleaf1
- neighbor 10.10.6.13 peer group BorderleafUnderlay
- neighbor 10.10.6.13 description Borderleaf2
- !
- !
- address-family ipv4
- network 10.24.24.24/32
- neighbor 10.10.4.2 activate
- neighbor 10.10.4.6 activate
- neighbor 10.10.4.10 activate
- neighbor 10.10.4.14 activate
- neighbor BorderleafUnderlay activate
- redistribute connected
- !
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/configlets/borderleaf1-base b/topologies/training-level-5-cl/configlets/borderleaf1-base
deleted file mode 100644
index e274c6eb4..000000000
--- a/topologies/training-level-5-cl/configlets/borderleaf1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.25/24
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
diff --git a/topologies/training-level-5-cl/configlets/borderleaf2-base b/topologies/training-level-5-cl/configlets/borderleaf2-base
deleted file mode 100644
index a7778e0b4..000000000
--- a/topologies/training-level-5-cl/configlets/borderleaf2-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.26/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-5-cl/configlets/host1-base b/topologies/training-level-5-cl/configlets/host1-base
deleted file mode 100644
index 915d58edb..000000000
--- a/topologies/training-level-5-cl/configlets/host1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host1
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.51/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-5-cl/configlets/host2-base b/topologies/training-level-5-cl/configlets/host2-base
deleted file mode 100644
index 63f0c9c38..000000000
--- a/topologies/training-level-5-cl/configlets/host2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host2
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.52/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-5-cl/configlets/host3-base b/topologies/training-level-5-cl/configlets/host3-base
deleted file mode 100644
index 979a49b28..000000000
--- a/topologies/training-level-5-cl/configlets/host3-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host3
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.53/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-5-cl/configlets/host4-base b/topologies/training-level-5-cl/configlets/host4-base
deleted file mode 100644
index f85e77a77..000000000
--- a/topologies/training-level-5-cl/configlets/host4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host4
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.54/24
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-
diff --git a/topologies/training-level-5-cl/configlets/leaf1-base b/topologies/training-level-5-cl/configlets/leaf1-base
deleted file mode 100644
index 7b316b33b..000000000
--- a/topologies/training-level-5-cl/configlets/leaf1-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.21/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-5-cl/configlets/leaf2-base b/topologies/training-level-5-cl/configlets/leaf2-base
deleted file mode 100644
index 22fffb444..000000000
--- a/topologies/training-level-5-cl/configlets/leaf2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.22/24
-
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-5-cl/configlets/leaf3-base b/topologies/training-level-5-cl/configlets/leaf3-base
deleted file mode 100644
index 37e7bc8d3..000000000
--- a/topologies/training-level-5-cl/configlets/leaf3-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.23/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-5-cl/configlets/leaf4-base b/topologies/training-level-5-cl/configlets/leaf4-base
deleted file mode 100644
index f0cff7b25..000000000
--- a/topologies/training-level-5-cl/configlets/leaf4-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.24/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-5-cl/configlets/spine1-base b/topologies/training-level-5-cl/configlets/spine1-base
deleted file mode 100644
index 5e9d072b1..000000000
--- a/topologies/training-level-5-cl/configlets/spine1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.11/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-5-cl/configlets/spine2-base b/topologies/training-level-5-cl/configlets/spine2-base
deleted file mode 100644
index cc9d0bef1..000000000
--- a/topologies/training-level-5-cl/configlets/spine2-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname spine2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.12/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-5-cl/configlets/spine3-base b/topologies/training-level-5-cl/configlets/spine3-base
deleted file mode 100644
index 853f6564a..000000000
--- a/topologies/training-level-5-cl/configlets/spine3-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.13/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-5-cl/configlets/spine4-base b/topologies/training-level-5-cl/configlets/spine4-base
deleted file mode 100644
index 240453581..000000000
--- a/topologies/training-level-5-cl/configlets/spine4-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.14/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-5-cl/files/.ansible.cfg b/topologies/training-level-5-cl/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-level-5-cl/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-level-5-cl/files/.screenrc b/topologies/training-level-5-cl/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-level-5-cl/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-level-5-cl/files/MenuOptions.yaml b/topologies/training-level-5-cl/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-level-5-cl/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/files/apps/coder/coder.yaml b/topologies/training-level-5-cl/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-level-5-cl/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/files/apps/coder/labfiles/.placeholder b/topologies/training-level-5-cl/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-level-5-cl/files/apps/gui/host5/arista/host-startup.sh b/topologies/training-level-5-cl/files/apps/gui/host5/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-5-cl/files/apps/gui/host5/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/files/apps/gui/host6/arista/host-startup.sh b/topologies/training-level-5-cl/files/apps/gui/host6/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-5-cl/files/apps/gui/host6/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/files/apps/gui/host7/arista/host-startup.sh b/topologies/training-level-5-cl/files/apps/gui/host7/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-5-cl/files/apps/gui/host7/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/files/apps/gui/host8/arista/host-startup.sh b/topologies/training-level-5-cl/files/apps/gui/host8/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-5-cl/files/apps/gui/host8/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/files/apps/ssh/web.json b/topologies/training-level-5-cl/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-level-5-cl/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/files/apps/uilanding/modules.yaml b/topologies/training-level-5-cl/files/apps/uilanding/modules.yaml
deleted file mode 100644
index c983faac0..000000000
--- a/topologies/training-level-5-cl/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "22,218,167,296"
- ip: "192.168.0.11"
- Spine2:
- coords: "356,215,517,300"
- ip: "192.168.0.12"
- Spine3:
- coords: "555,214,724,294"
- ip: "192.168.0.13"
- Spine4:
- coords: "925,218,1077,293"
- ip: "192.168.0.14"
- Leaf1:
- coords: "16,424,165,501"
- ip: "192.168.0.21"
- Leaf2:
- coords: "353,425,520,493"
- ip: "192.168.0.22"
- Leaf3:
- coords: "569,430,714,499"
- ip: "192.168.0.23"
- Leaf4:
- coords: "921,423,1074,502"
- ip: "192.168.0.24"
- BorderLeaf1:
- coords: "370,57,511,138"
- ip: "192.168.0.25"
- BorderLeaf2:
- coords: "561,65,726,145"
- ip: "192.168.0.26"
- Host1:
- coords: "15,534,149,611"
- ip: "192.168.0.51"
- Host2:
- coords: "365,539,504,619"
- ip: "192.168.0.52"
- Host3:
- coords: "566,542,711,620"
- ip: "192.168.0.53"
- Host4:
- coords: "929,542,1075,615"
- ip: "192.168.0.54"
- servers:
- Host5:
- coords: "182,545,307,636"
- ip: "192.168.0.101"
- port : 6001
- Host6:
- coords: "183,650,312,744"
- ip: "192.168.0.102"
- port : 6002
- Host7:
- coords: "747,545,875,636"
- ip: "192.168.0.103"
- port : 6003
- Host8:
- coords: "752,645,877,731"
- ip: "192.168.0.104"
- port : 6004
diff --git a/topologies/training-level-5-cl/files/apps/webui/.vncpass_clear b/topologies/training-level-5-cl/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-level-5-cl/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/files/cvp/cvp_info.yaml b/topologies/training-level-5-cl/files/cvp/cvp_info.yaml
deleted file mode 100644
index 7e796e77f..000000000
--- a/topologies/training-level-5-cl/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf:
- parent: Tenant
- nodes:
- - leaf1
- - leaf2
- - leaf3
- - leaf4
- Borderleaf:
- parent: Tenant
- nodes:
- - borderleaf1
- - borderleaf2
- Spine:
- parent: Tenant
- nodes:
- - spine1
- - spine2
- - spine3
- - spine4
- Hosts:
- parent: Tenant
- nodes:
- - host1
- - host2
- - host3
- - host4
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- spine1:
- - spine1-base
- spine2:
- - spine2-base
- spine3:
- - spine3-base
- spine4:
- - spine4-base
- leaf1:
- - leaf1-base
- leaf2:
- - leaf2-base
- borderleaf1:
- - borderleaf1-base
- borderleaf2:
- - borderleaf2-base
- leaf3:
- - leaf3-base
- leaf4:
- - leaf4-base
- host3:
- - host3-base
- host4:
- - host4-base
- host1:
- - host1-base
- host2:
- - host2-base
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/files/hosts b/topologies/training-level-5-cl/files/hosts
deleted file mode 100644
index b01ba8483..000000000
--- a/topologies/training-level-5-cl/files/hosts
+++ /dev/null
@@ -1,24 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.101 host5
-192.168.0.102 host6
-192.168.0.103 host7
-192.168.0.104 host8
-192.168.0.5 cvp
diff --git a/topologies/training-level-5-cl/files/menus/default.yaml b/topologies/training-level-5-cl/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-level-5-cl/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/files/menus/training-l3.yaml b/topologies/training-level-5-cl/files/menus/training-l3.yaml
deleted file mode 100644
index 0b24a5ed6..000000000
--- a/topologies/training-level-5-cl/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,137 +0,0 @@
----
- lab_list:
- reset:
- description: "Reset All Devices to Base Lab (reset)"
- l2evpn:
- description: "Start L2EVPN LAB"
- l3evpn:
- description: "Start L3EVPN LAB"
- multicast:
- description: "Start MULTICAST LAB"
- labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- l2evpn:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- l3evpn:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- multicast:
- spine1:
- - "spine1-base"
- - "Spine1-Multicast-Start"
- spine2:
- - "spine2-base"
- - "Spine2-Multicast-Start"
- spine3:
- - "spine3-base"
- - "Spine3-Multicast-Start"
- spine4:
- - "spine4-base"
- - "Spine4-Multicast-Start"
- leaf1:
- - "leaf1-base"
- - "Leaf1-Multicast-Start"
- leaf2:
- - "leaf2-base"
- - "Leaf2-Multicast-Start"
- leaf3:
- - "leaf3-base"
- - "Leaf3-Multicast-Start"
- leaf4:
- - "leaf4-base"
- - "Leaf4-Multicast-Start"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- - "BorderLeaf1-Multicast-Start"
- borderleaf2:
- - "borderleaf2-base"
- - "BorderLeaf2-Multicast-Start"
diff --git a/topologies/training-level-5-cl/files/scripts/Authenticate-CVP b/topologies/training-level-5-cl/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-level-5-cl/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-level-5-cl/files/scripts/Authenticate-CVP2 b/topologies/training-level-5-cl/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-5-cl/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-5-cl/files/scripts/Authenticate-CVP3 b/topologies/training-level-5-cl/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-level-5-cl/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-5-cl/files/scripts/Configlet1 b/topologies/training-level-5-cl/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-5-cl/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-5-cl/files/scripts/ConfigletChange b/topologies/training-level-5-cl/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-level-5-cl/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-5-cl/files/scripts/ConfigletDetail b/topologies/training-level-5-cl/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-level-5-cl/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-level-5-cl/files/scripts/ConfigletHistory b/topologies/training-level-5-cl/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-level-5-cl/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-level-5-cl/files/scripts/TaskBase b/topologies/training-level-5-cl/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-level-5-cl/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-5-cl/files/scripts/TaskCVP1 b/topologies/training-level-5-cl/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-level-5-cl/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-level-5-cl/files/scripts/TaskExecute b/topologies/training-level-5-cl/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-level-5-cl/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-level-5-cl/files/scripts/TaskLog b/topologies/training-level-5-cl/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-5-cl/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-5-cl/files/scripts/TaskLog1 b/topologies/training-level-5-cl/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-5-cl/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-5-cl/files/scripts/TaskLogView b/topologies/training-level-5-cl/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-level-5-cl/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-5-cl/files/scripts/TaskNote b/topologies/training-level-5-cl/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-level-5-cl/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-level-5-cl/labguides/.gitignore b/topologies/training-level-5-cl/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-level-5-cl/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-level-5-cl/labguides/Makefile b/topologies/training-level-5-cl/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-level-5-cl/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/labguides/readme.md b/topologies/training-level-5-cl/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-level-5-cl/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-level-5-cl/labguides/source/_static/arista_logo.png b/topologies/training-level-5-cl/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-level-5-cl/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-level-5-cl/labguides/source/_static/arista_logo_160by26.png b/topologies/training-level-5-cl/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-level-5-cl/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-level-5-cl/labguides/source/_static/arista_logo_320by52.png b/topologies/training-level-5-cl/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-level-5-cl/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-level-5-cl/labguides/source/_static/cloudvision-icon.png b/topologies/training-level-5-cl/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-level-5-cl/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-level-5-cl/labguides/source/_static/logo.jpg b/topologies/training-level-5-cl/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-5-cl/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-5-cl/labguides/source/_static/my-styles.css b/topologies/training-level-5-cl/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-level-5-cl/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-level-5-cl/labguides/source/conf.py b/topologies/training-level-5-cl/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-level-5-cl/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-level-5-cl/labguides/source/connecting.rst b/topologies/training-level-5-cl/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-level-5-cl/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-level-5-cl/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-level-5-cl/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-level-5-cl/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-level-5-cl/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-level-5-cl/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-level-5-cl/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-level-5-cl/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-level-5-cl/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-level-5-cl/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-level-5-cl/labguides/source/images/logo.jpg b/topologies/training-level-5-cl/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-5-cl/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-5-cl/labguides/source/index.rst b/topologies/training-level-5-cl/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-level-5-cl/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-level-5-cl/topo_build.yml b/topologies/training-level-5-cl/topo_build.yml
deleted file mode 100644
index 9ccba5edb..000000000
--- a/topologies/training-level-5-cl/topo_build.yml
+++ /dev/null
@@ -1,385 +0,0 @@
-host_cpu: 4
-cvp_cpu: 32
-cvp_ram: 42
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - spine1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet3
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet3
- port: Ethernet8
- - spine2:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet4
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet4
- port: Ethernet8
- - spine3:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: spine4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet5
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet5
- port: Ethernet8
- - spine4:
- ip_addr: 192.168.0.14
- sys_mac: 00:1c:73:b4:c6:01
- neighbors:
- - neighborDevice: spine3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet6
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet6
- port: Ethernet8
- - leaf1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet2
- port: Ethernet10
- - leaf3:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf4:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet2
- port: Ethernet10
- - borderleaf1:
- ip_addr: 192.168.0.25
- sys_mac: 00:1c:73:c5:c6:01
- neighbors:
- - neighborDevice: borderleaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet7
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet7
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet7
- port: Ethernet6
- - borderleaf2:
- ip_addr: 192.168.0.26
- sys_mac: 00:1c:73:c6:c6:01
- neighbors:
- - neighborDevice: borderleaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet8
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet8
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet8
- port: Ethernet6
- - host1:
- ip_addr: 192.168.0.51
- sys_mac: 00:1c:73:f1:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet7
- port: Ethernet2
- - host2:
- ip_addr: 192.168.0.52
- sys_mac: 00:1c:73:f2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet9
- port: Ethernet2
- - host3:
- ip_addr: 192.168.0.53
- sys_mac: 00:1c:73:f3:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet7
- port: Ethernet2
- - host4:
- ip_addr: 192.168.0.54
- sys_mac: 00:1c:73:f4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet9
- port: Ethernet2
-servers:
- - host5:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.101
- port : 6001
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet8
- port: Ethernet2
- - host6:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.102
- port : 6002
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet10
- port: Ethernet2
- - host7:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.103
- port : 6003
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet8
- port: Ethernet2
- - host8:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.104
- port : 6004
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet10
- port: Ethernet2
-additional_ssh_nodes:
-additional_clab_nodes:
diff --git a/topologies/training-level-avd/atd-topo.png b/topologies/training-level-avd/atd-topo.png
deleted file mode 100644
index 53ba5d7d9..000000000
Binary files a/topologies/training-level-avd/atd-topo.png and /dev/null differ
diff --git a/topologies/training-level-avd/configlets/ATD-INFRA b/topologies/training-level-avd/configlets/ATD-INFRA
deleted file mode 100644
index de87bc743..000000000
--- a/topologies/training-level-avd/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-level-avd/configlets/Base-Builder.py b/topologies/training-level-avd/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-level-avd/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-level-avd/configlets/borderleaf1-base b/topologies/training-level-avd/configlets/borderleaf1-base
deleted file mode 100644
index e274c6eb4..000000000
--- a/topologies/training-level-avd/configlets/borderleaf1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.25/24
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
diff --git a/topologies/training-level-avd/configlets/borderleaf2-base b/topologies/training-level-avd/configlets/borderleaf2-base
deleted file mode 100644
index a7778e0b4..000000000
--- a/topologies/training-level-avd/configlets/borderleaf2-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.26/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-avd/configlets/host1-base b/topologies/training-level-avd/configlets/host1-base
deleted file mode 100644
index 915d58edb..000000000
--- a/topologies/training-level-avd/configlets/host1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host1
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.51/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-avd/configlets/host2-base b/topologies/training-level-avd/configlets/host2-base
deleted file mode 100644
index 63f0c9c38..000000000
--- a/topologies/training-level-avd/configlets/host2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host2
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.52/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-avd/configlets/host3-base b/topologies/training-level-avd/configlets/host3-base
deleted file mode 100644
index 979a49b28..000000000
--- a/topologies/training-level-avd/configlets/host3-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host3
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.53/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-avd/configlets/host4-base b/topologies/training-level-avd/configlets/host4-base
deleted file mode 100644
index f85e77a77..000000000
--- a/topologies/training-level-avd/configlets/host4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host4
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.54/24
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-
diff --git a/topologies/training-level-avd/configlets/leaf1-base b/topologies/training-level-avd/configlets/leaf1-base
deleted file mode 100644
index 7b316b33b..000000000
--- a/topologies/training-level-avd/configlets/leaf1-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.21/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-avd/configlets/leaf2-base b/topologies/training-level-avd/configlets/leaf2-base
deleted file mode 100644
index 22fffb444..000000000
--- a/topologies/training-level-avd/configlets/leaf2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.22/24
-
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-avd/configlets/leaf3-base b/topologies/training-level-avd/configlets/leaf3-base
deleted file mode 100644
index 37e7bc8d3..000000000
--- a/topologies/training-level-avd/configlets/leaf3-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.23/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-avd/configlets/leaf4-base b/topologies/training-level-avd/configlets/leaf4-base
deleted file mode 100644
index f0cff7b25..000000000
--- a/topologies/training-level-avd/configlets/leaf4-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.24/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-avd/configlets/spine1-base b/topologies/training-level-avd/configlets/spine1-base
deleted file mode 100644
index 5e9d072b1..000000000
--- a/topologies/training-level-avd/configlets/spine1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.11/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-avd/configlets/spine2-base b/topologies/training-level-avd/configlets/spine2-base
deleted file mode 100644
index cc9d0bef1..000000000
--- a/topologies/training-level-avd/configlets/spine2-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname spine2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.12/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-avd/configlets/spine3-base b/topologies/training-level-avd/configlets/spine3-base
deleted file mode 100644
index 853f6564a..000000000
--- a/topologies/training-level-avd/configlets/spine3-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.13/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-avd/configlets/spine4-base b/topologies/training-level-avd/configlets/spine4-base
deleted file mode 100644
index 240453581..000000000
--- a/topologies/training-level-avd/configlets/spine4-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.14/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-avd/files/.ansible.cfg b/topologies/training-level-avd/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-level-avd/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-level-avd/files/.screenrc b/topologies/training-level-avd/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-level-avd/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-level-avd/files/MenuOptions.yaml b/topologies/training-level-avd/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-level-avd/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-level-avd/files/apps/coder/coder.yaml b/topologies/training-level-avd/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-level-avd/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-level-avd/files/apps/coder/labfiles/.placeholder b/topologies/training-level-avd/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-level-avd/files/apps/gui/host5/arista/host-startup.sh b/topologies/training-level-avd/files/apps/gui/host5/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-avd/files/apps/gui/host5/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-avd/files/apps/gui/host6/arista/host-startup.sh b/topologies/training-level-avd/files/apps/gui/host6/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-avd/files/apps/gui/host6/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-avd/files/apps/gui/host7/arista/host-startup.sh b/topologies/training-level-avd/files/apps/gui/host7/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-avd/files/apps/gui/host7/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-avd/files/apps/gui/host8/arista/host-startup.sh b/topologies/training-level-avd/files/apps/gui/host8/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-avd/files/apps/gui/host8/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-avd/files/apps/ssh/web.json b/topologies/training-level-avd/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-level-avd/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-level-avd/files/apps/uilanding/modules.yaml b/topologies/training-level-avd/files/apps/uilanding/modules.yaml
deleted file mode 100644
index c983faac0..000000000
--- a/topologies/training-level-avd/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "22,218,167,296"
- ip: "192.168.0.11"
- Spine2:
- coords: "356,215,517,300"
- ip: "192.168.0.12"
- Spine3:
- coords: "555,214,724,294"
- ip: "192.168.0.13"
- Spine4:
- coords: "925,218,1077,293"
- ip: "192.168.0.14"
- Leaf1:
- coords: "16,424,165,501"
- ip: "192.168.0.21"
- Leaf2:
- coords: "353,425,520,493"
- ip: "192.168.0.22"
- Leaf3:
- coords: "569,430,714,499"
- ip: "192.168.0.23"
- Leaf4:
- coords: "921,423,1074,502"
- ip: "192.168.0.24"
- BorderLeaf1:
- coords: "370,57,511,138"
- ip: "192.168.0.25"
- BorderLeaf2:
- coords: "561,65,726,145"
- ip: "192.168.0.26"
- Host1:
- coords: "15,534,149,611"
- ip: "192.168.0.51"
- Host2:
- coords: "365,539,504,619"
- ip: "192.168.0.52"
- Host3:
- coords: "566,542,711,620"
- ip: "192.168.0.53"
- Host4:
- coords: "929,542,1075,615"
- ip: "192.168.0.54"
- servers:
- Host5:
- coords: "182,545,307,636"
- ip: "192.168.0.101"
- port : 6001
- Host6:
- coords: "183,650,312,744"
- ip: "192.168.0.102"
- port : 6002
- Host7:
- coords: "747,545,875,636"
- ip: "192.168.0.103"
- port : 6003
- Host8:
- coords: "752,645,877,731"
- ip: "192.168.0.104"
- port : 6004
diff --git a/topologies/training-level-avd/files/apps/webui/.vncpass_clear b/topologies/training-level-avd/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-level-avd/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-level-avd/files/cvp/cvp_info.yaml b/topologies/training-level-avd/files/cvp/cvp_info.yaml
deleted file mode 100644
index 7e796e77f..000000000
--- a/topologies/training-level-avd/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf:
- parent: Tenant
- nodes:
- - leaf1
- - leaf2
- - leaf3
- - leaf4
- Borderleaf:
- parent: Tenant
- nodes:
- - borderleaf1
- - borderleaf2
- Spine:
- parent: Tenant
- nodes:
- - spine1
- - spine2
- - spine3
- - spine4
- Hosts:
- parent: Tenant
- nodes:
- - host1
- - host2
- - host3
- - host4
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- spine1:
- - spine1-base
- spine2:
- - spine2-base
- spine3:
- - spine3-base
- spine4:
- - spine4-base
- leaf1:
- - leaf1-base
- leaf2:
- - leaf2-base
- borderleaf1:
- - borderleaf1-base
- borderleaf2:
- - borderleaf2-base
- leaf3:
- - leaf3-base
- leaf4:
- - leaf4-base
- host3:
- - host3-base
- host4:
- - host4-base
- host1:
- - host1-base
- host2:
- - host2-base
\ No newline at end of file
diff --git a/topologies/training-level-avd/files/hosts b/topologies/training-level-avd/files/hosts
deleted file mode 100644
index b01ba8483..000000000
--- a/topologies/training-level-avd/files/hosts
+++ /dev/null
@@ -1,24 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.101 host5
-192.168.0.102 host6
-192.168.0.103 host7
-192.168.0.104 host8
-192.168.0.5 cvp
diff --git a/topologies/training-level-avd/files/menus/default.yaml b/topologies/training-level-avd/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-level-avd/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-level-avd/files/menus/training-l3.yaml b/topologies/training-level-avd/files/menus/training-l3.yaml
deleted file mode 100644
index d0365b554..000000000
--- a/topologies/training-level-avd/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
----
- lab_list:
- reset:
- description: "Reset All Devices to Base Lab (reset)"
- labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
\ No newline at end of file
diff --git a/topologies/training-level-avd/files/scripts/Authenticate-CVP b/topologies/training-level-avd/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-level-avd/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-level-avd/files/scripts/Authenticate-CVP2 b/topologies/training-level-avd/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-avd/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-avd/files/scripts/Authenticate-CVP3 b/topologies/training-level-avd/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-level-avd/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-avd/files/scripts/Configlet1 b/topologies/training-level-avd/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-avd/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-avd/files/scripts/ConfigletChange b/topologies/training-level-avd/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-level-avd/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-avd/files/scripts/ConfigletDetail b/topologies/training-level-avd/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-level-avd/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-level-avd/files/scripts/ConfigletHistory b/topologies/training-level-avd/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-level-avd/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-level-avd/files/scripts/TaskBase b/topologies/training-level-avd/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-level-avd/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-avd/files/scripts/TaskCVP1 b/topologies/training-level-avd/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-level-avd/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-level-avd/files/scripts/TaskExecute b/topologies/training-level-avd/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-level-avd/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-level-avd/files/scripts/TaskLog b/topologies/training-level-avd/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-avd/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-avd/files/scripts/TaskLog1 b/topologies/training-level-avd/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-avd/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-avd/files/scripts/TaskLogView b/topologies/training-level-avd/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-level-avd/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-avd/files/scripts/TaskNote b/topologies/training-level-avd/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-level-avd/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-level-avd/labguides/.gitignore b/topologies/training-level-avd/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-level-avd/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-level-avd/labguides/Makefile b/topologies/training-level-avd/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-level-avd/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-level-avd/labguides/readme.md b/topologies/training-level-avd/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-level-avd/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-level-avd/labguides/source/_static/arista_logo.png b/topologies/training-level-avd/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-level-avd/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-level-avd/labguides/source/_static/arista_logo_160by26.png b/topologies/training-level-avd/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-level-avd/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-level-avd/labguides/source/_static/arista_logo_320by52.png b/topologies/training-level-avd/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-level-avd/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-level-avd/labguides/source/_static/cloudvision-icon.png b/topologies/training-level-avd/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-level-avd/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-level-avd/labguides/source/_static/logo.jpg b/topologies/training-level-avd/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-avd/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-avd/labguides/source/_static/my-styles.css b/topologies/training-level-avd/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-level-avd/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-level-avd/labguides/source/conf.py b/topologies/training-level-avd/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-level-avd/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-level-avd/labguides/source/connecting.rst b/topologies/training-level-avd/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-level-avd/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-level-avd/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-level-avd/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-level-avd/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-level-avd/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-level-avd/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-level-avd/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-level-avd/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-level-avd/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-level-avd/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-level-avd/labguides/source/images/logo.jpg b/topologies/training-level-avd/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-avd/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-avd/labguides/source/index.rst b/topologies/training-level-avd/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-level-avd/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-level-avd/topo_build.yml b/topologies/training-level-avd/topo_build.yml
deleted file mode 100644
index 9ccba5edb..000000000
--- a/topologies/training-level-avd/topo_build.yml
+++ /dev/null
@@ -1,385 +0,0 @@
-host_cpu: 4
-cvp_cpu: 32
-cvp_ram: 42
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - spine1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet3
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet3
- port: Ethernet8
- - spine2:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet4
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet4
- port: Ethernet8
- - spine3:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: spine4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet5
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet5
- port: Ethernet8
- - spine4:
- ip_addr: 192.168.0.14
- sys_mac: 00:1c:73:b4:c6:01
- neighbors:
- - neighborDevice: spine3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet6
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet6
- port: Ethernet8
- - leaf1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet2
- port: Ethernet10
- - leaf3:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf4:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet2
- port: Ethernet10
- - borderleaf1:
- ip_addr: 192.168.0.25
- sys_mac: 00:1c:73:c5:c6:01
- neighbors:
- - neighborDevice: borderleaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet7
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet7
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet7
- port: Ethernet6
- - borderleaf2:
- ip_addr: 192.168.0.26
- sys_mac: 00:1c:73:c6:c6:01
- neighbors:
- - neighborDevice: borderleaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet8
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet8
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet8
- port: Ethernet6
- - host1:
- ip_addr: 192.168.0.51
- sys_mac: 00:1c:73:f1:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet7
- port: Ethernet2
- - host2:
- ip_addr: 192.168.0.52
- sys_mac: 00:1c:73:f2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet9
- port: Ethernet2
- - host3:
- ip_addr: 192.168.0.53
- sys_mac: 00:1c:73:f3:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet7
- port: Ethernet2
- - host4:
- ip_addr: 192.168.0.54
- sys_mac: 00:1c:73:f4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet9
- port: Ethernet2
-servers:
- - host5:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.101
- port : 6001
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet8
- port: Ethernet2
- - host6:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.102
- port : 6002
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet10
- port: Ethernet2
- - host7:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.103
- port : 6003
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet8
- port: Ethernet2
- - host8:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.104
- port : 6004
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet10
- port: Ethernet2
-additional_ssh_nodes:
-additional_clab_nodes:
diff --git a/topologies/training-level-bgp-custom/atd-topo.png b/topologies/training-level-bgp-custom/atd-topo.png
deleted file mode 100644
index b7173f084..000000000
Binary files a/topologies/training-level-bgp-custom/atd-topo.png and /dev/null differ
diff --git a/topologies/training-level-bgp-custom/configlets/ATD-INFRA b/topologies/training-level-bgp-custom/configlets/ATD-INFRA
deleted file mode 100644
index de87bc743..000000000
--- a/topologies/training-level-bgp-custom/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-level-bgp-custom/configlets/R1-base b/topologies/training-level-bgp-custom/configlets/R1-base
deleted file mode 100644
index 0687bf9ca..000000000
--- a/topologies/training-level-bgp-custom/configlets/R1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname R1
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.11/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-bgp-custom/configlets/R2-base b/topologies/training-level-bgp-custom/configlets/R2-base
deleted file mode 100644
index 38d628846..000000000
--- a/topologies/training-level-bgp-custom/configlets/R2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname R2
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.12/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-bgp-custom/configlets/R3-base b/topologies/training-level-bgp-custom/configlets/R3-base
deleted file mode 100644
index 1da7fff58..000000000
--- a/topologies/training-level-bgp-custom/configlets/R3-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname R3
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.13/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-bgp-custom/configlets/R4-base b/topologies/training-level-bgp-custom/configlets/R4-base
deleted file mode 100644
index 78ace859b..000000000
--- a/topologies/training-level-bgp-custom/configlets/R4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname R4
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.14/24
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-
diff --git a/topologies/training-level-bgp-custom/configlets/R5-base b/topologies/training-level-bgp-custom/configlets/R5-base
deleted file mode 100644
index f7873a3fd..000000000
--- a/topologies/training-level-bgp-custom/configlets/R5-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname R5
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.21/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-bgp-custom/configlets/R6-base b/topologies/training-level-bgp-custom/configlets/R6-base
deleted file mode 100644
index 937c776eb..000000000
--- a/topologies/training-level-bgp-custom/configlets/R6-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname R6
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.22/24
-
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-bgp-custom/configlets/R7-base b/topologies/training-level-bgp-custom/configlets/R7-base
deleted file mode 100644
index 245a66815..000000000
--- a/topologies/training-level-bgp-custom/configlets/R7-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname R7
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.23/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-bgp-custom/configlets/R8-base b/topologies/training-level-bgp-custom/configlets/R8-base
deleted file mode 100644
index 047de8cd7..000000000
--- a/topologies/training-level-bgp-custom/configlets/R8-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname R8
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.24/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-bgp-custom/files/.ansible.cfg b/topologies/training-level-bgp-custom/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-level-bgp-custom/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-level-bgp-custom/files/.screenrc b/topologies/training-level-bgp-custom/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-level-bgp-custom/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-level-bgp-custom/files/MenuOptions.yaml b/topologies/training-level-bgp-custom/files/MenuOptions.yaml
deleted file mode 100644
index 80b42c154..000000000
--- a/topologies/training-level-bgp-custom/files/MenuOptions.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
-labconfiglets:
- reset:
- R1:
- - "R1-base"
- R2:
- - "R2-base"
- R3:
- - "R3-base"
- R4:
- - "R4-base"
- R5:
- - "R5-base"
- R6:
- - "R6-base"
- R7:
- - "R7-base"
- R8:
- - "R8-base"
\ No newline at end of file
diff --git a/topologies/training-level-bgp-custom/files/apps/coder/coder.yaml b/topologies/training-level-bgp-custom/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-level-bgp-custom/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-level-bgp-custom/files/apps/coder/labfiles/.placeholder b/topologies/training-level-bgp-custom/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-level-bgp-custom/files/apps/ssh/web.json b/topologies/training-level-bgp-custom/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-level-bgp-custom/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-level-bgp-custom/files/apps/uilanding/modules.yaml b/topologies/training-level-bgp-custom/files/apps/uilanding/modules.yaml
deleted file mode 100644
index c983faac0..000000000
--- a/topologies/training-level-bgp-custom/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "22,218,167,296"
- ip: "192.168.0.11"
- Spine2:
- coords: "356,215,517,300"
- ip: "192.168.0.12"
- Spine3:
- coords: "555,214,724,294"
- ip: "192.168.0.13"
- Spine4:
- coords: "925,218,1077,293"
- ip: "192.168.0.14"
- Leaf1:
- coords: "16,424,165,501"
- ip: "192.168.0.21"
- Leaf2:
- coords: "353,425,520,493"
- ip: "192.168.0.22"
- Leaf3:
- coords: "569,430,714,499"
- ip: "192.168.0.23"
- Leaf4:
- coords: "921,423,1074,502"
- ip: "192.168.0.24"
- BorderLeaf1:
- coords: "370,57,511,138"
- ip: "192.168.0.25"
- BorderLeaf2:
- coords: "561,65,726,145"
- ip: "192.168.0.26"
- Host1:
- coords: "15,534,149,611"
- ip: "192.168.0.51"
- Host2:
- coords: "365,539,504,619"
- ip: "192.168.0.52"
- Host3:
- coords: "566,542,711,620"
- ip: "192.168.0.53"
- Host4:
- coords: "929,542,1075,615"
- ip: "192.168.0.54"
- servers:
- Host5:
- coords: "182,545,307,636"
- ip: "192.168.0.101"
- port : 6001
- Host6:
- coords: "183,650,312,744"
- ip: "192.168.0.102"
- port : 6002
- Host7:
- coords: "747,545,875,636"
- ip: "192.168.0.103"
- port : 6003
- Host8:
- coords: "752,645,877,731"
- ip: "192.168.0.104"
- port : 6004
diff --git a/topologies/training-level-bgp-custom/files/apps/webui/.vncpass_clear b/topologies/training-level-bgp-custom/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-level-bgp-custom/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-level-bgp-custom/files/cvp/cvp_info.yaml b/topologies/training-level-bgp-custom/files/cvp/cvp_info.yaml
deleted file mode 100644
index 69c039c4f..000000000
--- a/topologies/training-level-bgp-custom/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,38 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf:
- parent: Tenant
- nodes:
- - R1
- - R2
- - R3
- - R4
- - R5
- - R6
- - R7
- - R8
-
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- R1:
- - R1-base
- R2:
- - R2-base
- R3:
- - R3-base
- R4:
- - R4-base
- R5:
- - R5-base
- R6:
- - R6-base
- R7:
- - R7-base
- R8:
- - R8-base
\ No newline at end of file
diff --git a/topologies/training-level-bgp-custom/files/hosts b/topologies/training-level-bgp-custom/files/hosts
deleted file mode 100644
index 886e6298e..000000000
--- a/topologies/training-level-bgp-custom/files/hosts
+++ /dev/null
@@ -1,10 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 R1
-192.168.0.12 R2
-192.168.0.13 R3
-192.168.0.14 R4
-192.168.0.21 R5
-192.168.0.22 R6
-192.168.0.23 R7
-192.168.0.24 R8
-192.168.0.5 cvp
diff --git a/topologies/training-level-bgp-custom/files/menus/default.yaml b/topologies/training-level-bgp-custom/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-level-bgp-custom/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-level-bgp-custom/files/menus/training-l3.yaml b/topologies/training-level-bgp-custom/files/menus/training-l3.yaml
deleted file mode 100644
index 56632636d..000000000
--- a/topologies/training-level-bgp-custom/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
----
- lab_list:
- reset:
- description: "Reset All Devices to Base Lab (reset)"
- labconfiglets:
- reset:
- R1:
- - "R1-base"
- R2:
- - "R2-base"
- R3:
- - "R3-base"
- R4:
- - "R4-base"
- R5:
- - "R5-base"
- R6:
- - "R6-base"
- R7:
- - "R7-base"
- R8:
- - "R8-base"
diff --git a/topologies/training-level-bgp-custom/files/scripts/Authenticate-CVP b/topologies/training-level-bgp-custom/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-level-bgp-custom/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-level-bgp-custom/files/scripts/Authenticate-CVP2 b/topologies/training-level-bgp-custom/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-bgp-custom/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-bgp-custom/files/scripts/Authenticate-CVP3 b/topologies/training-level-bgp-custom/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-level-bgp-custom/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-bgp-custom/files/scripts/Configlet1 b/topologies/training-level-bgp-custom/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-bgp-custom/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-bgp-custom/files/scripts/ConfigletChange b/topologies/training-level-bgp-custom/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-level-bgp-custom/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-bgp-custom/files/scripts/ConfigletDetail b/topologies/training-level-bgp-custom/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-level-bgp-custom/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-level-bgp-custom/files/scripts/ConfigletHistory b/topologies/training-level-bgp-custom/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-level-bgp-custom/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-level-bgp-custom/files/scripts/TaskBase b/topologies/training-level-bgp-custom/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-level-bgp-custom/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-bgp-custom/files/scripts/TaskCVP1 b/topologies/training-level-bgp-custom/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-level-bgp-custom/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-level-bgp-custom/files/scripts/TaskExecute b/topologies/training-level-bgp-custom/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-level-bgp-custom/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-level-bgp-custom/files/scripts/TaskLog b/topologies/training-level-bgp-custom/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-bgp-custom/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-bgp-custom/files/scripts/TaskLog1 b/topologies/training-level-bgp-custom/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-bgp-custom/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-bgp-custom/files/scripts/TaskLogView b/topologies/training-level-bgp-custom/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-level-bgp-custom/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-bgp-custom/files/scripts/TaskNote b/topologies/training-level-bgp-custom/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-level-bgp-custom/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-level-bgp-custom/labguides/.gitignore b/topologies/training-level-bgp-custom/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-level-bgp-custom/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-level-bgp-custom/labguides/Makefile b/topologies/training-level-bgp-custom/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-level-bgp-custom/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-level-bgp-custom/labguides/readme.md b/topologies/training-level-bgp-custom/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-level-bgp-custom/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-level-bgp-custom/labguides/source/_static/arista_logo.png b/topologies/training-level-bgp-custom/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-level-bgp-custom/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-level-bgp-custom/labguides/source/_static/arista_logo_160by26.png b/topologies/training-level-bgp-custom/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-level-bgp-custom/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-level-bgp-custom/labguides/source/_static/arista_logo_320by52.png b/topologies/training-level-bgp-custom/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-level-bgp-custom/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-level-bgp-custom/labguides/source/_static/cloudvision-icon.png b/topologies/training-level-bgp-custom/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-level-bgp-custom/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-level-bgp-custom/labguides/source/_static/logo.jpg b/topologies/training-level-bgp-custom/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-bgp-custom/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-bgp-custom/labguides/source/_static/my-styles.css b/topologies/training-level-bgp-custom/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-level-bgp-custom/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-level-bgp-custom/labguides/source/conf.py b/topologies/training-level-bgp-custom/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-level-bgp-custom/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-level-bgp-custom/labguides/source/connecting.rst b/topologies/training-level-bgp-custom/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-level-bgp-custom/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-level-bgp-custom/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-level-bgp-custom/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-level-bgp-custom/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-level-bgp-custom/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-level-bgp-custom/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-level-bgp-custom/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-level-bgp-custom/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-level-bgp-custom/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-level-bgp-custom/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-level-bgp-custom/labguides/source/images/logo.jpg b/topologies/training-level-bgp-custom/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-bgp-custom/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-bgp-custom/labguides/source/index.rst b/topologies/training-level-bgp-custom/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-level-bgp-custom/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-level-bgp-custom/topo_build.yml b/topologies/training-level-bgp-custom/topo_build.yml
deleted file mode 100644
index 97be5078e..000000000
--- a/topologies/training-level-bgp-custom/topo_build.yml
+++ /dev/null
@@ -1,104 +0,0 @@
-host_cpu: 4
-cvp_cpu: 32
-cvp_ram: 42
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - R1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: R2
- neighborPort: Ethernet2
- port: Ethernet1
-
- - R2:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: R1
- neighborPort: Ethernet1
- port: Ethernet2
- - neighborDevice: R3
- neighborPort: Ethernet1
- port: Ethernet3
- - neighborDevice: R4
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: R6
- neighborPort: Ethernet1
- port: Ethernet1
-
- - R3:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: R2
- neighborPort: Ethernet3
- port: Ethernet1
- - neighborDevice: R4
- neighborPort: Ethernet2
- port: Ethernet2
-
- - R4:
- ip_addr: 192.168.0.14
- sys_mac: 00:1c:73:b4:c6:01
- neighbors:
- - neighborDevice: R2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: R3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: R5
- neighborPort: Ethernet1
- port: Ethernet3
- - neighborDevice: R7
- neighborPort: Ethernet1
- port: Ethernet1
-
- - R5:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: R4
- neighborPort: Ethernet3
- port: Ethernet1
-
-
- - R6:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: R2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: R8
- neighborPort: Ethernet1
- port: Ethernet2
-
- - R7:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: R4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: R8
- neighborPort: Ethernet2
- port: Ethernet2
-
- - R8:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: R7
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: R6
- neighborPort: Ethernet2
- port: Ethernet1
-
-servers:
-additional_ssh_nodes:
-additional_clab_nodes:
diff --git a/topologies/training-level-cvp/atd-topo.png b/topologies/training-level-cvp/atd-topo.png
deleted file mode 100644
index 53ba5d7d9..000000000
Binary files a/topologies/training-level-cvp/atd-topo.png and /dev/null differ
diff --git a/topologies/training-level-cvp/configlets/ATD-INFRA b/topologies/training-level-cvp/configlets/ATD-INFRA
deleted file mode 100644
index de87bc743..000000000
--- a/topologies/training-level-cvp/configlets/ATD-INFRA
+++ /dev/null
@@ -1,53 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management0
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management0
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-level-cvp/configlets/Base-Builder.py b/topologies/training-level-cvp/configlets/Base-Builder.py
deleted file mode 100644
index 167d9c750..000000000
--- a/topologies/training-level-cvp/configlets/Base-Builder.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from cvplibrary import CVPGlobalVariables, GlobalVariableNames, Form
-
-
-
-# Get this devices Serial
-
-
-serial = CVPGlobalVariables.getValue( GlobalVariableNames.CVP_SERIAL )
-mask = '24'
-ServiceRouting = True
-
-#Create the IP address from the serial number
-
-
-if serial == '4A7F6E96300132903A73A74CCF18B697':
- IPaddress = '192.168.0.21'
- hostname = 'leaf1'
-
-
-elif serial == '3831DEFC364900BF9EEFC45FEE7794E7':
- IPaddress = '192.168.0.22'
- hostname = 'leaf2'
-
-
-elif serial == 'ED469CFA13C4017B2D19BF7EBCAD50B1':
- IPaddress = '192.168.0.23'
- hostname = 'leaf3'
-
-
-elif serial == '434653268ABA082A2FF6B52F1367CE80':
- IPaddress = '192.168.0.24'
- hostname = 'leaf4'
-
-elif serial == '8085B9640BC6D8FDC1FD23D242EBF433':
- IPaddress = '192.168.0.11'
- hostname = 'spine1'
-
-elif serial == 'D28D62E5729AB8BF44A0BC017DEB188A':
- IPaddress = '192.168.0.12'
- hostname = 'spine2'
-
-elif serial == 'F77703A62ADE220E689A41057AA56288':
- IPaddress = '192.168.0.13'
- hostname = 'spine3'
-
-elif serial == 'D763323F00C03738A8C824D2F1DA05E8':
- IPaddress = '192.168.0.25'
- hostname = 'borderleaf1'
-
-elif serial == '7C16136B7483F2E2FB002E8E0646F1F0':
- IPaddress = '192.168.0.26'
- hostname = 'borderleaf2'
-
-elif serial == '86342B780ED73BCB30E1DFE48E26AC38':
- IPaddress = '192.168.0.51'
- ServiceRouting = False
- hostname = 'host1'
-
-
-elif serial == 'CE0B31805130945E3CE40B060E9E636D':
- IPaddress = '192.168.0.52'
- ServiceRouting = False
- hostname = 'host2'
-
-
-# Generate and print config - Ignore the service routing command if not needed
-print 'hostname %s' % hostname
-print '!'
-print 'interface Management 1'
-print ' ip address %s/%s' % ( IPaddress, mask )
-print ' no lldp transmit'
-print ' no lldp receive'
-print '!'
-if ServiceRouting:
- print 'service routing protocols model multi-agent'
- print '!'
-print 'dns domain arista.lab'
-print '!'
-print 'ip route 0.0.0.0/0 192.168.0.1'
-print '!'
-print 'ip routing'
-print '!'
-print 'management api http-commands'
-print ' no shutdown'
-print ' protocol http'
-print '!'
\ No newline at end of file
diff --git a/topologies/training-level-cvp/configlets/borderleaf1-base b/topologies/training-level-cvp/configlets/borderleaf1-base
deleted file mode 100644
index e274c6eb4..000000000
--- a/topologies/training-level-cvp/configlets/borderleaf1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.25/24
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
diff --git a/topologies/training-level-cvp/configlets/borderleaf2-base b/topologies/training-level-cvp/configlets/borderleaf2-base
deleted file mode 100644
index a7778e0b4..000000000
--- a/topologies/training-level-cvp/configlets/borderleaf2-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname borderleaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.26/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-cvp/configlets/host1-base b/topologies/training-level-cvp/configlets/host1-base
deleted file mode 100644
index 915d58edb..000000000
--- a/topologies/training-level-cvp/configlets/host1-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host1
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.51/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-cvp/configlets/host2-base b/topologies/training-level-cvp/configlets/host2-base
deleted file mode 100644
index 63f0c9c38..000000000
--- a/topologies/training-level-cvp/configlets/host2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host2
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.52/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-cvp/configlets/host3-base b/topologies/training-level-cvp/configlets/host3-base
deleted file mode 100644
index 979a49b28..000000000
--- a/topologies/training-level-cvp/configlets/host3-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host3
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.53/24
-
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-cvp/configlets/host4-base b/topologies/training-level-cvp/configlets/host4-base
deleted file mode 100644
index f85e77a77..000000000
--- a/topologies/training-level-cvp/configlets/host4-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname host4
-!
-spanning-tree mode none
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.54/24
-
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-
diff --git a/topologies/training-level-cvp/configlets/leaf1-base b/topologies/training-level-cvp/configlets/leaf1-base
deleted file mode 100644
index 7b316b33b..000000000
--- a/topologies/training-level-cvp/configlets/leaf1-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.21/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-cvp/configlets/leaf2-base b/topologies/training-level-cvp/configlets/leaf2-base
deleted file mode 100644
index 22fffb444..000000000
--- a/topologies/training-level-cvp/configlets/leaf2-base
+++ /dev/null
@@ -1,15 +0,0 @@
-hostname leaf2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.22/24
-
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-cvp/configlets/leaf3-base b/topologies/training-level-cvp/configlets/leaf3-base
deleted file mode 100644
index 37e7bc8d3..000000000
--- a/topologies/training-level-cvp/configlets/leaf3-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.23/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-cvp/configlets/leaf4-base b/topologies/training-level-cvp/configlets/leaf4-base
deleted file mode 100644
index f0cff7b25..000000000
--- a/topologies/training-level-cvp/configlets/leaf4-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname leaf4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.24/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-cvp/configlets/spine1-base b/topologies/training-level-cvp/configlets/spine1-base
deleted file mode 100644
index 5e9d072b1..000000000
--- a/topologies/training-level-cvp/configlets/spine1-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine1
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.11/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-cvp/configlets/spine2-base b/topologies/training-level-cvp/configlets/spine2-base
deleted file mode 100644
index cc9d0bef1..000000000
--- a/topologies/training-level-cvp/configlets/spine2-base
+++ /dev/null
@@ -1,13 +0,0 @@
-hostname spine2
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.12/24
-
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-cvp/configlets/spine3-base b/topologies/training-level-cvp/configlets/spine3-base
deleted file mode 100644
index 853f6564a..000000000
--- a/topologies/training-level-cvp/configlets/spine3-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine3
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.13/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-cvp/configlets/spine4-base b/topologies/training-level-cvp/configlets/spine4-base
deleted file mode 100644
index 240453581..000000000
--- a/topologies/training-level-cvp/configlets/spine4-base
+++ /dev/null
@@ -1,14 +0,0 @@
-hostname spine4
-!
-interface Management 0
- vrf MGMT
- ip address 192.168.0.14/24
-
-!
-service routing protocols model multi-agent
-!
-dns domain arista.lab
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
diff --git a/topologies/training-level-cvp/files/.ansible.cfg b/topologies/training-level-cvp/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-level-cvp/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-level-cvp/files/.screenrc b/topologies/training-level-cvp/files/.screenrc
deleted file mode 100644
index 1d70f5e42..000000000
--- a/topologies/training-level-cvp/files/.screenrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen 1 ssh 192.168.0.4
-screen -t CVP 2 ssh 192.168.0.5
-screen -t Spine1 3 ssh 192.168.0.11
-screen -t Spine2 4 ssh 192.168.0.12
-screen -t Spine3 5 ssh 192.168.0.13
-screen -t Leaf1 6 ssh 192.168.0.21
-screen -t Leaf2 7 ssh 192.168.0.22
-screen -t Leaf3 8 ssh 192.168.0.23
-screen -t Leaf4 9 ssh 192.168.0.24
-screen -t Borderleaf1 10 ssh 192.168.0.25
-screen -t Borderlead2 11 ssh 192.168.0.26
-screen -t Host1 15 ssh 192.168.0.51
-screen -t Host2 16 ssh 192.168.0.52
diff --git a/topologies/training-level-cvp/files/MenuOptions.yaml b/topologies/training-level-cvp/files/MenuOptions.yaml
deleted file mode 100644
index f68e2261d..000000000
--- a/topologies/training-level-cvp/files/MenuOptions.yaml
+++ /dev/null
@@ -1,214 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan)"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "L2-EVPN Lab (l2evpn)"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "L3-EVPN Lab (l3evpn)"
- aamh:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "Active-Active Multi Homing lab (aamh)"
- pim:
- - command: "/usr/local/bin/ConfigureTopology.py -t aamh"
- description: "PIM Lab (pim)"
-labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
- vxlan:
- spine1:
- - "spine1-base"
- - "Spine-1-VXALN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-VXALN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-VXALN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-VXALN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-VXALN-Begin"
- leaf3:
- - "leaf3-base"
- - "leaf-3-VXALN-Begin"
- leaf4:
- - "leaf4-base"
- - "leaf-4-VXALN-Begin"
- host1:
- - "host1-base"
- - "Host-1-VXALN-Begin"
- host2:
- - "host2-base"
- - "Host-2-VXALN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-VXALN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-VXALN-Begin"
- l2evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L2EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L2EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L2EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L2EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L2EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L2EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L2EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L2EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L2EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L2EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L2EVPN-Begin"
- l3evpn:
- spine1:
- - "spine1-base"
- - "Spine-1-L3EVPN-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-L3EVPN-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-L3EVPN-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-L3EVPN-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-L3EVPN-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-L3EVPN-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-L3EVPN-Begin"
- host1:
- - "host1-base"
- - "Host-1-L3EVPN-Begin"
- host2:
- - "host2-base"
- - "Host-2-L3EVPN-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-L3EVPN-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-L3EVPN-Begin"
- aamh:
- spine1:
- - "spine1-base"
- - "Spine-1-AAMH-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-AAMH-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-AAMH-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-AAMH-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-AAMH-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-AAMH-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-AAMH-Begin"
- host1:
- - "host1-base"
- - "Host-1-AAMH-Begin"
- host2:
- - "host2-base"
- - "Host-2-AAMH-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-AAMH-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-AAMH-Begin"
- pim:
- spine1:
- - "spine1-base"
- - "Spine-1-PIM-Begin"
- spine2:
- - "spine2-base"
- - "Spine-2-PIM-Begin"
- spine3:
- - "spine3-base"
- - "Spine-3-PIM-Begin"
- leaf1:
- - "leaf1-base"
- - "Leaf-1-PIM-Begin"
- leaf2:
- - "leaf2-base"
- - "Leaf-2-PIM-Begin"
- leaf3:
- - "leaf3-base"
- - "Leaf-3-PIM-Begin"
- leaf4:
- - "leaf4-base"
- - "Leaf-4-PIM-Begin"
- host1:
- - "host1-base"
- - "Host-1-PIM-Begin"
- host2:
- - "host2-base"
- - "Host-2-PIM-Begin"
- borderleaf1:
- - "borderleaf1-base"
- - "Borderleaf-1-PIM-Begin"
- borderleaf2:
- - "borderleaf2-base"
- - "Borderleaf-2-PIM-Begin"
\ No newline at end of file
diff --git a/topologies/training-level-cvp/files/apps/coder/coder.yaml b/topologies/training-level-cvp/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-level-cvp/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-level-cvp/files/apps/coder/labfiles/.placeholder b/topologies/training-level-cvp/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-level-cvp/files/apps/gui/host5/arista/host-startup.sh b/topologies/training-level-cvp/files/apps/gui/host5/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-cvp/files/apps/gui/host5/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-cvp/files/apps/gui/host6/arista/host-startup.sh b/topologies/training-level-cvp/files/apps/gui/host6/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-cvp/files/apps/gui/host6/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-cvp/files/apps/gui/host7/arista/host-startup.sh b/topologies/training-level-cvp/files/apps/gui/host7/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-cvp/files/apps/gui/host7/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-cvp/files/apps/gui/host8/arista/host-startup.sh b/topologies/training-level-cvp/files/apps/gui/host8/arista/host-startup.sh
deleted file mode 100644
index 16eafb783..000000000
--- a/topologies/training-level-cvp/files/apps/gui/host8/arista/host-startup.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
-sudo apt-get update
-sudo apt install openssh-server -y
-sudo service ssh start
-sudo apt-get install ufw -y
-sudo ufw enable
-sudo ufw allow 22
-sudo ufw disable
-useradd -rm -d /home/arista -s /bin/bash -g root -G sudo -u 1000 arista
-echo 'arista:arista123' | chpasswd
-service ssh start
-sudo apt install ifenslave -y
-sudo apt install iputils-ping -y
-sudo add-apt-repository ppa:wireshark-dev/stable -y
-sudo apt-get install filezilla -y
-sudo apt-get install vsftpd -y
-sudo service vsftpd restart
\ No newline at end of file
diff --git a/topologies/training-level-cvp/files/apps/ssh/web.json b/topologies/training-level-cvp/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-level-cvp/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-level-cvp/files/apps/uilanding/modules.yaml b/topologies/training-level-cvp/files/apps/uilanding/modules.yaml
deleted file mode 100644
index c983faac0..000000000
--- a/topologies/training-level-cvp/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "22,218,167,296"
- ip: "192.168.0.11"
- Spine2:
- coords: "356,215,517,300"
- ip: "192.168.0.12"
- Spine3:
- coords: "555,214,724,294"
- ip: "192.168.0.13"
- Spine4:
- coords: "925,218,1077,293"
- ip: "192.168.0.14"
- Leaf1:
- coords: "16,424,165,501"
- ip: "192.168.0.21"
- Leaf2:
- coords: "353,425,520,493"
- ip: "192.168.0.22"
- Leaf3:
- coords: "569,430,714,499"
- ip: "192.168.0.23"
- Leaf4:
- coords: "921,423,1074,502"
- ip: "192.168.0.24"
- BorderLeaf1:
- coords: "370,57,511,138"
- ip: "192.168.0.25"
- BorderLeaf2:
- coords: "561,65,726,145"
- ip: "192.168.0.26"
- Host1:
- coords: "15,534,149,611"
- ip: "192.168.0.51"
- Host2:
- coords: "365,539,504,619"
- ip: "192.168.0.52"
- Host3:
- coords: "566,542,711,620"
- ip: "192.168.0.53"
- Host4:
- coords: "929,542,1075,615"
- ip: "192.168.0.54"
- servers:
- Host5:
- coords: "182,545,307,636"
- ip: "192.168.0.101"
- port : 6001
- Host6:
- coords: "183,650,312,744"
- ip: "192.168.0.102"
- port : 6002
- Host7:
- coords: "747,545,875,636"
- ip: "192.168.0.103"
- port : 6003
- Host8:
- coords: "752,645,877,731"
- ip: "192.168.0.104"
- port : 6004
diff --git a/topologies/training-level-cvp/files/apps/webui/.vncpass_clear b/topologies/training-level-cvp/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-level-cvp/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-level-cvp/files/cvp/cvp_info.yaml b/topologies/training-level-cvp/files/cvp/cvp_info.yaml
deleted file mode 100644
index 7e796e77f..000000000
--- a/topologies/training-level-cvp/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Leaf:
- parent: Tenant
- nodes:
- - leaf1
- - leaf2
- - leaf3
- - leaf4
- Borderleaf:
- parent: Tenant
- nodes:
- - borderleaf1
- - borderleaf2
- Spine:
- parent: Tenant
- nodes:
- - spine1
- - spine2
- - spine3
- - spine4
- Hosts:
- parent: Tenant
- nodes:
- - host1
- - host2
- - host3
- - host4
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- spine1:
- - spine1-base
- spine2:
- - spine2-base
- spine3:
- - spine3-base
- spine4:
- - spine4-base
- leaf1:
- - leaf1-base
- leaf2:
- - leaf2-base
- borderleaf1:
- - borderleaf1-base
- borderleaf2:
- - borderleaf2-base
- leaf3:
- - leaf3-base
- leaf4:
- - leaf4-base
- host3:
- - host3-base
- host4:
- - host4-base
- host1:
- - host1-base
- host2:
- - host2-base
\ No newline at end of file
diff --git a/topologies/training-level-cvp/files/hosts b/topologies/training-level-cvp/files/hosts
deleted file mode 100644
index b01ba8483..000000000
--- a/topologies/training-level-cvp/files/hosts
+++ /dev/null
@@ -1,24 +0,0 @@
-127.0.0.1 localhost
-192.168.0.11 spine1
-192.168.0.12 spine2
-192.168.0.13 spine3
-192.168.0.14 spine4
-192.168.0.21 leaf1
-192.168.0.22 leaf2
-192.168.0.23 leaf3
-192.168.0.24 leaf4
-192.168.0.25 borderleaf1
-192.168.0.26 borderleaf2
-192.168.0.41 server1
-192.168.0.42 server2
-192.168.0.43 server3
-192.168.0.44 server4
-192.168.0.51 host1
-192.168.0.52 host2
-192.168.0.53 host3
-192.168.0.54 host4
-192.168.0.101 host5
-192.168.0.102 host6
-192.168.0.103 host7
-192.168.0.104 host8
-192.168.0.5 cvp
diff --git a/topologies/training-level-cvp/files/menus/default.yaml b/topologies/training-level-cvp/files/menus/default.yaml
deleted file mode 100644
index 7edae00fc..000000000
--- a/topologies/training-level-cvp/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: training-l3.yaml
\ No newline at end of file
diff --git a/topologies/training-level-cvp/files/menus/training-l3.yaml b/topologies/training-level-cvp/files/menus/training-l3.yaml
deleted file mode 100644
index d0365b554..000000000
--- a/topologies/training-level-cvp/files/menus/training-l3.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
----
- lab_list:
- reset:
- description: "Reset All Devices to Base Lab (reset)"
- labconfiglets:
- reset:
- spine1:
- - "spine1-base"
- spine2:
- - "spine2-base"
- spine3:
- - "spine3-base"
- spine4:
- - "spine4-base"
- leaf1:
- - "leaf1-base"
- leaf2:
- - "leaf2-base"
- leaf3:
- - "leaf3-base"
- leaf4:
- - "leaf4-base"
- host1:
- - "host1-base"
- host2:
- - "host2-base"
- host3:
- - "host3-base"
- host4:
- - "host4-base"
- borderleaf1:
- - "borderleaf1-base"
- borderleaf2:
- - "borderleaf2-base"
\ No newline at end of file
diff --git a/topologies/training-level-cvp/files/scripts/Authenticate-CVP b/topologies/training-level-cvp/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-level-cvp/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-level-cvp/files/scripts/Authenticate-CVP2 b/topologies/training-level-cvp/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-cvp/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-cvp/files/scripts/Authenticate-CVP3 b/topologies/training-level-cvp/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-level-cvp/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-cvp/files/scripts/Configlet1 b/topologies/training-level-cvp/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-cvp/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-cvp/files/scripts/ConfigletChange b/topologies/training-level-cvp/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-level-cvp/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-cvp/files/scripts/ConfigletDetail b/topologies/training-level-cvp/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-level-cvp/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-level-cvp/files/scripts/ConfigletHistory b/topologies/training-level-cvp/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-level-cvp/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-level-cvp/files/scripts/TaskBase b/topologies/training-level-cvp/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-level-cvp/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-cvp/files/scripts/TaskCVP1 b/topologies/training-level-cvp/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-level-cvp/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-level-cvp/files/scripts/TaskExecute b/topologies/training-level-cvp/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-level-cvp/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-level-cvp/files/scripts/TaskLog b/topologies/training-level-cvp/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-cvp/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-cvp/files/scripts/TaskLog1 b/topologies/training-level-cvp/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-cvp/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-cvp/files/scripts/TaskLogView b/topologies/training-level-cvp/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-level-cvp/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-cvp/files/scripts/TaskNote b/topologies/training-level-cvp/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-level-cvp/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-level-cvp/labguides/.gitignore b/topologies/training-level-cvp/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-level-cvp/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-level-cvp/labguides/Makefile b/topologies/training-level-cvp/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-level-cvp/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-level-cvp/labguides/readme.md b/topologies/training-level-cvp/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-level-cvp/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-level-cvp/labguides/source/_static/arista_logo.png b/topologies/training-level-cvp/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-level-cvp/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-level-cvp/labguides/source/_static/arista_logo_160by26.png b/topologies/training-level-cvp/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-level-cvp/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-level-cvp/labguides/source/_static/arista_logo_320by52.png b/topologies/training-level-cvp/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-level-cvp/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-level-cvp/labguides/source/_static/cloudvision-icon.png b/topologies/training-level-cvp/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-level-cvp/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-level-cvp/labguides/source/_static/logo.jpg b/topologies/training-level-cvp/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-cvp/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-cvp/labguides/source/_static/my-styles.css b/topologies/training-level-cvp/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-level-cvp/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-level-cvp/labguides/source/conf.py b/topologies/training-level-cvp/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-level-cvp/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to
element.
- # For black navbar, do "navbar navbar-inverse"
- #'navbar_class': "navbar navbar-inverse",
- 'navbar_class': "navbar",
-
- # Fix navigation bar to top of page?
- # Values: "true" (default) or "false"
- 'navbar_fixed_top': "true",
-
- # Location of link to source.
- # Options are "nav" (default), "footer" or anything else to exclude.
- #'source_link_position': "nav",
-
- # Bootswatch (http://bootswatch.com/) theme.
- #
- # Options are nothing (default) or the name of a valid theme
- # such as "cosmo" or "sandstone".
- #
- # The set of valid themes depend on the version of Bootstrap
- # that's used (the next config option).
- #
- # Currently, the supported themes are:
- # - Bootstrap 2: https://bootswatch.com/2
- # - Bootstrap 3: https://bootswatch.com/3
- 'bootswatch_theme': "spacelab",
-
- # Choose Bootstrap version.
- # Values: "3" (default) or "2" (in quotes)
- 'bootstrap_version': "3",
-}
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# " v documentation".
-#html_title = "AristaATD"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = "Demo"
-
-# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
-# Path should be relative to the ``_static`` files directory.
-#html_logo = "cloudvision-icon.png"
-
-# -- Options for HTMLHelp output ------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AristaATD'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'ATD.tex', u'ATD Lab Guide',
- u'ATD Help (atd-help@arista.com)', 'manual'),
-]
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'atd', u'ATD Lab Guide',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'ATD', u'ATD Lab Guide',
- author, 'ATD', 'Lab Documentation.',
- 'Miscellaneous'),
-]
-
-
-def setup(app):
- app.add_stylesheet("my-styles.css") # also can be a full URL
- # app.add_stylesheet("ANOTHER.css")
- # app.add_stylesheet("AND_ANOTHER.css")
diff --git a/topologies/training-level-cvp/labguides/source/connecting.rst b/topologies/training-level-cvp/labguides/source/connecting.rst
deleted file mode 100644
index 10ae589ef..000000000
--- a/topologies/training-level-cvp/labguides/source/connecting.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Connecting
-==========
-
-1. Log into the Arista Test Drive portal with your assigned URL. If you
- don’t have one, please see your ATD staff.
-
-.. image:: images/connecting/nested_connecting_1.png
-
-2. SSH to the public address assigned to the LabAccess jumphost server (this is the Topology Address shown in the "Welcome to Arista's Test Drive!" picture above). The username is ``arista`` and the password is ``{REPLACE_PWD}``:
-
- .. code-block:: text
-
- ssh arista@{unique_address}.topo.testdrive.arista.com
-
-|
-
-.. image:: images/connecting/nested_connecting_2.png
- :align: center
-
-|
-
-3. The LabAccess menu allows users to connect to each device and specify
- lab topology. It is recommended to open multiple SSH sessions or use
- the Screen option (under the SSH Menu) to jump between devices rapidly.
-
- You can also Access the LabAccess Menu from your browser by clicking on `Console Access`
-
-.. image:: images/connecting/nested_connecting_3.png
diff --git a/topologies/training-level-cvp/labguides/source/images/connecting/nested_connecting_1.png b/topologies/training-level-cvp/labguides/source/images/connecting/nested_connecting_1.png
deleted file mode 100644
index aa76597b8..000000000
Binary files a/topologies/training-level-cvp/labguides/source/images/connecting/nested_connecting_1.png and /dev/null differ
diff --git a/topologies/training-level-cvp/labguides/source/images/connecting/nested_connecting_2.png b/topologies/training-level-cvp/labguides/source/images/connecting/nested_connecting_2.png
deleted file mode 100644
index 2c6b51a2b..000000000
Binary files a/topologies/training-level-cvp/labguides/source/images/connecting/nested_connecting_2.png and /dev/null differ
diff --git a/topologies/training-level-cvp/labguides/source/images/connecting/nested_connecting_3.png b/topologies/training-level-cvp/labguides/source/images/connecting/nested_connecting_3.png
deleted file mode 100644
index 1cc7402a3..000000000
Binary files a/topologies/training-level-cvp/labguides/source/images/connecting/nested_connecting_3.png and /dev/null differ
diff --git a/topologies/training-level-cvp/labguides/source/images/logo.jpg b/topologies/training-level-cvp/labguides/source/images/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-cvp/labguides/source/images/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-cvp/labguides/source/index.rst b/topologies/training-level-cvp/labguides/source/index.rst
deleted file mode 100644
index bb76aaa2e..000000000
--- a/topologies/training-level-cvp/labguides/source/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Welcome to the Arista Training documentation!
-========================================
-
-.. toctree::
- :maxdepth: 1
- :caption: EOS Configuration
-
- connecting.rst
diff --git a/topologies/training-level-cvp/topo_build.yml b/topologies/training-level-cvp/topo_build.yml
deleted file mode 100644
index 9ccba5edb..000000000
--- a/topologies/training-level-cvp/topo_build.yml
+++ /dev/null
@@ -1,385 +0,0 @@
-host_cpu: 4
-cvp_cpu: 32
-cvp_ram: 42
-cvp_nodes: 1
-veos_cpu: 2
-nodes:
- - spine1:
- ip_addr: 192.168.0.11
- sys_mac: 00:1c:73:b1:c6:01
- neighbors:
- - neighborDevice: spine2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet3
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet3
- port: Ethernet8
- - spine2:
- ip_addr: 192.168.0.12
- sys_mac: 00:1c:73:b2:c6:01
- neighbors:
- - neighborDevice: spine1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet4
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet4
- port: Ethernet8
- - spine3:
- ip_addr: 192.168.0.13
- sys_mac: 00:1c:73:b3:c6:01
- neighbors:
- - neighborDevice: spine4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet5
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet5
- port: Ethernet8
- - spine4:
- ip_addr: 192.168.0.14
- sys_mac: 00:1c:73:b4:c6:01
- neighbors:
- - neighborDevice: spine3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: spine3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: leaf1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: leaf2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: leaf3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: leaf4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: borderleaf1
- neighborPort: Ethernet6
- port: Ethernet7
- - neighborDevice: borderleaf2
- neighborPort: Ethernet6
- port: Ethernet8
- - leaf1:
- ip_addr: 192.168.0.21
- sys_mac: 00:1c:73:c1:c6:01
- neighbors:
- - neighborDevice: leaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet3
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet3
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet3
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet3
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf2:
- ip_addr: 192.168.0.22
- sys_mac: 00:1c:73:c2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet4
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet4
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet4
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet4
- port: Ethernet6
- - neighborDevice: host1
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host5
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host2
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host6
- neighborPort: Ethernet2
- port: Ethernet10
- - leaf3:
- ip_addr: 192.168.0.23
- sys_mac: 00:1c:73:c3:c6:01
- neighbors:
- - neighborDevice: leaf4
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet5
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet5
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet5
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet5
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet1
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet1
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet1
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet1
- port: Ethernet10
- - leaf4:
- ip_addr: 192.168.0.24
- sys_mac: 00:1c:73:c4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: leaf3
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet6
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet6
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet6
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet6
- port: Ethernet6
- - neighborDevice: host3
- neighborPort: Ethernet2
- port: Ethernet7
- - neighborDevice: host7
- neighborPort: Ethernet2
- port: Ethernet8
- - neighborDevice: host4
- neighborPort: Ethernet2
- port: Ethernet9
- - neighborDevice: host8
- neighborPort: Ethernet2
- port: Ethernet10
- - borderleaf1:
- ip_addr: 192.168.0.25
- sys_mac: 00:1c:73:c5:c6:01
- neighbors:
- - neighborDevice: borderleaf2
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf2
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet7
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet7
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet7
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet7
- port: Ethernet6
- - borderleaf2:
- ip_addr: 192.168.0.26
- sys_mac: 00:1c:73:c6:c6:01
- neighbors:
- - neighborDevice: borderleaf1
- neighborPort: Ethernet1
- port: Ethernet1
- - neighborDevice: borderleaf1
- neighborPort: Ethernet2
- port: Ethernet2
- - neighborDevice: spine1
- neighborPort: Ethernet8
- port: Ethernet3
- - neighborDevice: spine2
- neighborPort: Ethernet8
- port: Ethernet4
- - neighborDevice: spine3
- neighborPort: Ethernet8
- port: Ethernet5
- - neighborDevice: spine4
- neighborPort: Ethernet8
- port: Ethernet6
- - host1:
- ip_addr: 192.168.0.51
- sys_mac: 00:1c:73:f1:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet7
- port: Ethernet2
- - host2:
- ip_addr: 192.168.0.52
- sys_mac: 00:1c:73:f2:c6:01
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet9
- port: Ethernet2
- - host3:
- ip_addr: 192.168.0.53
- sys_mac: 00:1c:73:f3:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet7
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet7
- port: Ethernet2
- - host4:
- ip_addr: 192.168.0.54
- sys_mac: 00:1c:73:f4:c6:01
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet9
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet9
- port: Ethernet2
-servers:
- - host5:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.101
- port : 6001
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet8
- port: Ethernet2
- - host6:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.102
- port : 6002
- neighbors:
- - neighborDevice: leaf1
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf2
- neighborPort: Ethernet10
- port: Ethernet2
- - host7:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.103
- port : 6003
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet8
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet8
- port: Ethernet2
- - host8:
- image_name: "gcr.io/atd-testdrivetraining-dev/hosts-gui/host1:latest"
- ip_addr: 192.168.0.104
- port : 6004
- neighbors:
- - neighborDevice: leaf3
- neighborPort: Ethernet10
- port: Ethernet1
- - neighborDevice: leaf4
- neighborPort: Ethernet10
- port: Ethernet2
-additional_ssh_nodes:
-additional_clab_nodes:
diff --git a/topologies/training-level-path-finder/atd-topo.png b/topologies/training-level-path-finder/atd-topo.png
deleted file mode 100644
index 6b50dcd96..000000000
Binary files a/topologies/training-level-path-finder/atd-topo.png and /dev/null differ
diff --git a/topologies/training-level-path-finder/configlets/ATD-INFRA b/topologies/training-level-path-finder/configlets/ATD-INFRA
deleted file mode 100644
index 8d81bfe8b..000000000
--- a/topologies/training-level-path-finder/configlets/ATD-INFRA
+++ /dev/null
@@ -1,60 +0,0 @@
-vrf instance MGMT
-!
-daemon TerminAttr
- exec /usr/bin/TerminAttr -cvcompression=gzip -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata,flowtracking/hardware -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvaddr=192.168.0.5:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -taillogs -disableaaa
- no shutdown
-!
-alias mlag-reload bash /mnt/flash/shut_intfs && sudo shutdown now -r
-alias conint sh interface | i connected
-alias senz show interface counter error | nz
-alias shmc show int | awk '/^[A-Z]/ { intf = $1 } /, address is/ { print intf, $6 }'
-alias snz show interface counter | nz
-alias spd show port-channel %1 detail all
-alias sqnz show interface counter queue | nz
-alias srnz show interface counter rate | nz
-alias intdesc
- !! Usage: intdesc interface-name description
- 10 config
- 20 int %1
- 30 desc %2
- 40 exit
-!
-dns domain arista.lab
-!
-ip name-server vrf MGMT 8.8.8.8
-!
-ip host apiserver.arista.io 35.192.157.156
-ip host arista.io 34.67.65.165
-ip host www.arista.io 34.67.65.165
-ip host www.cv-staging.corp.arista.io 34.82.61.12
-!
-service routing protocols model multi-agent
-!
-ntp server vrf MGMT 192.168.0.1 iburst source Management 1
-!
-radius-server host 192.168.0.1 vrf MGMT key 7 0207165218120E
-!
-aaa group server radius atds
- server 192.168.0.1 vrf MGMT
-!
-aaa authentication login default group atds local
-aaa authorization exec default group atds local
-aaa authorization commands all default local
-!
-username Script secret sha512 $6$PNfpb9anSBQ5/aia$phaa3ar5pwkntenD9WHc6Ed5b96lbW0dc0bjtwPnFLaDiCK8D5Cjl6ewP/xdNbl4PtS6Paq.3SssN8pj05NQm.
-username admin privilege 15 role network-admin secret 5 $1$5O85YVVn$HrXcfOivJEnISTMb6xrJc.
-username arista privilege 15 role network-admin secret 5 $1$4VjIjfd1$XkUVulbNDESHFzcxDU.Tk1
-!
-username arista ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ERvV4GaPq3FzxY8T+5hMF/1T+l8wiPsVCtOrZU4Hy6NCNlAiDBdA/RUtX5/aOu5JvHyPTVHqWJ0qi9BqU3rxCNl/l2/5UZbm9RPzdZ1QCwoYwPB9/j/tYJV8lZdr6t0yGBfxgzD3oW/zF7a+ZtASaMAu7lkgoqPK2pVIGa+Y9ZCsA0Xq756XpLCw+d3pHKHvIkgWLCo9FoeIv8f/bu5u/ztzRE+Nvl+o5add6MxnjsXz3s7BnW2FX6JNjyp0Z+OXjupQc2gcfFvpd/dA2lCNuuaCHkRgyPwIZtWPmNqMRXPp37mlPwV43qDJRVPQkvh0xPxwS35BbzUxWdT+ZLZv
-!
-ip radius source-interface Management 1
-!
-ip routing vrf MGMT
-!
-ip route vrf MGMT 0.0.0.0/0 192.168.0.1
-!
-management api http-commands
- no shutdown
- vrf MGMT
- no shutdown
-!
diff --git a/topologies/training-level-path-finder/configlets/Edge10-BASE b/topologies/training-level-path-finder/configlets/Edge10-BASE
deleted file mode 100644
index 4825e18aa..000000000
--- a/topologies/training-level-path-finder/configlets/Edge10-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname Edge10
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.10/24
-!
-ip routing
-!
\ No newline at end of file
diff --git a/topologies/training-level-path-finder/configlets/Edge11-BASE b/topologies/training-level-path-finder/configlets/Edge11-BASE
deleted file mode 100644
index b0c65484a..000000000
--- a/topologies/training-level-path-finder/configlets/Edge11-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname Edge11
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.11/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/Edge12-BASE b/topologies/training-level-path-finder/configlets/Edge12-BASE
deleted file mode 100644
index abd40607d..000000000
--- a/topologies/training-level-path-finder/configlets/Edge12-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname Edge12
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.12/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/Edge13-BASE b/topologies/training-level-path-finder/configlets/Edge13-BASE
deleted file mode 100644
index 669589047..000000000
--- a/topologies/training-level-path-finder/configlets/Edge13-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname Edge13
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.13/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/Edge14-BASE b/topologies/training-level-path-finder/configlets/Edge14-BASE
deleted file mode 100644
index d35e0baba..000000000
--- a/topologies/training-level-path-finder/configlets/Edge14-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname Edge14
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.14/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/Edge20-BASE b/topologies/training-level-path-finder/configlets/Edge20-BASE
deleted file mode 100644
index ee2f17999..000000000
--- a/topologies/training-level-path-finder/configlets/Edge20-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname Edge20
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.20/24
-!
-ip routing
-!
\ No newline at end of file
diff --git a/topologies/training-level-path-finder/configlets/Edge21-BASE b/topologies/training-level-path-finder/configlets/Edge21-BASE
deleted file mode 100644
index d4b33aa7b..000000000
--- a/topologies/training-level-path-finder/configlets/Edge21-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname Edge21
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.21/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/Edge22-BASE b/topologies/training-level-path-finder/configlets/Edge22-BASE
deleted file mode 100644
index 75ec1d06e..000000000
--- a/topologies/training-level-path-finder/configlets/Edge22-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname Edge22
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.22/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/Edge23-BASE b/topologies/training-level-path-finder/configlets/Edge23-BASE
deleted file mode 100644
index ff025fa03..000000000
--- a/topologies/training-level-path-finder/configlets/Edge23-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname Edge23
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.23/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/Edge24-BASE b/topologies/training-level-path-finder/configlets/Edge24-BASE
deleted file mode 100644
index b1b385b04..000000000
--- a/topologies/training-level-path-finder/configlets/Edge24-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname Edge24
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.24/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/H11-BASE b/topologies/training-level-path-finder/configlets/H11-BASE
deleted file mode 100644
index c54f9dfee..000000000
--- a/topologies/training-level-path-finder/configlets/H11-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname H11
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.41/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/H12-BASE b/topologies/training-level-path-finder/configlets/H12-BASE
deleted file mode 100644
index 543a4d257..000000000
--- a/topologies/training-level-path-finder/configlets/H12-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname H12
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.42/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/H13-BASE b/topologies/training-level-path-finder/configlets/H13-BASE
deleted file mode 100644
index bd13017d0..000000000
--- a/topologies/training-level-path-finder/configlets/H13-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname H13
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.43/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/H14-BASE b/topologies/training-level-path-finder/configlets/H14-BASE
deleted file mode 100644
index a9c8eb0b4..000000000
--- a/topologies/training-level-path-finder/configlets/H14-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname H14
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.44/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/H21-BASE b/topologies/training-level-path-finder/configlets/H21-BASE
deleted file mode 100644
index 5b495ffda..000000000
--- a/topologies/training-level-path-finder/configlets/H21-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname H21
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.45/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/H22-BASE b/topologies/training-level-path-finder/configlets/H22-BASE
deleted file mode 100644
index 389ef11f6..000000000
--- a/topologies/training-level-path-finder/configlets/H22-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname H22
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.46/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/H23-BASE b/topologies/training-level-path-finder/configlets/H23-BASE
deleted file mode 100644
index 1142e8c4d..000000000
--- a/topologies/training-level-path-finder/configlets/H23-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname H23
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.47/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/H24-BASE b/topologies/training-level-path-finder/configlets/H24-BASE
deleted file mode 100644
index 4871c98aa..000000000
--- a/topologies/training-level-path-finder/configlets/H24-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname H24
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.48/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/ISP-1-BASE b/topologies/training-level-path-finder/configlets/ISP-1-BASE
deleted file mode 100644
index 837ac4836..000000000
--- a/topologies/training-level-path-finder/configlets/ISP-1-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname ISP-1
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.16/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/ISP-2-BASE b/topologies/training-level-path-finder/configlets/ISP-2-BASE
deleted file mode 100644
index a5604efc3..000000000
--- a/topologies/training-level-path-finder/configlets/ISP-2-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname ISP-2
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.26/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/ISP-3-BASE b/topologies/training-level-path-finder/configlets/ISP-3-BASE
deleted file mode 100644
index 62137f7f9..000000000
--- a/topologies/training-level-path-finder/configlets/ISP-3-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname ISP-3
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.75/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/Leaf11-BASE b/topologies/training-level-path-finder/configlets/Leaf11-BASE
deleted file mode 100644
index 9c41b64c3..000000000
--- a/topologies/training-level-path-finder/configlets/Leaf11-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname Leaf11
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.31/24
-!
-ip routing
-!
\ No newline at end of file
diff --git a/topologies/training-level-path-finder/configlets/Leaf12-BASE b/topologies/training-level-path-finder/configlets/Leaf12-BASE
deleted file mode 100644
index eca323424..000000000
--- a/topologies/training-level-path-finder/configlets/Leaf12-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname Leaf12
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.32/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/Leaf21-BASE b/topologies/training-level-path-finder/configlets/Leaf21-BASE
deleted file mode 100644
index 96e218284..000000000
--- a/topologies/training-level-path-finder/configlets/Leaf21-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname Leaf21
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.33/24
-!
-ip routing
-!
\ No newline at end of file
diff --git a/topologies/training-level-path-finder/configlets/Leaf22-BASE b/topologies/training-level-path-finder/configlets/Leaf22-BASE
deleted file mode 100644
index 825f7995c..000000000
--- a/topologies/training-level-path-finder/configlets/Leaf22-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname Leaf22
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.34/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/P1-BASE b/topologies/training-level-path-finder/configlets/P1-BASE
deleted file mode 100644
index 721759016..000000000
--- a/topologies/training-level-path-finder/configlets/P1-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname P1
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.94/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/P10-BASE b/topologies/training-level-path-finder/configlets/P10-BASE
deleted file mode 100644
index 8ecbdf9d8..000000000
--- a/topologies/training-level-path-finder/configlets/P10-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname P10
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.51/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/P11-BASE b/topologies/training-level-path-finder/configlets/P11-BASE
deleted file mode 100644
index dbc9d4349..000000000
--- a/topologies/training-level-path-finder/configlets/P11-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname P11
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.52/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/P2-BASE b/topologies/training-level-path-finder/configlets/P2-BASE
deleted file mode 100644
index c7fec99d1..000000000
--- a/topologies/training-level-path-finder/configlets/P2-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname P2
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.96/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/P20-BASE b/topologies/training-level-path-finder/configlets/P20-BASE
deleted file mode 100644
index b4526d9f0..000000000
--- a/topologies/training-level-path-finder/configlets/P20-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname P20
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.53/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/P21-BASE b/topologies/training-level-path-finder/configlets/P21-BASE
deleted file mode 100644
index a5c93155d..000000000
--- a/topologies/training-level-path-finder/configlets/P21-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname P21
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.54/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/P3-BASE b/topologies/training-level-path-finder/configlets/P3-BASE
deleted file mode 100644
index e4b454772..000000000
--- a/topologies/training-level-path-finder/configlets/P3-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname P3
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.95/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/P4-BASE b/topologies/training-level-path-finder/configlets/P4-BASE
deleted file mode 100644
index 005344cca..000000000
--- a/topologies/training-level-path-finder/configlets/P4-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname P4
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.97/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/P5-BASE b/topologies/training-level-path-finder/configlets/P5-BASE
deleted file mode 100644
index 58ca1fb99..000000000
--- a/topologies/training-level-path-finder/configlets/P5-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname P5
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.91/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/P6-BASE b/topologies/training-level-path-finder/configlets/P6-BASE
deleted file mode 100644
index f964fbcac..000000000
--- a/topologies/training-level-path-finder/configlets/P6-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname P6
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.92/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/PE1-BASE b/topologies/training-level-path-finder/configlets/PE1-BASE
deleted file mode 100644
index 603926f62..000000000
--- a/topologies/training-level-path-finder/configlets/PE1-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname PE1
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.81/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/PE2-BASE b/topologies/training-level-path-finder/configlets/PE2-BASE
deleted file mode 100644
index 3b494657f..000000000
--- a/topologies/training-level-path-finder/configlets/PE2-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname PE2
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.82/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/PE3-BASE b/topologies/training-level-path-finder/configlets/PE3-BASE
deleted file mode 100644
index be6153e1a..000000000
--- a/topologies/training-level-path-finder/configlets/PE3-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname PE3
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.83/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/PE4-BASE b/topologies/training-level-path-finder/configlets/PE4-BASE
deleted file mode 100644
index 123d443c6..000000000
--- a/topologies/training-level-path-finder/configlets/PE4-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname PE4
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.84/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/R1-PE1-BASE b/topologies/training-level-path-finder/configlets/R1-PE1-BASE
deleted file mode 100644
index c201b037f..000000000
--- a/topologies/training-level-path-finder/configlets/R1-PE1-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname R1-PE1
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.15/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/R2-PE2-BASE b/topologies/training-level-path-finder/configlets/R2-PE2-BASE
deleted file mode 100644
index f2f959091..000000000
--- a/topologies/training-level-path-finder/configlets/R2-PE2-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-
-hostname R2-PE2
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.25/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/RR-BASE b/topologies/training-level-path-finder/configlets/RR-BASE
deleted file mode 100644
index d0a21e505..000000000
--- a/topologies/training-level-path-finder/configlets/RR-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname RR
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.93/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/RR1-BASE b/topologies/training-level-path-finder/configlets/RR1-BASE
deleted file mode 100644
index 090211415..000000000
--- a/topologies/training-level-path-finder/configlets/RR1-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname RR1
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.71/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/RR2-BASE b/topologies/training-level-path-finder/configlets/RR2-BASE
deleted file mode 100644
index 4847ab0fa..000000000
--- a/topologies/training-level-path-finder/configlets/RR2-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname RR2
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.72/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/RR3-BASE b/topologies/training-level-path-finder/configlets/RR3-BASE
deleted file mode 100644
index 40a426430..000000000
--- a/topologies/training-level-path-finder/configlets/RR3-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname RR3
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.76/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/RR4-BASE b/topologies/training-level-path-finder/configlets/RR4-BASE
deleted file mode 100644
index d230c25b3..000000000
--- a/topologies/training-level-path-finder/configlets/RR4-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname RR4
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.77/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/RR5-BASE b/topologies/training-level-path-finder/configlets/RR5-BASE
deleted file mode 100644
index 22989394a..000000000
--- a/topologies/training-level-path-finder/configlets/RR5-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname RR5
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.73/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/configlets/RR6-BASE b/topologies/training-level-path-finder/configlets/RR6-BASE
deleted file mode 100644
index 10740e21d..000000000
--- a/topologies/training-level-path-finder/configlets/RR6-BASE
+++ /dev/null
@@ -1,10 +0,0 @@
-service routing protocols model multi-agent
-!
-hostname RR6
-!
-interface Management 1
- vrf MGMT
- ip address 192.168.0.74/24
-!
-ip routing
-!
diff --git a/topologies/training-level-path-finder/files/.ansible.cfg b/topologies/training-level-path-finder/files/.ansible.cfg
deleted file mode 100644
index 14c806515..000000000
--- a/topologies/training-level-path-finder/files/.ansible.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[defaults]
-host_key_checking = False
diff --git a/topologies/training-level-path-finder/files/.screenrc b/topologies/training-level-path-finder/files/.screenrc
deleted file mode 100644
index dfd221134..000000000
--- a/topologies/training-level-path-finder/files/.screenrc
+++ /dev/null
@@ -1,58 +0,0 @@
-# Turn off the startup message.
-startup_message off
-# Set the caption to the active windows.
-caption always "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
-
-term screen-256color
-
-# New screens for various processes.
-# Example: screen -t
-# screen -t 7050SX-128 0 ssh aristaadmin@192.100.37.128
-screen -t RR1 1 ssh 192.168.0.71
-screen -t RR2 2 ssh 192.168.0.72
-screen -t P10 3 ssh 192.168.0.51
-screen -t P11 4 ssh 192.168.0.52
-screen -t PE1 5 ssh 192.168.0.94
-screen -t ISP-1 6 ssh 192.168.0.16
-screen -t Edge10 7 ssh 192.168.0.10
-screen -t Edge11 8 ssh 192.168.0.11
-screen -t Edge12 9 ssh 192.168.0.12
-screen -t Edge13 10 ssh 192.168.0.13
-screen -t Edge14 11 ssh 192.168.0.14
-screen -t Leaf11 12 ssh 192.168.0.31
-screen -t Leaf12 13 ssh 192.168.0.32
-screen -t RR3 14 ssh 192.168.0.76
-screen -t RR4 15 ssh 192.168.0.77
-screen -t P20 16 ssh 192.168.0.53
-screen -t P21 17 ssh 192.168.0.54
-screen -t PE2 18 ssh 192.168.0.25
-screen -t ISP-2 19 ssh 192.168.0.26
-screen -t Edge20 20 ssh 192.168.0.20
-screen -t Edge21 21 ssh 192.168.0.21
-screen -t Edge22 22 ssh 192.168.0.22
-screen -t Edge23 23 ssh 192.168.0.23
-screen -t Edge24 24 ssh 192.168.0.24
-screen -t Leaf21 25 ssh 192.168.0.33
-screen -t Leaf22 26 ssh 192.168.0.34
-screen -t ISP-3 27 ssh 192.168.0.75
-screen -t RR5 28 ssh 192.168.0.73
-screen -t RR6 29 ssh 192.168.0.76
-screen -t RR 30 ssh 192.168.0.93
-screen -t P1 31 ssh 192.168.0.91
-screen -t P2 32 ssh 192.168.0.92
-screen -t PE11 33 ssh 192.168.0.94
-screen -t PE12 34 ssh 192.168.0.96
-screen -t PE21 35 ssh 192.168.0.95
-screen -t PE22 36 ssh 192.168.0.97
-screen -t R1-P11 37 ssh 192.168.0.81
-screen -t R1-P12 38 ssh 192.168.0.82
-screen -t R2-P31 39 ssh 192.168.0.83
-screen -t R2-P32 40 ssh 192.168.0.84
-screen -t H11 41 ssh 192.168.0.41
-screen -t H12 42 ssh 192.168.0.42
-screen -t H13 43 ssh 192.168.0.43
-screen -t H14 44 ssh 192.168.0.44
-screen -t H21 45 ssh 192.168.0.45
-screen -t H22 46 ssh 192.168.0.46
-screen -t H23 47 ssh 192.168.0.47
-screen -t H24 48 ssh 192.168.0.48
diff --git a/topologies/training-level-path-finder/files/MenuOptions.yaml b/topologies/training-level-path-finder/files/MenuOptions.yaml
deleted file mode 100644
index 8c0bf20bb..000000000
--- a/topologies/training-level-path-finder/files/MenuOptions.yaml
+++ /dev/null
@@ -1,255 +0,0 @@
----
-options:
- reset:
- - command: "/usr/local/bin/ConfigureTopology.py && bash /home/arista/Broadcaster/pushHostDefaultConfig.sh"
- description: "Reset All Devices to Base ATD (reset)"
- mlag:
- - command: "/usr/local/bin/ConfigureTopology.py -t mlag"
- description: "MLAG Lab (mlag)"
- bgp:
- - command: "/usr/local/bin/ConfigureTopology.py -t bgp"
- description: "BGP Lab (bgp)"
- vxlan:
- - command: "/usr/local/bin/ConfigureTopology.py -t vxlan"
- description: "VXLAN Lab (vxlan) excludes leaf3 instead of leaf4"
- l2evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l2evpn"
- description: "EVPN Type 2 Lab (l2evpn) excludes leaf3 instead of leaf4"
- l3evpn:
- - command: "/usr/local/bin/ConfigureTopology.py -t l3evpn"
- description: "EVPN Type 5 Lab (l3evpn) excludes leaf3 instead of leaf4"
- cvp:
- - command: "/usr/local/bin/ConfigureTopology.py -t cvp"
- description: "CVP lab (cvp)"
- media:
- - command: "bash /home/arista/Broadcaster/pushHostMediaConfig.sh && login.py"
- description: "Broadcast Engineer Training (media)"
-labconfiglets:
- mlag:
- spine1:
- - "Spine1-MLAG-Lab"
- - "VLANs"
- spine2:
- - "Spine2-MLAG-Lab"
- - "VLANs"
- leaf1:
- - "Leaf1-MLAG-Lab"
- - "VLANs"
- leaf2:
- - "Leaf2-MLAG-Lab"
- - "VLANs"
- leaf3:
- - "Leaf3-MLAG-Lab"
- - "VLANs"
- leaf4:
- - "VLANs"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- bgp:
- spine1:
- - "Spine1-BGP-Lab"
- spine2:
- - "Spine2-BGP-Lab"
- leaf1:
- - "Leaf1-BGP-Lab"
- leaf2:
- - "Leaf2-BGP-Lab"
- leaf3:
- - "Leaf3-BGP-Lab"
- leaf4:
- - "Leaf4-BGP-Lab"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- vxlan:
- spine1:
- - "Spine1-BGP-Lab"
- spine2:
- - "Spine2-BGP-Lab"
- leaf1:
- - "Leaf1-VXLAN-Lab"
- - "VLANs"
- leaf2:
- - "Leaf2-VXLAN-Lab"
- - "VLANs"
- leaf3:
- - "Leaf3-VXLAN-Lab"
- - "VLANs"
- leaf4:
- - "Leaf4-VXLAN-Lab"
- - "VLANs"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- l2evpn:
- spine1:
- - "Spine1-L2EVPN-Lab"
- spine2:
- - "Spine2-L2EVPN-Lab"
- leaf1:
- - "Leaf1-L2EVPN-Lab"
- - "VLANs"
- leaf2:
- - "Leaf2-L2EVPN-Lab"
- - "VLANs"
- leaf3:
- - "VLANs"
- leaf4:
- - "Leaf4-L2EVPN-Lab"
- - "VLANs"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- l3evpn:
- spine1:
- - "Spine1-L3EVPN-Lab"
- spine2:
- - "Spine2-L3EVPN-Lab"
- leaf1:
- - "Leaf1-L3EVPN-Lab"
- leaf2:
- - "Leaf2-L3EVPN-Lab"
- leaf3:
- - "VLANs"
- leaf4:
- - "Leaf4-L3EVPN-Lab"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- cvp:
- spine1:
- - "Spine1-BGP-Lab"
- spine2:
- - "Spine2-BGP-Lab"
- leaf1:
- - "Leaf1-BGP-Lab"
- leaf2:
- - "Leaf2-BGP-Lab"
- leaf3:
- - "Leaf3-BGP-Lab"
- leaf4:
- - "Leaf4-BGP-Lab-Full"
- cvx01:
- - "cvx01-Controller"
- host1:
- - "Host1-ATD"
- host2:
- - "Host2-ATD"
- media-reset:
- spine1:
- - "media-spine1-IP-Intro-start"
- spine2:
- - "media-spine2-IP-Intro-start"
- leaf1:
- - "media-leaf1-IP-Intro-start"
- leaf2:
- - "media-leaf2-IP-Intro-start"
- leaf3:
- - "media-leaf3-IP-Intro-start"
- leaf4:
- - "media-leaf4-IP-Intro-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-intro:
- spine1:
- - "media-spine1-IP-Intro-start"
- spine2:
- - "media-spine2-IP-Intro-start"
- leaf1:
- - "media-leaf1-IP-Intro-start"
- leaf2:
- - "media-leaf2-IP-Intro-start"
- leaf3:
- - "media-leaf3-IP-Intro-start"
- leaf4:
- - "media-leaf4-IP-Intro-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-vlan:
- spine1:
- - "media-spine1-VLAN-STP-start"
- spine2:
- - "media-spine2-VLAN-STP-start"
- leaf1:
- - "media-leaf1-VLAN-STP-start"
- leaf2:
- - "media-leaf2-VLAN-STP-start"
- leaf3:
- - "media-leaf3-VLAN-STP-start"
- leaf4:
- - "media-leaf4-VLAN-STP-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-ospf:
- spine1:
- - "media-spine1-OSPF-start"
- spine2:
- - "media-spine2-OSPF-start"
- leaf1:
- - "media-leaf1-OSPF-start"
- leaf2:
- - "media-leaf2-OSPF-start"
- leaf3:
- - "media-leaf3-OSPF-start"
- leaf4:
- - "media-leaf4-OSPF-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-bgp:
- spine1:
- - "media-spine1-BGP-start"
- spine2:
- - "media-spine2-BGP-start"
- leaf1:
- - "media-leaf1-BGP-start"
- leaf2:
- - "media-leaf2-BGP-start"
- leaf3:
- - "media-leaf3-BGP-start"
- leaf4:
- - "media-leaf4-BGP-start"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
- media-mcast:
- spine1:
- - "media-spine1-Multicast-lab"
- spine2:
- - "media-spine2-Multicast-lab"
- leaf1:
- - "media-leaf1-Multicast-lab"
- leaf2:
- - "media-leaf2-Multicast-lab"
- leaf3:
- - "media-leaf3-Multicast-lab"
- leaf4:
- - "media-leaf4-Multicast-lab"
- host1:
- - "Host1-Media"
- host2:
- - "Host2-Media"
diff --git a/topologies/training-level-path-finder/files/apps/coder/coder.yaml b/topologies/training-level-path-finder/files/apps/coder/coder.yaml
deleted file mode 100644
index 80cc852d1..000000000
--- a/topologies/training-level-path-finder/files/apps/coder/coder.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bind-addr: 127.0.0.1:8080
-auth: password
-password: {ARISTA_REPLACE}
-cert: false
\ No newline at end of file
diff --git a/topologies/training-level-path-finder/files/apps/coder/labfiles/.placeholder b/topologies/training-level-path-finder/files/apps/coder/labfiles/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/topologies/training-level-path-finder/files/apps/ssh/web.json b/topologies/training-level-path-finder/files/apps/ssh/web.json
deleted file mode 100644
index 13fac47dd..000000000
--- a/topologies/training-level-path-finder/files/apps/ssh/web.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "listen": {
- "ip": "0.0.0.0",
- "port": 2222
- },
- "user": {
- "name": null,
- "password": null,
- "privatekey": null
- },
- "ssh": {
- "host": null,
- "port": 22,
- "localAddress": null,
- "localPort": null,
- "term": "xterm-color",
- "readyTimeout": 20000,
- "keepaliveInterval": 120000,
- "keepaliveCountMax": 10,
- "allowedSubnets": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12" ]
- },
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound"
- },
- "header": {
- "text": null,
- "background": "green"
- },
- "session": {
- "name": "WebSSH2",
- "secret": "mysecret"
- },
- "options": {
- "challengeButton": true,
- "allowreauth": true
- },
- "algorithms": {
- "kex": [
- "ecdh-sha2-nistp256",
- "ecdh-sha2-nistp384",
- "ecdh-sha2-nistp521",
- "diffie-hellman-group-exchange-sha256",
- "diffie-hellman-group14-sha1"
- ],
- "cipher": [
- "aes128-ctr",
- "aes192-ctr",
- "aes256-ctr",
- "aes128-gcm",
- "aes128-gcm@openssh.com",
- "aes256-gcm",
- "aes256-gcm@openssh.com",
- "aes256-cbc"
- ],
- "hmac": [
- "hmac-sha2-256",
- "hmac-sha2-512",
- "hmac-sha1"
- ],
- "compress": [
- "none",
- "zlib@openssh.com",
- "zlib"
- ]
- },
- "serverlog": {
- "client": false,
- "server": false
- },
- "accesslog": false,
- "verify": false,
- "safeShutdownDuration": 300
- }
\ No newline at end of file
diff --git a/topologies/training-level-path-finder/files/apps/uilanding/change-latency.py b/topologies/training-level-path-finder/files/apps/uilanding/change-latency.py
deleted file mode 100644
index abc59b3f3..000000000
--- a/topologies/training-level-path-finder/files/apps/uilanding/change-latency.py
+++ /dev/null
@@ -1,68 +0,0 @@
-import subprocess
-import sys
-
-# Placeholder for the list of network interfaces
-interfaces = ["RP11x5", "RP11x6", "RP11x7", "RP11x8", "RP11x9"] # Add your interfaces here
-
-def check_tc_exists(interface):
- result = subprocess.run(f"tc qdisc show dev {interface}", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
- return "htb" in result.stdout
-
-def enable_tc(interface, delay=3000):
- if check_tc_exists(interface):
- print(f"Traffic control already enabled on {interface}")
- return
-
- commands = [
- f"sudo tc qdisc add dev {interface} root handle 1: htb default 12",
- f"sudo tc class add dev {interface} parent 1:1 classid 1:12 htb rate 1000mbit",
- f"sudo tc qdisc add dev {interface} parent 1:12 handle 10: netem delay {delay}ms"
- ]
- for cmd in commands:
- subprocess.run(cmd, shell=True, check=True)
- print(f"Enabled traffic control on {interface} with delay {delay}ms")
-
-def disable_tc(interface):
- if not check_tc_exists(interface):
- print(f"No traffic control configuration found on {interface}")
- return
-
- cmd = f"sudo tc qdisc del dev {interface} root"
- subprocess.run(cmd, shell=True, check=True)
- print(f"Disabled traffic control on {interface}")
-
-def show_tc(interface):
- result = subprocess.run(f"tc qdisc show dev {interface}", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
- print(f"Traffic control configuration for {interface}:\n{result.stdout}")
-
-if __name__ == "__main__":
- if len(sys.argv) < 2 or sys.argv[1] not in ["ENABLE", "DISABLE", "SHOW"]:
- print("Usage: python script.py [ENABLE|DISABLE|SHOW] [-d DELAY] [-i INTERFACES]")
- sys.exit(1)
-
- action = sys.argv[1]
- delay = 3000 # Default delay value
-
- if "-d" in sys.argv:
- try:
- delay_index = sys.argv.index("-d") + 1
- delay = int(sys.argv[delay_index])
- except (ValueError, IndexError):
- print("Invalid delay value. Please provide an integer value for delay.")
- sys.exit(1)
-
- if "-i" in sys.argv:
- try:
- interfaces_index = sys.argv.index("-i") + 1
- interfaces = sys.argv[interfaces_index].split(',')
- except IndexError:
- print("Invalid interfaces value. Please provide a comma-separated list of interfaces.")
- sys.exit(1)
-
- for interface in interfaces:
- if action == "ENABLE":
- enable_tc(interface, delay)
- elif action == "DISABLE":
- disable_tc(interface)
- elif action == "SHOW":
- show_tc(interface)
\ No newline at end of file
diff --git a/topologies/training-level-path-finder/files/apps/uilanding/modules.yaml b/topologies/training-level-path-finder/files/apps/uilanding/modules.yaml
deleted file mode 100644
index fb504a967..000000000
--- a/topologies/training-level-path-finder/files/apps/uilanding/modules.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-topology:
- image: "atd-topo.png"
- nodes:
- Spine1:
- coords: "208,22,392,106"
- ip: "192.168.0.11"
- Spine2:
- coords: "505,21,687,106"
- ip: "192.168.0.12"
- Leaf1:
- coords: "24,317,207,402"
- ip: "192.168.0.21"
- Leaf2:
- coords: "248,317,431,403"
- ip: "192.168.0.22"
- Leaf3:
- coords: "472,317,654,401"
- ip: "192.168.0.23"
- Leaf4:
- coords: "697,317,879,401"
- ip: "192.168.0.24"
- Host1:
- coords: "139,472,323,557"
- ip: "192.168.0.51"
- Host2:
- coords: "588,473,772,557"
- ip: "192.168.0.52"
diff --git a/topologies/training-level-path-finder/files/apps/webui/.vncpass_clear b/topologies/training-level-path-finder/files/apps/webui/.vncpass_clear
deleted file mode 100644
index cd09dd7a5..000000000
--- a/topologies/training-level-path-finder/files/apps/webui/.vncpass_clear
+++ /dev/null
@@ -1 +0,0 @@
-@rista1
\ No newline at end of file
diff --git a/topologies/training-level-path-finder/files/cvp/cvp_info.yaml b/topologies/training-level-path-finder/files/cvp/cvp_info.yaml
deleted file mode 100644
index 98ec11a69..000000000
--- a/topologies/training-level-path-finder/files/cvp/cvp_info.yaml
+++ /dev/null
@@ -1,164 +0,0 @@
-cvp_info:
- containers:
- Tenant:
- nodes:
- Region1:
- parent: Tenant
- nodes:
- - P10
- - P11
- - R1-PE1
- - ISP-1
- - Edge10
- - Edge11
- - Edge12
- - Edge13
- - Edge14
- - Leaf11
- - Leaf12
- - H11
- - H12
- - H13
- - H14
- - RR1
- - RR2
- Region2:
- parent: Tenant
- nodes:
- - Edge20
- - Edge21
- - Edge22
- - Edge23
- - Edge24
- - H21
- - H22
- - H23
- - H24
- - ISP-2
- - Leaf21
- - Leaf22
- - R2-PE2
- - P20
- - P21
- - RR3
- - RR4
- WAN:
- parent: Tenant
- nodes:
- - ISP-3
- - PE1
- - PE2
- - PE3
- - PE4
- - P1
- - P2
- - P3
- - P4
- - P5
- - P6
- - RR
- - RR5
- - RR6
- snapshots:
- configlets:
- containers:
- Tenant:
- - ATD-INFRA
- netelements:
- P10:
- - P10-BASE
- P11:
- - P11-BASE
- R1-PE1:
- - R1-PE1-BASE
- R2-PE2:
- - R2-PE2-BASE
- ISP-1:
- - ISP-1-BASE
- Edge10:
- - Edge10-BASE
- Edge11:
- - Edge11-BASE
- Edge12:
- - Edge12-BASE
- Edge13:
- - Edge13-BASE
- Edge14:
- - Edge14-BASE
- Leaf11:
- - Leaf11-BASE
- Leaf12:
- - Leaf12-BASE
- H11:
- - H11-BASE
- H12:
- - H12-BASE
- H13:
- - H13-BASE
- H14:
- - H14-BASE
- RR1:
- - RR1-BASE
- RR2:
- - RR2-BASE
- Edge20:
- - Edge20-BASE
- Edge21:
- - Edge21-BASE
- Edge22:
- - Edge22-BASE
- Edge23:
- - Edge23-BASE
- Edge24:
- - Edge24-BASE
- H21:
- - H21-BASE
- H22:
- - H22-BASE
- H23:
- - H23-BASE
- H24:
- - H24-BASE
- ISP-2:
- - ISP-2-BASE
- Leaf21:
- - Leaf21-BASE
- Leaf22:
- - Leaf22-BASE
- P5:
- - P5-BASE
- P6:
- - P6-BASE
- P20:
- - P20-BASE
- P21:
- - P21-BASE
- RR3:
- - RR3-BASE
- RR4:
- - RR4-BASE
- ISP-3:
- - ISP-3-BASE
- PE1:
- - PE1-BASE
- PE2:
- - PE2-BASE
- PE3:
- - PE3-BASE
- PE4:
- - PE4-BASE
- P1:
- - P1-BASE
- P2:
- - P2-BASE
- P3:
- - P3-BASE
- P4:
- - P4-BASE
- RR:
- - RR-BASE
- RR5:
- - RR5-BASE
- RR6:
- - RR6-BASE
-
diff --git a/topologies/training-level-path-finder/files/hosts b/topologies/training-level-path-finder/files/hosts
deleted file mode 100644
index d36fcb2cc..000000000
--- a/topologies/training-level-path-finder/files/hosts
+++ /dev/null
@@ -1,49 +0,0 @@
-127.0.0.1 localhost
-192.168.0.71 RR1
-192.168.0.72 RR2
-192.168.0.51 P10
-192.168.0.52 P11
-192.168.0.15 R1-PE1
-192.168.0.16 ISP-1
-192.168.0.10 Edge10
-192.168.0.11 Edge11
-192.168.0.12 Edge12
-192.168.0.13 Edge13
-192.168.0.14 Edge14
-192.168.0.31 Leaf11
-192.168.0.32 Leaf12
-192.168.0.76 RR3
-192.168.0.77 RR4
-192.168.0.53 P20
-192.168.0.54 P21
-192.168.0.25 R2-PE2
-192.168.0.26 ISP-2
-192.168.0.20 Edge20
-192.168.0.21 Edge21
-192.168.0.22 Edge22
-192.168.0.23 Edge23
-192.168.0.24 Edge24
-192.168.0.33 Leaf21
-192.168.0.34 Leaf22
-192.168.0.75 ISP-3
-192.168.0.73 RR5
-192.168.0.74 RR6
-192.168.0.93 RR
-192.168.0.91 P5
-192.168.0.92 P6
-192.168.0.94 P1
-192.168.0.96 P2
-192.168.0.95 P3
-192.168.0.97 P4
-192.168.0.81 PE1
-192.168.0.82 PE2
-192.168.0.83 PE3
-192.168.0.84 PE4
-192.168.0.41 H11
-192.168.0.42 H12
-192.168.0.43 H13
-192.168.0.44 H14
-192.168.0.45 H21
-192.168.0.46 H22
-192.168.0.47 H23
-192.168.0.48 H24
diff --git a/topologies/training-level-path-finder/files/menus/default.yaml b/topologies/training-level-path-finder/files/menus/default.yaml
deleted file mode 100644
index 88e29c3e2..000000000
--- a/topologies/training-level-path-finder/files/menus/default.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-default_menu: ssh
\ No newline at end of file
diff --git a/topologies/training-level-path-finder/files/menus/training-l2.yaml b/topologies/training-level-path-finder/files/menus/training-l2.yaml
deleted file mode 100644
index c77ea9cc3..000000000
--- a/topologies/training-level-path-finder/files/menus/training-l2.yaml
+++ /dev/null
@@ -1,102 +0,0 @@
----
- lab_list:
- reset:
- description: "Reset All Devices to Base Lab (reset)"
- labconfiglets:
- reset:
- P10:
- - P10-BASE
- P11:
- - P11-BASE
- R1-PE1:
- - R1-PE1-BASE
- ISP-1:
- - ISP-1-BASE
- Edge10:
- - Edge10-BASE
- Edge11:
- - Edge11-BASE
- Edge12:
- - Edge12-BASE
- Edge13:
- - Edge13-BASE
- Edge14:
- - Edge14-BASE
- Leaf11:
- - Leaf11-BASE
- Leaf12:
- - Leaf12-BASE
- H11:
- - H11-BASE
- H12:
- - H12-BASE
- H13:
- - H13-BASE
- H14:
- - H14-BASE
- RR1:
- - RR1-BASE
- RR2:
- - RR2-BASE
- Edge20:
- - Edge20-BASE
- Edge21:
- - Edge21-BASE
- Edge22:
- - Edge22-BASE
- Edge23:
- - Edge23-BASE
- Edge24:
- - Edge24-BASE
- H21:
- - H21-BASE
- H22:
- - H22-BASEtxt
- H23:
- - H23-BASE
- H24:
- - H24-BASE
- ISP-2:
- - ISP-2-BASE
- Leaf21:
- - Leaf21-BASE
- Leaf22:
- - Leaf22-BASE
- P5:
- - P5-BASE
- P6:
- - P6-BASE
- P20:
- - P20-BASE
- P21:
- - P21-BASE
- RR3:
- - RR3-BASE
- RR4:
- - RR4-BASE
- ISP-3:
- - ISP-3-BASE
- PE1:
- - PE1-BASE
- PE2:
- - PE2-BASE
- PE3:
- - PE3-BASE
- PE4:
- - PE4-BASE
- P1:
- - P1-BASE
- P2:
- - PE2-BASE
- R2-PE2:
- - R2-PE2-BASE
- P3:
- - P3-BASE
- P4:
- - P4-BASE
- RR:
- - RR-BASE
- RR5:
- - RR5-BASE
- RR6:
- - RR6-BASE
diff --git a/topologies/training-level-path-finder/files/scripts/Authenticate-CVP b/topologies/training-level-path-finder/files/scripts/Authenticate-CVP
deleted file mode 100644
index 144bb13eb..000000000
--- a/topologies/training-level-path-finder/files/scripts/Authenticate-CVP
+++ /dev/null
@@ -1,32 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
diff --git a/topologies/training-level-path-finder/files/scripts/Authenticate-CVP2 b/topologies/training-level-path-finder/files/scripts/Authenticate-CVP2
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-path-finder/files/scripts/Authenticate-CVP2
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-path-finder/files/scripts/Authenticate-CVP3 b/topologies/training-level-path-finder/files/scripts/Authenticate-CVP3
deleted file mode 100644
index 2445806ea..000000000
--- a/topologies/training-level-path-finder/files/scripts/Authenticate-CVP3
+++ /dev/null
@@ -1,95 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_32_438214998013','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: %s"%entry['oldConfig']
- print "ConfigletNewConfig: %s"%entry['newConfig']
- print "\n"
-
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/updateConfiglet.do"
-changeData = json.dumps({"config": "! some configuration here", "key": "configlet_32_438214998013", "name": "VLANs"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-path-finder/files/scripts/Configlet1 b/topologies/training-level-path-finder/files/scripts/Configlet1
deleted file mode 100644
index 3f6bf9190..000000000
--- a/topologies/training-level-path-finder/files/scripts/Configlet1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-print "User Permissions: %s\n "%output['permissionList']
-print "Cookie Jar: %s\n "%cookies
-
-#Create an HTTP GET request to the CVP server
-
-getConfigletURL = "/cvpservice/configlet/getConfiglets.do?"
-getConfigletParams = {'startIndex':'0','endIndex':'0','type':'Configlet'}
-response = requests.get(url+getConfigletURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfiglets = response.json()
-
-# Print Configlet details
-
-for configlet in outputConfiglets['data']:
- print "ConfigletName: %s"%configlet['name']
- print "ConfigletKey: %s"%configlet['key']
- print "\n"
-
diff --git a/topologies/training-level-path-finder/files/scripts/ConfigletChange b/topologies/training-level-path-finder/files/scripts/ConfigletChange
deleted file mode 100644
index 691ff5864..000000000
--- a/topologies/training-level-path-finder/files/scripts/ConfigletChange
+++ /dev/null
@@ -1,40 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postConfigletChangeURL = "/cvpservice/configlet/addNoteToConfiglet.do"
-changeData = json.dumps({"note": "Configlet Changed by API", "key": "configlet_516_7018635812307"})
-response = requests.post(url+postConfigletChangeURL, cookies=cookies, data=changeData,headers=headers,verify=False)
-assert response.ok
-outputConfigletChange = response.json()
-
-# Print Configlet details
-
-print "ConfigletChange: %s"%outputConfigletChange['data']
-print "\n"
-
diff --git a/topologies/training-level-path-finder/files/scripts/ConfigletDetail b/topologies/training-level-path-finder/files/scripts/ConfigletDetail
deleted file mode 100644
index eb2a85937..000000000
--- a/topologies/training-level-path-finder/files/scripts/ConfigletDetail
+++ /dev/null
@@ -1,43 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletDetailURL = "/cvpservice/configlet/getConfigletByName.do?"
-getConfigletParams = {'name':'VLANs'}
-response = requests.get(url+getConfigletDetailURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletDetail = response.json()
-
-# Print Configlet details
-
-print "ConfigletKey: %s"%outputConfigletDetail['key']
-print "ConfigletName: %s"%outputConfigletDetail['name']
-print "ConfigletConfig: %s"%outputConfigletDetail['config']
-print "ConfigletNote: %s"%outputConfigletDetail['note']
-print "\n"
-
-
-
diff --git a/topologies/training-level-path-finder/files/scripts/ConfigletHistory b/topologies/training-level-path-finder/files/scripts/ConfigletHistory
deleted file mode 100644
index 71f1ac693..000000000
--- a/topologies/training-level-path-finder/files/scripts/ConfigletHistory
+++ /dev/null
@@ -1,41 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Create an HTTP GET request to the CVP server
-
-getConfigletHistoryURL = "/cvpservice/configlet/getConfigletHistory.do?"
-getConfigletParams = {'configletId':'configlet_344_7351420097365','startIndex':'0','endIndex':'0'}
-response = requests.get(url+getConfigletHistoryURL,cookies=cookies, params=getConfigletParams,verify=False)
-assert response.ok
-outputConfigletHistory = response.json()
-
-# Print Configlet details
-
-for entry in outputConfigletHistory['configletHistory']:
- print "ConfigletKey: %s"%entry['key']
- print "ConfigletOldConfig: \n%s"%entry['oldConfig']
- print "ConfigletNewConfig: \n%s"%entry['newConfig']
- print "\n"
-
diff --git a/topologies/training-level-path-finder/files/scripts/TaskBase b/topologies/training-level-path-finder/files/scripts/TaskBase
deleted file mode 100644
index 6f8deccaf..000000000
--- a/topologies/training-level-path-finder/files/scripts/TaskBase
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[1],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-path-finder/files/scripts/TaskCVP1 b/topologies/training-level-path-finder/files/scripts/TaskCVP1
deleted file mode 100644
index 1ebd05764..000000000
--- a/topologies/training-level-path-finder/files/scripts/TaskCVP1
+++ /dev/null
@@ -1,48 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-# Print user details
-
-print "User Name:%s\n "%output['username']
-print "First Name: %s\n "%output['user']['firstName']
-print "Last Name: %s\n "%output['user']['lastName']
-
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print( "TaskNumber: %s Description: %s" %(entry['workOrderId'],entry['description']))
- taskList.append(str(entry['workOrderId']))
-#print "TaskList: %s"%taskList
-
-
diff --git a/topologies/training-level-path-finder/files/scripts/TaskExecute b/topologies/training-level-path-finder/files/scripts/TaskExecute
deleted file mode 100644
index 3db487284..000000000
--- a/topologies/training-level-path-finder/files/scripts/TaskExecute
+++ /dev/null
@@ -1,56 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0','queryparam':'Pending'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputPendingTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputPendingTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-headers = { 'Content-Type': 'application/json' }
-postTaskExecuteURL = "/cvpservice/task/executeTask.do"
-for taskNumber in taskList:
- executeData = json.dumps({'data': [taskNumber]})
- response = requests.post(url+postTaskExecuteURL, cookies=cookies,data=executeData,headers=headers,verify=False)
- assert response.ok
- outputExecuteTask = response.json()
- print (outputExecuteTask['data'])
- print "Task: "+str(taskNumber)+" Execute: "+str(outputExecuteTask['data'])
- print "\n"
-
diff --git a/topologies/training-level-path-finder/files/scripts/TaskLog b/topologies/training-level-path-finder/files/scripts/TaskLog
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-path-finder/files/scripts/TaskLog
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-path-finder/files/scripts/TaskLog1 b/topologies/training-level-path-finder/files/scripts/TaskLog1
deleted file mode 100644
index c835008b8..000000000
--- a/topologies/training-level-path-finder/files/scripts/TaskLog1
+++ /dev/null
@@ -1,59 +0,0 @@
-import requests
-import json
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-
-# Print Tasks Created by Current User
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- print "TaskNumber: %s"%entry['workOrderId']
- taskList.append(str(entry['workOrderId']))
-print "TaskList: %s"%taskList
-
-
-
-# Create an HTTP POST request to the CVP server
-
-headers = { 'Content-Type': 'application/json' }
-postTaskLogURL = "/cvpservice/workflow/addWorkOrderLog.do"
-taskLogData = json.dumps({"taskId": taskList[0],"message": "This is a test Change","source": "CVP REST API"})
-response = requests.post(url+postTaskLogURL, cookies=cookies, data=taskLogData,headers=headers,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print Configlet details
-
-print "TaskLogAmmend: %s"%outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-path-finder/files/scripts/TaskLogView b/topologies/training-level-path-finder/files/scripts/TaskLogView
deleted file mode 100644
index 7b34904dd..000000000
--- a/topologies/training-level-path-finder/files/scripts/TaskLogView
+++ /dev/null
@@ -1,51 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-getTaskLogURL = "/cvpservice/task/getLogsById.do?"
-#getTaskLogParams = {'startIndex':'0','endIndex':'0','id':'0'}
-getTaskLogParams = {'startIndex':'0','endIndex':'0','id':taskList[0]}
-response = requests.get(url+getTaskLogURL,cookies=cookies, params=getTaskLogParams,verify=False)
-assert response.ok
-outputTaskLog = response.json()
-
-# Print TaskLog details
-print "TaskLogOutput: %s" %outputTaskLog['data']
-print "\n"
-
diff --git a/topologies/training-level-path-finder/files/scripts/TaskNote b/topologies/training-level-path-finder/files/scripts/TaskNote
deleted file mode 100644
index 6cd1d6cfd..000000000
--- a/topologies/training-level-path-finder/files/scripts/TaskNote
+++ /dev/null
@@ -1,52 +0,0 @@
-import requests
-import json
-import pprint
-
-# Set Script Variables
-
-CVP_HOST = "192.168.0.5"
-CVP_USER = "arista"
-CVP_PASS = "arista"
-
-# Fix for requests certification issue
-
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# Create an HTTP session to the CVP server
-
-url = "https://%s"%CVP_HOST
-headers = { 'Content-Type': 'application/json' }
-loginURL = "/web/login/authenticate.do"
-authenticateData = json.dumps({'userId' : CVP_USER, 'password' : CVP_PASS})
-response = requests.post(url+loginURL,data=authenticateData,headers=headers,verify=False)
-assert response.ok
-cookies = response.cookies
-output = response.json()
-
-
-# Create an HTTP GET request to the CVP server
-
-getTasksURL = "/cvpservice/task/getTasks.do?"
-getTasksParams = {'startIndex':'0','endIndex':'0'}
-response = requests.get(url+getTasksURL,cookies=cookies, params=getTasksParams,verify=False)
-assert response.ok
-outputTasks = response.json()
-
-taskList = [ ]
-for entry in outputTasks['data']:
- if str(entry['createdBy']) == str(CVP_USER):
- taskList.append(str(entry['workOrderId']))
-
-headers = { 'Content-Type': 'application/json' }
-postTaskNoteURL = "/cvpservice/task/addNoteToTask.do"
-taskNoteData = json.dumps({"workOrderId": taskList[0],"note": "This is a test Change using the API"})
-response = requests.post(url+postTaskNoteURL, cookies=cookies, data=taskNoteData,headers=headers,verify=False)
-assert response.ok
-outputTaskNote = response.json()
-
-# Print Task details
-
-print "TaskNoteAmmend: %s"%outputTaskNote['data']
-print "\n"
-
diff --git a/topologies/training-level-path-finder/labguides/.gitignore b/topologies/training-level-path-finder/labguides/.gitignore
deleted file mode 100644
index ed86553f4..000000000
--- a/topologies/training-level-path-finder/labguides/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-build/
diff --git a/topologies/training-level-path-finder/labguides/Makefile b/topologies/training-level-path-finder/labguides/Makefile
deleted file mode 100644
index 874ed2529..000000000
--- a/topologies/training-level-path-finder/labguides/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = python -msphinx
-SPHINXPROJ = ATD
-SOURCEDIR = source
-BUILDDIR = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/topologies/training-level-path-finder/labguides/readme.md b/topologies/training-level-path-finder/labguides/readme.md
deleted file mode 100644
index 5a5369ecd..000000000
--- a/topologies/training-level-path-finder/labguides/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Lab Guides
-In this folder are rST (restructured text) formatted lab guides for the ATD event.
-
-## Building
-To build the documentation, you will need to install Sphinx and sphinx_bootstrap_theme with `pip`:
-
-`pip install sphinx sphinx_bootstrap_theme`
-
-## Contributing
-At some point, this section may expand, but for now please make sure to review existing files for formatting guidelines.
-
-Please see https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst for a cheat sheet.
\ No newline at end of file
diff --git a/topologies/training-level-path-finder/labguides/source/_static/arista_logo.png b/topologies/training-level-path-finder/labguides/source/_static/arista_logo.png
deleted file mode 100644
index 2376e72b9..000000000
Binary files a/topologies/training-level-path-finder/labguides/source/_static/arista_logo.png and /dev/null differ
diff --git a/topologies/training-level-path-finder/labguides/source/_static/arista_logo_160by26.png b/topologies/training-level-path-finder/labguides/source/_static/arista_logo_160by26.png
deleted file mode 100644
index d0d0cbeec..000000000
Binary files a/topologies/training-level-path-finder/labguides/source/_static/arista_logo_160by26.png and /dev/null differ
diff --git a/topologies/training-level-path-finder/labguides/source/_static/arista_logo_320by52.png b/topologies/training-level-path-finder/labguides/source/_static/arista_logo_320by52.png
deleted file mode 100644
index 43dfa7ed2..000000000
Binary files a/topologies/training-level-path-finder/labguides/source/_static/arista_logo_320by52.png and /dev/null differ
diff --git a/topologies/training-level-path-finder/labguides/source/_static/cloudvision-icon.png b/topologies/training-level-path-finder/labguides/source/_static/cloudvision-icon.png
deleted file mode 100644
index c309ed98e..000000000
Binary files a/topologies/training-level-path-finder/labguides/source/_static/cloudvision-icon.png and /dev/null differ
diff --git a/topologies/training-level-path-finder/labguides/source/_static/logo.jpg b/topologies/training-level-path-finder/labguides/source/_static/logo.jpg
deleted file mode 100644
index 6eda41f7e..000000000
Binary files a/topologies/training-level-path-finder/labguides/source/_static/logo.jpg and /dev/null differ
diff --git a/topologies/training-level-path-finder/labguides/source/_static/my-styles.css b/topologies/training-level-path-finder/labguides/source/_static/my-styles.css
deleted file mode 100644
index 1150528ee..000000000
--- a/topologies/training-level-path-finder/labguides/source/_static/my-styles.css
+++ /dev/null
@@ -1,41 +0,0 @@
-body {
- background-color: #FFFFFF;
- color: #002859
-}
-
-.navbar-inverse {
- background-image: -webkit-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -o-linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#002859));
- background-image: linear-gradient(#6d94bf, #446e9b 50%, #002859);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff002859', GradientType=0);
- -webkit-filter: none;
- filter: none;
- border: 1px solid #345578;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3)
-}
-
-.navbar-brand {
- background: url("arista_logo_320by52.png") center / contain no-repeat;
- display: inline-block;
- width: 1px;
- padding: 0 10px 0 60px;
- margin-right: 30px;
- margin-left: -30px;
-}
-
-.navbar-brand>img {
- display: inline-block;
- padding: 0 100px 0 0px;
- margin-right: 20px;
-}
-a.navbar-brand {
- display: inline-block;
- padding: 15px 0 0 120px;
-}
-
-footer {
- background-color: #002859;
- color: #FFFFFF;
-}
diff --git a/topologies/training-level-path-finder/labguides/source/conf.py b/topologies/training-level-path-finder/labguides/source/conf.py
deleted file mode 100644
index afccec09c..000000000
--- a/topologies/training-level-path-finder/labguides/source/conf.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# ATD documentation build configuration file, created by
-# sphinx-quickstart on Tue Apr 17 10:00:04 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-import sphinx_bootstrap_theme
-
-# Importing datetime module to auto update copyright year
-from datetime import date
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-# Updating copyright var to auto update with current year
-project = u'Arista ATD'
-copyright = u'{0}, Arista Networks'.format(date.today().year)
-author = u'Arista ATD atd-help@arista.com'
-
-# Show Source
-html_show_sourcelink = False
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = u'Version 3.0'
-# The full version, including alpha/beta/rc tags.
-release = u'1'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = []
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-html_theme = 'bootstrap'
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- # Navigation bar title. (Default: ``project`` value)
- 'navbar_title': "ATD",
-
- # Tab name for entire site. (Default: "Site")
- 'navbar_site_name': "Table of Contents",
-
- # A list of tuples containing pages or urls to link to.
- # Valid tuples should be in the following forms:
- # (name, page) # a link to a page
- # (name, "/aa/bb", 1) # a link to an arbitrary relative url
- # (name, "http://example.com", True) # arbitrary absolute url
- # Note the "1" or "True" value above as the third argument to indicate
- # an arbitrary url.
- 'navbar_links': [
- ("Arista", "http://www.arista.com", True),
- ],
-
- # Render the next and previous page links in navbar. (Default: true)
- 'navbar_sidebarrel': True,
-
- # Render the current pages TOC in the navbar. (Default: true)
- 'navbar_pagenav': False,
-
- # Tab name for the current pages TOC. (Default: "Page")
- 'navbar_pagenav_name': "Page",
-
- # Global TOC depth for "site" navbar tab. (Default: 1)
- # Switching to -1 shows all levels.
- 'globaltoc_depth': 2,
-
- # Include hidden TOCs in Site navbar?
- #
- # Note: If this is "false", you cannot have mixed ``:hidden:`` and
- # non-hidden ``toctree`` directives in the same page, or else the build
- # will break.
- #
- # Values: "true" (default) or "false"
- 'globaltoc_includehidden': "true",
-
- # HTML navbar class (Default: "navbar") to attach to