Fix eos integration test failure (#33407)

Fixes #33406
Fixes #33405

*  Fix typo in network_cli for sendonly
*  Send `abort` to remote device in case configuration fails
*  Fix indentation issue in eos_static_route integration test

*  Revert network_cli change
This commit is contained in:
Ganesh Nalawade 2017-11-30 20:47:05 +05:30 committed by GitHub
parent d7ca068c3f
commit 35acae7ea7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 7 additions and 7 deletions

View file

@ -195,6 +195,7 @@ class Cli:
rc, out, err = self.send_config(commands)
if rc != 0:
self.exec_command('abort')
self._module.fail_json(msg=to_text(err, errors='surrogate_then_replace'))
self.exec_command('end')

View file

@ -108,7 +108,7 @@ class ActionModule(_ActionModule):
out = conn.get_prompt()
while '(config' in to_text(out, errors='surrogate_then_replace').strip():
display.vvvv('wrong context, sending exit to device', self._play_context.remote_addr)
conn.send_command('exit')
conn.send_command('abort')
out = conn.get_prompt()
result = super(ActionModule, self).run(tmp, task_vars)

View file

@ -114,7 +114,7 @@ class Connection(ConnectionBase):
try:
cmd = json.loads(to_text(cmd, errors='surrogate_or_strict'))
kwargs = {'command': to_bytes(cmd['command'], errors='surrogate_or_strict')}
for key in ('prompt', 'answer', 'send_only'):
for key in ('prompt', 'answer', 'sendonly'):
if cmd.get(key) is not None:
kwargs[key] = to_bytes(cmd[key], errors='surrogate_or_strict')
return self.send(**kwargs)
@ -270,7 +270,6 @@ class Connection(ConnectionBase):
recv.seek(offset)
window = self._strip(recv.read())
if prompts and not handled:
handled = self._handle_prompt(window, prompts, answer)
@ -279,14 +278,14 @@ class Connection(ConnectionBase):
resp = self._strip(self._last_response)
return self._sanitize(resp, command)
def send(self, command, prompt=None, answer=None, send_only=False):
def send(self, command, prompt=None, answer=None, sendonly=False):
'''
Sends the command to the device in the opened shell
'''
try:
self._history.append(command)
self._ssh_shell.sendall(b'%s\r' % command)
if send_only:
if sendonly:
return
response = self.receive(command, prompt, answer)
return to_text(response, errors='surrogate_or_strict')

View file

@ -60,8 +60,8 @@
aggregate:
- { address: 192.168.4.0/24, next_hop: 192.168.0.1 }
- { address: 192.168.5.0/24, next_hop: 192.168.0.1 }
authorize: yes
provider: "{{ cli }}"
authorize: yes
provider: "{{ cli }}"
register: result
- assert: