diff options
author | Muthuramalingam, Brinda Santh(bs2796) <bs2796@att.com> | 2018-08-23 17:33:38 +0000 |
---|---|---|
committer | Muthuramalingam, Brinda Santh(bs2796) <bs2796@att.com> | 2018-08-23 17:33:38 +0000 |
commit | 00bffa6a864d04e7093b6d70a9d321c068d48c7a (patch) | |
tree | fc4fbad072eb4c26c38dffca1b5fe19b40937fdb | |
parent | 380b7afc7c81a13c3025de0efed050ddbd1d929b (diff) |
Controller Blueprints Microservice
Implement Controller Blueprint Meta File format and Meta names such as template_name, template_version, template_author
Change-Id: Id221bb9cb0f9e382e3d59d4e309002de1ceb112b
Issue-ID: CCSDK-458
Signed-off-by: Muthuramalingam, Brinda Santh(bs2796) <bs2796@att.com>
8 files changed, 81 insertions, 87 deletions
diff --git a/ms/controllerblueprints/modules/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/service/BluePrintValidatorService.kt b/ms/controllerblueprints/modules/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/service/BluePrintValidatorService.kt index 2383a6520..973e3de17 100644 --- a/ms/controllerblueprints/modules/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/service/BluePrintValidatorService.kt +++ b/ms/controllerblueprints/modules/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/service/BluePrintValidatorService.kt @@ -47,7 +47,7 @@ open class BluePrintValidatorDefaultService : BluePrintValidatorService { lateinit var serviceTemplate: ServiceTemplate
lateinit var properties: MutableMap<String, Any>
var message: StringBuilder = StringBuilder()
- val seperator: String = "/"
+ private val separator: String = BluePrintConstants.PATH_DIVIDER
var paths: MutableList<String> = arrayListOf()
@Throws(BluePrintException::class)
@@ -68,22 +68,27 @@ open class BluePrintValidatorDefaultService : BluePrintValidatorService { serviceTemplate.nodeTypes?.let { validateNodeTypes(serviceTemplate.nodeTypes!!) }
serviceTemplate.topologyTemplate?.let { validateTopologyTemplate(serviceTemplate.topologyTemplate!!) }
} catch (e: Exception) {
- logger.error("validation failed in the path : {}", paths.joinToString(seperator), e)
+ logger.error("validation failed in the path : {}", paths.joinToString(separator), e)
logger.error("validation trace message :{} ", message)
throw BluePrintException(e,
format("failed to validate blueprint on path ({}) with message {}"
- , paths.joinToString(seperator), e.message))
+ , paths.joinToString(separator), e.message))
}
}
@Throws(BluePrintException::class)
open fun validateMetadata(metaDataMap: MutableMap<String, String>) {
paths.add("metadata")
- Preconditions.checkArgument(StringUtils.isNotBlank(metaDataMap[BluePrintConstants.METADATA_TEMPLATE_NAME]), "failed to get template name metadata")
- Preconditions.checkArgument(StringUtils.isNotBlank(metaDataMap[BluePrintConstants.METADATA_TEMPLATE_VERSION]), "failed to get template version metadata")
- Preconditions.checkArgument(StringUtils.isNotBlank(metaDataMap[BluePrintConstants.METADATA_TEMPLATE_TAGS]), "failed to get template tags metadata")
- Preconditions.checkArgument(StringUtils.isNotBlank(metaDataMap[BluePrintConstants.METADATA_TEMPLATE_AUTHOR]), "failed to get template author metadata")
- Preconditions.checkArgument(StringUtils.isNotBlank(metaDataMap[BluePrintConstants.METADATA_USER_GROUPS]), "failed to get user groups metadata")
+
+ val templateName = metaDataMap[BluePrintConstants.METADATA_TEMPLATE_NAME]
+ val templateVersion = metaDataMap[BluePrintConstants.METADATA_TEMPLATE_VERSION]
+ val templateTags = metaDataMap[BluePrintConstants.METADATA_TEMPLATE_TAGS]
+ val templateAuthor = metaDataMap[BluePrintConstants.METADATA_TEMPLATE_AUTHOR]
+
+ Preconditions.checkArgument(StringUtils.isNotBlank(templateName), "failed to get template name metadata")
+ Preconditions.checkArgument(StringUtils.isNotBlank(templateVersion), "failed to get template version metadata")
+ Preconditions.checkArgument(StringUtils.isNotBlank(templateTags), "failed to get template tags metadata")
+ Preconditions.checkArgument(StringUtils.isNotBlank(templateAuthor), "failed to get template author metadata")
paths.removeAt(paths.lastIndex)
}
@@ -92,7 +97,7 @@ open class BluePrintValidatorDefaultService : BluePrintValidatorService { paths.add("artifact_types")
artifactTypes.forEach { artifactName, artifactType ->
paths.add(artifactName)
- message.appendln("--> Artifact Type :" + paths.joinToString(seperator))
+ message.appendln("--> Artifact Type :" + paths.joinToString(separator))
artifactType.properties?.let { validatePropertyDefinitions(artifactType.properties!!) }
paths.removeAt(paths.lastIndex)
}
@@ -104,7 +109,7 @@ open class BluePrintValidatorDefaultService : BluePrintValidatorService { paths.add("dataTypes")
dataTypes.forEach { dataTypeName, dataType ->
paths.add(dataTypeName)
- message.appendln("--> Data Type :" + paths.joinToString(seperator))
+ message.appendln("--> Data Type :" + paths.joinToString(separator))
dataType.properties?.let { validatePropertyDefinitions(dataType.properties!!) }
paths.removeAt(paths.lastIndex)
}
@@ -124,7 +129,7 @@ open class BluePrintValidatorDefaultService : BluePrintValidatorService { @Throws(BluePrintException::class)
open fun validateNodeType(nodeTypeName: String, nodeType: NodeType) {
paths.add(nodeTypeName)
- message.appendln("--> Node Type :" + paths.joinToString(seperator))
+ message.appendln("--> Node Type :" + paths.joinToString(separator))
val derivedFrom: String = nodeType.derivedFrom
//Check Derived From
checkValidNodeTypesDerivedFrom(derivedFrom)
@@ -147,7 +152,7 @@ open class BluePrintValidatorDefaultService : BluePrintValidatorService { @Throws(BluePrintException::class)
open fun validateInputs(inputs: MutableMap<String, PropertyDefinition>) {
paths.add("inputs")
- message.appendln("---> Input :" + paths.joinToString(seperator))
+ message.appendln("---> Input :" + paths.joinToString(separator))
validatePropertyDefinitions(inputs)
paths.removeAt(paths.lastIndex)
}
@@ -164,7 +169,7 @@ open class BluePrintValidatorDefaultService : BluePrintValidatorService { @Throws(BluePrintException::class)
open fun validateNodeTemplate(nodeTemplateName : String, nodeTemplate: NodeTemplate) {
paths.add(nodeTemplateName)
- message.appendln("---> Node Template :" + paths.joinToString(seperator))
+ message.appendln("---> Node Template :" + paths.joinToString(separator))
val type: String = nodeTemplate.type
val nodeType: NodeType = serviceTemplate.nodeTypes?.get(type)
@@ -192,12 +197,12 @@ open class BluePrintValidatorDefaultService : BluePrintValidatorService { @Throws(BluePrintException::class)
open fun validateWorkFlow(workflowName:String, workflow: Workflow) {
paths.add(workflowName)
- message.appendln("---> Workflow :" + paths.joinToString(seperator))
+ message.appendln("---> Workflow :" + paths.joinToString(separator))
// Step Validation Start
paths.add("steps")
workflow.steps?.forEach { stepName, step ->
paths.add(stepName)
- message.appendln("----> Steps :" + paths.joinToString(seperator))
+ message.appendln("----> Steps :" + paths.joinToString(separator))
paths.removeAt(paths.lastIndex)
}
paths.removeAt(paths.lastIndex)
@@ -220,7 +225,7 @@ open class BluePrintValidatorDefaultService : BluePrintValidatorService { } else {
checkPropertyDataType(dataType, propertyName)
}
- message.appendln("property " + paths.joinToString(seperator) + " of type " + dataType)
+ message.appendln("property " + paths.joinToString(separator) + " of type " + dataType)
paths.removeAt(paths.lastIndex)
}
paths.removeAt(paths.lastIndex)
@@ -245,7 +250,7 @@ open class BluePrintValidatorDefaultService : BluePrintValidatorService { paths.add("artifacts")
artifacts.forEach { artifactName, artifactDefinition ->
paths.add(artifactName)
- message.appendln("Validating artifact " + paths.joinToString(seperator))
+ message.appendln("Validating artifact " + paths.joinToString(separator))
val type: String = artifactDefinition.type
?: throw BluePrintException("type is missing for artifact definition :" + artifactName)
// Check Artifact Type
@@ -279,7 +284,7 @@ open class BluePrintValidatorDefaultService : BluePrintValidatorService { paths.add("interfaces")
interfaces.forEach { interfaceName, interfaceDefinition ->
paths.add(interfaceName)
- message.appendln("Validating : " + paths.joinToString(seperator))
+ message.appendln("Validating : " + paths.joinToString(separator))
interfaceDefinition.operations?.let { validateOperationDefinitions(interfaceDefinition.operations!!) }
paths.removeAt(paths.lastIndex)
}
@@ -291,7 +296,7 @@ open class BluePrintValidatorDefaultService : BluePrintValidatorService { paths.add("operations")
operations.forEach { opertaionName, operationDefinition ->
paths.add(opertaionName)
- message.appendln("Validating : " + paths.joinToString(seperator))
+ message.appendln("Validating : " + paths.joinToString(separator))
operationDefinition.implementation?.let { validateImplementation(operationDefinition.implementation!!) }
operationDefinition.inputs?.let { validatePropertyDefinitions(operationDefinition.inputs!!) }
operationDefinition.outputs?.let { validatePropertyDefinitions(operationDefinition.outputs!!) }
diff --git a/ms/controllerblueprints/modules/service/load/blueprints/vrr-test/Definitions/vrr-test.json b/ms/controllerblueprints/modules/service/load/blueprints/vrr-test/Definitions/vrr-test.json index 626329ac8..d71dd2011 100644 --- a/ms/controllerblueprints/modules/service/load/blueprints/vrr-test/Definitions/vrr-test.json +++ b/ms/controllerblueprints/modules/service/load/blueprints/vrr-test/Definitions/vrr-test.json @@ -3,6 +3,7 @@ "template_author": "Brinda Santh ( bs2796@onap.com )",
"template_name": "vrr-test",
"template_version": "1.0.0",
+ "template_tags" : "brinda, VRR",
"release": "201802",
"service-type": "AVPN",
"vnf-type": "VRR"
diff --git a/ms/controllerblueprints/modules/service/src/main/java/org/onap/ccsdk/apps/controllerblueprints/service/validator/ServiceTemplateValidator.java b/ms/controllerblueprints/modules/service/src/main/java/org/onap/ccsdk/apps/controllerblueprints/service/validator/ServiceTemplateValidator.java index ea46f3ad3..430401bc3 100644 --- a/ms/controllerblueprints/modules/service/src/main/java/org/onap/ccsdk/apps/controllerblueprints/service/validator/ServiceTemplateValidator.java +++ b/ms/controllerblueprints/modules/service/src/main/java/org/onap/ccsdk/apps/controllerblueprints/service/validator/ServiceTemplateValidator.java @@ -77,7 +77,7 @@ public class ServiceTemplateValidator extends BluePrintValidatorDefaultService { /**
* This is a getMetaData to get the key information during the
*
- * @return Map<String ,
+ * @return Map<String ,
* String>
*/
public Map<String, String> getMetaData() {
@@ -88,18 +88,9 @@ public class ServiceTemplateValidator extends BluePrintValidatorDefaultService { public void validateMetadata(@NotNull Map<String, String> metaDataMap) throws BluePrintException {
Preconditions.checkNotNull(serviceTemplate.getMetadata(), "Service Template Metadata Information is missing.");
+ super.validateMetadata(metaDataMap);
this.metaData.putAll(serviceTemplate.getMetadata());
-
- String author = serviceTemplate.getMetadata().get(BluePrintConstants.METADATA_TEMPLATE_AUTHOR);
- String serviceTemplateName =
- serviceTemplate.getMetadata().get(BluePrintConstants.METADATA_TEMPLATE_NAME);
- String serviceTemplateVersion =
- serviceTemplate.getMetadata().get(BluePrintConstants.METADATA_TEMPLATE_VERSION);
-
- Preconditions.checkArgument(StringUtils.isNotBlank(author), "Template Metadata (author) Information is missing.");
- Preconditions.checkArgument(StringUtils.isNotBlank(serviceTemplateName), "Template Metadata (service-template-name) Information is missing.");
- Preconditions.checkArgument(StringUtils.isNotBlank(serviceTemplateVersion), "Template Metadata (service-template-version) Information is missing.");
}
diff --git a/ms/controllerblueprints/modules/service/src/test/java/org/onap/ccsdk/apps/controllerblueprints/service/common/SchemaGeneratorServiceTest.java b/ms/controllerblueprints/modules/service/src/test/java/org/onap/ccsdk/apps/controllerblueprints/service/common/SchemaGeneratorServiceTest.java index 50e94df9e..f846e9a11 100644 --- a/ms/controllerblueprints/modules/service/src/test/java/org/onap/ccsdk/apps/controllerblueprints/service/common/SchemaGeneratorServiceTest.java +++ b/ms/controllerblueprints/modules/service/src/test/java/org/onap/ccsdk/apps/controllerblueprints/service/common/SchemaGeneratorServiceTest.java @@ -32,7 +32,7 @@ import java.nio.charset.Charset; @FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class SchemaGeneratorServiceTest {
- private static Logger log = LoggerFactory.getLogger(ServiceTemplateValidationTest.class);
+ private static Logger log = LoggerFactory.getLogger(SchemaGeneratorServiceTest.class);
@Test
public void test01GenerateSwaggerData() throws Exception {
diff --git a/ms/controllerblueprints/modules/service/src/test/java/org/onap/ccsdk/apps/controllerblueprints/service/common/ServiceTemplateValidationTest.java b/ms/controllerblueprints/modules/service/src/test/java/org/onap/ccsdk/apps/controllerblueprints/service/common/ServiceTemplateValidationTest.java deleted file mode 100644 index af309e217..000000000 --- a/ms/controllerblueprints/modules/service/src/test/java/org/onap/ccsdk/apps/controllerblueprints/service/common/ServiceTemplateValidationTest.java +++ /dev/null @@ -1,56 +0,0 @@ -/*
- * Copyright © 2017-2018 AT&T Intellectual Property.
- *
- * 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.apps.controllerblueprints.service.common;
-
-
-import org.apache.commons.io.IOUtils;
-import org.junit.Assert;
-import org.junit.Test;
-import org.onap.ccsdk.apps.controllerblueprints.service.utils.ConfigModelUtils;
-import org.onap.ccsdk.apps.controllerblueprints.service.validator.ServiceTemplateValidator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.nio.charset.Charset;
-import java.util.List;
-
-public class ServiceTemplateValidationTest {
- private static Logger log = LoggerFactory.getLogger(ServiceTemplateValidationTest.class);
-
- @Test
- public void testBluePrintDirs(){
- List<String> dirs = ConfigModelUtils.getBlueprintNames("load/blueprints");
- Assert.assertNotNull("Failed to get blueprint directories", dirs );
- Assert.assertEquals("Failed to get actual directories",2, dirs.size() );
- }
-
- // @Test
- public void validateServiceTemplate() {
- try {
- String file = "load/service_template/vrr-201806-test/service-template.json";
- String serviceTemplateContent =
- IOUtils.toString(ServiceTemplateValidationTest.class.getClassLoader().getResourceAsStream(file),
- Charset.defaultCharset());
- ServiceTemplateValidator serviceTemplateValidator = new ServiceTemplateValidator();
- serviceTemplateValidator.validateServiceTemplate(serviceTemplateContent);
- log.info("Validated Service Template " + serviceTemplateValidator.getMetaData());
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/ms/controllerblueprints/modules/service/src/test/java/org/onap/ccsdk/apps/controllerblueprints/service/validator/ServiceTemplateValidationTest.java b/ms/controllerblueprints/modules/service/src/test/java/org/onap/ccsdk/apps/controllerblueprints/service/validator/ServiceTemplateValidationTest.java new file mode 100644 index 000000000..557c6dd8d --- /dev/null +++ b/ms/controllerblueprints/modules/service/src/test/java/org/onap/ccsdk/apps/controllerblueprints/service/validator/ServiceTemplateValidationTest.java @@ -0,0 +1,51 @@ +/*
+ * Copyright © 2017-2018 AT&T Intellectual Property.
+ *
+ * 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.apps.controllerblueprints.service.validator;
+
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.junit.Assert;
+import org.junit.Test;
+import org.onap.ccsdk.apps.controllerblueprints.service.utils.ConfigModelUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.nio.charset.Charset;
+import java.util.List;
+
+public class ServiceTemplateValidationTest {
+ private static Logger log = LoggerFactory.getLogger(ServiceTemplateValidationTest.class);
+
+ @Test
+ public void testBluePrintDirs() {
+ List<String> dirs = ConfigModelUtils.getBlueprintNames("load/blueprints");
+ Assert.assertNotNull("Failed to get blueprint directories", dirs);
+ Assert.assertEquals("Failed to get actual directories", 2, dirs.size());
+ }
+
+ @Test
+ public void validateServiceTemplate() throws Exception {
+ String file = "load/blueprints/baseconfiguration/Definitions/activation-blueprint.json";
+ String serviceTemplateContent =
+ FileUtils.readFileToString(new File(file), Charset.defaultCharset());
+ ServiceTemplateValidator serviceTemplateValidator = new ServiceTemplateValidator();
+ serviceTemplateValidator.validateServiceTemplate(serviceTemplateContent);
+ Assert.assertNotNull("Failed to validate blueprints", serviceTemplateValidator);
+ }
+}
diff --git a/ms/controllerblueprints/modules/service/src/test/resources/enhance/enhance-template.json b/ms/controllerblueprints/modules/service/src/test/resources/enhance/enhance-template.json index 8b4fd9d3a..a4ba930e5 100644 --- a/ms/controllerblueprints/modules/service/src/test/resources/enhance/enhance-template.json +++ b/ms/controllerblueprints/modules/service/src/test/resources/enhance/enhance-template.json @@ -3,6 +3,7 @@ "template_author": "Brinda Santh",
"template_name": "enhance-template",
"template_version": "1.0.0",
+ "template_tags": "brinda, VPE",
"service-type": "Sample Service",
"release": "1806",
"vnf-type": "VPE"
diff --git a/ms/controllerblueprints/modules/service/src/test/resources/enhance/enhanced-template.json b/ms/controllerblueprints/modules/service/src/test/resources/enhance/enhanced-template.json index 18f499250..e00330961 100644 --- a/ms/controllerblueprints/modules/service/src/test/resources/enhance/enhanced-template.json +++ b/ms/controllerblueprints/modules/service/src/test/resources/enhance/enhanced-template.json @@ -3,6 +3,7 @@ "template_author" : "Brinda Santh",
"template_name" : "enhance-template",
"template_version" : "1.0.0",
+ "template_tags" : "brinda, VPE",
"service-type" : "Sample Service",
"release" : "1806",
"vnf-type" : "VPE"
|