aboutsummaryrefslogtreecommitdiffstats
path: root/blueprints-processor/plugin/generator-provider
diff options
context:
space:
mode:
Diffstat (limited to 'blueprints-processor/plugin/generator-provider')
-rw-r--r--blueprints-processor/plugin/generator-provider/pom.xml141
-rw-r--r--blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/ConfigGeneratorConstant.java49
-rw-r--r--blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/data/ConfigGeneratorInfo.java102
-rw-r--r--blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorNode.java140
-rw-r--r--blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorService.java33
-rw-r--r--blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorServiceImpl.java143
-rw-r--r--blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/tool/CustomJsonNodeFactory.java30
-rw-r--r--blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/tool/CustomTextNode.java42
-rw-r--r--blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/tool/EscapeUtils.java82
-rw-r--r--blueprints-processor/plugin/generator-provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml49
-rw-r--r--blueprints-processor/plugin/generator-provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml49
-rw-r--r--blueprints-processor/plugin/generator-provider/src/test/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorNodeTest.java222
-rw-r--r--blueprints-processor/plugin/generator-provider/src/test/java/org/onap/ccsdk/features/generator/tool/EscapeUtilsTest.java51
-rw-r--r--blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/configdata.json36
-rw-r--r--blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/configdata_with_null.json36
-rw-r--r--blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/generate_configuration.json355
-rw-r--r--blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/velocity/base-config-template.vtl61
-rw-r--r--blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/velocity/base-config-template_group.vtl40
18 files changed, 0 insertions, 1661 deletions
diff --git a/blueprints-processor/plugin/generator-provider/pom.xml b/blueprints-processor/plugin/generator-provider/pom.xml
deleted file mode 100644
index d2a700b45..000000000
--- a/blueprints-processor/plugin/generator-provider/pom.xml
+++ /dev/null
@@ -1,141 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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
-
- 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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.onap.ccsdk.parent</groupId>
- <artifactId>binding-parent</artifactId>
- <version>1.5.2-SNAPSHOT</version>
- <relativePath/>
- </parent>
-
- <groupId>org.onap.ccsdk.features</groupId>
- <artifactId>blueprints-generator-provider</artifactId>
- <version>0.7.1-SNAPSHOT</version>
- <packaging>bundle</packaging>
-
- <name>ccsdk-features :: blueprints-processor-plugin :: ${project.artifactId}</name>
- <url>http://maven.apache.org</url>
-
- <dependencies>
- <dependency>
- <groupId>org.onap.ccsdk.features</groupId>
- <artifactId>blueprints-model-provider</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.onap.ccsdk.features</groupId>
- <artifactId>blueprints-data-adaptor-provider</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-annotations</artifactId>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.module</groupId>
- <artifactId>jackson-module-jsonSchema</artifactId>
- </dependency>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.velocity</groupId>
- <artifactId>velocity</artifactId>
- </dependency>
- <dependency>
- <groupId>org.powermock</groupId>
- <artifactId>powermock-api-mockito</artifactId>
- <version>1.6.4</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.javassist</groupId>
- <artifactId>javassist</artifactId>
- <version>3.21.0-GA</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- <version>1.10.19</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.powermock</groupId>
- <artifactId>powermock-module-junit4</artifactId>
- <version>1.6.4</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.powermock</groupId>
- <artifactId>powermock-api-support</artifactId>
- <version>1.6.4</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.powermock</groupId>
- <artifactId>powermock-reflect</artifactId>
- <version>1.6.4</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.powermock</groupId>
- <artifactId>powermock-core</artifactId>
- <version>1.6.4</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <Bundle-Name>${project.artifactId}</Bundle-Name>
- <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
- <Export-Package>
- org.onap.ccsdk.features.generator,
- org.onap.ccsdk.features.generator.data,
- org.onap.ccsdk.features.generator.service,
- org.onap.ccsdk.features.generator.tool
- </Export-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
diff --git a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/ConfigGeneratorConstant.java b/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/ConfigGeneratorConstant.java
deleted file mode 100644
index 06c423b5e..000000000
--- a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/ConfigGeneratorConstant.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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
- *
- * 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.
- */
-
-package org.onap.ccsdk.features.generator;
-
-public class ConfigGeneratorConstant {
-
- private ConfigGeneratorConstant() {
-
- }
-
- public static final String STRING_ENCODING = "utf-8";
- public static final String Y = "Y";
- public static final String N = "N";
- public static final String DATA_TYPE_TEXT = "TEXT";
- public static final String DATA_TYPE_JSON = "JSON";
- public static final String DATA_TYPE_XML = "XML";
- public static final String DATA_TYPE_SQL = "SQL";
-
- 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_NAME = "template-name";
- public static final String INPUT_PARAM_TEMPLATE_CONTENT = "template-content";
- public static final String INPUT_PARAM_TEMPLATE_DATA = "template-data";
-
- public static final String OUTPUT_PARAM_GENERATED_CONFIG = "generated-config";
- public static final String OUTPUT_PARAM_MASK_INFO = "mask-info";
- public static final String OUTPUT_PARAM_STATUS = "status";
- 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";
-
-}
diff --git a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/data/ConfigGeneratorInfo.java b/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/data/ConfigGeneratorInfo.java
deleted file mode 100644
index 0b7ea0435..000000000
--- a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/data/ConfigGeneratorInfo.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * 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
- *
- * 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.
- */
-
-package org.onap.ccsdk.features.generator.data;
-
-public class ConfigGeneratorInfo {
-
- private String requestId;
- private String resourceId;
- private String resourceType;
- private String templateName;
- private String recipeName;
- private String resourceData;
- private String templateContent;
- private String mashedData;
-
- public String getRequestId() {
- return requestId;
- }
-
- public void setRequestId(String requestId) {
- this.requestId = requestId;
- }
-
- public String getResourceId() {
- return resourceId;
- }
-
- public void setResourceId(String resourceId) {
- this.resourceId = resourceId;
- }
-
- public String getResourceType() {
- return resourceType;
- }
-
- public void setResourceType(String resourceType) {
- this.resourceType = resourceType;
- }
-
- public String getTemplateName() {
- return templateName;
- }
-
- public void setTemplateName(String templateName) {
- this.templateName = templateName;
- }
-
- public String getRecipeName() {
- return recipeName;
- }
-
- public void setRecipeName(String recipeName) {
- this.recipeName = recipeName;
- }
-
- public String getResourceData() {
- return resourceData;
- }
-
- public void setResourceData(String resourceData) {
- this.resourceData = resourceData;
- }
-
- public String getTemplateContent() {
- return templateContent;
- }
-
- public void setTemplateContent(String templateContent) {
- this.templateContent = templateContent;
- }
-
- public String getMashedData() {
- return mashedData;
- }
-
- public void setMashedData(String mashedData) {
- this.mashedData = mashedData;
- }
-
- @Override
- public String toString() {
- return "ConfigGeneratorInfo [requestId=" + requestId + ", resourceId=" + resourceId + ", resourceType="
- + resourceType + ", templateName=" + templateName + ", recipeName=" + recipeName + ", resourceData="
- + resourceData + ", templateContent=" + templateContent + ", mashedData=" + mashedData + "]";
- }
-
-}
diff --git a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorNode.java b/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorNode.java
deleted file mode 100644
index 421692b89..000000000
--- a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorNode.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * 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
- *
- * 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.
- */
-
-package org.onap.ccsdk.features.generator.service;
-
-import java.util.Map;
-import org.apache.commons.lang3.StringUtils;
-import org.onap.ccsdk.features.data.adaptor.service.ConfigResourceService;
-import org.onap.ccsdk.features.generator.ConfigGeneratorConstant;
-import org.onap.ccsdk.features.generator.data.ConfigGeneratorInfo;
-import org.onap.ccsdk.features.model.ConfigModelConstant;
-import org.onap.ccsdk.features.model.service.ComponentNode;
-import org.onap.ccsdk.features.model.service.ConfigModelService;
-import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
-import org.onap.ccsdk.sli.core.sli.SvcLogicException;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
-public class ConfigGeneratorNode implements ComponentNode {
-
- private static EELFLogger logger = EELFManager.getInstance().getLogger(ConfigGeneratorNode.class);
-
- private ConfigModelService configModelService;
- private ConfigResourceService configResourceService;
- private ConfigGeneratorService configGeneratorService;
-
- public ConfigGeneratorNode(ConfigResourceService configResourceService, ConfigModelService configModelService) {
- this.configResourceService = configResourceService;
- this.configModelService = configModelService;
- this.configGeneratorService = new ConfigGeneratorServiceImpl(this.configResourceService);
- }
-
- @Override
- public Boolean preCondition(Map<String, String> inParams, SvcLogicContext ctx, Map<String, Object> componentContext)
- throws SvcLogicException {
- logger.trace("Received generateConfiguration preCondition call with params : ({})", inParams);
- return Boolean.TRUE;
- }
-
- @Override
- public void preProcess(Map<String, String> inParams, SvcLogicContext ctx, Map<String, Object> componentContext)
- throws SvcLogicException {
- logger.trace("Received generateConfiguration preProcess call with params : ({})", inParams);
- }
-
- @Override
- public void process(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
- logger.trace("Received generateConfiguration process call with params : ({})", inParams);
- }
-
- @SuppressWarnings("squid:S3776")
- @Override
- public void process(Map<String, String> inParams, SvcLogicContext ctx, Map<String, Object> componentContext)
- throws SvcLogicException {
- logger.trace("Received generateConfiguration process with params : ({})", inParams);
- String prifix = inParams.get(ConfigModelConstant.PROPERTY_SELECTOR);
- try {
- prifix = StringUtils.isNotBlank(prifix) ? (prifix + ".") : "";
-
- String templateContent = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_CONTENT);
- String templateData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA);
- String requestId = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_REQUEST_ID);
- String resourceId = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESOURCE_ID);
- String resourceType = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESOURCE_TYPE);
- String recipeName = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_ACTION_NAME);
- String templateName = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_NAME);
-
- ConfigGeneratorInfo configGeneratorInfo = null;
- if (StringUtils.isNotBlank(templateContent) && StringUtils.isNotBlank(templateData)) {
- configGeneratorInfo = this.configGeneratorService.generateConfiguration(templateContent, templateData);
- } else {
- if (StringUtils.isBlank(requestId)) {
- throw new SvcLogicException("Config Generator Request Id is missing.");
- }
- if (StringUtils.isBlank(resourceId)) {
- throw new SvcLogicException("Config Generator Resource Id is missing.");
- }
- if (StringUtils.isBlank(resourceType)) {
- throw new SvcLogicException("Config Generator Resource Type is missing.");
- }
- if (StringUtils.isBlank(recipeName)) {
- throw new SvcLogicException("Config Generator Action Name is missing.");
- }
- if (StringUtils.isBlank(templateName)) {
- throw new SvcLogicException("Config Generator Template Name Id is missing.");
- }
-
- templateContent = configModelService.getNodeTemplateContent(ctx, templateName);
-
- if (StringUtils.isBlank(templateContent)) {
- throw new SvcLogicException(
- "Failed to get the Template Content for the Temaple Name :" + templateName);
- }
-
- configGeneratorInfo = new ConfigGeneratorInfo();
- configGeneratorInfo.setRequestId(requestId);
- configGeneratorInfo.setResourceId(resourceId);
- configGeneratorInfo.setResourceType(resourceType);
- configGeneratorInfo.setRecipeName(recipeName);
- configGeneratorInfo.setTemplateName(templateName);
- configGeneratorInfo.setTemplateContent(templateContent);
-
- this.configGeneratorService.generateConfiguration(configGeneratorInfo);
- }
- if (configGeneratorInfo != null) {
- ctx.setAttribute(prifix + ConfigGeneratorConstant.OUTPUT_PARAM_GENERATED_CONFIG,
- configGeneratorInfo.getMashedData());
- }
- ctx.setAttribute(prifix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS,
- ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
- } catch (Exception e) {
- ctx.setAttribute(prifix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS,
- ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE);
- ctx.setAttribute(prifix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE, e.getMessage());
- logger.error("Failed in generateConfiguration ({})", e);
- throw new SvcLogicException(e.getMessage());
- }
- }
-
- @Override
- public void postProcess(Map<String, String> inParams, SvcLogicContext ctx, Map<String, Object> componentContext)
- throws SvcLogicException {
- logger.info("Received generateConfiguration postProcess with params : ({})", inParams);
- }
-
-}
diff --git a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorService.java b/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorService.java
deleted file mode 100644
index b8a943083..000000000
--- a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorService.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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
- *
- * 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.
- */
-
-package org.onap.ccsdk.features.generator.service;
-
-import org.onap.ccsdk.features.generator.data.ConfigGeneratorInfo;
-import org.onap.ccsdk.sli.core.sli.SvcLogicException;
-
-public interface ConfigGeneratorService {
-
- public ConfigGeneratorInfo generateConfiguration(String templateContent, String templateData)
- throws SvcLogicException;
-
- public ConfigGeneratorInfo generateConfiguration(String templateContent, String templateData, boolean ignoreNull)
- throws SvcLogicException;
-
- public ConfigGeneratorInfo generateConfiguration(ConfigGeneratorInfo configGeneratorInfo) throws SvcLogicException;
-
-}
diff --git a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorServiceImpl.java b/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorServiceImpl.java
deleted file mode 100644
index 6292b8def..000000000
--- a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorServiceImpl.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * 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
- *
- * 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.
- */
-
-package org.onap.ccsdk.features.generator.service;
-
-import java.io.StringWriter;
-import java.util.Iterator;
-import java.util.List;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.Velocity;
-import org.onap.ccsdk.features.data.adaptor.domain.ConfigResource;
-import org.onap.ccsdk.features.data.adaptor.service.ConfigResourceService;
-import org.onap.ccsdk.features.generator.data.ConfigGeneratorInfo;
-import org.onap.ccsdk.features.generator.tool.CustomJsonNodeFactory;
-import org.onap.ccsdk.features.model.utils.TransformationUtils;
-import org.onap.ccsdk.sli.core.sli.SvcLogicException;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-public class ConfigGeneratorServiceImpl implements ConfigGeneratorService {
-
- private static EELFLogger logger = EELFManager.getInstance().getLogger(ConfigGeneratorServiceImpl.class);
- private static final String CLASS_NAME = "ConfigGeneratorServiceImpl";
-
- private ConfigResourceService configResourceService;
-
- public ConfigGeneratorServiceImpl(ConfigResourceService configResourceService) {
- logger.info("{} Constuctor Initated...", CLASS_NAME);
- this.configResourceService = configResourceService;
- }
-
- @Override
- public ConfigGeneratorInfo generateConfiguration(ConfigGeneratorInfo configGeneratorInfo) throws SvcLogicException {
-
- if (configGeneratorInfo != null && StringUtils.isNotBlank(configGeneratorInfo.getResourceId())
- && StringUtils.isNotBlank(configGeneratorInfo.getResourceType())
- && StringUtils.isNotBlank(configGeneratorInfo.getRecipeName())
- && StringUtils.isNotBlank(configGeneratorInfo.getTemplateName())
- && StringUtils.isNotBlank(configGeneratorInfo.getTemplateContent())) {
-
- ConfigResource configResourceQuery = new ConfigResource();
- configResourceQuery.setResourceId(configGeneratorInfo.getResourceId());
- configResourceQuery.setResourceType(configGeneratorInfo.getResourceType());
- configResourceQuery.setTemplateName(configGeneratorInfo.getTemplateName());
-
- List<ConfigResource> configResourceList = configResourceService.getConfigResource(configResourceQuery);
-
- if (CollectionUtils.isEmpty(configResourceList)) {
- throw new SvcLogicException("No Config Resource found");
- } else if (configResourceList.size() > 1) {
- throw new SvcLogicException("More than one Config Resource found for specified parameter for"
- + " resourceId " + configGeneratorInfo.getResourceId() + ", resourceType "
- + configGeneratorInfo.getResourceType() + ", recipeName " + configGeneratorInfo.getRecipeName()
- + ", templateName " + configGeneratorInfo.getTemplateName());
- }
-
- ConfigResource configResource = configResourceList.get(0);
-
- if (configResource != null && StringUtils.isNotBlank(configResource.getResourceData())) {
- configGeneratorInfo.setResourceData(configResource.getResourceData());
- logger.debug("Retrieve ConfigResource Data : ({})", configResource.getResourceData());
- ConfigGeneratorInfo generatorInfo = generateConfiguration(configGeneratorInfo.getTemplateContent(),
- configResource.getResourceData());
- if (generatorInfo != null) {
- configGeneratorInfo.setMashedData(generatorInfo.getMashedData());
- }
- } else {
- throw new SvcLogicException(
- "Failed to get the Resource Data for the Resource Id :" + configGeneratorInfo.getResourceId()
- + " of template :" + configGeneratorInfo.getTemplateName());
- }
- }
- return configGeneratorInfo;
- }
-
- @Override
- public ConfigGeneratorInfo generateConfiguration(String templateContent, String templateData)
- throws SvcLogicException {
- return generateConfiguration(templateContent, templateData, true);
- }
-
- @Override
- public ConfigGeneratorInfo generateConfiguration(String templateContent, String templateData, boolean ignoreNull)
- throws SvcLogicException {
- ConfigGeneratorInfo configGeneratorInfo = null;
- try {
- if (StringUtils.isNotBlank(templateContent) && StringUtils.isNotBlank(templateData)) {
- configGeneratorInfo = new ConfigGeneratorInfo();
-
- Velocity.init();
-
- ObjectMapper mapper = new ObjectMapper();
- CustomJsonNodeFactory f = new CustomJsonNodeFactory();
- mapper.setNodeFactory(f);
-
- JsonNode jsonObj = mapper.readValue(templateData, JsonNode.class);
- if (ignoreNull) {
- TransformationUtils.removeJsonNullNode(jsonObj);
- }
-
- VelocityContext context = new VelocityContext();
- context.put("StringUtils", org.apache.commons.lang3.StringUtils.class);
- context.put("BooleanUtils", org.apache.commons.lang3.BooleanUtils.class);
-
- Iterator<String> ii = jsonObj.fieldNames();
- while (ii.hasNext()) {
- String key = ii.next();
- JsonNode node = jsonObj.get(key);
- logger.info("Adding key ({}) with value ({})", key, node);
- context.put(key, node);
- }
-
- StringWriter writer = new StringWriter();
- Velocity.evaluate(context, writer, "TemplateData", templateContent);
- writer.flush();
- configGeneratorInfo.setMashedData(writer.toString());
- }
- } catch (Exception e) {
- logger.error("Failed to generate Configuration ({})", e.getMessage());
- throw new SvcLogicException(e.getMessage(), e);
- }
- return configGeneratorInfo;
- }
-
-}
diff --git a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/tool/CustomJsonNodeFactory.java b/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/tool/CustomJsonNodeFactory.java
deleted file mode 100644
index f20cef2a6..000000000
--- a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/tool/CustomJsonNodeFactory.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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
- *
- * 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.
- */
-
-package org.onap.ccsdk.features.generator.tool;
-
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-import com.fasterxml.jackson.databind.node.TextNode;
-
-public class CustomJsonNodeFactory extends JsonNodeFactory {
-
- @Override
- public TextNode textNode(String text) {
- return new CustomTextNode(text);
- }
-
-}
diff --git a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/tool/CustomTextNode.java b/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/tool/CustomTextNode.java
deleted file mode 100644
index 1a62dd6a9..000000000
--- a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/tool/CustomTextNode.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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
- *
- * 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.
- */
-
-package org.onap.ccsdk.features.generator.tool;
-
-import com.fasterxml.jackson.core.io.CharTypes;
-import com.fasterxml.jackson.databind.node.TextNode;
-
-public class CustomTextNode extends TextNode {
-
- public CustomTextNode(String v) {
- super(v);
- }
-
- @Override
- public String toString() {
- int len = textValue().length();
- len = len + 2 + (len >> 4);
- StringBuilder sb = new StringBuilder(len);
- appendQuoted(sb, textValue());
- return sb.toString();
- }
-
- protected static void appendQuoted(StringBuilder sb, String content) {
- CharTypes.appendQuoted(sb, content);
- }
-
-}
diff --git a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/tool/EscapeUtils.java b/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/tool/EscapeUtils.java
deleted file mode 100644
index d3246e045..000000000
--- a/blueprints-processor/plugin/generator-provider/src/main/java/org/onap/ccsdk/features/generator/tool/EscapeUtils.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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
- *
- * 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.
- */
-
-package org.onap.ccsdk.features.generator.tool;
-
-import org.apache.commons.lang3.StringUtils;
-
-@SuppressWarnings("squid:S1118")
-public class EscapeUtils {
-
- public static String escapeSql(String str) {
- if (str == null) {
- return null;
- }
- String[] searchList = new String[] {"'", "\\"};
- String[] replacementList = new String[] {"''", "\\\\"};
- return StringUtils.replaceEach(str, searchList, replacementList);
- }
-
- // For Generic Purpose
- public static String escapeSequence(String s) {
- if (s == null) {
- return null;
- }
-
- int length = s.length();
- int newLength = length;
- for (int i = 0; i < length; i++) {
- char c = s.charAt(i);
- switch (c) {
- case '\\':
- case '\"':
- case '\'':
- case '\0':
- newLength += 1;
- break;
- default:
- // do nothing
- }
- }
- if (length == newLength) {
- // nothing to escape in the string
- return s;
- }
- StringBuilder sb = new StringBuilder(newLength);
- for (int i = 0; i < length; i++) {
- char c = s.charAt(i);
- switch (c) {
- case '\\':
- sb.append("\\\\");
- break;
- case '\"':
- sb.append("\\\"");
- break;
- case '\'':
- sb.append("\\\'");
- break;
- case '\0':
- sb.append("\\0");
- break;
- default:
- sb.append(c);
- }
- }
- return sb.toString();
- }
-
-}
diff --git a/blueprints-processor/plugin/generator-provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml b/blueprints-processor/plugin/generator-provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml
deleted file mode 100644
index 78cb28189..000000000
--- a/blueprints-processor/plugin/generator-provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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
-
- 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.
--->
-
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
- odl:use-default-for-reference-types="true">
-
- <reference id="configModelService"
- interface="org.onap.ccsdk.features.model.service.ConfigModelService" />
-
- <reference id="configResourceService"
- interface="org.onap.ccsdk.features.data.adaptor.service.ConfigResourceService" />
-
- <!-- Expose the Common Component Bean -->
-
- <bean id="configGeneratorService"
- class="org.onap.ccsdk.features.generator.service.ConfigGeneratorServiceImpl">
- <argument ref="configResourceService" />
- </bean>
-
- <service ref="configGeneratorService"
- interface="org.onap.ccsdk.features.generator.service.ConfigGeneratorService" />
-
- <bean id="configGeneratorNode"
- class="org.onap.ccsdk.features.generator.service.ConfigGeneratorNode">
- <argument ref="configResourceService" />
- <argument ref="configModelService" />
- </bean>
-
- <service ref="configGeneratorNode"
- interface="org.onap.ccsdk.features.generator.service.ConfigGeneratorNode" />
-
-
-</blueprint>
diff --git a/blueprints-processor/plugin/generator-provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/blueprints-processor/plugin/generator-provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
deleted file mode 100644
index 78cb28189..000000000
--- a/blueprints-processor/plugin/generator-provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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
-
- 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.
--->
-
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
- odl:use-default-for-reference-types="true">
-
- <reference id="configModelService"
- interface="org.onap.ccsdk.features.model.service.ConfigModelService" />
-
- <reference id="configResourceService"
- interface="org.onap.ccsdk.features.data.adaptor.service.ConfigResourceService" />
-
- <!-- Expose the Common Component Bean -->
-
- <bean id="configGeneratorService"
- class="org.onap.ccsdk.features.generator.service.ConfigGeneratorServiceImpl">
- <argument ref="configResourceService" />
- </bean>
-
- <service ref="configGeneratorService"
- interface="org.onap.ccsdk.features.generator.service.ConfigGeneratorService" />
-
- <bean id="configGeneratorNode"
- class="org.onap.ccsdk.features.generator.service.ConfigGeneratorNode">
- <argument ref="configResourceService" />
- <argument ref="configModelService" />
- </bean>
-
- <service ref="configGeneratorNode"
- interface="org.onap.ccsdk.features.generator.service.ConfigGeneratorNode" />
-
-
-</blueprint>
diff --git a/blueprints-processor/plugin/generator-provider/src/test/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorNodeTest.java b/blueprints-processor/plugin/generator-provider/src/test/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorNodeTest.java
deleted file mode 100644
index 2054ee681..000000000
--- a/blueprints-processor/plugin/generator-provider/src/test/java/org/onap/ccsdk/features/generator/service/ConfigGeneratorNodeTest.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * 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
- *
- * 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.
- */
-
-package org.onap.ccsdk.features.generator.service;
-
-import static org.mockito.Matchers.any;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.apache.commons.io.IOUtils;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.mockito.stubbing.Answer;
-import org.onap.ccsdk.features.data.adaptor.domain.ConfigResource;
-import org.onap.ccsdk.features.data.adaptor.domain.TransactionLog;
-import org.onap.ccsdk.features.data.adaptor.service.ConfigResourceService;
-import org.onap.ccsdk.features.generator.ConfigGeneratorConstant;
-import org.onap.ccsdk.features.model.ConfigModelConstant;
-import org.onap.ccsdk.features.model.service.ConfigModelService;
-import org.onap.ccsdk.features.model.service.ConfigModelServiceImpl;
-import org.onap.ccsdk.features.model.utils.TransformationUtils;
-import org.onap.ccsdk.features.rest.adaptor.service.ConfigRestAdaptorService;
-import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
-import org.onap.ccsdk.sli.core.sli.SvcLogicException;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
-@RunWith(MockitoJUnitRunner.class)
-public class ConfigGeneratorNodeTest {
-
- private static EELFLogger logger = EELFManager.getInstance().getLogger(ConfigGeneratorNodeTest.class);
-
- @Mock
- private ConfigResourceService configResourceService;
-
- @Mock
- private ConfigRestAdaptorService configRestAdaptorService;
-
- private ConfigModelService configModelService;
-
- @Before
- public void setUp() throws Exception {
-
- configModelService = new ConfigModelServiceImpl(configRestAdaptorService);
-
- MockitoAnnotations.initMocks(this);
-
- try {
- Mockito.doAnswer(new Answer<Void>() {
- @Override
- public Void answer(InvocationOnMock invocationOnMock) throws Throwable {
- Object[] args = invocationOnMock.getArguments();
- if (args != null) {
- logger.trace("Transaction info " + Arrays.asList(args));
- }
- return null;
- }
- }).when(configResourceService).save(any(TransactionLog.class));
-
- Mockito.doAnswer(new Answer<List<ConfigResource>>() {
- @Override
- public List<ConfigResource> answer(InvocationOnMock invocationOnMock) throws Throwable {
- List<ConfigResource> configResources = new ArrayList<>();
- Object[] args = invocationOnMock.getArguments();
- if (args != null) {
- logger.trace("Transaction info " + Arrays.asList(args));
- String resourceData = IOUtils.toString(ConfigGeneratorNodeTest.class.getClassLoader()
- .getResourceAsStream("service_templates/configdata.json"), Charset.defaultCharset());
- ConfigResource configResource = (ConfigResource) args[0];
- configResource.setRecipeName("Sample-recipe");
- configResource.setResourceData(resourceData);
- configResources.add(configResource);
- }
- return configResources;
- }
- }).when(configResourceService).getConfigResource(any(ConfigResource.class));
-
- } catch (SvcLogicException e) {
- e.printStackTrace();
- }
- }
-
- @Test
- public void testInputTemplateContentNData() throws Exception {
-
- ConfigGeneratorNode configGeneratorNode = new ConfigGeneratorNode(configResourceService, configModelService);
-
- Map<String, String> inParams = new HashMap<String, String>();
- inParams.put(ConfigModelConstant.PROPERTY_SELECTOR, "test");
-
- String jsonData = IOUtils.toString(
- ConfigGeneratorNodeTest.class.getClassLoader().getResourceAsStream("service_templates/configdata.json"),
- Charset.defaultCharset());
- inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA, jsonData);
-
- String templateData = IOUtils.toString(ConfigGeneratorNodeTest.class.getClassLoader()
- .getResourceAsStream("service_templates/velocity/base-config-template.vtl"), Charset.defaultCharset());
- inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_CONTENT, templateData);
-
- SvcLogicContext ctx = new SvcLogicContext();
- Map<String, Object> componentContext = new HashMap<>();
- configGeneratorNode.process(inParams, ctx, componentContext);
- Assert.assertEquals("Failed to generate Configuration Status as Failure",
- ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS,
- ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS));
- Assert.assertNotNull("Failed to generate Configuration",
- ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_GENERATED_CONFIG));
-
- logger.trace("Generated Configuration:\n "
- + ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_GENERATED_CONFIG));
- logger.trace("Generated Configuration:\n "
- + ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_MASK_INFO));
-
- }
-
- @Test
- public void testInputTemplateWithNullData() throws Exception {
-
- ConfigGeneratorNode configGeneratorNode = new ConfigGeneratorNode(configResourceService, configModelService);
-
- Map<String, String> inParams = new HashMap<String, String>();
- inParams.put(ConfigModelConstant.PROPERTY_SELECTOR, "test");
-
- String jsonData = IOUtils.toString(ConfigGeneratorNodeTest.class.getClassLoader()
- .getResourceAsStream("service_templates/configdata_with_null.json"), Charset.defaultCharset());
- inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA, jsonData);
-
- String templateData = IOUtils.toString(ConfigGeneratorNodeTest.class.getClassLoader()
- .getResourceAsStream("service_templates/velocity/base-config-template.vtl"), Charset.defaultCharset());
- inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_CONTENT, templateData);
-
- SvcLogicContext ctx = new SvcLogicContext();
- Map<String, Object> componentContext = new HashMap<>();
- configGeneratorNode.process(inParams, ctx, componentContext);
- Assert.assertEquals("Failed to generate Configuration Status as Failure",
- ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS,
- ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS));
- Assert.assertNotNull("Failed to generate Configuration",
- ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_GENERATED_CONFIG));
-
- logger.trace("Generated Configuration:\n "
- + ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_GENERATED_CONFIG));
- logger.trace("Generated Configuration:\n "
- + ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_MASK_INFO));
-
- }
-
- @Test
- public void testDBTemplateContentNData() throws Exception {
-
- String fileContent = IOUtils.toString(ConfigGeneratorNodeTest.class.getClassLoader()
- .getResourceAsStream("service_templates/generate_configuration.json"), Charset.defaultCharset());
-
- String baseConfigTemplateContent = IOUtils.toString(ConfigGeneratorNodeTest.class.getClassLoader()
- .getResourceAsStream("service_templates/velocity/base-config-template.vtl"), Charset.defaultCharset());
-
- Map<String, String> context = new HashMap<>();
- context = configModelService.convertServiceTemplate2Properties(fileContent, context);
-
- context.put("node_templates.base-config-template.content", baseConfigTemplateContent);
-
- Assert.assertNotNull("Failed to Prepare Context : ", context);
-
- context.put("request-id", "12345");
- context.put("vnf-id", "vnf12345");
- context.put("action-name", "config-generator-action");
-
- Map<String, String> inparams = new HashMap<String, String>();
- inparams.put(ConfigModelConstant.PROPERTY_SELECTOR, "generate-configuration");
-
- SvcLogicContext inputContext = new SvcLogicContext();
- context.forEach((name, value) -> {
- inputContext.setAttribute(name, value);
- });
-
- TransformationUtils.printMap(context);
- configModelService.assignInParamsFromModel(inputContext, inparams);
- ConfigGeneratorNode configGeneratorNode = new ConfigGeneratorNode(configResourceService, configModelService);
-
- Map<String, Object> componentContext = new HashMap<>();
- configGeneratorNode.process(inparams, inputContext, componentContext);
-
- Assert.assertEquals("Failed to generate Configuration Status as Failure",
- ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS,
- inputContext.getAttribute("generate-configuration." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS));
- Assert.assertNotNull("Failed to generate Configuration", inputContext
- .getAttribute("generate-configuration." + ConfigGeneratorConstant.OUTPUT_PARAM_GENERATED_CONFIG));
-
- logger.trace("Generated Configuration:\n " + inputContext
- .getAttribute("generate-configuration." + ConfigGeneratorConstant.OUTPUT_PARAM_GENERATED_CONFIG));
- }
-
- @Test
- public void testTemplateContentNDataForMask() throws Exception {
-
- }
-
-}
diff --git a/blueprints-processor/plugin/generator-provider/src/test/java/org/onap/ccsdk/features/generator/tool/EscapeUtilsTest.java b/blueprints-processor/plugin/generator-provider/src/test/java/org/onap/ccsdk/features/generator/tool/EscapeUtilsTest.java
deleted file mode 100644
index 17dcf7d07..000000000
--- a/blueprints-processor/plugin/generator-provider/src/test/java/org/onap/ccsdk/features/generator/tool/EscapeUtilsTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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
- *
- * 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.
- */
-
-package org.onap.ccsdk.features.generator.tool;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-public class EscapeUtilsTest {
-
- @Test
- public void testEscapeSql() {
- Assert.assertEquals("", EscapeUtils.escapeSql(""));
- Assert.assertEquals("text", EscapeUtils.escapeSql("text"));
-
- Assert.assertEquals("''", EscapeUtils.escapeSql("'"));
- Assert.assertEquals("\\\\", EscapeUtils.escapeSql("\\"));
-
- Assert.assertEquals("text''text", EscapeUtils.escapeSql("text'text"));
- Assert.assertEquals("text\\\\text", EscapeUtils.escapeSql("text\\text"));
- }
-
- @Test
- public void testEscapeSequence() {
- Assert.assertEquals("", EscapeUtils.escapeSequence(""));
- Assert.assertEquals("text", EscapeUtils.escapeSequence("text"));
-
- Assert.assertEquals("\\\'", EscapeUtils.escapeSequence("'"));
- Assert.assertEquals("\\\"", EscapeUtils.escapeSequence("\""));
- Assert.assertEquals("\\\\", EscapeUtils.escapeSequence("\\"));
-
- Assert.assertEquals("text\\\'text", EscapeUtils.escapeSequence("text'text"));
- Assert.assertEquals("text\\\"text", EscapeUtils.escapeSequence("text\"text"));
- Assert.assertEquals("text\\\\text", EscapeUtils.escapeSequence("text\\text"));
- }
-
-}
diff --git a/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/configdata.json b/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/configdata.json
deleted file mode 100644
index 13d355cbc..000000000
--- a/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/configdata.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "node0_hostname": "appc-host",
- "node0_backup_router_address": "2001:2001:2001:2001:2001:2001:2001:2001",
- "servers": [
- "Server1",
- "Server2",
- "Server3"
- ],
- "tacplus-servers": [
- {
- "tacplus-server-name": "tacplus-server-name1",
- "tacplus-server-source-address": "enc-dsdsasa1"
- },
- {
- "tacplus-server-name": "tacplus-server-name2",
- "tacplus-server-source-address": "enc-dsdsasa2"
- }
- ],
- "classes": [
- {
- "name": "superuser-class",
- "idle-timeout": 5,
- "permissions": "all"
- },
- {
- "name": "tacacs-adv-class",
- "idle-timeout": 5
- },
- {
- "name": "tacacs-base-class",
- "idle-timeout": 5
- }
- ],
- "system-password": "teamops-system-password",
- "root-password": "teamops-root-password"
-}
diff --git a/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/configdata_with_null.json b/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/configdata_with_null.json
deleted file mode 100644
index d08acb17c..000000000
--- a/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/configdata_with_null.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "node0_hostname": null,
- "node0_backup_router_address": "2001:2001:2001:2001:2001:2001:2001:2001",
- "servers": [
- "Server1",
- "Server2",
- "Server3"
- ],
- "tacplus-servers": [
- {
- "tacplus-server-name": null,
- "tacplus-server-source-address": "enc-dsdsasa1"
- },
- {
- "tacplus-server-name": "tacplus-server-name2",
- "tacplus-server-source-address": "enc-dsdsasa2"
- }
- ],
- "classes": [
- {
- "name": "superuser-class",
- "idle-timeout": 5,
- "permissions": "all"
- },
- {
- "name": "tacacs-adv-class",
- "idle-timeout": 5
- },
- {
- "name": "tacacs-base-class",
- "idle-timeout": 5
- }
- ],
- "system-password": "teamops-system-password",
- "root-password": "teamops-root-password"
-} \ No newline at end of file
diff --git a/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/generate_configuration.json b/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/generate_configuration.json
deleted file mode 100644
index 326d2e8ec..000000000
--- a/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/generate_configuration.json
+++ /dev/null
@@ -1,355 +0,0 @@
-{
- "metadata": {
- "author": "ks220y@att.com",
- "service-template-name": "VRR-baseconfiguration",
- "service-template-version": "1.0.0",
- "service-type": "AVPN",
- "vnf-type": "VRR",
- "action": "Base Configuration",
- "sub-action": "Generate Configuration"
- },
- "topology_template": {
- "inputs": {
- "request-id": {
- "required": true,
- "type": "string"
- },
- "service-instance-id": {
- "required": true,
- "type": "string"
- },
- "vnf-id": {
- "required": true,
- "type": "string"
- }
- },
- "node_templates": {
- "base-config-template": {
- "type": "artifact-config-template",
- "properties": {
- "action-names": [
- "resource-assignment-action"
- ]
- },
- "capabilities": {
- "content": {
- "properties": {
- "content": "db://base-config-template"
- }
- },
- "mapping": {
- "properties": {
- "mapping": [
- {
- "name": "bundle-id",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "bundle-id",
- "dictionary-source": "mdsal"
- },
- {
- "name": "bundle-mac",
- "input-param": true,
- "property": {
- "type": "string"
- },
- "dictionary-name": "bundle-mac",
- "dictionary-source": "db"
- }
- ]
- }
- }
- }
- },
- "generate-configuration": {
- "type": "component-config-generator",
- "interfaces": {
- "org-onap-ccsdk-features-generator-service-ConfigGeneratorNode": {
- "operations": {
- "process": {
- "inputs": {
- "resource-type": "vnf-type",
- "request-id": "{ \"get_attribute\" : \"request-id\" }",
- "resource-id": "{ \"get_input\" : \"vnf-id\" }",
- "action-name": "{ \"get_attribute\" : \"action-name\" }",
- "template-name": "base-config-template"
- },
- "outputs": {
- "generated-config": "",
- "status": ""
- }
- }
- }
- }
- },
- "capabilities": {
- "component-node": {
-
- }
- }
- },
- "config-generator-action": {
- "type": "dg-config-generator",
- "interfaces": {
- "CONFIG": {
- "operations": {
- "GenerateConfiguration": {
-
- }
- }
- }
- },
- "capabilities": {
- "dg-node": {
-
- }
- },
- "requirements": {
- "component-dependency": {
- "capability": "component-node",
- "node": "generate-configuration",
- "relationship": "tosca.relationships.DependsOn"
- }
- }
- }
- }
- },
- "node_types": {
- "artifact-config-template": {
- "description": "This is Configuration Velocity Template",
- "version": "1.0.0",
- "properties": {
- "action-names": {
- "required": true,
- "type": "list",
- "entry_schema": {
- "type": "string"
- }
- }
- },
- "capabilities": {
- "content": {
- "type": "tosca.capabilities.Content",
- "properties": {
- "content": {
- "required": true,
- "type": "string"
- }
- }
- },
- "mapping": {
- "type": "tosca.capabilities.Mapping",
- "properties": {
- "mapping": {
- "required": false,
- "type": "list",
- "entry_schema": {
- "type": "datatype-resource-assignment"
- }
- }
- }
- }
- },
- "derived_from": "tosca.nodes.Artifact"
- },
- "component-config-generator": {
- "description": "This is Generate Configuration Component API",
- "version": "1.0.0",
- "capabilities": {
- "component-node": {
- "type": "tosca.capabilities.Node"
- }
- },
- "interfaces": {
- "org-onap-ccsdk-features-generator-service-ConfigGeneratorNode": {
- "operations": {
- "process": {
- "inputs": {
- "template-data": {
- "description": "Conditional : JSON string which is used to mash with template. Either template-data or ( resource-id and resource-type ) should be present",
- "required": false,
- "type": "string"
- },
- "template-content": {
- "description": "Conditional : Dynamic Template used to generate Configuration.",
- "required": false,
- "type": "string"
- },
- "resource-type": {
- "description": "Conditional : resource-type used to pull the data content from the data base. Either template-data or ( resource-id and resource-type ) should be present",
- "required": false,
- "type": "string"
- },
- "request-id": {
- "description": "Request Id used to store the generated configuration, in the database along with the template-name",
- "required": true,
- "type": "string"
- },
- "resource-id": {
- "description": "Conditional : Id used to pull the data content from the data base. Either template-data or ( resource-id and resource-type ) should be present",
- "required": false,
- "type": "string"
- },
- "action-name": {
- "description": "Conditional : Action Name to get from Database, Either (message & mask-info ) or ( resource-id & resource-type & action-name & template-name ) should be present. Message will be given higest priority",
- "required": false,
- "type": "string"
- },
- "template-name": {
- "description": "Conditional : Name of the Artifact Node Template, to get the template Content. If template-content is present, then content wont be reterived from the Artifact Node Template.",
- "required": true,
- "type": "string"
- }
- },
- "outputs": {
- "generated-config": {
- "description": "Generated Configuration for the Template adn Resource Data",
- "required": true,
- "type": "string"
- },
- "mask-info": {
- "description": "If template contains mask encription keys, then this mask-info field will be generated, This JSON Content alligns to the bean org.onap.ccsdk.features.model.data.custom.MaskInfo ",
- "required": false,
- "type": "string"
- },
- "status": {
- "description": "Status of the Component Execution ( success or failure )",
- "required": true,
- "type": "string"
- }
- }
- }
- }
- }
- },
- "derived_from": "tosca.nodes.Component"
- },
- "dg-config-generator": {
- "description": "This is Activate DG for Config Generator Directed Graph",
- "version": "1.0.0",
- "properties": {
- "mode": {
- "required": false,
- "type": "string",
- "default": "sync"
- },
- "version": {
- "required": false,
- "type": "string",
- "default": "LATEST"
- },
- "is-start-flow": {
- "required": false,
- "type": "boolean",
- "default": "false"
- }
- },
- "capabilities": {
- "dg-node": {
- "type": "tosca.capabilities.Node"
- },
- "content": {
- "type": "tosca.capabilities.Content",
- "properties": {
- "type": {
- "required": false,
- "type": "string",
- "default": "json"
- },
- "content": {
- "required": true,
- "type": "string"
- }
- }
- }
- },
- "requirements": {
- "component-dependency": {
- "capability": "component-node",
- "node": "component-config-generator",
- "relationship": "tosca.relationships.DependsOn"
- }
- },
- "interfaces": {
- "CONFIG": {
- "operations": {
- "GenerateConfiguration": {
- "inputs": {
- "params": {
- "required": false,
- "type": "list",
- "entry_schema": {
- "type": "datatype-property"
- }
- }
- }
- }
- }
- }
- },
- "derived_from": "tosca.nodes.DG"
- }
- },
- "data_types": {
- "datatype-resource-assignment": {
- "version": "1.0.0",
- "description": "This is Resource Assignment Data Type",
- "properties": {
- "property": {
- "required": true,
- "type": "datatype-property"
- },
- "input-param": {
- "required": true,
- "type": "boolean"
- },
- "dictionary-name": {
- "required": false,
- "type": "string"
- },
- "dictionary-source": {
- "required": false,
- "type": "string"
- },
- "dependencies": {
- "required": true,
- "type": "list",
- "entry_schema": {
- "type": "string"
- }
- }
- },
- "derived_from": "tosca.datatypes.Root"
- },
- "datatype-property": {
- "version": "1.0.0",
- "description": "This is Entry point Input Data Type, which is dynamic datatype, The parameter names will be populated during the Design time for each inputs",
- "properties": {
- "type": {
- "required": true,
- "type": "string"
- },
- "description": {
- "required": false,
- "type": "string"
- },
- "required": {
- "required": false,
- "type": "boolean"
- },
- "default": {
- "required": false,
- "type": "string"
- },
- "entry_schema": {
- "required": false,
- "type": "string"
- }
- },
- "derived_from": "tosca.datatypes.Root"
- }
- }
-}
diff --git a/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/velocity/base-config-template.vtl b/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/velocity/base-config-template.vtl
deleted file mode 100644
index e0ea400c6..000000000
--- a/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/velocity/base-config-template.vtl
+++ /dev/null
@@ -1,61 +0,0 @@
-<configuration xmlns="http://xml.juniper.net/xnm/1.1/xnm"
-xmlns:a="http://xml.juniper.net/junos/15.1X49/junos">
- <version>15.1X49-D50.3</version>
- <groups>
- <name>node0</name>
- <system>
- #foreach($server in ${servers})
- <server-host-name>$StringUtils.upperCase("$server")</server-host-name>
- #end
- </system>
- <system>
- <host-name>${node0_hostname}</host-name>
- <backup-router>
- <address>${node0_backup_router_address}</address>
- <destination>$node0_backup_router_address</destination>
- </backup-router>
- #foreach($tacplus-server in ${tacplus-servers})
- <tacplus-server>
- <name>$tacplus-server.tacplus-server-name</name>
- <source-address>$tacplus-server.tacplus-server-source-address</source-address>
- </tacplus-server>
- #end
- <login>
- <message>AT&amp;T information assets</message>
- #foreach($class in ${classes})
- <class>
- <name>$class.name</name>
- <idle-timeout>$class.idle-timeout</idle-timeout>
- #if ($class.permissions)
- <permissions>$class.permissions</permissions>
- #end
- </class>
- #end
- <user>
- <name>readonly</name>
- <full-name>Read Only Account Access</full-name>
- <uid>1001</uid>
- <class>tacacs-base-class</class>
- </user>
- <user>
- <name>readwrite</name>
- <full-name>Read - Write Account Access</full-name>
- <uid>1002</uid>
- <class>tacacs-adv-class</class>
- <authentication>
- <encrypted-password>${system-password}</encrypted-password>
- </authentication>
- </user>
- <user>
- <name>readwrite</name>
- <full-name>Emergency Access Only</full-name>
- <uid>1000</uid>
- <class>superuser-class</class>
- <authentication>
- <encrypted-password>${root-password}</encrypted-password>
- </authentication>
- </user>
- </login>
- </system>
- </groups>
-</configuration> \ No newline at end of file
diff --git a/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/velocity/base-config-template_group.vtl b/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/velocity/base-config-template_group.vtl
deleted file mode 100644
index 92dba1024..000000000
--- a/blueprints-processor/plugin/generator-provider/src/test/resources/service_templates/velocity/base-config-template_group.vtl
+++ /dev/null
@@ -1,40 +0,0 @@
- <config>
- <configuration>
- <groups>
- <name>${group-name}</name>
- <routing-instances>
- <instance>
- <name>&lt;*&gt;</name>
- <protocols>
- <pim>
- <dense-groups>
- <dynamic-reject />
- <pim-dense-group-type>
- <name>224.0.1.40/32</name>
- </pim-dense-group-type>
- <pim-dense-group-type>
- <name>224.0.1.39/32</name>
- </pim-dense-group-type>
- <pim-dense-group-type>
- <name>224.0.0.0/4</name>
- <reject />
- </pim-dense-group-type>
- </dense-groups>
- <rp>
- <auto-rp>
- <discovery />
- </auto-rp>
- </rp>
- <interface>
- <name>&lt;*&gt;</name>
- <disable />
- <priority>1000</priority>
- </interface>
- <reset-tracking-bit />
- </pim>
- </protocols>
- </instance>
- </routing-instances>
- </groups>
- </configuration>
- </config> \ No newline at end of file