Removing blueprints-processor
[ccsdk/features.git] / blueprints-processor / plugin / assignment-provider / src / main / java / org / onap / ccsdk / features / assignment / service / ConfigAssignmentProcessService.java
diff --git a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/features/assignment/service/ConfigAssignmentProcessService.java b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/features/assignment/service/ConfigAssignmentProcessService.java
deleted file mode 100644 (file)
index 61c0359..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
- * \r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-package org.onap.ccsdk.features.assignment.service;\r
-\r
-import java.util.HashMap;\r
-import java.util.List;\r
-import java.util.Map;\r
-import org.apache.commons.collections.CollectionUtils;\r
-import org.apache.commons.lang3.StringUtils;\r
-import org.onap.ccsdk.features.assignment.ConfigAssignmentConstants;\r
-import org.onap.ccsdk.features.assignment.data.ResourceAssignmentData;\r
-import org.onap.ccsdk.features.assignment.processor.ProcessorFactory;\r
-import org.onap.ccsdk.features.assignment.processor.ResourceAssignmentProcessor;\r
-import org.onap.ccsdk.features.data.adaptor.service.ConfigResourceService;\r
-import org.onap.ccsdk.features.generator.service.ConfigGeneratorService;\r
-import org.onap.ccsdk.features.model.ConfigModelConstant;\r
-import org.onap.ccsdk.features.model.data.ResourceAssignment;\r
-import org.onap.ccsdk.features.model.data.dict.ResourceDefinition;\r
-import org.onap.ccsdk.features.model.service.ComponentNode;\r
-import org.onap.ccsdk.features.model.service.ComponentNodeService;\r
-import org.onap.ccsdk.features.model.service.ConfigModelService;\r
-import org.onap.ccsdk.features.model.utils.ResourceAssignmentUtils;\r
-import org.onap.ccsdk.features.model.utils.TransformationUtils;\r
-import org.onap.ccsdk.features.rest.adaptor.service.ConfigRestAdaptorService;\r
-import org.onap.ccsdk.sli.core.sli.SvcLogicContext;\r
-import org.onap.ccsdk.sli.core.sli.SvcLogicException;\r
-import com.att.eelf.configuration.EELFLogger;\r
-import com.att.eelf.configuration.EELFManager;\r
-\r
-public class ConfigAssignmentProcessService {\r
-\r
-    private static EELFLogger logger = EELFManager.getInstance().getLogger(ConfigAssignmentProcessService.class);\r
-\r
-    private ComponentNodeService componentNodeService;\r
-    private ConfigResourceService configResourceService;\r
-    private ConfigModelService configModelService;\r
-    private ConfigRestAdaptorService configRestAdaptorService;\r
-    private ConfigGeneratorService configGeneratorService;\r
-\r
-    public ConfigAssignmentProcessService(ConfigResourceService configResourceService,\r
-            ConfigRestAdaptorService configRestAdaptorService, ConfigModelService configModelService,\r
-            ComponentNodeService componentNodeService, ConfigGeneratorService configGeneratorService) {\r
-        this.componentNodeService = componentNodeService;\r
-        this.configResourceService = configResourceService;\r
-        this.configModelService = configModelService;\r
-        this.configRestAdaptorService = configRestAdaptorService;\r
-        this.configGeneratorService = configGeneratorService;\r
-    }\r
-\r
-    @SuppressWarnings("squid:S1141")\r
-    public void resolveResources(ResourceAssignmentData resourceAssignmentData) throws SvcLogicException {\r
-        try {\r
-            validateInputParams(resourceAssignmentData);\r
-\r
-            String serviceTemplateName = resourceAssignmentData.getServiceTemplateName();\r
-            String serviceTemplateVersion = resourceAssignmentData.getServiceTemplateVersion();\r
-            String actionName = resourceAssignmentData.getActionName();\r
-            String inputData = resourceAssignmentData.getInputData();\r
-            SvcLogicContext svcLogicContext = resourceAssignmentData.getSvcLogicContext();\r
-            List<String> templateNames = resourceAssignmentData.getTemplateNames();\r
-\r
-            if (resourceAssignmentData.isReloadModel()) {\r
-                Map<String, String> context = new HashMap<>();\r
-                context.put(ConfigModelConstant.PROPERTY_ACTION_NAME, actionName);\r
-                context = configModelService.prepareContext(context, inputData, serviceTemplateName,\r
-                        serviceTemplateVersion);\r
-                context.forEach((key, value) -> svcLogicContext.setAttribute(key, value));\r
-                logger.info("List of Resources provided in input: {}", svcLogicContext.toProperties());\r
-            }\r
-\r
-            Map<String, Object> componentContext = resourceAssignmentData.getContext();\r
-\r
-            if (CollectionUtils.isNotEmpty(templateNames)) {\r
-                // Get the Resource Assignments for templates and Validate the mappings\r
-                ResourceModelService resourceModelService = new ResourceModelService(configModelService);\r
-\r
-                // Get the Resource Assignment\r
-                Map<String, List<ResourceAssignment>> templatesResourceAssignments =\r
-                        resourceModelService.getTemplatesResourceAssignments(svcLogicContext, templateNames);\r
-\r
-                // Get the Template Contents\r
-                Map<String, String> templatesContents =\r
-                        resourceModelService.getTemplatesContents(svcLogicContext, templateNames);\r
-\r
-                // Process each template\r
-                for (String templateName : templateNames) {\r
-                    List<ResourceAssignment> resourceAssignments = templatesResourceAssignments.get(templateName);\r
-                    String templateContent = templatesContents.get(templateName);\r
-                    if (resourceAssignments != null) {\r
-                        String templateData = null;\r
-                        try {\r
-                            // Populate the Dictionary\r
-                            ResourceDictionaryService resourceDictionaryService =\r
-                                    new ResourceDictionaryService(configRestAdaptorService);\r
-                            Map<String, ResourceDefinition> dictionaries =\r
-                                    resourceDictionaryService.getDataDictionaryDefinitions(resourceAssignments);\r
-\r
-                            processResourceAssignments(resourceAssignmentData, svcLogicContext, componentContext,\r
-                                    templateName, resourceAssignments, dictionaries);\r
-\r
-                            logger.info("decrypting config data for templateName {}", templateName);\r
-                            templateData =\r
-                                    ResourceAssignmentUtils.generateResourceDataForAssignments(resourceAssignments);\r
-                        } finally {\r
-                            saveResourceMapping(resourceAssignmentData, templateName, resourceAssignments);\r
-                        }\r
-\r
-                        logger.info("generating config preview for templateName {}", templateName);\r
-                        ConfigPreviewService configPreviewService = new ConfigPreviewService(configResourceService,\r
-                                configModelService, configGeneratorService);\r
-                        String mashedData = configPreviewService.generatePreview(templateContent, templateData);\r
-                        resourceAssignmentData.getTemplatesMashedContents().put(templateName, mashedData);\r
-                        resourceAssignmentData.getTemplatesData().put(templateName, templateData);\r
-\r
-                    } else {\r
-                        // Do nothing for Mapping not found\r
-                        logger.warn("No resource Assignment mappings to resolve for templateName {}", templateName);\r
-                    }\r
-                }\r
-            }\r
-\r
-        } catch (Exception e) {\r
-            throw new SvcLogicException(e.getMessage(), e);\r
-        }\r
-    }\r
-\r
-    private void processResourceAssignments(ResourceAssignmentData resourceAssignmentData, SvcLogicContext ctx,\r
-            Map<String, Object> componentContext, String templateName, List<ResourceAssignment> resourceAssignments,\r
-            Map<String, ResourceDefinition> dictionaries) throws SvcLogicException {\r
-\r
-        String recipeName = resourceAssignmentData.getActionName();\r
-\r
-        ResourceAssignmentProcessor resourceAssignmentProcessor =\r
-                new ResourceAssignmentProcessor(resourceAssignments, ctx);\r
-        List<List<ResourceAssignment>> sequenceBatchResourceAssignment = resourceAssignmentProcessor.process();\r
-\r
-        logger.debug("Resource dictionary Info  ({})", dictionaries);\r
-\r
-        if (sequenceBatchResourceAssignment != null) {\r
-            componentContext.put(ConfigModelConstant.PROPERTY_ACTION_NAME, recipeName);\r
-            componentContext.put(ConfigModelConstant.PROPERTY_TEMPLATE_NAME, templateName);\r
-            componentContext.put(ConfigModelConstant.PROPERTY_DICTIONARIES, dictionaries);\r
-            for (List<ResourceAssignment> batchResourceAssignment : sequenceBatchResourceAssignment) {\r
-\r
-                processBatchResourceAssignments(resourceAssignmentData, ctx, componentContext, batchResourceAssignment);\r
-\r
-                logger.debug("Batch Resource data status ({})", TransformationUtils.getJson(batchResourceAssignment));\r
-            }\r
-        }\r
-    }\r
-\r
-    private void processBatchResourceAssignments(ResourceAssignmentData resourceAssignmentData, SvcLogicContext ctx,\r
-            Map<String, Object> componentContext, List<ResourceAssignment> batchResourceAssignment)\r
-            throws SvcLogicException {\r
-\r
-        if (CollectionUtils.isNotEmpty(batchResourceAssignment)) {\r
-\r
-            ResourceAssignment batchFirstResourceAssignment = batchResourceAssignment.get(0);\r
-            if (batchFirstResourceAssignment != null\r
-                    && StringUtils.isNotBlank(batchFirstResourceAssignment.getDictionarySource())) {\r
-                String source = batchFirstResourceAssignment.getDictionarySource();\r
-                // Processing their Source\r
-                logger.info("Processing source ({})  with batch ({}) ", source, batchResourceAssignment);\r
-                componentContext.put(ConfigModelConstant.PROPERTY_RESOURCE_ASSIGNMENTS, batchResourceAssignment);\r
-\r
-                ProcessorFactory factory =\r
-                        new ProcessorFactory(configResourceService, configRestAdaptorService, componentNodeService);\r
-\r
-                ComponentNode processor = factory.getInstance(source);\r
-\r
-                Map<String, String> inParams = new HashMap<>();\r
-                inParams.put(ConfigAssignmentConstants.INPUT_PARAM_REQUEST_ID, resourceAssignmentData.getRequestId());\r
-                inParams.put(ConfigAssignmentConstants.INPUT_PARAM_RESOURCE_ID, resourceAssignmentData.getResourceId());\r
-                inParams.put(ConfigAssignmentConstants.INPUT_PARAM_RESOURCE_TYPE,\r
-                        resourceAssignmentData.getResourceType());\r
-                inParams.put(ConfigAssignmentConstants.INPUT_PARAM_ACTION_NAME, resourceAssignmentData.getActionName());\r
-                inParams.put(ConfigAssignmentConstants.INPUT_PARAM_TEMPLATE_NAMES,\r
-                        resourceAssignmentData.getTemplateNames().toString());\r
-                processor.process(inParams, ctx, componentContext);\r
-            }\r
-        }\r
-    }\r
-\r
-    private void saveResourceMapping(ResourceAssignmentData resourceAssignmentData, String templateName,\r
-            List<ResourceAssignment> resourceAssignments) throws SvcLogicException {\r
-        if (resourceAssignmentData != null && StringUtils.isNotBlank(templateName)) {\r
-\r
-            ConfigAssignmentPersistService configAssignmentPersistService =\r
-                    new ConfigAssignmentPersistService(configResourceService);\r
-            configAssignmentPersistService.saveResourceMapping(resourceAssignmentData, templateName,\r
-                    resourceAssignments);\r
-        }\r
-    }\r
-\r
-    private void validateInputParams(ResourceAssignmentData resourceAssignmentData) throws SvcLogicException {\r
-        if (resourceAssignmentData == null) {\r
-            throw new SvcLogicException("Input parameters missing");\r
-        }\r
-\r
-        String requestId = resourceAssignmentData.getRequestId();\r
-        if (StringUtils.isBlank(requestId)) {\r
-            throw new SvcLogicException("Request id parameters missing");\r
-        }\r
-        String resourceId = resourceAssignmentData.getResourceId();\r
-        if (StringUtils.isBlank(resourceId)) {\r
-            throw new SvcLogicException("Resource id parameter is missing");\r
-        }\r
-        String resourceType = resourceAssignmentData.getResourceType();\r
-        if (StringUtils.isBlank(resourceType)) {\r
-            throw new SvcLogicException("Resource type parameter is missing");\r
-        }\r
-        String actionName = resourceAssignmentData.getActionName();\r
-        if (StringUtils.isBlank(actionName)) {\r
-            throw new SvcLogicException("Action name is parameter is missing");\r
-        }\r
-\r
-        List<String> templatesNames = resourceAssignmentData.getTemplateNames();\r
-        if (CollectionUtils.isEmpty(templatesNames)) {\r
-            throw new SvcLogicException("Template names parameter missing");\r
-        }\r
-    }\r
-\r
-}\r