Add aggregate for junos modules and sub spec validation (#27726)

* Add aggregate for junos modules and sub spec validation

*  aggregate support of junos modules
*  aggregate sub spec validation
*  relevant changes to junos integration test
*  junos module boilerplate changes

* Add new boilerplate for junos modules

* Fix CI issues
This commit is contained in:
Ganesh Nalawade 2017-08-04 14:55:58 +05:30 committed by GitHub
commit d3e5d30f7c
32 changed files with 1696 additions and 508 deletions

View file

@ -23,13 +23,13 @@
- assert:
that:
- "result.changed == true"
- "'+ test-1' in result.diff.prepared"
- "'+ description test-vrf-1;' in result.diff.prepared"
- "'+ instance-type vrf;' in result.diff.prepared"
- "'+ interface ge-0/0/5.0;' in result.diff.prepared"
- "'+ interface ge-0/0/6.0;' in result.diff.prepared"
- "'+ route-distinguisher 3.3.3.3:10;' in result.diff.prepared"
- "'+ vrf-target target:65513:111;' in result.diff.prepared"
- result.diff.prepared | search("\+ *test-1")
- result.diff.prepared | search("\+ *description test-vrf-1")
- result.diff.prepared | search("\+ *instance-type vrf")
- result.diff.prepared | search("\+ *interface ge-0/0/5.0")
- result.diff.prepared | search("\+ *interface ge-0/0/6.0")
- result.diff.prepared | search("\+ *route-distinguisher 3.3.3.3:10")
- result.diff.prepared | search("\+ *vrf-target target:65513:111")
- name: Configure vrf and its parameter (idempotent)
net_vrf:
@ -65,69 +65,17 @@
that:
- "result.changed == true"
- "'[edit routing-instances test-1]' in result.diff.prepared"
- "'+ interface ge-0/0/2.0;' in result.diff.prepared"
- "'+ interface ge-0/0/3.0;' in result.diff.prepared"
- "'- interface ge-0/0/5.0;' in result.diff.prepared"
- "'- interface ge-0/0/6.0;' in result.diff.prepared"
- result.diff.prepared | search("\+ *interface ge-0/0/2.0")
- result.diff.prepared | search("\+ *interface ge-0/0/3.0")
- result.diff.prepared | search("\- *interface ge-0/0/5.0")
- result.diff.prepared | search("\- *interface ge-0/0/6.0")
- "'[edit routing-instances test-1]' in result.diff.prepared"
- "'- route-distinguisher 3.3.3.3:10;' in result.diff.prepared"
- "'+ route-distinguisher 1.1.1.1:10;' in result.diff.prepared"
- "'- vrf-target target:65513:111;' in result.diff.prepared"
- "'+ vrf-target target:65514:113;' in result.diff.prepared"
- result.diff.prepared | search("\- *route-distinguisher 3.3.3.3:10")
- result.diff.prepared | search("\+ *route-distinguisher 1.1.1.1:10")
- result.diff.prepared | search("\- *vrf-target target:65513:111")
- result.diff.prepared | search("\+ *vrf-target target:65514:113")
- name: Deactivate vrf
net_vrf:
name: test-1
description: test-vrf-1
interfaces:
- ge-0/0/3
- ge-0/0/2
rd: 1.1.1.1:10
target: target:65514:113
state: present
active: False
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'[edit routing-instances]' in result.diff.prepared"
- "'! inactive: test-1' in result.diff.prepared"
- "'[edit routing-instances test-1]' in result.diff.prepared"
- "'! inactive: interface ge-0/0/2.0' in result.diff.prepared"
- "'! inactive: interface ge-0/0/3.0' in result.diff.prepared"
- "'[edit routing-instances test-1]' in result.diff.prepared"
- "'! inactive: route-distinguisher' in result.diff.prepared"
- "'! inactive: vrf-target' in result.diff.prepared"
- name: Activate vrf
net_vrf:
name: test-1
description: test-vrf-1
interfaces:
- ge-0/0/3
- ge-0/0/2
rd: 1.1.1.1:10
target: target:65514:113
state: present
active: True
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'[edit routing-instances]' in result.diff.prepared"
- "'! active: test-1' in result.diff.prepared"
- "'[edit routing-instances test-1]' in result.diff.prepared"
- "'! active: interface ge-0/0/2.0' in result.diff.prepared"
- "'! active: interface ge-0/0/3.0' in result.diff.prepared"
- "'[edit routing-instances test-1]' in result.diff.prepared"
- "'! active: route-distinguisher' in result.diff.prepared"
- "'! active: vrf-target' in result.diff.prepared"
- name: Delete vrf
net_vrf:
name: test-1
@ -144,14 +92,13 @@
- assert:
that:
- "result.changed == true"
- "'[edit routing-instances]' in result.diff.prepared"
- "'- test-1' in result.diff.prepared"
- "'- description test-vrf-1;' in result.diff.prepared"
- "'- instance-type vrf;' in result.diff.prepared"
- "'- interface ge-0/0/2.0;' in result.diff.prepared"
- "'- interface ge-0/0/3.0;' in result.diff.prepared"
- "'- route-distinguisher 1.1.1.1:10;' in result.diff.prepared"
- "'- vrf-target target:65514:113;' in result.diff.prepared"
- result.diff.prepared | search("\- *test-1")
- result.diff.prepared | search("\- *description test-vrf-1")
- result.diff.prepared | search("\- *instance-type vrf")
- result.diff.prepared | search("\- *interface ge-0/0/2.0")
- result.diff.prepared | search("\- *interface ge-0/0/3.0")
- result.diff.prepared | search("\- *route-distinguisher 1.1.1.1:10")
- result.diff.prepared | search("\- *vrf-target target:65514:113")
- name: Delete vrf (idempotent)
net_vrf:
@ -169,3 +116,95 @@
- assert:
that:
- "result.changed == false"
- name: Setup vrf using aggregate
net_vrf:
aggregate:
- name: test-1
state: absent
- name: test-2
state: absent
provider: "{{ netconf }}"
register: result
- name: Create vrf using aggregate
net_vrf:
aggregate:
- name: test-1
description: test-vrf-1
interfaces:
- ge-0/0/3
- ge-0/0/2
rd: 1.1.1.1:10
target: target:65514:113
state: present
- name: test-2
description: test-vrf-2
interfaces:
- ge-0/0/4
- ge-0/0/5
rd: 2.2.2.2:10
target: target:65515:114
state: present
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- result.diff.prepared | search("\+ *test-1")
- result.diff.prepared | search("\+ *description test-vrf-1")
- result.diff.prepared | search("\+ *instance-type vrf")
- result.diff.prepared | search("\+ *interface ge-0/0/2.0")
- result.diff.prepared | search("\+ *interface ge-0/0/3.0")
- result.diff.prepared | search("\+ *route-distinguisher 1.1.1.1:10")
- result.diff.prepared | search("\+ *vrf-target target:65514:113")
- result.diff.prepared | search("\+ *test-2")
- result.diff.prepared | search("\+ *description test-vrf-2")
- result.diff.prepared | search("\+ *instance-type vrf")
- result.diff.prepared | search("\+ *interface ge-0/0/4.0")
- result.diff.prepared | search("\+ *interface ge-0/0/5.0")
- result.diff.prepared | search("\+ *route-distinguisher 2.2.2.2:10")
- result.diff.prepared | search("\+ *vrf-target target:65515:114")
- name: Delete vrf configuration using aggregate
net_vrf:
aggregate:
- name: test-1
state: absent
- name: test-2
state: absent
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- result.diff.prepared | search("\- *test-1")
- result.diff.prepared | search("\- *description test-vrf-1")
- result.diff.prepared | search("\- *instance-type vrf")
- result.diff.prepared | search("\- *interface ge-0/0/2.0")
- result.diff.prepared | search("\- *interface ge-0/0/3.0")
- result.diff.prepared | search("\- *route-distinguisher 1.1.1.1:10")
- result.diff.prepared | search("\- *vrf-target target:65514:113")
- result.diff.prepared | search("\- *test-2")
- result.diff.prepared | search("\- *description test-vrf-2")
- result.diff.prepared | search("\- *instance-type vrf")
- result.diff.prepared | search("\- *interface ge-0/0/4.0")
- result.diff.prepared | search("\- *interface ge-0/0/5.0")
- result.diff.prepared | search("\- *route-distinguisher 2.2.2.2:10")
- result.diff.prepared | search("\- *vrf-target target:65515:114")
- name: Delete vrf configuration using aggregate (idempotent)
net_vrf:
aggregate:
- name: test-1
state: absent
- name: test-2
state: absent
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == false"