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/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/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 210596d..b7ccdb6 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) @@ -55,4 +56,93 @@ 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}} + + 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: + - name: Checkout model-driven-devops/mdd repository + uses: actions/checkout@v2 + with: + repository: model-driven-devops/mdd + path: ${{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: Remove the current reference topology + run: rm -r mdd-data + working-directory: ${{env.base_path}} + + - name: Copy in testing reference topology + run: cp -r ${{env.ANSIBLE_COLLECTIONS_PATHS}}/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}}/.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: 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}} + + # Create dir to store test files from show + - 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 sub dir 1 + run: mkdir ./elevate_test_files/1 + working-directory: ${{env.base_path}} + + # Create dir for second set of configs + - name: Create testing sub dir 2 + run: mkdir ./elevate_test_files/2 + 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" + working-directory: ${{env.base_path}} + + # Run elevate + - name: Run Elevate + run: ansible-playbook ciscops.mdd.elevate + working-directory: ${{env.base_path}} + + # 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}} + + # 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/elevate.yml b/playbooks/elevate.yml new file mode 100644 index 0000000..3eed582 --- /dev/null +++ b/playbooks/elevate.yml @@ -0,0 +1,53 @@ +--- +# You can specify a test run by adding -e "test=true" +- name: elevate configs + hosts: localhost + gather_facts: false + vars: + 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 + + - pause: + 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 + + - set_fact: + is_ok_continue: false + - set_fact: + is_ok_continue: true + 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: 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 diff --git a/playbooks/nso_harvest_data.yml b/playbooks/nso_harvest_data.yml index 1692d32..b2724ac 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 | sort | join(', ')][0]] }}" + + - 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 new file mode 100644 index 0000000..cd20d63 --- /dev/null +++ b/plugins/modules/elevate_configs.py @@ -0,0 +1,685 @@ +#!/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: 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 + 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 + ansible_inventory: + description: Where the ansible inventory is located + required: true + type: dict + mdd_data_patterns: + description: List of data patterns + required: true + type: list + elements: 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 }}" + is_test_run: "{{ is_test_run }}" + temp_dir: "{{ temp_dir }}" + register: elevate_result + - debug: + var: result.debug +""" +import os +import traceback +from fnmatch import fnmatch +import shutil +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 + +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""" + + 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.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() + + def get_parent_path(self, parent_keys): + """Returns absolute path for file based on the list""" + + path = "" + for key in parent_keys: + path += "/" + key + return path[1:] + + 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): + 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, prefix): + """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): + """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, dict2): + """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): + """Returns the common configs""" + + return self.unflatten_dict(self.find_common_key_value_pairs(configs)) + + 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): + shutil.rmtree(self.temp_dir) + + 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 + + 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] + + 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""" + + # 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 + + 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 + + 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 + + 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 + + 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 x, 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: + 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 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) + 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) + 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, val in flattened_subsection.items(): + 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: + 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) + + # 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) + + 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""" + + parent_keys = [] + hit_bottom_dir = False + self.iterate_directory_helper(child_dict, parent_keys, hit_bottom_dir) + + 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(): + 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 + 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 + + def generate_directory_structure(self, path): + """Generates a dirctory structure in the form of a dictionary from a given path""" + + result = {} + if os.path.isdir(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): + """Starts the elevations process""" + + # Used for test runs. Creates a temp dir for test runs + self.remove_and_create_temp_dir() + + # Recreated the directory structure as a dictionary + self.yaml_network_data = self.generate_directory_structure(self.mdd_data_dir) + + # Associate tags with their devices + self.associate_tags() + self.iterate_directory(self.yaml_network_data) + self.aggregate_results(self.created_files) + + +def main(): + """Runs the elevation process""" + + 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'), + ansible_inventory=dict(required=True, type='dict'), + mdd_data_patterns=dict(required=True, type='list', elements='str') + ) + + module = AnsibleModule(argument_spec=arguments, supports_check_mode=False) + + # Import yaml + if not HAS_YAML: + module.fail_json(msg=missing_required_lib('yaml')) + + 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() diff --git a/plugins/modules/gather_mdd_data.py b/plugins/modules/gather_mdd_data.py new file mode 100644 index 0000000..06d9ddc --- /dev/null +++ b/plugins/modules/gather_mdd_data.py @@ -0,0 +1,96 @@ +#!/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 + elements: dict + tags: + description: + - The tags associated with a device + required: true + type: list + elements: str +""" + +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 + +debug = [] + + +def gather(file_data, tags): + """Gathers the data for a given tag""" + result = [] + + for file in file_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 + + +def main(): + """Runs the gather process""" + + arguments = dict( + 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) + data = gather(module.params['mdd_file_data'], module.params['tags']) + module.exit_json(changed=True, failed=False, mdd_data=data, debug=debug) + + +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) 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)