Fix transient clusters termination
The problem started to appear in our CI jobs on March 26. See the bug description for details. Closes-Bug: #1298391 Change-Id: I4b4102f12efd27be13255e7b0ca120d66a078673
This commit is contained in:
parent
ccd286f9b3
commit
e15ff0498e
|
@ -29,11 +29,10 @@ CONF = cfg.CONF
|
|||
def create_trust(cluster):
|
||||
client = keystone.client()
|
||||
|
||||
trustee_id = keystone.client_for_trusts(
|
||||
CONF.os_admin_username,
|
||||
CONF.os_admin_password,
|
||||
None).user_id
|
||||
ctx = context.current()
|
||||
|
||||
trustee_id = keystone.client_for_admin(ctx.tenant_id).user_id
|
||||
|
||||
trust = client.trusts.create(trustor_user=client.user_id,
|
||||
trustee_user=trustee_id,
|
||||
impersonation=True,
|
||||
|
@ -49,10 +48,7 @@ def use_os_admin_auth_token(cluster):
|
|||
ctx = context.current()
|
||||
ctx.username = CONF.os_admin_username
|
||||
ctx.tenant_id = cluster.tenant_id
|
||||
client = keystone.client_for_trusts(
|
||||
CONF.os_admin_username,
|
||||
CONF.os_admin_password,
|
||||
cluster.trust_id)
|
||||
client = keystone.client_for_trusts(cluster.trust_id)
|
||||
ctx.token = client.auth_token
|
||||
ctx.service_catalog = json.dumps(
|
||||
client.service_catalog.catalog['catalog'])
|
||||
|
@ -60,8 +56,5 @@ def use_os_admin_auth_token(cluster):
|
|||
|
||||
def delete_trust(cluster):
|
||||
if cluster.trust_id:
|
||||
keystone_client = keystone.client_for_trusts(
|
||||
CONF.os_admin_username,
|
||||
CONF.os_admin_password,
|
||||
cluster.trust_id)
|
||||
keystone_client = keystone.client_for_trusts(cluster.trust_id)
|
||||
keystone_client.trusts.delete(cluster.trust_id)
|
||||
|
|
|
@ -52,17 +52,24 @@ def client():
|
|||
return keystone
|
||||
|
||||
|
||||
def client_for_trusts(username, password, trust_id):
|
||||
def _admin_client(tenant_id=None, trust_id=None):
|
||||
if not CONF.use_identity_api_v3:
|
||||
raise Exception('Trusts aren\'t implemented in keystone api'
|
||||
' less than v3')
|
||||
|
||||
ctx = context.current()
|
||||
auth_url = base.retrieve_auth_url()
|
||||
keystone = keystone_client_v3.Client(username=username,
|
||||
password=password,
|
||||
tenant_id=ctx.tenant_id,
|
||||
keystone = keystone_client_v3.Client(username=CONF.os_admin_username,
|
||||
password=CONF.os_admin_password,
|
||||
tenant_id=tenant_id,
|
||||
auth_url=auth_url,
|
||||
trust_id=trust_id)
|
||||
keystone.management_url = auth_url
|
||||
return keystone
|
||||
|
||||
|
||||
def client_for_admin(tenant_id):
|
||||
return _admin_client(tenant_id=tenant_id)
|
||||
|
||||
|
||||
def client_for_trusts(trust_id):
|
||||
return _admin_client(trust_id=trust_id)
|
||||
|
|
Loading…
Reference in New Issue