Question:
When I try to run some commands on nxos devices, the output has a white space at the end. I have to compare the output to an existing variable list. The whitespace at the end is causing the comparison to go false. How to make use of .strip() function in a list of strings?
1 2 3 4 5 6 7 8 9 |
- name: Current TACACS server host before nxos_command: commands: - sh run | include 'tacacs-server host' register: runconfserafter - debug: var: runconfserafter |
The output of this comes up like this:
1 2 3 4 5 6 7 |
"stdout_lines": [ [ "tacacs-server host 1.1.1.1 key 7 \"HelloWorld\" ", "tacacs-server host 2.2.2.2 key 7 \"HelloWorld\"" ], ] |
When I compare this line with my desired variables, I can’t get it matched because of the white space on the first line at the end.
Answer:
To apply a function to list elements use map
filter. To strip whitespace use trim
filter.
1 2 |
"{{ runconfserafter.stdout_lines | map('trim') | list }}" |