X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=rapp-manager-sme%2Fsrc%2Fmain%2Fjava%2Fcom%2Foransc%2Frappmanager%2Fsme%2Fservice%2FSmeDeployer.java;h=8989e82f574c1cf11333b22af7c48e5cc8537cf6;hb=refs%2Fchanges%2F89%2F12589%2F3;hp=fc42f4d3ea2c0444fb2e548d77e4ca4850da1303;hpb=b45f4856cd283f8b9e3e3372a80767145db6b554;p=nonrtric%2Fplt%2Frappmanager.git diff --git a/rapp-manager-sme/src/main/java/com/oransc/rappmanager/sme/service/SmeDeployer.java b/rapp-manager-sme/src/main/java/com/oransc/rappmanager/sme/service/SmeDeployer.java index fc42f4d..8989e82 100755 --- a/rapp-manager-sme/src/main/java/com/oransc/rappmanager/sme/service/SmeDeployer.java +++ b/rapp-manager-sme/src/main/java/com/oransc/rappmanager/sme/service/SmeDeployer.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START====================================================================== * Copyright (C) 2023 Nordix Foundation. All rights reserved. + * Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved. * =============================================================================================== * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ 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.RappDeployer; @@ -89,36 +89,42 @@ 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 ((rappInstance.getSme().getProviderFunction() == null || createProviderDomain(rapp, rappInstance)) && ( + rappInstance.getSme().getServiceApis() == null || createPublishApi(rapp, rappInstance)) && ( + rappInstance.getSme().getInvokers() == null || 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 { + Optional.ofNullable(rappInstance.getSme().getInvokerIds()) + .ifPresent(invokerList -> invokerList.forEach(this::deleteInvoker)); + Optional.ofNullable(rappInstance.getSme().getServiceApiIds()).ifPresent( + serviceApiList -> serviceApiList.forEach( + s -> deletePublishApi(s, rappInstance.getSme().getApfId()))); + Optional.ofNullable(rappInstance.getSme().getProviderFunctionIds()) + .ifPresent(providerList -> providerList.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 @@ -133,7 +139,7 @@ public class SmeDeployer implements RappDeployer { 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 = @@ -180,7 +186,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 = @@ -209,10 +215,10 @@ 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()); + String invokerPayload = rappCsarConfigurationHandler.getSmeInvokerPayload(rapp, rappInstance); if (invokerPayload != null) { List apiInvokerEnrolmentDetails = objectMapper.readValue(invokerPayload, new TypeReference<>() { });