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;
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;
private final ObjectMapper objectMapper;
- private final RappCacheService rappCacheService;
-
private final RappInstanceStateMachine rappInstanceStateMachine;
private String amfRegistrationId;
@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
@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 =
}
- 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 =
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);
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());