import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-
import java.io.IOException;
import java.util.HashSet;
import java.util.List;
import java.util.Map.Entry;
-
import org.json.simple.parser.ParseException;
import org.onap.clamp.clds.client.DcaeInventoryServices;
import org.onap.clamp.clds.client.PolicyEngineServices;
import org.onap.clamp.clds.sdc.controller.installer.BlueprintParser;
import org.onap.clamp.clds.sdc.controller.installer.ChainGenerator;
import org.onap.clamp.clds.sdc.controller.installer.CsarHandler;
-import org.onap.clamp.clds.util.drawing.SvgFacade;
+import org.onap.clamp.loop.cds.CdsDataInstaller;
import org.onap.clamp.loop.service.CsarServiceInstaller;
import org.onap.clamp.loop.service.Service;
import org.onap.clamp.loop.template.LoopElementModel;
private DcaeInventoryServices dcaeInventoryService;
@Autowired
- private SvgFacade svgFacade;
+ private CsarServiceInstaller csarServiceInstaller;
@Autowired
- private CsarServiceInstaller csarServiceInstaller;
+ private CdsDataInstaller cdsDataInstaller;
@Autowired
private PolicyEngineServices policyEngineServices;
/**
* Verify whether Csar is deployed.
- *
+ *
* @param csar The Csar Handler
* @return The flag indicating whether Csar is deployed
* @throws SdcArtifactInstallerException The SdcArtifactInstallerException
for (Entry<String, BlueprintArtifact> blueprint : csar.getMapOfBlueprints().entrySet()) {
alreadyInstalled = alreadyInstalled
&& loopTemplatesRepository.existsById(LoopTemplate.generateLoopTemplateName(
- csar.getSdcNotification().getServiceName(), csar.getSdcNotification().getServiceVersion(),
- blueprint.getValue().getResourceAttached().getResourceInstanceName(),
- blueprint.getValue().getBlueprintArtifactName()));
+ csar.getSdcNotification().getServiceName(), csar.getSdcNotification().getServiceVersion(),
+ blueprint.getValue().getResourceAttached().getResourceInstanceName(),
+ blueprint.getValue().getBlueprintArtifactName()));
}
return alreadyInstalled;
}
/**
* Install the service and loop templates from the csar.
- *
+ *
* @param csar The Csar Handler
* @throws SdcArtifactInstallerException The SdcArtifactInstallerException
* @throws InterruptedException The InterruptedException
public void installTheCsar(CsarHandler csar)
throws SdcArtifactInstallerException, InterruptedException, BlueprintParserException {
logger.info("Installing the CSAR " + csar.getFilePath());
- installTheLoopTemplates(csar, csarServiceInstaller.installTheService(csar));
+ Service associatedService = csarServiceInstaller.installTheService(csar);
+ cdsDataInstaller.installCdsServiceProperties(csar, associatedService);
+
+ installTheLoopTemplates(csar, associatedService);
logger.info("Successfully installed the CSAR " + csar.getFilePath());
}
/**
* Install the loop templates from the csar.
- *
+ *
* @param csar The Csar Handler
* @param service The service object that is related to the loop
* @throws SdcArtifactInstallerException The SdcArtifactInstallerException
}
private LoopTemplate createLoopTemplateFromBlueprint(CsarHandler csar, BlueprintArtifact blueprintArtifact,
- Service service) throws IOException, ParseException, InterruptedException, BlueprintParserException {
+ Service service)
+ throws IOException, ParseException, InterruptedException, BlueprintParserException,
+ SdcArtifactInstallerException {
LoopTemplate newLoopTemplate = new LoopTemplate();
newLoopTemplate.setBlueprint(blueprintArtifact.getDcaeBlueprint());
newLoopTemplate.setName(LoopTemplate.generateLoopTemplateName(csar.getSdcNotification().getServiceName(),
microServicesChain = BlueprintParser.fallbackToOneMicroService();
}
newLoopTemplate.setModelService(service);
- newLoopTemplate.addLoopElementModels(createMicroServiceModels(microServicesChain));
+ newLoopTemplate.addLoopElementModels(createMicroServiceModels(blueprintArtifact, microServicesChain));
newLoopTemplate.setMaximumInstancesAllowed(0);
- newLoopTemplate.setSvgRepresentation(svgFacade.getSvgImage(microServicesChain));
DcaeInventoryResponse dcaeResponse = queryDcaeToGetServiceTypeId(blueprintArtifact);
newLoopTemplate.setDcaeBlueprintId(dcaeResponse.getTypeId());
return newLoopTemplate;
}
- private HashSet<LoopElementModel> createMicroServiceModels(List<BlueprintMicroService> microServicesChain)
- throws InterruptedException {
+ private HashSet<LoopElementModel> createMicroServiceModels(BlueprintArtifact blueprintArtifact,
+ List<BlueprintMicroService> microServicesChain)
+ throws SdcArtifactInstallerException {
HashSet<LoopElementModel> newSet = new HashSet<>();
for (BlueprintMicroService microService : microServicesChain) {
- LoopElementModel loopElementModel = new LoopElementModel(microService.getModelType(), "CONFIG_POLICY",
- null);
+ LoopElementModel loopElementModel =
+ new LoopElementModel(microService.getModelType(), LoopElementModel.MICRO_SERVICE_TYPE,
+ null);
newSet.add(loopElementModel);
- loopElementModel.addPolicyModel(getPolicyModel(microService));
+ PolicyModel newPolicyModel = policyEngineServices.createPolicyModelFromPolicyEngine(microService);
+ if (newPolicyModel != null) {
+ loopElementModel.addPolicyModel(newPolicyModel);
+ } else {
+ throw new SdcArtifactInstallerException(
+ "Unable to find the policy specified in the blueprint " +
+ blueprintArtifact.getBlueprintArtifactName() + ") on the Policy Engine:" +
+ microService.getModelType() + "/" + microService.getModelVersion());
+ }
}
return newSet;
}
- private PolicyModel getPolicyModel(BlueprintMicroService microService) throws InterruptedException {
- return policyModelsRepository
- .findById(new PolicyModelId(microService.getModelType(), microService.getModelVersion()))
- .orElse(policyEngineServices.createPolicyModelFromPolicyEngine(microService));
- }
-
/**
* Get the service blueprint Id in the Dcae inventory using the SDC UUID.
*