Bug 1442115 - config_tempest.py fails if glance endpoint SSL+IPv6
Summary: config_tempest.py fails if glance endpoint SSL+IPv6
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-tempest
Version: 9.0 (Mitaka)
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: async
: 9.0 (Mitaka)
Assignee: Chandan Kumar
QA Contact: Martin Kopec
URL:
Whiteboard:
Depends On:
Blocks: 1463203
TreeView+ depends on / blocked
 
Reported: 2017-04-13 14:47 UTC by Filip Hubík
Modified: 2017-06-20 11:28 UTC (History)
9 users (show)

Fixed In Version: openstack-tempest-10.0.0-5.b4a056dgit.el7ost
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1463203 (view as bug list)
Environment:
Last Closed: 2017-06-19 14:48:56 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Launchpad 1557814 0 None None None 2017-04-13 14:47:21 UTC
OpenStack gerrit 293195 0 None None None 2017-04-26 04:24:37 UTC
Red Hat Product Errata RHBA-2017:1502 0 normal SHIPPED_LIVE Red Hat OpenStack Platform 9 Bug Fix and Enhancement Advisory 2017-06-19 18:46:17 UTC

Description Filip Hubík 2017-04-13 14:47:21 UTC
Description of problem:
config_tempest.py fails to upload image to glance.
This happens when run against Openstack (overcloud) deployed with both SSL and IPv6 enabled using OSPd director 9.

$ source overcloudrc && cd tempest-dir
$ tools/config_tempest.py  --deployer-input ~/ir-tempest-deployer-input.conf  --debug -v --create identity.uri $OS_AUTH_URL identity.admin_password $OS_PASSWORD scenario.img_dir ~/tempest-dir/etc    volume-feature-enabled.backup false     image.http_image http://somewhere/cirros-0.3.4-x86_64-uec.tar.gz   identity.region regionOne orchestration.stack_owner_role heat_stack_owner   --out ~/tempest-dir/etc/tempest.conf 
...
Uploading image 'cirros-0.3.4-x86_64-disk.img_alt' from '/home/stack/tempest-dir/etc/cirros-0.3.1-x86_64-disk.img'
2017-04-13 10:04:18.665 22518 INFO tempest.lib.common.rest_client [req-91c9032b-f45d-4fce-ae99-4984099656b7 ] Request (main): 201 POST https://[2620:52:0:13b8:5054:ff:fe3e:1]:13292/v2/images 0.380s
2017-04-13 10:04:18.666 22518 INFO tempest.common.glance_http [-] Request: PUT https://[2620:52:0:13b8:5054:ff:fe3e:1]:13292/v2/images/d4180fc4-1123-4b04-b10e-aa95879e45de/file
2017-04-13 10:04:18.666 22518 INFO tempest.common.glance_http [-] Request Headers: {'Transfer-Encoding': 'chunked', 'User-Agent': 'tempest', 'Content-Type': 'application/octet-stream', 'X-Auth-Token': 'd81ed492e9094f01877fd67150fcc517'}
2017-04-13 10:04:18.675 22518 CRITICAL tempest [-] EndpointNotFound: Endpoint not found
Details: Error finding address for https://[2620:52:0:13b8:5054:ff:fe3e:1]:13292/v2/images/d4180fc4-1123-4b04-b10e-aa95879e45de/file: [Errno -9] Address family for hostname not supported
2017-04-13 10:04:18.675 22518 ERROR tempest Traceback (most recent call last):
2017-04-13 10:04:18.675 22518 ERROR tempest   File "tools/config_tempest.py", line 831, in <module>
2017-04-13 10:04:18.675 22518 ERROR tempest     main()
2017-04-13 10:04:18.675 22518 ERROR tempest   File "tools/config_tempest.py", line 168, in main
2017-04-13 10:04:18.675 22518 ERROR tempest     args.image_disk_format)
2017-04-13 10:04:18.675 22518 ERROR tempest   File "tools/config_tempest.py", line 639, in create_tempest_images
2017-04-13 10:04:18.675 22518 ERROR tempest     disk_format=disk_format)
2017-04-13 10:04:18.675 22518 ERROR tempest   File "tools/config_tempest.py", line 665, in find_or_upload_image
2017-04-13 10:04:18.675 22518 ERROR tempest     image = _upload_image(client, image_name, image_dest, disk_format)
2017-04-13 10:04:18.675 22518 ERROR tempest   File "tools/config_tempest.py", line 811, in _upload_image
2017-04-13 10:04:18.675 22518 ERROR tempest     client.store_image_file(image['id'], data)
2017-04-13 10:04:18.675 22518 ERROR tempest   File "/home/stack/tempest-dir/tempest/services/image/v2/json/images_client.py", line 123, in store_image_file
2017-04-13 10:04:18.675 22518 ERROR tempest     body=data)
2017-04-13 10:04:18.675 22518 ERROR tempest   File "/home/stack/tempest-dir/tempest/common/glance_http.py", line 176, in raw_request
2017-04-13 10:04:18.675 22518 ERROR tempest     return self._http_request(req_url, method, **kwargs)
2017-04-13 10:04:18.675 22518 ERROR tempest   File "/home/stack/tempest-dir/tempest/common/glance_http.py", line 119, in _http_request
2017-04-13 10:04:18.675 22518 ERROR tempest     raise exc.EndpointNotFound(message)
2017-04-13 10:04:18.675 22518 ERROR tempest EndpointNotFound: Endpoint not found
2017-04-13 10:04:18.675 22518 ERROR tempest Details: Error finding address for https://[2620:52:0:13b8:5054:ff:fe3e:1]:13292/v2/images/d4180fc4-1123-4b04-b10e-aa95879e45de/file: [Errno -9] Address family for hostname not supported

$ openstack endpoint show 1d2fd4a187264a679c837a70d9fcdf94
+--------------+------------------------------------------------+
| Field        | Value                                          |
+--------------+------------------------------------------------+
| adminurl     | http://[fd00:fd00:fd00:3000::10]:9292/         |
| enabled      | True                                           |
| id           | 1d2fd4a187264a679c837a70d9fcdf94               |
| internalurl  | http://[fd00:fd00:fd00:3000::10]:9292/         |
| publicurl    | https://[2620:52:0:13b8:5054:ff:fe3e:1]:13292/ |
| region       | regionOne                                      |
| service_id   | 3d097ea838a340c3a2a4b85b7d0565f6               |
| service_name | glance                                         |
| service_type | image                                          |
+--------------+------------------------------------------------+

$ cat ../tempest-deployer-input.conf 
[compute]
region = regionOne
[compute-feature-enabled]
console_output = false
[identity]
region = regionOne
[image]
region = regionOne
[network]
region = regionOne
[object-storage]
operator_role = swiftoperator
region = regionOne
[orchestration]
stack_owner_role = heat_stack_user
region = regionOne
[volume]
backend1_name = tripleo_iscsi
region = regionOne
[volume-feature-enabled]
bootable = true


Expected results:
tools/config_tempest.py passes and produces tempest.conf like it does when IPv6 without SSL is used.

E.g. example from non-SSL ipv6 job where upload passes:
01:28:21 2017-04-11 21:27:43.712 5643 INFO tempest.common.glance_http [-] Request: PUT http://[2620:52:0:13b8:5054:ff:fe3e:1]:9292/v2/images/759b0211-6def-4fb8-a72f-bfc6a9d7996b/file
01:28:21 2017-04-11 21:27:43.712 5643 INFO tempest.common.glance_http [-] Request Headers: {'Transfer-Encoding': 'chunked', 'User-Agent': 'tempest', 'Content-Type': 'application/octet-stream', 'X-Auth-Token': '48bf026b67b94c1cb2997b6f796af1e6'}
01:28:21 2017-04-11 21:27:46.028 5643 INFO tempest.common.glance_http [-] Response Status: 204
01:28:21 2017-04-11 21:27:46.028 5643 INFO tempest.common.glance_http [-] Response Headers: [('date', 'Wed, 12 Apr 2017 01:27:46 GMT'), ('content-length', '0'), ('content-type', 'text/html; charset=UTF-8'), ('x-openstack-request-id', 'req-08391ca6-c6e5-4ef7-9b19-87c823a44428')]
01:28:21 2017-04-11 21:27:46.064 5643 INFO tempest.lib.common.rest_client [req-1369b3d6-3077-414a-983a-33f19b996faa ] Request (main): 200 GET http://[2620:52:0:13b8:5054:ff:fe3e:1]:9292/v2/images 0.035s
01:28:21 2017-04-11 21:27:46.065 5643 INFO __main__ [-] Creating image 'cirros-0.3.4-x86_64-disk.img_alt'
01:28:21 2017-04-11 21:27:46.065 5643 INFO __main__ [-] Downloading 'http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img' and saving as 'etc/cirros-0.3.1-x86_64-disk.img'
01:28:21 2017-04-11 21:28:16.124 5643 INFO __main__ [-] Uploading image 'cirros-0.3.4-x86_64-disk.img_alt' from '/home/stack/tempest-dir/etc/cirros-0.3.1-x86_64-disk.img'
01:28:21 2017-04-11 21:28:16.177 5643 INFO tempest.lib.common.rest_client [req-6ce5b6cb-9839-4cb1-a2ee-1e9260133fa0 ] Request (main): 201 POST http://[2620:52:0:13b8:5054:ff:fe3e:1]:9292/v2/images 0.052s


Version-Release number of selected component (if applicable):
Openstack Director 9

Packages:
$ rpm -qa | grep tempest
openstack-tempest-10.0.0-4.b4a056dgit.el7ost.noarch
python-tempest-lib-1.0.0-1.el7ost.noarch

Comment 2 Filip Hubík 2017-04-19 15:10:51 UTC
As per Chandan's request I manually verified this can be fixed by applying upstream fix mentioned in attached Launchpad topic (LP#1557814) https://git.openstack.org/cgit/openstack/tempest/commit/?id=f61f1fcee018a613c323fa5babe08469474a8d37 on RPM Tempest available in OSPd9.

$ rpm -qa | grep -i tempest
openstack-tempest-10.0.0-4.b4a056dgit.el7ost.noarch
python-tempest-lib-1.0.0-1.el7ost.noarch

Comment 8 Martin Kopec 2017-06-14 14:44:38 UTC
Automated tests which are using the new package openstack-tempest-10.0.0-5.b4a056dgit.el7ost are passing, so the bug is fixed in that package. Marking this as verified.

Comment 10 errata-xmlrpc 2017-06-19 14:48:56 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:1502


Note You need to log in before you can comment on or make changes to this bug.