Zip file not getting POST to the server with the uri module in Ansible.
These are the codes I am trying to execute
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.
URI Module
ansible 2.4.2.0
Red Hat Enterprise Linux Server 7.3 (Maipo)
- 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
The zip file should be uploaded to the server.
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.
--
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-proje...@googlegroups.com.
To post to this group, send email to ansible...@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.