Bug 1560923 - Bug in api_discovery: admin endpoint is taken from the list instead of public
Summary: Bug in api_discovery: admin endpoint is taken from the list instead of public
Keywords:
Status: CLOSED WORKSFORME
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: python-tempestconf
Version: 13.0 (Queens)
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: Chandan Kumar
QA Contact: Martin Kopec
URL:
Whiteboard:
Depends On:
Blocks: 1533555
TreeView+ depends on / blocked
 
Reported: 2018-03-27 09:24 UTC by Sasha Smolyak
Modified: 2018-06-07 15:38 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-06-07 15:32:31 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Sasha Smolyak 2018-03-27 09:24:00 UTC
Description of problem:
Got error "Failed to establish a new connection: [Errno 113] No route to host
2018-03-27 04:39:56.665 21397 WARNING urllib3.connectionpool [-] Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2267632fd0>: Failed to establish a new connection: [Errno 113] No route to host',)': /v2.1/extensions: NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f2267632fd0>: Failed to establish a new connection: [Errno 113] No route to host" 
while trying to run 

discover-tempest-config --debug identity.uri $OS_AUTH_URL identity.admin_password  $OS_PASSWORD --create

Turns out that it couldn't establish connection for admin endpoint instead of public, because while trying to find public in the endpoint list, the "discover" function gets "RegionOne" from outside and compares it to "regionOne" (lowercase r) region in the list of endpoints.

When fixed, got another error:
2018-03-27 04:56:15.572 24253 CRITICAL tempest [-] Unhandled error: NoOptionError: No option 'username' in section: 'identity'
2018-03-27 04:56:15.572 24253 ERROR tempest Traceback (most recent call last):
2018-03-27 04:56:15.572 24253 ERROR tempest   File "/usr/bin/discover-tempest-config", line 10, in <module>
2018-03-27 04:56:15.572 24253 ERROR tempest     sys.exit(main())
2018-03-27 04:56:15.572 24253 ERROR tempest   File "/usr/lib/python2.7/site-packages/config_tempest/config_tempest.py", line 1147, in main
2018-03-27 04:56:15.572 24253 ERROR tempest     conf, services)
2018-03-27 04:56:15.572 24253 ERROR tempest   File "/usr/lib/python2.7/site-packages/config_tempest/config_tempest.py", line 684, in create_tempest_users
2018-03-27 04:56:15.572 24253 ERROR tempest     conf.get('identity', 'username'),
2018-03-27 04:56:15.572 24253 ERROR tempest   File "/usr/lib64/python2.7/ConfigParser.py", line 618, in get
2018-03-27 04:56:15.572 24253 ERROR tempest     raise NoOptionError(option, section)
2018-03-27 04:56:15.572 24253 ERROR tempest NoOptionError: No option 'username' in section: 'identity'
2018-03-27 04:56:15.572 24253 ERROR tempest

Version-Release number of selected component (if applicable):
python2-tempestconf-1.1.5-0.20180302162823.852e1c9.el7ost.noarch

How reproducible:
100%

Steps to Reproduce:
1. sudo yum install -y openstack-tempest 
2. source overcloudrc
3. discover-tempest-config --debug identity.uri $OS_AUTH_URL identity.admin_password  $OS_PASSWORD --create 

Actual results:
Fails

Expected results:
Config is built

Additional info:

Comment 1 Chandan Kumar 2018-03-29 15:06:30 UTC
We need to use tripleo-deplpoyer-input.conf flag here:
Please run this command:
discover-tempest-config --deployer-input ~/tempest-deployer-input.conf \
--debug --create identity.uri $OS_AUTH_URL identity.admin_password \
$OS_PASSWORD --create

Comment 2 Matt Young 2018-04-16 16:33:07 UTC
Did this work for you?

Comment 3 Sasha Smolyak 2018-04-30 11:19:27 UTC
No, I'm getting the same error


(overcloud) [stack@undercloud-0 ~]$ discover-tempest-config --deployer-input ~/tempest-deployer-input.conf \
> --debug --create identity.uri $OS_AUTH_URL identity.admin_password \
> $OS_PASSWORD --create
2018-04-30 07:18:10.140 6870 INFO tempest [-] Using tempest config file /etc/tempest/tempest.conf
2018-04-30 07:18:10.271 6870 INFO config_tempest.main [-] Adding options from deployer-input file '/home/stack/tempest-deployer-input.conf'
/usr/lib/python2.7/site-packages/urllib3/connectionpool.py:852: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  InsecureRequestWarning)
2018-04-30 07:18:10.913 6870 INFO tempest.lib.common.rest_client [req-866a9720-b85d-4dd4-840b-592abf5e4f19 ] Request (main): 201 POST https://10.0.0.101:13000//v3/auth/tokens
2018-04-30 07:18:11.221 6870 INFO tempest.lib.common.rest_client [req-3c4ba3c9-976e-4711-b79f-414e1b1517a1 ] Request (main): 200 GET https://10.0.0.101:13000/v3/projects 0.306s
2018-04-30 07:18:13.941 6870 CRITICAL tempest [-] Unhandled error: NoOptionError: No option 'username' in section: 'identity'
2018-04-30 07:18:13.941 6870 ERROR tempest Traceback (most recent call last):
2018-04-30 07:18:13.941 6870 ERROR tempest   File "/usr/bin/discover-tempest-config", line 10, in <module>
2018-04-30 07:18:13.941 6870 ERROR tempest     sys.exit(main())
2018-04-30 07:18:13.941 6870 ERROR tempest   File "/usr/lib/python2.7/site-packages/config_tempest/main.py", line 1065, in main
2018-04-30 07:18:13.941 6870 ERROR tempest     conf, services)
2018-04-30 07:18:13.941 6870 ERROR tempest   File "/usr/lib/python2.7/site-packages/config_tempest/main.py", line 602, in create_tempest_users
2018-04-30 07:18:13.941 6870 ERROR tempest     conf.get('identity', 'username'),
2018-04-30 07:18:13.941 6870 ERROR tempest   File "/usr/lib64/python2.7/ConfigParser.py", line 618, in get
2018-04-30 07:18:13.941 6870 ERROR tempest     raise NoOptionError(option, section)
2018-04-30 07:18:13.941 6870 ERROR tempest NoOptionError: No option 'username' in section: 'identity'
2018-04-30 07:18:13.941 6870 ERROR tempest

Comment 4 Martin Kopec 2018-05-03 08:08:51 UTC
Hi Sasha,

please try this workflow:
1. $ tempest init <workspace>
2. $ cd <workspace>
3. $ discover-tempest-config --deployer-input ~/tempest-deployer-input.conf --debug --create identity.uri $OS_AUTH_URL identity.admin_password $OS_PASSWORD

tempest init creates a workspace which contains default-overrides.conf with default values needed by python-tempestconf. There is a plan to get rid of this dependency and make python-tempestconf to be able to discover it itself, but for now, the file is needed.

Comment 5 Sasha Smolyak 2018-05-13 06:46:40 UTC
The workflow worked for me

Comment 6 Martin Kopec 2018-06-07 15:38:07 UTC
Just a note, deployer file will be loaded automatically in the future, here is the link for the review:
https://review.openstack.org/#/c/566537/

Also we are removing the default-overrides.conf by this review:
https://review.openstack.org/#/c/572418/

When merged, the changes should be available in python-tempestconf-2.0


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