adapter client will not retry on openstack failure 94/89894/1
authorSangalang, Felix <felix.sangalang@att.com>
Fri, 14 Jun 2019 13:40:04 +0000 (09:40 -0400)
committerBenjamin, Max (mb388a) <mb388a@us.att.com>
Fri, 14 Jun 2019 13:40:10 +0000 (09:40 -0400)
Utilized the original util method with boolean argument.
inventory audit: adapter client should not retry on openstack failures.

Change-Id: Ibdcec58c662f54ccef887e74f17634baa9df2457
Issue-ID: SO-2016
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/CinderClientImpl.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/GlanceClientImpl.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoCommonUtils.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoHeatUtils.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoNeutronUtils.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/NeutronClientImpl.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/NovaClientImpl.java
adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoCommonUtilsTest.java

index 567f849..b0c2d94 100644 (file)
@@ -76,7 +76,7 @@ public class CinderClientImpl extends MsoCommonUtils {
             // list is set to false, otherwise an invalid URL is appended
             OpenStackRequest<Volumes> request =
                     cinderClient.volumes().list(false).queryParam("limit", limit).queryParam("marker", marker);
-            return executeAndRecordOpenstackRequest(request);
+            return executeAndRecordOpenstackRequest(request, false);
         } catch (MsoException e) {
             logger.error("Error building Cinder Client", e);
             throw new CinderClientException("Error building Cinder Client", e);
@@ -90,7 +90,7 @@ public class CinderClientImpl extends MsoCommonUtils {
             Cinder cinderClient = getCinderClient(cloudSiteId, tenantId);
             // list is set to false, otherwise an invalid URL is appended
             OpenStackRequest<Volume> request = cinderClient.volumes().show(volumeId);
-            return executeAndRecordOpenstackRequest(request);
+            return executeAndRecordOpenstackRequest(request, false);
         } catch (MsoException e) {
             logger.error("Error building Cinder Client", e);
             throw new CinderClientException("Error building Cinder Client", e);
index 57faaac..698b605 100644 (file)
@@ -74,7 +74,7 @@ public class GlanceClientImpl extends MsoCommonUtils {
             // list is set to false, otherwise an invalid URL is appended
             OpenStackRequest<Images> request = glanceClient.images().list(false).queryParam("visibility", visibility)
                     .queryParam("limit", limit).queryParam("marker", marker).queryParam("name", name);
-            return executeAndRecordOpenstackRequest(request);
+            return executeAndRecordOpenstackRequest(request, false);
         } catch (MsoException e) {
             logger.error("Error building Glance Client", e);
             throw new GlanceClientException("Error building Glance Client", e);
index 4ea205a..576784a 100644 (file)
@@ -98,19 +98,23 @@ public class MsoCommonUtils {
      */
 
     protected <T> T executeAndRecordOpenstackRequest(OpenStackRequest<T> request) {
+        return executeAndRecordOpenstackRequest(request, true);
+    }
 
-        String requestType;
-        if (request.getClass().getEnclosingClass() != null) {
-            requestType =
-                    request.getClass().getEnclosingClass().getSimpleName() + "." + request.getClass().getSimpleName();
-        } else {
-            requestType = request.getClass().getSimpleName();
-        }
+    /*
+     * Method to execute an Openstack command and track its execution time. For the metrics log, a category of
+     * "Openstack" is used along with a sub-category that identifies the specific call (using the real
+     * openstack-java-sdk classname of the OpenStackRequest<T> parameter). boolean isNoRetry - true if No retry; and
+     * false if Retry.
+     */
 
+    protected <T> T executeAndRecordOpenstackRequest(OpenStackRequest<T> request, boolean shouldRetry) {
         int retryDelay = poConfig.getRetryDelay();
         int retryCount = poConfig.getRetryCount();
         String retryCodes = poConfig.getRetryCodes();
-
+        if (!shouldRetry) {
+            retryCodes = null;
+        }
         // Run the actual command. All exceptions will be propagated
         while (true) {
             try {
index c323bb6..711fae9 100644 (file)
@@ -1239,7 +1239,7 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin {
         Heat heatClient = getHeatClient(cloudSiteId, tenantId);
         OpenStackRequest<Resources> request =
                 heatClient.getResources().listResources(stackName).queryParam("nested_depth", nestedDepth);
-        return executeAndRecordOpenstackRequest(request);
+        return executeAndRecordOpenstackRequest(request, false);
     }
 
     public Events queryStackEvents(String cloudSiteId, String tenantId, String stackName, String stackId,
@@ -1247,7 +1247,7 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin {
         Heat heatClient = getHeatClient(cloudSiteId, tenantId);
         OpenStackRequest<Events> request =
                 heatClient.getEvents().listEvents(stackName, stackId).queryParam("nested_depth", nestedDepth);
-        return executeAndRecordOpenstackRequest(request);
+        return executeAndRecordOpenstackRequest(request, false);
     }
 
     public Stacks queryStacks(String cloudSiteId, String tenantId, int limit, String marker)
@@ -1261,14 +1261,14 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin {
         }
         OpenStackRequest<Stacks> request =
                 heatClient.getStacks().list().queryParam("limit", limit).queryParam("marker", marker);
-        return executeAndRecordOpenstackRequest(request);
+        return executeAndRecordOpenstackRequest(request, false);
     }
 
     public <R> R executeHeatClientRequest(String url, String cloudSiteId, String tenantId, Class<R> returnType)
             throws MsoException {
         Heat heatClient = getHeatClient(cloudSiteId, tenantId);
         OpenStackRequest<R> request = heatClient.get(url, returnType);
-        return executeAndRecordOpenstackRequest(request);
+        return executeAndRecordOpenstackRequest(request, false);
     }
 
     protected void sleep(long time) {
index 6f08afc..069c6c7 100644 (file)
@@ -382,7 +382,7 @@ public class MsoNeutronUtils extends MsoCommonUtils {
                 Authentication credentials = authenticationMethodFactory.getAuthenticationFor(cloudIdentity);
                 OpenStackRequest<Access> request =
                         keystoneTenantClient.tokens().authenticate(credentials).withTenantId(tenantId);
-                access = executeAndRecordOpenstackRequest(request);
+                access = executeAndRecordOpenstackRequest(request, true);
 
 
                 try {
@@ -499,7 +499,7 @@ public class MsoNeutronUtils extends MsoCommonUtils {
 
         try {
             OpenStackRequest<Port> request = neutronClient.ports().show(neutronPortId);
-            Port port = executeAndRecordOpenstackRequest(request);
+            Port port = executeAndRecordOpenstackRequest(request, false);
             return port;
         } catch (OpenStackResponseException e) {
             if (e.getStatus() == 404) {
index 93745de..938a888 100644 (file)
@@ -75,7 +75,7 @@ public class NeutronClientImpl extends MsoCommonUtils {
             Quantum neutronClient = getNeutronClient(cloudSiteId, tenantId);
             OpenStackRequest<Networks> request = neutronClient.networks().list().queryParam("id", id)
                     .queryParam("limit", limit).queryParam("marker", marker).queryParam("name", name);
-            return executeAndRecordOpenstackRequest(request);
+            return executeAndRecordOpenstackRequest(request, false);
         } catch (MsoException e) {
             logger.error("Error building Neutron Client", e);
             throw new NeutronClientException("Error building Neutron Client", e);
@@ -103,7 +103,7 @@ public class NeutronClientImpl extends MsoCommonUtils {
             Quantum neutronClient = getNeutronClient(cloudSiteId, tenantId);
             OpenStackRequest<Subnets> request = neutronClient.subnets().list().queryParam("id", id)
                     .queryParam("limit", limit).queryParam("marker", marker).queryParam("name", name);
-            return executeAndRecordOpenstackRequest(request);
+            return executeAndRecordOpenstackRequest(request, false);
         } catch (MsoException e) {
             logger.error("Error building Neutron Client", e);
             throw new NeutronClientException("Error building Neutron Client", e);
index 6cd79de..99e8b58 100644 (file)
@@ -78,7 +78,7 @@ public class NovaClientImpl extends MsoCommonUtils {
             Nova novaClient = getNovaClient(cloudSiteId, tenantId);
             OpenStackRequest<Flavors> request =
                     novaClient.flavors().list(false).queryParam("limit", limit).queryParam("marker", marker);
-            return executeAndRecordOpenstackRequest(request);
+            return executeAndRecordOpenstackRequest(request, false);
         } catch (MsoException e) {
             logger.error("Error building Nova Client", e);
             throw new NovaClientException("Error building Nova Client", e);
@@ -103,7 +103,7 @@ public class NovaClientImpl extends MsoCommonUtils {
             Nova novaClient = getNovaClient(cloudSiteId, tenantId);
             novaClient = getNovaClient(cloudSiteId, tenantId);
             OpenStackRequest<Flavor> request = novaClient.flavors().show(id);
-            return executeAndRecordOpenstackRequest(request);
+            return executeAndRecordOpenstackRequest(request, false);
         } catch (MsoException e) {
             logger.error("Error building Nova Client", e);
             throw new NovaClientException("Error building Nova Client", e);
@@ -128,7 +128,7 @@ public class NovaClientImpl extends MsoCommonUtils {
             Nova novaClient = getNovaClient(cloudSiteId, tenantId);
             OpenStackRequest<HostAggregates> request =
                     novaClient.aggregates().list().queryParam("limit", limit).queryParam("marker", marker);
-            return executeAndRecordOpenstackRequest(request);
+            return executeAndRecordOpenstackRequest(request, false);
         } catch (MsoException e) {
             logger.error("Error building Nova Client", e);
             throw new NovaClientException("Error building Nova Client", e);
@@ -152,7 +152,7 @@ public class NovaClientImpl extends MsoCommonUtils {
         try {
             Nova novaClient = getNovaClient(cloudSiteId, tenantId);
             OpenStackRequest<HostAggregate> request = novaClient.aggregates().showAggregate(id);
-            return executeAndRecordOpenstackRequest(request);
+            return executeAndRecordOpenstackRequest(request, false);
         } catch (MsoException e) {
             logger.error("Error building Nova Client", e);
             throw new NovaClientException("Error building Nova Client", e);
@@ -176,7 +176,7 @@ public class NovaClientImpl extends MsoCommonUtils {
         try {
             Nova novaClient = getNovaClient(cloudSiteId, tenantId);
             OpenStackRequest<QuotaSet> request = novaClient.quotaSets().showQuota(tenantId);
-            return executeAndRecordOpenstackRequest(request);
+            return executeAndRecordOpenstackRequest(request, false);
         } catch (MsoException e) {
             logger.error("Error building Nova Client", e);
             throw new NovaClientException("Error building Nova Client", e);
@@ -198,7 +198,7 @@ public class NovaClientImpl extends MsoCommonUtils {
         try {
             Nova novaClient = getNovaClient(cloudSiteId, tenantId);
             OpenStackRequest<Void> request = novaClient.keyPairs().delete(keyPairName);
-            executeAndRecordOpenstackRequest(request);
+            executeAndRecordOpenstackRequest(request, false);
         } catch (MsoException e) {
             logger.error("Error building Nova Client", e);
             throw new NovaClientException("Error building Nova Client", e);
index 5cf7c86..622ad4f 100644 (file)
@@ -69,6 +69,7 @@ public class MsoCommonUtilsTest extends BaseTest {
         Mockito.when(openstackRequest.path()).thenReturn("/test");
         // TODO:Must try a real connection
         assertNull(commonUtils.executeAndRecordOpenstackRequest(openstackRequest));
+        assertNull(commonUtils.executeAndRecordOpenstackRequest(openstackRequest, true));
     }
 
     @Test
@@ -78,6 +79,7 @@ public class MsoCommonUtilsTest extends BaseTest {
         doThrow(OpenStackResponseException.class).when(openstackRequest).execute();
 
         commonUtils.executeAndRecordOpenstackRequest(openstackRequest);
+        commonUtils.executeAndRecordOpenstackRequest(openstackRequest, true);
     }
 
     @Test
@@ -86,7 +88,7 @@ public class MsoCommonUtilsTest extends BaseTest {
 
         doThrow(OpenStackConnectException.class).when(openstackRequest).execute();
 
-        commonUtils.executeAndRecordOpenstackRequest(openstackRequest);
+        commonUtils.executeAndRecordOpenstackRequest(openstackRequest, true);
     }
 
     @Test