diff --git a/lib/ansible/module_utils/junos.py b/lib/ansible/module_utils/junos.py
index 58885dc607..f7cb8fc001 100644
--- a/lib/ansible/module_utils/junos.py
+++ b/lib/ansible/module_utils/junos.py
@@ -57,7 +57,7 @@ ARGS_DEFAULT_VALUE = {
OPERATION_LOOK_UP = {
'absent': 'delete',
'active': 'active',
- 'suspend': 'inactive'
+ 'deactivate': 'inactive'
}
@@ -289,18 +289,19 @@ def map_obj_to_ele(module, want, top, value_map=None):
ele = SubElement(ele, item)
container = ele
state = module.params.get('state')
+ active = module.params.get('active')
+ if active:
+ oper = 'active'
+ else:
+ oper = 'inactive'
# build xml subtree
for obj in want:
- oper = None
if container.tag != top_ele[-1]:
node = SubElement(container, top_ele[-1])
else:
node = container
- if state and state != 'present':
- oper = OPERATION_LOOK_UP.get(state)
-
for xpath, attributes in obj.items():
for attr in attributes:
tag_only = attr.get('tag_only', False)
@@ -309,16 +310,20 @@ def map_obj_to_ele(module, want, top, value_map=None):
is_key = attr.get('is_key', False)
value = attr.get('value')
- # operation (delete/active/inactive) is added as element attribute
- # only if it is key or tag only or leaf only node
- if oper and not (is_key or tag_only or leaf_only):
+ # operation 'delete' is added as element attribute
+ # only if it is key or leaf only node
+ if state == 'absent' and not (is_key or leaf_only):
+ continue
+
+ # for tag only node if value is false continue to next attr
+ if tag_only and not value:
continue
# convert param value to device specific value
if value_map and xpath in value_map:
value = value_map[xpath].get(value)
- if value or tag_only or (leaf_only and value):
+ if value or tag_only or leaf_only:
ele = node
tags = xpath.split('/')
if value:
@@ -328,22 +333,39 @@ def map_obj_to_ele(module, want, top, value_map=None):
ele = SubElement(ele, item)
if tag_only:
- if not value:
- ele.set('delete', 'delete')
+ if state == 'present':
+ if not value:
+ # if value of tag_only node is false, delete the node
+ ele.set('delete', 'delete')
+
elif leaf_only:
- if oper:
+ if state == 'present':
ele.set(oper, oper)
+ ele.text = value
+ else:
+ ele.set('delete', 'delete')
+ # Add value of leaf node if required while deleting.
+ # in some cases if value is present while deleting, it
+ # can result in error, hence the check
if is_value:
ele.text = value
- else:
- ele.text = value
else:
ele.text = value
+
if HAS_LXML:
par = ele.getparent()
else:
module.fail_json(msg='lxml is not installed.')
- if is_key and oper and not par.attrib.get(oper):
- par.set(oper, oper)
+
+ if state == 'present':
+ # set replace attribute at parent node
+ if not par.attrib.get('replace'):
+ par.set('replace', 'replace')
+
+ # set active/inactive at parent node
+ if not par.attrib.get(oper):
+ par.set(oper, oper)
+ else:
+ par.set('delete', 'delete')
return root
diff --git a/lib/ansible/modules/network/junos/junos_banner.py b/lib/ansible/modules/network/junos/junos_banner.py
index a00b699651..9e5f00b184 100644
--- a/lib/ansible/modules/network/junos/junos_banner.py
+++ b/lib/ansible/modules/network/junos/junos_banner.py
@@ -53,7 +53,12 @@ options:
- Specifies whether or not the configuration is
present in the current devices active running configuration.
default: present
- choices: ['present', 'absent', 'active', 'suspend']
+ choices: ['present', 'absent']
+ active:
+ description:
+ - Specifies whether or not the configuration is active or deactivated
+ default: True
+ choices: [True, False]
requirements:
- ncclient (>=v0.5.2)
notes:
@@ -79,12 +84,14 @@ EXAMPLES = """
- name: deactivate the motd banner
junos_banner:
banner: motd
- state: suspend
+ state: present
+ active: False
- name: activate the motd banner
junos_banner:
banner: motd
- state: active
+ state: present
+ active: True
- name: Configure banner from file
junos_banner:
@@ -133,7 +140,8 @@ def main():
argument_spec = dict(
banner=dict(required=True, choices=['login', 'motd']),
text=dict(),
- state=dict(default='present', choices=['present', 'absent', 'active', 'suspend'])
+ state=dict(default='present', choices=['present', 'absent']),
+ active=dict(default=True, type='bool')
)
argument_spec.update(junos_argument_spec)
@@ -156,10 +164,9 @@ def main():
param_to_xpath_map = collections.OrderedDict()
- param_to_xpath_map.update({
- 'text': {'xpath': 'message' if module.params['banner'] == 'login' else 'announcement',
- 'leaf_only': True}
- })
+ param_to_xpath_map.update([
+ ('text', {'xpath': 'message' if module.params['banner'] == 'login' else 'announcement', 'leaf_only': True})
+ ])
validate_param_values(module, param_to_xpath_map)
diff --git a/lib/ansible/modules/network/junos/junos_interface.py b/lib/ansible/modules/network/junos/junos_interface.py
index 23bcb4304f..2b6de72cbb 100644
--- a/lib/ansible/modules/network/junos/junos_interface.py
+++ b/lib/ansible/modules/network/junos/junos_interface.py
@@ -43,10 +43,7 @@ options:
- Description of Interface.
enabled:
description:
- - Configure operational status of the interface link.
- If value is I(yes/true), interface is configured in up state.
- For I(no/false) interface is configured in down state.
- default: yes
+ - Interface link status.
speed:
description:
- Interface link speed.
@@ -73,9 +70,15 @@ options:
default: no
state:
description:
- - State of the Interface configuration.
+ - State of the Interface configuration, C(up) means present and
+ operationally up and C(down) means present and operationally C(down)
default: present
- choices: ['present', 'absent', 'active', 'suspend']
+ choices: ['present', 'absent', 'up', 'down']
+ active:
+ description:
+ - Specifies whether or not the configuration is active or deactivated
+ default: True
+ choices: [True, False]
requirements:
- ncclient (>=v0.5.2)
notes:
@@ -97,24 +100,24 @@ EXAMPLES = """
- name: make interface down
junos_interface:
name: ge-0/0/1
- state: present
- enabled: False
+ state: down
- name: make interface up
junos_interface:
name: ge-0/0/1
- state: present
- enabled: True
+ state: up
- name: Deactivate interface config
junos_interface:
name: ge-0/0/1
- state: suspend
+ state: present
+ active: False
- name: Activate interface config
net_interface:
name: ge-0/0/1
- state: active
+ state: present
+ active: True
- name: Configure interface speed, mtu, duplex
junos_interface:
@@ -123,7 +126,6 @@ EXAMPLES = """
speed: 1g
mtu: 256
duplex: full
- enabled: True
"""
RETURN = """
@@ -172,7 +174,7 @@ def main():
argument_spec = dict(
name=dict(required=True),
description=dict(),
- enabled=dict(default=True, type='bool'),
+ enabled=dict(),
speed=dict(),
mtu=dict(type='int'),
duplex=dict(choices=['full', 'half', 'auto']),
@@ -181,7 +183,8 @@ def main():
collection=dict(),
purge=dict(default=False, type='bool'),
state=dict(default='present',
- choices=['present', 'absent', 'active', 'suspend'])
+ choices=['present', 'absent', 'up', 'down']),
+ active=dict(default=True, type='bool')
)
argument_spec.update(junos_argument_spec)
@@ -200,18 +203,26 @@ def main():
top = 'interfaces/interface'
param_to_xpath_map = collections.OrderedDict()
- param_to_xpath_map.update({
- 'name': {'xpath': 'name', 'is_key': True},
- 'description': 'description',
- 'speed': 'speed',
- 'mtu': 'mtu',
- 'enabled': {'xpath': 'disable', 'tag_only': True},
- 'duplex': 'link-mode'
- })
+ param_to_xpath_map.update([
+ ('name', {'xpath': 'name', 'is_key': True}),
+ ('description', 'description'),
+ ('speed', 'speed'),
+ ('mtu', 'mtu'),
+ ('duplex', 'link-mode'),
+ ('disable', {'xpath': 'disable', 'tag_only': True})
+ ])
+
+ state = module.params.get('state')
+ module.params['disable'] = True if state == 'down' else False
+
+ if state in ('present', 'up', 'down'):
+ module.params['state'] = 'present'
+
+ else:
+ module.params['disable'] = True
choice_to_value_map = {
- 'link-mode': {'full': 'full-duplex', 'half': 'half-duplex', 'auto': 'automatic'},
- 'disable': {True: False, False: True}
+ 'link-mode': {'full': 'full-duplex', 'half': 'half-duplex', 'auto': 'automatic'}
}
validate_param_values(module, param_to_xpath_map)
diff --git a/lib/ansible/modules/network/junos/junos_system.py b/lib/ansible/modules/network/junos/junos_system.py
index d29315102b..a1bc342787 100644
--- a/lib/ansible/modules/network/junos/junos_system.py
+++ b/lib/ansible/modules/network/junos/junos_system.py
@@ -65,7 +65,12 @@ options:
configuration and when set to I(absent) the values should not be
in the device active configuration
default: present
- choices: ['present', 'absent', 'active', 'suspend']
+ choices: ['present', 'absent']
+ active:
+ description:
+ - Specifies whether or not the configuration is active or deactivated
+ default: True
+ choices: [True, False]
requirements:
- ncclient (>=v0.5.2)
notes:
@@ -137,8 +142,8 @@ def main():
domain_name=dict(),
domain_search=dict(type='list'),
name_servers=dict(type='list'),
-
- state=dict(choices=['present', 'absent', 'active', 'suspend'], default='present')
+ state=dict(choices=['present', 'absent'], default='present'),
+ active=dict(default=True, type='bool')
)
argument_spec.update(junos_argument_spec)
@@ -164,12 +169,12 @@ def main():
top = 'system'
param_to_xpath_map = collections.OrderedDict()
- param_to_xpath_map.update({
- 'hostname': {'xpath': 'host-name', 'leaf_only': True},
- 'domain_name': {'xpath': 'domain-name', 'leaf_only': True},
- 'domain_search': {'xpath': 'domain-search', 'leaf_only': True, 'value_req': True},
- 'name_servers': {'xpath': 'name-server/name', 'is_key': True}
- })
+ param_to_xpath_map.update([
+ ('hostname', {'xpath': 'host-name', 'leaf_only': True}),
+ ('domain_name', {'xpath': 'domain-name', 'leaf_only': True}),
+ ('domain_search', {'xpath': 'domain-search', 'leaf_only': True, 'value_req': True}),
+ ('name_servers', {'xpath': 'name-server/name', 'is_key': True})
+ ])
validate_param_values(module, param_to_xpath_map)
diff --git a/lib/ansible/modules/network/junos/junos_vlan.py b/lib/ansible/modules/network/junos/junos_vlan.py
index 25beeeb3a7..5f6ef3750e 100644
--- a/lib/ansible/modules/network/junos/junos_vlan.py
+++ b/lib/ansible/modules/network/junos/junos_vlan.py
@@ -59,7 +59,12 @@ options:
description:
- State of the VLAN configuration.
default: present
- choices: ['present', 'absent', 'active', 'suspend']
+ choices: ['present', 'absent']
+ active:
+ description:
+ - Specifies whether or not the configuration is active or deactivated
+ default: True
+ choices: [True, False]
requirements:
- ncclient (>=v0.5.2)
notes:
@@ -82,12 +87,14 @@ EXAMPLES = """
- name: deactive VLAN configuration
junos_vlan:
vlan_name: test
- state: suspend
+ state: present
+ active: False
- name: activate VLAN configuration
junos_vlan:
vlan_name: test
- state: active
+ state: present
+ active: True
"""
RETURN = """
@@ -134,8 +141,8 @@ def main():
interfaces=dict(),
collection=dict(),
purge=dict(default=False, type='bool'),
- state=dict(default='present',
- choices=['present', 'absent', 'active', 'suspend'])
+ state=dict(default='present', choices=['present', 'absent']),
+ active=dict(default=True, type='bool')
)
argument_spec.update(junos_argument_spec)
@@ -154,11 +161,11 @@ def main():
top = 'vlans/vlan'
param_to_xpath_map = collections.OrderedDict()
- param_to_xpath_map.update({
- 'name': {'xpath': 'name', 'is_key': True},
- 'vlan_id': 'vlan-id',
- 'description': 'description'
- })
+ param_to_xpath_map.update([
+ ('name', {'xpath': 'name', 'is_key': True}),
+ ('vlan_id', 'vlan-id'),
+ ('description', 'description')
+ ])
validate_param_values(module, param_to_xpath_map)
diff --git a/test/integration/targets/junos_banner/tests/netconf/basic.yaml b/test/integration/targets/junos_banner/tests/netconf/basic.yaml
index 9ca9c7f332..6b6cad98d8 100644
--- a/test/integration/targets/junos_banner/tests/netconf/basic.yaml
+++ b/test/integration/targets/junos_banner/tests/netconf/basic.yaml
@@ -15,10 +15,16 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'this is my login banner' in result.rpc"
+ - "'this is my login banner' in config.xml"
- name: Create login banner (idempotent)
junos_banner:
@@ -36,27 +42,41 @@
junos_banner:
banner: login
text: this is my login banner
- state: suspend
+ state: present
+ active: False
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'this is my login banner' in config.xml"
- name: Activate login banner
junos_banner:
banner: login
text: this is my login banner
- state: active
+ state: present
+ active: True
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'this is my login banner' in config.xml"
- name: delete login banner
junos_banner:
@@ -65,10 +85,16 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'this is my login banner' not in config.xml"
- name: setup - remove motd banner
junos_banner:
@@ -84,13 +110,16 @@
provider: "{{ netconf }}"
register: result
-- debug:
- msg: "{{ result }}"
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
- assert:
that:
- "result.changed == true"
- - "'this is my motd banner' in result.rpc"
+ - "'this is my motd banner' in config.xml"
- name: Create motd banner (idempotent)
junos_banner:
@@ -107,26 +136,42 @@
- name: Deactivate motd banner
junos_banner:
banner: motd
- state: suspend
+ text: this is my motd banner
+ state: present
+ active: False
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'this is my motd banner' in config.xml"
- name: Activate motd banner
junos_banner:
banner: motd
- state: active
+ text: this is my motd banner
+ state: present
+ active: True
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'this is my motd banner' in config.xml"
- name: delete motd banner
junos_banner:
@@ -135,7 +180,13 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'this is my motd banner' not in config.xml"
diff --git a/test/integration/targets/junos_interface/tests/netconf/basic.yaml b/test/integration/targets/junos_interface/tests/netconf/basic.yaml
index 70f993ba05..1a84965d37 100644
--- a/test/integration/targets/junos_interface/tests/netconf/basic.yaml
+++ b/test/integration/targets/junos_interface/tests/netconf/basic.yaml
@@ -16,14 +16,17 @@
provider: "{{ netconf }}"
register: result
-- debug:
- msg: "{{ result }}"
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
- assert:
that:
- "result.changed == true"
- - "'ge-0/0/1' in result.rpc"
- - "'test-interface' in result.rpc"
+ - "'ge-0/0/1' in config.xml"
+ - "'test-interface' in config.xml"
- name: Create interface (idempotent)
junos_interface:
@@ -41,29 +44,43 @@
junos_interface:
name: ge-0/0/1
description: test-interface
- state: suspend
+ state: present
+ active: False
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
- - "'ge-0/0/1' in result.rpc"
+ - "'' in config.xml"
+ - "'ge-0/0/1' in config.xml"
- name: Activate interface configuration
junos_interface:
name: ge-0/0/1
description: test-interface
- state: active
+ state: present
+ active: True
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
- - "'ge-0/0/1' in result.rpc"
+ - "'' in config.xml"
+ - "'ge-0/0/1' in config.xml"
- name: Configure interface attributes
junos_interface:
@@ -76,44 +93,60 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'ge-0/0/1' in result.rpc"
- - "'full-duplex' in result.rpc"
- - "'256' in result.rpc"
- - "'1g' in result.rpc"
- - "'test-interface' in result.rpc"
+ - "'ge-0/0/1' in config.xml"
+ - "'full-duplex' in config.xml"
+ - "'256' in config.xml"
+ - "'1g' in config.xml"
+ - "'test-interface' in config.xml"
- name: Disable interface
junos_interface:
name: ge-0/0/1
description: test-interface
- state: present
- enabled: False
+ state: down
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
- - "'ge-0/0/1' in result.rpc"
+ - "'' in config.xml"
+ - "'ge-0/0/1' in config.xml"
- name: Enable interface
junos_interface:
name: ge-0/0/1
description: test-interface
- state: present
- enabled: True
+ state: up
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
- - "'ge-0/0/1' in result.rpc"
+ - "'' not in config.xml"
+ - "'ge-0/0/1' in config.xml"
- name: Delete interface
junos_interface:
@@ -123,8 +156,19 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
- - "'ge-0/0/1' in result.rpc"
+ - "'ge-0/0/1' not in config.xml"
diff --git a/test/integration/targets/junos_system/tests/netconf/basic.yaml b/test/integration/targets/junos_system/tests/netconf/basic.yaml
index 090a76467c..81c7d6fe7c 100644
--- a/test/integration/targets/junos_system/tests/netconf/basic.yaml
+++ b/test/integration/targets/junos_system/tests/netconf/basic.yaml
@@ -14,10 +14,16 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'vsrx01' in result.rpc"
+ - "'vsrx01' in config.xml"
- name: Set hostname (idempotent)
junos_system:
@@ -33,26 +39,40 @@
- name: Deactivate hostname configuration
junos_system:
hostname: vsrx01
- state: suspend
+ state: present
+ active: False
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'' in config.xml"
- name: Activate hostname configuration
junos_system:
hostname: vsrx01
- state: active
+ state: present
+ active: True
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'vsrx01' in config.xml"
- name: Delete hostname configuration
junos_system:
@@ -64,7 +84,7 @@
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'vsrx01' in config.xml"
- name: Teardown - set hostname
junos_system:
@@ -85,10 +105,16 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'ansible.com' in result.rpc"
+ - "'ansible.com' in config.xml"
- name: Set domain name (idempotent)
junos_system:
@@ -104,26 +130,40 @@
- name: Deactivate domain name
junos_system:
domain_name: ansible.com
- state: suspend
+ state: present
+ active: False
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'' in config.xml"
- name: Activate domain name
junos_system:
domain_name: ansible.com
- state: active
+ state: present
+ active: True
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'ansible.com' in config.xml"
- name: Delete domain name
junos_system:
@@ -132,10 +172,16 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'ansible.com' not in config.xml"
- name: Teardown - set domain name
junos_system:
@@ -161,13 +207,19 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'test.com' in result.rpc"
- - "'sample.com' in result.rpc"
+ - "'test.com' in config.xml"
+ - "'sample.com' in config.xml"
-- name: Set domain search
+- name: Set domain search (idempotency)
junos_system:
domain_search:
- test.com
@@ -185,30 +237,44 @@
domain_search:
- test.com
- sample.com
- state: suspend
+ state: present
+ active: False
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'test.com' in result.rpc"
- - "'sample.com' in result.rpc"
+ - "'test.com' in config.xml"
+ - "'sample.com' in config.xml"
- name: Activate domain search
junos_system:
domain_search:
- test.com
- sample.com
- state: active
+ state: present
+ active: True
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'test.com' in result.rpc"
- - "'sample.com' in result.rpc"
+ - "'test.com' in config.xml"
+ - "'sample.com' in config.xml"
- name: Delete domain search
junos_system:
@@ -219,11 +285,17 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'test.com' in result.rpc"
- - "'sample.com' in result.rpc"
+ - "'test.com' not in config.xml"
+ - "'sample.com' not in config.xml"
- name: Setup - delete name servers
junos_system:
@@ -243,11 +315,17 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'8.8.8.8' in result.rpc"
- - "'8.8.4.4' in result.rpc"
+ - "'8.8.8.8' in config.xml"
+ - "'8.8.4.4' in config.xml"
- name: Set name servers (idempotent)
junos_system:
@@ -267,30 +345,43 @@
name_servers:
- 8.8.8.8
- 8.8.4.4
- state: suspend
+ state: present
+ active: False
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'8.8.8.8' in result.rpc"
- - "'8.8.4.4' in result.rpc"
+ - "'' in config.xml"
- name: Activate name servers
junos_system:
name_servers:
- 8.8.8.8
- 8.8.4.4
- state: active
+ state: present
+ active: True
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'8.8.8.8' in result.rpc"
- - "'8.8.4.4' in result.rpc"
+ - "'8.8.8.8' in config.xml"
+ - "'8.8.4.4' in config.xml"
- name: Delete name servers
junos_system:
@@ -301,8 +392,14 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'8.8.8.8' in result.rpc"
- - "'8.8.4.4' in result.rpc"
+ - "'8.8.8.8' not in config.xml"
+ - "'8.8.4.4' not in config.xml"
diff --git a/test/integration/targets/junos_vlan/tests/netconf/basic.yaml b/test/integration/targets/junos_vlan/tests/netconf/basic.yaml
index a090b84c05..e154e93e85 100644
--- a/test/integration/targets/junos_vlan/tests/netconf/basic.yaml
+++ b/test/integration/targets/junos_vlan/tests/netconf/basic.yaml
@@ -18,14 +18,17 @@
provider: "{{ netconf }}"
register: result
-- debug:
- msg: "{{ result }}"
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
- assert:
that:
- "result.changed == true"
- - "'test-vlan' in result.rpc"
- - "'100' in result.rpc"
+ - "'test-vlan' in config.xml"
+ - "'100' in config.xml"
- name: Create vlan again (idempotent)
junos_vlan:
@@ -44,29 +47,42 @@
junos_vlan:
vlan_id: 100
name: test-vlan
- state: suspend
+ state: present
+ active: False
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
- - "'test-vlan' in result.rpc"
+ - "'' in config.xml"
+ - "'test-vlan' in config.xml"
- name: Activate vlan
junos_vlan:
vlan_id: 100
name: test-vlan
- state: active
+ state: present
+ active: True
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
- - "'test-vlan' in result.rpc"
+ - "'test-vlan' in config.xml"
- name: Delete vlan
junos_vlan:
@@ -76,8 +92,13 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
- - "'test-vlan' in result.rpc"
+ - "'test-vlan' not in config.xml"
diff --git a/test/integration/targets/net_banner/tests/junos/basic.yaml b/test/integration/targets/net_banner/tests/junos/basic.yaml
index 038982ebed..145fa89595 100644
--- a/test/integration/targets/net_banner/tests/junos/basic.yaml
+++ b/test/integration/targets/net_banner/tests/junos/basic.yaml
@@ -15,10 +15,16 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'this is my login banner' in result.rpc"
+ - "'this is my login banner' in config.xml"
- name: Create login banner (idempotent)
net_banner:
@@ -39,10 +45,16 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'this is my login banner' not in config.xml"
- name: setup - remove motd banner
net_banner:
@@ -58,13 +70,16 @@
provider: "{{ netconf }}"
register: result
-- debug:
- msg: "{{ result }}"
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
- assert:
that:
- "result.changed == true"
- - "'this is my motd banner' in result.rpc"
+ - "'this is my motd banner' in config.xml"
- name: Create motd banner (idempotent)
net_banner:
@@ -85,7 +100,13 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'this is my motd banner' not in config.xml"
diff --git a/test/integration/targets/net_interface/tests/junos/basic.yaml b/test/integration/targets/net_interface/tests/junos/basic.yaml
index ba30cc099f..b2dfa4fbc1 100644
--- a/test/integration/targets/net_interface/tests/junos/basic.yaml
+++ b/test/integration/targets/net_interface/tests/junos/basic.yaml
@@ -16,14 +16,17 @@
provider: "{{ netconf }}"
register: result
-- debug:
- msg: "{{ result }}"
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
- assert:
that:
- "result.changed == true"
- - "'ge-0/0/1' in result.rpc"
- - "'test-interface' in result.rpc"
+ - "'ge-0/0/1' in config.xml"
+ - "'test-interface' in config.xml"
- name: Create interface (idempotent)
net_interface:
@@ -48,44 +51,60 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'ge-0/0/1' in result.rpc"
- - "'full-duplex' in result.rpc"
- - "'256' in result.rpc"
- - "'1g' in result.rpc"
- - "'test-interface' in result.rpc"
+ - "'ge-0/0/1' in config.xml"
+ - "'full-duplex' in config.xml"
+ - "'256' in config.xml"
+ - "'1g' in config.xml"
+ - "'test-interface' in config.xml"
- name: Disable interface
net_interface:
name: ge-0/0/1
description: test-interface
- state: present
- enabled: False
+ state: down
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
- - "'ge-0/0/1' in result.rpc"
+ - "'' in config.xml"
+ - "'ge-0/0/1' in config.xml"
- name: Enable interface
net_interface:
name: ge-0/0/1
description: test-interface
- state: present
- enabled: True
+ state: up
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
- - "'ge-0/0/1' in result.rpc"
+ - "'' not in config.xml"
+ - "'ge-0/0/1' in config.xml"
- name: Delete interface
net_interface:
@@ -95,8 +114,13 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
- - "'ge-0/0/1' in result.rpc"
+ - "'ge-0/0/1' not in config.xml"
diff --git a/test/integration/targets/net_system/tests/junos/basic.yaml b/test/integration/targets/net_system/tests/junos/basic.yaml
index 0b0c1bec08..ab5c0678ee 100644
--- a/test/integration/targets/net_system/tests/junos/basic.yaml
+++ b/test/integration/targets/net_system/tests/junos/basic.yaml
@@ -14,10 +14,16 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'vsrx01' in result.rpc"
+ - "'vsrx01' in config.xml"
- name: Set hostname (idempotent)
net_system:
@@ -30,30 +36,6 @@
that:
- "result.changed == false"
-- name: Deactivate hostname configuration
- net_system:
- hostname: vsrx01
- state: suspend
- provider: "{{ netconf }}"
- register: result
-
-- assert:
- that:
- - "result.changed == true"
- - "'' in result.rpc"
-
-- name: Activate hostname configuration
- net_system:
- hostname: vsrx01
- state: active
- provider: "{{ netconf }}"
- register: result
-
-- assert:
- that:
- - "result.changed == true"
- - "'' in result.rpc"
-
- name: Delete hostname configuration
net_system:
hostname: vsrx01
@@ -61,10 +43,16 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'vsrx01' not in config.xml"
- name: Teardown - set hostname
net_system:
@@ -85,10 +73,16 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'ansible.com' in result.rpc"
+ - "'ansible.com' in config.xml"
- name: Set domain name (idempotent)
net_system:
@@ -101,30 +95,6 @@
that:
- "result.changed == false"
-- name: Deactivate domain name
- net_system:
- domain_name: ansible.com
- state: suspend
- provider: "{{ netconf }}"
- register: result
-
-- assert:
- that:
- - "result.changed == true"
- - "'' in result.rpc"
-
-- name: Activate domain name
- net_system:
- domain_name: ansible.com
- state: active
- provider: "{{ netconf }}"
- register: result
-
-- assert:
- that:
- - "result.changed == true"
- - "'' in result.rpc"
-
- name: Delete domain name
net_system:
domain_name: ansible.com
@@ -132,10 +102,16 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
+ - "'ansible.com' not in config.xml"
- name: Teardown - set domain name
net_system:
@@ -161,11 +137,17 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'test.com' in result.rpc"
- - "'sample.com' in result.rpc"
+ - "'test.com' in config.xml"
+ - "'sample.com' in config.xml"
- name: Set domain search
net_system:
@@ -180,36 +162,6 @@
that:
- "result.changed == false"
-- name: Deactivate domain search
- net_system:
- domain_search:
- - test.com
- - sample.com
- state: suspend
- provider: "{{ netconf }}"
- register: result
-
-- assert:
- that:
- - "result.changed == true"
- - "'test.com' in result.rpc"
- - "'sample.com' in result.rpc"
-
-- name: Activate domain search
- net_system:
- domain_search:
- - test.com
- - sample.com
- state: active
- provider: "{{ netconf }}"
- register: result
-
-- assert:
- that:
- - "result.changed == true"
- - "'test.com' in result.rpc"
- - "'sample.com' in result.rpc"
-
- name: Delete domain search
net_system:
domain_search:
@@ -219,11 +171,17 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'test.com' in result.rpc"
- - "'sample.com' in result.rpc"
+ - "'test.com' not in config.xml"
+ - "'sample.com' not in config.xml"
- name: Setup - delete name servers
net_system:
@@ -243,11 +201,17 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'8.8.8.8' in result.rpc"
- - "'8.8.4.4' in result.rpc"
+ - "'8.8.8.8' in config.xml"
+ - "'8.8.4.4' in config.xml"
- name: Set name servers (idempotent)
net_system:
@@ -262,36 +226,6 @@
that:
- "result.changed == false"
-- name: Deactivate name servers
- net_system:
- name_servers:
- - 8.8.8.8
- - 8.8.4.4
- state: suspend
- provider: "{{ netconf }}"
- register: result
-
-- assert:
- that:
- - "result.changed == true"
- - "'8.8.8.8' in result.rpc"
- - "'8.8.4.4' in result.rpc"
-
-- name: Activate name servers
- net_system:
- name_servers:
- - 8.8.8.8
- - 8.8.4.4
- state: active
- provider: "{{ netconf }}"
- register: result
-
-- assert:
- that:
- - "result.changed == true"
- - "'8.8.8.8' in result.rpc"
- - "'8.8.4.4' in result.rpc"
-
- name: Delete name servers
net_system:
name_servers:
@@ -301,8 +235,14 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'8.8.8.8' in result.rpc"
- - "'8.8.4.4' in result.rpc"
+ - "'8.8.8.8' not in config.xml"
+ - "'8.8.4.4' not in config.xml"
diff --git a/test/integration/targets/net_vlan/tests/junos/basic.yaml b/test/integration/targets/net_vlan/tests/junos/basic.yaml
index 697b50777e..9bd980de8d 100644
--- a/test/integration/targets/net_vlan/tests/junos/basic.yaml
+++ b/test/integration/targets/net_vlan/tests/junos/basic.yaml
@@ -16,14 +16,17 @@
provider: "{{ netconf }}"
register: result
-- debug:
- msg: "{{ result }}"
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
- assert:
that:
- "result.changed == true"
- - "'test-vlan' in result.rpc"
- - "'100' in result.rpc"
+ - "'test-vlan' in config.xml"
+ - "'100' in config.xml"
- name: Create vlan again (idempotent)
net_vlan:
@@ -37,34 +40,6 @@
that:
- "result.changed == false"
-- name: Deactivate vlan
- net_vlan:
- vlan_id: 100
- name: test-vlan
- state: suspend
- provider: "{{ netconf }}"
- register: result
-
-- assert:
- that:
- - "result.changed == true"
- - "'' in result.rpc"
- - "'test-vlan' in result.rpc"
-
-- name: Activate vlan
- net_vlan:
- vlan_id: 100
- name: test-vlan
- state: active
- provider: "{{ netconf }}"
- register: result
-
-- assert:
- that:
- - "result.changed == true"
- - "'' in result.rpc"
- - "'test-vlan' in result.rpc"
-
- name: Delete vlan
net_vlan:
vlan_id: 100
@@ -73,8 +48,13 @@
provider: "{{ netconf }}"
register: result
+- name: Get running configuration
+ junos_rpc:
+ rpc: get-configuration
+ provider: "{{ netconf }}"
+ register: config
+
- assert:
that:
- "result.changed == true"
- - "'' in result.rpc"
- - "'test-vlan' in result.rpc"
+ - "'test-vlan' not in config.xml"