Skip to content

Commit

Permalink
Fix traceback empty config error to meaningful msg for IOS (ansible#6…
Browse files Browse the repository at this point in the history
…2538)

* fix empty config msg

* fix space

Signed-off-by: Sumit Jaiswal <[email protected]>
  • Loading branch information
justjais authored Sep 19, 2019
1 parent 0545199 commit 35463d4
Show file tree
Hide file tree
Showing 19 changed files with 341 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,10 @@ def set_state(self, want, have):
to the deisred configuration
"""
commands = []

state = self._module.params['state']
if state in ('overridden', 'merged', 'replaced') and not want:
self._module.fail_json(msg='value of config parameter must not be empty for state {0}'.format(state))

if state == 'overridden':
commands = self._state_overridden(want, have)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,9 @@ def set_state(self, want, have):
commands = []

state = self._module.params['state']
if state in ('overridden', 'merged', 'replaced') and not want:
self._module.fail_json(msg='value of config parameter must not be empty for state {0}'.format(state))

if state == 'overridden':
commands = self._state_overridden(want, have, self._module)
elif state == 'deleted':
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,9 @@ def set_state(self, want, have):
commands = []

state = self._module.params['state']
if state in ('overridden', 'merged', 'replaced') and not want:
self._module.fail_json(msg='value of config parameter must not be empty for state {0}'.format(state))

if state == 'overridden':
commands = self._state_overridden(want, have, self._module)
elif state == 'deleted':
Expand Down
3 changes: 3 additions & 0 deletions lib/ansible/module_utils/network/ios/config/lacp/lacp.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ def set_state(self, want, have):
to the desired configuration
"""
state = self._module.params['state']
if state in ('merged', 'replaced') and not want:
self._module.fail_json(msg='value of config parameter must not be empty for state {0}'.format(state))

if state == 'deleted':
commands = self._state_deleted(want, have)
elif state == 'merged':
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,12 @@ def set_state(self, want, have):
:returns: the commands necessary to migrate the current configuration
to the desired configuration
"""
commands = []

state = self._module.params['state']
if state in ('overridden', 'merged', 'replaced') and not want:
self._module.fail_json(msg='value of config parameter must not be empty for state {0}'.format(state))

if state == 'overridden':
commands = self._state_overridden(want, have)
elif state == 'deleted':
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,9 @@ def set_state(self, want, have):
"""

state = self._module.params['state']
if state in ('overridden', 'merged', 'replaced') and not want:
self._module.fail_json(msg='value of config parameter must not be empty for state {0}'.format(state))

module = self._module
if state == 'overridden':
commands = self._state_overridden(want, have, module)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@ def set_state(self, want, have):
"""
commands = []
state = self._module.params['state']
if state in ('merged', 'replaced') and not want:
self._module.fail_json(msg='value of config parameter must not be empty for state {0}'.format(state))

if state == 'overridden':
commands = self._state_overridden(want, have)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,9 @@ def set_state(self, want, have):
to the desired configuration
"""
state = self._module.params['state']
if state in ('overridden', 'merged', 'replaced') and not want:
self._module.fail_json(msg='value of config parameter must not be empty for state {0}'.format(state))

if state == 'overridden':
commands = self._state_overridden(want, have)
elif state == 'deleted':
Expand Down
3 changes: 3 additions & 0 deletions lib/ansible/module_utils/network/ios/config/vlans/vlans.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,9 @@ def set_state(self, want, have):
to the desired configuration
"""
state = self._module.params['state']
if state in ('overridden', 'merged', 'replaced') and not want:
self._module.fail_json(msg='value of config parameter must not be empty for state {0}'.format(state))

if state == 'overridden':
commands = self._state_overridden(want, have, state)
elif state == 'deleted':
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,9 @@ def render_config(self, spec, conf):
"""
config = deepcopy(spec)
match = re.search(r'^(\S+)(:)', conf)
intf = match.group(1)
intf = ''
if match:
intf = match.group(1)

if get_interface_type(intf) == 'unknown':
return {}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
- debug:
msg: "START ios_interfaces empty_config.yaml integration tests on connection={{ ansible_connection }}"

- name: Merged with empty config should give appropriate error message
ios_interfaces:
config:
state: merged
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state merged'

- name: Replaced with empty config should give appropriate error message
ios_interfaces:
config:
state: replaced
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state replaced'

- name: Overridden with empty config should give appropriate error message
ios_interfaces:
config:
state: overridden
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state overridden'
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
- debug:
msg: "START ios_l2_interfaces empty_config.yaml integration tests on connection={{ ansible_connection }}"

- name: Merged with empty config should give appropriate error message
ios_l2_interfaces:
config:
state: merged
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state merged'

- name: Replaced with empty config should give appropriate error message
ios_l2_interfaces:
config:
state: replaced
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state replaced'

- name: Overridden with empty config should give appropriate error message
ios_l2_interfaces:
config:
state: overridden
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state overridden'
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
- debug:
msg: "START ios_l3_interfaces empty_config.yaml integration tests on connection={{ ansible_connection }}"

- name: Merged with empty config should give appropriate error message
ios_l3_interfaces:
config:
state: merged
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state merged'

- name: Replaced with empty config should give appropriate error message
ios_l3_interfaces:
config:
state: replaced
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state replaced'

- name: Overridden with empty config should give appropriate error message
ios_l3_interfaces:
config:
state: overridden
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state overridden'
27 changes: 27 additions & 0 deletions test/integration/targets/ios_lacp/tests/cli/empty_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
- debug:
msg: "START ios_lacp empty_config.yaml integration tests on connection={{ ansible_connection }}"

- block:
- name: Merged with empty config should give appropriate error message
ios_lacp:
config:
state: merged
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state merged'

- name: Replaced with empty config should give appropriate error message
ios_lacp:
config:
state: replaced
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state replaced'
when: ansible_net_version != "15.6(2)T"
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
- debug:
msg: "START ios_lacp_interfaces empty_config.yaml integration tests on connection={{ ansible_connection }}"

- block:
- name: Merged with empty config should give appropriate error message
ios_lacp_interfaces:
config:
state: merged
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state merged'

- name: Replaced with empty config should give appropriate error message
ios_lacp_interfaces:
config:
state: replaced
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state replaced'

- name: Overridden with empty config should give appropriate error message
ios_lacp_interfaces:
config:
state: overridden
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state overridden'
when: ansible_net_version != "15.6(2)T"
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
- debug:
msg: "START ios_lag_interfaces empty_config.yaml integration tests on connection={{ ansible_connection }}"

- block:
- name: Merged with empty config should give appropriate error message
ios_lag_interfaces:
config:
state: merged
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state merged'

- name: Replaced with empty config should give appropriate error message
ios_lag_interfaces:
config:
state: replaced
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state replaced'

- name: Overridden with empty config should give appropriate error message
ios_lag_interfaces:
config:
state: overridden
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state overridden'
when: ansible_net_version != "15.6(2)T"
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
- debug:
msg: "START ios_lldp_global empty_config.yaml integration tests on connection={{ ansible_connection }}"

- name: Merged with empty config should give appropriate error message
ios_lldp_global:
config:
state: merged
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state merged'

- name: Replaced with empty config should give appropriate error message
ios_lldp_global:
config:
state: replaced
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state replaced'
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
- debug:
msg: "START ios_lldp_interfaces empty_config.yaml integration tests on connection={{ ansible_connection }}"

- name: Merged with empty config should give appropriate error message
ios_lldp_interfaces:
config:
state: merged
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state merged'

- name: Replaced with empty config should give appropriate error message
ios_lldp_interfaces:
config:
state: replaced
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state replaced'

- name: Overridden with empty config should give appropriate error message
ios_lldp_interfaces:
config:
state: overridden
register: result
ignore_errors: True

- assert:
that:
- result.msg == 'value of config parameter must not be empty for state overridden'
Loading

0 comments on commit 35463d4

Please sign in to comment.