ios_file: Don't leave leftover files behind (#42622)
* Don't leave leftover files behind * Fix writing files in python3 * Replace nonascii.bin with one that will not pass for unicode
This commit is contained in:
parent
6a94090e7f
commit
6b162142a7
4 changed files with 28 additions and 22 deletions
|
@ -83,9 +83,13 @@ class ActionModule(ActionBase):
|
|||
src = self._task.args.get('src')
|
||||
filename = str(uuid.uuid4())
|
||||
cwd = self._loader.get_basedir()
|
||||
output_file = cwd + '/' + filename
|
||||
with open(output_file, 'w') as f:
|
||||
f.write(src)
|
||||
output_file = os.path.join(cwd, filename)
|
||||
try:
|
||||
with open(output_file, 'wb') as f:
|
||||
f.write(to_bytes(src, encoding='utf-8'))
|
||||
except Exception:
|
||||
os.remove(output_file)
|
||||
raise
|
||||
else:
|
||||
try:
|
||||
output_file = self._get_binary_src_file(src)
|
||||
|
|
Binary file not shown.
|
@ -19,14 +19,14 @@
|
|||
|
||||
- name: setup (remove file from localhost if present)
|
||||
file:
|
||||
path: ios_{{ ansible_host }}.cfg
|
||||
path: ios_{{ inventory_hostname }}.cfg
|
||||
state: absent
|
||||
delegate_to: localhost
|
||||
|
||||
- name: get the file from device with relative destination
|
||||
net_get:
|
||||
src: ios1.cfg
|
||||
dest: 'ios_{{ ansible_host }}.cfg'
|
||||
dest: 'ios_{{ inventory_hostname }}.cfg'
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -36,11 +36,17 @@
|
|||
- name: Idempotency check
|
||||
net_get:
|
||||
src: ios1.cfg
|
||||
dest: 'ios_{{ ansible_host }}.cfg'
|
||||
dest: 'ios_{{ inventory_hostname }}.cfg'
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- result.changed == false
|
||||
|
||||
- name: setup (remove file from localhost if present)
|
||||
file:
|
||||
path: ios_{{ inventory_hostname }}.cfg
|
||||
state: absent
|
||||
delegate_to: localhost
|
||||
|
||||
- debug: msg="END ios cli/net_get.yaml on connection={{ ansible_connection }}"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
- debug: msg="START ios cli/net_put.yaml on connection={{ ansible_connection }}"
|
||||
- debug:
|
||||
msg: "START ios cli/net_put.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
# Add minimal testcase to check args are passed correctly to
|
||||
# implementation module and module run is successful.
|
||||
|
@ -12,22 +13,13 @@
|
|||
- username {{ ansible_ssh_user }} privilege 15
|
||||
match: none
|
||||
|
||||
- name: Delete existing file ios1.cfg if presen on remote host
|
||||
- name: Delete existing files if present on remote host
|
||||
ios_command:
|
||||
commands:
|
||||
- command: 'delete /force ios1.cfg'
|
||||
ignore_errors: true
|
||||
|
||||
- name: Delete existing file ios.cfg if presen on remote host
|
||||
ios_command:
|
||||
commands:
|
||||
- command: 'delete /force ios.cfg'
|
||||
ignore_errors: true
|
||||
|
||||
- name: Delete existing file nonascii.bin if presen on remote host
|
||||
ios_command:
|
||||
commands:
|
||||
- command: 'delete /force nonascii.bin'
|
||||
commands: "{{ item }}"
|
||||
loop:
|
||||
- delete /force ios1.cfg
|
||||
- delete /force ios.cfg
|
||||
- delete /force nonascii.bin
|
||||
ignore_errors: true
|
||||
|
||||
- name: copy file from controller to ios + scp (Default)
|
||||
|
@ -65,6 +57,10 @@
|
|||
register: result
|
||||
ignore_errors: true
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- result.failed == true
|
||||
|
||||
- name: copy file with non-ascii characters to ios in default mode(binary)
|
||||
net_put:
|
||||
src: nonascii.bin
|
||||
|
|
Loading…
Reference in a new issue