Thanks.  I changed my module & the result is below.  I guess since 
queuesList is technically a list of dicts, it can't be automatically 
serialized?  If I change it from a list to a dict, then I assume things 
should be easier to handle automatically?  I guess I need to do more 
research on how to serialize things.

localhost | FAILED! => {
    "changed": false, 
    "failed": true, 
    "module_stderr": "", 
    "module_stdout": "{'cache-size': '5000', 'flowcontrol-start-queuesize': 
'-1', 'name': 'q1', 'cleanup-interval': '-1', 'persistence-mode': 
'non_persistent'}\n{'cache-size': '5000', 'flowcontrol-start-queuesize': 
'-1', 'name': 'q2', 'cleanup-interval': '-1', 'persistence-mode': 
'non_persistent'}\n{'cache-size': '5000', 'flowcontrol-start-queuesize': 
'-1', 'name': 'q3', 'cleanup-interval': '-1', 'persistence-mode': 
'non_persistent'}\n{'name': 'test'}\n\n{\"invocation\": {\"module_args\": 
{\"src\": \"/home/ec2-user/ansible/routerconfig.xml\"}}, \"failed\": false, 
\"changed\": true, \"queueslist\": [{\"q1\": {\"cache-size\": \"5000\", 
\"flowcontrol-start-queuesize\": \"-1\", \"propertyCount\": 5, 
\"cleanup-interval\": \"-1\", \"persistence-mode\": \"non_persistent\"}}, 
{\"q2\": {\"cache-size\": \"5000\", \"flowcontrol-start-queuesize\": 
\"-1\", \"propertyCount\": 5, \"cleanup-interval\": \"-1\", 
\"persistence-mode\": \"non_persistent\"}}, {\"q3\": {\"cache-size\": 
\"5000\", \"flowcontrol-start-queuesize\": \"-1\", \"propertyCount\": 5, 
\"cleanup-interval\": \"-1\", \"persistence-mode\": \"non_persistent\"}}, 
{\"test\": {\"propertyCount\": 1}}]}\n", 
    "msg": "MODULE FAILURE", 
    "rc": 0
}

On Wednesday, August 9, 2017 at 2:13:17 PM UTC-4, Adrian Likins wrote:
>
> comments inl
>
> On Wed, Aug 9, 2017 at 1:40 PM, Adam Shantz <a.mo...@gmail.com 
> <javascript:>> wrote:
>
>> Hi Adrian - 
>>
>> I think you're right about the quoting.  Here's the ouput without any 
>> modifications to my module:
>>
>> ansible -v localhost -m new_module -a 
>> 'src=/home/ec2-user/ansible/routerconfig.xml'
>> Using /etc/ansible/ansible.cfg as config file
>>  [WARNING]: Could not match supplied host pattern, ignoring: all
>>
>>  [WARNING]: provided hosts list is empty, only localhost is available
>>
>> localhost | FAILED! => {
>>     "changed": false, 
>>     "failed": true, 
>>     "module_stderr": "", 
>>     "module_stdout": "{'cache-size': '5000', 
>> 'flowcontrol-start-queuesize': '-1', 'name': 'q1', 'cleanup-interval': 
>> '-1', 'persistence-mode': 'non_persistent'}\n{'cache-size': '5000', 
>> 'flowcontrol-start-queuesize': '-1', 'name': 'q2', 'cleanup-interval': 
>> '-1', 'persistence-mode': 'non_persistent'}\n{'cache-size': '5000', 
>> 'flowcontrol-start-queuesize': '-1', 'name': 'q3', 'cleanup-interval': 
>> '-1', 'persistence-mode': 'non_persistent'}\n{'name': 
>> 'test'}\n\n{\"invocation\": {\"module_args\": {\"src\": 
>> \"/home/ec2-user/ansible/routerconfig.xml\"}}, \"failed\": false, 
>> \"changed\": true}\n", 
>>     "msg": "MODULE FAILURE", 
>>     "rc": 0
>> }
>>
>>
>> When I add:
>>     module.exit_json(changed=True, failed=False, {'queueslist': 
>> queuesList})
>>
>  
>
>> <..>
>>   File "<unknown>", line 162
>> SyntaxError: non-keyword arg after keyword arg (<unknown>, line 162)
>>
>>
> Ah, sorry I should have said:
>
>    module.exit_json(changed=True, failed=False, queueslist=queuesList)
>  
> The adds 'queueslist' item to the return data dict with a value of the 
> queuesList object.
>
> The module will try to serialize the keyword args as a dict, add it to the 
> rest of the return
> object, and print the JSON to stdout. ansible will wrap that up in but the 
> module by
> itself will do that (ie, as invoked by 'test-module')
>
> The module output should look something roughly like:
>
>
> {
>     "invocation": {
>         "module_args": {
>             "src": "/home/ec2-user/ansible/routerconfig.xml"
>         }
>     }, 
>     "failed": false,
>     "changed": true,
>     "queueslist": ["whatever_a_queuesList_serializes_to_item1",
>                          "another_item_in_queueslist"]
> }
>
>
>
> If I change that line to be:
>>     module.exit_json(changed=True, failed=False, {'queueslist': output})
>>
> SyntaxError: non-keyword arg after keyword arg (<unknown>, line 163)
>
>
> Same issue as above (ie, my bad example)
>
> Sorry if I'm being dense here.  I'm sure it's something I'm doing wrong, 
>> but I don't know how to tell what it is.  
>>
>
> The next issue will be if queuesList is json serializable or not. If you 
> get an error about that, you will likely need to
> build a simpler object (like a dict) from queuesList to serialize. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-devel+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to