Fix ios_config file prompt issue (#32744)

Fixes #23263

Add a carriage return (\r) at end on copy config
command which results in prompt on cli terminal
This commit is contained in:
Ganesh Nalawade 2017-11-09 22:43:49 +05:30 committed by GitHub
parent 316e7939d6
commit 37b0537279
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 4 deletions

View file

@ -483,7 +483,7 @@ def main():
if running_config.sha1 != startup_config.sha1 or module.params['save_when'] == 'always': if running_config.sha1 != startup_config.sha1 or module.params['save_when'] == 'always':
result['changed'] = True result['changed'] = True
if not module.check_mode: if not module.check_mode:
run_commands(module, 'copy running-config startup-config') run_commands(module, 'copy running-config startup-config\r')
else: else:
module.warn('Skipping command `copy running-config startup-config` ' module.warn('Skipping command `copy running-config startup-config` '
'due to check_mode. Configuration not copied to ' 'due to check_mode. Configuration not copied to '

View file

@ -34,10 +34,33 @@
# FIXME https://github.com/ansible/ansible-modules-core/issues/5008 # FIXME https://github.com/ansible/ansible-modules-core/issues/5008
ignore_errors: true ignore_errors: true
- name: delete config (setup)
ios_config:
replace: line
lines:
- "ip http server"
save_when: modified
authorize: yes
register: result
- name: save should always run
ios_config:
replace: line
lines:
- "ip http server"
save_when: modified
authorize: yes
register: result
- assert: - assert:
that: that:
- "result.changed == true" - "result.changed == true"
# FIXME https://github.com/ansible/ansible-modules-core/issues/5008
ignore_errors: true - name: teardown
ios_config:
lines:
- "no ip http server"
authorize: yes
register: result
- debug: msg="END cli/save.yaml" - debug: msg="END cli/save.yaml"

View file

@ -76,7 +76,7 @@ class TestIosConfigModule(TestIosModule):
self.assertEqual(self.get_config.call_count, 0) self.assertEqual(self.get_config.call_count, 0)
self.assertEqual(self.load_config.call_count, 0) self.assertEqual(self.load_config.call_count, 0)
args = self.run_commands.call_args[0][1] args = self.run_commands.call_args[0][1]
self.assertIn('copy running-config startup-config', args) self.assertIn('copy running-config startup-config\r', args)
def test_ios_config_lines_wo_parents(self): def test_ios_config_lines_wo_parents(self):
set_module_args(dict(lines=['hostname foo'])) set_module_args(dict(lines=['hostname foo']))