From 015f061e70315a7b178f52980bcc2ea1518e0d56 Mon Sep 17 00:00:00 2001 From: Rudra Rugge Date: Mon, 20 Jul 2015 10:26:09 -0700 Subject: [PATCH] Reauthenicate nova token 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 --- src/config/svc-monitor/svc_monitor/nova_client.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/config/svc-monitor/svc_monitor/nova_client.py b/src/config/svc-monitor/svc_monitor/nova_client.py index 53fb76999b4..47296eda012 100644 --- a/src/config/svc-monitor/svc_monitor/nova_client.py +++ b/src/config/svc-monitor/svc_monitor/nova_client.py @@ -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) @@ -44,6 +46,8 @@ 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 @@ -51,11 +55,11 @@ def _novaclient_exec(self, resource, oper, proj_name, **kwargs): 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"