Merge "Heat and Synergy interfere on the management of the users trust"

This commit is contained in:
Jenkins 2017-01-25 15:35:43 +00:00 committed by Gerrit Code Review
commit 2180a51e92

View File

@ -263,24 +263,30 @@ class Worker(Thread):
blocking = True
if quota.allocate(server, blocking=blocking):
try:
km = self.keystone_manager
trust = km.getTrust(context["trust_id"])
token = trust.getToken(km.getToken().getId())
context["auth_token"] = token.getId()
context["user_id"] = token.getUser().getId()
except Exception as ex:
LOG.error("Worker %r: error on getting the token "
"for server (id=%r) reason=%s"
% (self.name, server.getId(), ex))
raise ex
try:
computes = self.nova_manager.selectComputes(request)
except Exception as ex:
LOG.warn("Worker %s: compute not found for server %r!"
" [reason=%s]" % (self.name,
server.getId(), ex))
server.getId(), ex.message))
found = False
for compute in computes:
try:
km = self.keystone_manager
trust = km.getTrust(context["trust_id"])
token = trust.getToken(km.getToken().getId())
context["auth_token"] = token.getId()
context["user_id"] = token.getUser().getId()
self.nova_manager.buildServer(request, compute)
LOG.info("Worker %r: server (id=%r) "
@ -574,13 +580,18 @@ class SchedulerManager(Manager):
km = self.keystone_manager
token_user = km.validateToken(context["auth_token"])
token_admin = km.getToken()
admin_id = token_admin.getUser().getId()
trust = None
trusts = km.getTrusts(
user_id=token_user.getUser().getId(), token=token_user)
if trusts:
trust = trusts[0]
else:
for _trust in trusts:
if _trust.getTrusteeUserId() == admin_id:
trust = _trust
break
if not trust:
trust = km.makeTrust(
token_admin.getUser().getId(), token_user)