Hello 

 

I have 2 json files: 

 

*File Json1 *

{

    "name": "",

    "description": "",

    "spec": [

        {

            "question_name": "VM Name",

            "question_description": "",

            "required": true,

            "type": "text",

            "variable": "VM_Name",

            "min": 0,

            "max": 1024,

            "default": "",

            "choices": "",

            "new_question": true

        },

        {

            "question_name": "Select a Veeam Backup Job",

            "question_description": "",

            "required": true,

            "type": "multiplechoice",

            "variable": "Job_Name",

            "min": null,

            "max": null,

            "default": "",

            "choices": 

        }

    ]

}

 

 

*File Json2*

“Jobs_List_Data”:["JOB-1" , "JOB-2","JOB-3", "JOB-4"]

 

 

  I'm stuck in modifying the File Json1 with error:

 

TASK [json_modify] 
*******************************************************************************************************

<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root

<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'

<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo 
/root/.ansible/tmp `"&& mkdir 
/root/.ansible/tmp/ansible-tmp-1606499676.6535082-233822-207184568804253 && 
echo ansible-tmp-1606499676.6535082-233822-207184568804253="` echo 
/root/.ansible/tmp/ansible-tmp-1606499676.6535082-233822-207184568804253 `" 
) && sleep 0'

Using module file 
/usr/local/lib/python3.6/site-packages/ansible/modules/json_modify.py

<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-233716vja5qmf5/tmphostnj3p 
TO 
/root/.ansible/tmp/ansible-tmp-1606499676.6535082-233822-207184568804253/AnsiballZ_json_modify.py

<127.0.0.1> EXEC /bin/sh -c 'chmod u+x 
/root/.ansible/tmp/ansible-tmp-1606499676.6535082-233822-207184568804253/ 
/root/.ansible/tmp/ansible-tmp-1606499676.6535082-233822-207184568804253/AnsiballZ_json_modify.py
 
&& sleep 0'

<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 
/root/.ansible/tmp/ansible-tmp-1606499676.6535082-233822-207184568804253/AnsiballZ_json_modify.py
 
&& sleep 0'

<127.0.0.1> EXEC /bin/sh -c 'rm -f -r 
/root/.ansible/tmp/ansible-tmp-1606499676.6535082-233822-207184568804253/ > 
/dev/null 2>&1 && sleep 0'

The full traceback is:

  File 
"/tmp/ansible_json_modify_payload_zjd6hujn/ansible_json_modify_payload.zip/ansible/modules/json_modify.py",
 
line 38, in main

  File "/usr/local/lib/python3.6/site-packages/jsonpointer.py", line 126, 
in resolve_pointer

    return pointer.resolve(doc, default)

  File "/usr/local/lib/python3.6/site-packages/jsonpointer.py", line 204, 
in resolve

    doc = self.walk(doc, part)

  File "/usr/local/lib/python3.6/site-packages/jsonpointer.py", line 272, 
in walk

    raise JsonPointerException("index '%s' is out of bounds" % (part, ))

fatal: [localhost]: FAILED! => {

    "changed": false,

    "invocation": {

        "module_args": {

            "action": "update",

            "append": null,

            "data": {

                "description": "",

                "name": "",

                "spec": [

                    {

                        "choices": "",

                        "default": "",

                        "max": 1024,

                        "min": 0,

                        "new_question": true,

                        "question_description": "",

                        "question_name": "VM Name",

                        "required": true,

                        "type": "text",

                        "variable": "VM_Name"

                    },

                    {

                        "choices": null,

                        "default": "",

                        "max": null,

                        "min": null,

                        "question_description": "",

                        "question_name": "Select a Veeam Backup Job",

                        "required": true,

                        "type": "multiplechoice",

                        "variable": "Job_Name"

                    }

                ]

            },

            "extend": null,

            "pointer": "/spec/2/choices/",

            "update": {

                "Backup_Jobs_Lists": [

                                  "JOB-1",

                                  " JOB-2",

                                  "JOB-3",

                                  " JOB-4"

                ]

            }

        }

    },

*    "msg": "index '2' is out of bounds"*

}

 

 

The final json file should be like this 

 

 

*Final Json: *

{

    "name": "",

    "description": "",

    "spec": [

        {

            "question_name": "VM Name",

            "question_description": "",

            "required": true,

            "type": "text",

            "variable": "VM_Name",

            "min": 0,

            "max": 1024,

            "default": "",

            "choices": "",

            "new_question": true

        },

        {

            "question_name": "Select a Veeam Backup Job",

            "question_description": "",

            "required": true,

            "type": "multiplechoice",

            "variable": "Job_Name",

            "min": null,

            "max": null,

            "default": "",

           * "choices": ["JOB-1" , "JOB-2", "JOB-3", "JOB-4"]*

        }

    ]

}

 

 

Here is my code: 

 

- hosts: localhost

  tasks: 

  - name: load json file

    include_vars:

      file: surveyjobs.json

      name: json1

 

  - debug:

      var: json1

 

  - name: load json file

    include_vars:

      file: Jobs_list.json

      name: json2

 

  - debug:

      var: json2

 

  - json_modify: 

      data: "{{json1}}"

      pointer: "/spec/2/choices/"

      action: update

      update: "{{ json2 }}" 

    register: result     

 

  - debug:

      var: result.result

 

 

Thanks for your help !

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/0a756683-0c7a-45cc-8ac1-3f2fd89eb341n%40googlegroups.com.

Reply via email to