Tempest against openstack deployed with keystone v3 only, fails to initialize
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tempest |
Fix Released
|
Medium
|
Andrea Frittoli |
Bug Description
PROBLEM:
When running tempest against openstack that has only keystone v3 established( no identity v2) , tempest requires us to set the value of "uri" in tempest.conf even though "uri_v3" is set and it should suffice. This was observed when first:
i) uri was set to None , and uri_v3 to <keystone_
ii) api_v2 was set to "false" and api_v3 was set to "true".
The following stacktrace was seen:
01:24:12 =======
01:24:12 FAIL: setUpClass (tempest.
01:24:12 -------
01:24:12 Traceback (most recent call last):
01:24:12 testtools.
01:24:12 File "/var/lib/
01:24:12 cls.setup_
01:24:12 File "/var/lib/
01:24:12 super(BaseCompu
01:24:12 File "/var/lib/
01:24:12 credential_
01:24:12 File "/var/lib/
01:24:12 identity_
01:24:12 File "/var/lib/
01:24:12 identity_
01:24:12 File "/var/lib/
01:24:12 self._get_
01:24:12 File "/var/lib/
01:24:12 os = clients.
01:24:12 File "/var/lib/
01:24:12 self._set_
01:24:12 File "/var/lib/
01:24:12 **self.
01:24:12 File "/var/lib/
01:24:12 if 'tokens' not in auth_url:
01:24:12 TypeError: argument of type 'NoneType' is not iterable
=======
WORKAROUND:
After that , setting uri value to same as uri_v3 ( because we only have v3) , it got past this initialization.
This suggests tempest should have a better check for :
>> if only v3 is enabled, then setting uri_v3 should suffice and uri should be ignored , based now what we set the bool for api_v2 and api_v3 parameters in tempest.conf.
description: | updated |
tags: | added: v3 |
summary: |
- Tempest against cloud deployed with keystone v3 only fails to initialize + Tempest against openstack deployed with keystone v3 only, fails to + initialize |
Changed in tempest: | |
status: | New → Confirmed |
Changed in tempest: | |
importance: | Undecided → Medium |
UPDATE ON THIS BUG:
We finally hacked around tempest.conf to make it work so tempest can successfully initiate against openstack deployed with Keystone V3 ( remember our cloud has V3 only, there is no v2 so following options are only valid if your cloud is deployed in same way ie.e with keystone v3).
* First thing we did, we commented everything in tempest.conf that was related to tenant. The concept of tenant is entirely different in keystone v3 so parameters like "admin_tenant_id* , *tenant_id* , *admin_tenant_name* ALL NEED TO BE COMMENTED OUT. You should not set any value whatsoever for these params if your cloud only has v3.
* You should give some value for "uri" even though you already set "uri_v3" to correct keystone v3 url , you set api_v2=false and api_v3=true and also set auth_version=3, it WILL STILL NEED YOU TO SET VALUE OF "uri". This is a bug in tempest that needs urgent addressing, and for that workaround, we just change v3 to v2.0 in our OS_AUTH_URL and assigned it to "uri"
e.g. lets say our OS_AUTH_ URL=htttp: //10.0. 2.15:35357/ v3 so uri_v3 will be same as OIS_AUTH__URL.
but you should not leave uri empty, doesnt make sense since cloud only has v3 but hopefully this issue will be solved sooner rather than later by tempest, so lets see how to assign uri.
on bash you will do : KS_V2_URL= `echo $OS_AUTH_URL | sed 's/v3/v2.0/;' `
so KS_V2_URL will be the value of uri in tempest.conf.
======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ====