mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-24 22:00:22 -07:00
Add junos_system declartive module and other related change (#25859)
* Add junos_system declartive module and other related change * junos_system declartive module * integration test for junos_system * integration test for net_system (junos platform) * pep8 fixes for junos modules * move to lxml from elementree for xml parsing as it support complete set of xpath api's * other minor changes * Fix CI and doc changes * Fix unit test failures * Fix typo in import * Fix import issue for py2.6 * Add missed Element in import
This commit is contained in:
parent
dd07d11ae5
commit
b2f46753ec
29 changed files with 1075 additions and 96 deletions
1
test/integration/targets/junos_system/aliases
Normal file
1
test/integration/targets/junos_system/aliases
Normal file
|
@ -0,0 +1 @@
|
|||
network/ci
|
2
test/integration/targets/junos_system/defaults/main.yaml
Normal file
2
test/integration/targets/junos_system/defaults/main.yaml
Normal file
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
testcase: "*"
|
2
test/integration/targets/junos_system/tasks/main.yaml
Normal file
2
test/integration/targets/junos_system/tasks/main.yaml
Normal file
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
- { include: netconf.yaml, tags: ['netconf'] }
|
16
test/integration/targets/junos_system/tasks/netconf.yaml
Normal file
16
test/integration/targets/junos_system/tasks/netconf.yaml
Normal file
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
- name: collect all netconf test cases
|
||||
find:
|
||||
paths: "{{ role_path }}/tests/netconf"
|
||||
patterns: "{{ testcase }}.yaml"
|
||||
register: test_cases
|
||||
delegate_to: localhost
|
||||
|
||||
- name: set test_items
|
||||
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
|
||||
|
||||
- name: run test case
|
||||
include: "{{ test_case_to_run }}"
|
||||
with_items: "{{ test_items }}"
|
||||
loop_control:
|
||||
loop_var: test_case_to_run
|
308
test/integration/targets/junos_system/tests/netconf/basic.yaml
Normal file
308
test/integration/targets/junos_system/tests/netconf/basic.yaml
Normal file
|
@ -0,0 +1,308 @@
|
|||
---
|
||||
- debug: msg="START junos_system netconf/basic.yaml"
|
||||
|
||||
- name: setup - remove hostname
|
||||
junos_system:
|
||||
hostname: vsrx01
|
||||
state: absent
|
||||
provider: "{{ netconf }}"
|
||||
|
||||
- name: Set hostname
|
||||
junos_system:
|
||||
hostname: vsrx01
|
||||
state: present
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<host-name>vsrx01</host-name>' in result.rpc"
|
||||
|
||||
- name: Set hostname (idempotent)
|
||||
junos_system:
|
||||
hostname: vsrx01
|
||||
state: present
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: Deactivate hostname configuration
|
||||
junos_system:
|
||||
hostname: vsrx01
|
||||
state: suspend
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<host-name inactive=\"inactive\" />' in result.rpc"
|
||||
|
||||
- name: Activate hostname configuration
|
||||
junos_system:
|
||||
hostname: vsrx01
|
||||
state: active
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<host-name active=\"active\" />' in result.rpc"
|
||||
|
||||
- name: Delete hostname configuration
|
||||
junos_system:
|
||||
hostname: vsrx01
|
||||
state: absent
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<host-name delete=\"delete\" />' in result.rpc"
|
||||
|
||||
- name: Teardown - set hostname
|
||||
junos_system:
|
||||
hostname: vsrx01
|
||||
state: present
|
||||
provider: "{{ netconf }}"
|
||||
|
||||
- name: setup - remove domain name
|
||||
junos_system:
|
||||
domain_name: ansible.com
|
||||
state: absent
|
||||
provider: "{{ netconf }}"
|
||||
|
||||
- name: Set domain name
|
||||
junos_system:
|
||||
domain_name: ansible.com
|
||||
state: present
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<domain-name>ansible.com</domain-name>' in result.rpc"
|
||||
|
||||
- name: Set domain name (idempotent)
|
||||
junos_system:
|
||||
domain_name: ansible.com
|
||||
state: present
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: Deactivate domain name
|
||||
junos_system:
|
||||
domain_name: ansible.com
|
||||
state: suspend
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<domain-name inactive=\"inactive\" />' in result.rpc"
|
||||
|
||||
- name: Activate domain name
|
||||
junos_system:
|
||||
domain_name: ansible.com
|
||||
state: active
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<domain-name active=\"active\" />' in result.rpc"
|
||||
|
||||
- name: Delete domain name
|
||||
junos_system:
|
||||
domain_name: ansible.com
|
||||
state: absent
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<domain-name delete=\"delete\" />' in result.rpc"
|
||||
|
||||
- name: Teardown - set domain name
|
||||
junos_system:
|
||||
domain_name: ansible.com
|
||||
state: present
|
||||
provider: "{{ netconf }}"
|
||||
|
||||
- name: Setup - delete domain search
|
||||
junos_system:
|
||||
domain_search:
|
||||
- test.com
|
||||
- sample.com
|
||||
state: absent
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- name: Set domain search
|
||||
junos_system:
|
||||
domain_search:
|
||||
- test.com
|
||||
- sample.com
|
||||
state: present
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<domain-search>test.com</domain-search>' in result.rpc"
|
||||
- "'<domain-search>sample.com</domain-search>' in result.rpc"
|
||||
|
||||
- name: Set domain search
|
||||
junos_system:
|
||||
domain_search:
|
||||
- test.com
|
||||
- sample.com
|
||||
state: present
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: Deactivate domain search
|
||||
junos_system:
|
||||
domain_search:
|
||||
- test.com
|
||||
- sample.com
|
||||
state: suspend
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<domain-search inactive=\"inactive\">test.com</domain-search>' in result.rpc"
|
||||
- "'<domain-search inactive=\"inactive\">sample.com</domain-search>' in result.rpc"
|
||||
|
||||
- name: Activate domain search
|
||||
junos_system:
|
||||
domain_search:
|
||||
- test.com
|
||||
- sample.com
|
||||
state: active
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<domain-search active=\"active\">test.com</domain-search>' in result.rpc"
|
||||
- "'<domain-search active=\"active\">sample.com</domain-search>' in result.rpc"
|
||||
|
||||
- name: Delete domain search
|
||||
junos_system:
|
||||
domain_search:
|
||||
- test.com
|
||||
- sample.com
|
||||
state: absent
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<domain-search delete=\"delete\">test.com</domain-search>' in result.rpc"
|
||||
- "'<domain-search delete=\"delete\">sample.com</domain-search>' in result.rpc"
|
||||
|
||||
- name: Setup - delete name servers
|
||||
junos_system:
|
||||
name_servers:
|
||||
- 8.8.8.8
|
||||
- 8.8.4.4
|
||||
state: absent
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- name: Set name servers
|
||||
junos_system:
|
||||
name_servers:
|
||||
- 8.8.8.8
|
||||
- 8.8.4.4
|
||||
state: present
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<name-server><name>8.8.8.8</name></name-server>' in result.rpc"
|
||||
- "'<name-server><name>8.8.4.4</name></name-server>' in result.rpc"
|
||||
|
||||
- name: Set name servers (idempotent)
|
||||
junos_system:
|
||||
name_servers:
|
||||
- 8.8.8.8
|
||||
- 8.8.4.4
|
||||
state: present
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: Deactivate name servers
|
||||
junos_system:
|
||||
name_servers:
|
||||
- 8.8.8.8
|
||||
- 8.8.4.4
|
||||
state: suspend
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<name-server inactive=\"inactive\"><name>8.8.8.8</name></name-server>' in result.rpc"
|
||||
- "'<name-server inactive=\"inactive\"><name>8.8.4.4</name></name-server>' in result.rpc"
|
||||
|
||||
- name: Activate name servers
|
||||
junos_system:
|
||||
name_servers:
|
||||
- 8.8.8.8
|
||||
- 8.8.4.4
|
||||
state: active
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<name-server active=\"active\"><name>8.8.8.8</name></name-server>' in result.rpc"
|
||||
- "'<name-server active=\"active\"><name>8.8.4.4</name></name-server>' in result.rpc"
|
||||
|
||||
- name: Delete name servers
|
||||
junos_system:
|
||||
name_servers:
|
||||
- 8.8.8.8
|
||||
- 8.8.4.4
|
||||
state: absent
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'<name-server delete=\"delete\"><name>8.8.8.8</name></name-server>' in result.rpc"
|
||||
- "'<name-server delete=\"delete\"><name>8.8.4.4</name></name-server>' in result.rpc"
|
Loading…
Add table
Add a link
Reference in a new issue