When performing RPC calls that return a value of type boolean, we are seeing an error being returned. This only happens if the connection type is using pyez which is persistent.
We are using the below variables:
[juniper:vars]
ansible_connection=juniper.device.pyez
ansible_network_os=juniper.device.junos >>>> We didn’t get any issues when we were using Juniper.junos here. But we are using juniper.device as it’s depreciated.
An example of a play is shown below:
- name: Clear logs for test-1
when: inventory_hostname == 'test301-rtr-6'
juniper.device.rpc:
rpc:
- clear-log
kwarg:
filename: messages
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ansible.module_utils.connection.ConnectionError: Type 'bool' cannot be serialized.
fatal: [test301-rtr-6]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n File "/home/ext.paul.herbert/.ansible/tmp/ansible-local-1408nir1vvrb/ansible-tmp-1684838319.1980417-1522-87497565430803/AnsiballZ_rpc.py", line 107, in \n _ansiballz_main()\n File "/home/ext.paul.herbert/.ansible/tmp/ansible-local-1408nir1vvrb/ansible-tmp-1684838319.1980417-1522-87497565430803/AnsiballZ_rpc.py", line 99, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File "/home/ext.paul.herbert/.ansible/tmp/ansible-local-1408nir1vvrb/ansible-tmp-1684838319.1980417-1522-87497565430803/AnsiballZ_rpc.py", line 47, in invoke_module\n runpy.run_module(mod_name='ansible_collections.juniper.device.plugins.modules.rpc', init_globals=dict(_module_fqn='ansible_collections.juniper.device.plugins.modules.rpc', _modlib_path=modlib_path),\n File "/usr/lib/python3.8/runpy.py", line 205, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n File "/usr/lib/python3.8/runpy.py", line 95, in _run_module_code\n _run_code(code, mod_globals, init_globals,\n File "/usr/lib/python3.8/runpy.py", line 85, in _run_code\n exec(code, run_globals)\n File "/tmp/ansible_juniper.device.rpc_payload_3e8q3l8g/ansible_juniper.device.rpc_payload.zip/ansible_collections/juniper/device/plugins/modules/rpc.py", line 636, in \n File "/tmp/ansible_juniper.device.rpc_payload_3e8q3l8g/ansible_juniper.device.rpc_payload.zip/ansible_collections/juniper/device/plugins/modules/rpc.py", line 556, in main\n File "/tmp/ansible_juniper.device.rpc_payload_3e8q3l8g/ansible_juniper.device.rpc_payload.zip/ansible_collections/juniper/device/plugins/module_utils/juniper_junos_common.py", line 1719, in get_rpc\n File "/tmp/ansible_juniper.device.rpc_payload_3e8q3l8g/ansible_juniper.device.rpc_payload.zip/ansible/module_utils/connection.py", line 200, in rpc\nansible.module_utils.connection.ConnectionError: Type 'bool' cannot be serialized.\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
(venv) root@nms5-salt-master-b:~/ansible_galaxy_release_v102_final_test3/ansible-junos-stdlib/tests# vi pb.juniper_junos_rpc.yml
(venv) root@nms5-salt-master-b:~/ansible_galaxy_release_v102_final_test3/ansible-junos-stdlib/tests# ansible-playbook pb.juniper_junos_rpc.yml
PLAY [Test juniper.device.rpc module] *************************************************************************************************************************************
TASK [Execute single RPC get-software-information without any kwargs] *****************************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ansible.module_utils.connection.ConnectionError: Type 'bool' cannot be serialized.
fatal: [test]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n File "/root/.ansible/tmp/ansible-local-5965ors8akzp/ansible-tmp-1687413300.0735672-5970-231951512970846/AnsiballZ_rpc.py", line 107, in \n _ansiballz_main()\n File "/root/.ansible/tmp/ansible-local-5965ors8akzp/ansible-tmp-1687413300.0735672-5970-231951512970846/AnsiballZ_rpc.py", line 99, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File "/root/.ansible/tmp/ansible-local-5965ors8akzp/ansible-tmp-1687413300.0735672-5970-231951512970846/AnsiballZ_rpc.py", line 47, in invoke_module\n runpy.run_module(mod_name='ansible_collections.juniper.device.plugins.modules.rpc', init_globals=dict(_module_fqn='ansible_collections.juniper.device.plugins.modules.rpc', _modlib_path=modlib_path),\n File "/usr/local/lib/python3.9/runpy.py", line 210, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n File "/usr/local/lib/python3.9/runpy.py", line 97, in _run_module_code\n _run_code(code, mod_globals, init_globals,\n File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code\n exec(code, run_globals)\n File "/tmp/ansible_rpc_payload_pobj_xj7/ansible_rpc_payload.zip/ansible_collections/juniper/device/plugins/modules/rpc.py", line 631, in \n File "/tmp/ansible_rpc_payload_pobj_xj7/ansible_rpc_payload.zip/ansible_collections/juniper/device/plugins/modules/rpc.py", line 551, in main\n File "/tmp/ansible_rpc_payload_pobj_xj7/ansible_rpc_payload.zip/ansible_collections/juniper/device/plugins/module_utils/juniper_junos_common.py", line 1759, in get_rpc\n File "/tmp/ansible_rpc_payload_pobj_xj7/ansible_rpc_payload.zip/ansible/module_utils/connection.py", line 200, in rpc\nansible.module_utils.connection.ConnectionError: Type 'bool' cannot be serialized.\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
...ignoring
TASK [Print response] *****************************************************************************************************************************************************
ok: [test] => {
"test1": {
"changed": false,
"exception": "Traceback (most recent call last):\n File "/root/.ansible/tmp/ansible-local-5965ors8akzp/ansible-tmp-1687413300.0735672-5970-231951512970846/AnsiballZ_rpc.py", line 107, in \n _ansiballz_main()\n File "/root/.ansible/tmp/ansible-local-5965ors8akzp/ansible-tmp-1687413300.0735672-5970-231951512970846/AnsiballZ_rpc.py", line 99, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File "/root/.ansible/tmp/ansible-local-5965ors8akzp/ansible-tmp-1687413300.0735672-5970-231951512970846/AnsiballZ_rpc.py", line 47, in invoke_module\n runpy.run_module(mod_name='ansible_collections.juniper.device.plugins.modules.rpc', init_globals=dict(_module_fqn='ansible_collections.juniper.device.plugins.modules.rpc', _modlib_path=modlib_path),\n File "/usr/local/lib/python3.9/runpy.py", line 210, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n File "/usr/local/lib/python3.9/runpy.py", line 97, in _run_module_code\n _run_code(code, mod_globals, init_globals,\n File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code\n exec(code, run_globals)\n File "/tmp/ansible_rpc_payload_pobj_xj7/ansible_rpc_payload.zip/ansible_collections/juniper/device/plugins/modules/rpc.py", line 631, in \n File "/tmp/ansible_rpc_payload_pobj_xj7/ansible_rpc_payload.zip/ansible_collections/juniper/device/plugins/modules/rpc.py", line 551, in main\n File "/tmp/ansible_rpc_payload_pobj_xj7/ansible_rpc_payload.zip/ansible_collections/juniper/device/plugins/module_utils/juniper_junos_common.py", line 1759, in get_rpc\n File "/tmp/ansible_rpc_payload_pobj_xj7/ansible_rpc_payload.zip/ansible/module_utils/connection.py", line 200, in rpc\nansible.module_utils.connection.ConnectionError: Type 'bool' cannot be serialized.\n",
"failed": true,
"module_stderr": "Traceback (most recent call last):\n File "/root/.ansible/tmp/ansible-local-5965ors8akzp/ansible-tmp-1687413300.0735672-5970-231951512970846/AnsiballZ_rpc.py", line 107, in \n _ansiballz_main()\n File "/root/.ansible/tmp/ansible-local-5965ors8akzp/ansible-tmp-1687413300.0735672-5970-231951512970846/AnsiballZ_rpc.py", line 99, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File "/root/.ansible/tmp/ansible-local-5965ors8akzp/ansible-tmp-1687413300.0735672-5970-231951512970846/AnsiballZ_rpc.py", line 47, in invoke_module\n runpy.run_module(mod_name='ansible_collections.juniper.device.plugins.modules.rpc', init_globals=dict(_module_fqn='ansible_collections.juniper.device.plugins.modules.rpc', _modlib_path=modlib_path),\n File "/usr/local/lib/python3.9/runpy.py", line 210, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n File "/usr/local/lib/python3.9/runpy.py", line 97, in _run_module_code\n _run_code(code, mod_globals, init_globals,\n File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code\n exec(code, run_globals)\n File "/tmp/ansible_rpc_payload_pobj_xj7/ansible_rpc_payload.zip/ansible_collections/juniper/device/plugins/modules/rpc.py", line 631, in \n File "/tmp/ansible_rpc_payload_pobj_xj7/ansible_rpc_payload.zip/ansible_collections/juniper/device/plugins/modules/rpc.py", line 551, in main\n File "/tmp/ansible_rpc_payload_pobj_xj7/ansible_rpc_payload.zip/ansible_collections/juniper/device/plugins/module_utils/juniper_junos_common.py", line 1759, in get_rpc\n File "/tmp/ansible_rpc_payload_pobj_xj7/ansible_rpc_payload.zip/ansible/module_utils/connection.py", line 200, in rpc\nansible.module_utils.connection.ConnectionError: Type 'bool' cannot be serialized.\n",
"module_stdout": "",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
}
}
PLAY RECAP ****************************************************************************************************************************************************************
test : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
(venv) root@nms5-salt-master-b:~/ansible_galaxy_release_v102_final_test3/ansible-junos-stdlib/tests# vi pb.juniper_junos_rpc.yml
(venv) root@nms5-salt-master-b:~/ansible_galaxy_release_v102_final_test3/ansible-junos-stdlib/tests# ansible-playbook pb.juniper_junos_rpc.yml
PLAY [Test juniper.device.rpc module] *************************************************************************************************************************************
TASK [Execute single RPC get-software-information without any kwargs] *****************************************************************************************************
ok: [test]
TASK [Print response] *****************************************************************************************************************************************************
ok: [test] => {
"test1": {
"attrs": null,
"changed": false,
"failed": false,
"format": "text",
"kwargs": {
"filename": "messages"
},
"msg": "The RPC executed successfully.",
"rpc": "clear-log",
"stdout": "",
"stdout_lines": []
}
}
PLAY RECAP ****************************************************************************************************************************************************************
test : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0