summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Carrillo Cruz <ricardo.carrillo.cruz@gmail.com>2017-04-06 19:18:28 +0200
committerRicardo Carrillo Cruz <ricardo.carrillo.cruz@gmail.com>2017-04-06 19:19:22 +0200
commit4f56567963428bb3c4b9f3f9f5b5a6c8c50f52bc (patch)
tree5e514d5500eec7b0b1e2f605ba76698485013e06
parent292ee292759b5ec132bffea7f1163cd8d0d0dac3 (diff)
downloadansible-4f56567963428bb3c4b9f3f9f5b5a6c8c50f52bc.tar.gz
Unhardcode the port and protocol on eos EAPI (#23350)
We were hard-coding the protocol, port and validate_certs on eos EAPI via the action plugin. Put defaults on the eos_argument_spec and pull those values from it. (cherry picked from commit 3537b247429a94c838eefc2f5cc3ba3448d61913)
-rw-r--r--lib/ansible/module_utils/eos.py19
-rw-r--r--lib/ansible/plugins/action/eos.py6
2 files changed, 11 insertions, 14 deletions
diff --git a/lib/ansible/module_utils/eos.py b/lib/ansible/module_utils/eos.py
index c2a0ac43ed..be361bc802 100644
--- a/lib/ansible/module_utils/eos.py
+++ b/lib/ansible/module_utils/eos.py
@@ -40,8 +40,7 @@ _DEVICE_CONNECTION = None
eos_argument_spec = {
'host': dict(),
- 'port': dict(type='int'),
-
+ 'port': dict(type='int', default=443),
'username': dict(fallback=(env_fallback, ['ANSIBLE_NET_USERNAME'])),
'password': dict(fallback=(env_fallback, ['ANSIBLE_NET_PASSWORD']), no_log=True),
'ssh_keyfile': dict(fallback=(env_fallback, ['ANSIBLE_NET_SSH_KEYFILE']), type='path'),
@@ -50,8 +49,8 @@ eos_argument_spec = {
'authorize': dict(fallback=(env_fallback, ['ANSIBLE_NET_AUTHORIZE']), type='bool'),
'auth_pass': dict(no_log=True, fallback=(env_fallback, ['ANSIBLE_NET_AUTH_PASS'])),
- 'use_ssl': dict(type='bool'),
- 'validate_certs': dict(type='bool'),
+ 'use_ssl': dict(type='bool', default=True),
+ 'validate_certs': dict(type='bool', default=True),
'timeout': dict(type='int'),
'provider': dict(type='dict', no_log=True),
@@ -236,20 +235,18 @@ class Eapi:
self._session_support = None
self._device_configs = {}
- host = module.params['host']
- port = module.params['port']
+ host = module.params['provider']['host']
+ port = module.params['provider']['port']
self._module.params['url_username'] = self._module.params['username']
self._module.params['url_password'] = self._module.params['password']
- if module.params['use_ssl']:
+ if module.params['provider']['use_ssl']:
proto = 'https'
- if not port:
- port = 443
else:
proto = 'http'
- if not port:
- port = 80
+
+ module.params['validate_certs'] = module.params['provider']['validate_certs']
self._url = '%s://%s:%s/command-api' % (proto, host, port)
diff --git a/lib/ansible/plugins/action/eos.py b/lib/ansible/plugins/action/eos.py
index 2ada66bdf7..eea3ad1b3a 100644
--- a/lib/ansible/plugins/action/eos.py
+++ b/lib/ansible/plugins/action/eos.py
@@ -94,7 +94,7 @@ class ActionModule(_ActionModule):
provider['host'] = self._play_context.remote_addr
if provider.get('port') is None:
- provider['port'] = 443
+ provider['port'] = eos_argument_spec['port']['default']
if provider.get('timeout') is None:
provider['timeout'] = self._play_context.timeout
@@ -109,10 +109,10 @@ class ActionModule(_ActionModule):
provider['authorize'] = False
if provider.get('use_ssl') is None:
- provider['use_ssl'] = True
+ provider['use_ssl'] = eos_argument_spec['use_ssl']['default']
if provider.get('validate_certs') is None:
- provider['validate_certs'] = True
+ provider['validate_certs'] = eos_argument_spec['validate_certs']['default']
self._task.args['provider'] = provider