ansible core 2.12.3

I am unable to discriminate with uri between responses which have been 
chunked and those which haven't.
In both cases, I get the same:
- msg: OK (unknown bytes)
- transfer_encoding: chunked

This happens for instance when using uri over CSR 1kv 17.3.1a with:
- name: Sending GET datastores with uri
  ansible.builtin.uri:
        body: ''
        body_format: 'json'
        force_basic_auth: yes
        headers:
          Accept: application/yang-data+json
          Content-Type: application/yang-data+json
        method: GET
        return_content: yes
        status_code: 
"100,101,102,200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,307,308"
        timeout: 120
        url: 
"https://172.21.126.182/restconf/data/ietf-netconf-monitoring:netconf-state/datastores?content=nonconfig";
        url_password: password
        url_username: admin
        validate_certs: false
  register: return_uri_restconf_json

leads to:
task path: main.yml:219
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: root
<localhost> EXEC /bin/bash -c 'echo ~root && sleep 0'
<localhost> EXEC /bin/bash -c '( umask 77 && mkdir -p "` echo 
/root/.ansible/tmp `"&& mkdir "` echo 
/root/.ansible/tmp/ansible-tmp-1646997734.4119265-2691638-25534722658108 `" 
&& echo ansible-tmp-1646997734.4119265-2691638-25534722658108="` echo 
/root/.ansible/tmp/ansible-tmp-1646997734.4119265-2691638-25534722658108 `" 
) && sleep 0'
Using module file 
/usr/local/lib/python3.9/dist-packages/ansible/modules/uri.py
<localhost> PUT 
/root/.ansible/tmp/ansible-local-269044374_5i0rc/tmpyvffo2y1 TO 
/root/.ansible/tmp/ansible-tmp-1646997734.4119265-2691638-25534722658108/AnsiballZ_uri.py
<localhost> EXEC /bin/bash -c 'chmod u+x 
/root/.ansible/tmp/ansible-tmp-1646997734.4119265-2691638-25534722658108/ 
/root/.ansible/tmp/ansible-tmp-1646997734.4119265-2691638-25534722658108/AnsiballZ_uri.py
 
&& sleep 0'
<localhost> EXEC /bin/bash -c '/usr/bin/python3 
/root/.ansible/tmp/ansible-tmp-1646997734.4119265-2691638-25534722658108/AnsiballZ_uri.py
 
&& sleep 0'
<localhost> EXEC /bin/bash -c 'rm -f -r 
/root/.ansible/tmp/ansible-tmp-1646997734.4119265-2691638-25534722658108/ > 
/dev/null 2>&1 && sleep 0'
ok: [CSR1000v-17.3.1a -> localhost] => changed=false 
  cache_control: private, no-cache, must-revalidate, proxy-revalidate
  connection: close
  content: |-
    {
      "ietf-netconf-monitoring:datastores": {
        "datastore": [
          {
            "name": "running",
            "tailf-netconf-monitoring:transaction-id": "1646-983921-976163"
          },
          {
            "name": "candidate"
          }
        ]
      }
    }
  content_type: application/yang-data+json
  cookies: {}
  cookies_string: ''
  date: Fri, 11 Mar 2022 11:22:14 GMT
  elapsed: 0
  invocation:
    module_args:
      attributes: null
      body: ''
      body_format: json
      ca_path: null
      client_cert: null
      client_key: null
      creates: null
      dest: null
      follow_redirects: safe
      force: false
      force_basic_auth: true
      group: null
      headers:
        Accept: application/yang-data+json
        Content-Type: application/yang-data+json
      http_agent: ansible-httpget
      method: GET
      mode: null
      owner: null
      remote_src: false
      removes: null
      return_content: true
      selevel: null
      serole: null
      setype: null
      seuser: null
      src: null
      status_code:
      - 100
      - 101
      - 102
      - 200
      - 201
      - 202
      - 203
      - 204
      - 205
      - 206
      - 207
      - 208
      - 226
      - 300
      - 301
      - 302
      - 303
      - 304
      - 305
      - 307
      - 308
      timeout: 120
      unix_socket: null
      unredirected_headers: []
      unsafe_writes: false
      url: 
https://172.21.126.182/restconf/data/ietf-netconf-monitoring:netconf-state/datastores?content=nonconfig
      url_password: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER
      url_username: admin
      use_gssapi: false
      use_proxy: true
      validate_certs: false
  json:
    ietf-netconf-monitoring:datastores:
      datastore:
      - name: running
        tailf-netconf-monitoring:transaction-id: 1646-983921-976163
      - name: candidate
  msg: OK (unknown bytes)
  pragma: no-cache
  redirected: false
  server: openresty
  status: 200
  transfer_encoding: chunked
  url: 
https://172.21.126.182/restconf/data/ietf-netconf-monitoring:netconf-state/datastores?content=nonconfig

We can see that the response has NOT been chunked.

In another example, the response has been chunked with:
- name: Sending GET netconf-state with uri
  ansible.builtin.uri:
        body: ''
        body_format: 'json'
        force_basic_auth: yes
        headers:
          Accept: application/yang-data+json
          Content-Type: application/yang-data+json
        method: GET
        return_content: yes
        status_code: 
"100,101,102,200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,307,308"
        timeout: 120
        url: 
"https://172.21.126.182/restconf/data/ietf-netconf-monitoring:netconf-state?content=nonconfig";
        url_password: password
        url_username: admin
        validate_certs: false
  register: return_uri_restconf_json

which leads to a really chunked answer:
task path: main.yml:219
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: root
<localhost> EXEC /bin/bash -c 'echo ~root && sleep 0'
<localhost> EXEC /bin/bash -c '( umask 77 && mkdir -p "` echo 
/root/.ansible/tmp `"&& mkdir "` echo 
/root/.ansible/tmp/ansible-tmp-1646997777.3538132-2700276-93994275105673 `" 
&& echo ansible-tmp-1646997777.3538132-2700276-93994275105673="` echo 
/root/.ansible/tmp/ansible-tmp-1646997777.3538132-2700276-93994275105673 `" 
) && sleep 0'
Using module file 
/usr/local/lib/python3.9/dist-packages/ansible/modules/uri.py
<localhost> PUT 
/root/.ansible/tmp/ansible-local-269044374_5i0rc/tmps9ux33ea TO 
/root/.ansible/tmp/ansible-tmp-1646997777.3538132-2700276-93994275105673/AnsiballZ_uri.py
<localhost> EXEC /bin/bash -c 'chmod u+x 
/root/.ansible/tmp/ansible-tmp-1646997777.3538132-2700276-93994275105673/ 
/root/.ansible/tmp/ansible-tmp-1646997777.3538132-2700276-93994275105673/AnsiballZ_uri.py
 
&& sleep 0'
<localhost> EXEC /bin/bash -c '/usr/bin/python3 
/root/.ansible/tmp/ansible-tmp-1646997777.3538132-2700276-93994275105673/AnsiballZ_uri.py
 
&& sleep 0'
<localhost> EXEC /bin/bash -c 'rm -f -r 
/root/.ansible/tmp/ansible-tmp-1646997777.3538132-2700276-93994275105673/ > 
/dev/null 2>&1 && sleep 0'
ok: [CSR1000v-17.3.1a -> localhost] => changed=false 
  cache_control: private, no-cache, must-revalidate, proxy-revalidate
  connection: close
  content: |-
    {
      "ietf-netconf-monitoring:netconf-state": {
        "capabilities": {
...
        },
        "datastores": {
          "datastore": [
            {
              "name": "running",
              "tailf-netconf-monitoring:transaction-id": 
"1646-983921-976163"
            },
            {
              "name": "candidate"
            }
          ]
        },
        "schemas": {
...
        },
        "sessions": {
          "session": [
            {
              "session-id": 26,
              "transport": "tailf-netconf-monitoring:rest-http",
              "username": "admin",
              "source-host": "172.21.0.1",
              "login-time": "2022-03-11T11:22:57+00:00",
              "tailf-netconf-monitoring:transaction": [
                {
  content_type: application/yang-data+json
  cookies: {}
  cookies_string: ''
  date: Fri, 11 Mar 2022 11:22:57 GMT
  elapsed: 0
  invocation:
    module_args:
      attributes: null
      body: ''
      body_format: json
      ca_path: null
      client_cert: null
      client_key: null
      creates: null
      dest: null
      follow_redirects: safe
      force: false
      force_basic_auth: true
      group: null
      headers:
        Accept: application/yang-data+json
        Content-Type: application/yang-data+json
      http_agent: ansible-httpget
      method: GET
      mode: null
      owner: null
      remote_src: false
      removes: null
      return_content: true
      selevel: null
      serole: null
      setype: null
      seuser: null
      src: null
      status_code:
      - 100
      - 101
      - 102
      - 200
      - 201
      - 202
      - 203
      - 204
      - 205
      - 206
      - 207
      - 208
      - 226
      - 300
      - 301
      - 302
      - 303
      - 304
      - 305
      - 307
      - 308
      timeout: 120
      unix_socket: null
      unredirected_headers: []
      unsafe_writes: false
      url: 
https://172.21.126.182/restconf/data/ietf-netconf-monitoring:netconf-state?content=nonconfig
      url_password: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER
      url_username: admin
      use_gssapi: false
      use_proxy: true
      validate_certs: false
  msg: OK (unknown bytes)
  pragma: no-cache
  redirected: false
  server: openresty
  status: 200
  transfer_encoding: chunked
  url: 
https://172.21.126.182/restconf/data/ietf-netconf-monitoring:netconf-state?content=nonconfig

Any suggestion about how to differentiate between both types of responses?

-- 
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/9cc40b9d-20c2-45f6-a031-29dadef118c8n%40googlegroups.com.

Reply via email to