From 43a995e486a684c23eb13d0796cef343882187cf Mon Sep 17 00:00:00 2001 From: Jason King Date: Tue, 11 Apr 2023 17:33:12 -0700 Subject: [PATCH 001/104] Fix for top level == mdd:openconfig --- plugins/filter/data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/filter/data.py b/plugins/filter/data.py index 15a0257..df0ae02 100644 --- a/plugins/filter/data.py +++ b/plugins/filter/data.py @@ -17,7 +17,7 @@ list_key_map = { "openconfig-network-instance:network-instance": "openconfig-network-instance:name", "openconfig-network-instance:vlan": "openconfig-network-instance:vlan-id", - "^openconfig-interfaces:interfaces:openconfig-interfaces:interface": "openconfig-interfaces:name", + "^mdd:openconfig:openconfig-interfaces:interfaces:openconfig-interfaces:interface": "openconfig-interfaces:name", ":openconfig-interfaces:interface$": "openconfig-network-instance:id", "openconfig-network-instance:static": "openconfig-network-instance:prefix", "openconfig-network-instance:protocol": "openconfig-network-instance:name", From 4cd0aecdf4677dd889ef9ca212e5ec74e5839b0f Mon Sep 17 00:00:00 2001 From: Jason King Date: Tue, 11 Apr 2023 17:33:55 -0700 Subject: [PATCH 002/104] Fixes for sandbox NetBox version --- plugins/lookup/netbox_oc.py | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/plugins/lookup/netbox_oc.py b/plugins/lookup/netbox_oc.py index 2677050..b82fde4 100644 --- a/plugins/lookup/netbox_oc.py +++ b/plugins/lookup/netbox_oc.py @@ -206,8 +206,8 @@ def get_endpoint(netbox, resource): "rirs": {"endpoint": netbox.ipam.rirs}, "roles": {"endpoint": netbox.ipam.roles}, "route-targets": {"endpoint": netbox.ipam.route_targets}, - "secret-roles": {"endpoint": netbox.secrets.secret_roles}, - "secrets": {"endpoint": netbox.secrets.secrets}, + # "secret-roles": {"endpoint": netbox.secrets.secret_roles}, + # "secrets": {"endpoint": netbox.secrets.secrets}, "services": {"endpoint": netbox.ipam.services}, "site-groups": {"endpoint": netbox.dcim.site_groups}, "sites": {"endpoint": netbox.dcim.sites}, @@ -336,11 +336,11 @@ def interfaces_to_oc(interface_data, ipv4_by_intf, fhrp_by_intf): # create one if interface["description"]: interface_description = interface["description"] - elif interface["connected_endpoint"] is not None: - if interface["connected_endpoint"].get("device"): - connected_device = interface["connected_endpoint"]["device"]["display"] - connected_port = interface["connected_endpoint"]["display"] - interface_description = "{0}:{1}".format(connected_device, connected_port) + # elif interface["connected_endpoint"] is not None: + # if interface["connected_endpoint"].get("device"): + # connected_device = interface["connected_endpoint"]["device"]["display"] + # connected_port = interface["connected_endpoint"]["display"] + # interface_description = "{0}:{1}".format(connected_device, connected_port) else: interface_description = '' @@ -582,8 +582,8 @@ def run(self, terms, variables=None, **kwargs): or os.getenv("NETBOX_URL") ) netbox_ssl_verify = kwargs.get("validate_certs", True) - netbox_private_key = kwargs.get("private_key") - netbox_private_key_file = kwargs.get("key_file") + # netbox_private_key = kwargs.get("private_key") + # netbox_private_key_file = kwargs.get("key_file") netbox_api_filter = kwargs.get("api_filter") netbox_device = terms.pop() resources = ['interfaces'] @@ -598,14 +598,13 @@ def run(self, terms, variables=None, **kwargs): netbox = pynetbox.api( netbox_api_endpoint, token=netbox_api_token if netbox_api_token else None, - private_key=netbox_private_key, - private_key_file=netbox_private_key_file, + # private_key=netbox_private_key, + # private_key_file=netbox_private_key_file, ) netbox.http_session = session except FileNotFoundError: raise AnsibleError( - "%s cannot be found. Please make sure file exists." - % netbox_private_key_file + "File not found. Please make sure file exists." ) oc_data = {} @@ -687,4 +686,4 @@ def run(self, terms, variables=None, **kwargs): fhrp_group_copy = fhrp_group.copy() fhrp_by_intf[id][group_id].update(fhrp_group_copy) oc_data.update(interfaces_to_oc(results, ipv4_by_intf, fhrp_by_intf)) - return oc_data + return {"mdd:openconfig": oc_data} From 7a75751e16789081d8490aa7985553da87e20517 Mon Sep 17 00:00:00 2001 From: Jason King Date: Mon, 17 Apr 2023 16:10:19 -0700 Subject: [PATCH 003/104] Update yamllint settings --- .yamllint.yml | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .yamllint.yml diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 0000000..573321a --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,67 @@ +# -*- mode: yaml -*- +# vim:ts=2:sw=2:ai:si:syntax=yaml +# +# yamllint configuration directives +# Project Homepage: https://github.com/adrienverge/yamllint +# +# Overriding rules in files: +# http://yamllint.readthedocs.io/en/latest/disable_with_comments.html +--- +extends: default + +# Rules documentation: http://yamllint.readthedocs.io/en/latest/rules.html +rules: + + braces: + # Defaults + # min-spaces-inside: 0 + # max-spaces-inside: 0 + + # Keeping 0 min-spaces to not error on empty collection definitions + min-spaces-inside: 0 + # Allowing one space inside braces to improve code readability + max-spaces-inside: 1 + + brackets: + # Defaults + # min-spaces-inside: 0 + # max-spaces-inside: 0 + + # Keeping 0 min-spaces to not error on empty collection definitions + min-spaces-inside: 0 + # Allowing one space inside braces to improve code readability + max-spaces-inside: 1 + + comments: + # Defaults + # level: warning + # require-starting-space: true + # min-spaces-from-content: 2 + + # Disabling to allow for code comment blocks and #!/usr/bin/ansible-playbook + require-starting-space: false + + indentation: + # Defaults + # spaces: consistent + # indent-sequences: true + # check-multi-line-strings: false + + # Requiring 2 space indentation + spaces: 2 + # Requiring consistent indentation within a file, either indented or not + indent-sequences: consistent + + # Disabling due to copious amounts of long lines in the code which would + # require a code style change to resolve + line-length: disable + # Defaults + # max: 80 + # allow-non-breakable-words: true + # allow-non-breakable-inline-mappings: false + + # Disabling due to copious amounts of truthy warnings in the code which would + # require a code style change to resolve + truthy: disable + # Defaults + # level: warning From fe508ec226099e30e1e497d9f3eeef5df8e19308 Mon Sep 17 00:00:00 2001 From: Jason King Date: Mon, 17 Apr 2023 16:15:30 -0700 Subject: [PATCH 004/104] Added interface translation for OC data --- playbooks/nso_update_data.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/playbooks/nso_update_data.yml b/playbooks/nso_update_data.yml index 540a2e3..2a217db 100644 --- a/playbooks/nso_update_data.yml +++ b/playbooks/nso_update_data.yml @@ -26,6 +26,11 @@ # nso_device_config: "{{ nso_device_config | ansible.builtin.combine( { 'config': mdd_data['config'] }, recursive=true) }}" # when: mdd_data['config'] is defined and mdd_data['mdd:openconfig'] is defined + - name: Translate and truncate interface names + set_fact: + mdd_data: "{{ mdd_data | ciscops.mdd.intf_xform(cml_intf_xlate) }}" + when: (cml_group is defined and cml_group in group_names) and (cml_intf_xlate is defined and cml_intf_xlate) + - name: Update MDD Data ansible.builtin.include_role: name: ciscops.mdd.nso From 3abccb8b1a6be79e465a8848c2ca66686cd1a040 Mon Sep 17 00:00:00 2001 From: Jason King Date: Mon, 17 Apr 2023 16:17:14 -0700 Subject: [PATCH 005/104] Updated for full key names and support for STP --- plugins/filter/intf.py | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/plugins/filter/intf.py b/plugins/filter/intf.py index fdd5666..9403eaa 100644 --- a/plugins/filter/intf.py +++ b/plugins/filter/intf.py @@ -5,9 +5,11 @@ # The list of keys that will be searched to see is replacement is needed keys_to_replace = [ - "name", - "id", - "interface" + "openconfig-interfaces:name", + "openconfig-network-instance:id", + "openconfig-network-instance:interface", + "openconfig-spanning-tree:name", + "openconfig-system-ext:global-interface-name" ] @@ -50,12 +52,26 @@ def intf_truncate(data, intf_dict): regex_list = intf_dict.keys() temp_interface_list = [] + temp_stp_interface_list = [] data_out = data.copy() - if "openconfig-interfaces:interfaces" in data and "openconfig-interfaces:interface" in data["openconfig-interfaces:interfaces"]: - for interface in data["openconfig-interfaces:interfaces"]["openconfig-interfaces:interface"]: - if any(re.match(regex, interface["name"]) for regex in regex_list): - temp_interface_list.append(interface) - data_out["openconfig-interfaces:interfaces"]["openconfig-interfaces:interface"] = temp_interface_list + + if "mdd:openconfig" in data: + oc_data = data["mdd:openconfig"] + # Truncate interfaces + + if "openconfig-interfaces:interfaces" in oc_data and "openconfig-interfaces:interface" in oc_data["openconfig-interfaces:interfaces"]: + for interface in oc_data["openconfig-interfaces:interfaces"]["openconfig-interfaces:interface"]: + if any(re.match(regex, interface["openconfig-interfaces:name"]) for regex in regex_list): + temp_interface_list.append(interface) + data_out["mdd:openconfig"]["openconfig-interfaces:interfaces"]["openconfig-interfaces:interface"] = temp_interface_list + # Truncate STP interfaces + if "openconfig-spanning-tree:stp" in oc_data and "openconfig-spanning-tree:interfaces" in oc_data["openconfig-spanning-tree:stp"]: + for interface in oc_data["openconfig-spanning-tree:stp"]["openconfig-spanning-tree:interfaces"]["openconfig-spanning-tree:interface"]: + if any(re.match(regex, interface["openconfig-spanning-tree:name"]) for regex in regex_list): + temp_stp_interface_list.append(interface) + data_out["mdd:openconfig"]["openconfig-spanning-tree:stp"]["openconfig-spanning-tree:interfaces"]["openconfig-spanning-tree:interface"] = \ + temp_stp_interface_list + return data_out From 92075dbf8b44714b3b42605d1341dd7344203907 Mon Sep 17 00:00:00 2001 From: Jason King Date: Mon, 17 Apr 2023 16:17:37 -0700 Subject: [PATCH 006/104] Added option to set the parser command --- roles/check/tasks/cli_parse.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/check/tasks/cli_parse.yml b/roles/check/tasks/cli_parse.yml index be5c2f2..1f74408 100644 --- a/roles/check/tasks/cli_parse.yml +++ b/roles/check/tasks/cli_parse.yml @@ -3,6 +3,7 @@ command: "{{ check_command }}" parser: name: ansible.netcommon.pyats + command: "{{ parser_command | default(omit) }}" connection: network_cli register: cli_parse_results From 1fa9ee45cc04210b4ab87be79991f5c8db66998d Mon Sep 17 00:00:00 2001 From: Jason King Date: Mon, 17 Apr 2023 16:18:10 -0700 Subject: [PATCH 007/104] Add devices to NetBox based on ansible inventory --- playbooks/inventory_update_netbox.yml | 35 +++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 playbooks/inventory_update_netbox.yml diff --git a/playbooks/inventory_update_netbox.yml b/playbooks/inventory_update_netbox.yml new file mode 100644 index 0000000..68950e3 --- /dev/null +++ b/playbooks/inventory_update_netbox.yml @@ -0,0 +1,35 @@ +- hosts: localhost + gather_facts: no + roles: + - ciscops.mdd.netbox + tasks: + - include_role: + name: ciscops.mdd.netbox + tasks_from: netbox_inventory + + - name: Add new device + include_role: + name: ciscops.mdd.netbox + tasks_from: add_device + when: inventory_hostname not in netbox_host_list + with_items: "{{ groups['network'] }}" + vars: + netbox_device_name: "{{ hostvars[item].inventory_hostname }}" + netbox_device_interface_name: "{{ hostvars[item].mgmt_interface }}" + netbox_device_ipv4_address: "{{ hostvars[item].ansible_host }}" + netbox_device_type: unknown + netbox_device_role: unknown + + - include_role: + name: ciscops.mdd.netbox + tasks_from: netbox_inventory + + - include_role: + name: ciscops.mdd.netbox + tasks_from: netbox_mgmt + when: hostvars[item].mgmt_interface is defined and hostvars[item].inventory_hostname in netbox_host_list + with_items: "{{ groups['network'] }}" + vars: + netbox_device_name: "{{ hostvars[item].inventory_hostname }}" + netbox_device_interface_name: "{{ hostvars[item].mgmt_interface }}" + netbox_device_ipv4_address: "{{ hostvars[item].ansible_host }}" From d4c19a9ab1a85b71333a862b6aaf7f05c26e67f7 Mon Sep 17 00:00:00 2001 From: Jason King Date: Mon, 17 Apr 2023 16:18:46 -0700 Subject: [PATCH 008/104] Added support for auto-generating CML lab and interface mapping --- playbooks/cml_update_lab.yml | 52 +++ plugins/filter/graph.py | 51 +++ plugins/modules/cml_lab.py | 685 +++++++++++++++++++++++++++++++++++ roles/nso/tasks/get_cdp.yml | 9 + 4 files changed, 797 insertions(+) create mode 100644 playbooks/cml_update_lab.yml create mode 100644 plugins/filter/graph.py create mode 100644 plugins/modules/cml_lab.py create mode 100644 roles/nso/tasks/get_cdp.yml diff --git a/playbooks/cml_update_lab.yml b/playbooks/cml_update_lab.yml new file mode 100644 index 0000000..a6c80e7 --- /dev/null +++ b/playbooks/cml_update_lab.yml @@ -0,0 +1,52 @@ +--- +- name: Get CDP Data for Devices + hosts: network + connection: local + gather_facts: no + roles: + - ciscops.mdd.nso + vars: + start_from: 2 + layout: kamada_kawai + tasks: + + - name: Get CDP data + include_role: + name: ciscops.mdd.nso + tasks_from: exec_command + vars: + nso_exec_command: show cdp neighbors + + - set_fact: + cdp_data: "{{ {'hostname': inventory_hostname, 'tags': tags if tags is defined else {}, 'cdp': nso_command_output} }}" + + - name: Create device list with CDP data + set_fact: + devices: "{{ groups['network'] | map('extract', hostvars, 'cdp_data') | list }}" + run_once: yes + + - name: Generate topology + ciscops.mdd.cml_lab: + devices: "{{ devices }}" + start_from: "{{ start_from }}" + register: results + run_once: yes + + - name: "Layout graph using the {{ layout }} layout" + set_fact: + topology: "{{ results.topology | ciscops.mdd.graph(layout=layout) }}" + run_once: yes + when: not layout == 'none' + + - name: Create topology file + copy: + content: "{{ topology | to_nice_yaml(indent=2,sort_keys=False) }}" + dest: "{{ lookup('env', 'PWD') }}/files/cml_lab.yaml" + run_once: yes + no_log: yes + + - name: Create mapping file + copy: + content: "{{ {'all': {'hosts': results.mappings}} | to_nice_yaml(indent=2,sort_keys=False) }}" + dest: "{{ lookup('env', 'PWD') }}/inventory/cml_intf_map.yml" + run_once: yes diff --git a/plugins/filter/graph.py b/plugins/filter/graph.py new file mode 100644 index 0000000..2e12c48 --- /dev/null +++ b/plugins/filter/graph.py @@ -0,0 +1,51 @@ +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible.module_utils.six import raise_from +from ansible.errors import AnsibleError +try: + import networkx as nx +except ImportError as imp_exc: + NETWORKX_IMPORT_ERROR = imp_exc +else: + NETWORKX_IMPORT_ERROR = None + +# display = Display() + + +def graph(topology_data, layout='kamada_kawai', scale=500): + if NETWORKX_IMPORT_ERROR: + raise_from(AnsibleError('networkx must be installed to use this plugin'), NETWORKX_IMPORT_ERROR) + + pos = {} + g = nx.Graph() + + for link in topology_data['links']: + g.add_edge(link['n1'], link['n2']) + + if layout == 'spring': + pos = nx.layout.spring_layout(g, scale=scale) + elif layout == 'planar': + pos = nx.layout.planar_layout(g, scale=scale) + elif layout == 'spectral': + pos = nx.layout.spectral_layout(g, scale=scale) + elif layout == 'kamada_kawai': + pos = nx.layout.kamada_kawai_layout(g, scale=scale) + + # display.vvvvv(f"{pos}") + + for key, value in pos.items(): + for node in topology_data['nodes']: + if node['id'] == key: + node['x'] = int(value[0]) + node['y'] = int(value[1]) + + return topology_data + + +class FilterModule(object): + + def filters(self): + return { + 'graph': graph, + } diff --git a/plugins/modules/cml_lab.py b/plugins/modules/cml_lab.py new file mode 100644 index 0000000..3f2f2a8 --- /dev/null +++ b/plugins/modules/cml_lab.py @@ -0,0 +1,685 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2017 Cisco and/or its affiliates. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see . + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +ANSIBLE_METADATA = {'metadata_version': '1.1', 'status': ['preview'], 'supported_by': 'community'} + + +DOCUMENTATION = r""" +--- +module: cml_lab +short_description: Generate a CML lab file from devices in NSO +description: + - Generate a CML lab file from devices in NSO +author: + - Steven Mosher (@stmosher) + - Jason King (@jasonkin) +requirements: + - copy +version_added: '1.2.0' +options: + devices: + description: The devices used to build the topology + required: true + type: list + elements: dict + ext_conn: + description: Whether to add external connectors to lab + required: false + type: bool + default: true + start_from: + description: Which physical interface to start mapping to simulated interface + required: false + type: int + default: 2 +""" + +EXAMPLES = r""" +- name: Build the topology + hosts: localhost + gather_facts: no + tasks: + - name: Build the topology + ciscops.mdd.generate_topology: + devices: "{{ devices }}" + register: topology +""" + +import copy +from ansible.module_utils.basic import AnsibleModule + +interface_types_list = ["Fas", "Ten", "Gig"] +device_template = { + "switch": { + "node_definition": "iosvl2", + "ram": 768, + "tags": ["switch"], + "y": 0, + "type": "switch" + }, + "router": { + "node_definition": "csr1000v", + "ram": 3072, + "tags": ["router"], + "y": 0, + "type": "router" + }, + "l3switch": { + "node_definition": "Cat9000v", + "image_definition": "Cat9k", + "ram": 18432, + "cpus": 4, + "tags": ["l3switch"], + "y": 0, + "type": "l3switch" + }, + "ext_conn": { + "node_definition": "external_connector", + "ram": 0, + "tags": [], + "y": 0 + }, +} + +default_mappings = { + "Loopback(\\d+)": "Loopback\\1", + "Vlan(\\d+)": "Vlan\\1" +} + + +def create_node(node_input): + device = { + "boot_disk_size": 0, + "configuration": node_input["configuration"], + "cpu_limit": 100, + "cpus": node_input.get("cpus", 1), + "data_volume": 0, + "hide_links": False, + "id": node_input["id"], + "label": node_input["hostname"], + "node_definition": node_input["node_definition"], + "ram": node_input["ram"], + "tags": node_input["tags"], + "x": node_input["x_position"], + "y": node_input.get("y_position", 0), + "interfaces": [ + { + "id": "i0", + "label": "Loopback0", + "type": "loopback" + } + ] + } + if node_input.get("image_definition"): + device["image_definition"] = node_input.get("image_definition") + return device + + +def switch_generate_interface(c, m, s): + """ + Increments module and interface numbering for switches using modules of 4 interfaces, e.g. + Gig0/0, Gig0/1, Gig0/2, Gig0/3, Gig1/0... + :param c: int, interface number + :param m: int, module number + :param s: int, CML topo slot number + :return: tuple, if-counter, module number, slot number + """ + if c == 3: + m += 1 + c = 0 + else: + c += 1 + s += 1 + return c, m, s + + +def add_interfaces_to_topology(topo_node, device_info, physical_interfaces): + """ + Adds interfaces to the devices in the CML topology + """ + number_of_interfaces = len(physical_interfaces) + 3 # initial + 2 spares + number_of_interfaces += 4 - (number_of_interfaces % 4) # interfaces come in sets of 4 + if device_info["type"] == "l3switch": + topo_node["interfaces"].append({ + "id": "i1", + "label": "GigabitEthernet0/0", + "slot": 0, + "type": "physical" + }) + counter = 1 + for i in range(24): + topo_node["interfaces"].append({ + "id": "i{0}".format(counter + 1), + "label": "GigabitEthernet1/0/{0}".format(counter), + "slot": counter, + "type": "physical" + }) + counter += 1 + elif device_info["type"] == "switch": + slot = 0 + mod = 0 + counter = 0 + if_id = 1 + for i in range(number_of_interfaces): + topo_node["interfaces"].append({ + "id": "i{0}".format(if_id), + "label": "GigabitEthernet{0}/{1}".format(mod, counter), + "slot": slot, + "type": "physical" + }) + counter, mod, slot = switch_generate_interface(counter, mod, slot) + if_id += 1 + elif device_info["type"] == "router": + slot = 0 + counter = 1 + for i in range(number_of_interfaces): + topo_node["interfaces"].append({ + "id": "i{0}".format(counter), + "label": "GigabitEthernet{0}".format(counter), + "slot": slot, + "type": "physical" + }) + slot += 1 + counter += 1 + + +def map_physical_interfaces_to_logical_interfaces(topo_node, physical_interfaces, start_from): + """ + Creates a dict of devices with dicts of interfaces with dicts of physical interface names containing dicts of + virtual interfaces and ids. Device dict also contains node-id, e.g. + {'Router-01': {'interfaces': {'Gig0': {'if-name': 'GigabitEthernet2', 'id': 'i2'}, + 'Gig0/0/0': {'if-name': 'GigabitEthernet3', 'id': 'i3'}, + 'Gig0/0/1': {'if-name': 'GigabitEthernet4', 'id': 'i4'}}, + 'node_id': 'n0'} + :param topo_node: + :param physical_interfaces: + :return: dict + """ + mapping = {} + + # Find mgmt interface and make sure we map that as well + for interface in topo_node["interfaces"]: + if interface["id"] == "i1": + mapping[interface["label"]] = {"if-name": interface["label"], "id": interface["id"]} + for i in range(len(physical_interfaces)): + mapping[physical_interfaces[i]] = {"if-name": topo_node["interfaces"][start_from + i]["label"], + "id": topo_node["interfaces"][start_from + i]["id"]} + return mapping + + +def cml_topology_create_initial(devices_with_interface_dict, remote_device_info_full, start_from): + """ + Creates CML topology file and adds nodes + :param devices_with_interface_dict: + :param remote_device_info_full: + :return: + """ + mappings = {} + topology = { + "lab": { + "description": "", + "notes": "", + "title": "generated_lab", + "version": "0.1.0" + }, + "links": [], + "nodes": [] + } + node_counter = 0 + x_position = 0 + for device in devices_with_interface_dict: + configs = { + "router": ''' +hostname {0} +! +vrf definition Mgmt-intf + address-family ipv4 + exit-address-family +! +ip domain name mdd.cisco.com +! +crypto key generate rsa modulus 2048 +! +username admin privilege 15 secret 0 admin +! +interface GigabitEthernet1 + vrf forwarding Mgmt-intf + ip address dhcp + no shutdown +! +ip ssh time-out 60 +ip ssh authentication-retries 2 +! +line con 0 +line aux 0 +line vty 0 4 + login local + transport input ssh + exec-timeout 0 0 + exit +netconf ssh +end +'''.format(device), + "switch": ''' +"hostname {0} +! +vrf definition Mgmt-intf + address-family ipv4 + exit-address-family +! +ip domain name mdd.cisco.com +! +crypto key generate rsa modulus 2048 +! +username admin privilege 15 secret 0 admin +! +interface GigabitEthernet0/0 + no switchport + vrf forwarding Mgmt-intf + ip address dhcp + no shutdown +! +interface GigabitEthernet0/1 + no switchport +! +interface GigabitEthernet0/2 + no switchport +! +interface GigabitEthernet0/3 + no switchport +! +interface GigabitEthernet1/0 + no switchport +! +interface GigabitEthernet1/1 + no switchport +! +interface GigabitEthernet1/2 + no switchport +! +interface GigabitEthernet1/3 + no switchport +! +no ip http server +no ip http secure-server +ip ssh time-out 60 +ip ssh authentication-retries 2 +! +line con 0 +line aux 0 +line vty 0 4 + login local + transport input ssh + exec-timeout 0 0 + exit + netconf ssh + end" +'''.format(device), + "l3switch": ''' +hostname {0} +! +vrf definition Mgmt-intf +! + address-family ipv4 + exit-address-family +! +ip domain name mdd.cisco.com +! +crypto key generate rsa modulus 2048 +! +enable secret 0 Xcisco1234 +! +username admin privilege 15 secret 0 admin +! +interface GigabitEthernet0/0 + no switchport + vrf forwarding Mgmt-intf + ip address dhcp + no shutdown +! +interface GigabitEthernet1/0/1-24 + no switchport +! +no ip http server +no ip http secure-server +ip ssh time-out 60 +ip ssh authentication-retries 2 +! +ip ssh version 2 +! +ip ssh server algorithm mac hmac-sha1 hmac-sha2-256 hmac-sha2-512 +ip ssh server algorithm kex diffie-hellman-group14-sha1 +! +line con 0 +line aux 0 +line vty 0 4 + login local + transport input ssh + exec-timeout 0 0 + exit +netconf ssh +ip routing +license boot level network-advantage addon dna-advantage +license boot level network-advantage +end +'''.format(device) + } + device_type = remote_device_info_full.get(device, {}).get("type", "router") + device_info = copy.deepcopy(device_template.get(device_type)) + device_info["hostname"] = device + device_info["x_position"] = x_position + device_info["id"] = "n{0}".format(node_counter) + device_info["configuration"] = configs[device_type] + node_counter += 1 + x_position += 150 + topo_node = create_node(device_info) + add_interfaces_to_topology(topo_node, device_info, devices_with_interface_dict[device]) + physical_virtual_map = map_physical_interfaces_to_logical_interfaces(topo_node, + devices_with_interface_dict[device], + start_from) + mappings.update({device: {"interfaces": physical_virtual_map, + "node_id": device_info["id"]}}) + topology["nodes"].append(topo_node) + + return topology, mappings + + +def find_capabilities(device, cdp_line): + """ + Find capabilites advertised from the remote device. Used to find the best CML image + :param device: + :param cdp_line: + :return: dict of {remote_name, {"platform": hw_platform, "type": ("switch", "router", or "l3switch")} + """ + rev = copy.deepcopy(cdp_line) + rev.reverse() + capabilities = [] + for r in rev[3:]: + if r.isdigit(): + break + else: + if r == "R" or r == "S": + capabilities.append(r) + if "R" in capabilities and "S" in capabilities: + # For now, set this to switch. Once cat9kv is available, set to l3switch + # device_type = "l3switch" + device_type = "switch" + elif "R" in capabilities: + device_type = "router" + elif "S" in capabilities: + device_type = "switch" + else: + device_type = None + platform = cdp_line[-3] + return {device: {"platform": platform, "type": device_type}} + + +def parse_cdp_output(cdp_data, dev, devices): + """ + Find local interface, remote name, remote interface, remote platform, remote capabilities + + return tuple + [0] links, e.g. + [{ + "router1": "Ten1/2, + "router2": "Ten1/1", + }] + [1]ldict of devices, platform, and capabilities to be used + [{"router10": {"platform": "c6509", "type": "l3switch"}} + """ + device_links_list = [] + device_info = {} + cdp_split = cdp_data.split('\r\n') # split all csv data on carriage returns + cdp_split.pop(0) # RESTCONF results has an extra blank line + # Find the first break list index + for c, i in enumerate(cdp_split): + if len(i.split()) == 0: + index = cdp_split.index(i) + break + + index = index + 2 # skip to first device name + + # new_list = [a for a in cdp_split[index:]] # break single csv line into elements + new_list = list(cdp_split[index:]) # break single csv line into elements + + for i in new_list: + if len(i.split()) == 1 and "." in i.split()[0]: # a line with only a name + remote = i.split('.')[0] + elif len(i.split()) == 1: + remote = i.split()[0] + elif len(i.split()) == 0: # blank line is end of cdp neighbors + break + if i.split()[-1] == "eth0": # not adding hosts + pass + elif len(i.split()) > 1 and i.split()[1] in interface_types_list: # in case hostname is in line with data + if "." in i.split()[0]: + remote = i.split('.')[0] + else: + remote = i.split()[0] + line_list = i.split() + local_interface = line_list[1] + line_list[2] + remote_interface = line_list[-2] + line_list[-1] + # Only add devices that were included in devices list + if any(d['hostname'] == remote for d in devices): + device_links_list.append({dev['hostname']: local_interface, remote: remote_interface}) + device_info.update(find_capabilities(remote, line_list)) + elif len(i.split()) > 1: # line with data below the device name line + line_list = i.split() + local_interface = line_list[0] + line_list[1] + remote_interface = line_list[-2] + line_list[-1] + # Only add devices that were included in devices list + if any(d['hostname'] == remote for d in devices): + device_links_list.append({dev['hostname']: local_interface, remote: remote_interface}) + device_info.update(find_capabilities(remote, line_list)) + return device_links_list, device_info + + +def check_for_and_remove_error_links(dls): + """ + In case there is a case such as this: + Router1 Ten 3/4 155 S I C9300-24P Ten 1/1/4 + Router1 Ten 3/4 164 S I C9300-24P Ten 1/1/3 + + remove a Ten3/4 since it can't link to two other physical links + :param dls: which is the device_links + return: dict {"router1": ["Gig1", "Gig2"], "router2": ["Gig1", "Gig2"]] + """ + devices_with_links = {} # track each devices' interfaces + redundant_links_to_remove = [] # redundant links to be removed from device_links + for link_full in dls: + for device_name in link_full: + if device_name not in devices_with_links: + devices_with_links[device_name] = [] + if link_full[device_name] not in devices_with_links[device_name]: + devices_with_links[device_name].append(link_full[device_name]) + else: + redundant_links_to_remove.append(link_full) + for link_to_del in redundant_links_to_remove: + if link_to_del in dls: + dls.remove(link_to_del) + return devices_with_links + + +def sort_device_interfaces(remote_device_i): + for item in remote_device_i: + remote_device_i[item].sort() + + +def cml_topology_add_links(topo, maps, d_links): + """ + Add links to CML topology + """ + counter = 0 + for d_link in d_links: + if len(d_link) != 2: + # print( + # f"Warning - Link {d_link} contains {len(d_link)} endpoints. Links must have 2 endpoints. This will not be added to the CML topology") + continue + link_temp = {"id": "l{0}".format(counter)} + d_count = 0 + for k, v in d_link.items(): + if d_count == 0: + link_temp.update({ + "n1": maps[k]["node_id"], + "i1": maps[k]["interfaces"][v]["id"], + "label": "{0}<->".format(k) + }) + elif d_count == 1: + link_temp.update({ + "n2": maps[k]["node_id"], + "i2": maps[k]["interfaces"][v]["id"], + }) + link_temp["label"] = link_temp["label"] + k + d_count += 1 + topo["links"].append(link_temp) + counter += 1 + + +def extend_naming(short_name): + """ + If necessary, convert CDP short interface type naming to OS full interface type names + """ + if "Gig" in short_name and "GigabitEthernet" not in short_name: + short_name = short_name.replace("Gig", "GigabitEthernet") + if "Ten" in short_name and "TenGigabitEthernet" not in short_name: + short_name = short_name.replace("Ten", "TenGigabitEthernet") + if "Fas" in short_name and "FastEthernet" not in short_name: + short_name = short_name.replace("Fas", "FastEthernet") + return short_name + + +def create_interface_mapping_dict(mappings): + """ + Write interface physical to virtual mappings to YAML file + Write interface virtual to physical mappings to YAML file + """ + mapp_p_to_v = {} + for k in mappings: + temp_dict_p_to_v = {k: {"cml_intf_xlate": {}}} + for key, value in mappings[k]["interfaces"].items(): + temp_dict_p_to_v[k]["cml_intf_xlate"].update({extend_naming(key): value["if-name"]}) + temp_dict_p_to_v[k]["cml_intf_xlate"].update(default_mappings) + mapp_p_to_v.update(temp_dict_p_to_v) + return mapp_p_to_v + + +def link_id_start(virtual_topology): + links = [] + for i in virtual_topology["links"]: + links.append(int(i["id"].lstrip("l"))) + links.sort() + return links[-1] + 1 + + +def node_id_start(virtual_topology): + nodes = [] + for i in virtual_topology["nodes"]: + nodes.append(int(i["id"].lstrip("n"))) + nodes.sort() + return nodes[-1] + 1 + + +def ext_conn_nodes_create(virtual_topology, draft_topo, node_start): + y = -1000 + for n in draft_topo["nodes"]: + device_info = copy.deepcopy(device_template.get("ext_conn")) + device_info["label"] = "ext-conn-{0}".format(n['label']) + device_info["cpus"] = 0 + device_info["x"] = 5500 + device_info["y"] = y + device_info["id"] = "n{0}".format(node_start) + device_info["configuration"] = "bridge0" + device_info["hide_links"] = True + device_info["interfaces"] = [{ + "id": "i0", + "label": "port", + "slot": 0, + "type": "physical" + }] + virtual_topology["nodes"].append(device_info) + y += 50 + node_start += 1 + + +def ext_conn_links_create(virtual_topology, draft_topo, link_node_start, link_start): + for n in draft_topo["nodes"]: + link = { + "id": "l{0}".format(link_start), + "n1": n["id"], + "i1": "i1", + "n2": "n{0}".format(link_node_start), + "i2": "i0", + "label": "{0}<->ext-conn-{1}".format(n['label'], n['label']) + } + virtual_topology["links"].append(link) + link_start += 1 + link_node_start += 1 + + +def cml_topology_add_external_connectors_and_links(topo): + """ + Add an external connected or link to each node management interface + """ + link_start = link_id_start(topo) + node_start = node_id_start(topo) + link_node_start = node_start + new_topo = copy.deepcopy(topo) + + ext_conn_nodes_create(topo, new_topo, node_start) + ext_conn_links_create(topo, new_topo, link_node_start, link_start) + + +def main(): + arguments = dict( + devices=dict(required=True, type='list', elements='dict'), + ext_conn=dict(required=False, type='bool', default=True), + start_from=dict(required=False, type='int', default=2) + ) + + module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) + + device_links = [] + remote_device_info_full = {} + + devices = module.params['devices'] + start_from = module.params['start_from'] + + for device in devices: + temp_device_links, remote_device_info = parse_cdp_output(device['cdp'], device, devices) + remote_device_info_full.update(remote_device_info) + for link in temp_device_links: # add any newly found links to device links + if link not in device_links: + device_links.append(link) # now saved newly discovered links + devices_with_interface_dict = check_for_and_remove_error_links(device_links) + sort_device_interfaces(devices_with_interface_dict) + topology_cml, mappings_cml = cml_topology_create_initial(devices_with_interface_dict, remote_device_info_full, start_from) + cml_topology_add_links(topology_cml, mappings_cml, device_links) + if module.params['ext_conn']: + cml_topology_add_external_connectors_and_links(topology_cml) + mappings = create_interface_mapping_dict(mappings_cml) + + module.exit_json(changed=True, topology=topology_cml, mappings=mappings) + + +if __name__ == '__main__': + main() diff --git a/roles/nso/tasks/get_cdp.yml b/roles/nso/tasks/get_cdp.yml new file mode 100644 index 0000000..6348f43 --- /dev/null +++ b/roles/nso/tasks/get_cdp.yml @@ -0,0 +1,9 @@ +- name: Get CDP data + include_role: + name: ciscops.mdd.nso + tasks_from: exec_command + vars: + nso_exec_command: show cdp neighbors + +- set_fact: + devices: "{{ (devices | default([])) + [{'hostname': inventory_hostname, 'tags': tags if tags is defined else {}, 'cdp': nso_command_output}] }}" From d237c4cd0359351c0ce3144c507aa0aa6f805b72 Mon Sep 17 00:00:00 2001 From: Jason King Date: Mon, 17 Apr 2023 16:24:43 -0700 Subject: [PATCH 009/104] Updated collection version --- galaxy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/galaxy.yml b/galaxy.yml index d051602..50bc833 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -8,7 +8,7 @@ namespace: ciscops name: mdd # The version of the collection. Must be compatible with semantic versioning -version: 1.2.4 +version: 1.2.5 # The path to the Markdown (.md) readme file. This path is relative to the root of the collection readme: README.md From 2474c99c0ffef3b019660b84647b5554942968b7 Mon Sep 17 00:00:00 2001 From: Jason King Date: Mon, 17 Apr 2023 16:35:35 -0700 Subject: [PATCH 010/104] Added inventory_dir variable to control where interface mapping file is placed --- playbooks/cml_update_lab.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/playbooks/cml_update_lab.yml b/playbooks/cml_update_lab.yml index a6c80e7..cd69cfc 100644 --- a/playbooks/cml_update_lab.yml +++ b/playbooks/cml_update_lab.yml @@ -8,6 +8,7 @@ vars: start_from: 2 layout: kamada_kawai + inventory_dir: inventory tasks: - name: Get CDP data @@ -48,5 +49,5 @@ - name: Create mapping file copy: content: "{{ {'all': {'hosts': results.mappings}} | to_nice_yaml(indent=2,sort_keys=False) }}" - dest: "{{ lookup('env', 'PWD') }}/inventory/cml_intf_map.yml" + dest: "{{ lookup('env', 'PWD') }}/{{ inventory_dir }}/cml_intf_map.yml" run_once: yes From 803f607c30bd6e6c4b028b47452fbbcfda662f75 Mon Sep 17 00:00:00 2001 From: Jason King Date: Mon, 17 Apr 2023 16:54:54 -0700 Subject: [PATCH 011/104] Added var for setting scale when graphing --- playbooks/cml_update_lab.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/playbooks/cml_update_lab.yml b/playbooks/cml_update_lab.yml index cd69cfc..2f45612 100644 --- a/playbooks/cml_update_lab.yml +++ b/playbooks/cml_update_lab.yml @@ -9,6 +9,7 @@ start_from: 2 layout: kamada_kawai inventory_dir: inventory + scale: 500 tasks: - name: Get CDP data @@ -35,7 +36,7 @@ - name: "Layout graph using the {{ layout }} layout" set_fact: - topology: "{{ results.topology | ciscops.mdd.graph(layout=layout) }}" + topology: "{{ results.topology | ciscops.mdd.graph(layout=layout,scale=500) }}" run_once: yes when: not layout == 'none' From 0451482a59fe045a7ad3e348bdefec960db0101d Mon Sep 17 00:00:00 2001 From: Jason King Date: Mon, 17 Apr 2023 17:03:49 -0700 Subject: [PATCH 012/104] Fixing error in scale var --- playbooks/cml_update_lab.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playbooks/cml_update_lab.yml b/playbooks/cml_update_lab.yml index 2f45612..4e91691 100644 --- a/playbooks/cml_update_lab.yml +++ b/playbooks/cml_update_lab.yml @@ -36,7 +36,7 @@ - name: "Layout graph using the {{ layout }} layout" set_fact: - topology: "{{ results.topology | ciscops.mdd.graph(layout=layout,scale=500) }}" + topology: "{{ results.topology | ciscops.mdd.graph(layout=layout,scale=scale) }}" run_once: yes when: not layout == 'none' From a185df84ccaab3a2d79b91a9972994ef93d97c8f Mon Sep 17 00:00:00 2001 From: Jason King Date: Mon, 17 Apr 2023 17:47:58 -0700 Subject: [PATCH 013/104] Setting explicit type of scale parameter --- plugins/filter/graph.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/plugins/filter/graph.py b/plugins/filter/graph.py index 2e12c48..e15edec 100644 --- a/plugins/filter/graph.py +++ b/plugins/filter/graph.py @@ -10,8 +10,6 @@ else: NETWORKX_IMPORT_ERROR = None -# display = Display() - def graph(topology_data, layout='kamada_kawai', scale=500): if NETWORKX_IMPORT_ERROR: @@ -24,15 +22,13 @@ def graph(topology_data, layout='kamada_kawai', scale=500): g.add_edge(link['n1'], link['n2']) if layout == 'spring': - pos = nx.layout.spring_layout(g, scale=scale) + pos = nx.layout.spring_layout(g, scale=int(scale)) elif layout == 'planar': - pos = nx.layout.planar_layout(g, scale=scale) + pos = nx.layout.planar_layout(g, scale=int(scale)) elif layout == 'spectral': - pos = nx.layout.spectral_layout(g, scale=scale) + pos = nx.layout.spectral_layout(g, scale=int(scale)) elif layout == 'kamada_kawai': - pos = nx.layout.kamada_kawai_layout(g, scale=scale) - - # display.vvvvv(f"{pos}") + pos = nx.layout.kamada_kawai_layout(g, scale=int(scale)) for key, value in pos.items(): for node in topology_data['nodes']: From fc57d7ded762f70ecb6708707a38e3d67877fca9 Mon Sep 17 00:00:00 2001 From: Jason King Date: Mon, 17 Apr 2023 17:48:13 -0700 Subject: [PATCH 014/104] Fixes for interface mapping --- plugins/modules/cml_lab.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/plugins/modules/cml_lab.py b/plugins/modules/cml_lab.py index 3f2f2a8..375204a 100644 --- a/plugins/modules/cml_lab.py +++ b/plugins/modules/cml_lab.py @@ -217,13 +217,15 @@ def map_physical_interfaces_to_logical_interfaces(topo_node, physical_interfaces """ mapping = {} - # Find mgmt interface and make sure we map that as well - for interface in topo_node["interfaces"]: - if interface["id"] == "i1": - mapping[interface["label"]] = {"if-name": interface["label"], "id": interface["id"]} + # If start_from > 1, find mgmt interface and make sure we map that as well, otherwise it will be truncated + if start_from > 1: + for interface in topo_node["interfaces"]: + if interface["id"] == "i1": + mapping[interface["label"]] = {"if-name": interface["label"], "id": interface["id"]} + start_from = start_from - 1 for i in range(len(physical_interfaces)): - mapping[physical_interfaces[i]] = {"if-name": topo_node["interfaces"][start_from + i]["label"], - "id": topo_node["interfaces"][start_from + i]["id"]} + mapping[physical_interfaces[i]] = {"if-name": topo_node["interfaces"][start_from + i + 1]["label"], + "id": topo_node["interfaces"][start_from + i + 1]["id"]} return mapping From 8f1d90f3f58ebc1a8b68b31aa02012b078fe25b4 Mon Sep 17 00:00:00 2001 From: Jason King Date: Wed, 19 Apr 2023 10:27:42 -0700 Subject: [PATCH 015/104] Moved device and interface mapping dicts to ansible vars --- playbooks/cml_update_lab.yml | 39 +++++++++++++++++ plugins/modules/cml_lab.py | 85 ++++++++++++++---------------------- 2 files changed, 72 insertions(+), 52 deletions(-) diff --git a/playbooks/cml_update_lab.yml b/playbooks/cml_update_lab.yml index 4e91691..d3d236b 100644 --- a/playbooks/cml_update_lab.yml +++ b/playbooks/cml_update_lab.yml @@ -10,6 +10,42 @@ layout: kamada_kawai inventory_dir: inventory scale: 500 + use_cat9kv: False + cml_device_template: + switch: + node_definition: iosvl2 + ram: 768 + tags: + - switch + type: switch + router: + node_definition: csr1000v + ram: 3072 + tags: + - router + type: router + # l3switch: + # node_definition: Cat9000v + # image_definition: Cat9k + # ram: 18432 + # cpus: 4 + # tags: + # - l3switch + # type: l3switch + l3switch: + node_definition: iosvl2 + ram: 768 + tags: + - l3switch + type: l3switch + ext_conn: + node_definition: external_connector + ram: 0 + tags: [] + # Default interface mapping for CML + cml_default_mappings: + Loopback(\\d+): Loopback\\1 + Vlan(\\d+): Vlan\\1 tasks: - name: Get CDP data @@ -31,6 +67,9 @@ ciscops.mdd.cml_lab: devices: "{{ devices }}" start_from: "{{ start_from }}" + device_template: "{{ cml_device_template }}" + default_mappings: "{{ cml_default_mappings }}" + use_cat9kv: "{{ use_cat9kv | bool }}" register: results run_once: yes diff --git a/plugins/modules/cml_lab.py b/plugins/modules/cml_lab.py index 375204a..cdbef0b 100644 --- a/plugins/modules/cml_lab.py +++ b/plugins/modules/cml_lab.py @@ -42,6 +42,14 @@ required: true type: list elements: dict + device_template: + description: CML node info for each device type + required: true + type: dict + default_mappings: + description: Default interface mappings to apply to all devices + required: true + type: dict ext_conn: description: Whether to add external connectors to lab required: false @@ -52,6 +60,11 @@ required: false type: int default: 2 + use_cat9kv: + description: Whether or not to use the cat9kv as the l3switch in CML + required: no + type: bool + default: false """ EXAMPLES = r""" @@ -69,42 +82,6 @@ from ansible.module_utils.basic import AnsibleModule interface_types_list = ["Fas", "Ten", "Gig"] -device_template = { - "switch": { - "node_definition": "iosvl2", - "ram": 768, - "tags": ["switch"], - "y": 0, - "type": "switch" - }, - "router": { - "node_definition": "csr1000v", - "ram": 3072, - "tags": ["router"], - "y": 0, - "type": "router" - }, - "l3switch": { - "node_definition": "Cat9000v", - "image_definition": "Cat9k", - "ram": 18432, - "cpus": 4, - "tags": ["l3switch"], - "y": 0, - "type": "l3switch" - }, - "ext_conn": { - "node_definition": "external_connector", - "ram": 0, - "tags": [], - "y": 0 - }, -} - -default_mappings = { - "Loopback(\\d+)": "Loopback\\1", - "Vlan(\\d+)": "Vlan\\1" -} def create_node(node_input): @@ -153,13 +130,13 @@ def switch_generate_interface(c, m, s): return c, m, s -def add_interfaces_to_topology(topo_node, device_info, physical_interfaces): +def add_interfaces_to_topology(topo_node, device_info, physical_interfaces, use_cat9kv=False): """ Adds interfaces to the devices in the CML topology """ number_of_interfaces = len(physical_interfaces) + 3 # initial + 2 spares number_of_interfaces += 4 - (number_of_interfaces % 4) # interfaces come in sets of 4 - if device_info["type"] == "l3switch": + if device_info["type"] == "l3switch" and use_cat9kv is True: topo_node["interfaces"].append({ "id": "i1", "label": "GigabitEthernet0/0", @@ -175,7 +152,7 @@ def add_interfaces_to_topology(topo_node, device_info, physical_interfaces): "type": "physical" }) counter += 1 - elif device_info["type"] == "switch": + elif device_info["type"] == "switch" or (device_info["type"] == "l3switch" and use_cat9kv is not True): slot = 0 mod = 0 counter = 0 @@ -229,7 +206,7 @@ def map_physical_interfaces_to_logical_interfaces(topo_node, physical_interfaces return mapping -def cml_topology_create_initial(devices_with_interface_dict, remote_device_info_full, start_from): +def cml_topology_create_initial(devices_with_interface_dict, remote_device_info_full, start_from, device_template, use_cat9kv=False): """ Creates CML topology file and adds nodes :param devices_with_interface_dict: @@ -395,7 +372,7 @@ def cml_topology_create_initial(devices_with_interface_dict, remote_device_info_ node_counter += 1 x_position += 150 topo_node = create_node(device_info) - add_interfaces_to_topology(topo_node, device_info, devices_with_interface_dict[device]) + add_interfaces_to_topology(topo_node, device_info, devices_with_interface_dict[device], use_cat9kv) physical_virtual_map = map_physical_interfaces_to_logical_interfaces(topo_node, devices_with_interface_dict[device], start_from) @@ -423,9 +400,7 @@ def find_capabilities(device, cdp_line): if r == "R" or r == "S": capabilities.append(r) if "R" in capabilities and "S" in capabilities: - # For now, set this to switch. Once cat9kv is available, set to l3switch - # device_type = "l3switch" - device_type = "switch" + device_type = "l3switch" elif "R" in capabilities: device_type = "router" elif "S" in capabilities: @@ -570,7 +545,7 @@ def extend_naming(short_name): return short_name -def create_interface_mapping_dict(mappings): +def create_interface_mapping_dict(mappings, default_mappings): """ Write interface physical to virtual mappings to YAML file Write interface virtual to physical mappings to YAML file @@ -601,7 +576,7 @@ def node_id_start(virtual_topology): return nodes[-1] + 1 -def ext_conn_nodes_create(virtual_topology, draft_topo, node_start): +def ext_conn_nodes_create(virtual_topology, draft_topo, node_start, device_template): y = -1000 for n in draft_topo["nodes"]: device_info = copy.deepcopy(device_template.get("ext_conn")) @@ -638,7 +613,7 @@ def ext_conn_links_create(virtual_topology, draft_topo, link_node_start, link_st link_node_start += 1 -def cml_topology_add_external_connectors_and_links(topo): +def cml_topology_add_external_connectors_and_links(topo, device_template): """ Add an external connected or link to each node management interface """ @@ -647,15 +622,18 @@ def cml_topology_add_external_connectors_and_links(topo): link_node_start = node_start new_topo = copy.deepcopy(topo) - ext_conn_nodes_create(topo, new_topo, node_start) + ext_conn_nodes_create(topo, new_topo, node_start, device_template) ext_conn_links_create(topo, new_topo, link_node_start, link_start) def main(): arguments = dict( devices=dict(required=True, type='list', elements='dict'), + device_template=dict(required=True, type='dict'), + default_mappings=dict(required=True, type='dict'), ext_conn=dict(required=False, type='bool', default=True), - start_from=dict(required=False, type='int', default=2) + start_from=dict(required=False, type='int', default=2), + use_cat9kv=dict(required=False, type='bool', default=False) ) module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) @@ -664,7 +642,10 @@ def main(): remote_device_info_full = {} devices = module.params['devices'] + device_template = module.params['device_template'] + default_mappings = module.params['default_mappings'] start_from = module.params['start_from'] + use_cat9kv = module.params['use_cat9kv'] for device in devices: temp_device_links, remote_device_info = parse_cdp_output(device['cdp'], device, devices) @@ -674,11 +655,11 @@ def main(): device_links.append(link) # now saved newly discovered links devices_with_interface_dict = check_for_and_remove_error_links(device_links) sort_device_interfaces(devices_with_interface_dict) - topology_cml, mappings_cml = cml_topology_create_initial(devices_with_interface_dict, remote_device_info_full, start_from) + topology_cml, mappings_cml = cml_topology_create_initial(devices_with_interface_dict, remote_device_info_full, start_from, device_template, use_cat9kv) cml_topology_add_links(topology_cml, mappings_cml, device_links) if module.params['ext_conn']: - cml_topology_add_external_connectors_and_links(topology_cml) - mappings = create_interface_mapping_dict(mappings_cml) + cml_topology_add_external_connectors_and_links(topology_cml, device_template) + mappings = create_interface_mapping_dict(mappings_cml, default_mappings) module.exit_json(changed=True, topology=topology_cml, mappings=mappings) From 97fe0a3e213134fba6017d5d29e826e567cc6ac4 Mon Sep 17 00:00:00 2001 From: Jason King Date: Wed, 19 Apr 2023 10:48:51 -0700 Subject: [PATCH 016/104] CML lab generation fixes --- playbooks/cml_update_lab.yml | 12 ++++++++++-- plugins/modules/cml_lab.py | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/playbooks/cml_update_lab.yml b/playbooks/cml_update_lab.yml index d3d236b..4a6f564 100644 --- a/playbooks/cml_update_lab.yml +++ b/playbooks/cml_update_lab.yml @@ -11,7 +11,7 @@ inventory_dir: inventory scale: 500 use_cat9kv: False - cml_device_template: + default_cml_device_template: switch: node_definition: iosvl2 ram: 768 @@ -43,7 +43,7 @@ ram: 0 tags: [] # Default interface mapping for CML - cml_default_mappings: + default_cml_default_mappings: Loopback(\\d+): Loopback\\1 Vlan(\\d+): Vlan\\1 tasks: @@ -63,6 +63,14 @@ devices: "{{ groups['network'] | map('extract', hostvars, 'cdp_data') | list }}" run_once: yes + - set_fact: + cml_device_template: "{{ default_cml_device_template }}" + when: cml_device_template is not defined + + - set_fact: + cml_default_mappings: "{{ default_cml_default_mappings }}" + when: cml_default_mappings is not defined + - name: Generate topology ciscops.mdd.cml_lab: devices: "{{ devices }}" diff --git a/plugins/modules/cml_lab.py b/plugins/modules/cml_lab.py index cdbef0b..8872e12 100644 --- a/plugins/modules/cml_lab.py +++ b/plugins/modules/cml_lab.py @@ -144,7 +144,7 @@ def add_interfaces_to_topology(topo_node, device_info, physical_interfaces, use_ "type": "physical" }) counter = 1 - for i in range(24): + for i in range(number_of_interfaces): topo_node["interfaces"].append({ "id": "i{0}".format(counter + 1), "label": "GigabitEthernet1/0/{0}".format(counter), From 878db3e4a523a76914c6a7e959857e4068ea5e0b Mon Sep 17 00:00:00 2001 From: Jason King Date: Wed, 19 Apr 2023 15:42:44 -0700 Subject: [PATCH 017/104] Fixed syntax error in regex --- playbooks/cml_update_lab.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/playbooks/cml_update_lab.yml b/playbooks/cml_update_lab.yml index 4a6f564..1edda96 100644 --- a/playbooks/cml_update_lab.yml +++ b/playbooks/cml_update_lab.yml @@ -44,8 +44,8 @@ tags: [] # Default interface mapping for CML default_cml_default_mappings: - Loopback(\\d+): Loopback\\1 - Vlan(\\d+): Vlan\\1 + Loopback(\d+): Loopback\1 + Vlan(\d+): Vlan\1 tasks: - name: Get CDP data From c1b2fa9fc1a1624b7e89565ef82d0be5631bd82e Mon Sep 17 00:00:00 2001 From: Jason King Date: Wed, 19 Apr 2023 15:43:56 -0700 Subject: [PATCH 018/104] Cat9kv requires 24 ports (for 24-port version) --- plugins/modules/cml_lab.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/modules/cml_lab.py b/plugins/modules/cml_lab.py index 8872e12..c75fc00 100644 --- a/plugins/modules/cml_lab.py +++ b/plugins/modules/cml_lab.py @@ -144,7 +144,8 @@ def add_interfaces_to_topology(topo_node, device_info, physical_interfaces, use_ "type": "physical" }) counter = 1 - for i in range(number_of_interfaces): + # cat9kv *requires* that 24 ports be configured for the 24-port version + for i in range(24): topo_node["interfaces"].append({ "id": "i{0}".format(counter + 1), "label": "GigabitEthernet1/0/{0}".format(counter), From 0ff1371e6284c1a8c6edaf87e2bc23041c7c99e6 Mon Sep 17 00:00:00 2001 From: Jason King Date: Fri, 21 Apr 2023 16:47:26 -0700 Subject: [PATCH 019/104] Improved support for NSO global settings --- roles/nso/defaults/main.yml | 22 ++++++++++++++++++++++ roles/nso/tasks/add_auth_groups.yml | 8 +++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/roles/nso/defaults/main.yml b/roles/nso/defaults/main.yml index 3c24221..a152022 100644 --- a/roles/nso/defaults/main.yml +++ b/roles/nso/defaults/main.yml @@ -29,3 +29,25 @@ nso_package_repos: repo: https://github.com/model-driven-devops/nso-oc-services.git service_list: - mdd +nso_global_settings: + ssh-algorithms: + public-key: + - ssh-ed25519 + - ecdsa-sha2-nistp256 + - ecdsa-sha2-nistp384 + - ecdsa-sha2-nistp521 + - rsa-sha2-512 + - rsa-sha2-256 + - ssh-rsa + - ssh-dss + cipher: + - aes128-gcm@openssh.com + - AEAD_AES_128_GCM + - chacha20-poly1305@openssh.com + - aes256-gcm@openssh.com + - AEAD_AES_256_GCM + - aes128-ctr + - aes192-ctr + - aes256-ctr + - aes128-cbc + - 3des-cbc diff --git a/roles/nso/tasks/add_auth_groups.yml b/roles/nso/tasks/add_auth_groups.yml index e5d1186..1f912a6 100644 --- a/roles/nso/tasks/add_auth_groups.yml +++ b/roles/nso/tasks/add_auth_groups.yml @@ -12,16 +12,14 @@ remote-name: "{{ item.value.remote_name }}" remote-password: "{{ item.value.remote_password }}" loop: "{{ nso_auth_groups | dict2items }}" + no_log: true -- name: Allow Older KEX Devices +- name: Configure global settings cisco.nso.nso_config: url: "{{ nso_url }}" username: "{{ nso_username }}" password: "{{ nso_password }}" data: tailf-ncs:devices: - global-settings: - ssh-algorithms: - public-key: - - 'ssh-rsa' + global-settings: "{{ nso_global_settings }}" register: nso_config_results \ No newline at end of file From 3862486ca2fc5104d2865202b6f7f95bcfb3a671 Mon Sep 17 00:00:00 2001 From: Jason King Date: Tue, 25 Apr 2023 11:29:18 -0700 Subject: [PATCH 020/104] Added truncation of OSPF interfaces --- plugins/filter/intf.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/plugins/filter/intf.py b/plugins/filter/intf.py index 9403eaa..a788696 100644 --- a/plugins/filter/intf.py +++ b/plugins/filter/intf.py @@ -9,7 +9,10 @@ "openconfig-network-instance:id", "openconfig-network-instance:interface", "openconfig-spanning-tree:name", - "openconfig-system-ext:global-interface-name" + "openconfig-system-ext:global-interface-name", + "openconfig-acl:id", + "openconfig-acl:interface", + "openconfig-system-ext:ssh-source-interface" ] @@ -57,13 +60,14 @@ def intf_truncate(data, intf_dict): if "mdd:openconfig" in data: oc_data = data["mdd:openconfig"] - # Truncate interfaces + # Truncate interfaces if "openconfig-interfaces:interfaces" in oc_data and "openconfig-interfaces:interface" in oc_data["openconfig-interfaces:interfaces"]: for interface in oc_data["openconfig-interfaces:interfaces"]["openconfig-interfaces:interface"]: if any(re.match(regex, interface["openconfig-interfaces:name"]) for regex in regex_list): temp_interface_list.append(interface) data_out["mdd:openconfig"]["openconfig-interfaces:interfaces"]["openconfig-interfaces:interface"] = temp_interface_list + # Truncate STP interfaces if "openconfig-spanning-tree:stp" in oc_data and "openconfig-spanning-tree:interfaces" in oc_data["openconfig-spanning-tree:stp"]: for interface in oc_data["openconfig-spanning-tree:stp"]["openconfig-spanning-tree:interfaces"]["openconfig-spanning-tree:interface"]: @@ -72,6 +76,21 @@ def intf_truncate(data, intf_dict): data_out["mdd:openconfig"]["openconfig-spanning-tree:stp"]["openconfig-spanning-tree:interfaces"]["openconfig-spanning-tree:interface"] = \ temp_stp_interface_list + # Truncate OSPF interfaces + if "openconfig-network-instance:network-instances" in oc_data and "openconfig-network-instance:network-instance" in oc_data["openconfig-network-instance:network-instances"]: + for instance in oc_data["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"]: + if "openconfig-network-instance:protocols" in instance: + for protocol in instance["openconfig-network-instance:protocols"]: + if "openconfig-network-instance:ospfv2" in protocol and "openconfig-network-instance:areas" in protocol["openconfig-network-instance:ospfv2"]: + temp_ospf_interface_list = [] + for area in protocol["openconfig-network-instance:ospfv2"]["openconfig-network-instance:areas"]["openconfig-network-instance:area"]: + if "openconfig-network-instance:interfaces" in area: + for interface in area["openconfig-network-instance:interfaces"]["openconfig-network-instance:interface"]: + if any(re.match(regex, interface["openconfig-network-instance:id"]) for regex in regex_list): + temp_ospf_interface_list.append(interface) + data_out["mdd:openconfig"]["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"]["openconfig-network-instance:protocols"][protocol]["openconfig-network-instance:ospfv2"]["openconfig-network-instance:areas"]["openconfig-network-instance:area"][area]["openconfig-network-instance:interfaces"]["openconfig-network-instance:interface"] = temp_ospf_interface_list + + # Truncate network-instance interfaces return data_out From b0d40ca23b37c1e1db310a088b0717cb8afcd5f1 Mon Sep 17 00:00:00 2001 From: m0lass3s Date: Wed, 26 Apr 2023 00:57:37 -1000 Subject: [PATCH 021/104] feat: add checks for MPLS and network instance interfaces Simplify search and replace logic --- plugins/filter/intf.py | 70 ++++++++++++++++++++++++++++++++---------- 1 file changed, 53 insertions(+), 17 deletions(-) diff --git a/plugins/filter/intf.py b/plugins/filter/intf.py index a788696..e0e62f9 100644 --- a/plugins/filter/intf.py +++ b/plugins/filter/intf.py @@ -3,7 +3,7 @@ import re -# The list of keys that will be searched to see is replacement is needed +# The list of keys that will be searched to see if replacement is needed keys_to_replace = [ "openconfig-interfaces:name", "openconfig-network-instance:id", @@ -12,16 +12,21 @@ "openconfig-system-ext:global-interface-name", "openconfig-acl:id", "openconfig-acl:interface", - "openconfig-system-ext:ssh-source-interface" + "openconfig-system-ext:ssh-source-interface", + "openconfig-network-instance:interface-id", + "openconfig-network-instance:index", + "openconfig-network-instance:local-address" + ] -def multi_replace_regex(string, replacements, ignore_case=False, first_match=True): - for pattern, repl in replacements.items(): - string, matches = re.subn(pattern, repl, string, flags=re.I if ignore_case else 0) - if first_match and matches: - return string - return string +def interface_name_replace(original_str, intf_dict): + original_str_split = original_str.split(".") + + if original_str_split[0] in intf_dict: + return intf_dict[original_str_split[0]] + (f".{original_str_split[1]}" if len(original_str_split) > 1 else "") + + return original_str def xlate_value(data, intf_dict): @@ -29,7 +34,7 @@ def xlate_value(data, intf_dict): if isinstance(data, dict): for key in data: if isinstance(data[key], str) and key in keys_to_replace: - data[key] = multi_replace_regex(data[key], intf_dict) + data[key] = interface_name_replace(data[key], intf_dict) else: xlate_value(data[key], intf_dict) elif isinstance(data, list): @@ -64,33 +69,64 @@ def intf_truncate(data, intf_dict): # Truncate interfaces if "openconfig-interfaces:interfaces" in oc_data and "openconfig-interfaces:interface" in oc_data["openconfig-interfaces:interfaces"]: for interface in oc_data["openconfig-interfaces:interfaces"]["openconfig-interfaces:interface"]: - if any(re.match(regex, interface["openconfig-interfaces:name"]) for regex in regex_list): + if interface["openconfig-interfaces:name"].split(".")[0] in intf_dict: temp_interface_list.append(interface) data_out["mdd:openconfig"]["openconfig-interfaces:interfaces"]["openconfig-interfaces:interface"] = temp_interface_list # Truncate STP interfaces if "openconfig-spanning-tree:stp" in oc_data and "openconfig-spanning-tree:interfaces" in oc_data["openconfig-spanning-tree:stp"]: for interface in oc_data["openconfig-spanning-tree:stp"]["openconfig-spanning-tree:interfaces"]["openconfig-spanning-tree:interface"]: - if any(re.match(regex, interface["openconfig-spanning-tree:name"]) for regex in regex_list): + if interface["openconfig-spanning-tree:name"].split(".")[0] in intf_dict: temp_stp_interface_list.append(interface) data_out["mdd:openconfig"]["openconfig-spanning-tree:stp"]["openconfig-spanning-tree:interfaces"]["openconfig-spanning-tree:interface"] = \ temp_stp_interface_list - # Truncate OSPF interfaces + # Truncate network instance OSPF interfaces if "openconfig-network-instance:network-instances" in oc_data and "openconfig-network-instance:network-instance" in oc_data["openconfig-network-instance:network-instances"]: - for instance in oc_data["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"]: + for (instance_index, instance) in enumerate(oc_data["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"]): if "openconfig-network-instance:protocols" in instance: - for protocol in instance["openconfig-network-instance:protocols"]: + for (prot_index, protocol) in enumerate(instance["openconfig-network-instance:protocols"]["openconfig-network-instance:protocol"]): if "openconfig-network-instance:ospfv2" in protocol and "openconfig-network-instance:areas" in protocol["openconfig-network-instance:ospfv2"]: temp_ospf_interface_list = [] - for area in protocol["openconfig-network-instance:ospfv2"]["openconfig-network-instance:areas"]["openconfig-network-instance:area"]: + for (area_index, area) in enumerate(protocol["openconfig-network-instance:ospfv2"]["openconfig-network-instance:areas"]["openconfig-network-instance:area"]): if "openconfig-network-instance:interfaces" in area: for interface in area["openconfig-network-instance:interfaces"]["openconfig-network-instance:interface"]: - if any(re.match(regex, interface["openconfig-network-instance:id"]) for regex in regex_list): + if interface["openconfig-network-instance:id"].split(".")[0] in intf_dict: temp_ospf_interface_list.append(interface) - data_out["mdd:openconfig"]["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"]["openconfig-network-instance:protocols"][protocol]["openconfig-network-instance:ospfv2"]["openconfig-network-instance:areas"]["openconfig-network-instance:area"][area]["openconfig-network-instance:interfaces"]["openconfig-network-instance:interface"] = temp_ospf_interface_list + data_out["mdd:openconfig"]["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"][instance_index][ + "openconfig-network-instance:protocols"]["openconfig-network-instance:protocol"][prot_index]["openconfig-network-instance:ospfv2"][ + "openconfig-network-instance:areas"]["openconfig-network-instance:area"][area_index]["openconfig-network-instance:interfaces"][ + "openconfig-network-instance:interface"] = temp_ospf_interface_list # Truncate network-instance interfaces + if "openconfig-network-instance:network-instances" in oc_data and "openconfig-network-instance:network-instance" in oc_data["openconfig-network-instance:network-instances"]: + for (instance_index, instance) in enumerate(oc_data["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"]): + if "openconfig-network-instance:interfaces" in instance: + temp_instance_interface_list = [] + + for interface in instance["openconfig-network-instance:interfaces"]["openconfig-network-instance:interface"]: + if interface["openconfig-network-instance:id"].split(".")[0] in intf_dict: + temp_instance_interface_list.append(interface) + + data_out["mdd:openconfig"]["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"][instance_index][ + "openconfig-network-instance:interfaces"]["openconfig-network-instance:interface"] = temp_instance_interface_list + + # Truncate network-instance MPLS interfaces + if "openconfig-network-instance:network-instances" in oc_data and "openconfig-network-instance:network-instance" in oc_data["openconfig-network-instance:network-instances"]: + for (instance_index, instance) in enumerate(oc_data["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"]): + if (len(instance.get("openconfig-network-instance:mpls", {}).get("openconfig-network-instance:global", {}).get("openconfig-network-instance:interface-attributes", {}) + .get("openconfig-network-instance:interface", [])) > 0): + temp_mpls_interface_list = [] + + for interface in instance["openconfig-network-instance:mpls"]["openconfig-network-instance:global"]["openconfig-network-instance:interface-attributes"][ + "openconfig-network-instance:interface"]: + if interface["openconfig-network-instance:interface-id"].split(".")[0] in intf_dict: + temp_mpls_interface_list.append(interface) + + data_out["mdd:openconfig"]["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"][instance_index][ + "openconfig-network-instance:mpls"]["openconfig-network-instance:global"]["openconfig-network-instance:interface-attributes"][ + "openconfig-network-instance:interface"] = temp_mpls_interface_list + return data_out From 296832ef9316fa7edb4b40c4fdb39a93c42f4d99 Mon Sep 17 00:00:00 2001 From: Jason King Date: Thu, 27 Apr 2023 12:15:13 -0700 Subject: [PATCH 022/104] Added document start to YAML files --- roles/nso/tasks/update_yaml_data.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/roles/nso/tasks/update_yaml_data.yml b/roles/nso/tasks/update_yaml_data.yml index f19fc13..93ffe70 100644 --- a/roles/nso/tasks/update_yaml_data.yml +++ b/roles/nso/tasks/update_yaml_data.yml @@ -4,7 +4,7 @@ - name: Write Config Data to Device Directory copy: - content: "{{ data | to_nice_yaml(indent=2,sort_keys=False) }}" + content: "---\n{{ data | to_nice_yaml(indent=2,sort_keys=False) }}" dest: "{{ mdd_device_dir }}/config-data.yml" vars: data: "{{ { 'mdd_data': { 'config': nso_device_config['config'] } } }}" @@ -17,7 +17,7 @@ - name: Write OC Data to Device Directory copy: - content: "{{ data | to_nice_yaml(indent=2,sort_keys=False) }}" + content: "---\n{{ data | to_nice_yaml(indent=2,sort_keys=False) }}" dest: "{{ mdd_device_dir }}/oc-{{ (item.key | ansible.builtin.split(':'))[1] }}.yml" with_dict: "{{ oc_data['mdd_data']['mdd:openconfig'] }}" vars: @@ -25,7 +25,7 @@ - name: Write Native Data to Device Directory copy: - content: "{{ data | to_nice_yaml(indent=2,sort_keys=False) }}" + content: "---\n{{ data | to_nice_yaml(indent=2,sort_keys=False) }}" dest: "{{ mdd_device_dir }}/config-remaining.yml" vars: data: "{{ { 'mdd_data': { 'config': oc_data['mdd_data']['config'] } } }}" From 4a731ca5efe356a121080e38697b1caf966f99ca Mon Sep 17 00:00:00 2001 From: Jason King Date: Thu, 27 Apr 2023 14:41:34 -0700 Subject: [PATCH 023/104] Fixed formatting to pass ansible-test --- plugins/filter/intf.py | 65 ++++++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/plugins/filter/intf.py b/plugins/filter/intf.py index e0e62f9..f97ed8f 100644 --- a/plugins/filter/intf.py +++ b/plugins/filter/intf.py @@ -1,8 +1,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -import re - # The list of keys that will be searched to see if replacement is needed keys_to_replace = [ "openconfig-interfaces:name", @@ -22,10 +20,10 @@ def interface_name_replace(original_str, intf_dict): original_str_split = original_str.split(".") - + if original_str_split[0] in intf_dict: return intf_dict[original_str_split[0]] + (f".{original_str_split[1]}" if len(original_str_split) > 1 else "") - + return original_str @@ -78,29 +76,36 @@ def intf_truncate(data, intf_dict): for interface in oc_data["openconfig-spanning-tree:stp"]["openconfig-spanning-tree:interfaces"]["openconfig-spanning-tree:interface"]: if interface["openconfig-spanning-tree:name"].split(".")[0] in intf_dict: temp_stp_interface_list.append(interface) - data_out["mdd:openconfig"]["openconfig-spanning-tree:stp"]["openconfig-spanning-tree:interfaces"]["openconfig-spanning-tree:interface"] = \ - temp_stp_interface_list + (data_out["mdd:openconfig"]["openconfig-spanning-tree:stp"]["openconfig-spanning-tree:interfaces"] + ["openconfig-spanning-tree:interface"]) = temp_stp_interface_list # Truncate network instance OSPF interfaces - if "openconfig-network-instance:network-instances" in oc_data and "openconfig-network-instance:network-instance" in oc_data["openconfig-network-instance:network-instances"]: - for (instance_index, instance) in enumerate(oc_data["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"]): + if "openconfig-network-instance:network-instances" in oc_data and ("openconfig-network-instance:network-instance" in + oc_data["openconfig-network-instance:network-instances"]): + for (instance_index, instance) in enumerate(oc_data["openconfig-network-instance:network-instances"] + ["openconfig-network-instance:network-instance"]): if "openconfig-network-instance:protocols" in instance: for (prot_index, protocol) in enumerate(instance["openconfig-network-instance:protocols"]["openconfig-network-instance:protocol"]): - if "openconfig-network-instance:ospfv2" in protocol and "openconfig-network-instance:areas" in protocol["openconfig-network-instance:ospfv2"]: + if "openconfig-network-instance:ospfv2" in protocol and ("openconfig-network-instance:areas" in + protocol["openconfig-network-instance:ospfv2"]): temp_ospf_interface_list = [] - for (area_index, area) in enumerate(protocol["openconfig-network-instance:ospfv2"]["openconfig-network-instance:areas"]["openconfig-network-instance:area"]): + for (area_index, area) in enumerate(protocol["openconfig-network-instance:ospfv2"]["openconfig-network-instance:areas"] + ["openconfig-network-instance:area"]): if "openconfig-network-instance:interfaces" in area: for interface in area["openconfig-network-instance:interfaces"]["openconfig-network-instance:interface"]: if interface["openconfig-network-instance:id"].split(".")[0] in intf_dict: temp_ospf_interface_list.append(interface) - data_out["mdd:openconfig"]["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"][instance_index][ - "openconfig-network-instance:protocols"]["openconfig-network-instance:protocol"][prot_index]["openconfig-network-instance:ospfv2"][ - "openconfig-network-instance:areas"]["openconfig-network-instance:area"][area_index]["openconfig-network-instance:interfaces"][ - "openconfig-network-instance:interface"] = temp_ospf_interface_list + (data_out["mdd:openconfig"]["openconfig-network-instance:network-instances"] + ["openconfig-network-instance:network-instance"][instance_index]["openconfig-network-instance:protocols"] + ["openconfig-network-instance:protocol"][prot_index]["openconfig-network-instance:ospfv2"] + ["openconfig-network-instance:areas"]["openconfig-network-instance:area"][area_index] + ["openconfig-network-instance:interfaces"]["openconfig-network-instance:interface"]) = temp_ospf_interface_list # Truncate network-instance interfaces - if "openconfig-network-instance:network-instances" in oc_data and "openconfig-network-instance:network-instance" in oc_data["openconfig-network-instance:network-instances"]: - for (instance_index, instance) in enumerate(oc_data["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"]): + if "openconfig-network-instance:network-instances" in oc_data and ("openconfig-network-instance:network-instance" in + oc_data["openconfig-network-instance:network-instances"]): + for (instance_index, instance) in enumerate(oc_data["openconfig-network-instance:network-instances"] + ["openconfig-network-instance:network-instance"]): if "openconfig-network-instance:interfaces" in instance: temp_instance_interface_list = [] @@ -108,25 +113,29 @@ def intf_truncate(data, intf_dict): if interface["openconfig-network-instance:id"].split(".")[0] in intf_dict: temp_instance_interface_list.append(interface) - data_out["mdd:openconfig"]["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"][instance_index][ - "openconfig-network-instance:interfaces"]["openconfig-network-instance:interface"] = temp_instance_interface_list - + (data_out["mdd:openconfig"]["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"] + [instance_index]["openconfig-network-instance:interfaces"]["openconfig-network-instance:interface"]) = temp_instance_interface_list + # Truncate network-instance MPLS interfaces - if "openconfig-network-instance:network-instances" in oc_data and "openconfig-network-instance:network-instance" in oc_data["openconfig-network-instance:network-instances"]: - for (instance_index, instance) in enumerate(oc_data["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"]): - if (len(instance.get("openconfig-network-instance:mpls", {}).get("openconfig-network-instance:global", {}).get("openconfig-network-instance:interface-attributes", {}) + if "openconfig-network-instance:network-instances" in oc_data and ("openconfig-network-instance:network-instance" in + oc_data["openconfig-network-instance:network-instances"]): + for (instance_index, instance) in enumerate(oc_data["openconfig-network-instance:network-instances"] + ["openconfig-network-instance:network-instance"]): + if (len(instance.get("openconfig-network-instance:mpls", {}) + .get("openconfig-network-instance:global", {}) + .get("openconfig-network-instance:interface-attributes", {}) .get("openconfig-network-instance:interface", [])) > 0): temp_mpls_interface_list = [] - for interface in instance["openconfig-network-instance:mpls"]["openconfig-network-instance:global"]["openconfig-network-instance:interface-attributes"][ - "openconfig-network-instance:interface"]: + for interface in (instance["openconfig-network-instance:mpls"]["openconfig-network-instance:global"] + ["openconfig-network-instance:interface-attributes"]["openconfig-network-instance:interface"]): if interface["openconfig-network-instance:interface-id"].split(".")[0] in intf_dict: temp_mpls_interface_list.append(interface) - data_out["mdd:openconfig"]["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"][instance_index][ - "openconfig-network-instance:mpls"]["openconfig-network-instance:global"]["openconfig-network-instance:interface-attributes"][ - "openconfig-network-instance:interface"] = temp_mpls_interface_list - + (data_out["mdd:openconfig"]["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"] + [instance_index]["openconfig-network-instance:mpls"]["openconfig-network-instance:global"] + ["openconfig-network-instance:interface-attributes"]["openconfig-network-instance:interface"]) = temp_mpls_interface_list + return data_out From 9ad768c2fc114d13123951b3b51d8c0fc9f3b5c3 Mon Sep 17 00:00:00 2001 From: Jason King Date: Thu, 27 Apr 2023 14:41:56 -0700 Subject: [PATCH 024/104] Updated 'all' target --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d513456..6352afb 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ help: ## Display help printf "\033[36m%-30s\033[0m %s\n", $$1, $$NF \ }' $(MAKEFILE_LIST) -all: test build publish ## Setup python-viptela env and run tests +all: clean build test ## Setup python-viptela env and run tests $(VENV): $(VENV_BIN)/activate ## Build virtual environment From 8d828ee693fa10257b464db08981aa6e20b0abb8 Mon Sep 17 00:00:00 2001 From: Jason King Date: Thu, 27 Apr 2023 14:42:41 -0700 Subject: [PATCH 025/104] Updated galaxy version to 1.2.6 --- galaxy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/galaxy.yml b/galaxy.yml index 50bc833..e487848 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -8,7 +8,7 @@ namespace: ciscops name: mdd # The version of the collection. Must be compatible with semantic versioning -version: 1.2.5 +version: 1.2.6 # The path to the Markdown (.md) readme file. This path is relative to the root of the collection readme: README.md From 5bc7118b1996c094b8948a05633fb5208649900e Mon Sep 17 00:00:00 2001 From: m0lass3s Date: Thu, 27 Apr 2023 17:14:50 -1000 Subject: [PATCH 026/104] refactor: use regex for interface search and replace --- plugins/filter/intf.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/plugins/filter/intf.py b/plugins/filter/intf.py index f97ed8f..0ec487d 100644 --- a/plugins/filter/intf.py +++ b/plugins/filter/intf.py @@ -1,6 +1,8 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +import re + # The list of keys that will be searched to see if replacement is needed keys_to_replace = [ "openconfig-interfaces:name", @@ -14,16 +16,20 @@ "openconfig-network-instance:interface-id", "openconfig-network-instance:index", "openconfig-network-instance:local-address" - ] +def found_full_match(string, intf_dict): + for pattern in intf_dict: + if bool(re.fullmatch(pattern, string)): return pattern -def interface_name_replace(original_str, intf_dict): - original_str_split = original_str.split(".") + return None - if original_str_split[0] in intf_dict: - return intf_dict[original_str_split[0]] + (f".{original_str_split[1]}" if len(original_str_split) > 1 else "") +def interface_name_replace(original_str, intf_dict): + pattern = found_full_match(original_str.split(".")[0], intf_dict) + if pattern: + return re.sub(pattern, intf_dict[pattern], original_str) + return original_str @@ -67,14 +73,14 @@ def intf_truncate(data, intf_dict): # Truncate interfaces if "openconfig-interfaces:interfaces" in oc_data and "openconfig-interfaces:interface" in oc_data["openconfig-interfaces:interfaces"]: for interface in oc_data["openconfig-interfaces:interfaces"]["openconfig-interfaces:interface"]: - if interface["openconfig-interfaces:name"].split(".")[0] in intf_dict: + if found_full_match(interface["openconfig-interfaces:name"].split(".")[0], intf_dict): temp_interface_list.append(interface) data_out["mdd:openconfig"]["openconfig-interfaces:interfaces"]["openconfig-interfaces:interface"] = temp_interface_list # Truncate STP interfaces if "openconfig-spanning-tree:stp" in oc_data and "openconfig-spanning-tree:interfaces" in oc_data["openconfig-spanning-tree:stp"]: for interface in oc_data["openconfig-spanning-tree:stp"]["openconfig-spanning-tree:interfaces"]["openconfig-spanning-tree:interface"]: - if interface["openconfig-spanning-tree:name"].split(".")[0] in intf_dict: + if found_full_match(interface["openconfig-spanning-tree:name"].split(".")[0], intf_dict): temp_stp_interface_list.append(interface) (data_out["mdd:openconfig"]["openconfig-spanning-tree:stp"]["openconfig-spanning-tree:interfaces"] ["openconfig-spanning-tree:interface"]) = temp_stp_interface_list @@ -93,7 +99,7 @@ def intf_truncate(data, intf_dict): ["openconfig-network-instance:area"]): if "openconfig-network-instance:interfaces" in area: for interface in area["openconfig-network-instance:interfaces"]["openconfig-network-instance:interface"]: - if interface["openconfig-network-instance:id"].split(".")[0] in intf_dict: + if found_full_match(interface["openconfig-network-instance:id"].split(".")[0], intf_dict): temp_ospf_interface_list.append(interface) (data_out["mdd:openconfig"]["openconfig-network-instance:network-instances"] ["openconfig-network-instance:network-instance"][instance_index]["openconfig-network-instance:protocols"] @@ -110,7 +116,7 @@ def intf_truncate(data, intf_dict): temp_instance_interface_list = [] for interface in instance["openconfig-network-instance:interfaces"]["openconfig-network-instance:interface"]: - if interface["openconfig-network-instance:id"].split(".")[0] in intf_dict: + if found_full_match(interface["openconfig-network-instance:id"].split(".")[0], intf_dict): temp_instance_interface_list.append(interface) (data_out["mdd:openconfig"]["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"] @@ -129,7 +135,7 @@ def intf_truncate(data, intf_dict): for interface in (instance["openconfig-network-instance:mpls"]["openconfig-network-instance:global"] ["openconfig-network-instance:interface-attributes"]["openconfig-network-instance:interface"]): - if interface["openconfig-network-instance:interface-id"].split(".")[0] in intf_dict: + if found_full_match(interface["openconfig-network-instance:interface-id"].split(".")[0], intf_dict): temp_mpls_interface_list.append(interface) (data_out["mdd:openconfig"]["openconfig-network-instance:network-instances"]["openconfig-network-instance:network-instance"] From bb4eab33792205a40fa237e5087fb455d990f0d5 Mon Sep 17 00:00:00 2001 From: Jason King Date: Fri, 28 Apr 2023 13:57:02 -0700 Subject: [PATCH 027/104] Use single quotes for data since data from NSO may contain double quotes --- roles/nso/templates/update-report.yml.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/nso/templates/update-report.yml.j2 b/roles/nso/templates/update-report.yml.j2 index 55365d2..5072a34 100644 --- a/roles/nso/templates/update-report.yml.j2 +++ b/roles/nso/templates/update-report.yml.j2 @@ -22,5 +22,5 @@ consolidated_report: {% for entry in consolidated_report %} - hosts: "{{ entry.hosts }}" - data: "{{ entry.data }}" + data: '{{ entry.data }}' {% endfor %} \ No newline at end of file From c848e5a8ce9bd34eaa9686eb97ece8562ef5c3a1 Mon Sep 17 00:00:00 2001 From: Jason King Date: Thu, 11 May 2023 14:21:49 -0700 Subject: [PATCH 028/104] Fixed error in l3switch day0 config --- plugins/modules/cml_lab.py | 71 +++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/plugins/modules/cml_lab.py b/plugins/modules/cml_lab.py index c75fc00..7361dda 100644 --- a/plugins/modules/cml_lab.py +++ b/plugins/modules/cml_lab.py @@ -337,7 +337,76 @@ def cml_topology_create_initial(devices_with_interface_dict, remote_device_info_ ip address dhcp no shutdown ! -interface GigabitEthernet1/0/1-24 +interface GigabitEthernet1/0/1 + no switchport +! +interface GigabitEthernet1/0/2 + no switchport +! +interface GigabitEthernet1/0/3 + no switchport +! +interface GigabitEthernet1/0/4 + no switchport +! +interface GigabitEthernet1/0/5 + no switchport +! +interface GigabitEthernet1/0/6 + no switchport +! +interface GigabitEthernet1/0/7 + no switchport +! +interface GigabitEthernet1/0/8 + no switchport +! +interface GigabitEthernet1/0/9 + no switchport +! +interface GigabitEthernet1/0/10 + no switchport +! +interface GigabitEthernet1/0/11 + no switchport +! +interface GigabitEthernet1/0/12 + no switchport +! +interface GigabitEthernet1/0/13 + no switchport +! +interface GigabitEthernet1/0/14 + no switchport +! +interface GigabitEthernet1/0/15 + no switchport +! +interface GigabitEthernet1/0/16 + no switchport +! +interface GigabitEthernet1/0/17 + no switchport +! +interface GigabitEthernet1/0/18 + no switchport +! +interface GigabitEthernet1/0/19 + no switchport +! +interface GigabitEthernet1/0/20 + no switchport +! +interface GigabitEthernet1/0/21 + no switchport +! +interface GigabitEthernet1/0/22 + no switchport +! +interface GigabitEthernet1/0/23 + no switchport +! +interface GigabitEthernet1/0/24 no switchport ! no ip http server From 1a40163d61c6ea9264b22f74fd55102c5b70176f Mon Sep 17 00:00:00 2001 From: Jason King Date: Thu, 11 May 2023 14:22:10 -0700 Subject: [PATCH 029/104] Fixed ansible-test errors --- plugins/filter/intf.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/filter/intf.py b/plugins/filter/intf.py index 0ec487d..f178753 100644 --- a/plugins/filter/intf.py +++ b/plugins/filter/intf.py @@ -18,18 +18,21 @@ "openconfig-network-instance:local-address" ] + def found_full_match(string, intf_dict): for pattern in intf_dict: - if bool(re.fullmatch(pattern, string)): return pattern + if bool(re.fullmatch(pattern, string)): + return pattern return None + def interface_name_replace(original_str, intf_dict): pattern = found_full_match(original_str.split(".")[0], intf_dict) if pattern: return re.sub(pattern, intf_dict[pattern], original_str) - + return original_str From 79a535ec25552602088c10f0ab72db591e430da8 Mon Sep 17 00:00:00 2001 From: Jason King Date: Thu, 11 May 2023 14:23:07 -0700 Subject: [PATCH 030/104] Updated to Draft202012Validator --- plugins/modules/data_validation.py | 35 ++---------------------------- 1 file changed, 2 insertions(+), 33 deletions(-) diff --git a/plugins/modules/data_validation.py b/plugins/modules/data_validation.py index d11403b..b6e1a01 100644 --- a/plugins/modules/data_validation.py +++ b/plugins/modules/data_validation.py @@ -78,22 +78,13 @@ IPADDRESS_IMPORT_ERROR = 0 try: - from jsonschema import Draft7Validator, validators - from jsonschema.exceptions import ValidationError + from jsonschema import Draft202012Validator except ImportError: HAS_JSONSCHEMA = False JSONSCHEMA_IMPORT_ERROR = traceback.format_exc() else: HAS_JSONSCHEMA = True -try: - import ipaddress -except ImportError: - HAS_IPADDRESS = False - IPADDRESS_IMPORT_ERROR = traceback.format_exc() -else: - HAS_IPADDRESS = True - try: import yaml except ImportError: @@ -103,26 +94,8 @@ HAS_YAML = True -def in_subnet(validator, value, instance, schema): - if not ipaddress.ip_address(instance) in ipaddress.ip_network(value): - yield ValidationError("{0} not in subnet {1}".format(instance, value)) - - -def is_ip_address(checker, instance): - try: - ipaddress.ip_address(instance) - except ValueError: - return False - return True - - def validate_schema(data, schema): - Draft7Validator.META_SCHEMA['definitions']['simpleTypes']['enum'].append('ipaddress') - all_validators = dict(Draft7Validator.VALIDATORS) - all_validators['in_subnet'] = in_subnet - type_checker = Draft7Validator.TYPE_CHECKER.redefine_many({"ipaddress": is_ip_address}) - MDDValidator = validators.extend(Draft7Validator, type_checker=type_checker, validators=all_validators) - mdd_validator = MDDValidator(schema=schema) + mdd_validator = Draft202012Validator(schema=schema) errors = mdd_validator.iter_errors(data) error_list = [] for error in errors: @@ -144,10 +117,6 @@ def main(): # Needs: from ansible.module_utils.basic import missing_required_lib module.fail_json(msg=missing_required_lib('jsonschema'), exception=JSONSCHEMA_IMPORT_ERROR) - if not HAS_IPADDRESS: - # Needs: from ansible.module_utils.basic import missing_required_lib - module.fail_json(msg=missing_required_lib('ipaddress'), exception=IPADDRESS_IMPORT_ERROR) - if not HAS_YAML: # Needs: from ansible.module_utils.basic import missing_required_lib module.fail_json(msg=missing_required_lib('yaml'), exception=IPADDRESS_IMPORT_ERROR) From 04e15777a34044e9ae96659a4916061eea448334 Mon Sep 17 00:00:00 2001 From: Jason King Date: Wed, 17 May 2023 16:35:26 -0700 Subject: [PATCH 031/104] Renamed throttle variable to avoid conflict with Ansible built-in --- playbooks/nso_update_data.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/playbooks/nso_update_data.yml b/playbooks/nso_update_data.yml index 2a217db..ac14872 100644 --- a/playbooks/nso_update_data.yml +++ b/playbooks/nso_update_data.yml @@ -7,7 +7,7 @@ - ciscops.mdd.data vars: dry_run: true - throttle: 10 + workers: 10 tasks: - include_role: name: ciscops.mdd.nso @@ -15,7 +15,7 @@ - name: Update OC Data when: ('oc' in mdd_data_types) - throttle: "{{ throttle }}" + throttle: "{{ workers }}" block: # - name: Combine Device Data with OC Data # ansible.builtin.set_fact: @@ -42,7 +42,7 @@ - name: Update Config Data when: ('config' in mdd_data_types) and not ('oc' in mdd_data_types) - throttle: "{{ throttle }}" + throttle: "{{ workers }}" block: - name: Get Device Data ansible.builtin.include_role: From 3425c243e268d0bcda6d598fe44d593fbdc36690 Mon Sep 17 00:00:00 2001 From: Jason King Date: Wed, 17 May 2023 16:38:21 -0700 Subject: [PATCH 032/104] Fixes for mdd_combine --- plugins/filter/data.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/filter/data.py b/plugins/filter/data.py index df0ae02..0155add 100644 --- a/plugins/filter/data.py +++ b/plugins/filter/data.py @@ -15,7 +15,7 @@ # the list to a hash, then merge the hash. If there is not match, the list # is replaced. list_key_map = { - "openconfig-network-instance:network-instance": "openconfig-network-instance:name", + "openconfig-network-instance:network-instance$": "openconfig-network-instance:name", "openconfig-network-instance:vlan": "openconfig-network-instance:vlan-id", "^mdd:openconfig:openconfig-interfaces:interfaces:openconfig-interfaces:interface": "openconfig-interfaces:name", ":openconfig-interfaces:interface$": "openconfig-network-instance:id", @@ -150,7 +150,7 @@ def merge_hash(x, y, path, recursive=True, list_merge='replace'): if path == '': path = key else: - path = ":".join([path, key]) + path = ":".join([str(item) for item in [path, key]]) # if both x's element and y's element are dicts # recursively "combine" them or override x's with y's element From 952dfe06aa701b3cbc403f6c387495479e4f8142 Mon Sep 17 00:00:00 2001 From: Jason King Date: Thu, 25 May 2023 12:15:12 -0400 Subject: [PATCH 033/104] Use localhost for nso_init --- playbooks/nso_init.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/playbooks/nso_init.yml b/playbooks/nso_init.yml index 431574e..4012a70 100644 --- a/playbooks/nso_init.yml +++ b/playbooks/nso_init.yml @@ -1,5 +1,4 @@ -- hosts: nso - connection: local +- hosts: localhost gather_facts: no roles: - ciscops.mdd.nso From c5f9f2c8ed1955feca014f60469db6258deab4d2 Mon Sep 17 00:00:00 2001 From: Jason King Date: Thu, 25 May 2023 12:24:38 -0400 Subject: [PATCH 034/104] Fixes to NSO role --- playbooks/nso_init.yml | 6 +++++- roles/nso/tasks/install_packages.yml | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/playbooks/nso_init.yml b/playbooks/nso_init.yml index 4012a70..1e0f31d 100644 --- a/playbooks/nso_init.yml +++ b/playbooks/nso_init.yml @@ -1,7 +1,11 @@ -- hosts: localhost +- hosts: nso + connection: local gather_facts: no roles: - ciscops.mdd.nso + vars: + ansible_python_interpreter: "{{ hostvars['localhost'].ansible_python_interpreter}}" + tasks: - name: Add NSO Auth Groups include_role: diff --git a/roles/nso/tasks/install_packages.yml b/roles/nso/tasks/install_packages.yml index edc31a4..138ad7d 100644 --- a/roles/nso/tasks/install_packages.yml +++ b/roles/nso/tasks/install_packages.yml @@ -38,6 +38,8 @@ dest: "/tmp/{{ item.name }}" loop: "{{ nso_package_repos }}" connection: local + vars: + ansible_python_interpreter: "{{ hostvars['localhost'].ansible_python_interpreter}}" - name: Synchronize models to packages directory ansible.posix.synchronize: From e11d475328c53a090bdaa29d0254626464d9a8bd Mon Sep 17 00:00:00 2001 From: Jason King Date: Thu, 25 May 2023 14:42:55 -0400 Subject: [PATCH 035/104] Update galaxy.yml --- galaxy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/galaxy.yml b/galaxy.yml index e487848..50bc833 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -8,7 +8,7 @@ namespace: ciscops name: mdd # The version of the collection. Must be compatible with semantic versioning -version: 1.2.6 +version: 1.2.5 # The path to the Markdown (.md) readme file. This path is relative to the root of the collection readme: README.md From 36d7eb49302cb793f18a9f4d9f552bde9d8784fc Mon Sep 17 00:00:00 2001 From: Paul <> Date: Wed, 31 May 2023 16:19:23 -0400 Subject: [PATCH 036/104] Inital commit of elevate_configs code to branch --- playbooks/elevate_configs.yml | 59 ++++ plugins/modules/elevate_configs.py | 472 +++++++++++++++++++++++++++++ 2 files changed, 531 insertions(+) create mode 100644 playbooks/elevate_configs.yml create mode 100644 plugins/modules/elevate_configs.py diff --git a/playbooks/elevate_configs.yml b/playbooks/elevate_configs.yml new file mode 100644 index 0000000..8e13962 --- /dev/null +++ b/playbooks/elevate_configs.yml @@ -0,0 +1,59 @@ +--- +- name: elevate configs + hosts: localhost + gather_facts: false + roles: + - ciscops.mdd.data + vars_prompt: + - name: file_level_input + prompt: What file level would you like to elevate at? + private: false + + - name: is_test_run_input + prompt: Would you like to see the results before committing? (yes/no)? + private: false + + tasks: + - name: Convert is_test_run to boolean + set_fact: + is_test_run: "{{ is_test_run_input | bool }}" + - name: Convert file_level to boolean + set_fact: + file_level: "{{ file_level_input | int }}" + + - name: elevate + elevate_configs: + mdd_data_dir: "{{ mdd_data_root }}" + mdd_data_patterns: "{{ mdd_data_patterns }}" + file_level: "{{ file_level }}" + is_test_run: "{{ is_test_run }}" + register: elevate_result + + - debug: + var: elevate_result.debug + + - pause: + prompt: "Is this result okay? (yes/no)" + echo: yes + register: result + when: is_test_run == true + - set_fact: + is_ok_continue: false + - set_fact: + is_ok_continue: "{{ result.user_input | bool }}" + when: is_test_run == true + + - name: Delete created files + file: + path: "{{ item }}" + state: absent + with_items: "{{ elevate_result.files_created }}" + + - name: elevate + elevate_configs: + mdd_data_dir: "{{ mdd_data_root }}" + mdd_data_patterns: "{{ mdd_data_patterns }}" + file_level: "{{ file_level }}" + is_test_run: false + register: result + when: is_ok_continue == true diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py new file mode 100644 index 0000000..3c9c414 --- /dev/null +++ b/plugins/modules/elevate_configs.py @@ -0,0 +1,472 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2023 Cisco and/or its affiliates. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see http://www.gnu.org/licenses/. +# + +#TODO: Write test cases + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +ANSIBLE_METADATA = {'metadata_version': '1.1', 'status': ['preview'], 'supported_by': 'community'} + +DOCUMENTATION = r""" +--- +module: elevate_configs +short_description: elevates common configs in a network +description: + - elevates any common configs to the highest level of commonality in a directory +author: + - Kris Stickney (@kstickne) + - Paul Pajerski (@ppajersk) +options: + mdd_data_dir: + description: The directory of the mdd data + - When using this, always set the input to "{{ mdd_data_root }}" in the playbook + - Like this mdd_data_dir: "{{ mdd_data_root }}" + required: true + type: str +""" + +EXAMPLES = r""" +- name: Elevate configs + hosts: localhost + gather_facts: false + roles: + - ciscops.mdd.data + tasks: + - name: elevate + elevate_configs: + mdd_data_dir: "{{ mdd_data_root }}" + register: result + - debug: + var: result.debug +""" + +import os +from fnmatch import fnmatch +import yaml +from ansible.module_utils.basic import AnsibleModule + +debug = [] # global variable for debugging +FILES_CREATED = False # global variable for determining if anything was actually elevated +files_created = [] + +class Elevate: + def __init__(self, mdd_data_dir, mdd_data_patterns, file_level, is_test_run): + self.mdd_data_dir = mdd_data_dir + self.mdd_data_patterns = mdd_data_patterns + self.file_level = file_level # we need to add one so that level 1 in playbook will correspond with with keys under mdd_data + self.is_test_run = is_test_run + self.file_pattern = '' + self.device_tag = '' + self.separator = '__*__' + self.files_created = [] + self.at_bottom_dir = False + self.elevate() + + def clean_dictionary(self, dictionary : dict) -> None: + """gets rid of unnecessary keys""" + parent_keys = [] + self.clean_dictionary_helper(parent_keys, dictionary, dictionary) + + def clean_dictionary_helper(self, parent_keys : list, parent_dictionary : dict, child_dictionary : dict) -> None: + """Recursive helper function for clean_dictionary()""" + + for key, value in list(child_dictionary.items()): + if key == "tags": + # Remove the tags + del child_dictionary[key] + + if key in ('hosts', 'children'): + # Move the value one up in the dictionary + parent_dictionary[parent_keys[-1]] = value + + if isinstance(value, dict): + # Go through and clean the lower dictionarys + parent_keys.append(key) + self.clean_dictionary_helper(parent_keys, child_dictionary, value) + parent_keys.pop() + + + def unflatten_dict(self, flattened_dictionary : dict) -> dict: + """Takes a flattened dictionary and converts it back to a nested dictionary based on the levels indicated in the keys""" + + if not bool(flattened_dictionary): + return {} + + result = {} + for key, value in flattened_dictionary.items(): + parts = key.split(self.separator) + current_dict = result + + for part in parts[:-1]: + if part not in current_dict: + current_dict[part] = {} + current_dict = current_dict[part] + + current_dict[parts[-1]] = value + + return result + + + def flatten_dict(self, dictionary : dict, prefix : str = '') -> dict: + """Takes a nested dictionary and convertes it to a single-depth dictionary with keys indicating the levels""" + + flattened = {} + for key, value in dictionary.items(): + if isinstance(value, dict) and bool(value): + flattened.update(self.flatten_dict(value, prefix + key + self.separator)) + else: + flattened[prefix + key] = value + return flattened + + + def find_common_key_value_pairs(self, dicts : list) -> dict: + """Find common keys between a list of dictionaries""" + + if not bool(dicts): + return {} + + common_pairs = self.flatten_dict(dicts[0]) + + for dictionary in dicts[1:]: + flattened_dict = self.flatten_dict(dictionary) + common_pairs = self.intersect_dicts(common_pairs, flattened_dict) + + return common_pairs + + + def intersect_dicts(self, dict1 : dict, dict2 : dict) -> dict: + """Finds the intersection between two dictionaries""" + + intersection = {} + for key in dict1: + if key in dict2 and dict1[key] == dict2[key]: + intersection[key] = dict1[key] + return intersection + + + def find_common_configs(self, configs: list) -> dict: + """Returns the common configs""" + + return self.unflatten_dict(self.find_common_key_value_pairs(configs)) + + + def extract_keys_recursive(self, dictionary : dict, level : int, current_level : int = 0, parent_keys : str = "") -> list: + """Returns a list of dictionaries with the keys being a string combination of the parent keys + and the value being the level's value. + If the level depth is larger than the nested dictionary's depth, it stops at the lowest level""" + + keys = [] + if current_level == level: + for key in dictionary: + new_key = parent_keys + self.separator + key if parent_keys else key + keys.append({'key': new_key, 'depth': current_level, 'value' : dictionary[key]}) + return keys + + for key, value in dictionary.items(): + if isinstance(value, dict) and value != {}: + new_parent_keys = parent_keys + self.separator + key if parent_keys else key + keys.extend(self.extract_keys_recursive(value, level, current_level + 1, new_parent_keys)) + elif current_level < level: + new_key = parent_keys + self.separator + key if parent_keys else key + keys.append({'key': new_key, 'depth': current_level, 'value' : dictionary[key]}) + + return keys + + def elevate_level(self, rel_path : str) -> None: + """Finds common configs in a directory's child directories and elevates them to the current directory""" + + ## How this function operates + # for each dir (given by dictionary? or can just get all dirs - will there be extra?) in path: + # get all yml files + # put into one yml file in path (Put all hq in one file, or just all hq-rt1 in one?) + # compare files + # delete similar configs + # make elevated config files + global FILES_CREATED + + if rel_path == "": # don't iterate through top level directory + return + + configs = [] + changed_files = {} + ignored_msgs = [] + path = os.path.join(self.mdd_data_dir, rel_path) + + # iterate through each child dir + for file in os.scandir(path): + if not file.is_dir(): # only want directories #TODO: need to check if dir in network? + continue + + # if not fnmatch(file.name, "*-" + self.device_tag + "*"): # For switches + # continue + + # get all yml config files and put into one dictionary + config = {} + contains_yml_files = False + for child_file in os.scandir(file.path): + + if not fnmatch(child_file.name, self.file_pattern): + continue + + contains_yml_files = True + with open(child_file.path, 'r', encoding='utf-8') as file: + data = self.flatten_dict(yaml.safe_load(file)) + config = self.flatten_dict(config) + config.update(data) + config = self.unflatten_dict(config) + + changed_files[child_file.path] = { 'data': data, 'filename': child_file.name } + + if bool(config): + configs.append(config) + + if not contains_yml_files: + ignored_msgs.append(f" Ignoring {file.name} Reason: Does not contain any files matching the patterns: {self.mdd_data_patterns}") # if directory contains no oc files + + # get common configs + result = self.find_common_configs(configs) + + # Delete common configs from lower config files + flattened_result = self.flatten_dict(result) + + used_paths = [] + used_devices = [] + final_message = {} + for file_path, config in changed_files.items(): + has_changed = False + used_configs = [] + config_data = self.flatten_dict(config['data']) + + if not self.is_test_run or (self.is_test_run and not self.at_bottom_dir): + # only delete configs if not a test run or not at the bottom directory during a test run + # checking for bottom directory because if user does not like the update, can just delete the elevated configs files + # but don't want to have to go back and re-input what we took out from the original config files + + # delete common configs + for key in flattened_result: + if key in config_data: # remove any elevated configs + has_changed = True + del config_data[key] + + # empty - delete file + if not bool(config_data): + os.remove(file_path) + else: + # just overwrite old files with updated data + with open(file_path, 'w') as file: + file.write("---\n") + yaml.safe_dump(self.unflatten_dict(config_data), file, sort_keys=False) + + file_path_cleaned = file_path.replace(config['filename'], "") + device_name = file_path_cleaned.split('/')[-2] + + # if changed, make a printout explaining elevation changes + if has_changed: + file_path_cleaned = '/'.join(file_path_cleaned.split('/')[:-2] + ['']) + directory_cleaned = file_path_cleaned.split('/')[-2] + + if file_path_cleaned not in used_paths: + used_paths.append(file_path_cleaned) + final_message.update({ f"{file_path_cleaned}": f"Configs for {directory_cleaned} level" }) + + if device_name not in used_devices: + used_devices.append(device_name) + if directory_cleaned in final_message.keys(): + message_value = final_message[directory_cleaned] + message_value += f", {device_name}" + final_message[directory_cleaned] = message_value + else: + final_message.update({ f"{directory_cleaned}" : f" Configs elevated to ({directory_cleaned}) level from: {device_name}" }) + + if config['filename'] not in used_configs: + elevate_type = "Elevated parts of file " + if not bool(config_data): + elevate_type = "Elevated entire file " + + used_configs.append(config['filename']) + final_message.update({ f"{directory_cleaned}_{config['filename']}" : f" {elevate_type}{config['filename']}" }) + else: + append_msg = final_message[directory_cleaned] + append_msg += f", {device_name}" + final_message[directory_cleaned] = append_msg + + for key, message in final_message.items(): + debug.append(message) + + + # make into separate config files + if bool(result): + debug.append(f"file level: {self.file_level}") + + list_of_keys = self.extract_keys_recursive(result, self.file_level) + sorted_keys = sorted(list_of_keys, key=lambda x: x['depth']) + + # debug.append("") + # for key in sorted_keys: + # debug.append(key['key'] + " " + str(key['depth'])) + # debug.append("") + + # Remove duplicate top level keys so file names are shortened + keys_hierarchies_simplified = [key_dict['key'].split(self.separator) for key_dict in sorted_keys] + self.remove_duplicates(keys_hierarchies_simplified) + + # create separate files + count = 0 + for key_dict, keys_hierarchy in zip(sorted_keys, keys_hierarchies_simplified): + FILES_CREATED = True + keys_hierarchy_dict = key_dict['key'].split(self.separator) + data = self.create_nested_dict(keys_hierarchy_dict, key_dict['value']) + + filename = "-".join(key.rsplit(':', 1)[-1] for key in keys_hierarchy) + + file_parts = self.file_pattern.split('*') + file_path = f"{path}/{file_parts[0]}{filename}{file_parts[1]}" + + debug.append(f"creating file {filename}") + self.files_created.append(file_path) + with open(file_path, 'w') as file: + file.write("---\n") + yaml.safe_dump(data, file, sort_keys=False) + + count += 1 + + if FILES_CREATED: + for message in ignored_msgs: + debug.append(message) + debug.append("") + + + def get_parent_path(self, parent_keys : list) -> None: + """Returns absolute path for file based on the list""" + + path = "" + for key in parent_keys: + path += "/" + key + return path[1:] + + + def iterate_directory(self, child_dict : dict) -> None: + """Iterates through the network's directory from bottom up""" + + parent_keys = [] + hit_bottom_dir = False + self.iterate_directory_helper(child_dict, parent_keys, hit_bottom_dir) + + + def iterate_directory_helper(self, child_dict : dict, parent_keys : list, hit_bottom_dir : bool) -> None: + """Recursive function helper for iterate_directory()""" + + for key, value in child_dict.items(): + if isinstance(value, dict) and not bool(value) and not hit_bottom_dir: + # means is empty and therefore hit bottom directory + hit_bottom_dir = True + self.at_bottom_dir = True + elif not hit_bottom_dir: + # continue till hit bottom dir + parent_keys.append(key) + self.iterate_directory_helper(value, parent_keys, hit_bottom_dir) # iterate through child dictionaries + parent_keys.pop() + hit_bottom_dir = False + self.elevate_level(self.get_parent_path(parent_keys)) + self.at_bottom_dir = False + + + def generate_directory_structure(self, path : str) -> dict: + """Generates a dirctory structure in the form of a dictionary from a given path""" + result = {} + if os.path.isdir(path): + files = os.listdir(path) + for file in files: + sub_path = os.path.join(path, file) + if os.path.isdir(sub_path): + result[file] = self.generate_directory_structure(sub_path) + return result + + + def create_nested_dict(self, keys : list, value : any) -> dict: + """Creates a nested dictionary from the list and assigns value to the inermost key""" + nested_dict = {} + current_dict = nested_dict + + for key in keys[:-1]: + current_dict.setdefault(key, {}) + current_dict = current_dict[key] + + current_dict[keys[-1]] = value + + return nested_dict + + + def remove_duplicates(self, lst: list) -> None: + """Iterates through a list of lists and deletes items that are the same in the same order""" + + while len(lst[0]) > 1 and all(sublist[0] == lst[0][0] for sublist in lst): # > 1 so file will always have a name, else could get rid of all entries + for sublist in lst: + sublist.pop(0) + + + def elevate(self) -> None: + """Starts the elevations process""" + + # Find all the common configs + yaml_network_data = self.generate_directory_structure(self.mdd_data_dir) + debug.append(yaml_network_data) + + for file_pattern in self.mdd_data_patterns: + self.file_pattern = file_pattern + + for tag in ["sw"]: # This is temporary as the tags feature is being implemented + self.device_tag = tag + self.iterate_directory(yaml_network_data) + + if not FILES_CREATED: + debug.append("Configs already elevated to highest level") + + if self.is_test_run: + global files_created + for file in self.files_created: + if os.path.exists(file): + #os.remove(file) + files_created.append(file) + + + +def main(): + """Runs the elevation process""" + arguments = dict( + mdd_data_dir=dict(required=True, type='str'), + mdd_data_patterns=dict(required=True, type='list'), + file_level=dict(required=True, type='int'), + is_test_run=dict(required=True, type='bool') + ) + + module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) + + if module.params['file_level'] < 0: + module.fail_json(msg="File level needs to be 0 and above") + + Elevate( module.params['mdd_data_dir'], module.params['mdd_data_patterns'], module.params['file_level'], module.params['is_test_run']) + module.exit_json(changed=True, failed=False, debug=debug, files_created=files_created) + + +if __name__ == '__main__': + main() From 5390bd9f36afc80121b60d0da7a29fd3b68641e7 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Wed, 31 May 2023 16:36:43 -0400 Subject: [PATCH 037/104] Linting code --- plugins/modules/elevate_configs.py | 78 ++++++++++++------------------ 1 file changed, 32 insertions(+), 46 deletions(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 3c9c414..615ec59 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -19,7 +19,7 @@ # along with Ansible. If not, see http://www.gnu.org/licenses/. # -#TODO: Write test cases +# TODO: Write test cases from __future__ import (absolute_import, division, print_function) __metaclass__ = type @@ -68,11 +68,12 @@ FILES_CREATED = False # global variable for determining if anything was actually elevated files_created = [] + class Elevate: def __init__(self, mdd_data_dir, mdd_data_patterns, file_level, is_test_run): self.mdd_data_dir = mdd_data_dir self.mdd_data_patterns = mdd_data_patterns - self.file_level = file_level # we need to add one so that level 1 in playbook will correspond with with keys under mdd_data + self.file_level = file_level # we need to add one so that level 1 in playbook will correspond with with keys under mdd_data self.is_test_run = is_test_run self.file_pattern = '' self.device_tag = '' @@ -81,12 +82,12 @@ def __init__(self, mdd_data_dir, mdd_data_patterns, file_level, is_test_run): self.at_bottom_dir = False self.elevate() - def clean_dictionary(self, dictionary : dict) -> None: + def clean_dictionary(self, dictionary: dict) -> None: """gets rid of unnecessary keys""" parent_keys = [] self.clean_dictionary_helper(parent_keys, dictionary, dictionary) - def clean_dictionary_helper(self, parent_keys : list, parent_dictionary : dict, child_dictionary : dict) -> None: + def clean_dictionary_helper(self, parent_keys: list, parent_dictionary: dict, child_dictionary: dict) -> None: """Recursive helper function for clean_dictionary()""" for key, value in list(child_dictionary.items()): @@ -104,8 +105,7 @@ def clean_dictionary_helper(self, parent_keys : list, parent_dictionary : dict, self.clean_dictionary_helper(parent_keys, child_dictionary, value) parent_keys.pop() - - def unflatten_dict(self, flattened_dictionary : dict) -> dict: + def unflatten_dict(self, flattened_dictionary: dict) -> dict: """Takes a flattened dictionary and converts it back to a nested dictionary based on the levels indicated in the keys""" if not bool(flattened_dictionary): @@ -125,8 +125,7 @@ def unflatten_dict(self, flattened_dictionary : dict) -> dict: return result - - def flatten_dict(self, dictionary : dict, prefix : str = '') -> dict: + def flatten_dict(self, dictionary: dict, prefix: str = '') -> dict: """Takes a nested dictionary and convertes it to a single-depth dictionary with keys indicating the levels""" flattened = {} @@ -137,8 +136,7 @@ def flatten_dict(self, dictionary : dict, prefix : str = '') -> dict: flattened[prefix + key] = value return flattened - - def find_common_key_value_pairs(self, dicts : list) -> dict: + def find_common_key_value_pairs(self, dicts: list) -> dict: """Find common keys between a list of dictionaries""" if not bool(dicts): @@ -152,8 +150,7 @@ def find_common_key_value_pairs(self, dicts : list) -> dict: return common_pairs - - def intersect_dicts(self, dict1 : dict, dict2 : dict) -> dict: + def intersect_dicts(self, dict1: dict, dict2: dict) -> dict: """Finds the intersection between two dictionaries""" intersection = {} @@ -162,14 +159,12 @@ def intersect_dicts(self, dict1 : dict, dict2 : dict) -> dict: intersection[key] = dict1[key] return intersection - def find_common_configs(self, configs: list) -> dict: """Returns the common configs""" return self.unflatten_dict(self.find_common_key_value_pairs(configs)) - - def extract_keys_recursive(self, dictionary : dict, level : int, current_level : int = 0, parent_keys : str = "") -> list: + def extract_keys_recursive(self, dictionary: dict, level: int, current_level: int = 0, parent_keys: str = "") -> list: """Returns a list of dictionaries with the keys being a string combination of the parent keys and the value being the level's value. If the level depth is larger than the nested dictionary's depth, it stops at the lowest level""" @@ -191,19 +186,19 @@ def extract_keys_recursive(self, dictionary : dict, level : int, current_level : return keys - def elevate_level(self, rel_path : str) -> None: + def elevate_level(self, rel_path: str) -> None: """Finds common configs in a directory's child directories and elevates them to the current directory""" - ## How this function operates + # How this function operates # for each dir (given by dictionary? or can just get all dirs - will there be extra?) in path: - # get all yml files - # put into one yml file in path (Put all hq in one file, or just all hq-rt1 in one?) + # get all yml files + # put into one yml file in path (Put all hq in one file, or just all hq-rt1 in one?) # compare files # delete similar configs # make elevated config files global FILES_CREATED - if rel_path == "": # don't iterate through top level directory + if rel_path == "": # don't iterate through top level directory return configs = [] @@ -213,7 +208,7 @@ def elevate_level(self, rel_path : str) -> None: # iterate through each child dir for file in os.scandir(path): - if not file.is_dir(): # only want directories #TODO: need to check if dir in network? + if not file.is_dir(): # only want directories #TODO: need to check if dir in network? continue # if not fnmatch(file.name, "*-" + self.device_tag + "*"): # For switches @@ -234,13 +229,14 @@ def elevate_level(self, rel_path : str) -> None: config.update(data) config = self.unflatten_dict(config) - changed_files[child_file.path] = { 'data': data, 'filename': child_file.name } + changed_files[child_file.path] = {'data': data, 'filename': child_file.name} if bool(config): configs.append(config) if not contains_yml_files: - ignored_msgs.append(f" Ignoring {file.name} Reason: Does not contain any files matching the patterns: {self.mdd_data_patterns}") # if directory contains no oc files + ignored_msgs.append(f" Ignoring {file.name} Reason: Does not contain any files matching the patterns: {self.mdd_data_patterns}") + # if directory contains no oc files # get common configs result = self.find_common_configs(configs) @@ -263,7 +259,7 @@ def elevate_level(self, rel_path : str) -> None: # delete common configs for key in flattened_result: - if key in config_data: # remove any elevated configs + if key in config_data: # remove any elevated configs has_changed = True del config_data[key] @@ -286,7 +282,7 @@ def elevate_level(self, rel_path : str) -> None: if file_path_cleaned not in used_paths: used_paths.append(file_path_cleaned) - final_message.update({ f"{file_path_cleaned}": f"Configs for {directory_cleaned} level" }) + final_message.update({f"{file_path_cleaned}": f"Configs for {directory_cleaned} level"}) if device_name not in used_devices: used_devices.append(device_name) @@ -295,7 +291,7 @@ def elevate_level(self, rel_path : str) -> None: message_value += f", {device_name}" final_message[directory_cleaned] = message_value else: - final_message.update({ f"{directory_cleaned}" : f" Configs elevated to ({directory_cleaned}) level from: {device_name}" }) + final_message.update({f"{directory_cleaned}": f" Configs elevated to ({directory_cleaned}) level from: {device_name}"}) if config['filename'] not in used_configs: elevate_type = "Elevated parts of file " @@ -303,7 +299,7 @@ def elevate_level(self, rel_path : str) -> None: elevate_type = "Elevated entire file " used_configs.append(config['filename']) - final_message.update({ f"{directory_cleaned}_{config['filename']}" : f" {elevate_type}{config['filename']}" }) + final_message.update({f"{directory_cleaned}_{config['filename']}": f" {elevate_type}{config['filename']}"}) else: append_msg = final_message[directory_cleaned] append_msg += f", {device_name}" @@ -312,7 +308,6 @@ def elevate_level(self, rel_path : str) -> None: for key, message in final_message.items(): debug.append(message) - # make into separate config files if bool(result): debug.append(f"file level: {self.file_level}") @@ -354,8 +349,7 @@ def elevate_level(self, rel_path : str) -> None: debug.append(message) debug.append("") - - def get_parent_path(self, parent_keys : list) -> None: + def get_parent_path(self, parent_keys: list) -> None: """Returns absolute path for file based on the list""" path = "" @@ -363,16 +357,14 @@ def get_parent_path(self, parent_keys : list) -> None: path += "/" + key return path[1:] - - def iterate_directory(self, child_dict : dict) -> None: + def iterate_directory(self, child_dict: dict) -> None: """Iterates through the network's directory from bottom up""" parent_keys = [] hit_bottom_dir = False self.iterate_directory_helper(child_dict, parent_keys, hit_bottom_dir) - - def iterate_directory_helper(self, child_dict : dict, parent_keys : list, hit_bottom_dir : bool) -> None: + def iterate_directory_helper(self, child_dict: dict, parent_keys: list, hit_bottom_dir: bool) -> None: """Recursive function helper for iterate_directory()""" for key, value in child_dict.items(): @@ -383,14 +375,13 @@ def iterate_directory_helper(self, child_dict : dict, parent_keys : list, hit_bo elif not hit_bottom_dir: # continue till hit bottom dir parent_keys.append(key) - self.iterate_directory_helper(value, parent_keys, hit_bottom_dir) # iterate through child dictionaries + self.iterate_directory_helper(value, parent_keys, hit_bottom_dir) # iterate through child dictionaries parent_keys.pop() hit_bottom_dir = False self.elevate_level(self.get_parent_path(parent_keys)) self.at_bottom_dir = False - - def generate_directory_structure(self, path : str) -> dict: + def generate_directory_structure(self, path: str) -> dict: """Generates a dirctory structure in the form of a dictionary from a given path""" result = {} if os.path.isdir(path): @@ -401,8 +392,7 @@ def generate_directory_structure(self, path : str) -> dict: result[file] = self.generate_directory_structure(sub_path) return result - - def create_nested_dict(self, keys : list, value : any) -> dict: + def create_nested_dict(self, keys: list, value: any) -> dict: """Creates a nested dictionary from the list and assigns value to the inermost key""" nested_dict = {} current_dict = nested_dict @@ -415,7 +405,6 @@ def create_nested_dict(self, keys : list, value : any) -> dict: return nested_dict - def remove_duplicates(self, lst: list) -> None: """Iterates through a list of lists and deletes items that are the same in the same order""" @@ -423,7 +412,6 @@ def remove_duplicates(self, lst: list) -> None: for sublist in lst: sublist.pop(0) - def elevate(self) -> None: """Starts the elevations process""" @@ -434,7 +422,7 @@ def elevate(self) -> None: for file_pattern in self.mdd_data_patterns: self.file_pattern = file_pattern - for tag in ["sw"]: # This is temporary as the tags feature is being implemented + for tag in ["sw"]: # This is temporary as the tags feature is being implemented self.device_tag = tag self.iterate_directory(yaml_network_data) @@ -445,11 +433,9 @@ def elevate(self) -> None: global files_created for file in self.files_created: if os.path.exists(file): - #os.remove(file) + # os.remove(file) files_created.append(file) - - def main(): """Runs the elevation process""" arguments = dict( @@ -464,7 +450,7 @@ def main(): if module.params['file_level'] < 0: module.fail_json(msg="File level needs to be 0 and above") - Elevate( module.params['mdd_data_dir'], module.params['mdd_data_patterns'], module.params['file_level'], module.params['is_test_run']) + Elevate(module.params['mdd_data_dir'], module.params['mdd_data_patterns'], module.params['file_level'], module.params['is_test_run']) module.exit_json(changed=True, failed=False, debug=debug, files_created=files_created) From 27b947683bb4afc9f110b606b85e0713fa25c636 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Wed, 31 May 2023 16:44:28 -0400 Subject: [PATCH 038/104] more linting --- playbooks/elevate_configs.yml | 8 ++++---- plugins/modules/elevate_configs.py | 7 ++++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/playbooks/elevate_configs.yml b/playbooks/elevate_configs.yml index 8e13962..f2b6ee0 100644 --- a/playbooks/elevate_configs.yml +++ b/playbooks/elevate_configs.yml @@ -6,17 +6,17 @@ - ciscops.mdd.data vars_prompt: - name: file_level_input - prompt: What file level would you like to elevate at? + prompt: "What file level would you like to elevate at?" private: false - - name: is_test_run_input - prompt: Would you like to see the results before committing? (yes/no)? + - name: test_run_bool + prompt: "Would you like to see the results before committing? (yes/no)?" private: false tasks: - name: Convert is_test_run to boolean set_fact: - is_test_run: "{{ is_test_run_input | bool }}" + is_test_run: "{{ test_run_bool | bool }}" - name: Convert file_level to boolean set_fact: file_level: "{{ file_level_input | int }}" diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 615ec59..316e641 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -173,7 +173,7 @@ def extract_keys_recursive(self, dictionary: dict, level: int, current_level: in if current_level == level: for key in dictionary: new_key = parent_keys + self.separator + key if parent_keys else key - keys.append({'key': new_key, 'depth': current_level, 'value' : dictionary[key]}) + keys.append({'key': new_key, 'depth': current_level, 'value': dictionary[key]}) return keys for key, value in dictionary.items(): @@ -182,7 +182,7 @@ def extract_keys_recursive(self, dictionary: dict, level: int, current_level: in keys.extend(self.extract_keys_recursive(value, level, current_level + 1, new_parent_keys)) elif current_level < level: new_key = parent_keys + self.separator + key if parent_keys else key - keys.append({'key': new_key, 'depth': current_level, 'value' : dictionary[key]}) + keys.append({'key': new_key, 'depth': current_level, 'value': dictionary[key]}) return keys @@ -408,7 +408,7 @@ def create_nested_dict(self, keys: list, value: any) -> dict: def remove_duplicates(self, lst: list) -> None: """Iterates through a list of lists and deletes items that are the same in the same order""" - while len(lst[0]) > 1 and all(sublist[0] == lst[0][0] for sublist in lst): # > 1 so file will always have a name, else could get rid of all entries + while len(lst[0]) > 1 and all(sublist[0] == lst[0][0] for sublist in lst): # > 1 so file will always have a name, else could get rid of all entries for sublist in lst: sublist.pop(0) @@ -436,6 +436,7 @@ def elevate(self) -> None: # os.remove(file) files_created.append(file) + def main(): """Runs the elevation process""" arguments = dict( From 536aa3efa7893cd83e09314834414ad0fb9b3459 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 2 Jun 2023 02:43:59 -0400 Subject: [PATCH 039/104] Commting mostly stable version of code which can handle tagging, however this code has issues when running elevate sequentially --- playbooks/elevate_configs.yml | 38 ++- playbooks/nso_harvest_data.yml | 27 +- plugins/modules/elevate_configs.py | 362 ++++++++++++--------------- roles/nso/tasks/update_yaml_data.yml | 8 +- 4 files changed, 202 insertions(+), 233 deletions(-) diff --git a/playbooks/elevate_configs.yml b/playbooks/elevate_configs.yml index f2b6ee0..3c57f34 100644 --- a/playbooks/elevate_configs.yml +++ b/playbooks/elevate_configs.yml @@ -4,29 +4,20 @@ gather_facts: false roles: - ciscops.mdd.data - vars_prompt: - - name: file_level_input - prompt: "What file level would you like to elevate at?" - private: false - - name: test_run_bool - prompt: "Would you like to see the results before committing? (yes/no)?" - private: false + vars: + temp_dir: "{{ mdd_data_parent }}/temp_dir" + file_level: "{{ level | default(-1) }}" + is_test_run: "{{ test | default(false) }}" tasks: - - name: Convert is_test_run to boolean - set_fact: - is_test_run: "{{ test_run_bool | bool }}" - - name: Convert file_level to boolean - set_fact: - file_level: "{{ file_level_input | int }}" - - name: elevate elevate_configs: mdd_data_dir: "{{ mdd_data_root }}" mdd_data_patterns: "{{ mdd_data_patterns }}" file_level: "{{ file_level }}" is_test_run: "{{ is_test_run }}" + temp_dir: "{{ temp_dir }}" register: elevate_result - debug: @@ -36,24 +27,31 @@ prompt: "Is this result okay? (yes/no)" echo: yes register: result + until: result.user_input.lower() in ['yes', 'no', 'y', 'n'] + retries: 5 + delay: 1 when: is_test_run == true + - set_fact: is_ok_continue: false - set_fact: - is_ok_continue: "{{ result.user_input | bool }}" - when: is_test_run == true + is_ok_continue: true + when: is_test_run == true and result.user_input.lower() in ['yes', 'y'] - - name: Delete created files + - name: Delete temp directory if present file: - path: "{{ item }}" + path: "{{ temp_dir }}/" state: absent - with_items: "{{ elevate_result.files_created }}" + when: is_ok_continue == false - - name: elevate + - name: CP file elevate_configs: mdd_data_dir: "{{ mdd_data_root }}" mdd_data_patterns: "{{ mdd_data_patterns }}" file_level: "{{ file_level }}" is_test_run: false + temp_dir: "{{ temp_dir }}" register: result when: is_ok_continue == true + + diff --git a/playbooks/nso_harvest_data.yml b/playbooks/nso_harvest_data.yml index 1692d32..367fbac 100644 --- a/playbooks/nso_harvest_data.yml +++ b/playbooks/nso_harvest_data.yml @@ -1,15 +1,30 @@ - name: Harvest Data from NSO hosts: network connection: local - gather_facts: no + gather_facts: false roles: - ciscops.mdd.data - ciscops.mdd.nso vars: - create_dirs: yes + create_dirs: true tasks: + - name: Execute ansible-inventory command + command: "ansible-inventory -i {{ mdd_inventory_root }} --host {{ inventory_hostname }}" + register: command_output - - name: Harvest Data - include_role: - name: ciscops.mdd.nso - tasks_from: update_yaml_data + - name: Clean output data + set_fact: + device_inv_data: "{{ command_output.stdout_lines | join('\n') }}" + + - name: Retrieve and set the device tags + set_fact: + device_tags: "{{ device_inv_data.tags }}" + + - name: Retrieve device tags + debug: + var: device_tags + + - name: Harvest Data + include_role: + name: ciscops.mdd.nso + tasks_from: update_yaml_data diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 316e641..2029db5 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -62,26 +62,37 @@ import os from fnmatch import fnmatch import yaml +import shutil from ansible.module_utils.basic import AnsibleModule debug = [] # global variable for debugging FILES_CREATED = False # global variable for determining if anything was actually elevated -files_created = [] class Elevate: - def __init__(self, mdd_data_dir, mdd_data_patterns, file_level, is_test_run): + def __init__(self, mdd_data_dir, mdd_data_patterns, temp_dir, file_level: int = None, is_test_run: bool = False): self.mdd_data_dir = mdd_data_dir self.mdd_data_patterns = mdd_data_patterns self.file_level = file_level # we need to add one so that level 1 in playbook will correspond with with keys under mdd_data self.is_test_run = is_test_run + self.temp_dir = temp_dir self.file_pattern = '' self.device_tag = '' self.separator = '__*__' - self.files_created = [] + self.file_parts = '' self.at_bottom_dir = False + self.first = True + self.elevate() + def get_parent_path(self, parent_keys: list) -> None: + """Returns absolute path for file based on the list""" + + path = "" + for key in parent_keys: + path += "/" + key + return path[1:] + def clean_dictionary(self, dictionary: dict) -> None: """gets rid of unnecessary keys""" parent_keys = [] @@ -186,176 +197,155 @@ def extract_keys_recursive(self, dictionary: dict, level: int, current_level: in return keys - def elevate_level(self, rel_path: str) -> None: - """Finds common configs in a directory's child directories and elevates them to the current directory""" - - # How this function operates - # for each dir (given by dictionary? or can just get all dirs - will there be extra?) in path: - # get all yml files - # put into one yml file in path (Put all hq in one file, or just all hq-rt1 in one?) - # compare files - # delete similar configs - # make elevated config files - global FILES_CREATED - - if rel_path == "": # don't iterate through top level directory - return - - configs = [] - changed_files = {} - ignored_msgs = [] - path = os.path.join(self.mdd_data_dir, rel_path) - - # iterate through each child dir - for file in os.scandir(path): - if not file.is_dir(): # only want directories #TODO: need to check if dir in network? - continue - - # if not fnmatch(file.name, "*-" + self.device_tag + "*"): # For switches - # continue - - # get all yml config files and put into one dictionary - config = {} - contains_yml_files = False - for child_file in os.scandir(file.path): - - if not fnmatch(child_file.name, self.file_pattern): - continue - - contains_yml_files = True - with open(child_file.path, 'r', encoding='utf-8') as file: - data = self.flatten_dict(yaml.safe_load(file)) - config = self.flatten_dict(config) - config.update(data) - config = self.unflatten_dict(config) - - changed_files[child_file.path] = {'data': data, 'filename': child_file.name} - - if bool(config): - configs.append(config) - - if not contains_yml_files: - ignored_msgs.append(f" Ignoring {file.name} Reason: Does not contain any files matching the patterns: {self.mdd_data_patterns}") - # if directory contains no oc files - - # get common configs - result = self.find_common_configs(configs) - - # Delete common configs from lower config files - flattened_result = self.flatten_dict(result) - - used_paths = [] - used_devices = [] - final_message = {} - for file_path, config in changed_files.items(): - has_changed = False - used_configs = [] - config_data = self.flatten_dict(config['data']) - - if not self.is_test_run or (self.is_test_run and not self.at_bottom_dir): - # only delete configs if not a test run or not at the bottom directory during a test run - # checking for bottom directory because if user does not like the update, can just delete the elevated configs files - # but don't want to have to go back and re-input what we took out from the original config files - - # delete common configs - for key in flattened_result: - if key in config_data: # remove any elevated configs - has_changed = True - del config_data[key] - - # empty - delete file - if not bool(config_data): - os.remove(file_path) - else: - # just overwrite old files with updated data - with open(file_path, 'w') as file: - file.write("---\n") - yaml.safe_dump(self.unflatten_dict(config_data), file, sort_keys=False) - - file_path_cleaned = file_path.replace(config['filename'], "") - device_name = file_path_cleaned.split('/')[-2] - - # if changed, make a printout explaining elevation changes - if has_changed: - file_path_cleaned = '/'.join(file_path_cleaned.split('/')[:-2] + ['']) - directory_cleaned = file_path_cleaned.split('/')[-2] - - if file_path_cleaned not in used_paths: - used_paths.append(file_path_cleaned) - final_message.update({f"{file_path_cleaned}": f"Configs for {directory_cleaned} level"}) - - if device_name not in used_devices: - used_devices.append(device_name) - if directory_cleaned in final_message.keys(): - message_value = final_message[directory_cleaned] - message_value += f", {device_name}" - final_message[directory_cleaned] = message_value - else: - final_message.update({f"{directory_cleaned}": f" Configs elevated to ({directory_cleaned}) level from: {device_name}"}) - - if config['filename'] not in used_configs: - elevate_type = "Elevated parts of file " - if not bool(config_data): - elevate_type = "Elevated entire file " + def remove_and_create_temp_dir(self) -> None: + """Removes the temp directory. If it is a test run, copies mdd-data into the tmp dir""" - used_configs.append(config['filename']) - final_message.update({f"{directory_cleaned}_{config['filename']}": f" {elevate_type}{config['filename']}"}) - else: - append_msg = final_message[directory_cleaned] - append_msg += f", {device_name}" - final_message[directory_cleaned] = append_msg + if os.path.exists(self.temp_dir): + shutil.rmtree(self.temp_dir) - for key, message in final_message.items(): - debug.append(message) + if self.is_test_run: + # copy directory into temp directory + shutil.copytree(self.mdd_data_dir, self.temp_dir) + self.mdd_data_dir = self.temp_dir - # make into separate config files - if bool(result): - debug.append(f"file level: {self.file_level}") + def find_file_level(self, config, files, level=0): + if not isinstance(config, dict): + return -1 - list_of_keys = self.extract_keys_recursive(result, self.file_level) - sorted_keys = sorted(list_of_keys, key=lambda x: x['depth']) + for key in config: + if key.split(':')[-1] in files: + return level - # debug.append("") - # for key in sorted_keys: - # debug.append(key['key'] + " " + str(key['depth'])) - # debug.append("") + for value in config.values(): + result = self.find_file_level(value, files, level + 1) + if result != -1: + return result - # Remove duplicate top level keys so file names are shortened - keys_hierarchies_simplified = [key_dict['key'].split(self.separator) for key_dict in sorted_keys] - self.remove_duplicates(keys_hierarchies_simplified) + return -1 - # create separate files - count = 0 - for key_dict, keys_hierarchy in zip(sorted_keys, keys_hierarchies_simplified): - FILES_CREATED = True - keys_hierarchy_dict = key_dict['key'].split(self.separator) - data = self.create_nested_dict(keys_hierarchy_dict, key_dict['value']) + def get_meta_tag(self, tags): + return self.separator.join(tags) - filename = "-".join(key.rsplit(':', 1)[-1] for key in keys_hierarchy) + def get_tags(self, meta_tag): + return meta_tag.split(self.separator) - file_parts = self.file_pattern.split('*') - file_path = f"{path}/{file_parts[0]}{filename}{file_parts[1]}" + def elevate_level(self, rel_path: str) -> None: + """Finds common configs in a directory's child directories and elevates them to the current directory""" - debug.append(f"creating file {filename}") - self.files_created.append(file_path) - with open(file_path, 'w') as file: - file.write("---\n") - yaml.safe_dump(data, file, sort_keys=False) + # How this function operates + # Get the first dir and use the files in there as base files + # for each base file: + # for each dir in path + # if base file name in here, grab config + # elevate config (single file) if applicable + global FILES_CREATED - count += 1 + if rel_path == "": # don't iterate through top level directory + return - if FILES_CREATED: - for message in ignored_msgs: - debug.append(message) - debug.append("") + path = os.path.join(self.mdd_data_dir, rel_path) - def get_parent_path(self, parent_keys: list) -> None: - """Returns absolute path for file based on the list""" + dir_files = [file for file in os.scandir(path) if file.is_dir()] + tags = {} + for dir in dir_files: # obtain a base - where would do tags + # get tags + for file in os.scandir(dir.path): + if file.is_file() and fnmatch(file.name, '*.yml'): + with open(file.path, 'r', encoding='utf-8') as data_file: + data_dicts = yaml.safe_load_all(data_file) + for data in data_dicts: + if 'mdd_tags' in data: + tags.setdefault(self.get_meta_tag(data['mdd_tags']), []).append(dir) + break + + for meta_tag, directories in tags.items(): + # get anchor + anchor_files = [] + for file in os.scandir(directories[-1]): + if file.is_file() and fnmatch(file.name, '*.yml'): + anchor_files.append(file) + + for anchor_file in anchor_files: # files in anchor directory + configs = [] + changed_files = {} + file_in_all_dirs = True + + for dir in directories: # iterate through original directory + + file_in_here = False + for yml_file in os.scandir(dir.path): # just here to get all files - like could do a anchor_file.name in dir + if not yml_file.is_file(): + continue + + if anchor_file.name in yml_file.name and fnmatch(yml_file.name, '*.yml'): # TODO: add matches pattern? + with open(yml_file.path, 'r', encoding='utf-8') as data_file: + data_dicts = yaml.safe_load_all(data_file) + for data in data_dicts: + if 'mdd_tags' in data and self.get_meta_tag(data['mdd_tags']) == meta_tag: + configs.append(data) + changed_files[yml_file.path] = {'data': data, 'filename': yml_file.name} + file_in_here = True + break + + if not file_in_here: # make sure the file was in all directories # TODO: Modify for tags + file_in_all_dirs = False + break + + if not file_in_all_dirs: + continue - path = "" - for key in parent_keys: - path += "/" + key - return path[1:] + # get common configs + result = self.find_common_configs(configs) + + # Delete common configs from lower config files + flattened_result = self.flatten_dict(result) + + for file_path, config in changed_files.items(): + config_data = self.flatten_dict(config['data']) + + # delete common configs + for key in flattened_result: + if key in config_data: # remove any elevated configs + del config_data[key] + + # empty - delete file + if not bool(config_data): # since we combine files, if a config is empty, remove if from the file + if os.path.exists(file_path): + with open(file_path, 'r') as file: + data_dicts = yaml.safe_load_all(file) + results_to_write = [] + for data in data_dicts: + if 'mdd_tags' in data and self.get_meta_tag(data['mdd_tags']) != meta_tag: + results_to_write.append(data) + if results_to_write: + with open(file_path, 'w') as file: + for result_data in results_to_write: + file.write("---\n") + yaml.safe_dump(result_data, file, sort_keys=False) + elif "mdd_data" in result: # add a flag here + debug.append(file_path + str(result)) + os.remove(file_path) + else: + # just overwrite old files with updated data + open_type = 'w' + if os.path.exists(file_path): + open_type = 'a' + # if os.path.exists(file_path): + with open(file_path, 'w') as file: + non_elevated_data = self.unflatten_dict(config_data) + non_elevated_data['mdd_tags'] = self.get_tags(meta_tag) + file.write("---\n") + yaml.safe_dump(non_elevated_data, file, sort_keys=False) + + if bool(result): + file_path = f"{path}/{anchor_file.name}" + open_type = 'w' + if os.path.exists(file_path): + open_type = 'a' + with open(file_path, open_type) as file: + result['mdd_tags'] = self.get_tags(meta_tag) + file.write("---\n") + yaml.safe_dump(result, file, sort_keys=False) def iterate_directory(self, child_dict: dict) -> None: """Iterates through the network's directory from bottom up""" @@ -392,49 +382,13 @@ def generate_directory_structure(self, path: str) -> dict: result[file] = self.generate_directory_structure(sub_path) return result - def create_nested_dict(self, keys: list, value: any) -> dict: - """Creates a nested dictionary from the list and assigns value to the inermost key""" - nested_dict = {} - current_dict = nested_dict - - for key in keys[:-1]: - current_dict.setdefault(key, {}) - current_dict = current_dict[key] - - current_dict[keys[-1]] = value - - return nested_dict - - def remove_duplicates(self, lst: list) -> None: - """Iterates through a list of lists and deletes items that are the same in the same order""" - - while len(lst[0]) > 1 and all(sublist[0] == lst[0][0] for sublist in lst): # > 1 so file will always have a name, else could get rid of all entries - for sublist in lst: - sublist.pop(0) - def elevate(self) -> None: """Starts the elevations process""" + self.remove_and_create_temp_dir() # Find all the common configs yaml_network_data = self.generate_directory_structure(self.mdd_data_dir) - debug.append(yaml_network_data) - - for file_pattern in self.mdd_data_patterns: - self.file_pattern = file_pattern - - for tag in ["sw"]: # This is temporary as the tags feature is being implemented - self.device_tag = tag - self.iterate_directory(yaml_network_data) - - if not FILES_CREATED: - debug.append("Configs already elevated to highest level") - - if self.is_test_run: - global files_created - for file in self.files_created: - if os.path.exists(file): - # os.remove(file) - files_created.append(file) + self.iterate_directory(yaml_network_data) def main(): @@ -442,17 +396,19 @@ def main(): arguments = dict( mdd_data_dir=dict(required=True, type='str'), mdd_data_patterns=dict(required=True, type='list'), - file_level=dict(required=True, type='int'), - is_test_run=dict(required=True, type='bool') + file_level=dict(required=True, type='int', default=None), + is_test_run=dict(required=True, type='bool'), + temp_dir=dict(required=True, type='str') ) module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) - if module.params['file_level'] < 0: - module.fail_json(msg="File level needs to be 0 and above") + # if module.params['file_level'] is not None and module.params['file_level'] < 0: + # module.fail_json(msg="File level needs to be 0 and above") - Elevate(module.params['mdd_data_dir'], module.params['mdd_data_patterns'], module.params['file_level'], module.params['is_test_run']) - module.exit_json(changed=True, failed=False, debug=debug, files_created=files_created) + Elevate(module.params['mdd_data_dir'], module.params['mdd_data_patterns'], + module.params['temp_dir'], module.params['file_level'], module.params['is_test_run']) + module.exit_json(changed=True, failed=False, debug=debug) if __name__ == '__main__': diff --git a/roles/nso/tasks/update_yaml_data.yml b/roles/nso/tasks/update_yaml_data.yml index 93ffe70..037eb16 100644 --- a/roles/nso/tasks/update_yaml_data.yml +++ b/roles/nso/tasks/update_yaml_data.yml @@ -7,7 +7,7 @@ content: "---\n{{ data | to_nice_yaml(indent=2,sort_keys=False) }}" dest: "{{ mdd_device_dir }}/config-data.yml" vars: - data: "{{ { 'mdd_data': { 'config': nso_device_config['config'] } } }}" + data: "{{ { 'mdd_data': { 'config': nso_device_config['config'] }, 'mdd_tags': device_tags } }}" when: ('config' in mdd_data_types) and not ('oc' in mdd_data_types) - block: @@ -21,13 +21,13 @@ dest: "{{ mdd_device_dir }}/oc-{{ (item.key | ansible.builtin.split(':'))[1] }}.yml" with_dict: "{{ oc_data['mdd_data']['mdd:openconfig'] }}" vars: - data: "{{ { 'mdd_data': { 'mdd:openconfig' : { item.key: item.value } } } }}" - + data: "{{ { 'mdd_data': { 'mdd:openconfig' : { item.key: item.value } }, 'mdd_tags': device_tags } }}" + - name: Write Native Data to Device Directory copy: content: "---\n{{ data | to_nice_yaml(indent=2,sort_keys=False) }}" dest: "{{ mdd_device_dir }}/config-remaining.yml" vars: - data: "{{ { 'mdd_data': { 'config': oc_data['mdd_data']['config'] } } }}" + data: "{{ { 'mdd_data': { 'config': oc_data['mdd_data']['config'] }, 'mdd_tags': device_tags} }}" when: ('config' in mdd_data_types) when: ('oc' in mdd_data_types) From 71bf750d45fc62752c3f83a94d1c6d6bd1995af8 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 2 Jun 2023 13:00:17 -0400 Subject: [PATCH 040/104] Commiting stable version of elevate with tags --- playbooks/elevate_configs.yml | 31 ++--- plugins/modules/elevate_configs.py | 188 ++++++++++++----------------- 2 files changed, 87 insertions(+), 132 deletions(-) diff --git a/playbooks/elevate_configs.yml b/playbooks/elevate_configs.yml index 3c57f34..1b31691 100644 --- a/playbooks/elevate_configs.yml +++ b/playbooks/elevate_configs.yml @@ -1,4 +1,5 @@ --- +# You can specify a test run by adding -e "test=true" - name: elevate configs hosts: localhost gather_facts: false @@ -7,15 +8,13 @@ vars: temp_dir: "{{ mdd_data_parent }}/temp_dir" - file_level: "{{ level | default(-1) }}" is_test_run: "{{ test | default(false) }}" tasks: + - name: elevate elevate_configs: mdd_data_dir: "{{ mdd_data_root }}" - mdd_data_patterns: "{{ mdd_data_patterns }}" - file_level: "{{ file_level }}" is_test_run: "{{ is_test_run }}" temp_dir: "{{ temp_dir }}" register: elevate_result @@ -30,28 +29,24 @@ until: result.user_input.lower() in ['yes', 'no', 'y', 'n'] retries: 5 delay: 1 - when: is_test_run == true + when: is_test_run - set_fact: is_ok_continue: false - set_fact: is_ok_continue: true - when: is_test_run == true and result.user_input.lower() in ['yes', 'y'] + when: is_test_run and result.user_input.lower() in ['yes', 'y'] - name: Delete temp directory if present file: path: "{{ temp_dir }}/" state: absent - when: is_ok_continue == false - - - name: CP file - elevate_configs: - mdd_data_dir: "{{ mdd_data_root }}" - mdd_data_patterns: "{{ mdd_data_patterns }}" - file_level: "{{ file_level }}" - is_test_run: false - temp_dir: "{{ temp_dir }}" - register: result - when: is_ok_continue == true - - + when: not is_ok_continue + + - name: CP Good Files to mdd_data + command: "{{ item }}" + with_items: + - "rm -r {{ mdd_data_root }}/" + - "cp -r {{ temp_dir }}/ {{ mdd_data_root }}/" + - "rm -r {{ temp_dir }}/" + when: is_ok_continue \ No newline at end of file diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 2029db5..1af889d 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -19,8 +19,6 @@ # along with Ansible. If not, see http://www.gnu.org/licenses/. # -# TODO: Write test cases - from __future__ import (absolute_import, division, print_function) __metaclass__ = type @@ -38,8 +36,19 @@ options: mdd_data_dir: description: The directory of the mdd data - - When using this, always set the input to "{{ mdd_data_root }}" in the playbook - - Like this mdd_data_dir: "{{ mdd_data_root }}" + - When using this, always set the input to "{{mdd_data_root}}" in the playbook + - Like this mdd_data_dir: "{{mdd_data_root}}" + required: true + type: str + is_test_run: + description: Determines if the elevation process will happen in the temp_dir + - Allows user to see the results and approve/disaprove before commiting to mdd_data directory + - Default is False + - You can specify True by adding -e "test=true" when running the ansible playbook + required: true + type: bool + temp_dir + description: The directory where the elevate process will happen if is_test_run == True required: true type: str """ @@ -54,34 +63,30 @@ - name: elevate elevate_configs: mdd_data_dir: "{{ mdd_data_root }}" - register: result + is_test_run: "{{ is_test_run }}" + temp_dir: "{{ temp_dir }}" + register: elevate_result - debug: var: result.debug """ import os +import time from fnmatch import fnmatch import yaml import shutil from ansible.module_utils.basic import AnsibleModule debug = [] # global variable for debugging -FILES_CREATED = False # global variable for determining if anything was actually elevated class Elevate: - def __init__(self, mdd_data_dir, mdd_data_patterns, temp_dir, file_level: int = None, is_test_run: bool = False): + def __init__(self, mdd_data_dir, temp_dir, is_test_run: bool = False): + self.mdd_data_dir = mdd_data_dir - self.mdd_data_patterns = mdd_data_patterns - self.file_level = file_level # we need to add one so that level 1 in playbook will correspond with with keys under mdd_data self.is_test_run = is_test_run self.temp_dir = temp_dir - self.file_pattern = '' - self.device_tag = '' self.separator = '__*__' - self.file_parts = '' - self.at_bottom_dir = False - self.first = True self.elevate() @@ -93,29 +98,6 @@ def get_parent_path(self, parent_keys: list) -> None: path += "/" + key return path[1:] - def clean_dictionary(self, dictionary: dict) -> None: - """gets rid of unnecessary keys""" - parent_keys = [] - self.clean_dictionary_helper(parent_keys, dictionary, dictionary) - - def clean_dictionary_helper(self, parent_keys: list, parent_dictionary: dict, child_dictionary: dict) -> None: - """Recursive helper function for clean_dictionary()""" - - for key, value in list(child_dictionary.items()): - if key == "tags": - # Remove the tags - del child_dictionary[key] - - if key in ('hosts', 'children'): - # Move the value one up in the dictionary - parent_dictionary[parent_keys[-1]] = value - - if isinstance(value, dict): - # Go through and clean the lower dictionarys - parent_keys.append(key) - self.clean_dictionary_helper(parent_keys, child_dictionary, value) - parent_keys.pop() - def unflatten_dict(self, flattened_dictionary: dict) -> dict: """Takes a flattened dictionary and converts it back to a nested dictionary based on the levels indicated in the keys""" @@ -175,28 +157,6 @@ def find_common_configs(self, configs: list) -> dict: return self.unflatten_dict(self.find_common_key_value_pairs(configs)) - def extract_keys_recursive(self, dictionary: dict, level: int, current_level: int = 0, parent_keys: str = "") -> list: - """Returns a list of dictionaries with the keys being a string combination of the parent keys - and the value being the level's value. - If the level depth is larger than the nested dictionary's depth, it stops at the lowest level""" - - keys = [] - if current_level == level: - for key in dictionary: - new_key = parent_keys + self.separator + key if parent_keys else key - keys.append({'key': new_key, 'depth': current_level, 'value': dictionary[key]}) - return keys - - for key, value in dictionary.items(): - if isinstance(value, dict) and value != {}: - new_parent_keys = parent_keys + self.separator + key if parent_keys else key - keys.extend(self.extract_keys_recursive(value, level, current_level + 1, new_parent_keys)) - elif current_level < level: - new_key = parent_keys + self.separator + key if parent_keys else key - keys.append({'key': new_key, 'depth': current_level, 'value': dictionary[key]}) - - return keys - def remove_and_create_temp_dir(self) -> None: """Removes the temp directory. If it is a test run, copies mdd-data into the tmp dir""" @@ -208,25 +168,14 @@ def remove_and_create_temp_dir(self) -> None: shutil.copytree(self.mdd_data_dir, self.temp_dir) self.mdd_data_dir = self.temp_dir - def find_file_level(self, config, files, level=0): - if not isinstance(config, dict): - return -1 - - for key in config: - if key.split(':')[-1] in files: - return level + def get_meta_tag(self, tags: list) -> str: + """Creates a one meta tag from the list joined by a separator""" - for value in config.values(): - result = self.find_file_level(value, files, level + 1) - if result != -1: - return result - - return -1 - - def get_meta_tag(self, tags): return self.separator.join(tags) - def get_tags(self, meta_tag): + def get_tags(self, meta_tag: str) -> list: + """Creates a list from the meta tag by splitting it""" + return meta_tag.split(self.separator) def elevate_level(self, rel_path: str) -> None: @@ -238,7 +187,6 @@ def elevate_level(self, rel_path: str) -> None: # for each dir in path # if base file name in here, grab config # elevate config (single file) if applicable - global FILES_CREATED if rel_path == "": # don't iterate through top level directory return @@ -283,7 +231,8 @@ def elevate_level(self, rel_path: str) -> None: for data in data_dicts: if 'mdd_tags' in data and self.get_meta_tag(data['mdd_tags']) == meta_tag: configs.append(data) - changed_files[yml_file.path] = {'data': data, 'filename': yml_file.name} + changed_files[yml_file.path] = {'data': data, 'filename': yml_file.name} + break file_in_here = True break @@ -299,8 +248,7 @@ def elevate_level(self, rel_path: str) -> None: # Delete common configs from lower config files flattened_result = self.flatten_dict(result) - - for file_path, config in changed_files.items(): + for file_path, config in changed_files.items(): # remove from old file config_data = self.flatten_dict(config['data']) # delete common configs @@ -309,35 +257,26 @@ def elevate_level(self, rel_path: str) -> None: del config_data[key] # empty - delete file - if not bool(config_data): # since we combine files, if a config is empty, remove if from the file - if os.path.exists(file_path): - with open(file_path, 'r') as file: - data_dicts = yaml.safe_load_all(file) - results_to_write = [] - for data in data_dicts: - if 'mdd_tags' in data and self.get_meta_tag(data['mdd_tags']) != meta_tag: - results_to_write.append(data) - if results_to_write: - with open(file_path, 'w') as file: - for result_data in results_to_write: - file.write("---\n") - yaml.safe_dump(result_data, file, sort_keys=False) - elif "mdd_data" in result: # add a flag here - debug.append(file_path + str(result)) - os.remove(file_path) + write_configs = [] + with open(file_path, 'r') as file: + data_configs = yaml.safe_load_all(file) + + for data in data_configs: + if config['data'] == data: + if bool(config_data): + config_data = self.unflatten_dict(config_data) + config_data['mdd_tags'] = self.get_tags(meta_tag) + write_configs.append(config_data) + else: + write_configs.append(data) + + if len(write_configs) == 0: + os.remove(file_path) else: - # just overwrite old files with updated data - open_type = 'w' - if os.path.exists(file_path): - open_type = 'a' - # if os.path.exists(file_path): with open(file_path, 'w') as file: - non_elevated_data = self.unflatten_dict(config_data) - non_elevated_data['mdd_tags'] = self.get_tags(meta_tag) - file.write("---\n") - yaml.safe_dump(non_elevated_data, file, sort_keys=False) + yaml.safe_dump_all(write_configs, file, sort_keys=False, explicit_start=True) - if bool(result): + if bool(result): # write to elevated file file_path = f"{path}/{anchor_file.name}" open_type = 'w' if os.path.exists(file_path): @@ -347,6 +286,31 @@ def elevate_level(self, rel_path: str) -> None: file.write("---\n") yaml.safe_dump(result, file, sort_keys=False) + # # below is if we want to merge tags - would have to change above algorithm when comparing to account for meta_tag being different + # # Would have to do if tags in all_tags + # result['mdd_tags'] = self.get_tags(meta_tag) + # if os.path.exists(file_path): + # with open(file_path, 'r') as file: + # data_dicts = yaml.safe_load_all(file) + + # results_to_write = [] + # for data in data_dicts: + # if data['mdd_data'] == result['mdd_data']: + # result['mdd_tags'].extend(data['mdd_tags']) + # else: + # results_to_write.append(data) + # results_to_write.append(result) + + # with open(file_path, 'w') as file: + # for result_data in results_to_write: + # file.write("---\n") + # yaml.safe_dump(result_data, file, sort_keys=False) + + # else: + # with open(file_path, 'w') as file: + # file.write("---\n") + # yaml.safe_dump(result, file, sort_keys=False) + def iterate_directory(self, child_dict: dict) -> None: """Iterates through the network's directory from bottom up""" @@ -361,7 +325,6 @@ def iterate_directory_helper(self, child_dict: dict, parent_keys: list, hit_bott if isinstance(value, dict) and not bool(value) and not hit_bottom_dir: # means is empty and therefore hit bottom directory hit_bottom_dir = True - self.at_bottom_dir = True elif not hit_bottom_dir: # continue till hit bottom dir parent_keys.append(key) @@ -369,10 +332,10 @@ def iterate_directory_helper(self, child_dict: dict, parent_keys: list, hit_bott parent_keys.pop() hit_bottom_dir = False self.elevate_level(self.get_parent_path(parent_keys)) - self.at_bottom_dir = False def generate_directory_structure(self, path: str) -> dict: """Generates a dirctory structure in the form of a dictionary from a given path""" + result = {} if os.path.isdir(path): files = os.listdir(path) @@ -384,30 +347,27 @@ def generate_directory_structure(self, path: str) -> dict: def elevate(self) -> None: """Starts the elevations process""" + self.remove_and_create_temp_dir() # Find all the common configs yaml_network_data = self.generate_directory_structure(self.mdd_data_dir) + self.iterate_directory(yaml_network_data) def main(): """Runs the elevation process""" + arguments = dict( mdd_data_dir=dict(required=True, type='str'), - mdd_data_patterns=dict(required=True, type='list'), - file_level=dict(required=True, type='int', default=None), is_test_run=dict(required=True, type='bool'), temp_dir=dict(required=True, type='str') ) module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) - # if module.params['file_level'] is not None and module.params['file_level'] < 0: - # module.fail_json(msg="File level needs to be 0 and above") - - Elevate(module.params['mdd_data_dir'], module.params['mdd_data_patterns'], - module.params['temp_dir'], module.params['file_level'], module.params['is_test_run']) + Elevate(module.params['mdd_data_dir'], module.params['temp_dir'], module.params['is_test_run']) module.exit_json(changed=True, failed=False, debug=debug) From b0698bb624ea5df7c5b8032f6d1c7fd1ebf8b3f2 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 5 Jun 2023 21:19:13 -0400 Subject: [PATCH 041/104] Updating collection/combine code to work with merged+tagged files --- playbooks/elevate_configs.yml | 5 -- plugins/modules/gather_mdd_data.py | 84 ++++++++++++++++++++++++++++++ roles/data/tasks/main.yml | 29 ++++++++--- 3 files changed, 105 insertions(+), 13 deletions(-) create mode 100644 plugins/modules/gather_mdd_data.py diff --git a/playbooks/elevate_configs.yml b/playbooks/elevate_configs.yml index 1b31691..1536c08 100644 --- a/playbooks/elevate_configs.yml +++ b/playbooks/elevate_configs.yml @@ -3,15 +3,10 @@ - name: elevate configs hosts: localhost gather_facts: false - roles: - - ciscops.mdd.data - vars: temp_dir: "{{ mdd_data_parent }}/temp_dir" is_test_run: "{{ test | default(false) }}" - tasks: - - name: elevate elevate_configs: mdd_data_dir: "{{ mdd_data_root }}" diff --git a/plugins/modules/gather_mdd_data.py b/plugins/modules/gather_mdd_data.py new file mode 100644 index 0000000..154baf7 --- /dev/null +++ b/plugins/modules/gather_mdd_data.py @@ -0,0 +1,84 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2023 Cisco and/or its affiliates. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see http://www.gnu.org/licenses/. + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +ANSIBLE_METADATA = {'metadata_version': '1.1', 'status': ['preview'], 'supported_by': 'community'} + +DOCUMENTATION = r""" +--- +module: gather_mdd_data +short_description: finds all the correct mdd data for a given tag +description: + - evalutates mdd data on tags and returns only correclty tagged data + - this is to deal with the introduction of merged data files where config files + - can now have multiple files defined in them, each starting with --- +author: + - Kris Stickney (@kstickne) + - Paul Pajerski (@ppajersk) +options: + mdd_file_data: + description: The directory of the mdd data + required: true + type: list + tags: + description: The tags associated with a device + required: true + type: list +""" + +EXAMPLES = r""" +- name: Gather the MDD Data + gather_mdd_data: + mdd_file_data: "{{ file_list_dict }}" + tags: "{{ tags }}" + register: result +""" + +from ansible.module_utils.basic import AnsibleModule + + +def gather(file_data, tags): + """Gathers the data for a given tag""" + result = [] + + for file in file_data: + if 'all' in file['mdd_tags'] or tags == file['mdd_tags']: + result.append(file['mdd_data']) + + return result + + +def main(): + """Runs the gather process""" + + arguments = dict( + mdd_file_data=dict(required=True, type='list'), + tags=dict(required=True, type='list') + ) + + module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) + data = gather(module.params['mdd_file_data'], module.params['tags']) + module.exit_json(changed=True, failed=False, mdd_data=data) + + +if __name__ == '__main__': + main() diff --git a/roles/data/tasks/main.yml b/roles/data/tasks/main.yml index 7d6bbff..07b86a7 100644 --- a/roles/data/tasks/main.yml +++ b/roles/data/tasks/main.yml @@ -10,21 +10,34 @@ vars: mdd_file_patterns: "{{ mdd_data_patterns }}" -# -# Merge in the data from the file if the tags match with the host (or are not specified) -# -- name: Gather the MDD Data +- name: Define file_list_dict + set_fact: + file_list_dict: [] + +- name: Add all files to a list set_fact: - mdd_data_list: "{{ ( mdd_data_list | default([]) ) + [ mdd_file.mdd_data ] }}" + file_list_dict: "{{ file_list_dict + file }}" loop: "{{ mdd_file_list }}" - when: ('all' in mdd_file.mdd_tags | default(['all'])) or (mdd_file.mdd_tags | intersect(tags | default([]))) vars: - mdd_file: "{{ lookup('template', item ) | from_yaml }}" + file: "{{ lookup('template', item ) | from_yaml_all }}" + +# Merge in the data from the file if the tags match with the host (or are not specified) +# We now have to call a module, because nested loops in ansible are messy +# and not good for dealing with merged files (oc-*.yml with multiple files in it, each denoted by - - -) +- name: Gather the MDD Data + gather_mdd_data: + mdd_file_data: "{{ file_list_dict }}" + tags: "{{ tags }}" + register: result + +- name: Set mdd_data_list + set_fact: + mdd_data_list: "{{ result.mdd_data }}" - name: Combine the MDD Data set_fact: mdd_data: "{{ mdd_data_list | ciscops.mdd.mdd_combine(recursive=True) }}" when: mdd_data_list is defined -- include_tasks: netbox.yml +- include_tasks: netbox.yml when: netbox_api is defined or lookup('env', 'NETBOX_API', default=false) From 44a671ce32636992e920e29b11ed26e4982b8ed4 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 5 Jun 2023 21:51:20 -0400 Subject: [PATCH 042/104] Fixing import and documentation issues --- plugins/modules/elevate_configs.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 1af889d..681e1dc 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -35,19 +35,20 @@ - Paul Pajerski (@ppajersk) options: mdd_data_dir: - description: The directory of the mdd data - - When using this, always set the input to "{{mdd_data_root}}" in the playbook - - Like this mdd_data_dir: "{{mdd_data_root}}" + description: + - The directory of the mdd data + - When using this, always set the input to mdd_data_root in the playbook required: true type: str is_test_run: - description: Determines if the elevation process will happen in the temp_dir + description: + - Determines if the elevation process will happen in the temp_dir - Allows user to see the results and approve/disaprove before commiting to mdd_data directory - Default is False - You can specify True by adding -e "test=true" when running the ansible playbook required: true type: bool - temp_dir + temp_dir: description: The directory where the elevate process will happen if is_test_run == True required: true type: str @@ -71,14 +72,22 @@ """ import os -import time +import traceback from fnmatch import fnmatch import yaml import shutil -from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.basic import AnsibleModule, missing_required_lib debug = [] # global variable for debugging +try: + import yaml +except ImportError: + HAS_YAML = False + YAML_IMPORT_ERROR = traceback.format_exc() +else: + HAS_YAML = True + class Elevate: def __init__(self, mdd_data_dir, temp_dir, is_test_run: bool = False): @@ -367,6 +376,10 @@ def main(): module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) + if not HAS_YAML: + # Needs: from ansible.module_utils.basic import missing_required_lib + module.fail_json(msg=missing_required_lib('yaml')) + Elevate(module.params['mdd_data_dir'], module.params['temp_dir'], module.params['is_test_run']) module.exit_json(changed=True, failed=False, debug=debug) From eac61955bc8db571bb4276111abd7abc18931cdd Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 5 Jun 2023 22:06:35 -0400 Subject: [PATCH 043/104] Removing original yaml import --- plugins/modules/elevate_configs.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 681e1dc..766a1fd 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -74,7 +74,6 @@ import os import traceback from fnmatch import fnmatch -import yaml import shutil from ansible.module_utils.basic import AnsibleModule, missing_required_lib @@ -374,11 +373,11 @@ def main(): temp_dir=dict(required=True, type='str') ) - module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) - if not HAS_YAML: # Needs: from ansible.module_utils.basic import missing_required_lib - module.fail_json(msg=missing_required_lib('yaml')) + module.fail_json(msg=missing_required_lib('yaml'), exception=IPADDRESS_IMPORT_ERROR) + + module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) Elevate(module.params['mdd_data_dir'], module.params['temp_dir'], module.params['is_test_run']) module.exit_json(changed=True, failed=False, debug=debug) From 5b15076f904117b191a127a65a5c782663a74521 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 5 Jun 2023 22:10:00 -0400 Subject: [PATCH 044/104] Fixing module use in wrong part of code --- plugins/modules/elevate_configs.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 766a1fd..f833074 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -373,11 +373,11 @@ def main(): temp_dir=dict(required=True, type='str') ) + module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) + if not HAS_YAML: # Needs: from ansible.module_utils.basic import missing_required_lib - module.fail_json(msg=missing_required_lib('yaml'), exception=IPADDRESS_IMPORT_ERROR) - - module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) + module.fail_json(msg=missing_required_lib('yaml')) Elevate(module.params['mdd_data_dir'], module.params['temp_dir'], module.params['is_test_run']) module.exit_json(changed=True, failed=False, debug=debug) From 10356e610beb4adcb958dc1903b44bbf78865399 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 5 Jun 2023 22:19:15 -0400 Subject: [PATCH 045/104] More small changes for pipeline to pass --- plugins/modules/elevate_configs.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index f833074..3085ec4 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -285,7 +285,7 @@ def elevate_level(self, rel_path: str) -> None: yaml.safe_dump_all(write_configs, file, sort_keys=False, explicit_start=True) if bool(result): # write to elevated file - file_path = f"{path}/{anchor_file.name}" + file_path = str(path) + "/" + str(anchor_file.name) open_type = 'w' if os.path.exists(file_path): open_type = 'a' @@ -376,7 +376,6 @@ def main(): module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) if not HAS_YAML: - # Needs: from ansible.module_utils.basic import missing_required_lib module.fail_json(msg=missing_required_lib('yaml')) Elevate(module.params['mdd_data_dir'], module.params['temp_dir'], module.params['is_test_run']) From a3182d872df4076ef6713b4cf646524784e04937 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 5 Jun 2023 22:27:19 -0400 Subject: [PATCH 046/104] Fixing syntax issue --- plugins/modules/elevate_configs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 3085ec4..69cb266 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -89,7 +89,7 @@ class Elevate: - def __init__(self, mdd_data_dir, temp_dir, is_test_run: bool = False): + def __init__(self, mdd_data_dir, temp_dir, is_test_run): self.mdd_data_dir = mdd_data_dir self.is_test_run = is_test_run @@ -369,7 +369,7 @@ def main(): arguments = dict( mdd_data_dir=dict(required=True, type='str'), - is_test_run=dict(required=True, type='bool'), + is_test_run=dict(required=True, type='bool', default=False), temp_dir=dict(required=True, type='str') ) From 5c36e824d7d4fa17e85ea8af2493a1dc6ae184ba Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 5 Jun 2023 22:29:24 -0400 Subject: [PATCH 047/104] Fixing type declarations --- plugins/modules/elevate_configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 69cb266..8bf6770 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -98,7 +98,7 @@ def __init__(self, mdd_data_dir, temp_dir, is_test_run): self.elevate() - def get_parent_path(self, parent_keys: list) -> None: + def get_parent_path(self, parent_keys) -> None: """Returns absolute path for file based on the list""" path = "" From 10d8ab61a3f44662c2b942d3fe9709bebea5950e Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 5 Jun 2023 22:43:09 -0400 Subject: [PATCH 048/104] Removing parameter types and return types --- playbooks/elevate_configs.yml | 1 + plugins/modules/elevate_configs.py | 36 +++++++++++++++--------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/playbooks/elevate_configs.yml b/playbooks/elevate_configs.yml index 1536c08..372c420 100644 --- a/playbooks/elevate_configs.yml +++ b/playbooks/elevate_configs.yml @@ -16,6 +16,7 @@ - debug: var: elevate_result.debug + # TODO this debug currently does not work - pause: prompt: "Is this result okay? (yes/no)" diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 8bf6770..dd8212a 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -98,7 +98,7 @@ def __init__(self, mdd_data_dir, temp_dir, is_test_run): self.elevate() - def get_parent_path(self, parent_keys) -> None: + def get_parent_path(self, parent_keys): """Returns absolute path for file based on the list""" path = "" @@ -106,7 +106,7 @@ def get_parent_path(self, parent_keys) -> None: path += "/" + key return path[1:] - def unflatten_dict(self, flattened_dictionary: dict) -> dict: + def unflatten_dict(self, flattened_dictionary): """Takes a flattened dictionary and converts it back to a nested dictionary based on the levels indicated in the keys""" if not bool(flattened_dictionary): @@ -126,7 +126,7 @@ def unflatten_dict(self, flattened_dictionary: dict) -> dict: return result - def flatten_dict(self, dictionary: dict, prefix: str = '') -> dict: + def flatten_dict(self, dictionary, prefix): """Takes a nested dictionary and convertes it to a single-depth dictionary with keys indicating the levels""" flattened = {} @@ -137,21 +137,21 @@ def flatten_dict(self, dictionary: dict, prefix: str = '') -> dict: flattened[prefix + key] = value return flattened - def find_common_key_value_pairs(self, dicts: list) -> dict: + def find_common_key_value_pairs(self, dicts): """Find common keys between a list of dictionaries""" if not bool(dicts): return {} - common_pairs = self.flatten_dict(dicts[0]) + common_pairs = self.flatten_dict(dicts[0], "") for dictionary in dicts[1:]: - flattened_dict = self.flatten_dict(dictionary) + flattened_dict = self.flatten_dict(dictionary, "") common_pairs = self.intersect_dicts(common_pairs, flattened_dict) return common_pairs - def intersect_dicts(self, dict1: dict, dict2: dict) -> dict: + def intersect_dicts(self, dict1, dict2): """Finds the intersection between two dictionaries""" intersection = {} @@ -160,7 +160,7 @@ def intersect_dicts(self, dict1: dict, dict2: dict) -> dict: intersection[key] = dict1[key] return intersection - def find_common_configs(self, configs: list) -> dict: + def find_common_configs(self, configs): """Returns the common configs""" return self.unflatten_dict(self.find_common_key_value_pairs(configs)) @@ -176,17 +176,17 @@ def remove_and_create_temp_dir(self) -> None: shutil.copytree(self.mdd_data_dir, self.temp_dir) self.mdd_data_dir = self.temp_dir - def get_meta_tag(self, tags: list) -> str: + def get_meta_tag(self, tags): """Creates a one meta tag from the list joined by a separator""" return self.separator.join(tags) - def get_tags(self, meta_tag: str) -> list: + def get_tags(self, meta_tag): """Creates a list from the meta tag by splitting it""" return meta_tag.split(self.separator) - def elevate_level(self, rel_path: str) -> None: + def elevate_level(self, rel_path): """Finds common configs in a directory's child directories and elevates them to the current directory""" # How this function operates @@ -255,9 +255,9 @@ def elevate_level(self, rel_path: str) -> None: result = self.find_common_configs(configs) # Delete common configs from lower config files - flattened_result = self.flatten_dict(result) + flattened_result = self.flatten_dict(result, "") for file_path, config in changed_files.items(): # remove from old file - config_data = self.flatten_dict(config['data']) + config_data = self.flatten_dict(config['data'], "") # delete common configs for key in flattened_result: @@ -319,14 +319,14 @@ def elevate_level(self, rel_path: str) -> None: # file.write("---\n") # yaml.safe_dump(result, file, sort_keys=False) - def iterate_directory(self, child_dict: dict) -> None: + def iterate_directory(self, child_dict): """Iterates through the network's directory from bottom up""" parent_keys = [] hit_bottom_dir = False self.iterate_directory_helper(child_dict, parent_keys, hit_bottom_dir) - def iterate_directory_helper(self, child_dict: dict, parent_keys: list, hit_bottom_dir: bool) -> None: + def iterate_directory_helper(self, child_dict, parent_keys, hit_bottom_dir): """Recursive function helper for iterate_directory()""" for key, value in child_dict.items(): @@ -341,7 +341,7 @@ def iterate_directory_helper(self, child_dict: dict, parent_keys: list, hit_bott hit_bottom_dir = False self.elevate_level(self.get_parent_path(parent_keys)) - def generate_directory_structure(self, path: str) -> dict: + def generate_directory_structure(self, path): """Generates a dirctory structure in the form of a dictionary from a given path""" result = {} @@ -353,7 +353,7 @@ def generate_directory_structure(self, path: str) -> dict: result[file] = self.generate_directory_structure(sub_path) return result - def elevate(self) -> None: + def elevate(self): """Starts the elevations process""" self.remove_and_create_temp_dir() @@ -369,7 +369,7 @@ def main(): arguments = dict( mdd_data_dir=dict(required=True, type='str'), - is_test_run=dict(required=True, type='bool', default=False), + is_test_run=dict(required=True, type='bool'), temp_dir=dict(required=True, type='str') ) From 35a911282eab2e25712328712e97f28dfed043de Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 5 Jun 2023 22:55:16 -0400 Subject: [PATCH 049/104] Fixing paramter requirements in python module --- plugins/modules/elevate_configs.py | 2 +- plugins/modules/gather_mdd_data.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index dd8212a..9e44b01 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -165,7 +165,7 @@ def find_common_configs(self, configs): return self.unflatten_dict(self.find_common_key_value_pairs(configs)) - def remove_and_create_temp_dir(self) -> None: + def remove_and_create_temp_dir(self): """Removes the temp directory. If it is a test run, copies mdd-data into the tmp dir""" if os.path.exists(self.temp_dir): diff --git a/plugins/modules/gather_mdd_data.py b/plugins/modules/gather_mdd_data.py index 154baf7..7ab6207 100644 --- a/plugins/modules/gather_mdd_data.py +++ b/plugins/modules/gather_mdd_data.py @@ -71,8 +71,8 @@ def main(): """Runs the gather process""" arguments = dict( - mdd_file_data=dict(required=True, type='list'), - tags=dict(required=True, type='list') + mdd_file_data=dict(required=True, type='list', elements='dict'), + tags=dict(required=True, type='list', elements='str') ) module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) From ac00876fa29c6aef845f6e78ec3be48bba20454d Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 5 Jun 2023 22:58:56 -0400 Subject: [PATCH 050/104] fixing documentation for gather facts --- plugins/modules/gather_mdd_data.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/modules/gather_mdd_data.py b/plugins/modules/gather_mdd_data.py index 7ab6207..37b13b1 100644 --- a/plugins/modules/gather_mdd_data.py +++ b/plugins/modules/gather_mdd_data.py @@ -36,13 +36,17 @@ - Paul Pajerski (@ppajersk) options: mdd_file_data: - description: The directory of the mdd data + description: + - The directory of the mdd data required: true type: list + elements: dict tags: - description: The tags associated with a device + description: + - The tags associated with a device required: true type: list + elements: str """ EXAMPLES = r""" From 2e1775b373d72b956d57f1db61cf4bddaa5b6e95 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Thu, 8 Jun 2023 00:14:17 -0400 Subject: [PATCH 051/104] Implemented tags functionality. Also implemented dynamic data aggregation in merged config files. Additionality ensured full cycle functionality. Making a change in elevated configs, updating and re-harvesting + elevate correclty shows the updated configs --- .../{elevate_configs.yml => elevate.yml} | 6 +- playbooks/nso_harvest_data.yml | 2 +- plugins/modules/elevate_configs.py | 170 ++++++++++++++---- plugins/modules/gather_mdd_data.py | 11 +- 4 files changed, 148 insertions(+), 41 deletions(-) rename playbooks/{elevate_configs.yml => elevate.yml} (92%) diff --git a/playbooks/elevate_configs.yml b/playbooks/elevate.yml similarity index 92% rename from playbooks/elevate_configs.yml rename to playbooks/elevate.yml index 372c420..81c36f4 100644 --- a/playbooks/elevate_configs.yml +++ b/playbooks/elevate.yml @@ -14,9 +14,9 @@ temp_dir: "{{ temp_dir }}" register: elevate_result - - debug: - var: elevate_result.debug - # TODO this debug currently does not work + # - debug: + # var: elevate_result.debug + # # TODO this debug currently does not work - pause: prompt: "Is this result okay? (yes/no)" diff --git a/playbooks/nso_harvest_data.yml b/playbooks/nso_harvest_data.yml index 367fbac..b2724ac 100644 --- a/playbooks/nso_harvest_data.yml +++ b/playbooks/nso_harvest_data.yml @@ -18,7 +18,7 @@ - name: Retrieve and set the device tags set_fact: - device_tags: "{{ device_inv_data.tags }}" + device_tags: "{{ [[device_inv_data.tags | sort | join(', ')][0]] }}" - name: Retrieve device tags debug: diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 9e44b01..d5b47e2 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -70,7 +70,7 @@ - debug: var: result.debug """ - +import time import os import traceback from fnmatch import fnmatch @@ -95,6 +95,11 @@ def __init__(self, mdd_data_dir, temp_dir, is_test_run): self.is_test_run = is_test_run self.temp_dir = temp_dir self.separator = '__*__' + self.at_bottom_dir = False + self.created_files = [] + self.all_tags = [] + self.tag_key = 'mdd_tags' + self.main_key = 'mdd_data' self.elevate() @@ -179,7 +184,8 @@ def remove_and_create_temp_dir(self): def get_meta_tag(self, tags): """Creates a one meta tag from the list joined by a separator""" - return self.separator.join(tags) + # return self.separator.join(tags) + return tags[-1] # TODO this is a hack, please fix : ) def get_tags(self, meta_tag): """Creates a list from the meta tag by splitting it""" @@ -203,6 +209,34 @@ def elevate_level(self, rel_path): dir_files = [file for file in os.scandir(path) if file.is_dir()] tags = {} + + # Only do if file in all directories + # valid_files = {} + # first_time = True + # for dir in dir_files: # obtain a base - where would do tags + # # get tags + # for file in os.scandir(dir.path): + # if file.is_file() and fnmatch(file.name, '*.yml'): + # if first_time: + # valid_files.setdefault(file.name, []).append(dir.name) + # else: + # if file.name not in valid_files: + # continue + # else: + # valid_files[file.name].append(dir.name) + + # with open(file.path, 'r', encoding='utf-8') as data_file: + # data_dicts = yaml.safe_load_all(data_file) + # for data in data_dicts: + # if self.tag_key in data: + # tags.setdefault(self.get_meta_tag(data[self.tag_key]), []).append(dir) + + # first_time = False + + # for filename, directories in list(valid_files.items()): + # if len(directories) != len(dir_files): + # del valid_files[filename] + for dir in dir_files: # obtain a base - where would do tags # get tags for file in os.scandir(dir.path): @@ -210,15 +244,23 @@ def elevate_level(self, rel_path): with open(file.path, 'r', encoding='utf-8') as data_file: data_dicts = yaml.safe_load_all(data_file) for data in data_dicts: - if 'mdd_tags' in data: - tags.setdefault(self.get_meta_tag(data['mdd_tags']), []).append(dir) + if self.tag_key in data: + tags.setdefault(self.get_meta_tag(data[self.tag_key]), []).append(dir) # TODO this fails when elevate is run sequentially + if self.at_bottom_dir: + self.all_tags = sorted(list(set(self.all_tags).union(set(data[self.tag_key]))), key=lambda x: x.lower()) break + # # If not all directories contain that tag, don't do it + # if not self.at_bottom_dir: + # for meta_tag, directories in list(tags.items()): + # if len(directories) != len(dir_files): + # del tags[meta_tag] + for meta_tag, directories in tags.items(): # get anchor anchor_files = [] - for file in os.scandir(directories[-1]): - if file.is_file() and fnmatch(file.name, '*.yml'): + for file in os.scandir(directories[-1].path): + if file.is_file() and fnmatch(file.name, '*.yml'): # and file.name in valid_files: # TODO: ADDED anchor_files.append(file) for anchor_file in anchor_files: # files in anchor directory @@ -237,7 +279,7 @@ def elevate_level(self, rel_path): with open(yml_file.path, 'r', encoding='utf-8') as data_file: data_dicts = yaml.safe_load_all(data_file) for data in data_dicts: - if 'mdd_tags' in data and self.get_meta_tag(data['mdd_tags']) == meta_tag: + if self.tag_key in data and self.get_meta_tag(data[self.tag_key]) == meta_tag: configs.append(data) changed_files[yml_file.path] = {'data': data, 'filename': yml_file.name} break @@ -273,51 +315,99 @@ def elevate_level(self, rel_path): if config['data'] == data: if bool(config_data): config_data = self.unflatten_dict(config_data) - config_data['mdd_tags'] = self.get_tags(meta_tag) + config_data[self.tag_key] = self.get_tags(meta_tag) write_configs.append(config_data) else: write_configs.append(data) if len(write_configs) == 0: os.remove(file_path) + if file_path in self.created_files: + self.created_files.remove(file_path) else: with open(file_path, 'w') as file: yaml.safe_dump_all(write_configs, file, sort_keys=False, explicit_start=True) + if self.tag_key in result: + del result[self.tag_key] + if bool(result): # write to elevated file file_path = str(path) + "/" + str(anchor_file.name) open_type = 'w' if os.path.exists(file_path): open_type = 'a' + else: + self.created_files.append(file_path) with open(file_path, open_type) as file: - result['mdd_tags'] = self.get_tags(meta_tag) + result[self.tag_key] = self.get_tags(meta_tag) file.write("---\n") yaml.safe_dump(result, file, sort_keys=False) - # # below is if we want to merge tags - would have to change above algorithm when comparing to account for meta_tag being different - # # Would have to do if tags in all_tags - # result['mdd_tags'] = self.get_tags(meta_tag) - # if os.path.exists(file_path): - # with open(file_path, 'r') as file: - # data_dicts = yaml.safe_load_all(file) - - # results_to_write = [] - # for data in data_dicts: - # if data['mdd_data'] == result['mdd_data']: - # result['mdd_tags'].extend(data['mdd_tags']) - # else: - # results_to_write.append(data) - # results_to_write.append(result) - - # with open(file_path, 'w') as file: - # for result_data in results_to_write: - # file.write("---\n") - # yaml.safe_dump(result_data, file, sort_keys=False) - - # else: - # with open(file_path, 'w') as file: - # file.write("---\n") - # yaml.safe_dump(result, file, sort_keys=False) + # This method is stupd and complicated so I will explain it + def aggregate_results(self, filepaths): + """Goes through each file and combines the results""" + for filepath in filepaths: # Iterate through all the files we just creatd + data_configs = [] + with open(filepath, 'r', encoding='utf-8') as file: + configs = yaml.safe_load_all(file) + for config in configs: + data_configs.append(config) + + # Our first step is to find all the common elements and put it at the top of each file + result = self.find_common_configs(data_configs) # find all the common configs + result_flattened = self.flatten_dict(result, "") + + tags = [] + final_configs = [] + for config in data_configs: # Look through all the configs + data_config_tags = config[self.tag_key] + flattened_subsection = self.flatten_dict(config, "") + remove_keys = [] + for key, _ in flattened_subsection.items(): + if key in result_flattened: # If we find the key in the config anchor dict + + for check_tag in data_config_tags: + if check_tag not in tags: + tags.append(check_tag) + + remove_keys.append(key) # Remove it from the old config dict + + for key in remove_keys: # Remove the keys later because we can't edit a list mid iteration + del flattened_subsection[key] + + unflattened_result = self.unflatten_dict(flattened_subsection) + if self.main_key in unflattened_result: + # If the result isn't empty use it + # because we might be deleting all the keys in a dict, and mdd_tags would remain + final_configs.append(unflattened_result) + + print_to_file = [] + if tags and result: + if sorted(tags) == sorted(self.all_tags): # If all tags are present, change tags to "all" + tags = "all" + + result[self.tag_key] = [tags] + print_to_file.append(result) # Put the configs commonality at the front of the list + + current_configs = [] + # We need to merge all matching configs from here, any duplicates will be pushed together + # and their tags combined + for config in final_configs: # For all the remaining configs + mdd_data = config[self.main_key] + mdd_tags = config[self.tag_key] + + if mdd_data not in current_configs: # Add the dict to the list + current_configs.append(mdd_data) + print_to_file.append({self.main_key: mdd_data, self.tag_key: mdd_tags}) + else: # If the data already exists, append the tags + for res_item in print_to_file: + if res_item[self.main_key] == mdd_data: + for tag in mdd_tags: + res_item[self.tag_key].append(tag) + + # Write result back to the file + with open(filepath, 'w', encoding='utf-8') as file: + yaml.safe_dump_all(print_to_file, file, explicit_start=True, sort_keys=False) def iterate_directory(self, child_dict): """Iterates through the network's directory from bottom up""" @@ -333,13 +423,15 @@ def iterate_directory_helper(self, child_dict, parent_keys, hit_bottom_dir): if isinstance(value, dict) and not bool(value) and not hit_bottom_dir: # means is empty and therefore hit bottom directory hit_bottom_dir = True + self.at_bottom_dir = True elif not hit_bottom_dir: # continue till hit bottom dir parent_keys.append(key) self.iterate_directory_helper(value, parent_keys, hit_bottom_dir) # iterate through child dictionaries parent_keys.pop() - hit_bottom_dir = False self.elevate_level(self.get_parent_path(parent_keys)) + hit_bottom_dir = False + self.at_bottom_dir = False def generate_directory_structure(self, path): """Generates a dirctory structure in the form of a dictionary from a given path""" @@ -356,13 +448,20 @@ def generate_directory_structure(self, path): def elevate(self): """Starts the elevations process""" + # Used for test runs. Creates a temp dir for test runs self.remove_and_create_temp_dir() - # Find all the common configs + # Recreated the directory structure as a dictionary yaml_network_data = self.generate_directory_structure(self.mdd_data_dir) + # Elevate the configs self.iterate_directory(yaml_network_data) + # Clean the elevated configs, aggregating common results + # like configs in each file will be move to the top + # and matching configs will be merged afterwards + self.aggregate_results(self.created_files) + def main(): """Runs the elevation process""" @@ -375,6 +474,7 @@ def main(): module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) + # Import yaml if not HAS_YAML: module.fail_json(msg=missing_required_lib('yaml')) diff --git a/plugins/modules/gather_mdd_data.py b/plugins/modules/gather_mdd_data.py index 37b13b1..5eaeb94 100644 --- a/plugins/modules/gather_mdd_data.py +++ b/plugins/modules/gather_mdd_data.py @@ -59,13 +59,20 @@ from ansible.module_utils.basic import AnsibleModule +debug = [] def gather(file_data, tags): """Gathers the data for a given tag""" result = [] for file in file_data: - if 'all' in file['mdd_tags'] or tags == file['mdd_tags']: + all_tags = True + for tag in tags: + if tag not in file['mdd_tags']: + all_tags = False + break + + if 'all' in file['mdd_tags'] or all_tags: result.append(file['mdd_data']) return result @@ -81,7 +88,7 @@ def main(): module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) data = gather(module.params['mdd_file_data'], module.params['tags']) - module.exit_json(changed=True, failed=False, mdd_data=data) + module.exit_json(changed=True, failed=False, mdd_data=data, debug=debug) if __name__ == '__main__': From e9b01ff8e4b5955e8a1538d92dbbe861aca98d7f Mon Sep 17 00:00:00 2001 From: Paul <> Date: Thu, 8 Jun 2023 00:19:26 -0400 Subject: [PATCH 052/104] Fixing pep8 style issues --- plugins/modules/elevate_configs.py | 2 +- plugins/modules/gather_mdd_data.py | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index d5b47e2..b7c4461 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -363,7 +363,7 @@ def aggregate_results(self, filepaths): data_config_tags = config[self.tag_key] flattened_subsection = self.flatten_dict(config, "") remove_keys = [] - for key, _ in flattened_subsection.items(): + for key, val in flattened_subsection.items(): if key in result_flattened: # If we find the key in the config anchor dict for check_tag in data_config_tags: diff --git a/plugins/modules/gather_mdd_data.py b/plugins/modules/gather_mdd_data.py index 5eaeb94..893848a 100644 --- a/plugins/modules/gather_mdd_data.py +++ b/plugins/modules/gather_mdd_data.py @@ -61,19 +61,20 @@ debug = [] + def gather(file_data, tags): """Gathers the data for a given tag""" result = [] for file in file_data: - all_tags = True - for tag in tags: - if tag not in file['mdd_tags']: - all_tags = False - break - - if 'all' in file['mdd_tags'] or all_tags: - result.append(file['mdd_data']) + all_tags = True + for tag in tags: + if tag not in file['mdd_tags']: + all_tags = False + break + + if 'all' in file['mdd_tags'] or all_tags: + result.append(file['mdd_data']) return result From 51753b5f009286d3ba4e4d6c8ab2859852f130b3 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Thu, 8 Jun 2023 00:22:57 -0400 Subject: [PATCH 053/104] Fixing indent --- plugins/modules/gather_mdd_data.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/modules/gather_mdd_data.py b/plugins/modules/gather_mdd_data.py index 893848a..9788835 100644 --- a/plugins/modules/gather_mdd_data.py +++ b/plugins/modules/gather_mdd_data.py @@ -67,14 +67,14 @@ def gather(file_data, tags): result = [] for file in file_data: - all_tags = True - for tag in tags: - if tag not in file['mdd_tags']: - all_tags = False - break + all_tags = True + for tag in tags: + if tag not in file['mdd_tags']: + all_tags = False + break if 'all' in file['mdd_tags'] or all_tags: - result.append(file['mdd_data']) + result.append(file['mdd_data']) return result From dfe25a4cc35e7cb102303d633bfb8d412af693df Mon Sep 17 00:00:00 2001 From: Paul <> Date: Thu, 8 Jun 2023 00:25:39 -0400 Subject: [PATCH 054/104] removing unused import --- plugins/modules/elevate_configs.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index b7c4461..7fbb41a 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -70,7 +70,6 @@ - debug: var: result.debug """ -import time import os import traceback from fnmatch import fnmatch From 75823f8731c3dff6a987d726d62c5f9869a1e775 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Thu, 8 Jun 2023 16:07:16 -0400 Subject: [PATCH 055/104] Fixing minor bugs, and ensuring tag order --- plugins/modules/elevate_configs.py | 9 ++++++--- plugins/modules/gather_mdd_data.py | 16 ++++++++-------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 7fbb41a..2656108 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -363,7 +363,7 @@ def aggregate_results(self, filepaths): flattened_subsection = self.flatten_dict(config, "") remove_keys = [] for key, val in flattened_subsection.items(): - if key in result_flattened: # If we find the key in the config anchor dict + if key in result_flattened and result_flattened[key] == val: # If we find the key in the config anchor dict for check_tag in data_config_tags: if check_tag not in tags: @@ -383,9 +383,9 @@ def aggregate_results(self, filepaths): print_to_file = [] if tags and result: if sorted(tags) == sorted(self.all_tags): # If all tags are present, change tags to "all" - tags = "all" + tags = ["all"] - result[self.tag_key] = [tags] + result[self.tag_key] = tags print_to_file.append(result) # Put the configs commonality at the front of the list current_configs = [] @@ -404,6 +404,9 @@ def aggregate_results(self, filepaths): for tag in mdd_tags: res_item[self.tag_key].append(tag) + # Sort the configs by number of tags + print_to_file[1:] = sorted(print_to_file[1:], key=lambda x: len(x[self.tag_key]), reverse=True) + # Write result back to the file with open(filepath, 'w', encoding='utf-8') as file: yaml.safe_dump_all(print_to_file, file, explicit_start=True, sort_keys=False) diff --git a/plugins/modules/gather_mdd_data.py b/plugins/modules/gather_mdd_data.py index 9788835..06d9ddc 100644 --- a/plugins/modules/gather_mdd_data.py +++ b/plugins/modules/gather_mdd_data.py @@ -67,14 +67,14 @@ def gather(file_data, tags): result = [] for file in file_data: - all_tags = True - for tag in tags: - if tag not in file['mdd_tags']: - all_tags = False - break - - if 'all' in file['mdd_tags'] or all_tags: - result.append(file['mdd_data']) + new_tags = [] + for tag in file['mdd_tags']: + new_tag = ', '.join(sorted(tag.split(', '))) + new_tags.append(new_tag) + file['mdd_tags'] = sorted(new_tags) + + if 'all' in file['mdd_tags'] or ', '.join(sorted(tags)) in file['mdd_tags']: + result.append(file['mdd_data']) return result From 1cc3bebc4d4c05097fa2b7a3480ccd92cbb959f6 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Wed, 28 Jun 2023 13:27:19 -0400 Subject: [PATCH 056/104] Updating algorithm for stability and speed --- playbooks/elevate.yml | 13 +- plugins/modules/elevate_configs.py | 473 ++++++++++++++++++++--------- 2 files changed, 332 insertions(+), 154 deletions(-) diff --git a/playbooks/elevate.yml b/playbooks/elevate.yml index 81c36f4..3eed582 100644 --- a/playbooks/elevate.yml +++ b/playbooks/elevate.yml @@ -7,16 +7,21 @@ temp_dir: "{{ mdd_data_parent }}/temp_dir" is_test_run: "{{ test | default(false) }}" tasks: + - name: Get ansible inventory + command: "ansible-inventory -i {{ mdd_inventory_root }} --list" + register: ansible_inventory + - name: elevate elevate_configs: mdd_data_dir: "{{ mdd_data_root }}" is_test_run: "{{ is_test_run }}" temp_dir: "{{ temp_dir }}" + ansible_inventory: "{{ ansible_inventory.stdout_lines | join('\n') }}" + mdd_data_patterns: "{{ mdd_data_patterns }}" register: elevate_result - # - debug: - # var: elevate_result.debug - # # TODO this debug currently does not work + - debug: + var: elevate_result.debug - pause: prompt: "Is this result okay? (yes/no)" @@ -45,4 +50,4 @@ - "rm -r {{ mdd_data_root }}/" - "cp -r {{ temp_dir }}/ {{ mdd_data_root }}/" - "rm -r {{ temp_dir }}/" - when: is_ok_continue \ No newline at end of file + when: is_ok_continue diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 2656108..bb3402d 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -74,6 +74,7 @@ import traceback from fnmatch import fnmatch import shutil +from contextlib import suppress from ansible.module_utils.basic import AnsibleModule, missing_required_lib debug = [] # global variable for debugging @@ -88,17 +89,26 @@ class Elevate: - def __init__(self, mdd_data_dir, temp_dir, is_test_run): + """Elevates the configs for a network""" + + def __init__(self, mdd_data_dir, temp_dir, is_test_run, ansible_inventory, mdd_data_patterns): self.mdd_data_dir = mdd_data_dir self.is_test_run = is_test_run self.temp_dir = temp_dir + self.mdd_data_patterns = mdd_data_patterns + self.ansible_inventory = ansible_inventory['_meta']['hostvars'] self.separator = '__*__' self.at_bottom_dir = False - self.created_files = [] + self.created_files = {} self.all_tags = [] + self.device_list = [] self.tag_key = 'mdd_tags' self.main_key = 'mdd_data' + self.yaml_network_data = {} + self.forward_associated_tags = {} + self.current_level = 0 + self.unelevated_files = {} self.elevate() @@ -184,13 +194,35 @@ def get_meta_tag(self, tags): """Creates a one meta tag from the list joined by a separator""" # return self.separator.join(tags) - return tags[-1] # TODO this is a hack, please fix : ) + return tags[-1] def get_tags(self, meta_tag): """Creates a list from the meta tag by splitting it""" return meta_tag.split(self.separator) + def get_file_key(self, path, file, tag): + """Creates a key based on the path to the file and the associated tag""" + + return path + '/' + file + self.separator + tag + + def check_unable_elevate(self, parent_dir, file, tag): + """Determines to not elevate a file given a tag if the tag and associated file are in the self.unelevated_files dictionary with a lower level""" + + for file_tag, levels in self.unelevated_files.items(): + if parent_dir in file_tag and file in file_tag and tag in file_tag: + for level in levels: + if level < self.current_level: + return True + return False + + def matches_file_pattern(self, filename): + """Determines if a file matches the mdd patterns""" + for pattern in self.mdd_data_patterns: + if fnmatch(filename, pattern): + return True + return False + def elevate_level(self, rel_path): """Finds common configs in a directory's child directories and elevates them to the current directory""" @@ -201,151 +233,272 @@ def elevate_level(self, rel_path): # if base file name in here, grab config # elevate config (single file) if applicable + path = os.path.join(self.mdd_data_dir, rel_path) if rel_path == "": # don't iterate through top level directory return + if path not in self.forward_associated_tags: + return - path = os.path.join(self.mdd_data_dir, rel_path) - - dir_files = [file for file in os.scandir(path) if file.is_dir()] tags = {} + parent_dir_name = path.rsplit("/", 1)[1] + par_dir = path.rsplit("/", 1)[0] + + if self.at_bottom_dir: + for tags, device_list in self.forward_associated_tags[path].items(): + anchor_device = path + "/" + device_list[0] + if len(device_list) == 1: + # if it's the only device with that tag just elevate everything + for file in os.scandir(anchor_device): + if not self.matches_file_pattern(file.name): + continue + + file_name = str(file.name) + destination_path = path + "/" + file_name + + if os.path.exists(destination_path): # append to file + with open(destination_path, 'a', encoding='utf-8') as write_file, open(file.path, 'r', encoding='utf-8') as read_file: + yaml.safe_dump_all(yaml.safe_load_all(read_file), write_file, sort_keys=False, explicit_start=True) + + else: # copy everything + with open(destination_path, 'a', encoding='utf-8') as write_file, open(file.path, 'r', encoding='utf-8') as read_file: + shutil.copyfileobj(read_file, write_file) + + # remove old file + os.remove(file.path) + self.created_files[destination_path] = None - # Only do if file in all directories - # valid_files = {} - # first_time = True - # for dir in dir_files: # obtain a base - where would do tags - # # get tags - # for file in os.scandir(dir.path): - # if file.is_file() and fnmatch(file.name, '*.yml'): - # if first_time: - # valid_files.setdefault(file.name, []).append(dir.name) - # else: - # if file.name not in valid_files: - # continue - # else: - # valid_files[file.name].append(dir.name) - - # with open(file.path, 'r', encoding='utf-8') as data_file: - # data_dicts = yaml.safe_load_all(data_file) - # for data in data_dicts: - # if self.tag_key in data: - # tags.setdefault(self.get_meta_tag(data[self.tag_key]), []).append(dir) - - # first_time = False - - # for filename, directories in list(valid_files.items()): - # if len(directories) != len(dir_files): - # del valid_files[filename] - - for dir in dir_files: # obtain a base - where would do tags - # get tags - for file in os.scandir(dir.path): - if file.is_file() and fnmatch(file.name, '*.yml'): - with open(file.path, 'r', encoding='utf-8') as data_file: - data_dicts = yaml.safe_load_all(data_file) - for data in data_dicts: - if self.tag_key in data: - tags.setdefault(self.get_meta_tag(data[self.tag_key]), []).append(dir) # TODO this fails when elevate is run sequentially - if self.at_bottom_dir: - self.all_tags = sorted(list(set(self.all_tags).union(set(data[self.tag_key]))), key=lambda x: x.lower()) - break - - # # If not all directories contain that tag, don't do it - # if not self.at_bottom_dir: - # for meta_tag, directories in list(tags.items()): - # if len(directories) != len(dir_files): - # del tags[meta_tag] - - for meta_tag, directories in tags.items(): - # get anchor - anchor_files = [] - for file in os.scandir(directories[-1].path): - if file.is_file() and fnmatch(file.name, '*.yml'): # and file.name in valid_files: # TODO: ADDED - anchor_files.append(file) - - for anchor_file in anchor_files: # files in anchor directory - configs = [] - changed_files = {} - file_in_all_dirs = True - - for dir in directories: # iterate through original directory - - file_in_here = False - for yml_file in os.scandir(dir.path): # just here to get all files - like could do a anchor_file.name in dir - if not yml_file.is_file(): + self.forward_associated_tags.setdefault(par_dir, {}).setdefault(path, {}).setdefault(file_name, []).append(tags) + + else: # not a singular file + for file in os.scandir(anchor_device): + + if not self.matches_file_pattern(file.name): continue - if anchor_file.name in yml_file.name and fnmatch(yml_file.name, '*.yml'): # TODO: add matches pattern? - with open(yml_file.path, 'r', encoding='utf-8') as data_file: - data_dicts = yaml.safe_load_all(data_file) - for data in data_dicts: - if self.tag_key in data and self.get_meta_tag(data[self.tag_key]) == meta_tag: - configs.append(data) - changed_files[yml_file.path] = {'data': data, 'filename': yml_file.name} - break - file_in_here = True - break - - if not file_in_here: # make sure the file was in all directories # TODO: Modify for tags - file_in_all_dirs = False - break - - if not file_in_all_dirs: - continue - - # get common configs - result = self.find_common_configs(configs) - - # Delete common configs from lower config files - flattened_result = self.flatten_dict(result, "") - for file_path, config in changed_files.items(): # remove from old file - config_data = self.flatten_dict(config['data'], "") - - # delete common configs - for key in flattened_result: - if key in config_data: # remove any elevated configs - del config_data[key] - - # empty - delete file - write_configs = [] - with open(file_path, 'r') as file: - data_configs = yaml.safe_load_all(file) - - for data in data_configs: - if config['data'] == data: - if bool(config_data): - config_data = self.unflatten_dict(config_data) - config_data[self.tag_key] = self.get_tags(meta_tag) - write_configs.append(config_data) + file_name = file.name + file_path = file.path + flattened_fc_dict = [] + + with open(file_path, 'r', encoding='utf-8') as read_file: + file_data = yaml.safe_load(read_file) # know only 1 document in file + flattened_fc_dict.append({ "data" : self.flatten_dict(file_data, ""), "file" : file_path }) + del file_data + + for device in device_list[1:]: + device_path = path + "/" + device + "/" + file_name # we are guessing the file exists somewhere else + if os.path.exists(device_path): + with open(device_path, 'r', encoding='utf-8') as read_file: + file_data = yaml.safe_load(read_file) + flattened_fc_dict.append({ "data" : self.flatten_dict(file_data, ""), "file" : device_path }) + del file_data + + common_keys = {} + keys_to_remove = [] + for dict_item in flattened_fc_dict[1:]: + for key in dict_item['data'].keys(): + if key in flattened_fc_dict[0]['data'] and dict_item['data'][key] == flattened_fc_dict[0]['data'][key]: + common_keys.update({key : dict_item['data'][key]}) + if key != self.tag_key: + keys_to_remove.append(key) + + for key in keys_to_remove: + for _, item in enumerate(flattened_fc_dict): + del item['data'][key] + + result = self.unflatten_dict(common_keys) + destination_path = path + "/" + file_name + if self.main_key in result: + with open(destination_path, 'a', encoding='utf-8') as write_file: + yaml.safe_dump(result, write_file, sort_keys=False, explicit_start=True) + self.created_files[destination_path] = None + else: + self.unelevated_files.setdefault(self.get_file_key(path, file_name, tags), []).append(self.current_level) + + for val in flattened_fc_dict: + val_data = self.unflatten_dict(val["data"]) + + if self.main_key not in val_data: + os.remove(val['file']) + with suppress(KeyError): + del self.created_files[val['file']] else: - write_configs.append(data) - - if len(write_configs) == 0: - os.remove(file_path) - if file_path in self.created_files: - self.created_files.remove(file_path) - else: - with open(file_path, 'w') as file: - yaml.safe_dump_all(write_configs, file, sort_keys=False, explicit_start=True) - - if self.tag_key in result: - del result[self.tag_key] - - if bool(result): # write to elevated file - file_path = str(path) + "/" + str(anchor_file.name) - open_type = 'w' - if os.path.exists(file_path): - open_type = 'a' - else: - self.created_files.append(file_path) - with open(file_path, open_type) as file: - result[self.tag_key] = self.get_tags(meta_tag) - file.write("---\n") - yaml.safe_dump(result, file, sort_keys=False) + with open(val['file'], 'w', encoding='utf-8') as write_file: + yaml.safe_dump(val_data, write_file, sort_keys=False, explicit_start=True) + + self.forward_associated_tags.setdefault(par_dir, {}).setdefault(path, {}).setdefault(file_name, []).append(tags) + + else: + dirs_list = [] + for dirs in self.forward_associated_tags[path].keys(): + dirs_list.append(dirs) + + anchor_dir = dirs_list[0] + if len(dirs_list) == 1: # solo, auto elevate everything + for file in self.forward_associated_tags[path][anchor_dir].keys(): + tags = self.forward_associated_tags[path][anchor_dir][file] + + if self.check_unable_elevate(parent_dir_name, file, tags[0]): + continue + + file_path = anchor_dir + "/" + file + destination_path = path + "/" + file + + if os.path.exists(destination_path): # append + with open(destination_path, 'a', encoding='utf-8') as write_file, open(file_path, 'r', encoding='utf-8') as read_file: + yaml.safe_dump_all(yaml.safe_load_all(read_file), write_file, sort_keys=False, explicit_start=True) + else: # just copy files + with open(destination_path, 'a', encoding='utf-8') as write_file, open(file_path, 'r', encoding='utf-8') as read_file: + shutil.copyfileobj(read_file, write_file) + + # remove old file + os.remove(file_path) + self.created_files[destination_path] = None + with suppress(ValueError, AttributeError): + del self.created_files[file_path] + + self.forward_associated_tags.setdefault(par_dir, {}).setdefault(path, {}).setdefault(file, []).extend(tags) + + else: + for file in self.forward_associated_tags[path][anchor_dir]: + + if not self.matches_file_pattern(file): + continue + + file_tags = self.forward_associated_tags[path][anchor_dir][file] + fc_solo = [] + flattened_fc_dict = {} + files_to_delete = [] + configs_to_write = {} + solo_auto_delete = True + + # get all common tags between the files + common_tags = file_tags + for dir_item in dirs_list[1:]: + if file not in self.forward_associated_tags[path][dir_item]: + continue + comp_file_tags = self.forward_associated_tags[path][dir_item][file] + common_tags = [tag for tag in common_tags if tag in comp_file_tags] + + file_path = anchor_dir + "/" + file + with open(file_path, 'r', encoding='utf-8') as read_file: + file_data = yaml.safe_load_all(read_file) + for data in file_data: + if self.check_unable_elevate(parent_dir_name, file, data[self.tag_key][0]): + # Do not try to elevate something if the same config was not elevated somewhere else + configs_to_write.setdefault(file_path, []).append(data) + solo_auto_delete = False + + elif data[self.tag_key][0] in common_tags: + # Put in dictionary to be compared + flattened_fc_dict.setdefault(data[self.tag_key][0], []).append({ "data" : self.flatten_dict(data, ""), "file" : file_path }) + solo_auto_delete = False + + else: # Parts not common so just elevate this stuff + fc_solo.append({ "data" : data, "file" : file_path }) + + del file_data + + if solo_auto_delete: + files_to_delete.append(file_path) + + for dir_item in dirs_list[1:]: + # we are guessing the file exists somewhere else? + # but also maybe not cause we kinda know it exists cause we made it + # I think this approach is safe + if file not in self.forward_associated_tags[path][dir_item]: + continue + + comp_file_tags = self.forward_associated_tags[path][dir_item][file] + common_tags = [tag for tag in file_tags if tag in comp_file_tags] + + file_path_comp = dir_item + "/" + file + with open(file_path_comp, 'r', encoding='utf-8') as read_file: + file_data = yaml.safe_load_all(read_file) + for data in file_data: + if self.check_unable_elevate(parent_dir_name, file, data[self.tag_key][0]): + # Do not try to elevate something if the same config was not elevated somewhere else + configs_to_write.setdefault(file_path_comp, []).append(data) + solo_auto_delete = False + elif data[self.tag_key][0] in common_tags: # Can we safely assume it will only have 1 tag? Ask Kris + flattened_fc_dict.setdefault(data[self.tag_key][0], []).append({ "data" : self.flatten_dict(data, ""), "file" : file_path_comp }) + solo_auto_delete = False + else: + fc_solo.append({ "data" : data, "file" : file_path_comp }) + + del file_data + + if solo_auto_delete: + files_to_delete.append(file_path_comp) + + common_keys = {} + keys_to_remove = {} + results = {} + for meta_tag, tagged_configs in flattened_fc_dict.items(): + for config in tagged_configs[1:]: + for key in config['data'].keys(): + if key in tagged_configs[0]['data'] and config['data'][key] == tagged_configs[0]['data'][key]: + common_keys.setdefault(meta_tag, {}).update({key : config['data'][key]}) + if key != self.tag_key: + keys_to_remove.setdefault(meta_tag, []).append(key) + + for meta_key, keys in keys_to_remove.items(): + for key in keys: + for _, item in enumerate(flattened_fc_dict[meta_key]): + del item['data'][key] + for meta_tag, flattened_result in common_keys.items(): + results[meta_tag] = self.unflatten_dict(flattened_result) + results[meta_tag][self.tag_key] = [meta_tag] + + tags = [] + destination_path = path + "/" + file + with open(destination_path, 'a', encoding='utf-8') as write_file: + self.created_files[destination_path] = None + for meta_tag, config in results.items(): + if self.main_key in config: + yaml.safe_dump(config, write_file, sort_keys=False, explicit_start=True) + tags.extend(config['mdd_tags']) + else: + self.unelevated_files.setdefault(self.get_file_key(path, file, meta_tag), []).append(self.current_level) + for config in fc_solo: + yaml.safe_dump(config['data'], write_file, sort_keys=False, explicit_start=True) + tags.extend(config['data']['mdd_tags']) + + self.forward_associated_tags.setdefault(par_dir, {}).setdefault(path, {}).setdefault(file, []).extend(tags) + + # Below handles with removing stuff out of the old files + # Determine if any part of the config left in each config + for meta_tag, dictionaries in flattened_fc_dict.items(): + for val in dictionaries: + val_data = self.unflatten_dict(val["data"]) + configs_to_write.setdefault(val['file'], []) + + if self.main_key in val_data: + configs_to_write[val['file']].append(val_data) + + # write back configs or delete file + for file_path_write, configs in configs_to_write.items(): + if len(configs) == 0: # nothing to write back - remove file + os.remove(file_path_write) + with suppress(KeyError): + del self.created_files[file_path_write] + else: + with open(file_path_write, 'w', encoding='utf-8') as write_file: + yaml.safe_dump_all(configs, write_file, sort_keys=False, explicit_start=True) + + # Remove all unnecessary files + for del_file in files_to_delete: + os.remove(del_file) + with suppress(KeyError): + del self.created_files[del_file] + + del self.forward_associated_tags[path] # This method is stupd and complicated so I will explain it def aggregate_results(self, filepaths): """Goes through each file and combines the results""" + for filepath in filepaths: # Iterate through all the files we just creatd + data_configs = [] with open(filepath, 'r', encoding='utf-8') as file: configs = yaml.safe_load_all(file) @@ -411,6 +564,23 @@ def aggregate_results(self, filepaths): with open(filepath, 'w', encoding='utf-8') as file: yaml.safe_dump_all(print_to_file, file, explicit_start=True, sort_keys=False) + def associate_tags(self): + """Creates a dictionary of tags with devices that have those tags""" + + for device_data in self.device_list: + device = device_data['name'] + path = device_data['path'] + if device in self.ansible_inventory and 'tags' in self.ansible_inventory[device]: + tag = ", ".join(sorted(self.ansible_inventory[device]['tags'])) + parent_dir = '/'.join(path.split('/')[:-1]) + + if tag not in self.all_tags: + self.all_tags.append(tag) + + self.forward_associated_tags.setdefault(parent_dir, {}).setdefault(tag, []).append(device) + + del self.ansible_inventory + def iterate_directory(self, child_dict): """Iterates through the network's directory from bottom up""" @@ -426,12 +596,15 @@ def iterate_directory_helper(self, child_dict, parent_keys, hit_bottom_dir): # means is empty and therefore hit bottom directory hit_bottom_dir = True self.at_bottom_dir = True + self.current_level = 0 + # append to the device list elif not hit_bottom_dir: # continue till hit bottom dir parent_keys.append(key) self.iterate_directory_helper(value, parent_keys, hit_bottom_dir) # iterate through child dictionaries parent_keys.pop() self.elevate_level(self.get_parent_path(parent_keys)) + self.current_level += 1 hit_bottom_dir = False self.at_bottom_dir = False @@ -440,11 +613,12 @@ def generate_directory_structure(self, path): result = {} if os.path.isdir(path): - files = os.listdir(path) - for file in files: - sub_path = os.path.join(path, file) - if os.path.isdir(sub_path): - result[file] = self.generate_directory_structure(sub_path) + for file in os.scandir(path): + if file.is_dir(): + gen_result = self.generate_directory_structure(file.path) + if not gen_result: + self.device_list.append({"name": file.name, 'path': file.path}) + result[file.name] = gen_result return result def elevate(self): @@ -454,14 +628,11 @@ def elevate(self): self.remove_and_create_temp_dir() # Recreated the directory structure as a dictionary - yaml_network_data = self.generate_directory_structure(self.mdd_data_dir) - - # Elevate the configs - self.iterate_directory(yaml_network_data) + self.yaml_network_data = self.generate_directory_structure(self.mdd_data_dir) - # Clean the elevated configs, aggregating common results - # like configs in each file will be move to the top - # and matching configs will be merged afterwards + # Associate tags with their devices + self.associate_tags() + self.iterate_directory(self.yaml_network_data) self.aggregate_results(self.created_files) @@ -471,7 +642,9 @@ def main(): arguments = dict( mdd_data_dir=dict(required=True, type='str'), is_test_run=dict(required=True, type='bool'), - temp_dir=dict(required=True, type='str') + temp_dir=dict(required=True, type='str'), + ansible_inventory=dict(required=True, type='dict'), + mdd_data_patterns=dict(required=True, type='list') ) module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) @@ -480,9 +653,9 @@ def main(): if not HAS_YAML: module.fail_json(msg=missing_required_lib('yaml')) - Elevate(module.params['mdd_data_dir'], module.params['temp_dir'], module.params['is_test_run']) + Elevate(module.params['mdd_data_dir'], module.params['temp_dir'], module.params['is_test_run'], module.params['ansible_inventory'], module.params['mdd_data_patterns']) module.exit_json(changed=True, failed=False, debug=debug) if __name__ == '__main__': - main() + main() \ No newline at end of file From 4198284bb3f72cbe7334575cd70b528d36315488 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Wed, 28 Jun 2023 13:41:40 -0400 Subject: [PATCH 057/104] Fixing pep8 linting --- plugins/modules/elevate_configs.py | 63 ++++++++++++++++++------------ 1 file changed, 39 insertions(+), 24 deletions(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index bb3402d..188d9ac 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -74,7 +74,6 @@ import traceback from fnmatch import fnmatch import shutil -from contextlib import suppress from ansible.module_utils.basic import AnsibleModule, missing_required_lib debug = [] # global variable for debugging @@ -87,6 +86,14 @@ else: HAS_YAML = True +try: + from contextlib import suppress +except ImportError: + HAS_SUPPRESS = False + YAML_IMPORT_ERROR = traceback.format_exc() +else: + HAS_SUPPRESS = True + class Elevate: """Elevates the configs for a network""" @@ -255,11 +262,11 @@ def elevate_level(self, rel_path): file_name = str(file.name) destination_path = path + "/" + file_name - if os.path.exists(destination_path): # append to file + if os.path.exists(destination_path): # append to file with open(destination_path, 'a', encoding='utf-8') as write_file, open(file.path, 'r', encoding='utf-8') as read_file: yaml.safe_dump_all(yaml.safe_load_all(read_file), write_file, sort_keys=False, explicit_start=True) - else: # copy everything + else: # copy everything with open(destination_path, 'a', encoding='utf-8') as write_file, open(file.path, 'r', encoding='utf-8') as read_file: shutil.copyfileobj(read_file, write_file) @@ -269,7 +276,7 @@ def elevate_level(self, rel_path): self.forward_associated_tags.setdefault(par_dir, {}).setdefault(path, {}).setdefault(file_name, []).append(tags) - else: # not a singular file + else: # not a singular file for file in os.scandir(anchor_device): if not self.matches_file_pattern(file.name): @@ -280,16 +287,16 @@ def elevate_level(self, rel_path): flattened_fc_dict = [] with open(file_path, 'r', encoding='utf-8') as read_file: - file_data = yaml.safe_load(read_file) # know only 1 document in file - flattened_fc_dict.append({ "data" : self.flatten_dict(file_data, ""), "file" : file_path }) + file_data = yaml.safe_load(read_file) # know only 1 document in file + flattened_fc_dict.append({"data": self.flatten_dict(file_data, ""), "file": file_path}) del file_data for device in device_list[1:]: - device_path = path + "/" + device + "/" + file_name # we are guessing the file exists somewhere else + device_path = path + "/" + device + "/" + file_name # we are guessing the file exists somewhere else if os.path.exists(device_path): with open(device_path, 'r', encoding='utf-8') as read_file: file_data = yaml.safe_load(read_file) - flattened_fc_dict.append({ "data" : self.flatten_dict(file_data, ""), "file" : device_path }) + flattened_fc_dict.append({"data": self.flatten_dict(file_data, ""), "file": device_path}) del file_data common_keys = {} @@ -297,7 +304,7 @@ def elevate_level(self, rel_path): for dict_item in flattened_fc_dict[1:]: for key in dict_item['data'].keys(): if key in flattened_fc_dict[0]['data'] and dict_item['data'][key] == flattened_fc_dict[0]['data'][key]: - common_keys.update({key : dict_item['data'][key]}) + common_keys.update({key: dict_item['data'][key]}) if key != self.tag_key: keys_to_remove.append(key) @@ -333,7 +340,7 @@ def elevate_level(self, rel_path): dirs_list.append(dirs) anchor_dir = dirs_list[0] - if len(dirs_list) == 1: # solo, auto elevate everything + if len(dirs_list) == 1: # solo, auto elevate everything for file in self.forward_associated_tags[path][anchor_dir].keys(): tags = self.forward_associated_tags[path][anchor_dir][file] @@ -343,10 +350,10 @@ def elevate_level(self, rel_path): file_path = anchor_dir + "/" + file destination_path = path + "/" + file - if os.path.exists(destination_path): # append + if os.path.exists(destination_path): # append with open(destination_path, 'a', encoding='utf-8') as write_file, open(file_path, 'r', encoding='utf-8') as read_file: yaml.safe_dump_all(yaml.safe_load_all(read_file), write_file, sort_keys=False, explicit_start=True) - else: # just copy files + else: # just copy files with open(destination_path, 'a', encoding='utf-8') as write_file, open(file_path, 'r', encoding='utf-8') as read_file: shutil.copyfileobj(read_file, write_file) @@ -390,11 +397,11 @@ def elevate_level(self, rel_path): elif data[self.tag_key][0] in common_tags: # Put in dictionary to be compared - flattened_fc_dict.setdefault(data[self.tag_key][0], []).append({ "data" : self.flatten_dict(data, ""), "file" : file_path }) + flattened_fc_dict.setdefault(data[self.tag_key][0], []).append({"data": self.flatten_dict(data, ""), "file": file_path}) solo_auto_delete = False - else: # Parts not common so just elevate this stuff - fc_solo.append({ "data" : data, "file" : file_path }) + else: # Parts not common so just elevate this stuff + fc_solo.append({"data": data, "file": file_path}) del file_data @@ -419,11 +426,12 @@ def elevate_level(self, rel_path): # Do not try to elevate something if the same config was not elevated somewhere else configs_to_write.setdefault(file_path_comp, []).append(data) solo_auto_delete = False - elif data[self.tag_key][0] in common_tags: # Can we safely assume it will only have 1 tag? Ask Kris - flattened_fc_dict.setdefault(data[self.tag_key][0], []).append({ "data" : self.flatten_dict(data, ""), "file" : file_path_comp }) + elif data[self.tag_key][0] in common_tags: # Can we safely assume it will only have 1 tag? Ask Kris + flattened_fc_dict.setdefault(data[self.tag_key][0], []).append( + {"data": self.flatten_dict(data, ""), "file": file_path_comp}) solo_auto_delete = False else: - fc_solo.append({ "data" : data, "file" : file_path_comp }) + fc_solo.append({"data": data, "file": file_path_comp}) del file_data @@ -437,9 +445,9 @@ def elevate_level(self, rel_path): for config in tagged_configs[1:]: for key in config['data'].keys(): if key in tagged_configs[0]['data'] and config['data'][key] == tagged_configs[0]['data'][key]: - common_keys.setdefault(meta_tag, {}).update({key : config['data'][key]}) + common_keys.setdefault(meta_tag, {}).update({key: config['data'][key]}) if key != self.tag_key: - keys_to_remove.setdefault(meta_tag, []).append(key) + keys_to_remove.setdefault(meta_tag, []).append(key) for meta_key, keys in keys_to_remove.items(): for key in keys: @@ -477,7 +485,7 @@ def elevate_level(self, rel_path): # write back configs or delete file for file_path_write, configs in configs_to_write.items(): - if len(configs) == 0: # nothing to write back - remove file + if len(configs) == 0: # nothing to write back - remove file os.remove(file_path_write) with suppress(KeyError): del self.created_files[file_path_write] @@ -615,7 +623,7 @@ def generate_directory_structure(self, path): if os.path.isdir(path): for file in os.scandir(path): if file.is_dir(): - gen_result = self.generate_directory_structure(file.path) + gen_result = self.generate_directory_structure(file.path) if not gen_result: self.device_list.append({"name": file.name, 'path': file.path}) result[file.name] = gen_result @@ -653,9 +661,16 @@ def main(): if not HAS_YAML: module.fail_json(msg=missing_required_lib('yaml')) - Elevate(module.params['mdd_data_dir'], module.params['temp_dir'], module.params['is_test_run'], module.params['ansible_inventory'], module.params['mdd_data_patterns']) + if not HAS_SUPPRESS: + module.fail_json(msg=missing_required_lib('suppress')) + + Elevate(module.params['mdd_data_dir'], + module.params['temp_dir'], + module.params['is_test_run'], + module.params['ansible_inventory'], + module.params['mdd_data_patterns']) module.exit_json(changed=True, failed=False, debug=debug) if __name__ == '__main__': - main() \ No newline at end of file + main() From beeebe6ef2343428674dac5693175ec63f2f2a16 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Wed, 28 Jun 2023 13:57:55 -0400 Subject: [PATCH 058/104] fixing linting and docs --- plugins/modules/elevate_configs.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 188d9ac..4f75e31 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -52,6 +52,16 @@ description: The directory where the elevate process will happen if is_test_run == True required: true type: str + ansible_inventory: + description: Where the ansible inventory is located + required: true + type: dict + elements: str + mdd_data_patterns: + description: List of data patterns + required: true + type: list + elements: str """ EXAMPLES = r""" @@ -309,7 +319,7 @@ def elevate_level(self, rel_path): keys_to_remove.append(key) for key in keys_to_remove: - for _, item in enumerate(flattened_fc_dict): + for x, item in enumerate(flattened_fc_dict): del item['data'][key] result = self.unflatten_dict(common_keys) @@ -451,7 +461,7 @@ def elevate_level(self, rel_path): for meta_key, keys in keys_to_remove.items(): for key in keys: - for _, item in enumerate(flattened_fc_dict[meta_key]): + for x, item in enumerate(flattened_fc_dict[meta_key]): del item['data'][key] for meta_tag, flattened_result in common_keys.items(): results[meta_tag] = self.unflatten_dict(flattened_result) From 20a332bec0ca3af153a71efb5bbe99928a86daee Mon Sep 17 00:00:00 2001 From: Paul <> Date: Wed, 28 Jun 2023 14:01:19 -0400 Subject: [PATCH 059/104] fixing linting and docs again --- plugins/modules/elevate_configs.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 4f75e31..5a3c237 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -56,7 +56,6 @@ description: Where the ansible inventory is located required: true type: dict - elements: str mdd_data_patterns: description: List of data patterns required: true From d8daa6dc58554371271477e65dc52fced1dd2baa Mon Sep 17 00:00:00 2001 From: Paul <> Date: Wed, 28 Jun 2023 14:04:13 -0400 Subject: [PATCH 060/104] fixing linting and docs againx2 --- plugins/modules/elevate_configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/modules/elevate_configs.py b/plugins/modules/elevate_configs.py index 5a3c237..cd20d63 100644 --- a/plugins/modules/elevate_configs.py +++ b/plugins/modules/elevate_configs.py @@ -661,7 +661,7 @@ def main(): is_test_run=dict(required=True, type='bool'), temp_dir=dict(required=True, type='str'), ansible_inventory=dict(required=True, type='dict'), - mdd_data_patterns=dict(required=True, type='list') + mdd_data_patterns=dict(required=True, type='list', elements='str') ) module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) From 400a86539c790f341b307266f3507eab642a55c4 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Thu, 6 Jul 2023 20:28:53 -0400 Subject: [PATCH 061/104] Implementing elevate testing in ci workflow --- .github/workflows/ci.yml | 5 ++++- playbooks/test_elevate.yml | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 playbooks/test_elevate.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9e8f440..1393c65 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,4 +55,7 @@ jobs: # and all python versions ansible supports. - name: Run sanity tests run: ansible-test sanity --docker -v --color - working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} \ No newline at end of file + working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + + - name: Run elevate test + run: ansible-playbook ${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/test_elevate.yml diff --git a/playbooks/test_elevate.yml b/playbooks/test_elevate.yml new file mode 100644 index 0000000..9d31853 --- /dev/null +++ b/playbooks/test_elevate.yml @@ -0,0 +1,10 @@ +- name: Test elevate output on reference topology + hosts: localhost + gather_facts: false + tasks: + - name: Run Clean + command: pwd + register: result + + - debug: + var: result \ No newline at end of file From 50d2f00b713537d8ec21b2703e9e0f1e15146992 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Thu, 6 Jul 2023 20:31:18 -0400 Subject: [PATCH 062/104] Fixing path to test playbook --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1393c65..b21b501 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,4 +58,4 @@ jobs: working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - name: Run elevate test - run: ansible-playbook ${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/test_elevate.yml + run: ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate.yml From c30f4eda97b188e38703b24f2d0bf0fe34423a4f Mon Sep 17 00:00:00 2001 From: Paul <> Date: Thu, 6 Jul 2023 20:38:50 -0400 Subject: [PATCH 063/104] debugging --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b21b501..0a38bf6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,4 +58,5 @@ jobs: working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - name: Run elevate test - run: ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate.yml + run: pwd + #ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate.yml From 03f731b52c26b418e3ab3dfa215d6b89db61c6ec Mon Sep 17 00:00:00 2001 From: Paul <> Date: Thu, 6 Jul 2023 20:43:14 -0400 Subject: [PATCH 064/104] Fixing directory --- .github/workflows/ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a38bf6..47fca10 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,4 +59,9 @@ jobs: - name: Run elevate test run: pwd + working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + + - name: Run elevate test + run: ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate.yml + working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} #ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate.yml From f1084d9b5703c86705e383c644031998c746b23a Mon Sep 17 00:00:00 2001 From: Paul <> Date: Thu, 6 Jul 2023 20:45:42 -0400 Subject: [PATCH 065/104] location fix issue for elevate playbook --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 47fca10..89c8aae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,6 +62,6 @@ jobs: working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - name: Run elevate test - run: ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate.yml + run: ansible-playbook test_elevate.yml working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} #ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate.yml From b52589781da3ccca1b2b44eadbfd2364ce2ab259 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Thu, 6 Jul 2023 20:49:23 -0400 Subject: [PATCH 066/104] removing .yml extension --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 89c8aae..4213dcf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,6 +62,6 @@ jobs: working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - name: Run elevate test - run: ansible-playbook test_elevate.yml + run: ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} #ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate.yml From 7b37c371e406eaa66c116ec56bb407cb365cf0b4 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Thu, 6 Jul 2023 20:52:57 -0400 Subject: [PATCH 067/104] Further ci testing --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4213dcf..85ee77a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,6 +61,10 @@ jobs: run: pwd working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + - name: Run elevate test + run: ls + working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + - name: Run elevate test run: ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} From 0db926f9835535bcfaf26589dfa00da54c01e30c Mon Sep 17 00:00:00 2001 From: Paul <> Date: Thu, 6 Jul 2023 20:58:39 -0400 Subject: [PATCH 068/104] fixing path to test file git p --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 85ee77a..a9e0431 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,13 +59,13 @@ jobs: - name: Run elevate test run: pwd - working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks - name: Run elevate test run: ls - working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks - name: Run elevate test - run: ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate - working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + run: ansible-playbook test_elevate.yml + working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks #ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate.yml From 7455d6f5ca452f8fcfe60230e6560eaa6f7a6eaf Mon Sep 17 00:00:00 2001 From: Paul <> Date: Thu, 6 Jul 2023 21:22:45 -0400 Subject: [PATCH 069/104] attempt to run clean --- .github/workflows/ci.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a9e0431..b14efb3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,14 +58,14 @@ jobs: working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - name: Run elevate test - run: pwd + run: ansible-playbook clean.yml working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks - - name: Run elevate test - run: ls - working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks + # - name: Run elevate test + # run: ls + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks - - name: Run elevate test - run: ansible-playbook test_elevate.yml - working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks + # - name: Run elevate test + # run: ansible-playbook test_elevate.yml + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks #ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate.yml From d4023ee76c345bd416a448eaf3529c9e1e39a9a4 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 09:41:20 -0400 Subject: [PATCH 070/104] add clone mdd --- .github/workflows/ci.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b14efb3..ea99970 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,8 +57,14 @@ jobs: run: ansible-test sanity --docker -v --color working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - - name: Run elevate test - run: ansible-playbook clean.yml + - name: Checkout mdd repository + uses: actions/checkout@v2 + with: + repository: https://github.com/model-driven-devops/mdd + path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + + - name: Run Show + run: ansible-playbook show.yml working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks # - name: Run elevate test From 6b1db6f3ebe15effea35408c01025bfa710ff9ea Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 09:44:16 -0400 Subject: [PATCH 071/104] fixing github repo link --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ea99970..c67ff00 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,7 +60,7 @@ jobs: - name: Checkout mdd repository uses: actions/checkout@v2 with: - repository: https://github.com/model-driven-devops/mdd + repository: model-driven-devops/mdd path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - name: Run Show From ca0c653dba55aee07e8cdc0609c8fcf5ed4aaf97 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 10:17:29 -0400 Subject: [PATCH 072/104] Debugging mdd repo clone --- .github/workflows/ci.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c67ff00..99d86cd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -63,10 +63,18 @@ jobs: repository: model-driven-devops/mdd path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - - name: Run Show - run: ansible-playbook show.yml + - name: Run elevate test + run: ls + working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + + - name: Run elevate test + run: ls working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks + # - name: Run Show + # run: ansible-playbook show.yml + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks + # - name: Run elevate test # run: ls # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks From 249cca60120d5a6b370209c8a191b7a4573b6274 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 10:34:54 -0400 Subject: [PATCH 073/104] Adding galaxy collection install --- .github/workflows/ci.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 99d86cd..59a3685 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -67,9 +67,13 @@ jobs: run: ls working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + - name: Install collection in correct place + run: ansible-galaxy collection install -r requirements.yml + working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + - name: Run elevate test run: ls - working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks + working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} # - name: Run Show # run: ansible-playbook show.yml From 8ab0531f3fe77d53736516dad89ec17ecb0effef Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 11:14:47 -0400 Subject: [PATCH 074/104] adding correct clone and collection install commands --- .github/workflows/ci.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 59a3685..91a7920 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,20 +60,24 @@ jobs: - name: Checkout mdd repository uses: actions/checkout@v2 with: - repository: model-driven-devops/mdd + repository: model-driven-devops/mdd.git path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - - name: Run elevate test + - name: Run ls run: ls - working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd - - name: Install collection in correct place + - name: Install collection run: ansible-galaxy collection install -r requirements.yml - working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd - - name: Run elevate test + - name: Run ls run: ls - working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + + - name: Run show + run: ansible-playbook ciscops.mdd.show + working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd # - name: Run Show # run: ansible-playbook show.yml From b01f664918a27fde8993e7e2cd6830232143893e Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 11:21:09 -0400 Subject: [PATCH 075/104] fixing repo path --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 91a7920..fba3536 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,8 +60,8 @@ jobs: - name: Checkout mdd repository uses: actions/checkout@v2 with: - repository: model-driven-devops/mdd.git - path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + repository: model-driven-devops/mdd + path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd - name: Run ls run: ls From 0b30e28e85ac2403168b3363ea995d6708681f50 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 11:42:13 -0400 Subject: [PATCH 076/104] fethcing correct mdd ansible galaxy collection --- .github/workflows/ci.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fba3536..f3d7dd1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,8 +68,11 @@ jobs: working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd - name: Install collection - run: ansible-galaxy collection install -r requirements.yml - working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + uses: actions/checkout@v2 + with: + path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + #run: ansible-galaxy collection install -r requirements.yml + #working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd - name: Run ls run: ls From 5a577409513d024631fef71a8456693903849816 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 12:00:34 -0400 Subject: [PATCH 077/104] fixing dir structure --- .github/workflows/ci.yml | 43 ++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f3d7dd1..adcb2ff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,26 +61,53 @@ jobs: uses: actions/checkout@v2 with: repository: model-driven-devops/mdd - path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + path: elevate_test/mdd - name: Run ls run: ls - working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + working-directory: elevate_test/mdd - - name: Install collection + - name: Check out code uses: actions/checkout@v2 with: - path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd - #run: ansible-galaxy collection install -r requirements.yml - #working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + path: elevate_test/mdd/ansible_collections + + - name: Run ls + run: ls + working-directory: elevate_test/mdd - name: Run ls run: ls - working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + working-directory: elevate_test/mdd/ansible_collections - name: Run show run: ansible-playbook ciscops.mdd.show - working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + working-directory: elevate_test/mdd + + + + + # - name: Checkout mdd repository + # uses: actions/checkout@v2 + # with: + # repository: model-driven-devops/mdd + # path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + + # - name: Run ls + # run: ls + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + + # - name: Install collection + # run: ansible-galaxy collection install -r requirements.yml + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + + # - name: Run ls + # run: ls + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + + # - name: Run show + # run: ansible-playbook ciscops.mdd.show + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd # - name: Run Show # run: ansible-playbook show.yml From bebf4cdb222b18bebf82d6513e5ece550f5dd1c5 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 12:09:28 -0400 Subject: [PATCH 078/104] Fixing linting --- .github/workflows/ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index adcb2ff..c152a1a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -84,9 +84,6 @@ jobs: run: ansible-playbook ciscops.mdd.show working-directory: elevate_test/mdd - - - # - name: Checkout mdd repository # uses: actions/checkout@v2 # with: From 40c8bad3e7f015d499cd8f81ffb88522f0f66450 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 12:16:06 -0400 Subject: [PATCH 079/104] Updating playbook path --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c152a1a..80f2fb0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -81,7 +81,8 @@ jobs: working-directory: elevate_test/mdd/ansible_collections - name: Run show - run: ansible-playbook ciscops.mdd.show + # run: ansible-playbook ciscops.mdd.show + run: ansible-playbook elevate_test/mdd/ansible_collections/ciscops/mdd/playbooks/show.yml working-directory: elevate_test/mdd # - name: Checkout mdd repository From 7506b8d6086e382baa807e1e8821ce082b676a7f Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 12:19:33 -0400 Subject: [PATCH 080/104] updating playbook path --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 80f2fb0..da33fa5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -82,7 +82,7 @@ jobs: - name: Run show # run: ansible-playbook ciscops.mdd.show - run: ansible-playbook elevate_test/mdd/ansible_collections/ciscops/mdd/playbooks/show.yml + run: ansible-playbook elevate_test/mdd/ansible_collections/playbooks/show.yml working-directory: elevate_test/mdd # - name: Checkout mdd repository From 48f1eac1ea48c5f7efeb9804b311bf1e8b3d7ef3 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 12:22:04 -0400 Subject: [PATCH 081/104] updating playbook path x2 --- .github/workflows/ci.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index da33fa5..5cc61ba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -80,10 +80,14 @@ jobs: run: ls working-directory: elevate_test/mdd/ansible_collections - - name: Run show - # run: ansible-playbook ciscops.mdd.show - run: ansible-playbook elevate_test/mdd/ansible_collections/playbooks/show.yml - working-directory: elevate_test/mdd + - name: Run ls + run: ls + working-directory: elevate_test/mdd/ansible_collections/playbooks + + # - name: Run show + # # run: ansible-playbook ciscops.mdd.show + # run: ansible-playbook elevate_test/mdd/ansible_collections/playbooks/show.yml + # working-directory: elevate_test/mdd # - name: Checkout mdd repository # uses: actions/checkout@v2 From 0db6039749dc8e509fcc3c139340eafcfeea9d08 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 12:33:34 -0400 Subject: [PATCH 082/104] updating path to be dynamic to current branch --- .github/workflows/ci.yml | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5cc61ba..306bdc4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -67,10 +67,24 @@ jobs: run: ls working-directory: elevate_test/mdd - - name: Check out code - uses: actions/checkout@v2 - with: - path: elevate_test/mdd/ansible_collections + # - name: Check out code + # uses: actions/checkout@v2 + # with: + # path: elevate_test/mdd/ansible_collections + + # - name: Install collection + # run: ansible-galaxy collection install -r requirements.yml + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + + - name: Install current collection + run: ansible-galaxy collection install https://github.com/${{ github.repository }}/tree/${{ github.ref }} + working-directory: elevate_test/mdd + + # https://github.com/model-driven-devops/ansible-mdd/tree/ppajersk-dev + + #https://github.com/model-driven-devops/ansible-mdd.git,ppajersk-dev + #/ansible_collections/${{ env.NAMESPACE }}/${{ env.COLLECTION_NAME }}/mdd + - name: Run ls run: ls @@ -80,9 +94,9 @@ jobs: run: ls working-directory: elevate_test/mdd/ansible_collections - - name: Run ls - run: ls - working-directory: elevate_test/mdd/ansible_collections/playbooks + # - name: Run ls + # run: ls + # working-directory: elevate_test/mdd/ansible_collections/playbooks # - name: Run show # # run: ansible-playbook ciscops.mdd.show From dec0ecc96c11d2e76fecb0d8cff92d2140b6ce46 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 12:52:26 -0400 Subject: [PATCH 083/104] Adding better install of galaxy mdd collection --- .github/workflows/ci.yml | 198 +++++++++++++++++++++++---------------- 1 file changed, 118 insertions(+), 80 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 306bdc4..201ff45 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,6 +11,7 @@ env: NAMESPACE: ciscops COLLECTION_NAME: mdd + jobs: ### # Sanity tests (REQUIRED) @@ -57,83 +58,120 @@ jobs: run: ansible-test sanity --docker -v --color working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - - name: Checkout mdd repository - uses: actions/checkout@v2 - with: - repository: model-driven-devops/mdd - path: elevate_test/mdd - - - name: Run ls - run: ls - working-directory: elevate_test/mdd - - # - name: Check out code - # uses: actions/checkout@v2 - # with: - # path: elevate_test/mdd/ansible_collections - - # - name: Install collection - # run: ansible-galaxy collection install -r requirements.yml - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd - - - name: Install current collection - run: ansible-galaxy collection install https://github.com/${{ github.repository }}/tree/${{ github.ref }} - working-directory: elevate_test/mdd - - # https://github.com/model-driven-devops/ansible-mdd/tree/ppajersk-dev - - #https://github.com/model-driven-devops/ansible-mdd.git,ppajersk-dev - #/ansible_collections/${{ env.NAMESPACE }}/${{ env.COLLECTION_NAME }}/mdd - - - - name: Run ls - run: ls - working-directory: elevate_test/mdd - - - name: Run ls - run: ls - working-directory: elevate_test/mdd/ansible_collections - - # - name: Run ls - # run: ls - # working-directory: elevate_test/mdd/ansible_collections/playbooks - - # - name: Run show - # # run: ansible-playbook ciscops.mdd.show - # run: ansible-playbook elevate_test/mdd/ansible_collections/playbooks/show.yml - # working-directory: elevate_test/mdd - - # - name: Checkout mdd repository - # uses: actions/checkout@v2 - # with: - # repository: model-driven-devops/mdd - # path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd - - # - name: Run ls - # run: ls - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd - - # - name: Install collection - # run: ansible-galaxy collection install -r requirements.yml - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd - - # - name: Run ls - # run: ls - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd - - # - name: Run show - # run: ansible-playbook ciscops.mdd.show - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd - - # - name: Run Show - # run: ansible-playbook show.yml - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks - - # - name: Run elevate test - # run: ls - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks - - # - name: Run elevate test - # run: ansible-playbook test_elevate.yml - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks - #ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate.yml + test_elevate: + name: Test elevate (â’¶${{ matrix.ansible }}) + strategy: + matrix: + ansible: + # It's important that Sanity is tested against all stable-X.Y branches + # Testing against `devel` may fail as new tests are added. + # - stable-2.9 # Only if your collection supports Ansible 2.9 + - stable-2.13 + - stable-2.14 + - devel + runs-on: ubuntu-latest + env: + ANSIBLE_COLLECTIONS_PATHS: ./ansible_collections + base_path: elevate_test/mdd + steps: + ## my stuff VVV + - name: Checkout model-driven-devops/mdd repository + uses: actions/checkout@v2 + with: + repository: model-driven-devops/mdd + path: ${{env.base_path}} + + - name: Run ls + run: ls -la + working-directory: ${{env.base_path}} + + - name: Install collection from model-driven-devops/mdd/requirements.yml + run: ansible-galaxy collection install -r requirements.yml + working-directory: ${{env.base_path}} + + - name: Galaxy collection list + run: ansible-galaxy collection list + working-directory: ${{env.base_path}} + + - name: Remove exiting ansible-mdd collection + run: rm -rf ${{env.base_path}}/${{env.ANSIBLE_COLLECTIONS_PATHS}}/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + + - name: Install current branch ansible-mdd collection + uses: actions/checkout@v2 + with: + path: ${{env.base_path}}/${{env.ANSIBLE_COLLECTIONS_PATHS}}/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + + - name: Run ls + run: ls -la + working-directory: ${{env.base_path}} + + - name: Run ls + run: ls -la + working-directory: ${{env.base_path}}/${{env.COLLECTIONS_PATHS}} + + - name: Run show + run: ansible-playbook ciscops.mdd.show + working-directory: ${{env.base_path}} + + # - name: Install collection + # run: ansible-galaxy collection install -r requirements.yml + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + + # - name: Install current collection + # https://github.com/model-driven-devops/ansible-mdd.git,ppajersk-dev + # run: ansible-galaxy collection install https://github.com/${{ github.repository }}/tree/${{ github.ref }} + # working-directory: elevate_test/mdd + + # https://github.com/model-driven-devops/ansible-mdd/tree/ppajersk-dev + + #https://github.com/model-driven-devops/ansible-mdd.git,ppajersk-dev + #/ansible_collections/${{ env.NAMESPACE }}/${{ env.COLLECTION_NAME }}/mdd + + # - name: Check out code + # uses: actions/checkout@v2 + # with: + # path: elevate_test/mdd/ansible_collections + + # - name: Run ls + # run: ls + # working-directory: elevate_test/mdd/ansible_collections/playbooks + + # - name: Run show + # # run: ansible-playbook ciscops.mdd.show + # run: ansible-playbook elevate_test/mdd/ansible_collections/playbooks/show.yml + # working-directory: elevate_test/mdd + + # - name: Checkout mdd repository + # uses: actions/checkout@v2 + # with: + # repository: model-driven-devops/mdd + # path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + + # - name: Run ls + # run: ls + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + + # - name: Install collection + # run: ansible-galaxy collection install -r requirements.yml + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + + # - name: Run ls + # run: ls + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + + # - name: Run show + # run: ansible-playbook ciscops.mdd.show + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + + # - name: Run Show + # run: ansible-playbook show.yml + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks + + # - name: Run elevate test + # run: ls + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks + + # - name: Run elevate test + # run: ansible-playbook test_elevate.yml + # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks + #ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate.yml From 826fb0d939e63500a2f5d9e7ef557d497c155e02 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 18:03:59 -0400 Subject: [PATCH 084/104] Adding in testing reference topology and code to remove the existing one from the cloned mdd repo --- .github/workflows/ci.yml | 8 + .../org/region1/hq/WAN-rtr1/oc-acl.yml | 12 + .../org/region1/hq/WAN-rtr1/oc-interfaces.yml | 124 +++++++++ .../hq/WAN-rtr1/oc-network-instances.yml | 37 +++ .../region1/hq/WAN-rtr1/oc-routing-policy.yml | 20 ++ .../org/region1/hq/WAN-rtr1/oc-stp.yml | 18 ++ .../org/region1/hq/WAN-rtr1/oc-system.yml | 121 +++++++++ .../mdd-data/org/region1/hq/hq-pop/oc-acl.yml | 12 + .../org/region1/hq/hq-pop/oc-interfaces.yml | 124 +++++++++ .../hq/hq-pop/oc-network-instances.yml | 37 +++ .../region1/hq/hq-pop/oc-routing-policy.yml | 20 ++ .../mdd-data/org/region1/hq/hq-pop/oc-stp.yml | 18 ++ .../org/region1/hq/hq-pop/oc-system.yml | 121 +++++++++ .../org/region1/hq/hq-rtr1/oc-acl.yml | 12 + .../org/region1/hq/hq-rtr1/oc-interfaces.yml | 124 +++++++++ .../hq/hq-rtr1/oc-network-instances.yml | 37 +++ .../region1/hq/hq-rtr1/oc-routing-policy.yml | 20 ++ .../org/region1/hq/hq-rtr1/oc-stp.yml | 18 ++ .../org/region1/hq/hq-rtr1/oc-system.yml | 121 +++++++++ .../org/region1/hq/hq-rtr2/oc-acl.yml | 12 + .../org/region1/hq/hq-rtr2/oc-interfaces.yml | 124 +++++++++ .../hq/hq-rtr2/oc-network-instances.yml | 37 +++ .../region1/hq/hq-rtr2/oc-routing-policy.yml | 20 ++ .../org/region1/hq/hq-rtr2/oc-stp.yml | 18 ++ .../org/region1/hq/hq-rtr2/oc-system.yml | 121 +++++++++ .../mdd-data/org/region1/hq/hq-sw1/oc-acl.yml | 12 + .../org/region1/hq/hq-sw1/oc-interfaces.yml | 236 ++++++++++++++++++ .../hq/hq-sw1/oc-network-instances.yml | 42 ++++ .../region1/hq/hq-sw1/oc-routing-policy.yml | 20 ++ .../mdd-data/org/region1/hq/hq-sw1/oc-stp.yml | 25 ++ .../org/region1/hq/hq-sw1/oc-system.yml | 131 ++++++++++ .../mdd-data/org/region1/hq/hq-sw2/oc-acl.yml | 12 + .../org/region1/hq/hq-sw2/oc-interfaces.yml | 236 ++++++++++++++++++ .../hq/hq-sw2/oc-network-instances.yml | 42 ++++ .../region1/hq/hq-sw2/oc-routing-policy.yml | 20 ++ .../mdd-data/org/region1/hq/hq-sw2/oc-stp.yml | 25 ++ .../org/region1/hq/hq-sw2/oc-system.yml | 131 ++++++++++ .../org/region1/site1/site1-rtr1/oc-acl.yml | 12 + .../site1/site1-rtr1/oc-interfaces.yml | 124 +++++++++ .../site1/site1-rtr1/oc-network-instances.yml | 37 +++ .../site1/site1-rtr1/oc-routing-policy.yml | 20 ++ .../org/region1/site1/site1-rtr1/oc-stp.yml | 18 ++ .../region1/site1/site1-rtr1/oc-system.yml | 121 +++++++++ .../org/region1/site1/site1-sw1/oc-acl.yml | 12 + .../region1/site1/site1-sw1/oc-interfaces.yml | 236 ++++++++++++++++++ .../site1/site1-sw1/oc-network-instances.yml | 42 ++++ .../site1/site1-sw1/oc-routing-policy.yml | 20 ++ .../org/region1/site1/site1-sw1/oc-stp.yml | 25 ++ .../org/region1/site1/site1-sw1/oc-system.yml | 131 ++++++++++ .../org/region2/site2/site2-rtr1/oc-acl.yml | 12 + .../site2/site2-rtr1/oc-interfaces.yml | 124 +++++++++ .../site2/site2-rtr1/oc-network-instances.yml | 37 +++ .../site2/site2-rtr1/oc-routing-policy.yml | 20 ++ .../org/region2/site2/site2-rtr1/oc-stp.yml | 18 ++ .../region2/site2/site2-rtr1/oc-system.yml | 121 +++++++++ .../org/region2/site2/site2-sw1/oc-acl.yml | 12 + .../region2/site2/site2-sw1/oc-interfaces.yml | 236 ++++++++++++++++++ .../site2/site2-sw1/oc-network-instances.yml | 42 ++++ .../site2/site2-sw1/oc-routing-policy.yml | 20 ++ .../org/region2/site2/site2-sw1/oc-stp.yml | 25 ++ .../org/region2/site2/site2-sw1/oc-system.yml | 131 ++++++++++ 61 files changed, 3864 insertions(+) create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml create mode 100644 .github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 201ff45..41d06fe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -109,6 +109,14 @@ jobs: run: ls -la working-directory: ${{env.base_path}}/${{env.COLLECTIONS_PATHS}} + - name: Remove the current reference topology + run: rm -r mdd-data + working-directory: ${{env.base_path}} + + - name: Copy in testing reference topology + run: cp -r .github/workflows/testing-files/mdd-data ./ + working-directory: ${{env.base_path}} + - name: Run show run: ansible-playbook ciscops.mdd.show working-directory: ${{env.base_path}} diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml new file mode 100644 index 0000000..0d15c00 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- WAN_router diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml new file mode 100644 index 0000000..08b645a --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml @@ -0,0 +1,124 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- WAN_router diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml new file mode 100644 index 0000000..f0f9e1e --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml @@ -0,0 +1,37 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: [] + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- WAN_router diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml new file mode 100644 index 0000000..e44d67a --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- WAN_router diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml new file mode 100644 index 0000000..0763b37 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml @@ -0,0 +1,18 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- WAN_router diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml new file mode 100644 index 0000000..a7919f6 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml @@ -0,0 +1,121 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: WAN-rtr1 + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: false + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: true + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- WAN_router diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml new file mode 100644 index 0000000..8cdfb88 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- hq_pop diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml new file mode 100644 index 0000000..204badc --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml @@ -0,0 +1,124 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- hq_pop diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml new file mode 100644 index 0000000..b05365b --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml @@ -0,0 +1,37 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: [] + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- hq_pop diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml new file mode 100644 index 0000000..c462d98 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- hq_pop diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml new file mode 100644 index 0000000..024f3e0 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml @@ -0,0 +1,18 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- hq_pop diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml new file mode 100644 index 0000000..cda0c66 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml @@ -0,0 +1,121 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: hq-pop + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: false + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: true + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- hq_pop diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml new file mode 100644 index 0000000..7017eb2 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml new file mode 100644 index 0000000..460f030 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml @@ -0,0 +1,124 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml new file mode 100644 index 0000000..f9c03d5 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml @@ -0,0 +1,37 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: [] + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml new file mode 100644 index 0000000..1161c97 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml new file mode 100644 index 0000000..940e3bc --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml @@ -0,0 +1,18 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml new file mode 100644 index 0000000..bbaab5f --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml @@ -0,0 +1,121 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: hq-rtr1 + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: false + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: true + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml new file mode 100644 index 0000000..7017eb2 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml new file mode 100644 index 0000000..460f030 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml @@ -0,0 +1,124 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml new file mode 100644 index 0000000..f9c03d5 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml @@ -0,0 +1,37 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: [] + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml new file mode 100644 index 0000000..1161c97 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml new file mode 100644 index 0000000..940e3bc --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml @@ -0,0 +1,18 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml new file mode 100644 index 0000000..0bedde7 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml @@ -0,0 +1,121 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: hq-rtr2 + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: false + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: true + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml new file mode 100644 index 0000000..dfcc582 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml new file mode 100644 index 0000000..aa32e7f --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml @@ -0,0 +1,236 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml new file mode 100644 index 0000000..54d8288 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml @@ -0,0 +1,42 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: + - openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:config: + openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:name: default + openconfig-network-instance:status: ACTIVE + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml new file mode 100644 index 0000000..03f4be6 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml new file mode 100644 index 0000000..b2bf8f9 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml @@ -0,0 +1,25 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: + openconfig-spanning-tree:enabled-protocol: + - PVST + openconfig-spanning-tree:loop-guard: false + openconfig-spanning-tree:bpdu-guard: false + openconfig-spanning-tree:bpdu-filter: false + openconfig-spanning-tree-ext:uplinkfast: false + openconfig-spanning-tree-ext:backbonefast: false + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml new file mode 100644 index 0000000..5df192f --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml @@ -0,0 +1,131 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: hq-sw1 + openconfig-system:login-banner: "\r\nIOSv - Cisco Systems Confidential -\r\ + \n\r\nSupplemental End User License Restrictions\r\n\r\nThis IOSv software\ + \ is provided AS-IS without warranty of any kind. Under no circumstances\ + \ may this software be used separate from the Cisco Modeling Labs Software\ + \ that this software was provided with, or deployed or used as part of a\ + \ production environment.\r\n\r\nBy using the software, you agree to abide\ + \ by the terms and conditions of the Cisco End User License Agreement at\ + \ http://www.cisco.com/go/eula. Unauthorized use or distribution of this\ + \ software is expressly prohibited.\r\n" + openconfig-system:domain-name: mdd.cisco.com + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: true + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: false + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml new file mode 100644 index 0000000..dfcc582 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml new file mode 100644 index 0000000..aa32e7f --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml @@ -0,0 +1,236 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml new file mode 100644 index 0000000..54d8288 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml @@ -0,0 +1,42 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: + - openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:config: + openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:name: default + openconfig-network-instance:status: ACTIVE + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml new file mode 100644 index 0000000..03f4be6 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml new file mode 100644 index 0000000..b2bf8f9 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml @@ -0,0 +1,25 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: + openconfig-spanning-tree:enabled-protocol: + - PVST + openconfig-spanning-tree:loop-guard: false + openconfig-spanning-tree:bpdu-guard: false + openconfig-spanning-tree:bpdu-filter: false + openconfig-spanning-tree-ext:uplinkfast: false + openconfig-spanning-tree-ext:backbonefast: false + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml new file mode 100644 index 0000000..8411fd2 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml @@ -0,0 +1,131 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: hq-sw2 + openconfig-system:login-banner: "\r\nIOSv - Cisco Systems Confidential -\r\ + \n\r\nSupplemental End User License Restrictions\r\n\r\nThis IOSv software\ + \ is provided AS-IS without warranty of any kind. Under no circumstances\ + \ may this software be used separate from the Cisco Modeling Labs Software\ + \ that this software was provided with, or deployed or used as part of a\ + \ production environment.\r\n\r\nBy using the software, you agree to abide\ + \ by the terms and conditions of the Cisco End User License Agreement at\ + \ http://www.cisco.com/go/eula. Unauthorized use or distribution of this\ + \ software is expressly prohibited.\r\n" + openconfig-system:domain-name: mdd.cisco.com + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: true + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: false + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml new file mode 100644 index 0000000..6233f57 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- site_router diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml new file mode 100644 index 0000000..bfc4180 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml @@ -0,0 +1,124 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- site_router diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml new file mode 100644 index 0000000..724373c --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml @@ -0,0 +1,37 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: [] + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- site_router diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml new file mode 100644 index 0000000..de9c373 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- site_router diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml new file mode 100644 index 0000000..e6bc45b --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml @@ -0,0 +1,18 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- site_router diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml new file mode 100644 index 0000000..f748d89 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml @@ -0,0 +1,121 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: site1-rtr1 + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: false + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: true + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- site_router diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml new file mode 100644 index 0000000..dfcc582 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml new file mode 100644 index 0000000..aa32e7f --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml @@ -0,0 +1,236 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml new file mode 100644 index 0000000..54d8288 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml @@ -0,0 +1,42 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: + - openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:config: + openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:name: default + openconfig-network-instance:status: ACTIVE + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml new file mode 100644 index 0000000..03f4be6 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml new file mode 100644 index 0000000..b2bf8f9 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml @@ -0,0 +1,25 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: + openconfig-spanning-tree:enabled-protocol: + - PVST + openconfig-spanning-tree:loop-guard: false + openconfig-spanning-tree:bpdu-guard: false + openconfig-spanning-tree:bpdu-filter: false + openconfig-spanning-tree-ext:uplinkfast: false + openconfig-spanning-tree-ext:backbonefast: false + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml new file mode 100644 index 0000000..4385569 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml @@ -0,0 +1,131 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: site1-sw1 + openconfig-system:login-banner: "\r\nIOSv - Cisco Systems Confidential -\r\ + \n\r\nSupplemental End User License Restrictions\r\n\r\nThis IOSv software\ + \ is provided AS-IS without warranty of any kind. Under no circumstances\ + \ may this software be used separate from the Cisco Modeling Labs Software\ + \ that this software was provided with, or deployed or used as part of a\ + \ production environment.\r\n\r\nBy using the software, you agree to abide\ + \ by the terms and conditions of the Cisco End User License Agreement at\ + \ http://www.cisco.com/go/eula. Unauthorized use or distribution of this\ + \ software is expressly prohibited.\r\n" + openconfig-system:domain-name: mdd.cisco.com + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: true + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: false + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml new file mode 100644 index 0000000..6233f57 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- site_router diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml new file mode 100644 index 0000000..bfc4180 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml @@ -0,0 +1,124 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- site_router diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml new file mode 100644 index 0000000..724373c --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml @@ -0,0 +1,37 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: [] + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- site_router diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml new file mode 100644 index 0000000..de9c373 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- site_router diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml new file mode 100644 index 0000000..e6bc45b --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml @@ -0,0 +1,18 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- site_router diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml new file mode 100644 index 0000000..784fc9b --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml @@ -0,0 +1,121 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: site2-rtr1 + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: false + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: true + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- site_router diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml new file mode 100644 index 0000000..dfcc582 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml new file mode 100644 index 0000000..aa32e7f --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml @@ -0,0 +1,236 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml new file mode 100644 index 0000000..54d8288 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml @@ -0,0 +1,42 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: + - openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:config: + openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:name: default + openconfig-network-instance:status: ACTIVE + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml new file mode 100644 index 0000000..03f4be6 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml new file mode 100644 index 0000000..b2bf8f9 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml @@ -0,0 +1,25 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: + openconfig-spanning-tree:enabled-protocol: + - PVST + openconfig-spanning-tree:loop-guard: false + openconfig-spanning-tree:bpdu-guard: false + openconfig-spanning-tree:bpdu-filter: false + openconfig-spanning-tree-ext:uplinkfast: false + openconfig-spanning-tree-ext:backbonefast: false + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- switch diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml new file mode 100644 index 0000000..6063226 --- /dev/null +++ b/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml @@ -0,0 +1,131 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: site2-sw1 + openconfig-system:login-banner: "\r\nIOSv - Cisco Systems Confidential -\r\ + \n\r\nSupplemental End User License Restrictions\r\n\r\nThis IOSv software\ + \ is provided AS-IS without warranty of any kind. Under no circumstances\ + \ may this software be used separate from the Cisco Modeling Labs Software\ + \ that this software was provided with, or deployed or used as part of a\ + \ production environment.\r\n\r\nBy using the software, you agree to abide\ + \ by the terms and conditions of the Cisco End User License Agreement at\ + \ http://www.cisco.com/go/eula. Unauthorized use or distribution of this\ + \ software is expressly prohibited.\r\n" + openconfig-system:domain-name: mdd.cisco.com + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: true + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: false + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- switch From 72e43319ee43901fb6649e75154e36b71d020c8d Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 18:08:13 -0400 Subject: [PATCH 085/104] adding ls command --- .github/workflows/ci.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 41d06fe..ac25aec 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -113,9 +113,13 @@ jobs: run: rm -r mdd-data working-directory: ${{env.base_path}} - - name: Copy in testing reference topology - run: cp -r .github/workflows/testing-files/mdd-data ./ - working-directory: ${{env.base_path}} + - name: Ls to find mdd-data + run: ls -la + working-directory: ${{env.base_path}}/.github/workflows/testing-files + # .github/workflows/testing-files/mdd-data + # - name: Copy in testing reference topology + # run: cp -r .github/workflows/testing-files/mdd-data ./ + # working-directory: ${{env.base_path}} - name: Run show run: ansible-playbook ciscops.mdd.show From dfcd3a4716c3862db2470317542e3f5aaf10bea7 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 18:09:51 -0400 Subject: [PATCH 086/104] fixing ls path --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ac25aec..ccc2d00 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -115,7 +115,7 @@ jobs: - name: Ls to find mdd-data run: ls -la - working-directory: ${{env.base_path}}/.github/workflows/testing-files + working-directory: ${{env.base_path}}/.github # .github/workflows/testing-files/mdd-data # - name: Copy in testing reference topology # run: cp -r .github/workflows/testing-files/mdd-data ./ From 32ce165d404db1c9be6fbd78fcf285ebe2d2a861 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 18:11:02 -0400 Subject: [PATCH 087/104] updating path --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ccc2d00..4a9beaf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -115,7 +115,7 @@ jobs: - name: Ls to find mdd-data run: ls -la - working-directory: ${{env.base_path}}/.github + working-directory: ${{env.base_path}}/.github/workflows # .github/workflows/testing-files/mdd-data # - name: Copy in testing reference topology # run: cp -r .github/workflows/testing-files/mdd-data ./ From f93de73553a79ec306715a35018828c80765b50a Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 18:14:31 -0400 Subject: [PATCH 088/104] updating path to ansible collection code --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4a9beaf..1d465da 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -115,7 +115,7 @@ jobs: - name: Ls to find mdd-data run: ls -la - working-directory: ${{env.base_path}}/.github/workflows + working-directory: ${{env.base_path}}/${{env.COLLECTIONS_PATHS}}/.github/workflows # .github/workflows/testing-files/mdd-data # - name: Copy in testing reference topology # run: cp -r .github/workflows/testing-files/mdd-data ./ From 93ea90a542bc11c5eed12a5cc9ea96cf255d463f Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 18:15:59 -0400 Subject: [PATCH 089/104] changing ls path --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1d465da..9fa4724 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -115,7 +115,7 @@ jobs: - name: Ls to find mdd-data run: ls -la - working-directory: ${{env.base_path}}/${{env.COLLECTIONS_PATHS}}/.github/workflows + working-directory: ${{env.base_path}}/${{env.COLLECTIONS_PATHS}}/.github/testing-files # .github/workflows/testing-files/mdd-data # - name: Copy in testing reference topology # run: cp -r .github/workflows/testing-files/mdd-data ./ From ff9f68e04b0ada28a9a6642be7c0fbe63fc10a20 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 18:18:53 -0400 Subject: [PATCH 090/104] changing from workflow dir to .github dir --- .../testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml | 0 .../mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml | 0 .../mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml | 0 .../mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml | 0 .../testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml | 0 .../testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml | 0 .../mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml | 0 .../mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml | 0 .../mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml | 0 .../mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml | 0 .../mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml | 0 .../mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml | 0 .../mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml | 0 .../mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml | 0 .../mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml | 0 .../mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml | 0 .../mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml | 0 .../mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml | 0 .../mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml | 0 .../mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml | 0 .../mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml | 0 .../testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml | 0 .../mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml | 0 .../mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml | 0 .../org/region1/site1/site1-rtr1/oc-network-instances.yml | 0 .../mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml | 0 .../mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml | 0 .../mdd-data/org/region1/site1/site1-rtr1/oc-system.yml | 0 .../testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml | 0 .../mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml | 0 .../mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml | 0 .../mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml | 0 .../testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml | 0 .../mdd-data/org/region1/site1/site1-sw1/oc-system.yml | 0 .../mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml | 0 .../mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml | 0 .../org/region2/site2/site2-rtr1/oc-network-instances.yml | 0 .../mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml | 0 .../mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml | 0 .../mdd-data/org/region2/site2/site2-rtr1/oc-system.yml | 0 .../testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml | 0 .../mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml | 0 .../mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml | 0 .../mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml | 0 .../testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml | 0 .../mdd-data/org/region2/site2/site2-sw1/oc-system.yml | 0 60 files changed, 0 insertions(+), 0 deletions(-) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml (100%) rename .github/{workflows => }/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml (100%) diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml rename to .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml rename to .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml rename to .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml rename to .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml rename to .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml rename to .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml rename to .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml rename to .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml rename to .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml rename to .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml rename to .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml rename to .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml rename to .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml rename to .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml rename to .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml rename to .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml rename to .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml rename to .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml rename to .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml rename to .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml rename to .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml rename to .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml rename to .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml rename to .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml rename to .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml rename to .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml rename to .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml rename to .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml rename to .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml rename to .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml diff --git a/.github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml similarity index 100% rename from .github/workflows/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml rename to .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml From ecc9506256c486915c728a07e63e1bdd9101d7b8 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Fri, 7 Jul 2023 18:20:17 -0400 Subject: [PATCH 091/104] changing ls --- .github/workflows/ci.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9fa4724..511d97c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -74,7 +74,6 @@ jobs: ANSIBLE_COLLECTIONS_PATHS: ./ansible_collections base_path: elevate_test/mdd steps: - ## my stuff VVV - name: Checkout model-driven-devops/mdd repository uses: actions/checkout@v2 with: @@ -103,11 +102,11 @@ jobs: - name: Run ls run: ls -la - working-directory: ${{env.base_path}} + working-directory: ${{env.base_path}}/.github - name: Run ls run: ls -la - working-directory: ${{env.base_path}}/${{env.COLLECTIONS_PATHS}} + working-directory: ${{env.base_path}}/${{env.COLLECTIONS_PATHS}}/.github - name: Remove the current reference topology run: rm -r mdd-data @@ -115,7 +114,11 @@ jobs: - name: Ls to find mdd-data run: ls -la - working-directory: ${{env.base_path}}/${{env.COLLECTIONS_PATHS}}/.github/testing-files + working-directory: ${{env.base_path}}/.github + + - name: Ls to find mdd-data + run: ls -la + working-directory: ${{env.base_path}}/.github # .github/workflows/testing-files/mdd-data # - name: Copy in testing reference topology # run: cp -r .github/workflows/testing-files/mdd-data ./ From 95d4875d510735cb0d44b76809f2849cd2c6abb2 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 10 Jul 2023 10:47:58 -0400 Subject: [PATCH 092/104] moving testing files to testing dir --- .github/workflows/ci.yml | 11 ++++++++--- .../mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml | 0 .../org/region1/hq/WAN-rtr1/oc-interfaces.yml | 0 .../org/region1/hq/WAN-rtr1/oc-network-instances.yml | 0 .../org/region1/hq/WAN-rtr1/oc-routing-policy.yml | 0 .../mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml | 0 .../mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml | 0 .../mdd-data/org/region1/hq/hq-pop/oc-acl.yml | 0 .../mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml | 0 .../org/region1/hq/hq-pop/oc-network-instances.yml | 0 .../org/region1/hq/hq-pop/oc-routing-policy.yml | 0 .../mdd-data/org/region1/hq/hq-pop/oc-stp.yml | 0 .../mdd-data/org/region1/hq/hq-pop/oc-system.yml | 0 .../mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml | 0 .../mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml | 0 .../org/region1/hq/hq-rtr1/oc-network-instances.yml | 0 .../org/region1/hq/hq-rtr1/oc-routing-policy.yml | 0 .../mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml | 0 .../mdd-data/org/region1/hq/hq-rtr1/oc-system.yml | 0 .../mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml | 0 .../mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml | 0 .../org/region1/hq/hq-rtr2/oc-network-instances.yml | 0 .../org/region1/hq/hq-rtr2/oc-routing-policy.yml | 0 .../mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml | 0 .../mdd-data/org/region1/hq/hq-rtr2/oc-system.yml | 0 .../mdd-data/org/region1/hq/hq-sw1/oc-acl.yml | 0 .../mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml | 0 .../org/region1/hq/hq-sw1/oc-network-instances.yml | 0 .../org/region1/hq/hq-sw1/oc-routing-policy.yml | 0 .../mdd-data/org/region1/hq/hq-sw1/oc-stp.yml | 0 .../mdd-data/org/region1/hq/hq-sw1/oc-system.yml | 0 .../mdd-data/org/region1/hq/hq-sw2/oc-acl.yml | 0 .../mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml | 0 .../org/region1/hq/hq-sw2/oc-network-instances.yml | 0 .../org/region1/hq/hq-sw2/oc-routing-policy.yml | 0 .../mdd-data/org/region1/hq/hq-sw2/oc-stp.yml | 0 .../mdd-data/org/region1/hq/hq-sw2/oc-system.yml | 0 .../mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml | 0 .../org/region1/site1/site1-rtr1/oc-interfaces.yml | 0 .../region1/site1/site1-rtr1/oc-network-instances.yml | 0 .../region1/site1/site1-rtr1/oc-routing-policy.yml | 0 .../mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml | 0 .../org/region1/site1/site1-rtr1/oc-system.yml | 0 .../mdd-data/org/region1/site1/site1-sw1/oc-acl.yml | 0 .../org/region1/site1/site1-sw1/oc-interfaces.yml | 0 .../region1/site1/site1-sw1/oc-network-instances.yml | 0 .../org/region1/site1/site1-sw1/oc-routing-policy.yml | 0 .../mdd-data/org/region1/site1/site1-sw1/oc-stp.yml | 0 .../org/region1/site1/site1-sw1/oc-system.yml | 0 .../mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml | 0 .../org/region2/site2/site2-rtr1/oc-interfaces.yml | 0 .../region2/site2/site2-rtr1/oc-network-instances.yml | 0 .../region2/site2/site2-rtr1/oc-routing-policy.yml | 0 .../mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml | 0 .../org/region2/site2/site2-rtr1/oc-system.yml | 0 .../mdd-data/org/region2/site2/site2-sw1/oc-acl.yml | 0 .../org/region2/site2/site2-sw1/oc-interfaces.yml | 0 .../region2/site2/site2-sw1/oc-network-instances.yml | 0 .../org/region2/site2/site2-sw1/oc-routing-policy.yml | 0 .../mdd-data/org/region2/site2/site2-sw1/oc-stp.yml | 0 .../org/region2/site2/site2-sw1/oc-system.yml | 0 61 files changed, 8 insertions(+), 3 deletions(-) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml (100%) rename {.github => testing}/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 511d97c..4497fa7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,10 +119,15 @@ jobs: - name: Ls to find mdd-data run: ls -la working-directory: ${{env.base_path}}/.github + # .github/workflows/testing-files/mdd-data - # - name: Copy in testing reference topology - # run: cp -r .github/workflows/testing-files/mdd-data ./ - # working-directory: ${{env.base_path}} + - name: Copy in testing reference topology + run: cp -r testing/testing-files/mdd-data ./ + working-directory: ${{env.base_path}} + + - name: Ls to find mdd-data + run: ls -la + working-directory: ${{env.base_path}} - name: Run show run: ansible-playbook ciscops.mdd.show diff --git a/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml rename to testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml rename to testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml rename to testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml rename to testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml rename to testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml b/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml rename to testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml rename to testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml rename to testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml rename to testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml rename to testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml rename to testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml rename to testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml rename to testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml rename to testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml rename to testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml rename to testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml rename to testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml rename to testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml rename to testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml rename to testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml rename to testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml rename to testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml rename to testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml rename to testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml rename to testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml rename to testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml rename to testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml rename to testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml rename to testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml rename to testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml similarity index 100% rename from .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml rename to testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml From d5a5dc79e9c1d17e732e9219363ab076b966aa1d Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 10 Jul 2023 10:51:05 -0400 Subject: [PATCH 093/104] updating ci --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4497fa7..7fa5199 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -102,7 +102,7 @@ jobs: - name: Run ls run: ls -la - working-directory: ${{env.base_path}}/.github + working-directory: ${{env.base_path}} - name: Run ls run: ls -la @@ -114,7 +114,7 @@ jobs: - name: Ls to find mdd-data run: ls -la - working-directory: ${{env.base_path}}/.github + working-directory: ${{env.base_path}}/${{env.COLLECTIONS_PATHS}} - name: Ls to find mdd-data run: ls -la @@ -122,7 +122,7 @@ jobs: # .github/workflows/testing-files/mdd-data - name: Copy in testing reference topology - run: cp -r testing/testing-files/mdd-data ./ + run: cp -r ./${{env.COLLECTIONS_PATHS}}/testing/testing-files/mdd-data ./ working-directory: ${{env.base_path}} - name: Ls to find mdd-data From 966f0ca2332f443690b2043daa238ee2c8b4a602 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 10 Jul 2023 10:53:09 -0400 Subject: [PATCH 094/104] more updates to ci workflow --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7fa5199..3ace9ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -114,15 +114,15 @@ jobs: - name: Ls to find mdd-data run: ls -la - working-directory: ${{env.base_path}}/${{env.COLLECTIONS_PATHS}} + working-directory: ${{env.base_path}}/ansible_collections - name: Ls to find mdd-data run: ls -la - working-directory: ${{env.base_path}}/.github + working-directory: ${{env.base_path}}/ansible_collections # .github/workflows/testing-files/mdd-data - name: Copy in testing reference topology - run: cp -r ./${{env.COLLECTIONS_PATHS}}/testing/testing-files/mdd-data ./ + run: cp -r ansible_collections/testing/testing-files/mdd-data ./ working-directory: ${{env.base_path}} - name: Ls to find mdd-data From 22b939bd1a72043f9909579e90a2143802c69648 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 10 Jul 2023 10:57:10 -0400 Subject: [PATCH 095/104] changing path location --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3ace9ea..11f45c2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -118,11 +118,11 @@ jobs: - name: Ls to find mdd-data run: ls -la - working-directory: ${{env.base_path}}/ansible_collections + working-directory: ${{env.base_path}}/ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} # .github/workflows/testing-files/mdd-data - name: Copy in testing reference topology - run: cp -r ansible_collections/testing/testing-files/mdd-data ./ + run: cp -r ansible_collections/ciscops/mdd/testing/testing-files/mdd-data ./ working-directory: ${{env.base_path}} - name: Ls to find mdd-data From 56e7dffe6ebcca3db2b7eff3678ad3f8eee590c7 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 10 Jul 2023 11:00:49 -0400 Subject: [PATCH 096/104] checking .github path for file presence --- .github/testing-files/test.yml | 0 .github/workflows/ci.yml | 4 ++++ 2 files changed, 4 insertions(+) create mode 100644 .github/testing-files/test.yml diff --git a/.github/testing-files/test.yml b/.github/testing-files/test.yml new file mode 100644 index 0000000..e69de29 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 11f45c2..8a66062 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -120,6 +120,10 @@ jobs: run: ls -la working-directory: ${{env.base_path}}/ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + - name: Ls to find mdd-data + run: ls -la + working-directory: ${{env.base_path}}/ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/.github + # .github/workflows/testing-files/mdd-data - name: Copy in testing reference topology run: cp -r ansible_collections/ciscops/mdd/testing/testing-files/mdd-data ./ From baa70caa2a87cc8093c3b8f83cd41dd7289e4168 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 10 Jul 2023 11:03:41 -0400 Subject: [PATCH 097/104] reverting to using .github to store testing files --- .../org/region1/hq/WAN-rtr1/oc-acl.yml | 12 + .../org/region1/hq/WAN-rtr1/oc-interfaces.yml | 124 +++++++++ .../hq/WAN-rtr1/oc-network-instances.yml | 37 +++ .../region1/hq/WAN-rtr1/oc-routing-policy.yml | 20 ++ .../org/region1/hq/WAN-rtr1/oc-stp.yml | 18 ++ .../org/region1/hq/WAN-rtr1/oc-system.yml | 121 +++++++++ .../mdd-data/org/region1/hq/hq-pop/oc-acl.yml | 12 + .../org/region1/hq/hq-pop/oc-interfaces.yml | 124 +++++++++ .../hq/hq-pop/oc-network-instances.yml | 37 +++ .../region1/hq/hq-pop/oc-routing-policy.yml | 20 ++ .../mdd-data/org/region1/hq/hq-pop/oc-stp.yml | 18 ++ .../org/region1/hq/hq-pop/oc-system.yml | 121 +++++++++ .../org/region1/hq/hq-rtr1/oc-acl.yml | 12 + .../org/region1/hq/hq-rtr1/oc-interfaces.yml | 124 +++++++++ .../hq/hq-rtr1/oc-network-instances.yml | 37 +++ .../region1/hq/hq-rtr1/oc-routing-policy.yml | 20 ++ .../org/region1/hq/hq-rtr1/oc-stp.yml | 18 ++ .../org/region1/hq/hq-rtr1/oc-system.yml | 121 +++++++++ .../org/region1/hq/hq-rtr2/oc-acl.yml | 12 + .../org/region1/hq/hq-rtr2/oc-interfaces.yml | 124 +++++++++ .../hq/hq-rtr2/oc-network-instances.yml | 37 +++ .../region1/hq/hq-rtr2/oc-routing-policy.yml | 20 ++ .../org/region1/hq/hq-rtr2/oc-stp.yml | 18 ++ .../org/region1/hq/hq-rtr2/oc-system.yml | 121 +++++++++ .../mdd-data/org/region1/hq/hq-sw1/oc-acl.yml | 12 + .../org/region1/hq/hq-sw1/oc-interfaces.yml | 236 ++++++++++++++++++ .../hq/hq-sw1/oc-network-instances.yml | 42 ++++ .../region1/hq/hq-sw1/oc-routing-policy.yml | 20 ++ .../mdd-data/org/region1/hq/hq-sw1/oc-stp.yml | 25 ++ .../org/region1/hq/hq-sw1/oc-system.yml | 131 ++++++++++ .../mdd-data/org/region1/hq/hq-sw2/oc-acl.yml | 12 + .../org/region1/hq/hq-sw2/oc-interfaces.yml | 236 ++++++++++++++++++ .../hq/hq-sw2/oc-network-instances.yml | 42 ++++ .../region1/hq/hq-sw2/oc-routing-policy.yml | 20 ++ .../mdd-data/org/region1/hq/hq-sw2/oc-stp.yml | 25 ++ .../org/region1/hq/hq-sw2/oc-system.yml | 131 ++++++++++ .../org/region1/site1/site1-rtr1/oc-acl.yml | 12 + .../site1/site1-rtr1/oc-interfaces.yml | 124 +++++++++ .../site1/site1-rtr1/oc-network-instances.yml | 37 +++ .../site1/site1-rtr1/oc-routing-policy.yml | 20 ++ .../org/region1/site1/site1-rtr1/oc-stp.yml | 18 ++ .../region1/site1/site1-rtr1/oc-system.yml | 121 +++++++++ .../org/region1/site1/site1-sw1/oc-acl.yml | 12 + .../region1/site1/site1-sw1/oc-interfaces.yml | 236 ++++++++++++++++++ .../site1/site1-sw1/oc-network-instances.yml | 42 ++++ .../site1/site1-sw1/oc-routing-policy.yml | 20 ++ .../org/region1/site1/site1-sw1/oc-stp.yml | 25 ++ .../org/region1/site1/site1-sw1/oc-system.yml | 131 ++++++++++ .../org/region2/site2/site2-rtr1/oc-acl.yml | 12 + .../site2/site2-rtr1/oc-interfaces.yml | 124 +++++++++ .../site2/site2-rtr1/oc-network-instances.yml | 37 +++ .../site2/site2-rtr1/oc-routing-policy.yml | 20 ++ .../org/region2/site2/site2-rtr1/oc-stp.yml | 18 ++ .../region2/site2/site2-rtr1/oc-system.yml | 121 +++++++++ .../org/region2/site2/site2-sw1/oc-acl.yml | 12 + .../region2/site2/site2-sw1/oc-interfaces.yml | 236 ++++++++++++++++++ .../site2/site2-sw1/oc-network-instances.yml | 42 ++++ .../site2/site2-sw1/oc-routing-policy.yml | 20 ++ .../org/region2/site2/site2-sw1/oc-stp.yml | 25 ++ .../org/region2/site2/site2-sw1/oc-system.yml | 131 ++++++++++ .github/testing-files/test.yml | 0 .github/workflows/ci.yml | 5 +- 62 files changed, 3860 insertions(+), 1 deletion(-) create mode 100644 .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml create mode 100644 .github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml create mode 100644 .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml create mode 100644 .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml create mode 100644 .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml create mode 100644 .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml create mode 100644 .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml create mode 100644 .github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml create mode 100644 .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml create mode 100644 .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml create mode 100644 .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml create mode 100644 .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml create mode 100644 .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml create mode 100644 .github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml create mode 100644 .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml create mode 100644 .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml create mode 100644 .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml create mode 100644 .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml create mode 100644 .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml create mode 100644 .github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml create mode 100644 .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml create mode 100644 .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml create mode 100644 .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml create mode 100644 .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml create mode 100644 .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml create mode 100644 .github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml delete mode 100644 .github/testing-files/test.yml diff --git a/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml new file mode 100644 index 0000000..0d15c00 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- WAN_router diff --git a/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml new file mode 100644 index 0000000..08b645a --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml @@ -0,0 +1,124 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- WAN_router diff --git a/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml new file mode 100644 index 0000000..f0f9e1e --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml @@ -0,0 +1,37 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: [] + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- WAN_router diff --git a/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml new file mode 100644 index 0000000..e44d67a --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- WAN_router diff --git a/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml new file mode 100644 index 0000000..0763b37 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml @@ -0,0 +1,18 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- WAN_router diff --git a/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml new file mode 100644 index 0000000..a7919f6 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml @@ -0,0 +1,121 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: WAN-rtr1 + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: false + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: true + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- WAN_router diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml new file mode 100644 index 0000000..8cdfb88 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- hq_pop diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml new file mode 100644 index 0000000..204badc --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml @@ -0,0 +1,124 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- hq_pop diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml new file mode 100644 index 0000000..b05365b --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml @@ -0,0 +1,37 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: [] + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- hq_pop diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml new file mode 100644 index 0000000..c462d98 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- hq_pop diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml new file mode 100644 index 0000000..024f3e0 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml @@ -0,0 +1,18 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- hq_pop diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml new file mode 100644 index 0000000..cda0c66 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml @@ -0,0 +1,121 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: hq-pop + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: false + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: true + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- hq_pop diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml new file mode 100644 index 0000000..7017eb2 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml new file mode 100644 index 0000000..460f030 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml @@ -0,0 +1,124 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml new file mode 100644 index 0000000..f9c03d5 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml @@ -0,0 +1,37 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: [] + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml new file mode 100644 index 0000000..1161c97 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml new file mode 100644 index 0000000..940e3bc --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml @@ -0,0 +1,18 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml new file mode 100644 index 0000000..bbaab5f --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml @@ -0,0 +1,121 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: hq-rtr1 + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: false + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: true + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml new file mode 100644 index 0000000..7017eb2 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml new file mode 100644 index 0000000..460f030 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml @@ -0,0 +1,124 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml new file mode 100644 index 0000000..f9c03d5 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml @@ -0,0 +1,37 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: [] + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml new file mode 100644 index 0000000..1161c97 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml new file mode 100644 index 0000000..940e3bc --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml @@ -0,0 +1,18 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml new file mode 100644 index 0000000..0bedde7 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml @@ -0,0 +1,121 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: hq-rtr2 + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: false + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: true + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- bgp, hq_router, ospf diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml new file mode 100644 index 0000000..dfcc582 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml new file mode 100644 index 0000000..aa32e7f --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml @@ -0,0 +1,236 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml new file mode 100644 index 0000000..54d8288 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml @@ -0,0 +1,42 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: + - openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:config: + openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:name: default + openconfig-network-instance:status: ACTIVE + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml new file mode 100644 index 0000000..03f4be6 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml new file mode 100644 index 0000000..b2bf8f9 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml @@ -0,0 +1,25 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: + openconfig-spanning-tree:enabled-protocol: + - PVST + openconfig-spanning-tree:loop-guard: false + openconfig-spanning-tree:bpdu-guard: false + openconfig-spanning-tree:bpdu-filter: false + openconfig-spanning-tree-ext:uplinkfast: false + openconfig-spanning-tree-ext:backbonefast: false + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml new file mode 100644 index 0000000..5df192f --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml @@ -0,0 +1,131 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: hq-sw1 + openconfig-system:login-banner: "\r\nIOSv - Cisco Systems Confidential -\r\ + \n\r\nSupplemental End User License Restrictions\r\n\r\nThis IOSv software\ + \ is provided AS-IS without warranty of any kind. Under no circumstances\ + \ may this software be used separate from the Cisco Modeling Labs Software\ + \ that this software was provided with, or deployed or used as part of a\ + \ production environment.\r\n\r\nBy using the software, you agree to abide\ + \ by the terms and conditions of the Cisco End User License Agreement at\ + \ http://www.cisco.com/go/eula. Unauthorized use or distribution of this\ + \ software is expressly prohibited.\r\n" + openconfig-system:domain-name: mdd.cisco.com + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: true + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: false + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml new file mode 100644 index 0000000..dfcc582 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml new file mode 100644 index 0000000..aa32e7f --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml @@ -0,0 +1,236 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml new file mode 100644 index 0000000..54d8288 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml @@ -0,0 +1,42 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: + - openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:config: + openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:name: default + openconfig-network-instance:status: ACTIVE + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml new file mode 100644 index 0000000..03f4be6 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml new file mode 100644 index 0000000..b2bf8f9 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml @@ -0,0 +1,25 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: + openconfig-spanning-tree:enabled-protocol: + - PVST + openconfig-spanning-tree:loop-guard: false + openconfig-spanning-tree:bpdu-guard: false + openconfig-spanning-tree:bpdu-filter: false + openconfig-spanning-tree-ext:uplinkfast: false + openconfig-spanning-tree-ext:backbonefast: false + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml new file mode 100644 index 0000000..8411fd2 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml @@ -0,0 +1,131 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: hq-sw2 + openconfig-system:login-banner: "\r\nIOSv - Cisco Systems Confidential -\r\ + \n\r\nSupplemental End User License Restrictions\r\n\r\nThis IOSv software\ + \ is provided AS-IS without warranty of any kind. Under no circumstances\ + \ may this software be used separate from the Cisco Modeling Labs Software\ + \ that this software was provided with, or deployed or used as part of a\ + \ production environment.\r\n\r\nBy using the software, you agree to abide\ + \ by the terms and conditions of the Cisco End User License Agreement at\ + \ http://www.cisco.com/go/eula. Unauthorized use or distribution of this\ + \ software is expressly prohibited.\r\n" + openconfig-system:domain-name: mdd.cisco.com + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: true + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: false + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml new file mode 100644 index 0000000..6233f57 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- site_router diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml new file mode 100644 index 0000000..bfc4180 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml @@ -0,0 +1,124 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- site_router diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml new file mode 100644 index 0000000..724373c --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml @@ -0,0 +1,37 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: [] + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- site_router diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml new file mode 100644 index 0000000..de9c373 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- site_router diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml new file mode 100644 index 0000000..e6bc45b --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml @@ -0,0 +1,18 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- site_router diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml new file mode 100644 index 0000000..f748d89 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml @@ -0,0 +1,121 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: site1-rtr1 + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: false + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: true + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- site_router diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml new file mode 100644 index 0000000..dfcc582 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml new file mode 100644 index 0000000..aa32e7f --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml @@ -0,0 +1,236 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml new file mode 100644 index 0000000..54d8288 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml @@ -0,0 +1,42 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: + - openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:config: + openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:name: default + openconfig-network-instance:status: ACTIVE + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml new file mode 100644 index 0000000..03f4be6 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml new file mode 100644 index 0000000..b2bf8f9 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml @@ -0,0 +1,25 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: + openconfig-spanning-tree:enabled-protocol: + - PVST + openconfig-spanning-tree:loop-guard: false + openconfig-spanning-tree:bpdu-guard: false + openconfig-spanning-tree:bpdu-filter: false + openconfig-spanning-tree-ext:uplinkfast: false + openconfig-spanning-tree-ext:backbonefast: false + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml new file mode 100644 index 0000000..4385569 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml @@ -0,0 +1,131 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: site1-sw1 + openconfig-system:login-banner: "\r\nIOSv - Cisco Systems Confidential -\r\ + \n\r\nSupplemental End User License Restrictions\r\n\r\nThis IOSv software\ + \ is provided AS-IS without warranty of any kind. Under no circumstances\ + \ may this software be used separate from the Cisco Modeling Labs Software\ + \ that this software was provided with, or deployed or used as part of a\ + \ production environment.\r\n\r\nBy using the software, you agree to abide\ + \ by the terms and conditions of the Cisco End User License Agreement at\ + \ http://www.cisco.com/go/eula. Unauthorized use or distribution of this\ + \ software is expressly prohibited.\r\n" + openconfig-system:domain-name: mdd.cisco.com + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: true + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: false + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml new file mode 100644 index 0000000..6233f57 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- site_router diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml new file mode 100644 index 0000000..bfc4180 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml @@ -0,0 +1,124 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet4 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet5 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet6 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet7 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet8 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: false + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: false + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- site_router diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml new file mode 100644 index 0000000..724373c --- /dev/null +++ b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml @@ -0,0 +1,37 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: [] + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- site_router diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml new file mode 100644 index 0000000..de9c373 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- site_router diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml new file mode 100644 index 0000000..e6bc45b --- /dev/null +++ b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml @@ -0,0 +1,18 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- site_router diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml new file mode 100644 index 0000000..784fc9b --- /dev/null +++ b/.github/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml @@ -0,0 +1,121 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: site2-rtr1 + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: false + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: true + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- site_router diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml new file mode 100644 index 0000000..dfcc582 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml @@ -0,0 +1,12 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-acl:acl: + openconfig-acl:acl-sets: + openconfig-acl:acl-set: [] + openconfig-acl:interfaces: + openconfig-acl:interface: [] + openconfig-acl-ext:lines: + openconfig-acl-ext:line: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml new file mode 100644 index 0000000..aa32e7f --- /dev/null +++ b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml @@ -0,0 +1,236 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-interfaces:interfaces: + openconfig-interfaces:interface: + - openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ip:ipv4: + openconfig-if-ip:addresses: + openconfig-if-ip:address: [] + openconfig-if-ip:config: + openconfig-if-ip:dhcp-client: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet0/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet1/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet2/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/0 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/1 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/2 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true + - openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:config: + openconfig-interfaces:name: GigabitEthernet3/3 + openconfig-interfaces:type: ethernetCsmacd + openconfig-interfaces:enabled: true + openconfig-interfaces:subinterfaces: + openconfig-interfaces:subinterface: + - openconfig-interfaces:index: 0 + openconfig-interfaces:config: + openconfig-interfaces:index: 0 + openconfig-interfaces:enabled: true + openconfig-if-ethernet:ethernet: + openconfig-if-ethernet:config: + openconfig-if-ethernet:auto-negotiate: true +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml new file mode 100644 index 0000000..54d8288 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml @@ -0,0 +1,42 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-network-instance:network-instances: + openconfig-network-instance:network-instance: + - openconfig-network-instance:name: default + openconfig-network-instance:config: + openconfig-network-instance:name: default + openconfig-network-instance:type: DEFAULT_INSTANCE + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: + - openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:config: + openconfig-network-instance:identifier: STATIC + openconfig-network-instance:name: DEFAULT + openconfig-network-instance:static-routes: + openconfig-network-instance:static: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] + openconfig-network-instance:vlans: + openconfig-network-instance:vlan: + - openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:config: + openconfig-network-instance:vlan-id: 1 + openconfig-network-instance:name: default + openconfig-network-instance:status: ACTIVE + - openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:config: + openconfig-network-instance:name: Mgmt-intf + openconfig-network-instance:type: L3VRF + openconfig-network-instance:enabled: 'true' + openconfig-network-instance:enabled-address-families: + - openconfig-types:IPV4 + - openconfig-types:IPV6 + openconfig-network-instance:protocols: + openconfig-network-instance:protocol: [] + openconfig-network-instance:interfaces: + openconfig-network-instance:interface: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml new file mode 100644 index 0000000..03f4be6 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml @@ -0,0 +1,20 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-routing-policy:routing-policy: + openconfig-routing-policy:defined-sets: + openconfig-bgp-policy:bgp-defined-sets: + openconfig-bgp-policy:as-path-sets: + openconfig-bgp-policy:as-path-set: [] + openconfig-bgp-policy:community-sets: + openconfig-bgp-policy:community-set: [] + openconfig-bgp-policy:ext-community-sets: + openconfig-bgp-policy:ext-community-set: [] + openconfig-routing-policy:tag-sets: + openconfig-routing-policy:tag-set: [] + openconfig-routing-policy:prefix-sets: + openconfig-routing-policy:prefix-set: [] + openconfig-routing-policy:policy-definitions: + openconfig-routing-policy:policy-definition: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml new file mode 100644 index 0000000..b2bf8f9 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml @@ -0,0 +1,25 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-spanning-tree:stp: + openconfig-spanning-tree:global: + openconfig-spanning-tree:config: + openconfig-spanning-tree:enabled-protocol: + - PVST + openconfig-spanning-tree:loop-guard: false + openconfig-spanning-tree:bpdu-guard: false + openconfig-spanning-tree:bpdu-filter: false + openconfig-spanning-tree-ext:uplinkfast: false + openconfig-spanning-tree-ext:backbonefast: false + openconfig-spanning-tree:interfaces: + openconfig-spanning-tree:interface: [] + openconfig-spanning-tree:rapid-pvst: + openconfig-spanning-tree:vlan: [] + openconfig-spanning-tree-ext:pvst: + openconfig-spanning-tree-ext:vlan: [] + openconfig-spanning-tree:mstp: + openconfig-spanning-tree:config: {} + openconfig-spanning-tree:mst-instances: + openconfig-spanning-tree:mst-instance: [] +mdd_tags: +- switch diff --git a/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml new file mode 100644 index 0000000..6063226 --- /dev/null +++ b/.github/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml @@ -0,0 +1,131 @@ +--- +mdd_data: + mdd:openconfig: + openconfig-system:system: + openconfig-system:aaa: + openconfig-system:server-groups: + openconfig-system:server-group: [] + openconfig-system:accounting: {} + openconfig-system:authorization: {} + openconfig-system:authentication: {} + openconfig-system:clock: + openconfig-system:config: + openconfig-system:timezone-name: UTC 0 0 + openconfig-system:config: + openconfig-system:hostname: site2-sw1 + openconfig-system:login-banner: "\r\nIOSv - Cisco Systems Confidential -\r\ + \n\r\nSupplemental End User License Restrictions\r\n\r\nThis IOSv software\ + \ is provided AS-IS without warranty of any kind. Under no circumstances\ + \ may this software be used separate from the Cisco Modeling Labs Software\ + \ that this software was provided with, or deployed or used as part of a\ + \ production environment.\r\n\r\nBy using the software, you agree to abide\ + \ by the terms and conditions of the Cisco End User License Agreement at\ + \ http://www.cisco.com/go/eula. Unauthorized use or distribution of this\ + \ software is expressly prohibited.\r\n" + openconfig-system:domain-name: mdd.cisco.com + openconfig-system:dns: + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:logging: + openconfig-system:console: + openconfig-system:config: + openconfig-system-ext:enabled: true + openconfig-system:selectors: + openconfig-system:selector: + - openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system:config: + openconfig-system:facility: SYSLOG + openconfig-system:severity: DEBUG + openconfig-system-ext:terminal-monitor: + openconfig-system-ext:selectors: + openconfig-system-ext:selector: + - openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:config: + openconfig-system-ext:facility: SYSLOG + openconfig-system-ext:severity: DEBUG + openconfig-system:remote-servers: {} + openconfig-system-ext:buffered: + openconfig-system-ext:config: + - openconfig-system-ext:enabled: true + openconfig-system-ext:severity: DEBUG + openconfig-system-ext:buffer-size: '4096' + openconfig-system:ntp: + openconfig-system:config: {} + openconfig-system:ntp-keys: + openconfig-system:ntp-key: [] + openconfig-system:servers: + openconfig-system:server: [] + openconfig-system:ssh-server: + openconfig-system:config: + openconfig-system-ext:ssh-timeout: 60 + openconfig-system:protocol-version: V2 + openconfig-system:timeout: 1800 + openconfig-system-ext:absolute-timeout-minutes: 60 + openconfig-system:session-limit: 16 + openconfig-system-ext:algorithm: + openconfig-system-ext:config: + openconfig-system-ext:encryption: + - aes128-ctr + - aes192-ctr + - aes256-ctr + openconfig-system-ext:services: + openconfig-system-ext:http: + openconfig-system-ext:config: + openconfig-system-ext:http-enabled: true + openconfig-system-ext:https-enabled: true + openconfig-system-ext:ip-http-max-connections: 2 + openconfig-system-ext:ip-http-timeout-policy: + openconfig-system-ext:idle: + openconfig-system-ext:config: {} + openconfig-system-ext:config: + openconfig-system-ext:ip-domain-lookup: true + openconfig-system-ext:archive-logging: false + openconfig-system-ext:ip-bootp-server: false + openconfig-system-ext:ip-dns-server: false + openconfig-system-ext:ip-identd: false + openconfig-system-ext:ip-rcmd-rcp-enable: false + openconfig-system-ext:ip-rcmd-rsh-enable: false + openconfig-system-ext:finger: false + openconfig-system-ext:service-config: false + openconfig-system-ext:service-tcp-small-servers: false + openconfig-system-ext:service-udp-small-servers: false + openconfig-system-ext:service-pad: true + openconfig-system-ext:service-password-encryption: false + openconfig-system-ext:ip-gratuitous-arps: true + openconfig-system-ext:login-security-policy: + openconfig-system-ext:config: + openconfig-system-ext:on-success: false + openconfig-system-ext:on-failure: false + openconfig-system-ext:block-for: + openconfig-system-ext:config: {} + openconfig-system-ext:object-tracking: + openconfig-system-ext:config: + openconfig-system-ext:timer: {} + openconfig-system-ext:object-track: [] + openconfig-system-ext:key-chains: + openconfig-system-ext:key-chain: [] + openconfig-system-ext:boot-network: + openconfig-system-ext:config: + openconfig-system-ext:bootnetwork-enabled: DISABLED + openconfig-system-ext:nat: + openconfig-system-ext:pools: + openconfig-system-ext:pool: [] + openconfig-system-ext:inside: + openconfig-system-ext:source: {} + openconfig-system-ext:timestamps: + openconfig-system-ext:logging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false + openconfig-system-ext:debugging: + openconfig-system-ext:config: + openconfig-system-ext:enabled: true + openconfig-system-ext:datetime: true + openconfig-system-ext:uptime: false + openconfig-system-ext:localtime: false +mdd_tags: +- switch diff --git a/.github/testing-files/test.yml b/.github/testing-files/test.yml deleted file mode 100644 index e69de29..0000000 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8a66062..71d2a92 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -125,8 +125,11 @@ jobs: working-directory: ${{env.base_path}}/ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/.github # .github/workflows/testing-files/mdd-data + # - name: Copy in testing reference topology + # run: cp -r ansible_collections/ciscops/mdd/testing/testing-files/mdd-data ./ + # working-directory: ${{env.base_path}} - name: Copy in testing reference topology - run: cp -r ansible_collections/ciscops/mdd/testing/testing-files/mdd-data ./ + run: cp -r ansible_collections/ciscops/mdd/testing/.github/testing-files/mdd-data ./ working-directory: ${{env.base_path}} - name: Ls to find mdd-data From 3cd3b388f93cf5e09e41673ab4a531305738b8a0 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 10 Jul 2023 11:05:04 -0400 Subject: [PATCH 098/104] removing bad file path --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 71d2a92..8c271ed 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -129,7 +129,7 @@ jobs: # run: cp -r ansible_collections/ciscops/mdd/testing/testing-files/mdd-data ./ # working-directory: ${{env.base_path}} - name: Copy in testing reference topology - run: cp -r ansible_collections/ciscops/mdd/testing/.github/testing-files/mdd-data ./ + run: cp -r ansible_collections/ciscops/mdd/.github/testing-files/mdd-data ./ working-directory: ${{env.base_path}} - name: Ls to find mdd-data From c90c68a8854340689dd254eb46a76bb293336a54 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 10 Jul 2023 11:09:32 -0400 Subject: [PATCH 099/104] changing to vars, and running elevate --- .github/workflows/ci.yml | 62 +++-- .../org/region1/hq/WAN-rtr1/oc-acl.yml | 12 - .../org/region1/hq/WAN-rtr1/oc-interfaces.yml | 124 --------- .../hq/WAN-rtr1/oc-network-instances.yml | 37 --- .../region1/hq/WAN-rtr1/oc-routing-policy.yml | 20 -- .../org/region1/hq/WAN-rtr1/oc-stp.yml | 18 -- .../org/region1/hq/WAN-rtr1/oc-system.yml | 121 --------- .../mdd-data/org/region1/hq/hq-pop/oc-acl.yml | 12 - .../org/region1/hq/hq-pop/oc-interfaces.yml | 124 --------- .../hq/hq-pop/oc-network-instances.yml | 37 --- .../region1/hq/hq-pop/oc-routing-policy.yml | 20 -- .../mdd-data/org/region1/hq/hq-pop/oc-stp.yml | 18 -- .../org/region1/hq/hq-pop/oc-system.yml | 121 --------- .../org/region1/hq/hq-rtr1/oc-acl.yml | 12 - .../org/region1/hq/hq-rtr1/oc-interfaces.yml | 124 --------- .../hq/hq-rtr1/oc-network-instances.yml | 37 --- .../region1/hq/hq-rtr1/oc-routing-policy.yml | 20 -- .../org/region1/hq/hq-rtr1/oc-stp.yml | 18 -- .../org/region1/hq/hq-rtr1/oc-system.yml | 121 --------- .../org/region1/hq/hq-rtr2/oc-acl.yml | 12 - .../org/region1/hq/hq-rtr2/oc-interfaces.yml | 124 --------- .../hq/hq-rtr2/oc-network-instances.yml | 37 --- .../region1/hq/hq-rtr2/oc-routing-policy.yml | 20 -- .../org/region1/hq/hq-rtr2/oc-stp.yml | 18 -- .../org/region1/hq/hq-rtr2/oc-system.yml | 121 --------- .../mdd-data/org/region1/hq/hq-sw1/oc-acl.yml | 12 - .../org/region1/hq/hq-sw1/oc-interfaces.yml | 236 ------------------ .../hq/hq-sw1/oc-network-instances.yml | 42 ---- .../region1/hq/hq-sw1/oc-routing-policy.yml | 20 -- .../mdd-data/org/region1/hq/hq-sw1/oc-stp.yml | 25 -- .../org/region1/hq/hq-sw1/oc-system.yml | 131 ---------- .../mdd-data/org/region1/hq/hq-sw2/oc-acl.yml | 12 - .../org/region1/hq/hq-sw2/oc-interfaces.yml | 236 ------------------ .../hq/hq-sw2/oc-network-instances.yml | 42 ---- .../region1/hq/hq-sw2/oc-routing-policy.yml | 20 -- .../mdd-data/org/region1/hq/hq-sw2/oc-stp.yml | 25 -- .../org/region1/hq/hq-sw2/oc-system.yml | 131 ---------- .../org/region1/site1/site1-rtr1/oc-acl.yml | 12 - .../site1/site1-rtr1/oc-interfaces.yml | 124 --------- .../site1/site1-rtr1/oc-network-instances.yml | 37 --- .../site1/site1-rtr1/oc-routing-policy.yml | 20 -- .../org/region1/site1/site1-rtr1/oc-stp.yml | 18 -- .../region1/site1/site1-rtr1/oc-system.yml | 121 --------- .../org/region1/site1/site1-sw1/oc-acl.yml | 12 - .../region1/site1/site1-sw1/oc-interfaces.yml | 236 ------------------ .../site1/site1-sw1/oc-network-instances.yml | 42 ---- .../site1/site1-sw1/oc-routing-policy.yml | 20 -- .../org/region1/site1/site1-sw1/oc-stp.yml | 25 -- .../org/region1/site1/site1-sw1/oc-system.yml | 131 ---------- .../org/region2/site2/site2-rtr1/oc-acl.yml | 12 - .../site2/site2-rtr1/oc-interfaces.yml | 124 --------- .../site2/site2-rtr1/oc-network-instances.yml | 37 --- .../site2/site2-rtr1/oc-routing-policy.yml | 20 -- .../org/region2/site2/site2-rtr1/oc-stp.yml | 18 -- .../region2/site2/site2-rtr1/oc-system.yml | 121 --------- .../org/region2/site2/site2-sw1/oc-acl.yml | 12 - .../region2/site2/site2-sw1/oc-interfaces.yml | 236 ------------------ .../site2/site2-sw1/oc-network-instances.yml | 42 ---- .../site2/site2-sw1/oc-routing-policy.yml | 20 -- .../org/region2/site2/site2-sw1/oc-stp.yml | 25 -- .../org/region2/site2/site2-sw1/oc-system.yml | 131 ---------- 61 files changed, 37 insertions(+), 3881 deletions(-) delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml delete mode 100644 testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml delete mode 100644 testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml delete mode 100644 testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml delete mode 100644 testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml delete mode 100644 testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml delete mode 100644 testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml delete mode 100644 testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml delete mode 100644 testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml delete mode 100644 testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml delete mode 100644 testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml delete mode 100644 testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml delete mode 100644 testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml delete mode 100644 testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8c271ed..148d7fd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -100,45 +100,57 @@ jobs: with: path: ${{env.base_path}}/${{env.ANSIBLE_COLLECTIONS_PATHS}}/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - - name: Run ls - run: ls -la + - name: Remove the current reference topology + run: rm -r mdd-data working-directory: ${{env.base_path}} - - name: Run ls - run: ls -la - working-directory: ${{env.base_path}}/${{env.COLLECTIONS_PATHS}}/.github + - name: Copy in testing reference topology + run: cp -r ${{env.ANSIBLE_COLLECTIONS_PATHS}}/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/.github/testing-files/mdd-data ./ + # run: cp -r ansible_collections/ciscops/mdd/.github/testing-files/mdd-data ./ + working-directory: ${{env.base_path}} - - name: Remove the current reference topology - run: rm -r mdd-data + - name: Run show + run: ansible-playbook ciscops.mdd.show working-directory: ${{env.base_path}} - - name: Ls to find mdd-data - run: ls -la - working-directory: ${{env.base_path}}/ansible_collections + - name: Run Elevate + run: ansible-playbook ciscops.mdd.elevate + working-directory: ${{env.base_path}} - - name: Ls to find mdd-data - run: ls -la - working-directory: ${{env.base_path}}/ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - - name: Ls to find mdd-data - run: ls -la - working-directory: ${{env.base_path}}/ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/.github + # - name: Run ls + # run: ls -la + # working-directory: ${{env.base_path}} + + # - name: Run ls + # run: ls -la + # working-directory: ${{env.base_path}}/${{env.COLLECTIONS_PATHS}}/.github + + + + # - name: Ls to find mdd-data + # run: ls -la + # working-directory: ${{env.base_path}}/ansible_collections + + # - name: Ls to find mdd-data + # run: ls -la + # working-directory: ${{env.base_path}}/ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} + + # - name: Ls to find mdd-data + # run: ls -la + # working-directory: ${{env.base_path}}/ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/.github # .github/workflows/testing-files/mdd-data # - name: Copy in testing reference topology # run: cp -r ansible_collections/ciscops/mdd/testing/testing-files/mdd-data ./ # working-directory: ${{env.base_path}} - - name: Copy in testing reference topology - run: cp -r ansible_collections/ciscops/mdd/.github/testing-files/mdd-data ./ - working-directory: ${{env.base_path}} - - name: Ls to find mdd-data - run: ls -la - working-directory: ${{env.base_path}} - - name: Run show - run: ansible-playbook ciscops.mdd.show - working-directory: ${{env.base_path}} + # - name: Ls to find mdd-data + # run: ls -la + # working-directory: ${{env.base_path}} + + # - name: Install collection # run: ansible-galaxy collection install -r requirements.yml diff --git a/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml deleted file mode 100644 index 0d15c00..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-acl.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-acl:acl: - openconfig-acl:acl-sets: - openconfig-acl:acl-set: [] - openconfig-acl:interfaces: - openconfig-acl:interface: [] - openconfig-acl-ext:lines: - openconfig-acl-ext:line: [] -mdd_tags: -- WAN_router diff --git a/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml deleted file mode 100644 index 08b645a..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-interfaces.yml +++ /dev/null @@ -1,124 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-interfaces:interfaces: - openconfig-interfaces:interface: - - openconfig-interfaces:name: GigabitEthernet1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ip:ipv4: - openconfig-if-ip:addresses: - openconfig-if-ip:address: [] - openconfig-if-ip:config: - openconfig-if-ip:dhcp-client: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet4 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet4 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet5 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet5 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet6 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet6 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet7 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet7 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet8 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet8 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true -mdd_tags: -- WAN_router diff --git a/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml deleted file mode 100644 index f0f9e1e..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-network-instances.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-network-instance:network-instances: - openconfig-network-instance:network-instance: - - openconfig-network-instance:name: default - openconfig-network-instance:config: - openconfig-network-instance:name: default - openconfig-network-instance:type: DEFAULT_INSTANCE - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: - - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:config: - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:static-routes: - openconfig-network-instance:static: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] - openconfig-network-instance:vlans: - openconfig-network-instance:vlan: [] - - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:config: - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:type: L3VRF - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:enabled-address-families: - - openconfig-types:IPV4 - - openconfig-types:IPV6 - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] -mdd_tags: -- WAN_router diff --git a/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml deleted file mode 100644 index e44d67a..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-routing-policy.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-routing-policy:routing-policy: - openconfig-routing-policy:defined-sets: - openconfig-bgp-policy:bgp-defined-sets: - openconfig-bgp-policy:as-path-sets: - openconfig-bgp-policy:as-path-set: [] - openconfig-bgp-policy:community-sets: - openconfig-bgp-policy:community-set: [] - openconfig-bgp-policy:ext-community-sets: - openconfig-bgp-policy:ext-community-set: [] - openconfig-routing-policy:tag-sets: - openconfig-routing-policy:tag-set: [] - openconfig-routing-policy:prefix-sets: - openconfig-routing-policy:prefix-set: [] - openconfig-routing-policy:policy-definitions: - openconfig-routing-policy:policy-definition: [] -mdd_tags: -- WAN_router diff --git a/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml deleted file mode 100644 index 0763b37..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-stp.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-spanning-tree:stp: - openconfig-spanning-tree:global: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:interfaces: - openconfig-spanning-tree:interface: [] - openconfig-spanning-tree:rapid-pvst: - openconfig-spanning-tree:vlan: [] - openconfig-spanning-tree-ext:pvst: - openconfig-spanning-tree-ext:vlan: [] - openconfig-spanning-tree:mstp: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:mst-instances: - openconfig-spanning-tree:mst-instance: [] -mdd_tags: -- WAN_router diff --git a/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml b/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml deleted file mode 100644 index a7919f6..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/WAN-rtr1/oc-system.yml +++ /dev/null @@ -1,121 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-system:system: - openconfig-system:aaa: - openconfig-system:server-groups: - openconfig-system:server-group: [] - openconfig-system:accounting: {} - openconfig-system:authorization: {} - openconfig-system:authentication: {} - openconfig-system:clock: - openconfig-system:config: - openconfig-system:timezone-name: UTC 0 0 - openconfig-system:config: - openconfig-system:hostname: WAN-rtr1 - openconfig-system:dns: - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:logging: - openconfig-system:console: - openconfig-system:config: - openconfig-system-ext:enabled: true - openconfig-system:selectors: - openconfig-system:selector: - - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system:config: - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system-ext:terminal-monitor: - openconfig-system-ext:selectors: - openconfig-system-ext:selector: - - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:config: - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system:remote-servers: {} - openconfig-system-ext:buffered: - openconfig-system-ext:config: - - openconfig-system-ext:enabled: true - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:buffer-size: '4096' - openconfig-system:ntp: - openconfig-system:config: {} - openconfig-system:ntp-keys: - openconfig-system:ntp-key: [] - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:ssh-server: - openconfig-system:config: - openconfig-system-ext:ssh-timeout: 60 - openconfig-system:protocol-version: V2 - openconfig-system:timeout: 1800 - openconfig-system-ext:absolute-timeout-minutes: 60 - openconfig-system:session-limit: 16 - openconfig-system-ext:algorithm: - openconfig-system-ext:config: - openconfig-system-ext:encryption: - - aes128-ctr - - aes192-ctr - - aes256-ctr - openconfig-system-ext:services: - openconfig-system-ext:http: - openconfig-system-ext:config: - openconfig-system-ext:http-enabled: true - openconfig-system-ext:https-enabled: true - openconfig-system-ext:ip-http-max-connections: 2 - openconfig-system-ext:ip-http-timeout-policy: - openconfig-system-ext:idle: - openconfig-system-ext:config: {} - openconfig-system-ext:config: - openconfig-system-ext:ip-domain-lookup: true - openconfig-system-ext:archive-logging: false - openconfig-system-ext:ip-bootp-server: false - openconfig-system-ext:ip-dns-server: false - openconfig-system-ext:ip-identd: false - openconfig-system-ext:ip-rcmd-rcp-enable: false - openconfig-system-ext:ip-rcmd-rsh-enable: false - openconfig-system-ext:finger: false - openconfig-system-ext:service-config: false - openconfig-system-ext:service-tcp-small-servers: false - openconfig-system-ext:service-udp-small-servers: false - openconfig-system-ext:service-pad: false - openconfig-system-ext:service-password-encryption: false - openconfig-system-ext:ip-gratuitous-arps: true - openconfig-system-ext:login-security-policy: - openconfig-system-ext:config: - openconfig-system-ext:on-success: true - openconfig-system-ext:on-failure: false - openconfig-system-ext:block-for: - openconfig-system-ext:config: {} - openconfig-system-ext:object-tracking: - openconfig-system-ext:config: - openconfig-system-ext:timer: {} - openconfig-system-ext:object-track: [] - openconfig-system-ext:key-chains: - openconfig-system-ext:key-chain: [] - openconfig-system-ext:boot-network: - openconfig-system-ext:config: - openconfig-system-ext:bootnetwork-enabled: DISABLED - openconfig-system-ext:nat: - openconfig-system-ext:pools: - openconfig-system-ext:pool: [] - openconfig-system-ext:inside: - openconfig-system-ext:source: {} - openconfig-system-ext:timestamps: - openconfig-system-ext:logging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false - openconfig-system-ext:debugging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false -mdd_tags: -- WAN_router diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml deleted file mode 100644 index 8cdfb88..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-acl.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-acl:acl: - openconfig-acl:acl-sets: - openconfig-acl:acl-set: [] - openconfig-acl:interfaces: - openconfig-acl:interface: [] - openconfig-acl-ext:lines: - openconfig-acl-ext:line: [] -mdd_tags: -- hq_pop diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml deleted file mode 100644 index 204badc..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-interfaces.yml +++ /dev/null @@ -1,124 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-interfaces:interfaces: - openconfig-interfaces:interface: - - openconfig-interfaces:name: GigabitEthernet1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ip:ipv4: - openconfig-if-ip:addresses: - openconfig-if-ip:address: [] - openconfig-if-ip:config: - openconfig-if-ip:dhcp-client: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet4 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet4 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet5 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet5 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet6 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet6 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet7 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet7 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet8 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet8 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true -mdd_tags: -- hq_pop diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml deleted file mode 100644 index b05365b..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-network-instances.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-network-instance:network-instances: - openconfig-network-instance:network-instance: - - openconfig-network-instance:name: default - openconfig-network-instance:config: - openconfig-network-instance:name: default - openconfig-network-instance:type: DEFAULT_INSTANCE - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: - - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:config: - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:static-routes: - openconfig-network-instance:static: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] - openconfig-network-instance:vlans: - openconfig-network-instance:vlan: [] - - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:config: - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:type: L3VRF - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:enabled-address-families: - - openconfig-types:IPV4 - - openconfig-types:IPV6 - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] -mdd_tags: -- hq_pop diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml deleted file mode 100644 index c462d98..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-routing-policy.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-routing-policy:routing-policy: - openconfig-routing-policy:defined-sets: - openconfig-bgp-policy:bgp-defined-sets: - openconfig-bgp-policy:as-path-sets: - openconfig-bgp-policy:as-path-set: [] - openconfig-bgp-policy:community-sets: - openconfig-bgp-policy:community-set: [] - openconfig-bgp-policy:ext-community-sets: - openconfig-bgp-policy:ext-community-set: [] - openconfig-routing-policy:tag-sets: - openconfig-routing-policy:tag-set: [] - openconfig-routing-policy:prefix-sets: - openconfig-routing-policy:prefix-set: [] - openconfig-routing-policy:policy-definitions: - openconfig-routing-policy:policy-definition: [] -mdd_tags: -- hq_pop diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml deleted file mode 100644 index 024f3e0..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-stp.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-spanning-tree:stp: - openconfig-spanning-tree:global: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:interfaces: - openconfig-spanning-tree:interface: [] - openconfig-spanning-tree:rapid-pvst: - openconfig-spanning-tree:vlan: [] - openconfig-spanning-tree-ext:pvst: - openconfig-spanning-tree-ext:vlan: [] - openconfig-spanning-tree:mstp: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:mst-instances: - openconfig-spanning-tree:mst-instance: [] -mdd_tags: -- hq_pop diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml deleted file mode 100644 index cda0c66..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-pop/oc-system.yml +++ /dev/null @@ -1,121 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-system:system: - openconfig-system:aaa: - openconfig-system:server-groups: - openconfig-system:server-group: [] - openconfig-system:accounting: {} - openconfig-system:authorization: {} - openconfig-system:authentication: {} - openconfig-system:clock: - openconfig-system:config: - openconfig-system:timezone-name: UTC 0 0 - openconfig-system:config: - openconfig-system:hostname: hq-pop - openconfig-system:dns: - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:logging: - openconfig-system:console: - openconfig-system:config: - openconfig-system-ext:enabled: true - openconfig-system:selectors: - openconfig-system:selector: - - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system:config: - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system-ext:terminal-monitor: - openconfig-system-ext:selectors: - openconfig-system-ext:selector: - - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:config: - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system:remote-servers: {} - openconfig-system-ext:buffered: - openconfig-system-ext:config: - - openconfig-system-ext:enabled: true - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:buffer-size: '4096' - openconfig-system:ntp: - openconfig-system:config: {} - openconfig-system:ntp-keys: - openconfig-system:ntp-key: [] - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:ssh-server: - openconfig-system:config: - openconfig-system-ext:ssh-timeout: 60 - openconfig-system:protocol-version: V2 - openconfig-system:timeout: 1800 - openconfig-system-ext:absolute-timeout-minutes: 60 - openconfig-system:session-limit: 16 - openconfig-system-ext:algorithm: - openconfig-system-ext:config: - openconfig-system-ext:encryption: - - aes128-ctr - - aes192-ctr - - aes256-ctr - openconfig-system-ext:services: - openconfig-system-ext:http: - openconfig-system-ext:config: - openconfig-system-ext:http-enabled: true - openconfig-system-ext:https-enabled: true - openconfig-system-ext:ip-http-max-connections: 2 - openconfig-system-ext:ip-http-timeout-policy: - openconfig-system-ext:idle: - openconfig-system-ext:config: {} - openconfig-system-ext:config: - openconfig-system-ext:ip-domain-lookup: true - openconfig-system-ext:archive-logging: false - openconfig-system-ext:ip-bootp-server: false - openconfig-system-ext:ip-dns-server: false - openconfig-system-ext:ip-identd: false - openconfig-system-ext:ip-rcmd-rcp-enable: false - openconfig-system-ext:ip-rcmd-rsh-enable: false - openconfig-system-ext:finger: false - openconfig-system-ext:service-config: false - openconfig-system-ext:service-tcp-small-servers: false - openconfig-system-ext:service-udp-small-servers: false - openconfig-system-ext:service-pad: false - openconfig-system-ext:service-password-encryption: false - openconfig-system-ext:ip-gratuitous-arps: true - openconfig-system-ext:login-security-policy: - openconfig-system-ext:config: - openconfig-system-ext:on-success: true - openconfig-system-ext:on-failure: false - openconfig-system-ext:block-for: - openconfig-system-ext:config: {} - openconfig-system-ext:object-tracking: - openconfig-system-ext:config: - openconfig-system-ext:timer: {} - openconfig-system-ext:object-track: [] - openconfig-system-ext:key-chains: - openconfig-system-ext:key-chain: [] - openconfig-system-ext:boot-network: - openconfig-system-ext:config: - openconfig-system-ext:bootnetwork-enabled: DISABLED - openconfig-system-ext:nat: - openconfig-system-ext:pools: - openconfig-system-ext:pool: [] - openconfig-system-ext:inside: - openconfig-system-ext:source: {} - openconfig-system-ext:timestamps: - openconfig-system-ext:logging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false - openconfig-system-ext:debugging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false -mdd_tags: -- hq_pop diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml deleted file mode 100644 index 7017eb2..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-acl.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-acl:acl: - openconfig-acl:acl-sets: - openconfig-acl:acl-set: [] - openconfig-acl:interfaces: - openconfig-acl:interface: [] - openconfig-acl-ext:lines: - openconfig-acl-ext:line: [] -mdd_tags: -- bgp, hq_router, ospf diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml deleted file mode 100644 index 460f030..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-interfaces.yml +++ /dev/null @@ -1,124 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-interfaces:interfaces: - openconfig-interfaces:interface: - - openconfig-interfaces:name: GigabitEthernet1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ip:ipv4: - openconfig-if-ip:addresses: - openconfig-if-ip:address: [] - openconfig-if-ip:config: - openconfig-if-ip:dhcp-client: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet4 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet4 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet5 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet5 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet6 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet6 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet7 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet7 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet8 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet8 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true -mdd_tags: -- bgp, hq_router, ospf diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml deleted file mode 100644 index f9c03d5..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-network-instances.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-network-instance:network-instances: - openconfig-network-instance:network-instance: - - openconfig-network-instance:name: default - openconfig-network-instance:config: - openconfig-network-instance:name: default - openconfig-network-instance:type: DEFAULT_INSTANCE - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: - - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:config: - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:static-routes: - openconfig-network-instance:static: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] - openconfig-network-instance:vlans: - openconfig-network-instance:vlan: [] - - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:config: - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:type: L3VRF - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:enabled-address-families: - - openconfig-types:IPV4 - - openconfig-types:IPV6 - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] -mdd_tags: -- bgp, hq_router, ospf diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml deleted file mode 100644 index 1161c97..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-routing-policy.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-routing-policy:routing-policy: - openconfig-routing-policy:defined-sets: - openconfig-bgp-policy:bgp-defined-sets: - openconfig-bgp-policy:as-path-sets: - openconfig-bgp-policy:as-path-set: [] - openconfig-bgp-policy:community-sets: - openconfig-bgp-policy:community-set: [] - openconfig-bgp-policy:ext-community-sets: - openconfig-bgp-policy:ext-community-set: [] - openconfig-routing-policy:tag-sets: - openconfig-routing-policy:tag-set: [] - openconfig-routing-policy:prefix-sets: - openconfig-routing-policy:prefix-set: [] - openconfig-routing-policy:policy-definitions: - openconfig-routing-policy:policy-definition: [] -mdd_tags: -- bgp, hq_router, ospf diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml deleted file mode 100644 index 940e3bc..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-stp.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-spanning-tree:stp: - openconfig-spanning-tree:global: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:interfaces: - openconfig-spanning-tree:interface: [] - openconfig-spanning-tree:rapid-pvst: - openconfig-spanning-tree:vlan: [] - openconfig-spanning-tree-ext:pvst: - openconfig-spanning-tree-ext:vlan: [] - openconfig-spanning-tree:mstp: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:mst-instances: - openconfig-spanning-tree:mst-instance: [] -mdd_tags: -- bgp, hq_router, ospf diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml deleted file mode 100644 index bbaab5f..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr1/oc-system.yml +++ /dev/null @@ -1,121 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-system:system: - openconfig-system:aaa: - openconfig-system:server-groups: - openconfig-system:server-group: [] - openconfig-system:accounting: {} - openconfig-system:authorization: {} - openconfig-system:authentication: {} - openconfig-system:clock: - openconfig-system:config: - openconfig-system:timezone-name: UTC 0 0 - openconfig-system:config: - openconfig-system:hostname: hq-rtr1 - openconfig-system:dns: - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:logging: - openconfig-system:console: - openconfig-system:config: - openconfig-system-ext:enabled: true - openconfig-system:selectors: - openconfig-system:selector: - - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system:config: - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system-ext:terminal-monitor: - openconfig-system-ext:selectors: - openconfig-system-ext:selector: - - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:config: - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system:remote-servers: {} - openconfig-system-ext:buffered: - openconfig-system-ext:config: - - openconfig-system-ext:enabled: true - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:buffer-size: '4096' - openconfig-system:ntp: - openconfig-system:config: {} - openconfig-system:ntp-keys: - openconfig-system:ntp-key: [] - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:ssh-server: - openconfig-system:config: - openconfig-system-ext:ssh-timeout: 60 - openconfig-system:protocol-version: V2 - openconfig-system:timeout: 1800 - openconfig-system-ext:absolute-timeout-minutes: 60 - openconfig-system:session-limit: 16 - openconfig-system-ext:algorithm: - openconfig-system-ext:config: - openconfig-system-ext:encryption: - - aes128-ctr - - aes192-ctr - - aes256-ctr - openconfig-system-ext:services: - openconfig-system-ext:http: - openconfig-system-ext:config: - openconfig-system-ext:http-enabled: true - openconfig-system-ext:https-enabled: true - openconfig-system-ext:ip-http-max-connections: 2 - openconfig-system-ext:ip-http-timeout-policy: - openconfig-system-ext:idle: - openconfig-system-ext:config: {} - openconfig-system-ext:config: - openconfig-system-ext:ip-domain-lookup: true - openconfig-system-ext:archive-logging: false - openconfig-system-ext:ip-bootp-server: false - openconfig-system-ext:ip-dns-server: false - openconfig-system-ext:ip-identd: false - openconfig-system-ext:ip-rcmd-rcp-enable: false - openconfig-system-ext:ip-rcmd-rsh-enable: false - openconfig-system-ext:finger: false - openconfig-system-ext:service-config: false - openconfig-system-ext:service-tcp-small-servers: false - openconfig-system-ext:service-udp-small-servers: false - openconfig-system-ext:service-pad: false - openconfig-system-ext:service-password-encryption: false - openconfig-system-ext:ip-gratuitous-arps: true - openconfig-system-ext:login-security-policy: - openconfig-system-ext:config: - openconfig-system-ext:on-success: true - openconfig-system-ext:on-failure: false - openconfig-system-ext:block-for: - openconfig-system-ext:config: {} - openconfig-system-ext:object-tracking: - openconfig-system-ext:config: - openconfig-system-ext:timer: {} - openconfig-system-ext:object-track: [] - openconfig-system-ext:key-chains: - openconfig-system-ext:key-chain: [] - openconfig-system-ext:boot-network: - openconfig-system-ext:config: - openconfig-system-ext:bootnetwork-enabled: DISABLED - openconfig-system-ext:nat: - openconfig-system-ext:pools: - openconfig-system-ext:pool: [] - openconfig-system-ext:inside: - openconfig-system-ext:source: {} - openconfig-system-ext:timestamps: - openconfig-system-ext:logging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false - openconfig-system-ext:debugging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false -mdd_tags: -- bgp, hq_router, ospf diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml deleted file mode 100644 index 7017eb2..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-acl.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-acl:acl: - openconfig-acl:acl-sets: - openconfig-acl:acl-set: [] - openconfig-acl:interfaces: - openconfig-acl:interface: [] - openconfig-acl-ext:lines: - openconfig-acl-ext:line: [] -mdd_tags: -- bgp, hq_router, ospf diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml deleted file mode 100644 index 460f030..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-interfaces.yml +++ /dev/null @@ -1,124 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-interfaces:interfaces: - openconfig-interfaces:interface: - - openconfig-interfaces:name: GigabitEthernet1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ip:ipv4: - openconfig-if-ip:addresses: - openconfig-if-ip:address: [] - openconfig-if-ip:config: - openconfig-if-ip:dhcp-client: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet4 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet4 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet5 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet5 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet6 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet6 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet7 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet7 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet8 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet8 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true -mdd_tags: -- bgp, hq_router, ospf diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml deleted file mode 100644 index f9c03d5..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-network-instances.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-network-instance:network-instances: - openconfig-network-instance:network-instance: - - openconfig-network-instance:name: default - openconfig-network-instance:config: - openconfig-network-instance:name: default - openconfig-network-instance:type: DEFAULT_INSTANCE - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: - - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:config: - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:static-routes: - openconfig-network-instance:static: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] - openconfig-network-instance:vlans: - openconfig-network-instance:vlan: [] - - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:config: - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:type: L3VRF - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:enabled-address-families: - - openconfig-types:IPV4 - - openconfig-types:IPV6 - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] -mdd_tags: -- bgp, hq_router, ospf diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml deleted file mode 100644 index 1161c97..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-routing-policy.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-routing-policy:routing-policy: - openconfig-routing-policy:defined-sets: - openconfig-bgp-policy:bgp-defined-sets: - openconfig-bgp-policy:as-path-sets: - openconfig-bgp-policy:as-path-set: [] - openconfig-bgp-policy:community-sets: - openconfig-bgp-policy:community-set: [] - openconfig-bgp-policy:ext-community-sets: - openconfig-bgp-policy:ext-community-set: [] - openconfig-routing-policy:tag-sets: - openconfig-routing-policy:tag-set: [] - openconfig-routing-policy:prefix-sets: - openconfig-routing-policy:prefix-set: [] - openconfig-routing-policy:policy-definitions: - openconfig-routing-policy:policy-definition: [] -mdd_tags: -- bgp, hq_router, ospf diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml deleted file mode 100644 index 940e3bc..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-stp.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-spanning-tree:stp: - openconfig-spanning-tree:global: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:interfaces: - openconfig-spanning-tree:interface: [] - openconfig-spanning-tree:rapid-pvst: - openconfig-spanning-tree:vlan: [] - openconfig-spanning-tree-ext:pvst: - openconfig-spanning-tree-ext:vlan: [] - openconfig-spanning-tree:mstp: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:mst-instances: - openconfig-spanning-tree:mst-instance: [] -mdd_tags: -- bgp, hq_router, ospf diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml deleted file mode 100644 index 0bedde7..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-rtr2/oc-system.yml +++ /dev/null @@ -1,121 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-system:system: - openconfig-system:aaa: - openconfig-system:server-groups: - openconfig-system:server-group: [] - openconfig-system:accounting: {} - openconfig-system:authorization: {} - openconfig-system:authentication: {} - openconfig-system:clock: - openconfig-system:config: - openconfig-system:timezone-name: UTC 0 0 - openconfig-system:config: - openconfig-system:hostname: hq-rtr2 - openconfig-system:dns: - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:logging: - openconfig-system:console: - openconfig-system:config: - openconfig-system-ext:enabled: true - openconfig-system:selectors: - openconfig-system:selector: - - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system:config: - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system-ext:terminal-monitor: - openconfig-system-ext:selectors: - openconfig-system-ext:selector: - - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:config: - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system:remote-servers: {} - openconfig-system-ext:buffered: - openconfig-system-ext:config: - - openconfig-system-ext:enabled: true - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:buffer-size: '4096' - openconfig-system:ntp: - openconfig-system:config: {} - openconfig-system:ntp-keys: - openconfig-system:ntp-key: [] - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:ssh-server: - openconfig-system:config: - openconfig-system-ext:ssh-timeout: 60 - openconfig-system:protocol-version: V2 - openconfig-system:timeout: 1800 - openconfig-system-ext:absolute-timeout-minutes: 60 - openconfig-system:session-limit: 16 - openconfig-system-ext:algorithm: - openconfig-system-ext:config: - openconfig-system-ext:encryption: - - aes128-ctr - - aes192-ctr - - aes256-ctr - openconfig-system-ext:services: - openconfig-system-ext:http: - openconfig-system-ext:config: - openconfig-system-ext:http-enabled: true - openconfig-system-ext:https-enabled: true - openconfig-system-ext:ip-http-max-connections: 2 - openconfig-system-ext:ip-http-timeout-policy: - openconfig-system-ext:idle: - openconfig-system-ext:config: {} - openconfig-system-ext:config: - openconfig-system-ext:ip-domain-lookup: true - openconfig-system-ext:archive-logging: false - openconfig-system-ext:ip-bootp-server: false - openconfig-system-ext:ip-dns-server: false - openconfig-system-ext:ip-identd: false - openconfig-system-ext:ip-rcmd-rcp-enable: false - openconfig-system-ext:ip-rcmd-rsh-enable: false - openconfig-system-ext:finger: false - openconfig-system-ext:service-config: false - openconfig-system-ext:service-tcp-small-servers: false - openconfig-system-ext:service-udp-small-servers: false - openconfig-system-ext:service-pad: false - openconfig-system-ext:service-password-encryption: false - openconfig-system-ext:ip-gratuitous-arps: true - openconfig-system-ext:login-security-policy: - openconfig-system-ext:config: - openconfig-system-ext:on-success: true - openconfig-system-ext:on-failure: false - openconfig-system-ext:block-for: - openconfig-system-ext:config: {} - openconfig-system-ext:object-tracking: - openconfig-system-ext:config: - openconfig-system-ext:timer: {} - openconfig-system-ext:object-track: [] - openconfig-system-ext:key-chains: - openconfig-system-ext:key-chain: [] - openconfig-system-ext:boot-network: - openconfig-system-ext:config: - openconfig-system-ext:bootnetwork-enabled: DISABLED - openconfig-system-ext:nat: - openconfig-system-ext:pools: - openconfig-system-ext:pool: [] - openconfig-system-ext:inside: - openconfig-system-ext:source: {} - openconfig-system-ext:timestamps: - openconfig-system-ext:logging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false - openconfig-system-ext:debugging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false -mdd_tags: -- bgp, hq_router, ospf diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml deleted file mode 100644 index dfcc582..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-acl.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-acl:acl: - openconfig-acl:acl-sets: - openconfig-acl:acl-set: [] - openconfig-acl:interfaces: - openconfig-acl:interface: [] - openconfig-acl-ext:lines: - openconfig-acl-ext:line: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml deleted file mode 100644 index aa32e7f..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-interfaces.yml +++ /dev/null @@ -1,236 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-interfaces:interfaces: - openconfig-interfaces:interface: - - openconfig-interfaces:name: GigabitEthernet0/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ip:ipv4: - openconfig-if-ip:addresses: - openconfig-if-ip:address: [] - openconfig-if-ip:config: - openconfig-if-ip:dhcp-client: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet0/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet0/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet0/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml deleted file mode 100644 index 54d8288..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-network-instances.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-network-instance:network-instances: - openconfig-network-instance:network-instance: - - openconfig-network-instance:name: default - openconfig-network-instance:config: - openconfig-network-instance:name: default - openconfig-network-instance:type: DEFAULT_INSTANCE - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: - - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:config: - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:static-routes: - openconfig-network-instance:static: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] - openconfig-network-instance:vlans: - openconfig-network-instance:vlan: - - openconfig-network-instance:vlan-id: 1 - openconfig-network-instance:config: - openconfig-network-instance:vlan-id: 1 - openconfig-network-instance:name: default - openconfig-network-instance:status: ACTIVE - - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:config: - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:type: L3VRF - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:enabled-address-families: - - openconfig-types:IPV4 - - openconfig-types:IPV6 - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml deleted file mode 100644 index 03f4be6..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-routing-policy.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-routing-policy:routing-policy: - openconfig-routing-policy:defined-sets: - openconfig-bgp-policy:bgp-defined-sets: - openconfig-bgp-policy:as-path-sets: - openconfig-bgp-policy:as-path-set: [] - openconfig-bgp-policy:community-sets: - openconfig-bgp-policy:community-set: [] - openconfig-bgp-policy:ext-community-sets: - openconfig-bgp-policy:ext-community-set: [] - openconfig-routing-policy:tag-sets: - openconfig-routing-policy:tag-set: [] - openconfig-routing-policy:prefix-sets: - openconfig-routing-policy:prefix-set: [] - openconfig-routing-policy:policy-definitions: - openconfig-routing-policy:policy-definition: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml deleted file mode 100644 index b2bf8f9..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-stp.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-spanning-tree:stp: - openconfig-spanning-tree:global: - openconfig-spanning-tree:config: - openconfig-spanning-tree:enabled-protocol: - - PVST - openconfig-spanning-tree:loop-guard: false - openconfig-spanning-tree:bpdu-guard: false - openconfig-spanning-tree:bpdu-filter: false - openconfig-spanning-tree-ext:uplinkfast: false - openconfig-spanning-tree-ext:backbonefast: false - openconfig-spanning-tree:interfaces: - openconfig-spanning-tree:interface: [] - openconfig-spanning-tree:rapid-pvst: - openconfig-spanning-tree:vlan: [] - openconfig-spanning-tree-ext:pvst: - openconfig-spanning-tree-ext:vlan: [] - openconfig-spanning-tree:mstp: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:mst-instances: - openconfig-spanning-tree:mst-instance: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml deleted file mode 100644 index 5df192f..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-sw1/oc-system.yml +++ /dev/null @@ -1,131 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-system:system: - openconfig-system:aaa: - openconfig-system:server-groups: - openconfig-system:server-group: [] - openconfig-system:accounting: {} - openconfig-system:authorization: {} - openconfig-system:authentication: {} - openconfig-system:clock: - openconfig-system:config: - openconfig-system:timezone-name: UTC 0 0 - openconfig-system:config: - openconfig-system:hostname: hq-sw1 - openconfig-system:login-banner: "\r\nIOSv - Cisco Systems Confidential -\r\ - \n\r\nSupplemental End User License Restrictions\r\n\r\nThis IOSv software\ - \ is provided AS-IS without warranty of any kind. Under no circumstances\ - \ may this software be used separate from the Cisco Modeling Labs Software\ - \ that this software was provided with, or deployed or used as part of a\ - \ production environment.\r\n\r\nBy using the software, you agree to abide\ - \ by the terms and conditions of the Cisco End User License Agreement at\ - \ http://www.cisco.com/go/eula. Unauthorized use or distribution of this\ - \ software is expressly prohibited.\r\n" - openconfig-system:domain-name: mdd.cisco.com - openconfig-system:dns: - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:logging: - openconfig-system:console: - openconfig-system:config: - openconfig-system-ext:enabled: true - openconfig-system:selectors: - openconfig-system:selector: - - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system:config: - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system-ext:terminal-monitor: - openconfig-system-ext:selectors: - openconfig-system-ext:selector: - - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:config: - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system:remote-servers: {} - openconfig-system-ext:buffered: - openconfig-system-ext:config: - - openconfig-system-ext:enabled: true - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:buffer-size: '4096' - openconfig-system:ntp: - openconfig-system:config: {} - openconfig-system:ntp-keys: - openconfig-system:ntp-key: [] - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:ssh-server: - openconfig-system:config: - openconfig-system-ext:ssh-timeout: 60 - openconfig-system:protocol-version: V2 - openconfig-system:timeout: 1800 - openconfig-system-ext:absolute-timeout-minutes: 60 - openconfig-system:session-limit: 16 - openconfig-system-ext:algorithm: - openconfig-system-ext:config: - openconfig-system-ext:encryption: - - aes128-ctr - - aes192-ctr - - aes256-ctr - openconfig-system-ext:services: - openconfig-system-ext:http: - openconfig-system-ext:config: - openconfig-system-ext:http-enabled: true - openconfig-system-ext:https-enabled: true - openconfig-system-ext:ip-http-max-connections: 2 - openconfig-system-ext:ip-http-timeout-policy: - openconfig-system-ext:idle: - openconfig-system-ext:config: {} - openconfig-system-ext:config: - openconfig-system-ext:ip-domain-lookup: true - openconfig-system-ext:archive-logging: false - openconfig-system-ext:ip-bootp-server: false - openconfig-system-ext:ip-dns-server: false - openconfig-system-ext:ip-identd: false - openconfig-system-ext:ip-rcmd-rcp-enable: false - openconfig-system-ext:ip-rcmd-rsh-enable: false - openconfig-system-ext:finger: false - openconfig-system-ext:service-config: false - openconfig-system-ext:service-tcp-small-servers: false - openconfig-system-ext:service-udp-small-servers: false - openconfig-system-ext:service-pad: true - openconfig-system-ext:service-password-encryption: false - openconfig-system-ext:ip-gratuitous-arps: true - openconfig-system-ext:login-security-policy: - openconfig-system-ext:config: - openconfig-system-ext:on-success: false - openconfig-system-ext:on-failure: false - openconfig-system-ext:block-for: - openconfig-system-ext:config: {} - openconfig-system-ext:object-tracking: - openconfig-system-ext:config: - openconfig-system-ext:timer: {} - openconfig-system-ext:object-track: [] - openconfig-system-ext:key-chains: - openconfig-system-ext:key-chain: [] - openconfig-system-ext:boot-network: - openconfig-system-ext:config: - openconfig-system-ext:bootnetwork-enabled: DISABLED - openconfig-system-ext:nat: - openconfig-system-ext:pools: - openconfig-system-ext:pool: [] - openconfig-system-ext:inside: - openconfig-system-ext:source: {} - openconfig-system-ext:timestamps: - openconfig-system-ext:logging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false - openconfig-system-ext:debugging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml deleted file mode 100644 index dfcc582..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-acl.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-acl:acl: - openconfig-acl:acl-sets: - openconfig-acl:acl-set: [] - openconfig-acl:interfaces: - openconfig-acl:interface: [] - openconfig-acl-ext:lines: - openconfig-acl-ext:line: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml deleted file mode 100644 index aa32e7f..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-interfaces.yml +++ /dev/null @@ -1,236 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-interfaces:interfaces: - openconfig-interfaces:interface: - - openconfig-interfaces:name: GigabitEthernet0/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ip:ipv4: - openconfig-if-ip:addresses: - openconfig-if-ip:address: [] - openconfig-if-ip:config: - openconfig-if-ip:dhcp-client: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet0/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet0/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet0/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml deleted file mode 100644 index 54d8288..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-network-instances.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-network-instance:network-instances: - openconfig-network-instance:network-instance: - - openconfig-network-instance:name: default - openconfig-network-instance:config: - openconfig-network-instance:name: default - openconfig-network-instance:type: DEFAULT_INSTANCE - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: - - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:config: - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:static-routes: - openconfig-network-instance:static: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] - openconfig-network-instance:vlans: - openconfig-network-instance:vlan: - - openconfig-network-instance:vlan-id: 1 - openconfig-network-instance:config: - openconfig-network-instance:vlan-id: 1 - openconfig-network-instance:name: default - openconfig-network-instance:status: ACTIVE - - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:config: - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:type: L3VRF - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:enabled-address-families: - - openconfig-types:IPV4 - - openconfig-types:IPV6 - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml deleted file mode 100644 index 03f4be6..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-routing-policy.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-routing-policy:routing-policy: - openconfig-routing-policy:defined-sets: - openconfig-bgp-policy:bgp-defined-sets: - openconfig-bgp-policy:as-path-sets: - openconfig-bgp-policy:as-path-set: [] - openconfig-bgp-policy:community-sets: - openconfig-bgp-policy:community-set: [] - openconfig-bgp-policy:ext-community-sets: - openconfig-bgp-policy:ext-community-set: [] - openconfig-routing-policy:tag-sets: - openconfig-routing-policy:tag-set: [] - openconfig-routing-policy:prefix-sets: - openconfig-routing-policy:prefix-set: [] - openconfig-routing-policy:policy-definitions: - openconfig-routing-policy:policy-definition: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml deleted file mode 100644 index b2bf8f9..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-stp.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-spanning-tree:stp: - openconfig-spanning-tree:global: - openconfig-spanning-tree:config: - openconfig-spanning-tree:enabled-protocol: - - PVST - openconfig-spanning-tree:loop-guard: false - openconfig-spanning-tree:bpdu-guard: false - openconfig-spanning-tree:bpdu-filter: false - openconfig-spanning-tree-ext:uplinkfast: false - openconfig-spanning-tree-ext:backbonefast: false - openconfig-spanning-tree:interfaces: - openconfig-spanning-tree:interface: [] - openconfig-spanning-tree:rapid-pvst: - openconfig-spanning-tree:vlan: [] - openconfig-spanning-tree-ext:pvst: - openconfig-spanning-tree-ext:vlan: [] - openconfig-spanning-tree:mstp: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:mst-instances: - openconfig-spanning-tree:mst-instance: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml b/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml deleted file mode 100644 index 8411fd2..0000000 --- a/testing/testing-files/mdd-data/org/region1/hq/hq-sw2/oc-system.yml +++ /dev/null @@ -1,131 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-system:system: - openconfig-system:aaa: - openconfig-system:server-groups: - openconfig-system:server-group: [] - openconfig-system:accounting: {} - openconfig-system:authorization: {} - openconfig-system:authentication: {} - openconfig-system:clock: - openconfig-system:config: - openconfig-system:timezone-name: UTC 0 0 - openconfig-system:config: - openconfig-system:hostname: hq-sw2 - openconfig-system:login-banner: "\r\nIOSv - Cisco Systems Confidential -\r\ - \n\r\nSupplemental End User License Restrictions\r\n\r\nThis IOSv software\ - \ is provided AS-IS without warranty of any kind. Under no circumstances\ - \ may this software be used separate from the Cisco Modeling Labs Software\ - \ that this software was provided with, or deployed or used as part of a\ - \ production environment.\r\n\r\nBy using the software, you agree to abide\ - \ by the terms and conditions of the Cisco End User License Agreement at\ - \ http://www.cisco.com/go/eula. Unauthorized use or distribution of this\ - \ software is expressly prohibited.\r\n" - openconfig-system:domain-name: mdd.cisco.com - openconfig-system:dns: - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:logging: - openconfig-system:console: - openconfig-system:config: - openconfig-system-ext:enabled: true - openconfig-system:selectors: - openconfig-system:selector: - - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system:config: - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system-ext:terminal-monitor: - openconfig-system-ext:selectors: - openconfig-system-ext:selector: - - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:config: - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system:remote-servers: {} - openconfig-system-ext:buffered: - openconfig-system-ext:config: - - openconfig-system-ext:enabled: true - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:buffer-size: '4096' - openconfig-system:ntp: - openconfig-system:config: {} - openconfig-system:ntp-keys: - openconfig-system:ntp-key: [] - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:ssh-server: - openconfig-system:config: - openconfig-system-ext:ssh-timeout: 60 - openconfig-system:protocol-version: V2 - openconfig-system:timeout: 1800 - openconfig-system-ext:absolute-timeout-minutes: 60 - openconfig-system:session-limit: 16 - openconfig-system-ext:algorithm: - openconfig-system-ext:config: - openconfig-system-ext:encryption: - - aes128-ctr - - aes192-ctr - - aes256-ctr - openconfig-system-ext:services: - openconfig-system-ext:http: - openconfig-system-ext:config: - openconfig-system-ext:http-enabled: true - openconfig-system-ext:https-enabled: true - openconfig-system-ext:ip-http-max-connections: 2 - openconfig-system-ext:ip-http-timeout-policy: - openconfig-system-ext:idle: - openconfig-system-ext:config: {} - openconfig-system-ext:config: - openconfig-system-ext:ip-domain-lookup: true - openconfig-system-ext:archive-logging: false - openconfig-system-ext:ip-bootp-server: false - openconfig-system-ext:ip-dns-server: false - openconfig-system-ext:ip-identd: false - openconfig-system-ext:ip-rcmd-rcp-enable: false - openconfig-system-ext:ip-rcmd-rsh-enable: false - openconfig-system-ext:finger: false - openconfig-system-ext:service-config: false - openconfig-system-ext:service-tcp-small-servers: false - openconfig-system-ext:service-udp-small-servers: false - openconfig-system-ext:service-pad: true - openconfig-system-ext:service-password-encryption: false - openconfig-system-ext:ip-gratuitous-arps: true - openconfig-system-ext:login-security-policy: - openconfig-system-ext:config: - openconfig-system-ext:on-success: false - openconfig-system-ext:on-failure: false - openconfig-system-ext:block-for: - openconfig-system-ext:config: {} - openconfig-system-ext:object-tracking: - openconfig-system-ext:config: - openconfig-system-ext:timer: {} - openconfig-system-ext:object-track: [] - openconfig-system-ext:key-chains: - openconfig-system-ext:key-chain: [] - openconfig-system-ext:boot-network: - openconfig-system-ext:config: - openconfig-system-ext:bootnetwork-enabled: DISABLED - openconfig-system-ext:nat: - openconfig-system-ext:pools: - openconfig-system-ext:pool: [] - openconfig-system-ext:inside: - openconfig-system-ext:source: {} - openconfig-system-ext:timestamps: - openconfig-system-ext:logging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false - openconfig-system-ext:debugging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml deleted file mode 100644 index 6233f57..0000000 --- a/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-acl.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-acl:acl: - openconfig-acl:acl-sets: - openconfig-acl:acl-set: [] - openconfig-acl:interfaces: - openconfig-acl:interface: [] - openconfig-acl-ext:lines: - openconfig-acl-ext:line: [] -mdd_tags: -- site_router diff --git a/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml deleted file mode 100644 index bfc4180..0000000 --- a/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-interfaces.yml +++ /dev/null @@ -1,124 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-interfaces:interfaces: - openconfig-interfaces:interface: - - openconfig-interfaces:name: GigabitEthernet1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ip:ipv4: - openconfig-if-ip:addresses: - openconfig-if-ip:address: [] - openconfig-if-ip:config: - openconfig-if-ip:dhcp-client: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet4 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet4 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet5 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet5 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet6 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet6 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet7 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet7 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet8 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet8 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true -mdd_tags: -- site_router diff --git a/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml deleted file mode 100644 index 724373c..0000000 --- a/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-network-instances.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-network-instance:network-instances: - openconfig-network-instance:network-instance: - - openconfig-network-instance:name: default - openconfig-network-instance:config: - openconfig-network-instance:name: default - openconfig-network-instance:type: DEFAULT_INSTANCE - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: - - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:config: - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:static-routes: - openconfig-network-instance:static: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] - openconfig-network-instance:vlans: - openconfig-network-instance:vlan: [] - - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:config: - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:type: L3VRF - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:enabled-address-families: - - openconfig-types:IPV4 - - openconfig-types:IPV6 - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] -mdd_tags: -- site_router diff --git a/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml deleted file mode 100644 index de9c373..0000000 --- a/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-routing-policy.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-routing-policy:routing-policy: - openconfig-routing-policy:defined-sets: - openconfig-bgp-policy:bgp-defined-sets: - openconfig-bgp-policy:as-path-sets: - openconfig-bgp-policy:as-path-set: [] - openconfig-bgp-policy:community-sets: - openconfig-bgp-policy:community-set: [] - openconfig-bgp-policy:ext-community-sets: - openconfig-bgp-policy:ext-community-set: [] - openconfig-routing-policy:tag-sets: - openconfig-routing-policy:tag-set: [] - openconfig-routing-policy:prefix-sets: - openconfig-routing-policy:prefix-set: [] - openconfig-routing-policy:policy-definitions: - openconfig-routing-policy:policy-definition: [] -mdd_tags: -- site_router diff --git a/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml deleted file mode 100644 index e6bc45b..0000000 --- a/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-stp.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-spanning-tree:stp: - openconfig-spanning-tree:global: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:interfaces: - openconfig-spanning-tree:interface: [] - openconfig-spanning-tree:rapid-pvst: - openconfig-spanning-tree:vlan: [] - openconfig-spanning-tree-ext:pvst: - openconfig-spanning-tree-ext:vlan: [] - openconfig-spanning-tree:mstp: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:mst-instances: - openconfig-spanning-tree:mst-instance: [] -mdd_tags: -- site_router diff --git a/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml deleted file mode 100644 index f748d89..0000000 --- a/testing/testing-files/mdd-data/org/region1/site1/site1-rtr1/oc-system.yml +++ /dev/null @@ -1,121 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-system:system: - openconfig-system:aaa: - openconfig-system:server-groups: - openconfig-system:server-group: [] - openconfig-system:accounting: {} - openconfig-system:authorization: {} - openconfig-system:authentication: {} - openconfig-system:clock: - openconfig-system:config: - openconfig-system:timezone-name: UTC 0 0 - openconfig-system:config: - openconfig-system:hostname: site1-rtr1 - openconfig-system:dns: - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:logging: - openconfig-system:console: - openconfig-system:config: - openconfig-system-ext:enabled: true - openconfig-system:selectors: - openconfig-system:selector: - - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system:config: - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system-ext:terminal-monitor: - openconfig-system-ext:selectors: - openconfig-system-ext:selector: - - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:config: - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system:remote-servers: {} - openconfig-system-ext:buffered: - openconfig-system-ext:config: - - openconfig-system-ext:enabled: true - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:buffer-size: '4096' - openconfig-system:ntp: - openconfig-system:config: {} - openconfig-system:ntp-keys: - openconfig-system:ntp-key: [] - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:ssh-server: - openconfig-system:config: - openconfig-system-ext:ssh-timeout: 60 - openconfig-system:protocol-version: V2 - openconfig-system:timeout: 1800 - openconfig-system-ext:absolute-timeout-minutes: 60 - openconfig-system:session-limit: 16 - openconfig-system-ext:algorithm: - openconfig-system-ext:config: - openconfig-system-ext:encryption: - - aes128-ctr - - aes192-ctr - - aes256-ctr - openconfig-system-ext:services: - openconfig-system-ext:http: - openconfig-system-ext:config: - openconfig-system-ext:http-enabled: true - openconfig-system-ext:https-enabled: true - openconfig-system-ext:ip-http-max-connections: 2 - openconfig-system-ext:ip-http-timeout-policy: - openconfig-system-ext:idle: - openconfig-system-ext:config: {} - openconfig-system-ext:config: - openconfig-system-ext:ip-domain-lookup: true - openconfig-system-ext:archive-logging: false - openconfig-system-ext:ip-bootp-server: false - openconfig-system-ext:ip-dns-server: false - openconfig-system-ext:ip-identd: false - openconfig-system-ext:ip-rcmd-rcp-enable: false - openconfig-system-ext:ip-rcmd-rsh-enable: false - openconfig-system-ext:finger: false - openconfig-system-ext:service-config: false - openconfig-system-ext:service-tcp-small-servers: false - openconfig-system-ext:service-udp-small-servers: false - openconfig-system-ext:service-pad: false - openconfig-system-ext:service-password-encryption: false - openconfig-system-ext:ip-gratuitous-arps: true - openconfig-system-ext:login-security-policy: - openconfig-system-ext:config: - openconfig-system-ext:on-success: true - openconfig-system-ext:on-failure: false - openconfig-system-ext:block-for: - openconfig-system-ext:config: {} - openconfig-system-ext:object-tracking: - openconfig-system-ext:config: - openconfig-system-ext:timer: {} - openconfig-system-ext:object-track: [] - openconfig-system-ext:key-chains: - openconfig-system-ext:key-chain: [] - openconfig-system-ext:boot-network: - openconfig-system-ext:config: - openconfig-system-ext:bootnetwork-enabled: DISABLED - openconfig-system-ext:nat: - openconfig-system-ext:pools: - openconfig-system-ext:pool: [] - openconfig-system-ext:inside: - openconfig-system-ext:source: {} - openconfig-system-ext:timestamps: - openconfig-system-ext:logging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false - openconfig-system-ext:debugging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false -mdd_tags: -- site_router diff --git a/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml deleted file mode 100644 index dfcc582..0000000 --- a/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-acl.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-acl:acl: - openconfig-acl:acl-sets: - openconfig-acl:acl-set: [] - openconfig-acl:interfaces: - openconfig-acl:interface: [] - openconfig-acl-ext:lines: - openconfig-acl-ext:line: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml deleted file mode 100644 index aa32e7f..0000000 --- a/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-interfaces.yml +++ /dev/null @@ -1,236 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-interfaces:interfaces: - openconfig-interfaces:interface: - - openconfig-interfaces:name: GigabitEthernet0/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ip:ipv4: - openconfig-if-ip:addresses: - openconfig-if-ip:address: [] - openconfig-if-ip:config: - openconfig-if-ip:dhcp-client: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet0/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet0/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet0/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml deleted file mode 100644 index 54d8288..0000000 --- a/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-network-instances.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-network-instance:network-instances: - openconfig-network-instance:network-instance: - - openconfig-network-instance:name: default - openconfig-network-instance:config: - openconfig-network-instance:name: default - openconfig-network-instance:type: DEFAULT_INSTANCE - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: - - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:config: - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:static-routes: - openconfig-network-instance:static: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] - openconfig-network-instance:vlans: - openconfig-network-instance:vlan: - - openconfig-network-instance:vlan-id: 1 - openconfig-network-instance:config: - openconfig-network-instance:vlan-id: 1 - openconfig-network-instance:name: default - openconfig-network-instance:status: ACTIVE - - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:config: - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:type: L3VRF - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:enabled-address-families: - - openconfig-types:IPV4 - - openconfig-types:IPV6 - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml deleted file mode 100644 index 03f4be6..0000000 --- a/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-routing-policy.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-routing-policy:routing-policy: - openconfig-routing-policy:defined-sets: - openconfig-bgp-policy:bgp-defined-sets: - openconfig-bgp-policy:as-path-sets: - openconfig-bgp-policy:as-path-set: [] - openconfig-bgp-policy:community-sets: - openconfig-bgp-policy:community-set: [] - openconfig-bgp-policy:ext-community-sets: - openconfig-bgp-policy:ext-community-set: [] - openconfig-routing-policy:tag-sets: - openconfig-routing-policy:tag-set: [] - openconfig-routing-policy:prefix-sets: - openconfig-routing-policy:prefix-set: [] - openconfig-routing-policy:policy-definitions: - openconfig-routing-policy:policy-definition: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml deleted file mode 100644 index b2bf8f9..0000000 --- a/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-stp.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-spanning-tree:stp: - openconfig-spanning-tree:global: - openconfig-spanning-tree:config: - openconfig-spanning-tree:enabled-protocol: - - PVST - openconfig-spanning-tree:loop-guard: false - openconfig-spanning-tree:bpdu-guard: false - openconfig-spanning-tree:bpdu-filter: false - openconfig-spanning-tree-ext:uplinkfast: false - openconfig-spanning-tree-ext:backbonefast: false - openconfig-spanning-tree:interfaces: - openconfig-spanning-tree:interface: [] - openconfig-spanning-tree:rapid-pvst: - openconfig-spanning-tree:vlan: [] - openconfig-spanning-tree-ext:pvst: - openconfig-spanning-tree-ext:vlan: [] - openconfig-spanning-tree:mstp: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:mst-instances: - openconfig-spanning-tree:mst-instance: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml b/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml deleted file mode 100644 index 4385569..0000000 --- a/testing/testing-files/mdd-data/org/region1/site1/site1-sw1/oc-system.yml +++ /dev/null @@ -1,131 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-system:system: - openconfig-system:aaa: - openconfig-system:server-groups: - openconfig-system:server-group: [] - openconfig-system:accounting: {} - openconfig-system:authorization: {} - openconfig-system:authentication: {} - openconfig-system:clock: - openconfig-system:config: - openconfig-system:timezone-name: UTC 0 0 - openconfig-system:config: - openconfig-system:hostname: site1-sw1 - openconfig-system:login-banner: "\r\nIOSv - Cisco Systems Confidential -\r\ - \n\r\nSupplemental End User License Restrictions\r\n\r\nThis IOSv software\ - \ is provided AS-IS without warranty of any kind. Under no circumstances\ - \ may this software be used separate from the Cisco Modeling Labs Software\ - \ that this software was provided with, or deployed or used as part of a\ - \ production environment.\r\n\r\nBy using the software, you agree to abide\ - \ by the terms and conditions of the Cisco End User License Agreement at\ - \ http://www.cisco.com/go/eula. Unauthorized use or distribution of this\ - \ software is expressly prohibited.\r\n" - openconfig-system:domain-name: mdd.cisco.com - openconfig-system:dns: - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:logging: - openconfig-system:console: - openconfig-system:config: - openconfig-system-ext:enabled: true - openconfig-system:selectors: - openconfig-system:selector: - - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system:config: - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system-ext:terminal-monitor: - openconfig-system-ext:selectors: - openconfig-system-ext:selector: - - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:config: - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system:remote-servers: {} - openconfig-system-ext:buffered: - openconfig-system-ext:config: - - openconfig-system-ext:enabled: true - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:buffer-size: '4096' - openconfig-system:ntp: - openconfig-system:config: {} - openconfig-system:ntp-keys: - openconfig-system:ntp-key: [] - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:ssh-server: - openconfig-system:config: - openconfig-system-ext:ssh-timeout: 60 - openconfig-system:protocol-version: V2 - openconfig-system:timeout: 1800 - openconfig-system-ext:absolute-timeout-minutes: 60 - openconfig-system:session-limit: 16 - openconfig-system-ext:algorithm: - openconfig-system-ext:config: - openconfig-system-ext:encryption: - - aes128-ctr - - aes192-ctr - - aes256-ctr - openconfig-system-ext:services: - openconfig-system-ext:http: - openconfig-system-ext:config: - openconfig-system-ext:http-enabled: true - openconfig-system-ext:https-enabled: true - openconfig-system-ext:ip-http-max-connections: 2 - openconfig-system-ext:ip-http-timeout-policy: - openconfig-system-ext:idle: - openconfig-system-ext:config: {} - openconfig-system-ext:config: - openconfig-system-ext:ip-domain-lookup: true - openconfig-system-ext:archive-logging: false - openconfig-system-ext:ip-bootp-server: false - openconfig-system-ext:ip-dns-server: false - openconfig-system-ext:ip-identd: false - openconfig-system-ext:ip-rcmd-rcp-enable: false - openconfig-system-ext:ip-rcmd-rsh-enable: false - openconfig-system-ext:finger: false - openconfig-system-ext:service-config: false - openconfig-system-ext:service-tcp-small-servers: false - openconfig-system-ext:service-udp-small-servers: false - openconfig-system-ext:service-pad: true - openconfig-system-ext:service-password-encryption: false - openconfig-system-ext:ip-gratuitous-arps: true - openconfig-system-ext:login-security-policy: - openconfig-system-ext:config: - openconfig-system-ext:on-success: false - openconfig-system-ext:on-failure: false - openconfig-system-ext:block-for: - openconfig-system-ext:config: {} - openconfig-system-ext:object-tracking: - openconfig-system-ext:config: - openconfig-system-ext:timer: {} - openconfig-system-ext:object-track: [] - openconfig-system-ext:key-chains: - openconfig-system-ext:key-chain: [] - openconfig-system-ext:boot-network: - openconfig-system-ext:config: - openconfig-system-ext:bootnetwork-enabled: DISABLED - openconfig-system-ext:nat: - openconfig-system-ext:pools: - openconfig-system-ext:pool: [] - openconfig-system-ext:inside: - openconfig-system-ext:source: {} - openconfig-system-ext:timestamps: - openconfig-system-ext:logging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false - openconfig-system-ext:debugging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml deleted file mode 100644 index 6233f57..0000000 --- a/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-acl.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-acl:acl: - openconfig-acl:acl-sets: - openconfig-acl:acl-set: [] - openconfig-acl:interfaces: - openconfig-acl:interface: [] - openconfig-acl-ext:lines: - openconfig-acl-ext:line: [] -mdd_tags: -- site_router diff --git a/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml deleted file mode 100644 index bfc4180..0000000 --- a/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-interfaces.yml +++ /dev/null @@ -1,124 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-interfaces:interfaces: - openconfig-interfaces:interface: - - openconfig-interfaces:name: GigabitEthernet1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ip:ipv4: - openconfig-if-ip:addresses: - openconfig-if-ip:address: [] - openconfig-if-ip:config: - openconfig-if-ip:dhcp-client: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet4 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet4 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet5 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet5 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet6 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet6 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet7 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet7 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet8 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet8 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: false - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: false - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true -mdd_tags: -- site_router diff --git a/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml deleted file mode 100644 index 724373c..0000000 --- a/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-network-instances.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-network-instance:network-instances: - openconfig-network-instance:network-instance: - - openconfig-network-instance:name: default - openconfig-network-instance:config: - openconfig-network-instance:name: default - openconfig-network-instance:type: DEFAULT_INSTANCE - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: - - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:config: - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:static-routes: - openconfig-network-instance:static: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] - openconfig-network-instance:vlans: - openconfig-network-instance:vlan: [] - - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:config: - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:type: L3VRF - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:enabled-address-families: - - openconfig-types:IPV4 - - openconfig-types:IPV6 - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] -mdd_tags: -- site_router diff --git a/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml deleted file mode 100644 index de9c373..0000000 --- a/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-routing-policy.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-routing-policy:routing-policy: - openconfig-routing-policy:defined-sets: - openconfig-bgp-policy:bgp-defined-sets: - openconfig-bgp-policy:as-path-sets: - openconfig-bgp-policy:as-path-set: [] - openconfig-bgp-policy:community-sets: - openconfig-bgp-policy:community-set: [] - openconfig-bgp-policy:ext-community-sets: - openconfig-bgp-policy:ext-community-set: [] - openconfig-routing-policy:tag-sets: - openconfig-routing-policy:tag-set: [] - openconfig-routing-policy:prefix-sets: - openconfig-routing-policy:prefix-set: [] - openconfig-routing-policy:policy-definitions: - openconfig-routing-policy:policy-definition: [] -mdd_tags: -- site_router diff --git a/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml deleted file mode 100644 index e6bc45b..0000000 --- a/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-stp.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-spanning-tree:stp: - openconfig-spanning-tree:global: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:interfaces: - openconfig-spanning-tree:interface: [] - openconfig-spanning-tree:rapid-pvst: - openconfig-spanning-tree:vlan: [] - openconfig-spanning-tree-ext:pvst: - openconfig-spanning-tree-ext:vlan: [] - openconfig-spanning-tree:mstp: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:mst-instances: - openconfig-spanning-tree:mst-instance: [] -mdd_tags: -- site_router diff --git a/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml deleted file mode 100644 index 784fc9b..0000000 --- a/testing/testing-files/mdd-data/org/region2/site2/site2-rtr1/oc-system.yml +++ /dev/null @@ -1,121 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-system:system: - openconfig-system:aaa: - openconfig-system:server-groups: - openconfig-system:server-group: [] - openconfig-system:accounting: {} - openconfig-system:authorization: {} - openconfig-system:authentication: {} - openconfig-system:clock: - openconfig-system:config: - openconfig-system:timezone-name: UTC 0 0 - openconfig-system:config: - openconfig-system:hostname: site2-rtr1 - openconfig-system:dns: - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:logging: - openconfig-system:console: - openconfig-system:config: - openconfig-system-ext:enabled: true - openconfig-system:selectors: - openconfig-system:selector: - - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system:config: - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system-ext:terminal-monitor: - openconfig-system-ext:selectors: - openconfig-system-ext:selector: - - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:config: - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system:remote-servers: {} - openconfig-system-ext:buffered: - openconfig-system-ext:config: - - openconfig-system-ext:enabled: true - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:buffer-size: '4096' - openconfig-system:ntp: - openconfig-system:config: {} - openconfig-system:ntp-keys: - openconfig-system:ntp-key: [] - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:ssh-server: - openconfig-system:config: - openconfig-system-ext:ssh-timeout: 60 - openconfig-system:protocol-version: V2 - openconfig-system:timeout: 1800 - openconfig-system-ext:absolute-timeout-minutes: 60 - openconfig-system:session-limit: 16 - openconfig-system-ext:algorithm: - openconfig-system-ext:config: - openconfig-system-ext:encryption: - - aes128-ctr - - aes192-ctr - - aes256-ctr - openconfig-system-ext:services: - openconfig-system-ext:http: - openconfig-system-ext:config: - openconfig-system-ext:http-enabled: true - openconfig-system-ext:https-enabled: true - openconfig-system-ext:ip-http-max-connections: 2 - openconfig-system-ext:ip-http-timeout-policy: - openconfig-system-ext:idle: - openconfig-system-ext:config: {} - openconfig-system-ext:config: - openconfig-system-ext:ip-domain-lookup: true - openconfig-system-ext:archive-logging: false - openconfig-system-ext:ip-bootp-server: false - openconfig-system-ext:ip-dns-server: false - openconfig-system-ext:ip-identd: false - openconfig-system-ext:ip-rcmd-rcp-enable: false - openconfig-system-ext:ip-rcmd-rsh-enable: false - openconfig-system-ext:finger: false - openconfig-system-ext:service-config: false - openconfig-system-ext:service-tcp-small-servers: false - openconfig-system-ext:service-udp-small-servers: false - openconfig-system-ext:service-pad: false - openconfig-system-ext:service-password-encryption: false - openconfig-system-ext:ip-gratuitous-arps: true - openconfig-system-ext:login-security-policy: - openconfig-system-ext:config: - openconfig-system-ext:on-success: true - openconfig-system-ext:on-failure: false - openconfig-system-ext:block-for: - openconfig-system-ext:config: {} - openconfig-system-ext:object-tracking: - openconfig-system-ext:config: - openconfig-system-ext:timer: {} - openconfig-system-ext:object-track: [] - openconfig-system-ext:key-chains: - openconfig-system-ext:key-chain: [] - openconfig-system-ext:boot-network: - openconfig-system-ext:config: - openconfig-system-ext:bootnetwork-enabled: DISABLED - openconfig-system-ext:nat: - openconfig-system-ext:pools: - openconfig-system-ext:pool: [] - openconfig-system-ext:inside: - openconfig-system-ext:source: {} - openconfig-system-ext:timestamps: - openconfig-system-ext:logging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false - openconfig-system-ext:debugging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false -mdd_tags: -- site_router diff --git a/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml deleted file mode 100644 index dfcc582..0000000 --- a/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-acl.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-acl:acl: - openconfig-acl:acl-sets: - openconfig-acl:acl-set: [] - openconfig-acl:interfaces: - openconfig-acl:interface: [] - openconfig-acl-ext:lines: - openconfig-acl-ext:line: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml deleted file mode 100644 index aa32e7f..0000000 --- a/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-interfaces.yml +++ /dev/null @@ -1,236 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-interfaces:interfaces: - openconfig-interfaces:interface: - - openconfig-interfaces:name: GigabitEthernet0/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ip:ipv4: - openconfig-if-ip:addresses: - openconfig-if-ip:address: [] - openconfig-if-ip:config: - openconfig-if-ip:dhcp-client: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet0/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet0/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet0/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet0/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet1/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet1/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet2/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet2/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/0 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/0 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/1 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/1 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/2 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/2 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true - - openconfig-interfaces:name: GigabitEthernet3/3 - openconfig-interfaces:config: - openconfig-interfaces:name: GigabitEthernet3/3 - openconfig-interfaces:type: ethernetCsmacd - openconfig-interfaces:enabled: true - openconfig-interfaces:subinterfaces: - openconfig-interfaces:subinterface: - - openconfig-interfaces:index: 0 - openconfig-interfaces:config: - openconfig-interfaces:index: 0 - openconfig-interfaces:enabled: true - openconfig-if-ethernet:ethernet: - openconfig-if-ethernet:config: - openconfig-if-ethernet:auto-negotiate: true -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml deleted file mode 100644 index 54d8288..0000000 --- a/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-network-instances.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-network-instance:network-instances: - openconfig-network-instance:network-instance: - - openconfig-network-instance:name: default - openconfig-network-instance:config: - openconfig-network-instance:name: default - openconfig-network-instance:type: DEFAULT_INSTANCE - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: - - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:config: - openconfig-network-instance:identifier: STATIC - openconfig-network-instance:name: DEFAULT - openconfig-network-instance:static-routes: - openconfig-network-instance:static: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] - openconfig-network-instance:vlans: - openconfig-network-instance:vlan: - - openconfig-network-instance:vlan-id: 1 - openconfig-network-instance:config: - openconfig-network-instance:vlan-id: 1 - openconfig-network-instance:name: default - openconfig-network-instance:status: ACTIVE - - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:config: - openconfig-network-instance:name: Mgmt-intf - openconfig-network-instance:type: L3VRF - openconfig-network-instance:enabled: 'true' - openconfig-network-instance:enabled-address-families: - - openconfig-types:IPV4 - - openconfig-types:IPV6 - openconfig-network-instance:protocols: - openconfig-network-instance:protocol: [] - openconfig-network-instance:interfaces: - openconfig-network-instance:interface: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml deleted file mode 100644 index 03f4be6..0000000 --- a/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-routing-policy.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-routing-policy:routing-policy: - openconfig-routing-policy:defined-sets: - openconfig-bgp-policy:bgp-defined-sets: - openconfig-bgp-policy:as-path-sets: - openconfig-bgp-policy:as-path-set: [] - openconfig-bgp-policy:community-sets: - openconfig-bgp-policy:community-set: [] - openconfig-bgp-policy:ext-community-sets: - openconfig-bgp-policy:ext-community-set: [] - openconfig-routing-policy:tag-sets: - openconfig-routing-policy:tag-set: [] - openconfig-routing-policy:prefix-sets: - openconfig-routing-policy:prefix-set: [] - openconfig-routing-policy:policy-definitions: - openconfig-routing-policy:policy-definition: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml deleted file mode 100644 index b2bf8f9..0000000 --- a/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-stp.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-spanning-tree:stp: - openconfig-spanning-tree:global: - openconfig-spanning-tree:config: - openconfig-spanning-tree:enabled-protocol: - - PVST - openconfig-spanning-tree:loop-guard: false - openconfig-spanning-tree:bpdu-guard: false - openconfig-spanning-tree:bpdu-filter: false - openconfig-spanning-tree-ext:uplinkfast: false - openconfig-spanning-tree-ext:backbonefast: false - openconfig-spanning-tree:interfaces: - openconfig-spanning-tree:interface: [] - openconfig-spanning-tree:rapid-pvst: - openconfig-spanning-tree:vlan: [] - openconfig-spanning-tree-ext:pvst: - openconfig-spanning-tree-ext:vlan: [] - openconfig-spanning-tree:mstp: - openconfig-spanning-tree:config: {} - openconfig-spanning-tree:mst-instances: - openconfig-spanning-tree:mst-instance: [] -mdd_tags: -- switch diff --git a/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml b/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml deleted file mode 100644 index 6063226..0000000 --- a/testing/testing-files/mdd-data/org/region2/site2/site2-sw1/oc-system.yml +++ /dev/null @@ -1,131 +0,0 @@ ---- -mdd_data: - mdd:openconfig: - openconfig-system:system: - openconfig-system:aaa: - openconfig-system:server-groups: - openconfig-system:server-group: [] - openconfig-system:accounting: {} - openconfig-system:authorization: {} - openconfig-system:authentication: {} - openconfig-system:clock: - openconfig-system:config: - openconfig-system:timezone-name: UTC 0 0 - openconfig-system:config: - openconfig-system:hostname: site2-sw1 - openconfig-system:login-banner: "\r\nIOSv - Cisco Systems Confidential -\r\ - \n\r\nSupplemental End User License Restrictions\r\n\r\nThis IOSv software\ - \ is provided AS-IS without warranty of any kind. Under no circumstances\ - \ may this software be used separate from the Cisco Modeling Labs Software\ - \ that this software was provided with, or deployed or used as part of a\ - \ production environment.\r\n\r\nBy using the software, you agree to abide\ - \ by the terms and conditions of the Cisco End User License Agreement at\ - \ http://www.cisco.com/go/eula. Unauthorized use or distribution of this\ - \ software is expressly prohibited.\r\n" - openconfig-system:domain-name: mdd.cisco.com - openconfig-system:dns: - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:logging: - openconfig-system:console: - openconfig-system:config: - openconfig-system-ext:enabled: true - openconfig-system:selectors: - openconfig-system:selector: - - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system:config: - openconfig-system:facility: SYSLOG - openconfig-system:severity: DEBUG - openconfig-system-ext:terminal-monitor: - openconfig-system-ext:selectors: - openconfig-system-ext:selector: - - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:config: - openconfig-system-ext:facility: SYSLOG - openconfig-system-ext:severity: DEBUG - openconfig-system:remote-servers: {} - openconfig-system-ext:buffered: - openconfig-system-ext:config: - - openconfig-system-ext:enabled: true - openconfig-system-ext:severity: DEBUG - openconfig-system-ext:buffer-size: '4096' - openconfig-system:ntp: - openconfig-system:config: {} - openconfig-system:ntp-keys: - openconfig-system:ntp-key: [] - openconfig-system:servers: - openconfig-system:server: [] - openconfig-system:ssh-server: - openconfig-system:config: - openconfig-system-ext:ssh-timeout: 60 - openconfig-system:protocol-version: V2 - openconfig-system:timeout: 1800 - openconfig-system-ext:absolute-timeout-minutes: 60 - openconfig-system:session-limit: 16 - openconfig-system-ext:algorithm: - openconfig-system-ext:config: - openconfig-system-ext:encryption: - - aes128-ctr - - aes192-ctr - - aes256-ctr - openconfig-system-ext:services: - openconfig-system-ext:http: - openconfig-system-ext:config: - openconfig-system-ext:http-enabled: true - openconfig-system-ext:https-enabled: true - openconfig-system-ext:ip-http-max-connections: 2 - openconfig-system-ext:ip-http-timeout-policy: - openconfig-system-ext:idle: - openconfig-system-ext:config: {} - openconfig-system-ext:config: - openconfig-system-ext:ip-domain-lookup: true - openconfig-system-ext:archive-logging: false - openconfig-system-ext:ip-bootp-server: false - openconfig-system-ext:ip-dns-server: false - openconfig-system-ext:ip-identd: false - openconfig-system-ext:ip-rcmd-rcp-enable: false - openconfig-system-ext:ip-rcmd-rsh-enable: false - openconfig-system-ext:finger: false - openconfig-system-ext:service-config: false - openconfig-system-ext:service-tcp-small-servers: false - openconfig-system-ext:service-udp-small-servers: false - openconfig-system-ext:service-pad: true - openconfig-system-ext:service-password-encryption: false - openconfig-system-ext:ip-gratuitous-arps: true - openconfig-system-ext:login-security-policy: - openconfig-system-ext:config: - openconfig-system-ext:on-success: false - openconfig-system-ext:on-failure: false - openconfig-system-ext:block-for: - openconfig-system-ext:config: {} - openconfig-system-ext:object-tracking: - openconfig-system-ext:config: - openconfig-system-ext:timer: {} - openconfig-system-ext:object-track: [] - openconfig-system-ext:key-chains: - openconfig-system-ext:key-chain: [] - openconfig-system-ext:boot-network: - openconfig-system-ext:config: - openconfig-system-ext:bootnetwork-enabled: DISABLED - openconfig-system-ext:nat: - openconfig-system-ext:pools: - openconfig-system-ext:pool: [] - openconfig-system-ext:inside: - openconfig-system-ext:source: {} - openconfig-system-ext:timestamps: - openconfig-system-ext:logging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false - openconfig-system-ext:debugging: - openconfig-system-ext:config: - openconfig-system-ext:enabled: true - openconfig-system-ext:datetime: true - openconfig-system-ext:uptime: false - openconfig-system-ext:localtime: false -mdd_tags: -- switch From 7e23cf68e05112a5bbae32d47c1c9d47d92832fa Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 10 Jul 2023 11:13:38 -0400 Subject: [PATCH 100/104] adding custom testing mdd.yml file --- .github/testing-files/mdd.yml | 31 +++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 4 ++++ 2 files changed, 35 insertions(+) create mode 100644 .github/testing-files/mdd.yml diff --git a/.github/testing-files/mdd.yml b/.github/testing-files/mdd.yml new file mode 100644 index 0000000..967bcb1 --- /dev/null +++ b/.github/testing-files/mdd.yml @@ -0,0 +1,31 @@ +--- +# The root directory where the MDD Data is stored +mdd_data_root: "{{ lookup('env', 'PWD') }}/mdd-data" +# The parent directory for mdd +mdd_data_parent: "{{ lookup('env', 'PWD') }}" +# The directory items that make up the direct path +# from the highest level to the device specific level +mdd_dir_items: >- + {{ ((regions + sites) | intersect(group_names)) + + [ inventory_hostname ] }} +# The data directory for the particular device +mdd_device_dir: >- + {{ mdd_data_root }}/{{ mdd_dir_items | join('/') }} +# The file pattern for files that specify MDD Data +mdd_data_patterns: + - 'oc-*.yml' +# - 'config-*.yml' +# The data types that MDD will operate on +mdd_data_types: + - oc +# - config +# The file pattern for files that specify state checks +mdd_check_patterns: + - 'check-*.yml' +# default file location for JSON schemas +mdd_schema_root: "{{ lookup('env', 'PWD') }}/schemas" +# default file location for network file +mdd_inventory_root: "{{ lookup('env', 'PWD') }}/inventory" +# The file pattern for files that specify data validation +mdd_validate_patterns: + - 'validate-*.yml' \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 148d7fd..664296c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -109,6 +109,10 @@ jobs: # run: cp -r ansible_collections/ciscops/mdd/.github/testing-files/mdd-data ./ working-directory: ${{env.base_path}} + - name: Copy in testing mdd.yml file + run: cp -r ${{env.ANSIBLE_COLLECTIONS_PATHS}}/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/.github/testing-files/mdd.yml ./inventory/group_vars/all/ + working-directory: ${{env.base_path}} + - name: Run show run: ansible-playbook ciscops.mdd.show working-directory: ${{env.base_path}} From 09b64d256b98195f6d36a4164942b466138b1d31 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 10 Jul 2023 12:41:12 -0400 Subject: [PATCH 101/104] Adding diff and updated show playbooks, as well as updating ci run --- .../testing-playbooks/diff_elevate.yml | 33 +++++ .../testing-playbooks/show_test.yml | 19 +++ .github/workflows/ci.yml | 135 ++++++------------ playbooks/test_elevate.yml | 10 -- 4 files changed, 92 insertions(+), 105 deletions(-) create mode 100644 .github/testing-files/testing-playbooks/diff_elevate.yml create mode 100644 .github/testing-files/testing-playbooks/show_test.yml delete mode 100644 playbooks/test_elevate.yml diff --git a/.github/testing-files/testing-playbooks/diff_elevate.yml b/.github/testing-files/testing-playbooks/diff_elevate.yml new file mode 100644 index 0000000..9bd6fe3 --- /dev/null +++ b/.github/testing-files/testing-playbooks/diff_elevate.yml @@ -0,0 +1,33 @@ +- name: Compare files in directories + hosts: localhost + gather_facts: false + vars: + current_dir: "{{ lookup('env', 'PWD') }}/elevate_test_files" + tasks: + - name: List files in directory 1 + find: + paths: "{{ current_dir }}/1" + file_type: file + patterns: "*.txt" + register: files1 + + - name: List files in directory 2 + find: + paths: "{{ current_dir }}/2" + file_type: file + patterns: "*.txt" + register: files2 + + - name: Compare files and create diff statements + set_fact: + diff_statements: "{{ diff_statements | default([]) + [ 'diff ' + item.0.path + ' ' + item.1.path ] }}" + loop: "{{ files1.files | zip(files2.files) }}" + + - name: Fail if there are differences or missing files + fail: + msg: "Differences or missing files found: files1 and files2 contain differing number of files" + when: files1.files | length != files2.files | length + + - name: Diff files + command: "{{ item }}" + loop: "{{ diff_statements }}" diff --git a/.github/testing-files/testing-playbooks/show_test.yml b/.github/testing-files/testing-playbooks/show_test.yml new file mode 100644 index 0000000..2b0b4a9 --- /dev/null +++ b/.github/testing-files/testing-playbooks/show_test.yml @@ -0,0 +1,19 @@ +- hosts: network + connection: local + gather_facts: false + vars: + run_number: "{{ run_num | default('1') }}" + current_dir: "{{ lookup('env', 'PWD') }}/elevate_test_files" + roles: + - ciscops.mdd.data + tasks: + - name: Translate and truncate interface names + set_fact: + mdd_data: "{{ mdd_data | ciscops.mdd.intf_xform(cml_intf_xlate) }}" + when: (cml_group is defined and cml_group in group_names) and (cml_intf_xlate is defined and cml_intf_xlate) + + - name: Save debug output to a file + lineinfile: + path: "{{ current_dir }}/{{ run_number }}/{{ inventory_hostname }}.txt" + line: "{{ inventory_hostname }}: {{ mdd_data | to_nice_json }}" + create: yes diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 664296c..e5883ca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -113,108 +113,53 @@ jobs: run: cp -r ${{env.ANSIBLE_COLLECTIONS_PATHS}}/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/.github/testing-files/mdd.yml ./inventory/group_vars/all/ working-directory: ${{env.base_path}} - - name: Run show - run: ansible-playbook ciscops.mdd.show - working-directory: ${{env.base_path}} - - - name: Run Elevate - run: ansible-playbook ciscops.mdd.elevate - working-directory: ${{env.base_path}} - - - # - name: Run ls - # run: ls -la - # working-directory: ${{env.base_path}} - - # - name: Run ls - # run: ls -la - # working-directory: ${{env.base_path}}/${{env.COLLECTIONS_PATHS}}/.github - - - - # - name: Ls to find mdd-data - # run: ls -la - # working-directory: ${{env.base_path}}/ansible_collections - - # - name: Ls to find mdd-data - # run: ls -la - # working-directory: ${{env.base_path}}/ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - - # - name: Ls to find mdd-data - # run: ls -la - # working-directory: ${{env.base_path}}/ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/.github - - # .github/workflows/testing-files/mdd-data - # - name: Copy in testing reference topology - # run: cp -r ansible_collections/ciscops/mdd/testing/testing-files/mdd-data ./ - # working-directory: ${{env.base_path}} - - - # - name: Ls to find mdd-data - # run: ls -la - # working-directory: ${{env.base_path}} - - - - # - name: Install collection - # run: ansible-galaxy collection install -r requirements.yml - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + - name: Copy in testing playbooks + run: cp .github/testing-files/testing-playbooks/*.yml ./playbooks + working-directory: ${{env.base_path}}/${{env.ANSIBLE_COLLECTIONS_PATHS}}/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - # - name: Install current collection - # https://github.com/model-driven-devops/ansible-mdd.git,ppajersk-dev - # run: ansible-galaxy collection install https://github.com/${{ github.repository }}/tree/${{ github.ref }} - # working-directory: elevate_test/mdd - - # https://github.com/model-driven-devops/ansible-mdd/tree/ppajersk-dev - - #https://github.com/model-driven-devops/ansible-mdd.git,ppajersk-dev - #/ansible_collections/${{ env.NAMESPACE }}/${{ env.COLLECTION_NAME }}/mdd - - # - name: Check out code - # uses: actions/checkout@v2 - # with: - # path: elevate_test/mdd/ansible_collections - - # - name: Run ls - # run: ls - # working-directory: elevate_test/mdd/ansible_collections/playbooks + - name: Check playbooks are copied successfully + run: ls -la + working-directory: ${{env.base_path}}/${{env.ANSIBLE_COLLECTIONS_PATHS}}/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks - # - name: Run show - # # run: ansible-playbook ciscops.mdd.show - # run: ansible-playbook elevate_test/mdd/ansible_collections/playbooks/show.yml - # working-directory: elevate_test/mdd + - name: Check elevate_files dir doesn't exist + run: ls -la + working-directory: ${{env.base_path}} - # - name: Checkout mdd repository - # uses: actions/checkout@v2 - # with: - # repository: model-driven-devops/mdd - # path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + # Create dir to store test files from show + - name: Create testing dir + run: mkdir ./elevate_test_files + working-directory: ${{env.base_path}} - # - name: Run ls - # run: ls - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + # Create dir for first set of configs + - name: Create testing dir + run: mkdir ./elevate_test_files/1 + working-directory: ${{env.base_path}} - # - name: Install collection - # run: ansible-galaxy collection install -r requirements.yml - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + # Create dir for second set of configs + - name: Create testing dir + run: mkdir ./elevate_test_files/2 + working-directory: ${{env.base_path}} - # - name: Run ls - # run: ls - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + - name: Check elevate_files dir exists + run: ls -la + working-directory: ${{env.base_path}} - # - name: Run show - # run: ansible-playbook ciscops.mdd.show - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/mdd + # Run show with run num 1 to name files correctly + - name: Run modified show to collect pre elevate results + run: ansible-playbook ciscops.mdd.show_test -e "run_num=1" + working-directory: ${{env.base_path}} - # - name: Run Show - # run: ansible-playbook show.yml - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks + # Run elevate + - name: Run Elevate + run: ansible-playbook ciscops.mdd.elevate + working-directory: ${{env.base_path}} - # - name: Run elevate test - # run: ls - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks + # Run show again to collect results post run + - name: Run modified show to collect pre elevate results + run: ansible-playbook ciscops.mdd.show_test -e "run_num=2" + working-directory: ${{env.base_path}} - # - name: Run elevate test - # run: ansible-playbook test_elevate.yml - # working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks - #ansible-playbook ${{env.NAMESPACE}}.${{env.COLLECTION_NAME}}.test_elevate.yml + # Take the diff of the results to ensure elevate is working correctly + - name: Diff results + run: ansible-playbook ciscops.mdd.diff_elevate + working-directory: ${{env.base_path}} diff --git a/playbooks/test_elevate.yml b/playbooks/test_elevate.yml deleted file mode 100644 index 9d31853..0000000 --- a/playbooks/test_elevate.yml +++ /dev/null @@ -1,10 +0,0 @@ -- name: Test elevate output on reference topology - hosts: localhost - gather_facts: false - tasks: - - name: Run Clean - command: pwd - register: result - - - debug: - var: result \ No newline at end of file From 4d5a4b4a59a890d315ea1efafa7cb5d76c0816bc Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 10 Jul 2023 12:52:08 -0400 Subject: [PATCH 102/104] updating py version to 3.10 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e5883ca..7ac8008 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,7 +45,7 @@ jobs: with: # it is just required to run that once as "ansible-test sanity" in the docker image # will run on all python versions it supports. - python-version: 3.9 + python-version: 3.10 #3.9 # Install the head of the given branch (devel, stable-2.10) - name: Install ansible-base (${{ matrix.ansible }}) From d35086af2657402c1d1dd57cc21f1c2b33173e8e Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 10 Jul 2023 12:55:11 -0400 Subject: [PATCH 103/104] Removing commented code and cleaning up --- .github/workflows/ci.yml | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7ac8008..7ae79bd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,7 +45,7 @@ jobs: with: # it is just required to run that once as "ansible-test sanity" in the docker image # will run on all python versions it supports. - python-version: 3.10 #3.9 + python-version: '3.10' # Install the head of the given branch (devel, stable-2.10) - name: Install ansible-base (${{ matrix.ansible }}) @@ -80,10 +80,6 @@ jobs: repository: model-driven-devops/mdd path: ${{env.base_path}} - - name: Run ls - run: ls -la - working-directory: ${{env.base_path}} - - name: Install collection from model-driven-devops/mdd/requirements.yml run: ansible-galaxy collection install -r requirements.yml working-directory: ${{env.base_path}} @@ -106,7 +102,6 @@ jobs: - name: Copy in testing reference topology run: cp -r ${{env.ANSIBLE_COLLECTIONS_PATHS}}/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/.github/testing-files/mdd-data ./ - # run: cp -r ansible_collections/ciscops/mdd/.github/testing-files/mdd-data ./ working-directory: ${{env.base_path}} - name: Copy in testing mdd.yml file @@ -117,33 +112,21 @@ jobs: run: cp .github/testing-files/testing-playbooks/*.yml ./playbooks working-directory: ${{env.base_path}}/${{env.ANSIBLE_COLLECTIONS_PATHS}}/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - - name: Check playbooks are copied successfully - run: ls -la - working-directory: ${{env.base_path}}/${{env.ANSIBLE_COLLECTIONS_PATHS}}/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/playbooks - - - name: Check elevate_files dir doesn't exist - run: ls -la - working-directory: ${{env.base_path}} - # Create dir to store test files from show - - name: Create testing dir + - name: Create testing dir elevate_test_files run: mkdir ./elevate_test_files working-directory: ${{env.base_path}} # Create dir for first set of configs - - name: Create testing dir + - name: Create testing sub dir 1 run: mkdir ./elevate_test_files/1 working-directory: ${{env.base_path}} # Create dir for second set of configs - - name: Create testing dir + - name: Create testing sub dir 2 run: mkdir ./elevate_test_files/2 working-directory: ${{env.base_path}} - - name: Check elevate_files dir exists - run: ls -la - working-directory: ${{env.base_path}} - # Run show with run num 1 to name files correctly - name: Run modified show to collect pre elevate results run: ansible-playbook ciscops.mdd.show_test -e "run_num=1" From e21943597ce35953bf68d1e1d43f2464147cbca4 Mon Sep 17 00:00:00 2001 From: Paul <> Date: Mon, 10 Jul 2023 14:40:13 -0400 Subject: [PATCH 104/104] Resolving merge conflict --- plugins/filter/data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/filter/data.py b/plugins/filter/data.py index 0155add..7082745 100644 --- a/plugins/filter/data.py +++ b/plugins/filter/data.py @@ -17,7 +17,7 @@ list_key_map = { "openconfig-network-instance:network-instance$": "openconfig-network-instance:name", "openconfig-network-instance:vlan": "openconfig-network-instance:vlan-id", - "^mdd:openconfig:openconfig-interfaces:interfaces:openconfig-interfaces:interface": "openconfig-interfaces:name", + "^mdd:openconfig:openconfig-interfaces:interfaces:openconfig-interfaces:interface$": "openconfig-interfaces:name", ":openconfig-interfaces:interface$": "openconfig-network-instance:id", "openconfig-network-instance:static": "openconfig-network-instance:prefix", "openconfig-network-instance:protocol": "openconfig-network-instance:name",