Skip to content

Commit

Permalink
Reauthenicate nova token
Browse files Browse the repository at this point in the history
Nova reauthenticate needs to be done when Unauthorized
exception is raised. This exception needs to be raised
to the caller.

Change-Id: Ie7f94e53c8b22b5880b15b2856781a49b27bdd5f
Closes-Bug: #1463745
  • Loading branch information
rrugge committed Jul 20, 2015
1 parent c6ea9ac commit 6e885f9
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions src/config/svc-monitor/svc_monitor/nova_client.py
Expand Up @@ -25,8 +25,10 @@ def _novaclient_get(self, proj_name, reauthenticate=False):
endpoint_type='internalURL')
return self._nova[proj_name]

def _novaclient_exec(self, resource, oper, proj_name, **kwargs):
n_client = self._novaclient_get(proj_name)
def _novaclient_exec(self, resource, oper, proj_name,
reauthenticate, **kwargs):
n_client = self._novaclient_get(proj_name,
reauthenticate=reauthenticate)
try:
resource_obj = getattr(n_client, resource)
oper_func = getattr(resource_obj, oper)
Expand All @@ -44,18 +46,20 @@ def _novaclient_exec(self, resource, oper, proj_name, **kwargs):
"Error: Multiple %s %s=%s found in project %s"
% (resource, kwargs.keys()[0], kwargs.values()[0], proj_name))
return None
except nc_exc.Unauthorized:
raise
except Exception as e:
self.logger.log("Error: nova error %s" % str(e))
return None

def oper(self, resource, oper, proj_name, **kwargs):
try:
return self._novaclient_exec(resource, oper,
proj_name, **kwargs)
proj_name, False, **kwargs)
except nc_exc.Unauthorized:
try:
return self._novaclient_exec(resource, oper,
proj_name, **kwargs)
proj_name, True, **kwargs)
except nc_exc.Unauthorized:
self.logger.log(
"Error: %s %s=%s not authorized in project %s"
Expand Down

0 comments on commit 6e885f9

Please sign in to comment.