This repository was archived by the owner on Oct 27, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
dci_component doesn't handle http error 500 #14
Copy link
Copy link
Open
Labels
Description
Uploading a component file returning a http error 500 from the API doesn't raise an exception/failure from the ansible module.
The code:
- name: Upload the component content
dci_component:
id: '{{ item.component.id }}'
path: "{{ temp_dir.path }}/{{ item.component.canonical_project_name }}.tar"
with_items: "{{ components.results }}"
The result:
TASK [Upload the component content] ********************************************************************************************************************************************************************************************************************************************
task path: /home/centos/dci-ansible/tests/scenario-tests/openstack/feeder.yml:47
changed: [localhost] => (item={'_ansible_parsed': True, '_ansible_item_result': True, '_ansible_no_log': False, 'failed': False, u'changed': False, u'component': {u'name': u'RH7-RHOS-OSP12-2018-01-13', u'title': None, u'canonical_project_name': u'RH7-RHOS-OSP12.0-2018-01-13', u'data': {}, u'created_at': u'2018-11-22T19:54:32.128041', u'updated_at': u'2018-11-22T19:54:32.128041', u'id': u'0f2d3031-cb4a-4cdc-8117-5bc93ceb33e0', u'url': u'https://www.example.com', u'state': u'active', u'etag': u'6ff9f1426799f7daa781e3631b39879b', u'topic_id': u'fbd34dac-549e-4141-b380-fd1307ddf098', u'message': None, u'type': u'puddles', u'export_control': True}, 'item': {u'next_topic_id': u'f3f8d341-de64-492e-b349-700a978b2588', u'product_id': u'322c9266-1ca7-4086-b481-ecf15fe48a63', u'created_at': u'2018-11-22T19:53:20.504518', u'updated_at': u'2018-11-22T19:53:20.504518', u'label': None, u'state': u'active', u'etag': u'7fd8882ffc02558c93fdb91a12e8d8b1', u'id': u'fbd34dac-549e-4141-b380-fd1307ddf098', u'component_types': [u'puddles'], u'data': {u'releasename': u'pike', u'registry': {u'login': None, u'password': None}}, u'export_control': False, u'name': u'OSP12'}, u'invocation': {u'module_args': {u'canonical_project_name': u'RH7-RHOS-OSP12.0-2018-01-13', u'dci_client_id': u'feeder/7ad59c5d-95e4-4005-8204-4901a0da6231', u'path': None, u'active': True, u'dci_cs_url': u'http://192.168.100.14', u'data': None, u'id': None, u'dci_login': None, u'name': u'RH7-RHOS-OSP12-2018-01-13', u'url': u'https://www.example.com', u'dci_password': None, u'dest': None, u'state': u'present', u'dci_api_secret': u'VALUE_SPECIFIED_IN_NO_LOG_PARAMETER', u'topic_id': u'fbd34dac-549e-4141-b380-fd1307ddf098', u'embed': None, u'type': u'puddles'}}, '_ansible_ignore_errors': None, '_ansible_item_label': {u'component_types': [u'puddles'], u'name': u'OSP12', u'created_at': u'2018-11-22T19:53:20.504518', u'updated_at': u'2018-11-22T19:53:20.504518', u'label': None, u'state': u'active', u'etag': u'7fd8882ffc02558c93fdb91a12e8d8b1', u'id': u'fbd34dac-549e-4141-b380-fd1307ddf098', u'next_topic_id': u'f3f8d341-de64-492e-b349-700a978b2588', u'data': {u'releasename': u'pike', u'registry': {u'login': None, u'password': None}}, u'export_control': False, u'product_id': u'322c9266-1ca7-4086-b481-ecf15fe48a63'}}) => {"changed": true, "item": {"changed": false, "component": {"canonical_project_name": "RH7-RHOS-OSP12.0-2018-01-13", "created_at": "2018-11-22T19:54:32.128041", "data": {}, "etag": "6ff9f1426799f7daa781e3631b39879b", "export_control": true, "id": "0f2d3031-cb4a-4cdc-8117-5bc93ceb33e0", "message": null, "name": "RH7-RHOS-OSP12-2018-01-13", "state": "active", "title": null, "topic_id": "fbd34dac-549e-4141-b380-fd1307ddf098", "type": "puddles", "updated_at": "2018-11-22T19:54:32.128041", "url": "https://www.example.com"}, "failed": false, "invocation": {"module_args": {"active": true, "canonical_project_name": "RH7-RHOS-OSP12.0-2018-01-13", "data": null, "dci_api_secret": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "dci_client_id": "feeder/7ad59c5d-95e4-4005-8204-4901a0da6231", "dci_cs_url": "http://192.168.100.14", "dci_login": null, "dci_password": null, "dest": null, "embed": null, "id": null, "name": "RH7-RHOS-OSP12-2018-01-13", "path": null, "state": "present", "topic_id": "fbd34dac-549e-4141-b380-fd1307ddf098", "type": "puddles", "url": "https://www.example.com"}}, "item": {"component_types": ["puddles"], "created_at": "2018-11-22T19:53:20.504518", "data": {"registry": {"login": null, "password": null}, "releasename": "pike"}, "etag": "7fd8882ffc02558c93fdb91a12e8d8b1", "export_control": false, "id": "fbd34dac-549e-4141-b380-fd1307ddf098", "label": null, "name": "OSP12", "next_topic_id": "f3f8d341-de64-492e-b349-700a978b2588", "product_id": "322c9266-1ca7-4086-b481-ecf15fe48a63", "state": "active", "updated_at": "2018-11-22T19:53:20.504518"}}}
changed: [localhost] => (item={'_ansible_parsed': True, '_ansible_item_result': True, '_ansible_no_log': False, 'failed': False, u'changed': False, u'component': {u'name': u'RH7-RHOS-OSP13-2018-01-13', u'title': None, u'canonical_project_name': u'RH7-RHOS-OSP13.0-2018-01-13', u'data': {}, u'created_at': u'2018-11-22T19:54:32.613795', u'updated_at': u'2018-11-22T19:54:32.613795', u'id': u'bac6b842-92df-41e2-b51d-9092c0664c39', u'url': u'https://www.example.com', u'state': u'active', u'etag': u'63045b7465d69616510d28e137e164ef', u'topic_id': u'f3f8d341-de64-492e-b349-700a978b2588', u'message': None, u'type': u'puddles', u'export_control': True}, 'item': {u'next_topic_id': None, u'product_id': u'322c9266-1ca7-4086-b481-ecf15fe48a63', u'created_at': u'2018-11-22T19:53:17.473287', u'updated_at': u'2018-11-22T19:53:17.473287', u'label': None, u'state': u'active', u'etag': u'13478a8ea90cacf50c0870673f069138', u'id': u'f3f8d341-de64-492e-b349-700a978b2588', u'component_types': [u'puddles'], u'data': {u'releasename': u'queens', u'registry': {u'login': None, u'password': None}}, u'export_control': False, u'name': u'OSP13'}, u'invocation': {u'module_args': {u'canonical_project_name': u'RH7-RHOS-OSP13.0-2018-01-13', u'dci_client_id': u'feeder/7ad59c5d-95e4-4005-8204-4901a0da6231', u'path': None, u'active': True, u'dci_cs_url': u'http://192.168.100.14', u'data': None, u'id': None, u'dci_login': None, u'name': u'RH7-RHOS-OSP13-2018-01-13', u'url': u'https://www.example.com', u'dci_password': None, u'dest': None, u'state': u'present', u'dci_api_secret': u'VALUE_SPECIFIED_IN_NO_LOG_PARAMETER', u'topic_id': u'f3f8d341-de64-492e-b349-700a978b2588', u'embed': None, u'type': u'puddles'}}, '_ansible_ignore_errors': None, '_ansible_item_label': {u'component_types': [u'puddles'], u'name': u'OSP13', u'created_at': u'2018-11-22T19:53:17.473287', u'updated_at': u'2018-11-22T19:53:17.473287', u'label': None, u'state': u'active', u'etag': u'13478a8ea90cacf50c0870673f069138', u'id': u'f3f8d341-de64-492e-b349-700a978b2588', u'next_topic_id': None, u'data': {u'releasename': u'queens', u'registry': {u'login': None, u'password': None}}, u'export_control': False, u'product_id': u'322c9266-1ca7-4086-b481-ecf15fe48a63'}}) => {"changed": true, "item": {"changed": false, "component": {"canonical_project_name": "RH7-RHOS-OSP13.0-2018-01-13", "created_at": "2018-11-22T19:54:32.613795", "data": {}, "etag": "63045b7465d69616510d28e137e164ef", "export_control": true, "id": "bac6b842-92df-41e2-b51d-9092c0664c39", "message": null, "name": "RH7-RHOS-OSP13-2018-01-13", "state": "active", "title": null, "topic_id": "f3f8d341-de64-492e-b349-700a978b2588", "type": "puddles", "updated_at": "2018-11-22T19:54:32.613795", "url": "https://www.example.com"}, "failed": false, "invocation": {"module_args": {"active": true, "canonical_project_name": "RH7-RHOS-OSP13.0-2018-01-13", "data": null, "dci_api_secret": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "dci_client_id": "feeder/7ad59c5d-95e4-4005-8204-4901a0da6231", "dci_cs_url": "http://192.168.100.14", "dci_login": null, "dci_password": null, "dest": null, "embed": null, "id": null, "name": "RH7-RHOS-OSP13-2018-01-13", "path": null, "state": "present", "topic_id": "f3f8d341-de64-492e-b349-700a978b2588", "type": "puddles", "url": "https://www.example.com"}}, "item": {"component_types": ["puddles"], "created_at": "2018-11-22T19:53:17.473287", "data": {"registry": {"login": null, "password": null}, "releasename": "queens"}, "etag": "13478a8ea90cacf50c0870673f069138", "export_control": false, "id": "f3f8d341-de64-492e-b349-700a978b2588", "label": null, "name": "OSP13", "next_topic_id": null, "product_id": "322c9266-1ca7-4086-b481-ecf15fe48a63", "state": "active", "updated_at": "2018-11-22T19:53:17.473287"}}}But the API returns a http error 500 as showned in the httpd logs:
POST /api/v1/components/0f2d3031-cb4a-4cdc-8117-5bc93ceb33e0/files HTTP/1.1" 500 538 "-" "Ansible/2.7.2 (python-dciclient/0.5.1, python-dciauth/2.0.2)
POST /api/v1/components/bac6b842-92df-41e2-b51d-9092c0664c39/files HTTP/1.1" 500 538 "-" "Ansible/2.7.2 (python-dciclient/0.5.1, python-dciauth/2.0.2)It seems that the dci_component hasn't been migrated to the new methods implemented in dci_common (with http error 500 handled) [1].
$ grep -r parse_http_response modules/
modules/dci_feeder.py: result = parse_http_response(http_response, dci_feeder, context, module)
modules/dci_file.py: result = parse_http_response(http_response, dci_file, context, module)
modules/dci_job.py: result = parse_http_response(http_response, dci_job, context, module)
modules/dci_product.py: result = parse_http_response(http_response, dci_product, context, module)
modules/dci_remoteci.py: result = parse_http_response(http_response, dci_remoteci, context, module)
modules/dci_role.py: result = parse_http_response(http_response, dci_role, context, module)
modules/dci_team.py: result = parse_http_response(http_response, dci_team, context, module)
modules/dci_test.py: result = parse_http_response(http_response, dci_test, context, module)
modules/dci_topic.py: result = parse_http_response(http_response, dci_topic, context, module)
modules/dci_user.py: result = parse_http_response(http_response, dci_user, context, module)[1] https://github.com/redhat-cip/dci-ansible/blob/master/module_utils/dci_common.py
Reactions are currently unavailable