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 [email protected].
To post to this group, send email to [email protected].
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