I am facing exactly the same issue when trying to upload a jar file over a 
Flink 
REST endpoint 
<https://ci.apache.org/projects/flink/flink-docs-stable/monitoring/rest_api.html#jars-upload>
.

I tried both with curl and postman, it works flawlessly, but using Ansible 
URI module, I am getting the error message:  FAILED! => {"changed": false, 
"content": "", "msg": "Status code was -1 and not [200]: Request failed: 
<urlopen error [Errno 104] Connection reset by peer>", "redirected": false, 
"status": -1, "url": "http://<MYHOSTNAME>:8081/jars/upload}

Any idea, or should I continue using the shell module with curl (I don't 
like it, but it's the only way it works for now).

On Monday, May 21, 2018 at 8:05:47 PM UTC+2, Apu Mondal wrote:
>
> Zip file not getting POST to the server with the uri module in Ansible.
>
> These are the codes I am trying to execute
>
>    - name: Transfering the Proxies
>    uri:
>    headers:
>    Authorization: '{{API_USER_PASS_BASE64_ENCRYPT}}'
>    Content-Type: "application/octet-stream"
>    url: 
>    
> https://api.enterprise.apigee.com/v1/organizations/{{API_ORG}}/apis?action=import&name={{proxy_name
>  
>    }}-{{API_ENVIRONMENT}}
>    #body: "{{ lookup('file','{{ path 
>    
> }}/{{bundle_name}}/apigee/proxies/{{proxy_name}}--hughes-dev-test-dev.zip') 
>    }}" --> doesn't work
>    src: /{{ path 
>    }}/{{bundle_name}}/apigee/proxies/{{proxy_name}}--hughes-dev-test-dev.zip
>    body_format: raw
>    status_code: 201, 200
>    method: POST
>    register: version
>
> It gives the following error:
> "json": {
> "code": "messaging.config.beans.InvalidBundle",
> "contexts": [],
> "message": "Bundle is invalid. Empty bundle"
> },
>
> Also it sets the "content_type": "application/json", at the top of the 
> message like this:
>
> The full traceback is:
> File "/tmp/ansible_NyKoMf/ansible_module_uri.py", line 468, in main
> uresp['location'] = absolute_location(url, uresp['location'])
>
> fatal: [localhost]: FAILED! => {
> "changed": false,
> "connection": "Close",
> "content": "{\n "code" : "messaging.config.beans.InvalidBundle",\n 
> "message" : "Bundle is invalid. Empty bundle",\n "contexts" : [ ]\n}",
> "content_length": "122",
> "content_type": "application/json",
> "date": "Mon, 14 May 2018 19:03:48 GMT",
> "invocation": {
> "module_args": {
> "attributes": null,
> "backup": null,
> "body": null,
> "body_format": "raw",
> "client_cert": null,
> "client_key": null,
> "content": null,
> "creates": null,
> "delimiter": null,
> "dest": null,
> "directory_mode": null,
> "follow": false,
> "follow_redirects": "safe",
> "force": false,
> "force_basic_auth": false,
> "group": null,
> "headers": {
> "Authorization": "Basic YXBvb3J2YS5tb25kYWxAaHVnaGVzLmNvbTphcG9vcnZhNw==",
> "Content-Type": "application/octet-stream"
> },
> "http_agent": "ansible-httpget",
> "method": "POST",
> "mode": null,
> "owner": null,
> "regexp": null,
> "remote_src": null,
> "removes": null,
> "return_content": false,
> "selevel": null,
> "serole": null,
> "setype": null,
> "seuser": null,
> "src": 
> "/var/tmp/APIGEE_COM_R001_B-001_P-001/apigee/proxies/FapProxy--hughes-dev-test-dev.zip",
> "status_code": [
> "201",
> " 200"
> ],
> "timeout": 30,
> "unsafe_writes": null,
> "url": "
> https://api.enterprise.apigee.com/v1/organizations/hughes-dev/apis?action=import&name=FapProxy-sa-dev
> ",
> "url_password": null,
> "url_username": null,
> "use_proxy": true,
> "validate_certs": true
> }
> },
> "json": {
> "code": "messaging.config.beans.InvalidBundle",
> "contexts": [],
> "message": "Bundle is invalid. Empty bundle"
> },
> "msg": "Status code was not [201, 200]: HTTP Error 400: Bad Request",
> "redirected": false,
> "server": "Apigee LB",
> "status": 400,
> "url": "
> https://api.enterprise.apigee.com/v1/organizations/hughes-dev/apis?action=import&name=FapProxy-sa-dev
> "
> }
>
>
> 2) - name: Transfering the Proxies
>
>   uri:
>     headers:
>      Authorization: '{{API_USER_PASS_BASE64_ENCRYPT}}'
>      Content-Type: "application/zip"
>     url: 
> https://api.enterprise.apigee.com/v1/organizations/{{API_ORG}}/apis?action=import&name={{
>  proxy_name }}-{{API_ENVIRONMENT}}
>     body: "{{ lookup('file','{{ path 
> }}/{{bundle_name}}/apigee/proxies/{{proxy_name}}--hughes-dev-test-dev.zip') 
> }}"
>     #src: '{{ path 
> }}/{{bundle_name}}/apigee/proxies/{{proxy_name}}--hughes-dev-test-dev.zip'
>     #body_format: raw
>     status_code: 201, 200
>     method: POST
>   register: version
>
>
> Please check and provide information on how to properly POST a zip file.
> ISSUE TYPE
>    
>    - Bug Report
>    - Feature Idea
>    - Documentation Report
>
> COMPONENT NAME
>
> URI Module
> ANSIBLE VERSION
>
> ansible 2.4.2.0
>
> CONFIGURATIONOS / ENVIRONMENT
>
> Red Hat Enterprise Linux Server 7.3 (Maipo)
> STEPS TO REPRODUCE
>
> - name: Transfering the Proxies
>   uri:
>     headers:
>      Authorization: '{{API_USER_PASS_BASE64_ENCRYPT}}'
>      Content-Type: "application/zip"
>     url: 
> https://api.enterprise.apigee.com/v1/organizations/{{API_ORG}}/apis?action=import&name={{
>  proxy_name }}-{{API_ENVIRONMENT}}
>     body: "{{ lookup('file','{{ path 
> }}/{{bundle_name}}/apigee/proxies/{{proxy_name}}--hughes-dev-test-dev.zip') 
> }}"
>     #src: '{{ path 
> }}/{{bundle_name}}/apigee/proxies/{{proxy_name}}--hughes-dev-test-dev.zip'
>     #body_format: raw
>     status_code: 201, 200
>     method: POST
>   register: version
>
> ---
> - name: Transfering the Proxies
>   uri:
>     headers:
>      Authorization: '{{API_USER_PASS_BASE64_ENCRYPT}}'
>      Content-Type: "multipart/form-data"
>     url: 
> https://api.enterprise.apigee.com/v1/organizations/{{API_ORG}}/apis?action=import&name={{
>  proxy_name }}-{{API_ENVIRONMENT}}
>     #body: "{{ lookup('file','{{ path 
> }}/{{bundle_name}}/apigee/proxies/{{proxy_name}}--hughes-dev-test-dev.zip') 
> }}"
>     src: '{{ path 
> }}/{{bundle_name}}/apigee/proxies/{{proxy_name}}--hughes-dev-test-dev.zip'
>     #body_format: raw
>     status_code: 201, 200
>     method: POST
>   register: version
>
> - name: Transfering the Proxies
>   uri:
>     headers:
>      Authorization: '{{API_USER_PASS_BASE64_ENCRYPT}}'
>      Content-Type: "application/octet-stream"
>     url: 
> https://api.enterprise.apigee.com/v1/organizations/{{API_ORG}}/apis?action=import&name={{
>  proxy_name }}-{{API_ENVIRONMENT}}
>     #body: "{{ lookup('file','{{ path 
> }}/{{bundle_name}}/apigee/proxies/{{proxy_name}}--hughes-dev-test-dev.zip') 
> }}" --> doesn't work
>     src: /{{ path 
> }}/{{bundle_name}}/apigee/proxies/{{proxy_name}}--hughes-dev-test-dev.zip
>     body_format: raw
>     status_code: 201, 200
>     method: POST
>   register: version
>
> EXPECTED RESULTS
>
> The zip file should be uploaded to the server.
> ACTUAL RESULTS
>
> Right now as uri module is not working I am using the curl command instead.
> But I want my code not to have dependency on the linux commands. Hence 
> trying to use the uri module.
>
>    - name: Transfering the Proxies
>    command: 'curl -X POST --header "Authorization: Basic 
>    YXBvb3J2YS5tb25kYWxAaHVnaGVzLmNvbTphcG9vcnZhNw==" -F 
>    
> "file=@/{{path}}/{{bundle_name}}/apigee/proxies/{{proxy_name}}--hughes-dev-test-dev.zip"
>  
>    "
>    
> https://api.enterprise.apigee.com/v1/organizations/{{API_ORG}}/apis?action=import&name={{proxy_name
>  
>    }}-{{API_ENVIRONMENT}}"'
>    register: version
>
> Neither src nor body parameter is able to POST a zip or jar file to the 
> server. 
>

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/5dabaed3-840b-43af-b554-52428cfa7206%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to