From d2cc0336c4dd9875e717e096d8f9bf815cb783b7 Mon Sep 17 00:00:00 2001 From: "Singal, Kapil (ks220y)" Date: Tue, 4 Sep 2018 21:22:01 -0400 Subject: SDN Controller Blueprints Data Adaptor Formatting, Organizing Imports, Code Cleanup for SDN Controller Blueprints Data Adaptor Component Change-Id: I029da1d9660129ae3415429661d37b9ea13bcb8b Issue-ID: CCSDK-495 Signed-off-by: Singal, Kapil (ks220y) --- .../assignment/ConfigAssignmentConstants.java | 21 +++--- .../assignment/data/ResourceAssignmentData.java | 77 ++++++++++---------- .../assignment/processor/ProcessorFactory.java | 25 ++++--- .../processor/ResourceAssignmentProcessor.java | 41 ++++++----- .../service/ConfigAssignmentPersistService.java | 55 +++++++------- .../service/ConfigAssignmentProcessService.java | 85 +++++++++++----------- .../service/ConfigAssignmentService.java | 23 +++--- .../service/ConfigAssignmentServiceImpl.java | 31 ++++---- .../assignment/service/ConfigAssignmentUtils.java | 53 +++++++------- .../assignment/service/ConfigPreviewService.java | 33 +++++---- .../service/ResourceDictionaryService.java | 33 +++++---- .../assignment/service/ResourceModelService.java | 31 ++++---- .../org/opendaylight/blueprint/impl-blueprint.xml | 1 + .../service/ConfigPreviewServiceTest.java | 51 +++++++------ .../service/ConfigResourceAssignmentTestUtils.java | 49 +++++++------ .../service/ResourceAssignmentGenerationTest.java | 33 +++++---- .../service/ResourceAssignmentValidation.java | 37 +++++----- .../assignment/service/TopologicalSortingTest.java | 23 +++--- 18 files changed, 377 insertions(+), 325 deletions(-) (limited to 'blueprints-processor/plugin/assignment-provider') diff --git a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/ConfigAssignmentConstants.java b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/ConfigAssignmentConstants.java index 9ab5ae6a6..10e217b8c 100644 --- a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/ConfigAssignmentConstants.java +++ b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/ConfigAssignmentConstants.java @@ -1,34 +1,37 @@ /* * Copyright © 2017-2018 AT&T Intellectual Property. + * Modifications Copyright © 2018 IBM. * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.onap.ccsdk.config.assignment; @SuppressWarnings("squid:S1118") public class ConfigAssignmentConstants { - + public static final String OUTPUT_PARAM_STATUS = "status"; public static final String OUTPUT_PARAM_RESOURCE_ASSIGNMENT_PARAMS = "resource-assignment-params"; public static final String OUTPUT_PARAM_MASHED_DATA = "mashed-data"; public static final String OUTPUT_PARAM_ERROR_MESSAGE = "error-message"; public static final String OUTPUT_STATUS_SUCCESS = "success"; public static final String OUTPUT_STATUS_FAILURE = "failure"; - + public static final String INPUT_PARAM_REQUEST_ID = "request-id"; public static final String INPUT_PARAM_RESOURCE_ID = "resource-id"; public static final String INPUT_PARAM_RESOURCE_TYPE = "resource-type"; public static final String INPUT_PARAM_ACTION_NAME = "action-name"; public static final String INPUT_PARAM_TEMPLATE_NAMES = "template-names"; public static final String INPUT_PARAM_INPUT_DATA = "input-data"; - + } diff --git a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/data/ResourceAssignmentData.java b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/data/ResourceAssignmentData.java index d8a2745ea..816c943f3 100644 --- a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/data/ResourceAssignmentData.java +++ b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/data/ResourceAssignmentData.java @@ -1,15 +1,18 @@ /* * Copyright © 2017-2018 AT&T Intellectual Property. + * Modifications Copyright © 2018 IBM. * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.onap.ccsdk.config.assignment.data; @@ -21,7 +24,7 @@ import org.onap.ccsdk.config.model.data.ResourceAssignment; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; public class ResourceAssignmentData { - + private String requestId; private boolean reloadModel; private String resourceType; @@ -37,123 +40,123 @@ public class ResourceAssignmentData { private Map templatesMashedContents = new HashMap<>(); private Map templatesData = new HashMap<>(); private Map context = new HashMap<>(); - + public String getRequestId() { return requestId; } - + public void setRequestId(String requestId) { this.requestId = requestId; } - + public String getResourceType() { return resourceType; } - + public void setResourceType(String resourceType) { this.resourceType = resourceType; } - + public String getResourceId() { return resourceId; } - + public void setResourceId(String resourceId) { this.resourceId = resourceId; } - + public String getServiceTemplateName() { return serviceTemplateName; } - + public void setServiceTemplateName(String serviceTemplateName) { this.serviceTemplateName = serviceTemplateName; } - + public String getServiceTemplateVersion() { return serviceTemplateVersion; } - + public void setServiceTemplateVersion(String serviceTemplateVersion) { this.serviceTemplateVersion = serviceTemplateVersion; } - + public String getActionName() { return actionName; } - + public void setActionName(String actionName) { this.actionName = actionName; } - + public String getInputData() { return inputData; } - + public void setInputData(String inputData) { this.inputData = inputData; } - + public List getTemplateNames() { return templateNames; } - + public void setTemplateNames(List templateNames) { this.templateNames = templateNames; } - + public Map> getTemplatesResourceAssignments() { return templatesResourceAssignments; } - + public void setTemplatesResourceAssignments(Map> templatesResourceAssignments) { this.templatesResourceAssignments = templatesResourceAssignments; } - + public Map getTemplatesContents() { return templatesContents; } - + public void setTemplatesContents(Map templatesContents) { this.templatesContents = templatesContents; } - + public Map getTemplatesMashedContents() { return templatesMashedContents; } - + public void setTemplatesMashedContents(Map templatesMashedContents) { this.templatesMashedContents = templatesMashedContents; } - + public Map getTemplatesData() { return templatesData; } - + public void setTemplatesData(Map templatesData) { this.templatesData = templatesData; } - + public Map getContext() { return context; } - + public void setContext(Map context) { this.context = context; } - + public SvcLogicContext getSvcLogicContext() { return svcLogicContext; } - + public void setSvcLogicContext(SvcLogicContext svcLogicContext) { this.svcLogicContext = svcLogicContext; } - + public boolean isReloadModel() { return reloadModel; } - + public void setReloadModel(boolean reloadModel) { this.reloadModel = reloadModel; } diff --git a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/processor/ProcessorFactory.java b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/processor/ProcessorFactory.java index d80fec8a9..5fcedd87f 100644 --- a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/processor/ProcessorFactory.java +++ b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/processor/ProcessorFactory.java @@ -1,15 +1,18 @@ /* * Copyright © 2017-2018 AT&T Intellectual Property. + * Modifications Copyright © 2018 IBM. * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.onap.ccsdk.config.assignment.processor; @@ -21,20 +24,20 @@ import org.onap.ccsdk.config.model.service.ComponentNodeService; import org.onap.ccsdk.config.rest.adaptor.service.ConfigRestAdaptorService; public class ProcessorFactory { - + private ConfigResourceService configResourceService; private ConfigRestAdaptorService configRestAdaptorService; private ComponentNodeService componentNodeService; - + public ProcessorFactory(ConfigResourceService configResourceService, ConfigRestAdaptorService configRestAdaptorService, ComponentNodeService componentNodeService) { this.componentNodeService = componentNodeService; this.configResourceService = configResourceService; this.configRestAdaptorService = configRestAdaptorService; } - + public ComponentNode getInstance(String source) { - + if (ConfigModelConstant.SOURCE_DEFAULT.equalsIgnoreCase(source)) { return new DefaultResourceProcessor(configResourceService); } else if (ConfigModelConstant.SOURCE_DB.equalsIgnoreCase(source)) { @@ -45,5 +48,5 @@ public class ProcessorFactory { // Default return new InputResourceProcessor(configResourceService); } - + } diff --git a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/processor/ResourceAssignmentProcessor.java b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/processor/ResourceAssignmentProcessor.java index c1c9b93c0..70d9abc68 100644 --- a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/processor/ResourceAssignmentProcessor.java +++ b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/processor/ResourceAssignmentProcessor.java @@ -1,15 +1,18 @@ /* * Copyright © 2017-2018 AT&T Intellectual Property. + * Modifications Copyright © 2018 IBM. * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.onap.ccsdk.config.assignment.processor; @@ -27,16 +30,16 @@ import com.att.eelf.configuration.EELFManager; public class ResourceAssignmentProcessor { private static EELFLogger logger = EELFManager.getInstance().getLogger(ResourceAssignmentProcessor.class); - + private List assignments; private Map resourceAssignmentMap; - + @SuppressWarnings("squid:S1172") public ResourceAssignmentProcessor(List assignments, SvcLogicContext ctx) { this.assignments = assignments; this.resourceAssignmentMap = new HashMap<>(); } - + @SuppressWarnings("squid:S3776") public List> process() { List> sequenceBatchResourceAssignment = new ArrayList<>(); @@ -48,7 +51,7 @@ public class ResourceAssignmentProcessor { resourceAssignmentMap.put(resourceMapping.getName(), resourceMapping); } }); - + TopologicalSortingUtils topologySorting = new TopologicalSortingUtils<>(); this.resourceAssignmentMap.forEach((mappingKey, mapping) -> { if (mapping != null) { @@ -61,30 +64,30 @@ public class ResourceAssignmentProcessor { } } }); - + List sequencedResourceAssignments = topologySorting.topSort(); logger.info("Sorted Sequenced Assignments ({})", sequencedResourceAssignments); - + List batchResourceAssignment = null; List batchAssignmentName = null; for (int i = 0; i < sequencedResourceAssignments.size(); i++) { ResourceAssignment resourceAssignment = sequencedResourceAssignments.get(i); ResourceAssignment previousResourceAssignment = null; - + if (i > 0) { previousResourceAssignment = sequencedResourceAssignments.get(i - 1); } if (resourceAssignment != null) { - + boolean dependencyPresence = false; if (batchAssignmentName != null && resourceAssignment.getDependencies() != null) { dependencyPresence = CollectionUtils.containsAny(batchAssignmentName, resourceAssignment.getDependencies()); } - + logger.trace("({}) -> Checking ({}), with ({}), result ({})", resourceAssignment.getName(), batchAssignmentName, resourceAssignment.getDependencies(), dependencyPresence); - + if (previousResourceAssignment != null && resourceAssignment.getDictionarySource() != null && resourceAssignment.getDictionarySource() .equalsIgnoreCase(previousResourceAssignment.getDictionarySource()) @@ -98,12 +101,12 @@ public class ResourceAssignmentProcessor { } batchResourceAssignment = new ArrayList<>(); batchResourceAssignment.add(resourceAssignment); - + batchAssignmentName = new ArrayList<>(); batchAssignmentName.add(resourceAssignment.getName()); } } - + if (i == (sequencedResourceAssignments.size() - 1)) { logger.trace("Created old Set ({})", batchAssignmentName); sequenceBatchResourceAssignment.add(batchResourceAssignment); @@ -113,5 +116,5 @@ public class ResourceAssignmentProcessor { } return sequenceBatchResourceAssignment; } - + } diff --git a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentPersistService.java b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentPersistService.java index e27d57a79..320f4369b 100644 --- a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentPersistService.java +++ b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentPersistService.java @@ -1,15 +1,18 @@ /* * Copyright © 2017-2018 AT&T Intellectual Property. + * Modifications Copyright © 2018 IBM. * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.onap.ccsdk.config.assignment.service; @@ -31,59 +34,59 @@ import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; public class ConfigAssignmentPersistService { - + private static EELFLogger logger = EELFManager.getInstance().getLogger(ConfigAssignmentPersistService.class); - + private ConfigResourceService configResourceService; - + public ConfigAssignmentPersistService(ConfigResourceService configResourceService) { this.configResourceService = configResourceService; } - + public void saveResourceMapping(org.onap.ccsdk.config.assignment.data.ResourceAssignmentData resourceAssignmentData, String templateName, List resourceAssignments) throws SvcLogicException { try { - + if (resourceAssignmentData == null) { throw new SvcLogicException("Resource assignment data is missing"); } - + if (StringUtils.isBlank(resourceAssignmentData.getRequestId())) { logger.warn("Request Id ({}) is missing, may be getting request for resource update.", resourceAssignmentData.getRequestId()); } - + if (StringUtils.isBlank(resourceAssignmentData.getResourceId())) { throw new SvcLogicException("Resource Id is missing"); } - + if (StringUtils.isBlank(resourceAssignmentData.getResourceType())) { throw new SvcLogicException("Resource type is missing"); } - + if (StringUtils.isBlank(resourceAssignmentData.getActionName())) { throw new SvcLogicException("Action name is missing"); } - + if (StringUtils.isBlank(templateName)) { throw new SvcLogicException("template name is missing"); } - + StringBuilder builder = new StringBuilder(); builder.append("Resource Assignment for Template Name :"); builder.append(templateName); builder.append("\n"); builder.append(TransformationUtils.getJson(resourceAssignments, true)); - + configResourceService.save(new TransactionLog(resourceAssignmentData.getRequestId(), DataAdaptorConstants.LOG_MESSAGE_TYPE_LOG, builder.toString())); - + // Resource Data should be Regenerated based on the new Updates String resourceData = ResourceAssignmentUtils.generateResourceDataForAssignments(resourceAssignments); - + List resourceAssignmentDataList = ConfigAssignmentUtils.convertResoureAssignmentList(resourceAssignments); - + ConfigResource configResource = new ConfigResource(); configResource.setRequestId(resourceAssignmentData.getRequestId()); configResource.setServiceTemplateName(resourceAssignmentData.getServiceTemplateName()); @@ -95,14 +98,14 @@ public class ConfigAssignmentPersistService { configResource.setTemplateName(templateName); configResource.setStatus(ConfigModelConstant.STATUS_SUCCESS); configResource.setUpdatedBy(ConfigModelConstant.USER_SYSTEM); - + if (CollectionUtils.isNotEmpty(resourceAssignmentDataList)) { configResource.setResourceAssignments(resourceAssignmentDataList); } configResource = configResourceService.saveConfigResource(configResource); logger.info("Resource data saved successfully for the template ({}) with resource id ({})", templateName, configResource.getResourceId()); - + builder = new StringBuilder(); builder.append("Resource Data Template Name :"); builder.append(templateName); @@ -110,11 +113,11 @@ public class ConfigAssignmentPersistService { builder.append(resourceData); configResourceService.save(new TransactionLog(resourceAssignmentData.getRequestId(), DataAdaptorConstants.LOG_MESSAGE_TYPE_LOG, builder.toString())); - + } catch (Exception e) { throw new SvcLogicException("ConfigAssignmentPersistService : " + e.getMessage(), e); } - + } - + } diff --git a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentProcessService.java b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentProcessService.java index 81e76897e..85ff82db6 100644 --- a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentProcessService.java +++ b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentProcessService.java @@ -1,15 +1,18 @@ /* * Copyright © 2017-2018 AT&T Intellectual Property. + * Modifications Copyright © 2018 IBM. * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.onap.ccsdk.config.assignment.service; @@ -40,15 +43,15 @@ import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; public class ConfigAssignmentProcessService { - + private static EELFLogger logger = EELFManager.getInstance().getLogger(ConfigAssignmentProcessService.class); - + private ComponentNodeService componentNodeService; private ConfigResourceService configResourceService; private ConfigModelService configModelService; private ConfigRestAdaptorService configRestAdaptorService; private ConfigGeneratorService configGeneratorService; - + public ConfigAssignmentProcessService(ConfigResourceService configResourceService, ConfigRestAdaptorService configRestAdaptorService, ConfigModelService configModelService, ComponentNodeService componentNodeService, ConfigGeneratorService configGeneratorService) { @@ -58,19 +61,19 @@ public class ConfigAssignmentProcessService { this.configRestAdaptorService = configRestAdaptorService; this.configGeneratorService = configGeneratorService; } - + @SuppressWarnings("squid:S1141") public void resolveResources(ResourceAssignmentData resourceAssignmentData) throws SvcLogicException { try { validateInputParams(resourceAssignmentData); - + String serviceTemplateName = resourceAssignmentData.getServiceTemplateName(); String serviceTemplateVersion = resourceAssignmentData.getServiceTemplateVersion(); String actionName = resourceAssignmentData.getActionName(); String inputData = resourceAssignmentData.getInputData(); SvcLogicContext svcLogicContext = resourceAssignmentData.getSvcLogicContext(); List templateNames = resourceAssignmentData.getTemplateNames(); - + if (resourceAssignmentData.isReloadModel()) { Map context = new HashMap<>(); context.put(ConfigModelConstant.PROPERTY_ACTION_NAME, actionName); @@ -79,21 +82,21 @@ public class ConfigAssignmentProcessService { context.forEach((key, value) -> svcLogicContext.setAttribute(key, value)); logger.info("List of Resources provided in input: {}", svcLogicContext.toProperties()); } - + Map componentContext = resourceAssignmentData.getContext(); - + if (CollectionUtils.isNotEmpty(templateNames)) { // Get the Resource Assignments for templates and Validate the mappings ResourceModelService resourceModelService = new ResourceModelService(configModelService); - + // Get the Resource Assignment Map> templatesResourceAssignments = resourceModelService.getTemplatesResourceAssignments(svcLogicContext, templateNames); - + // Get the Template Contents Map templatesContents = resourceModelService.getTemplatesContents(svcLogicContext, templateNames); - + // Process each template for (String templateName : templateNames) { List resourceAssignments = templatesResourceAssignments.get(templateName); @@ -106,67 +109,67 @@ public class ConfigAssignmentProcessService { new ResourceDictionaryService(configRestAdaptorService); Map dictionaries = resourceDictionaryService.getDataDictionaryDefinitions(resourceAssignments); - + processResourceAssignments(resourceAssignmentData, svcLogicContext, componentContext, templateName, resourceAssignments, dictionaries); - + logger.info("decrypting config data for templateName {}", templateName); templateData = ResourceAssignmentUtils.generateResourceDataForAssignments(resourceAssignments); } finally { saveResourceMapping(resourceAssignmentData, templateName, resourceAssignments); } - + logger.info("generating config preview for templateName {}", templateName); ConfigPreviewService configPreviewService = new ConfigPreviewService(configResourceService, configModelService, configGeneratorService); String mashedData = configPreviewService.generatePreview(templateContent, templateData); resourceAssignmentData.getTemplatesMashedContents().put(templateName, mashedData); resourceAssignmentData.getTemplatesData().put(templateName, templateData); - + } else { // Do nothing for Mapping not found logger.warn("No resource Assignment mappings to resolve for templateName {}", templateName); } } } - + } catch (Exception e) { throw new SvcLogicException(e.getMessage(), e); } } - + private void processResourceAssignments(ResourceAssignmentData resourceAssignmentData, SvcLogicContext ctx, Map componentContext, String templateName, List resourceAssignments, Map dictionaries) throws SvcLogicException { - + String recipeName = resourceAssignmentData.getActionName(); - + ResourceAssignmentProcessor resourceAssignmentProcessor = new ResourceAssignmentProcessor(resourceAssignments, ctx); List> sequenceBatchResourceAssignment = resourceAssignmentProcessor.process(); - + logger.debug("Resource dictionary Info ({})", dictionaries); - + if (sequenceBatchResourceAssignment != null) { componentContext.put(ConfigModelConstant.PROPERTY_ACTION_NAME, recipeName); componentContext.put(ConfigModelConstant.PROPERTY_TEMPLATE_NAME, templateName); componentContext.put(ConfigModelConstant.PROPERTY_DICTIONARIES, dictionaries); for (List batchResourceAssignment : sequenceBatchResourceAssignment) { - + processBatchResourceAssignments(resourceAssignmentData, ctx, componentContext, batchResourceAssignment); - + logger.debug("Batch Resource data status ({})", TransformationUtils.getJson(batchResourceAssignment)); } } } - + private void processBatchResourceAssignments(ResourceAssignmentData resourceAssignmentData, SvcLogicContext ctx, Map componentContext, List batchResourceAssignment) throws SvcLogicException { - + if (CollectionUtils.isNotEmpty(batchResourceAssignment)) { - + ResourceAssignment batchFirstResourceAssignment = batchResourceAssignment.get(0); if (batchFirstResourceAssignment != null && StringUtils.isNotBlank(batchFirstResourceAssignment.getDictionarySource())) { @@ -174,12 +177,12 @@ public class ConfigAssignmentProcessService { // Processing their Source logger.info("Processing source ({}) with batch ({}) ", source, batchResourceAssignment); componentContext.put(ConfigModelConstant.PROPERTY_RESOURCE_ASSIGNMENTS, batchResourceAssignment); - + ProcessorFactory factory = new ProcessorFactory(configResourceService, configRestAdaptorService, componentNodeService); - + ComponentNode processor = factory.getInstance(source); - + Map inParams = new HashMap<>(); inParams.put(ConfigAssignmentConstants.INPUT_PARAM_REQUEST_ID, resourceAssignmentData.getRequestId()); inParams.put(ConfigAssignmentConstants.INPUT_PARAM_RESOURCE_ID, resourceAssignmentData.getResourceId()); @@ -192,23 +195,23 @@ public class ConfigAssignmentProcessService { } } } - + private void saveResourceMapping(ResourceAssignmentData resourceAssignmentData, String templateName, List resourceAssignments) throws SvcLogicException { if (resourceAssignmentData != null && StringUtils.isNotBlank(templateName)) { - + ConfigAssignmentPersistService configAssignmentPersistService = new ConfigAssignmentPersistService(configResourceService); configAssignmentPersistService.saveResourceMapping(resourceAssignmentData, templateName, resourceAssignments); } } - + private void validateInputParams(ResourceAssignmentData resourceAssignmentData) throws SvcLogicException { if (resourceAssignmentData == null) { throw new SvcLogicException("Input parameters missing"); } - + String requestId = resourceAssignmentData.getRequestId(); if (StringUtils.isBlank(requestId)) { throw new SvcLogicException("Request id parameters missing"); @@ -225,11 +228,11 @@ public class ConfigAssignmentProcessService { if (StringUtils.isBlank(actionName)) { throw new SvcLogicException("Action name is parameter is missing"); } - + List templatesNames = resourceAssignmentData.getTemplateNames(); if (CollectionUtils.isEmpty(templatesNames)) { throw new SvcLogicException("Template names parameter missing"); } } - + } diff --git a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentService.java b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentService.java index e0fcc9175..4866f258b 100644 --- a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentService.java +++ b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentService.java @@ -1,15 +1,18 @@ /* * Copyright © 2017-2018 AT&T Intellectual Property. + * Modifications Copyright © 2018 IBM. * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.onap.ccsdk.config.assignment.service; @@ -20,13 +23,13 @@ import org.onap.ccsdk.config.model.data.ResourceAssignment; import org.onap.ccsdk.sli.core.sli.SvcLogicException; public interface ConfigAssignmentService { - + public void resolveResources(ResourceAssignmentData resourceAssignmentData) throws SvcLogicException; - + public void saveResourceMapping(ResourceAssignmentData resourceAssignmentData, String templateName, List resourceAssignments) throws SvcLogicException; - + public ResourceAssignmentData generateTemplateResourceMash(ResourceAssignmentData resourceAssignmentData) throws SvcLogicException; - + } diff --git a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentServiceImpl.java b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentServiceImpl.java index 48e15b15a..9e2bdcf8d 100644 --- a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentServiceImpl.java +++ b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentServiceImpl.java @@ -1,15 +1,18 @@ /* * Copyright © 2017-2018 AT&T Intellectual Property. + * Modifications Copyright © 2018 IBM. * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.onap.ccsdk.config.assignment.service; @@ -27,17 +30,17 @@ import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; public class ConfigAssignmentServiceImpl implements ConfigAssignmentService { - + private static EELFLogger logger = EELFManager.getInstance().getLogger(ConfigAssignmentServiceImpl.class); - + private ComponentNodeService componentNodeService; private ConfigResourceService configResourceService; private ConfigModelService configModelService; private ConfigRestAdaptorService configRestAdaptorService; private ConfigGeneratorService configGeneratorService; - + private static final String CLASS_NAME = "ConfigAssignmentServiceImpl"; - + public ConfigAssignmentServiceImpl(ConfigResourceService configResourceService, ConfigRestAdaptorService configRestAdaptorService, ConfigModelService configModelService, ComponentNodeService componentNodeService, ConfigGeneratorService configGeneratorService) { @@ -48,7 +51,7 @@ public class ConfigAssignmentServiceImpl implements ConfigAssignmentService { this.configRestAdaptorService = configRestAdaptorService; this.configGeneratorService = configGeneratorService; } - + @Override public void resolveResources(ResourceAssignmentData resourceAssignmentData) throws SvcLogicException { ConfigAssignmentProcessService configAssignmentProcessService = @@ -56,7 +59,7 @@ public class ConfigAssignmentServiceImpl implements ConfigAssignmentService { componentNodeService, configGeneratorService); configAssignmentProcessService.resolveResources(resourceAssignmentData); } - + @Override public void saveResourceMapping(ResourceAssignmentData resourceAssignmentData, String templateName, List resourceAssignments) throws SvcLogicException { @@ -64,7 +67,7 @@ public class ConfigAssignmentServiceImpl implements ConfigAssignmentService { new ConfigAssignmentPersistService(configResourceService); configAssignmentPersistService.saveResourceMapping(resourceAssignmentData, templateName, resourceAssignments); } - + @Override public ResourceAssignmentData generateTemplateResourceMash(ResourceAssignmentData resourceAssignmentData) throws SvcLogicException { @@ -72,5 +75,5 @@ public class ConfigAssignmentServiceImpl implements ConfigAssignmentService { new ConfigPreviewService(configResourceService, configModelService, configGeneratorService); return configPreviewService.generateTemplateResourceMash(resourceAssignmentData); } - + } diff --git a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentUtils.java b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentUtils.java index 1f74b71ad..32adbe249 100644 --- a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentUtils.java +++ b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigAssignmentUtils.java @@ -1,15 +1,18 @@ /* * Copyright © 2017-2018 AT&T Intellectual Property. + * Modifications Copyright © 2018 IBM. * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.onap.ccsdk.config.assignment.service; @@ -44,13 +47,13 @@ import com.fasterxml.jackson.databind.node.JsonNodeFactory; import com.fasterxml.jackson.databind.node.ObjectNode; public class ConfigAssignmentUtils { - + private ConfigAssignmentUtils() { - + } - + private static EELFLogger logger = EELFManager.getInstance().getLogger(ConfigAssignmentUtils.class); - + public static synchronized Object getContextKeyValue(SvcLogicContext context, String key) { Object value = null; if (context != null && key != null) { @@ -65,7 +68,7 @@ public class ConfigAssignmentUtils { } return value; } - + /* * Populate the Field property type for the Data type */ @@ -98,7 +101,7 @@ public class ConfigAssignmentUtils { } return type; } - + /* * Populate the Field property type for the Data type */ @@ -126,7 +129,7 @@ public class ConfigAssignmentUtils { } return propertyDefinition; } - + public static synchronized ResourceDefinition getDictionaryDefinition(Map dictionaries, String dictionaryName) { ResourceDefinition resourceDefinition = null; @@ -139,7 +142,7 @@ public class ConfigAssignmentUtils { } return resourceDefinition; } - + @SuppressWarnings("squid:S3776") public static synchronized void populateValueForOutputMapping(SvcLogicContext ctx, Map componentContext, ResourceAssignment resourceAssignment, @@ -148,19 +151,19 @@ public class ConfigAssignmentUtils { if (resourceAssignment == null) { throw new SvcLogicException("resourceAssignment is null."); } - + if (ctx == null) { throw new SvcLogicException("service logic context is null."); } - + if (componentContext == null) { throw new SvcLogicException("component context is null."); } - + logger.info("populating value for output mapping ({}), from json ({})", outputKeyMapping, responseNode); String dictionaryName = resourceAssignment.getDictionaryName(); String type = resourceAssignment.getProperty().getType(); - + String entrySchema = null; if (ValidTypes.getPrimitivePropertType().contains(type)) { ResourceAssignmentUtils.setResourceDataValue(componentContext, resourceAssignment, responseNode); @@ -169,7 +172,7 @@ public class ConfigAssignmentUtils { if (resourceAssignment.getProperty().getEntrySchema() != null) { entrySchema = resourceAssignment.getProperty().getEntrySchema().getType(); } - + if (StringUtils.isNotBlank(entrySchema)) { ArrayNode arrayNode = JsonNodeFactory.instance.arrayNode(); if (ValidTypes.getPrimitivePropertType().contains(entrySchema)) { @@ -181,7 +184,7 @@ public class ConfigAssignmentUtils { ObjectNode arrayChildNode = JsonNodeFactory.instance.objectNode(); for (Map.Entry mapping : outputKeyMapping.entrySet()) { JsonNode responseKeyValue = responseSingleJsonNode.get(mapping.getKey()); - + String propertyTypeForDataType = ConfigAssignmentUtils.getPropertyType(ctx, entrySchema, mapping.getKey()); logger.info("For List Type Resource: key ({}), value ({}), type ({})", @@ -221,7 +224,7 @@ public class ConfigAssignmentUtils { ResourceAssignmentUtils.setResourceDataValue(componentContext, resourceAssignment, objectNode); } } - + @SuppressWarnings("squid:S3776") public static synchronized List convertResoureAssignmentDataList( List resourceAssignmentDataList) { @@ -240,7 +243,7 @@ public class ConfigAssignmentUtils { resourceAssignment.setMessage(resourceAssignmentData.getMessage()); PropertyDefinition property = new PropertyDefinition(); property.setType(resourceAssignmentData.getDataType()); - + if (StringUtils.isNotBlank(resourceAssignmentData.getResourceValue())) { if (ValidTypes.getPrimitivePropertType().contains(resourceAssignmentData.getDataType())) { property.setValue(resourceAssignmentData.getResourceValue()); @@ -261,11 +264,11 @@ public class ConfigAssignmentUtils { assignments.add(resourceAssignment); } } - + } return assignments; } - + @SuppressWarnings("squid:S3776") public static synchronized List convertResoureAssignmentList( List assignments) { @@ -298,5 +301,5 @@ public class ConfigAssignmentUtils { } return resourceAssignmentDataList; } - + } diff --git a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigPreviewService.java b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigPreviewService.java index 7aa2d438a..ae5c01c88 100644 --- a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigPreviewService.java +++ b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ConfigPreviewService.java @@ -1,15 +1,18 @@ /* * Copyright © 2017-2018 AT&T Intellectual Property. + * Modifications Copyright © 2018 IBM. * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.onap.ccsdk.config.assignment.service; @@ -35,14 +38,14 @@ public class ConfigPreviewService { private ConfigResourceService configResourceService; private ConfigModelService configModelService; private ConfigGeneratorService configGeneratorService; - + public ConfigPreviewService(ConfigResourceService configResourceService, ConfigModelService configModelService, ConfigGeneratorService configGeneratorService) { this.configResourceService = configResourceService; this.configModelService = configModelService; this.configGeneratorService = configGeneratorService; } - + public String generatePreview(String templateContent, String templateData) throws SvcLogicException { String mashedData = ""; ConfigGeneratorInfo configGeneratorInfo = @@ -52,7 +55,7 @@ public class ConfigPreviewService { } return mashedData; } - + public ResourceAssignmentData generateTemplateResourceMash(ResourceAssignmentData resourceAssignmentData) throws SvcLogicException { if (resourceAssignmentData == null) { @@ -73,25 +76,25 @@ public class ConfigPreviewService { if (StringUtils.isBlank(resourceAssignmentData.getActionName())) { throw new SvcLogicException("Action name is missing"); } - + String serviceTemplateName = resourceAssignmentData.getServiceTemplateName(); String serviceTemplateVersion = resourceAssignmentData.getServiceTemplateVersion(); String actionName = resourceAssignmentData.getActionName(); String resourceId = resourceAssignmentData.getResourceId(); String resourceType = resourceAssignmentData.getResourceType(); String inputData = "{}"; - + Map context = new HashMap<>(); context.put(ConfigModelConstant.PROPERTY_ACTION_NAME, actionName); context = configModelService.prepareContext(context, inputData, serviceTemplateName, serviceTemplateVersion); - + ConfigResource configResourceQuery = new ConfigResource(); configResourceQuery.setServiceTemplateVersion(serviceTemplateName); configResourceQuery.setServiceTemplateVersion(serviceTemplateVersion); configResourceQuery.setRecipeName(actionName); configResourceQuery.setResourceId(resourceId); configResourceQuery.setResourceType(resourceType); - + List configResources = configResourceService.getConfigResource(configResourceQuery); if (CollectionUtils.isNotEmpty(configResources)) { for (ConfigResource cr : configResources) { @@ -110,7 +113,7 @@ public class ConfigPreviewService { serviceTemplateName, serviceTemplateVersion, actionName, resourceId, resourceType); } return resourceAssignmentData; - + } - + } diff --git a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ResourceDictionaryService.java b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ResourceDictionaryService.java index 97a4dd45e..50562b0e8 100644 --- a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ResourceDictionaryService.java +++ b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ResourceDictionaryService.java @@ -1,15 +1,18 @@ /* * Copyright © 2017-2018 AT&T Intellectual Property. + * Modifications Copyright © 2018 IBM. * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.onap.ccsdk.config.assignment.service; @@ -31,14 +34,14 @@ import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; public class ResourceDictionaryService { - + private static EELFLogger logger = EELFManager.getInstance().getLogger(ResourceDictionaryService.class); private ConfigRestAdaptorService configRestAdaptorService; - + public ResourceDictionaryService(ConfigRestAdaptorService configRestAdaptorService) { this.configRestAdaptorService = configRestAdaptorService; } - + @SuppressWarnings("squid:S3776") public Map getDataDictionaryDefinitions(List resourceAssignments) throws SvcLogicException { @@ -48,11 +51,11 @@ public class ResourceDictionaryService { List names = new ArrayList<>(); for (ResourceAssignment resourceAssignment : resourceAssignments) { if (resourceAssignment != null && StringUtils.isNotBlank(resourceAssignment.getDictionaryName())) { - + if (!names.contains(resourceAssignment.getDictionaryName())) { names.add(resourceAssignment.getDictionaryName()); } - + if (resourceAssignment.getDependencies() != null && !resourceAssignment.getDependencies().isEmpty()) { List dependencieNames = resourceAssignment.getDependencies(); @@ -70,18 +73,18 @@ public class ResourceDictionaryService { } catch (Exception e) { throw new SvcLogicException("Failed in getting resource data dictionary : " + e.getMessage()); } - + } - + @SuppressWarnings("squid:S3776") private void queryResourceDictionaryDefinitions(Map dictionaries, List names) throws SvcLogicException, ConfigRestAdaptorException { logger.info("Getting resource dictionary definition for the names ({})", names); if (!names.isEmpty()) { - + String dictionaryContents = configRestAdaptorService.postResource( ConfigRestAdaptorConstants.SELECTOR_MODEL_SERVICE, "dictionarybynames", names, String.class); - + if (StringUtils.isNotBlank(dictionaryContents)) { List dataDictionaries = TransformationUtils.getListfromJson(dictionaryContents, ResourceDictionary.class); diff --git a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ResourceModelService.java b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ResourceModelService.java index 7eb21967d..9f3013b73 100644 --- a/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ResourceModelService.java +++ b/blueprints-processor/plugin/assignment-provider/src/main/java/org/onap/ccsdk/config/assignment/service/ResourceModelService.java @@ -1,15 +1,18 @@ /* * Copyright © 2017-2018 AT&T Intellectual Property. + * Modifications Copyright © 2018 IBM. * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.onap.ccsdk.config.assignment.service; @@ -30,13 +33,13 @@ import com.att.eelf.configuration.EELFManager; public class ResourceModelService { private static EELFLogger logger = EELFManager.getInstance().getLogger(ResourceModelService.class); - + private ConfigModelService configModelService; - + public ResourceModelService(ConfigModelService configModelService) { this.configModelService = configModelService; } - + public Map getTemplatesContents(SvcLogicContext ctx, List templateNames) throws SvcLogicException { Map templatesContents = new HashMap<>(); @@ -53,7 +56,7 @@ public class ResourceModelService { } return templatesContents; } - + public Map> getTemplatesResourceAssignments(SvcLogicContext ctx, List templateNames) throws SvcLogicException { Map> templatesResourceAssignments = new HashMap<>(); @@ -63,12 +66,12 @@ public class ResourceModelService { String resourceMappingContent = this.configModelService.getNodeTemplateMapping(ctx, templateName); logger.info("Processing template ({}) with resource assignment content : {}", templateName, resourceMappingContent); - + if (StringUtils.isNotBlank(resourceMappingContent)) { - + List resourceAssignments = TransformationUtils.getListfromJson(resourceMappingContent, ResourceAssignment.class); - + if (resourceAssignments != null) { ResourceAssignmentValidator resourceAssignmentValidator = new ResourceAssignmentValidator(resourceAssignments); @@ -88,7 +91,7 @@ public class ResourceModelService { } catch (Exception e) { throw new SvcLogicException(e.getMessage()); } - + return templatesResourceAssignments; } } diff --git a/blueprints-processor/plugin/assignment-provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/blueprints-processor/plugin/assignment-provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml index ebefd645c..c880c8d4f 100644 --- a/blueprints-processor/plugin/assignment-provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml +++ b/blueprints-processor/plugin/assignment-provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml @@ -1,6 +1,7 @@