fixes minor bugs in eos_eapi module (#21925)

* module will now check protocol running state before return
* warns on config argument no longer being needed
* lots of integration test cases updated
* updates unit and integration test cases for state check

fixes #21908
This commit is contained in:
Peter Sprygada 2017-02-25 17:18:46 -05:00 committed by GitHub
commit 16a39639f5
6 changed files with 95 additions and 15 deletions

View file

@ -21,13 +21,13 @@
- name: Expect endpoint ports to be set
assert:
that:
- http_config.stdout[0].httpServer.port == 81
- http_config.stdout[0].httpServer.port == 80
- http_config.stdout[0].httpsServer.port == 4443
- http_config.stdout[0].localHttpServer.port == 8181
- name: Change endpoint ports again
eos_eapi:
http_port: 81
http_port: 80
https_port: 4443
enable_local_http: yes
local_http_port: 8181

View file

@ -15,7 +15,7 @@
that:
- "eos_eapi_output.failed == true"
- "eos_eapi_output.changed == false"
- eos_eapi_output.msg == "vrf 'foobar' is not configured"
- eos_eapi_output.msg == "vrf `foobar` is not configured on the system"
#----
- name: Set VRF to default

View file

@ -1,8 +1,9 @@
- debug: msg="START CLI/RESET.YAML"
- name: Change endpoint ports back to default values
eos_eapi:
enable_local_http: yes
eos_config:
lines: default management api http-commands
match: none
provider: "{{ cli }}"
register: eos_eapi_output
connection: local
@ -22,8 +23,9 @@
- http_config.stdout[0].localHttpServer.port == 8080
- name: Change endpoint ports back to default values again
eos_eapi:
enable_local_http: yes
eos_config:
lines: default management api http-commands
match: none
provider: "{{ cli }}"
register: eos_eapi_output
connection: local

View file

@ -39,12 +39,22 @@ class TestEosEapiModule(TestEosModule):
self.mock_load_config = patch('ansible.modules.network.eos.eos_eapi.load_config')
self.load_config = self.mock_load_config.start()
self.mock_verify_state = patch('ansible.modules.network.eos.eos_eapi.verify_state')
self.verify_state = self.mock_verify_state.start()
self.command_fixtures = {}
def tearDown(self):
self.mock_run_commands.stop()
self.mock_load_config.stop()
# hack for older version of mock
# should be using patch.stopall() but CI is still failing
try:
self.mock_verify_state.stop()
except RuntimeError:
pass
def load_fixtures(self, commands=None):
def run_commands(module, commands, **kwargs):
output = list()
@ -137,3 +147,14 @@ class TestEosEapiModule(TestEosModule):
commands = ['management api http-commands', 'shutdown']
self.start_configured(changed=True, commands=commands)
def test_eos_eapi_state_failed(self):
self.mock_verify_state.stop()
set_module_args(dict(state='stopped', timeout=1))
result = self.start_configured(failed=True)
'timeout expired before eapi running state changed' in result['msg']
def test_eos_eapi_state_failed(self):
self.mock_verify_state.stop()
set_module_args(dict(state='stopped', timeout=1))
result = self.start_configured(failed=True)
'timeout expired before eapi running state changed' in result['msg']