Support for optional rApp and rApp instance parameters
[nonrtric/plt/rappmanager.git] / rapp-manager-sme / src / main / java / com / oransc / rappmanager / sme / service / SmeDeployer.java
index 1760e9c..2050b51 100755 (executable)
 
 package com.oransc.rappmanager.sme.service;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.oransc.rappmanager.models.rapp.Rapp;
-import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler;
 import com.oransc.rappmanager.models.RappDeployer;
+import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler;
+import com.oransc.rappmanager.models.rapp.Rapp;
 import com.oransc.rappmanager.models.rapp.RappEvent;
 import com.oransc.rappmanager.models.rappinstance.RappInstance;
-import com.oransc.rappmanager.models.cache.RappCacheService;
 import com.oransc.rappmanager.models.statemachine.RappInstanceStateMachine;
 import com.oransc.rappmanager.sme.invoker.data.APIInvokerEnrolmentDetails;
 import com.oransc.rappmanager.sme.provider.data.APIProviderEnrolmentDetails;
@@ -49,6 +47,7 @@ public class SmeDeployer implements RappDeployer {
 
     private final com.oransc.rappmanager.sme.provider.rest.DefaultApiClient providerDefaultApiClient;
 
+
     private final com.oransc.rappmanager.sme.publishservice.rest.DefaultApiClient publishServiceDefaultApiClient;
 
     private final com.oransc.rappmanager.sme.invoker.rest.DefaultApiClient invokerDefaultApiClient;
@@ -57,8 +56,6 @@ public class SmeDeployer implements RappDeployer {
 
     private final ObjectMapper objectMapper;
 
-    private final RappCacheService rappCacheService;
-
     private final RappInstanceStateMachine rappInstanceStateMachine;
 
     private String amfRegistrationId;
@@ -91,36 +88,38 @@ public class SmeDeployer implements RappDeployer {
     @Override
     public boolean deployRappInstance(Rapp rapp, RappInstance rappInstance) {
         logger.debug("Deploying SME functions for RappInstance {}", rappInstance.getRappInstanceId());
-        try {
-            boolean deployState =
-                    createProviderDomain(rapp, rappInstance) && createPublishApi(rapp, rappInstance) && createInvoker(
-                            rapp, rappInstance);
-            if (deployState) {
+        if (rappInstance.isSMEEnabled()) {
+            if (createProviderDomain(rapp, rappInstance) && createPublishApi(rapp, rappInstance) && createInvoker(rapp,
+                    rappInstance)) {
                 rappInstanceStateMachine.sendRappInstanceEvent(rappInstance, RappEvent.SMEDEPLOYED);
-            } else {
-                rappInstanceStateMachine.sendRappInstanceEvent(rappInstance, RappEvent.SMEDEPLOYFAILED);
+                return true;
             }
-            return deployState;
-        } catch (JsonProcessingException e) {
-            logger.warn("Failed to deploy SME functions for Rapp {}", rapp.getName(), e);
+            rappInstanceStateMachine.sendRappInstanceEvent(rappInstance, RappEvent.SMEDEPLOYFAILED);
+            rappInstance.setReason("Unable to deploy SME");
+            return false;
         }
-        return false;
+        return true;
     }
 
     @Override
     public boolean undeployRappInstance(Rapp rapp, RappInstance rappInstance) {
         logger.debug("Undeploying SME functions for Rapp {}", rapp.getName());
-        try {
-            rappInstance.getSme().getInvokerIds().forEach(this::deleteInvoker);
-            rappInstance.getSme().getServiceApiIds()
-                    .forEach(s -> deletePublishApi(s, rappInstance.getSme().getApfId()));
-            rappInstance.getSme().getProviderFunctionIds().forEach(this::deleteProviderFunc);
-            rappInstanceStateMachine.sendRappInstanceEvent(rappInstance, RappEvent.SMEUNDEPLOYED);
-            return true;
-        } catch (Exception e) {
-            logger.warn("Failed to Undeploy SME functions for Rapp {}", rapp.getName(), e);
+        if (rappInstance.isSMEEnabled()) {
+            try {
+                rappInstance.getSme().getInvokerIds().forEach(this::deleteInvoker);
+                rappInstance.getSme().getServiceApiIds()
+                        .forEach(s -> deletePublishApi(s, rappInstance.getSme().getApfId()));
+                rappInstance.getSme().getProviderFunctionIds().forEach(this::deleteProviderFunc);
+                rappInstanceStateMachine.sendRappInstanceEvent(rappInstance, RappEvent.SMEUNDEPLOYED);
+                return true;
+            } catch (Exception e) {
+                logger.warn("Failed to Undeploy SME functions for Rapp {}", rapp.getName(), e);
+            }
+            rappInstanceStateMachine.sendRappInstanceEvent(rappInstance, RappEvent.SMEUNDEPLOYFAILED);
+            rappInstance.setReason("Unable to undeploy SME");
+            return false;
         }
-        return false;
+        return true;
     }
 
     @Override
@@ -131,11 +130,11 @@ public class SmeDeployer implements RappDeployer {
 
     @Override
     public boolean deprimeRapp(Rapp rapp) {
-        //If there is any deprimgng operations
+        //If there is any depriming operations
         return true;
     }
 
-    boolean createProviderDomain(Rapp rapp, RappInstance rappInstance) throws JsonProcessingException {
+    boolean createProviderDomain(Rapp rapp, RappInstance rappInstance) {
         logger.debug("Creating provider domain for Rapp {}", rapp.getName());
         try {
             String providerDomainPayload =
@@ -182,7 +181,7 @@ public class SmeDeployer implements RappDeployer {
     }
 
 
-    boolean createPublishApi(Rapp rapp, RappInstance rappInstance) throws JsonProcessingException {
+    boolean createPublishApi(Rapp rapp, RappInstance rappInstance) {
         logger.debug("Creating publish api for Rapp {}", rapp.getName());
         try {
             String providerApiPayload =
@@ -190,7 +189,8 @@ public class SmeDeployer implements RappDeployer {
             if (providerApiPayload != null) {
                 ServiceAPIDescription serviceAPIDescription =
                         objectMapper.readValue(providerApiPayload, ServiceAPIDescription.class);
-                serviceAPIDescription.getAefProfiles().forEach(aefProfile -> aefProfile.setAefId(rappInstance.getSme().getAefId()));
+                serviceAPIDescription.getAefProfiles()
+                        .forEach(aefProfile -> aefProfile.setAefId(rappInstance.getSme().getAefId()));
                 ServiceAPIDescription serviceAPIDescriptionResponse =
                         publishServiceDefaultApiClient.postApfIdServiceApis(rappInstance.getSme().getApfId(),
                                 serviceAPIDescription);
@@ -210,7 +210,7 @@ public class SmeDeployer implements RappDeployer {
         publishServiceDefaultApiClient.deleteApfIdServiceApisServiceApiId(serviceApiId, apfId);
     }
 
-    boolean createInvoker(Rapp rapp, RappInstance rappInstance) throws JsonProcessingException {
+    boolean createInvoker(Rapp rapp, RappInstance rappInstance) {
         logger.debug("Creating provider domain for Rapp {}", rapp.getName());
         try {
             String invokerPayload = rappCsarConfigurationHandler.getSmeInvokerPayload(rapp, rappInstance.getSme());