1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Eos :do not push config to device if check_mode is enabled (#37287)

* eos can not check config without config session support

* add testcase for check_mode without config session

* fix eos eapi to read use_session env var
This commit is contained in:
Deepak Agrawal 2018-03-13 17:13:23 +05:30 committed by GitHub
parent dc61f4c6b1
commit a1026dbce5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 48 additions and 3 deletions

View file

@ -231,7 +231,12 @@ class Cli:
pass pass
if not all((bool(use_session), self.supports_sessions)): if not all((bool(use_session), self.supports_sessions)):
if commit:
return self.configure(self, commands) return self.configure(self, commands)
else:
self._module.warn("EOS can not check config without config session")
result = {'changed': True}
return result
conn = self._get_connection() conn = self._get_connection()
session = 'ansible_%s' % int(time.time()) session = 'ansible_%s' % int(time.time())
@ -407,8 +412,19 @@ class Eapi:
fallback to using configure() to load the commands. If that happens, fallback to using configure() to load the commands. If that happens,
there will be no returned diff or session values there will be no returned diff or session values
""" """
if not self.supports_sessions: use_session = os.getenv('ANSIBLE_EOS_USE_SESSIONS', True)
try:
use_session = int(use_session)
except ValueError:
pass
if not all((bool(use_session), self.supports_sessions)):
if commit:
return self.configure(self, config) return self.configure(self, config)
else:
self._module.warn("EOS can not check config without config session")
result = {'changed': True}
return result
session = 'ansible_%s' % int(time.time()) session = 'ansible_%s' % int(time.time())
result = {'session': session} result = {'session': session}

View file

@ -37,4 +37,33 @@
that: that:
- "config.session not in result.stdout[0].sessions" - "config.session not in result.stdout[0].sessions"
- name: invalid configuration in check mode + no config session
eos_config:
lines:
- ip address 119.31.1.1 255.255.255.256
parents: interface Loopback911
check_mode: 1
environment:
ANSIBLE_EOS_USE_SESSIONS: 0
register: result
ignore_errors: yes
- assert:
that:
- "result.changed == true"
- name: valid configuration in check mode + no config session
eos_config:
lines:
- ip address 119.31.1.1 255.255.255.255
parents: interface Loopback911
check_mode: yes
register: result
environment:
ANSIBLE_EOS_USE_SESSIONS: 0
- assert:
that:
- "result.changed == true"
- debug: msg="END cli/check_mode.yaml on connection={{ ansible_connection }}" - debug: msg="END cli/check_mode.yaml on connection={{ ansible_connection }}"