Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

aireos modules unable to handle binary data from controller #60237

Closed
individuwill opened this issue Aug 7, 2019 · 7 comments
Closed

aireos modules unable to handle binary data from controller #60237

individuwill opened this issue Aug 7, 2019 · 7 comments
Labels
affects_2.9 This issue/PR affects Ansible v2.9 aireos Cisco AireOS community bug This issue/PR relates to a bug. cisco Cisco technologies collection:community.network collection Related to Ansible Collections work has_pr This issue has an associated PR. module This issue/PR relates to a module. needs_collection_redirect https://github.com/ansible/ansibullbot/blob/master/docs/collection_migration.md needs_maintainer Ansibot is unable to identify maintainers for this PR. (Check `author` in docs or BOTMETA.yml) networking Network category support:community This issue/PR relates to code supported by the Ansible community. traceback This issue/PR includes a traceback.

Comments

@individuwill
Copy link
Contributor

SUMMARY

Cisco WLC release 8.8.120.0 returns non-ascii values with a show run-config commands command causing tasks and modules using this command to fail.

The binary data appears to happen in the same spot in the output from the controller and looks like this in the prompt:

 wlan flexconnect learn-ipaddr 97 enable
 wlan flexconnect learn-ipaddr 101 enable
`Ȓ�R�`Ȓ�R�`Ȓ�R�`Ȓ�R�`Ȓ�R�`Ȓ�R�`Ȓ�R�
 wlan wgb broadcast-tagging disable 1 
 wlan wgb broadcast-tagging disable 2 `

There are a number of bytes that represent the binary data, one sample is: \xc8\x92\xef\xbf\xbdR\x7f

ISSUE TYPE
  • Bug Report
COMPONENT NAME

aireos_command
aireos_config

ANSIBLE VERSION
ansible 2.9.0.dev0
  config file = /Users/wsmith/temp/network_backup/ansible.cfg
  configured module search path = [u'/Users/wsmith/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/wsmith/temp/ansible/lib/ansible
  executable location = /Users/wsmith/temp/ansible/bin/ansible
  python version = 2.7.10 (default, Feb 22 2019, 21:55:15) [GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)]
CONFIGURATION
DEFAULT_DEBUG(env: ANSIBLE_DEBUG) = True
DEFAULT_FORKS(/Users/wsmith/temp/network_backup/ansible.cfg) = 20
DEFAULT_GATHERING(/Users/wsmith/temp/network_backup/ansible.cfg) = explicit
DEFAULT_HOST_LIST(/Users/wsmith/temp/network_backup/ansible.cfg) = [u'/Users/wsmith/temp/network_backup/inventory.ini']
DEFAULT_INVENTORY_PLUGIN_PATH(/Users/wsmith/temp/network_backup/ansible.cfg) = [u'/Users/wsmith/temp/network_backup/inventory_plugins']
DEFAULT_KEEP_REMOTE_FILES(env: ANSIBLE_KEEP_REMOTE_FILES) = False
DEFAULT_LOG_PATH(/Users/wsmith/temp/network_backup/ansible.cfg) = /Users/wsmith/temp/network_backup/ansible.log
DEFAULT_ROLES_PATH(/Users/wsmith/temp/network_backup/ansible.cfg) = [u'/Users/wsmith/temp/network_backup/roles']
DEFAULT_VAULT_PASSWORD_FILE(/Users/wsmith/temp/network_backup/ansible.cfg) = /Users/wsmith/temp/network_backup/vault_password.txt
HOST_KEY_CHECKING(/Users/wsmith/temp/network_backup/ansible.cfg) = False
INTERPRETER_PYTHON(/Users/wsmith/temp/network_backup/ansible.cfg) = /Users/wsmith/temp/ansible/venv/bin/python
INVENTORY_ENABLED(/Users/wsmith/temp/network_backup/ansible.cfg) = [u'ini']
OS / ENVIRONMENT

Cisco WLC running AireOS with code version 8.8.120.0

STEPS TO REPRODUCE

Run ansible-playbook against playbook with task that will execute the show run-config commands command.

- hosts: WLCs
  vars:
    ansible_connection: local
    ansible_network_os: aireos
    ansible_user: "user"
    ansible_password: "password"

  tasks:
    - name: Get current running configuration
      aireos_command:
        commands:
          - show run-config commands
        provider:
          timeout: 90
      register: output
EXPECTED RESULTS

A successful task execution and the running configuration retrieved from the WLC.

ACTUAL RESULTS

An AnsibleConnectionFailure exception is raised.

2019-08-07 13:59:25,451 p=wsmith u=16872 | ansible-playbook 2.9.0.dev0
  config file = /Users/wsmith/temp/network_backup/ansible.cfg
  configured module search path = [u'/Users/wsmith/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/wsmith/temp/ansible/lib/ansible
  executable location = /Users/wsmith/temp/ansible/bin/ansible-playbook
  python version = 2.7.10 (default, Feb 22 2019, 21:55:15) [GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)]
2019-08-07 13:59:25,451 p=wsmith u=16872 | Using /Users/wsmith/temp/network_backup/ansible.cfg as config file
2019-08-07 13:59:25,452 p=wsmith u=16872 | setting up inventory plugins
2019-08-07 13:59:25,463 p=wsmith u=16872 | Parsed /Users/wsmith/temp/network_backup/inventory.ini inventory source with ini plugin
2019-08-07 13:59:25,832 p=wsmith u=16872 | Loading callback plugin default of type stdout, v2.0 from /Users/wsmith/temp/ansible/lib/ansible/plugins/callback/default.pyc
2019-08-07 13:59:25,875 p=wsmith u=16872 | PLAYBOOK: pb.yml *****************************************************************************************************************************************************************************
2019-08-07 13:59:25,875 p=wsmith u=16872 | 1 plays in pb.yml
2019-08-07 13:59:25,879 p=wsmith u=16872 | PLAY [WLCs] *****************************************************************************************************************************************************************************
2019-08-07 13:59:25,888 p=wsmith u=16872 | META: ran handlers
2019-08-07 13:59:25,894 p=wsmith u=16872 | TASK [Get current running configuration] ****************************************************************************************************************************************************************

2019-08-07 13:59:25,992 p=wsmith u=16880 | Trying secret FileVaultSecret(filename='/Users/wsmith/temp/network_backup/vault_password.txt') for vault_id=default
2019-08-07 13:59:26,012 p=wsmith u=16880 | Trying secret FileVaultSecret(filename='/Users/wsmith/temp/network_backup/vault_password.txt') for vault_id=default
2019-08-07 13:59:26,033 p=wsmith u=16880 | <1.1.1.1> using connection plugin network_cli (was local)
2019-08-07 13:59:26,034 p=wsmith u=16880 | <1.1.1.1> starting connection from persistent connection plugin
2019-08-07 13:59:26,404 p=wsmith u=16886 | <1.1.1.1> ESTABLISH PARAMIKO SSH CONNECTION FOR USER: username on PORT 22 TO 1.1.1.1
2019-08-07 13:59:28,447 p=wsmith u=16880 | <1.1.1.1> local domain socket does not exist, starting it
2019-08-07 13:59:28,449 p=wsmith u=16880 | <1.1.1.1> control socket path is /Users/wsmith/.ansible/pc/0d509e7b95
2019-08-07 13:59:28,450 p=wsmith u=16880 | <1.1.1.1> <1.1.1.1> ESTABLISH PARAMIKO SSH CONNECTION FOR USER: username on PORT 22 TO 1.1.1.1
2019-08-07 13:59:28,451 p=wsmith u=16880 | <1.1.1.1> connection to remote device started successfully
2019-08-07 13:59:28,452 p=wsmith u=16880 | <1.1.1.1> local domain socket listeners started successfully
2019-08-07 13:59:28,452 p=wsmith u=16880 | <1.1.1.1> loaded cliconf plugin for network_os aireos
2019-08-07 13:59:28,453 p=wsmith u=16880 | network_os is set to aireos
2019-08-07 13:59:28,453 p=wsmith u=16880 | <1.1.1.1> ssh connection done, setting terminal
2019-08-07 13:59:28,454 p=wsmith u=16880 | <1.1.1.1> loaded terminal plugin for network_os aireos
2019-08-07 13:59:28,454 p=wsmith u=16880 | <1.1.1.1> Response received, triggered 'persistent_buffer_read_timeout' timer of 0.1 seconds
2019-08-07 13:59:28,455 p=wsmith u=16880 | <1.1.1.1> firing event: on_open_shell()
2019-08-07 13:59:28,455 p=wsmith u=16880 | <1.1.1.1> Response received, triggered 'persistent_buffer_read_timeout' timer of 0.1 seconds
2019-08-07 13:59:28,456 p=wsmith u=16880 | <1.1.1.1> ssh connection has completed successfully
2019-08-07 13:59:28,456 p=wsmith u=16880 | <1.1.1.1> 
2019-08-07 13:59:28,457 p=wsmith u=16880 | <1.1.1.1> local domain socket path is /Users/wsmith/.ansible/pc/0d509e7b95
2019-08-07 13:59:28,457 p=wsmith u=16880 | <1.1.1.1> socket_path: /Users/wsmith/.ansible/pc/0d509e7b95
2019-08-07 13:59:28,460 p=wsmith u=16880 | <1.1.1.1> ESTABLISH LOCAL CONNECTION FOR USER: wsmith
2019-08-07 13:59:28,461 p=wsmith u=16880 | <1.1.1.1> EXEC /bin/sh -c 'echo ~wsmith && sleep 0'
2019-08-07 13:59:28,477 p=wsmith u=16880 | <1.1.1.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /Users/wsmith/.ansible/tmp/ansible-tmp-1565211568.46-135266596630451 `" && echo ansible-tmp-1565211568.46-135266596630451="` echo /Users/wsmith/.ansible/tmp/ansible-tmp-1565211568.46-135266596630451 `" ) && sleep 0'
2019-08-07 13:59:28,670 p=wsmith u=16880 | Using module file /Users/wsmith/temp/ansible/lib/ansible/modules/network/aireos/aireos_command.py
2019-08-07 13:59:28,672 p=wsmith u=16880 | <1.1.1.1> PUT /Users/wsmith/.ansible/tmp/ansible-local-16872CPCpFb/tmpaJTRIR TO /Users/wsmith/.ansible/tmp/ansible-tmp-1565211568.46-135266596630451/AnsiballZ_aireos_command.py
2019-08-07 13:59:28,674 p=wsmith u=16880 | <1.1.1.1> EXEC /bin/sh -c 'chmod u+x /Users/wsmith/.ansible/tmp/ansible-tmp-1565211568.46-135266596630451/ /Users/wsmith/.ansible/tmp/ansible-tmp-1565211568.46-135266596630451/AnsiballZ_aireos_command.py && sleep 0'
2019-08-07 13:59:28,693 p=wsmith u=16880 | <1.1.1.1> EXEC /bin/sh -c '/Users/wsmith/temp/ansible/venv/bin/python /Users/wsmith/.ansible/tmp/ansible-tmp-1565211568.46-135266596630451/AnsiballZ_aireos_command.py && sleep 0'
2019-08-07 14:00:08,812 p=wsmith u=16886 | Traceback (most recent call last):
  File "/Users/wsmith/temp/ansible/lib/ansible/utils/jsonrpc.py", line 45, in handle_request
    result = rpc_method(*args, **kwargs)
  File "/Users/wsmith/temp/ansible/lib/ansible/plugins/connection/network_cli.py", line 287, in exec_command
    return self.send(command=cmd)
  File "/Users/wsmith/temp/ansible/lib/ansible/plugins/connection/network_cli.py", line 473, in send
    response = self.receive(command, prompt, answer, newline, prompt_retry_check, check_all)
  File "/Users/wsmith/temp/ansible/lib/ansible/plugins/connection/network_cli.py", line 444, in receive
    if self._find_prompt(window):
  File "/Users/wsmith/temp/ansible/lib/ansible/plugins/connection/network_cli.py", line 590, in _find_prompt
    raise AnsibleConnectionFailure(errored_response)
AnsibleConnectionFailure: {u'answer': None, u'prompt': None, u'command': u'show run-config commands'}

Incorrect usage.  Use the '?' or <TAB> key to list commands.

(WLC01) >

2019-08-07 14:00:08,827 p=wsmith u=16880 | <1.1.1.1> EXEC /bin/sh -c 'rm -f -r /Users/wsmith/.ansible/tmp/ansible-tmp-1565211568.46-135266596630451/ > /dev/null 2>&1 && sleep 0'
2019-08-07 14:00:08,854 p=wsmith u=16872 | fatal: [WLC01]: FAILED! => {
    "changed": false, 
    "invocation": {
        "module_args": {
            "commands": [
                "show run-config commands"
            ], 
            "host": null, 
            "interval": 1, 
            "match": "all", 
            "password": null, 
            "port": null, 
            "provider": {
                "host": null, 
                "password": null, 
                "port": null, 
                "ssh_keyfile": null, 
                "timeout": 90, 
                "username": null
            }, 
            "retries": 10, 
            "ssh_keyfile": null, 
            "timeout": null, 
            "username": null, 
            "wait_for": null
        }
    }, 
    "msg": "{u'answer': None, u'prompt': None, u'command': u'show run-config commands'}\r\n\r\nIncorrect usage.  Use the '?' or <TAB> key to list commands.\r\n\r\n(WLC01) >", 
    "rc": -32603
}
2019-08-07 14:00:08,926 p=wsmith u=16872 | PLAY RECAP **********************************************************************************************************************************************************************************************
2019-08-07 14:00:08,927 p=wsmith u=16872 | WLC01                 : ok=0    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   
2019-08-07 14:00:09,025 p=wsmith u=16886 | shutdown complete

@ansibot
Copy link
Contributor

ansibot commented Aug 7, 2019

Files identified in the description:

If these files are inaccurate, please update the component name section of the description or use the !component bot command.

click here for bot help

@ansibot
Copy link
Contributor

ansibot commented Aug 7, 2019

@ansibot
Copy link
Contributor

ansibot commented Aug 7, 2019

@individuwill, just so you are aware we have a dedicated Working Group for network.
You can find other people interested in this in #ansible-network on Freenode IRC
For more information about communities, meetings and agendas see https://github.com/ansible/community

click here for bot help

@ansibot ansibot added affects_2.9 This issue/PR affects Ansible v2.9 aireos Cisco AireOS community bug This issue/PR relates to a bug. cisco Cisco technologies module This issue/PR relates to a module. needs_triage Needs a first human triage before being processed. networking Network category support:community This issue/PR relates to code supported by the Ansible community. traceback This issue/PR includes a traceback. labels Aug 7, 2019
@individuwill
Copy link
Contributor Author

The non-ascii values returned from the controller cause a UnicodeError exception on line 467 in file lib/ansible/plugins/connection/network_cli.pywhen to_text fails to convert the binary data to a string. This then causes the command to be re-sent on line 284 of lib/ansible/plugins/connection/network_cli.py as UnicodeError is a subclass of ValueError.

The command that's resent is actually a string version of the dictionary that represents the command. I'm guessing the exception handling is there to handle the case where the command sent is was just a string and not a dictionary.

When the command is re-sent it triggers a raising of AnsibleConnectionFailure in the function _find_prompt because the text returned from the controller matches the terminal_stdout_re in lib/ansible/plugins/terminal/aireos.py because the controller didn't recognize the command sent (rightfully so).

After that's fixed, there's another problem in the lib/ansible/modules/network/aireos/aireos_command.py file on line 129 in the to_lines function where str is called on the returned output. The type of the item is unicode on my system with Python 2.7, and since the unicode string contains non-ascii characters, a UnicodeDecodeError exception is raised.

@individuwill
Copy link
Contributor Author

Here's the traceback / logs resulting from a UnicodeEncodeError exception related to the to_lines function in aireos_command.py

2019-08-07 16:04:28,416 p=wsmith u=39979 | ansible-playbook 2.9.0.dev0
  config file = /Users/wsmith/temp/network_backup/ansible.cfg
  configured module search path = [u'/Users/wsmith/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/wsmith/temp/ansible/lib/ansible
  executable location = /Users/wsmith/temp/ansible/bin/ansible-playbook
  python version = 2.7.10 (default, Feb 22 2019, 21:55:15) [GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)]
2019-08-07 16:04:28,416 p=wsmith u=39979 | Using /Users/wsmith/temp/network_backup/ansible.cfg as config file
2019-08-07 16:04:28,418 p=wsmith u=39979 | setting up inventory plugins

2019-08-07 16:04:28,431 p=wsmith u=39979 | Parsed /Users/wsmith/temp/network_backup/inventory.ini inventory source with ini plugin
2019-08-07 16:04:29,049 p=wsmith u=39979 | Loading callback plugin default of type stdout, v2.0 from /Users/wsmith/temp/ansible/lib/ansible/plugins/callback/default.pyc
2019-08-07 16:04:29,135 p=wsmith u=39979 | PLAYBOOK: pb.yml *****************************************************************************************************************************************************************************
2019-08-07 16:04:29,137 p=wsmith u=39979 | 1 plays in pb.yml
2019-08-07 16:04:29,140 p=wsmith u=39979 | PLAY [WLCs] *****************************************************************************************************************************************************************************
2019-08-07 16:04:29,159 p=wsmith u=39979 | META: ran handlers
2019-08-07 16:04:29,167 p=wsmith u=39979 | TASK [Get current running configuration] ****************************************************************************************************************************************************************
2019-08-07 16:04:29,182 p=wsmith u=39985 |  [WARNING]: Skipping plugin (/Users/wsmith/temp/network_backup/filter_plugins/common.py) as it seems to be invalid: invalid syntax (common.py, line 3)

2019-08-07 16:04:29,286 p=wsmith u=39985 | Trying secret FileVaultSecret(filename='/Users/wsmith/temp/network_backup/vault_password.txt') for vault_id=default
2019-08-07 16:04:29,307 p=wsmith u=39985 | Trying secret FileVaultSecret(filename='/Users/wsmith/temp/network_backup/vault_password.txt') for vault_id=default
2019-08-07 16:04:29,331 p=wsmith u=39985 | <1.1.1.1> using connection plugin network_cli (was local)
2019-08-07 16:04:29,332 p=wsmith u=39985 | <1.1.1.1> starting connection from persistent connection plugin
2019-08-07 16:04:29,767 p=wsmith u=39991 | <1.1.1.1> ESTABLISH PARAMIKO SSH CONNECTION FOR USER: username on PORT 22 TO 1.1.1.1
2019-08-07 16:04:31,745 p=wsmith u=39985 | <1.1.1.1> local domain socket does not exist, starting it
2019-08-07 16:04:31,746 p=wsmith u=39985 | <1.1.1.1> control socket path is /Users/wsmith/.ansible/pc/953ef3ff86
2019-08-07 16:04:31,748 p=wsmith u=39985 | <1.1.1.1> <1.1.1.1> ESTABLISH PARAMIKO SSH CONNECTION FOR USER: username on PORT 22 TO 1.1.1.1
2019-08-07 16:04:31,748 p=wsmith u=39985 | <1.1.1.1> connection to remote device started successfully
2019-08-07 16:04:31,749 p=wsmith u=39985 | <1.1.1.1> local domain socket listeners started successfully
2019-08-07 16:04:31,750 p=wsmith u=39985 | <1.1.1.1> loaded cliconf plugin for network_os aireos
2019-08-07 16:04:31,750 p=wsmith u=39985 | network_os is set to aireos
2019-08-07 16:04:31,751 p=wsmith u=39985 | <1.1.1.1> ssh connection done, setting terminal
2019-08-07 16:04:31,751 p=wsmith u=39985 | <1.1.1.1> loaded terminal plugin for network_os aireos
2019-08-07 16:04:31,752 p=wsmith u=39985 | <1.1.1.1> Response received, triggered 'persistent_buffer_read_timeout' timer of 0.1 seconds
2019-08-07 16:04:31,752 p=wsmith u=39985 | <1.1.1.1> firing event: on_open_shell()
2019-08-07 16:04:31,752 p=wsmith u=39985 | <1.1.1.1> Response received, triggered 'persistent_buffer_read_timeout' timer of 0.1 seconds
2019-08-07 16:04:31,753 p=wsmith u=39985 | <1.1.1.1> ssh connection has completed successfully
2019-08-07 16:04:31,754 p=wsmith u=39985 | <1.1.1.1> 
2019-08-07 16:04:31,754 p=wsmith u=39985 | <1.1.1.1> local domain socket path is /Users/wsmith/.ansible/pc/953ef3ff86
2019-08-07 16:04:31,755 p=wsmith u=39985 | <1.1.1.1> socket_path: /Users/wsmith/.ansible/pc/953ef3ff86
2019-08-07 16:04:31,756 p=wsmith u=39985 | <1.1.1.1> ESTABLISH LOCAL CONNECTION FOR USER: wsmith
2019-08-07 16:04:31,757 p=wsmith u=39985 | <1.1.1.1> EXEC /bin/sh -c 'echo ~wsmith && sleep 0'
2019-08-07 16:04:31,775 p=wsmith u=39985 | <1.1.1.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /Users/wsmith/.ansible/tmp/ansible-tmp-1565219071.76-150701478721953 `" && echo ansible-tmp-1565219071.76-150701478721953="` echo /Users/wsmith/.ansible/tmp/ansible-tmp-1565219071.76-150701478721953 `" ) && sleep 0'
2019-08-07 16:04:31,970 p=wsmith u=39985 | Using module file /Users/wsmith/temp/ansible/lib/ansible/modules/network/aireos/aireos_command.py
2019-08-07 16:04:31,972 p=wsmith u=39985 | <1.1.1.1> PUT /Users/wsmith/.ansible/tmp/ansible-local-39979aXXYMI/tmpHyvbtJ TO /Users/wsmith/.ansible/tmp/ansible-tmp-1565219071.76-150701478721953/AnsiballZ_aireos_command.py
2019-08-07 16:04:31,974 p=wsmith u=39985 | <1.1.1.1> EXEC /bin/sh -c 'chmod u+x /Users/wsmith/.ansible/tmp/ansible-tmp-1565219071.76-150701478721953/ /Users/wsmith/.ansible/tmp/ansible-tmp-1565219071.76-150701478721953/AnsiballZ_aireos_command.py && sleep 0'
2019-08-07 16:04:31,993 p=wsmith u=39985 | <1.1.1.1> EXEC /bin/sh -c '/Users/wsmith/temp/ansible/venv/bin/python /Users/wsmith/.ansible/tmp/ansible-tmp-1565219071.76-150701478721953/AnsiballZ_aireos_command.py && sleep 0'
2019-08-07 16:04:46,617 p=wsmith u=39985 | <1.1.1.1> EXEC /bin/sh -c 'rm -f -r /Users/wsmith/.ansible/tmp/ansible-tmp-1565219071.76-150701478721953/ > /dev/null 2>&1 && sleep 0'
2019-08-07 16:04:46,643 p=wsmith u=39979 | The full traceback is:
Traceback (most recent call last):
  File "/Users/wsmith/.ansible/tmp/ansible-tmp-1565219071.76-150701478721953/AnsiballZ_aireos_command.py", line 125, in <module>
    _ansiballz_main()
  File "/Users/wsmith/.ansible/tmp/ansible-tmp-1565219071.76-150701478721953/AnsiballZ_aireos_command.py", line 117, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/Users/wsmith/.ansible/tmp/ansible-tmp-1565219071.76-150701478721953/AnsiballZ_aireos_command.py", line 54, in invoke_module
    imp.load_module('__main__', mod, module, MOD_DESC)
  File "/var/folders/n9/sl6zsgb95gl_2js11xvs2yrm0000gp/T/ansible_aireos_command_payload_SctsnB/__main__.py", line 217, in <module>
  File "/var/folders/n9/sl6zsgb95gl_2js11xvs2yrm0000gp/T/ansible_aireos_command_payload_SctsnB/__main__.py", line 210, in main
  File "/var/folders/n9/sl6zsgb95gl_2js11xvs2yrm0000gp/T/ansible_aireos_command_payload_SctsnB/__main__.py", line 129, in to_lines
UnicodeEncodeError: 'ascii' codec can't encode characters in position 40969-40970: ordinal not in range(128)

2019-08-07 16:04:46,645 p=wsmith u=39979 | fatal: [WLC01]: FAILED! => {
    "changed": false, 
    "module_stderr": "Traceback (most recent call last):\n  File \"/Users/wsmith/.ansible/tmp/ansible-tmp-1565219071.76-150701478721953/AnsiballZ_aireos_command.py\", line 125, in <module>\n    _ansiballz_main()\n  File \"/Users/wsmith/.ansible/tmp/ansible-tmp-1565219071.76-150701478721953/AnsiballZ_aireos_command.py\", line 117, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/Users/wsmith/.ansible/tmp/ansible-tmp-1565219071.76-150701478721953/AnsiballZ_aireos_command.py\", line 54, in invoke_module\n    imp.load_module('__main__', mod, module, MOD_DESC)\n  File \"/var/folders/n9/sl6zsgb95gl_2js11xvs2yrm0000gp/T/ansible_aireos_command_payload_SctsnB/__main__.py\", line 217, in <module>\n  File \"/var/folders/n9/sl6zsgb95gl_2js11xvs2yrm0000gp/T/ansible_aireos_command_payload_SctsnB/__main__.py\", line 210, in main\n  File \"/var/folders/n9/sl6zsgb95gl_2js11xvs2yrm0000gp/T/ansible_aireos_command_payload_SctsnB/__main__.py\", line 129, in to_lines\nUnicodeEncodeError: 'ascii' codec can't encode characters in position 40969-40970: ordinal not in range(128)\n", 
    "module_stdout": "", 
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", 
    "rc": 1
}
2019-08-07 16:04:46,657 p=wsmith u=39979 | PLAY RECAP **********************************************************************************************************************************************************************************************
2019-08-07 16:04:46,658 p=wsmith u=39979 | WLC01                 : ok=0    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   
2019-08-07 16:04:46,757 p=wsmith u=39991 | shutdown complete

@ansibot ansibot added the has_pr This issue has an associated PR. label Aug 7, 2019
Qalthos pushed a commit that referenced this issue Oct 1, 2019
* fix issue #60237 when non-ascii is returned from the WLC

* update test to work with python3 through use of six library

* remove trailing white space
@ansibot
Copy link
Contributor

ansibot commented Nov 10, 2019

cc @$team_ansible
click here for bot help

anshulbehl pushed a commit to anshulbehl/ansible that referenced this issue Dec 10, 2019
…ble#60243)

* fix issue ansible#60237 when non-ascii is returned from the WLC

* update test to work with python3 through use of six library

* remove trailing white space
@ansibot ansibot added the needs_maintainer Ansibot is unable to identify maintainers for this PR. (Check `author` in docs or BOTMETA.yml) label Jan 29, 2020
@ansibot ansibot added collection Related to Ansible Collections work collection:community.network needs_collection_redirect https://github.com/ansible/ansibullbot/blob/master/docs/collection_migration.md labels Apr 29, 2020
@Qalthos
Copy link
Contributor

Qalthos commented Jun 24, 2020

Thank you very much for your interest in Ansible. This plugin is no longer maintained in this repository and has been migrated to https://github.com/ansible-collections/ansible.netcommon

Please re-submit this issue in the above repository.

If you have further questions please stop by IRC or the mailing list:

@Qalthos Qalthos closed this as completed Jun 24, 2020
@sivel sivel removed the needs_triage Needs a first human triage before being processed. label Jun 26, 2020
@ansible ansible locked and limited conversation to collaborators Jul 22, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
affects_2.9 This issue/PR affects Ansible v2.9 aireos Cisco AireOS community bug This issue/PR relates to a bug. cisco Cisco technologies collection:community.network collection Related to Ansible Collections work has_pr This issue has an associated PR. module This issue/PR relates to a module. needs_collection_redirect https://github.com/ansible/ansibullbot/blob/master/docs/collection_migration.md needs_maintainer Ansibot is unable to identify maintainers for this PR. (Check `author` in docs or BOTMETA.yml) networking Network category support:community This issue/PR relates to code supported by the Ansible community. traceback This issue/PR includes a traceback.
Projects
None yet
Development

No branches or pull requests

4 participants