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 b9c8004 commit 015f061
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 015f061

Please sign in to comment.