--- /dev/null
+/*\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
+ * \r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * \r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+package org.onap.ccsdk.config.assignment.processor;\r
+\r
+import java.util.List;\r
+import java.util.Map;\r
+import org.apache.commons.lang3.StringUtils;\r
+import org.onap.ccsdk.config.assignment.service.ConfigAssignmentUtils;\r
+import org.onap.ccsdk.config.data.adaptor.service.ConfigResourceService;\r
+import org.onap.ccsdk.config.model.ConfigModelConstant;\r
+import org.onap.ccsdk.config.model.ConfigModelException;\r
+import org.onap.ccsdk.config.model.data.ResourceAssignment;\r
+import org.onap.ccsdk.config.model.service.ComponentNode;\r
+import org.onap.ccsdk.config.model.utils.ResourceAssignmentUtils;\r
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;\r
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;\r
+\r
+public class DefaultResourceProcessor implements ComponentNode {\r
+\r
+ public DefaultResourceProcessor(ConfigResourceService configResourceService) {}\r
+\r
+ @Override\r
+ public Boolean preCondition(Map<String, String> inParams, SvcLogicContext ctx, Map<String, Object> componentContext)\r
+ throws SvcLogicException {\r
+ return Boolean.TRUE;\r
+ }\r
+\r
+ @Override\r
+ public void preProcess(Map<String, String> inParams, SvcLogicContext ctx, Map<String, Object> componentContext)\r
+ throws SvcLogicException {\r
+ // Auto-generated method stub\r
+ }\r
+\r
+ @Override\r
+ public void process(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {\r
+ // Auto-generated method stub\r
+ }\r
+\r
+ @SuppressWarnings("unchecked")\r
+ @Override\r
+ public void process(Map<String, String> inParams, SvcLogicContext ctx, Map<String, Object> componentContext)\r
+ throws SvcLogicException {\r
+ try {\r
+ List<ResourceAssignment> batchResourceAssignment =\r
+ (List<ResourceAssignment>) componentContext.get(ConfigModelConstant.PROPERTY_RESOURCE_ASSIGNMENTS);\r
+\r
+ if (batchResourceAssignment != null && !batchResourceAssignment.isEmpty()) {\r
+ for (ResourceAssignment resourceAssignment : batchResourceAssignment) {\r
+ processResourceAssignment(ctx, componentContext, resourceAssignment);\r
+ }\r
+ }\r
+ } catch (Exception e) {\r
+ throw new SvcLogicException(String.format("DefaultResourceProcessor Exception : (%s)", e), e);\r
+ }\r
+\r
+ }\r
+\r
+ private void processResourceAssignment(SvcLogicContext ctx, Map<String, Object> componentContext,\r
+ ResourceAssignment resourceAssignment) throws ConfigModelException, SvcLogicException {\r
+ if (resourceAssignment != null && StringUtils.isNotBlank(resourceAssignment.getName())\r
+ && resourceAssignment.getProperty() != null) {\r
+ try {\r
+ // Check if It has Input\r
+ Object value = ConfigAssignmentUtils.getContextKeyValue(ctx, resourceAssignment.getName());\r
+ if (value == null) {\r
+ value = resourceAssignment.getProperty().getDefaultValue();\r
+ }\r
+\r
+ // if value is null don't call setResourceDataValue to populate the value\r
+ if (value != null) {\r
+ ResourceAssignmentUtils.setResourceDataValue(componentContext, resourceAssignment, value);\r
+ }\r
+\r
+ // Check the value has populated for mandatory case\r
+ ResourceAssignmentUtils.assertTemplateKeyValueNotNull(componentContext, resourceAssignment);\r
+ } catch (Exception e) {\r
+ ResourceAssignmentUtils.setFailedResourceDataValue(componentContext, resourceAssignment,\r
+ e.getMessage());\r
+ throw new SvcLogicException(\r
+ String.format("Failed in template key (%s) assignments with : (%s)", resourceAssignment, e), e);\r
+ }\r
+ }\r
+ }\r
+\r
+ @Override\r
+ public void postProcess(Map<String, String> inParams, SvcLogicContext ctx, Map<String, Object> componentContext)\r
+ throws SvcLogicException {\r
+ // Auto-generated method stub\r
+\r
+ }\r
+\r
+}\r
--- /dev/null
+/*\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
+ * \r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * \r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+package org.onap.ccsdk.config.assignment.processor;\r
+\r
+import static org.mockito.Matchers.any;\r
+import java.io.File;\r
+import java.nio.charset.Charset;\r
+import java.util.Arrays;\r
+import java.util.HashMap;\r
+import java.util.List;\r
+import java.util.Map;\r
+import org.apache.commons.io.FileUtils;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import org.junit.runner.RunWith;\r
+import org.mockito.Mock;\r
+import org.mockito.Mockito;\r
+import org.mockito.MockitoAnnotations;\r
+import org.mockito.invocation.InvocationOnMock;\r
+import org.mockito.runners.MockitoJUnitRunner;\r
+import org.mockito.stubbing.Answer;\r
+import org.onap.ccsdk.config.assignment.service.ConfigResourceAssignmentTestUtils;\r
+import org.onap.ccsdk.config.data.adaptor.domain.TransactionLog;\r
+import org.onap.ccsdk.config.data.adaptor.service.ConfigResourceService;\r
+import org.onap.ccsdk.config.model.ConfigModelConstant;\r
+import org.onap.ccsdk.config.model.data.ResourceAssignment;\r
+import org.onap.ccsdk.config.model.data.dict.ResourceDefinition;\r
+import org.onap.ccsdk.config.model.utils.TransformationUtils;\r
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;\r
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;\r
+import com.att.eelf.configuration.EELFLogger;\r
+import com.att.eelf.configuration.EELFManager;\r
+\r
+@RunWith(MockitoJUnitRunner.class)\r
+public class DefaultResourceProcessorTest {\r
+\r
+ private static EELFLogger logger = EELFManager.getInstance().getLogger(DefaultResourceProcessorTest.class);\r
+\r
+ @Mock\r
+ private ConfigResourceService configResourceService;\r
+\r
+ @SuppressWarnings("unchecked")\r
+ @Before\r
+ public void before() {\r
+ MockitoAnnotations.initMocks(this);\r
+\r
+ try {\r
+ Mockito.doAnswer(new Answer<Void>() {\r
+ @Override\r
+ public Void answer(InvocationOnMock invocationOnMock) throws Throwable {\r
+ Object[] args = invocationOnMock.getArguments();\r
+ if (args != null) {\r
+ logger.trace("Transaction info " + Arrays.asList(args));\r
+ }\r
+ return null;\r
+ }\r
+ }).when(configResourceService).save(any(TransactionLog.class));\r
+\r
+ } catch (SvcLogicException e) {\r
+ e.printStackTrace();\r
+ }\r
+ }\r
+\r
+ @Test\r
+ public void testDefaultSimpleProcess() throws Exception {\r
+ logger.info(" ******************************* testDefaultSimpleProcess ***************************");\r
+\r
+ String recipeName = "sample-recipe";\r
+\r
+ String resourceassignmentContent = FileUtils.readFileToString(\r
+ new File("src/test/resources/mapping/default/resource-assignments-simple.json"),\r
+ Charset.defaultCharset());\r
+ List<ResourceAssignment> batchResourceAssignment =\r
+ TransformationUtils.getListfromJson(resourceassignmentContent, ResourceAssignment.class);\r
+\r
+ String dictionaryContent = FileUtils.readFileToString(\r
+ new File("src/test/resources/mapping/default/default-simple.json"), Charset.defaultCharset());\r
+ Map<String, ResourceDefinition> dictionaries =\r
+ ConfigResourceAssignmentTestUtils.getMapfromJson(dictionaryContent);\r
+\r
+ DefaultResourceProcessor defaultResourceProcessor = new DefaultResourceProcessor(configResourceService);\r
+ Map<String, Object> componentContext = new HashMap<>();\r
+ componentContext.put(ConfigModelConstant.PROPERTY_RESOURCE_ASSIGNMENTS, batchResourceAssignment);\r
+ componentContext.put(ConfigModelConstant.PROPERTY_ACTION_NAME, recipeName);\r
+ componentContext.put(ConfigModelConstant.PROPERTY_TEMPLATE_NAME, "sample-template");\r
+ componentContext.put(ConfigModelConstant.PROPERTY_DICTIONARIES, dictionaries);\r
+ componentContext.put(ConfigModelConstant.PROPERTY_DICTIONARY_KEY_DOT + recipeName + ".profile_name", "sample");\r
+\r
+ Map<String, String> inParams = new HashMap<>();\r
+ SvcLogicContext ctx = new SvcLogicContext();\r
+ defaultResourceProcessor.process(inParams, ctx, componentContext);\r
+ logger.trace(" componentContext " + componentContext);\r
+\r
+ Assert.assertEquals("Failed to populate default country value ", "US",\r
+ componentContext.get(ConfigModelConstant.PROPERTY_RECIPE_KEY_DOT + "sample-recipe.country"));\r
+ Assert.assertEquals("Failed to populate default country value ", "US",\r
+ componentContext.get(ConfigModelConstant.PROPERTY_DICTIONARY_KEY_DOT + "sample-recipe.country"));\r
+\r
+ Assert.assertEquals("Failed to populate default port value ", 830,\r
+ componentContext.get(ConfigModelConstant.PROPERTY_RECIPE_KEY_DOT + "sample-recipe.port"));\r
+ Assert.assertEquals("Failed to populate default port value ", 830,\r
+ componentContext.get(ConfigModelConstant.PROPERTY_DICTIONARY_KEY_DOT + "sample-recipe.port"));\r
+\r
+ Assert.assertEquals("Failed to populate default voip-enabled value ", true,\r
+ componentContext.get(ConfigModelConstant.PROPERTY_RECIPE_KEY_DOT + "sample-recipe.voip-enabled"));\r
+ Assert.assertEquals("Failed to populate default voip-enabled value ", true,\r
+ componentContext.get(ConfigModelConstant.PROPERTY_DICTIONARY_KEY_DOT + "sample-recipe.voip-enabled"));\r
+\r
+ }\r
+\r
+}\r
--- /dev/null
+{\r
+ "country": {\r
+ "name": "country",\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "sources": {\r
+ "default": {\r
+ "type": "source-default"\r
+ }\r
+ }\r
+ },\r
+ "port": {\r
+ "name": "port",\r
+ "property": {\r
+ "type": "integer"\r
+ },\r
+ "sources": {\r
+ "default": {\r
+ "type": "source-default"\r
+ }\r
+ }\r
+ },\r
+ "voip-enabled": {\r
+ "name": "voip-enabled",\r
+ "property": {\r
+ "type": "boolean"\r
+ },\r
+ "sources": {\r
+ "default": {\r
+ "type": "source-default"\r
+ }\r
+ }\r
+ }\r
+}\r
--- /dev/null
+[\r
+ {\r
+ "name": "country",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string",\r
+ "default": "US"\r
+ },\r
+ "dictionary-name": "country",\r
+ "dictionary-source": "default",\r
+ "dependencies": []\r
+ },\r
+ {\r
+ "name": "port",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "integer",\r
+ "default": 830\r
+ },\r
+ "dictionary-name": "port",\r
+ "dictionary-source": "default",\r
+ "dependencies": []\r
+ },\r
+ {\r
+ "name": "voip-enabled",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "boolean",\r
+ "default": true\r
+ },\r
+ "dictionary-name": "voip-enabled",\r
+ "dictionary-source": "default",\r
+ "dependencies": []\r
+ }\r
+]\r
--- /dev/null
+[\r
+ {\r
+ "name": "vnf-id",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string",\r
+ "required": true\r
+ },\r
+ "dictionary-name": "vnf-id",\r
+ "dictionary-source": "input",\r
+ "dependencies": []\r
+ },\r
+ {\r
+ "name": "service-instance-id",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string",\r
+ "required": true\r
+ },\r
+ "dictionary-name": "service-instance-id",\r
+ "dictionary-source": "input",\r
+ "dependencies": []\r
+ },\r
+ {\r
+ "name": "bundle-id",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string",\r
+ "required": true\r
+ },\r
+ "dictionary-name": "bundle-id",\r
+ "dictionary-source": "mdsal",\r
+ "dependencies": [\r
+ "vnf-id"\r
+ ]\r
+ },\r
+ {\r
+ "name": "bundle-ip",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string",\r
+ "required": true\r
+ },\r
+ "dictionary-name": "bundle-ip",\r
+ "dictionary-source": "mdsal",\r
+ "dependencies": [\r
+ "vnf-id"\r
+ ]\r
+ },\r
+ {\r
+ "name": "bundle-mac",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "bundle-mac",\r
+ "dictionary-source": "mdsal",\r
+ "dependencies": [\r
+ "vnf-id",\r
+ "bundle-id"\r
+ ]\r
+ },\r
+ {\r
+ "name": "managed-ip",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "managed-ip",\r
+ "dictionary-source": "mdsal",\r
+ "dependencies": [\r
+ "loopback-ip"\r
+ ]\r
+ },\r
+ {\r
+ "name": "vnf-name",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string",\r
+ "required": true\r
+ },\r
+ "dictionary-name": "vnf-name",\r
+ "dictionary-source": "input",\r
+ "dependencies": []\r
+ },\r
+ {\r
+ "name": "managed-ip1",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "managed-ip1",\r
+ "dictionary-source": "mdsal",\r
+ "dependencies": [\r
+ "loopback-ip"\r
+ ]\r
+ },\r
+ {\r
+ "name": "loopback-ip",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "loopback-ip",\r
+ "dictionary-source": "db",\r
+ "dependencies": [\r
+ "bundle-mac"\r
+ ]\r
+ }\r
+]\r
--- /dev/null
+{\r
+ "api-ver": "2.00",\r
+ "originator-id": "MSO",\r
+ "request-id": "123456",\r
+ "service-instance-id": "ibcx0001vm001",\r
+ "service-type": "AVPN",\r
+ "vnf-type": "vUSP - vDBE-IPX HUB",\r
+ "vnf-id": 123456,\r
+ "service-template-name": "VRR-baseconfiguration",\r
+ "service-template-version": "1.0.0",\r
+ "action-name": "resource-assignment-action",\r
+ "group-name": "sample group name",\r
+ "bundle-id": "sample bundle id",\r
+ "bundle-mac": [\r
+ "Sample bundle mac",\r
+ "Sample bundle mac"\r
+ ]\r
+}\r
--- /dev/null
+{\r
+ "api-ver": "2.00",\r
+ "originator-id": "MSO",\r
+ "request-id": "123456",\r
+ "service-instance-id": "ibcx0001vm001",\r
+ "service-type": "AVPN",\r
+ "vnf-type": "vUSP - vDBE-IPX HUB",\r
+ "vnf-id": "",\r
+ "service-template-name": "VRR-baseconfiguration",\r
+ "service-template-version": "1.0.0",\r
+ "action-name": "resource-assignment-action",\r
+ "group-name": "sample group name",\r
+ "bundle-id": "sample bundle id",\r
+ "bundle-mac": [\r
+ "Sample bundle mac",\r
+ "Sample bundle mac"\r
+ ]\r
+}\r
--- /dev/null
+{\r
+ "metadata": {\r
+ "author": "ks220y@att.com",\r
+ "service-template-name": "VRR-baseconfiguration",\r
+ "service-template-version": "1.0.0",\r
+ "release": "1802",\r
+ "service-type": "AVPN",\r
+ "vnf-type": "VRR"\r
+ },\r
+ "topology_template": {\r
+ "inputs": {\r
+ "request-id": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "service-instance-id": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "action-name": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "scope-type": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "hostname": {\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ },\r
+ "node_templates": {\r
+ "base-config-template": {\r
+ "type": "artifact-config-template",\r
+ "properties": {\r
+ "action-names": [\r
+ "resource-assignment-action"\r
+ ]\r
+ },\r
+ "capabilities": {\r
+ "content": {\r
+ "properties": {\r
+ "content": "db://base-config-template"\r
+ }\r
+ },\r
+ "mapping": {\r
+ "properties": {\r
+ "mapping": [\r
+ {\r
+ "name": "vnf-id",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string",\r
+ "required": true\r
+ },\r
+ "dictionary-name": "vnf-id",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "group-name",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string",\r
+ "required": true\r
+ },\r
+ "dictionary-name": "group-name",\r
+ "dictionary-source": "input"\r
+ }\r
+ ]\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "resource-assignment-action": {\r
+ "type": "dg-resource-assignment",\r
+ "interfaces": {\r
+ "CONFIG": {\r
+ "operations": {\r
+ "ResourceAssignment": {\r
+ \r
+ }\r
+ }\r
+ }\r
+ },\r
+ "capabilities": {\r
+ "dg-node": {\r
+ \r
+ }\r
+ },\r
+ "requirements": {\r
+ "component-dependency": {\r
+ "capability": "component-node",\r
+ "node": "resource-assignment",\r
+ "relationship": "tosca.relationships.DependsOn"\r
+ }\r
+ }\r
+ },\r
+ "licence-template": {\r
+ "type": "artifact-config-template",\r
+ "properties": {\r
+ "action-names": [\r
+ "resource-assignment-action"\r
+ ]\r
+ },\r
+ "capabilities": {\r
+ "content": {\r
+ "properties": {\r
+ "content": "db://licence-template"\r
+ }\r
+ },\r
+ "mapping": {\r
+ "properties": {\r
+ "mapping": [\r
+ {\r
+ "name": "bundle-id",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "bundle-id",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "bundle-mac",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string",\r
+ "required": true\r
+ },\r
+ "dictionary-name": "bundle-mac",\r
+ "dictionary-source": "input"\r
+ }\r
+ ]\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "resource-assignment": {\r
+ "type": "component-resource-assignment",\r
+ "interfaces": {\r
+ "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {\r
+ "operations": {\r
+ "process": {\r
+ "inputs": {\r
+ "action-name": "{ \"get_input\" : \"action-name\" }",\r
+ "resource-type": "vnf-type",\r
+ "template-names": [\r
+ "base-config-template",\r
+ "licence-template"\r
+ ],\r
+ "request-id": "{ \"get_input\" : \"request-id\" }",\r
+ "resource-id": "{ \"get_input\" : \"vnf-id\" }"\r
+ },\r
+ "outputs": {\r
+ "resource-assignment-params": "",\r
+ "status": ""\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "capabilities": {\r
+ "component-node": {\r
+ \r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "node_types": {\r
+ "dg-resource-assignment": {\r
+ "description": "This is Resource Assignment Directed Graph",\r
+ "version": "1.0.0",\r
+ "properties": {\r
+ "mode": {\r
+ "required": false,\r
+ "type": "string",\r
+ "default": "sync"\r
+ },\r
+ "version": {\r
+ "required": false,\r
+ "type": "string",\r
+ "default": "LATEST"\r
+ },\r
+ "is-start-flow": {\r
+ "required": false,\r
+ "type": "boolean",\r
+ "default": "false"\r
+ }\r
+ },\r
+ "capabilities": {\r
+ "dg-node": {\r
+ "type": "tosca.capabilities.Node"\r
+ },\r
+ "content": {\r
+ "type": "tosca.capability.Content",\r
+ "properties": {\r
+ "type": {\r
+ "required": false,\r
+ "type": "string",\r
+ "default": "json"\r
+ },\r
+ "content": {\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "requirements": {\r
+ "component-dependency": {\r
+ "capability": "component-node",\r
+ "node": "component-resource-assignment",\r
+ "relationship": "tosca.relationships.DependsOn"\r
+ }\r
+ },\r
+ "interfaces": {\r
+ "CONFIG": {\r
+ "operations": {\r
+ "ResourceAssignment": {\r
+ "inputs": {\r
+ "params": {\r
+ "required": false,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "datatype-property"\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "derived_from": "tosca.nodes.DG"\r
+ },\r
+ "component-resource-assignment": {\r
+ "description": "This is Resource Assignment Component API",\r
+ "version": "1.0.0",\r
+ "capabilities": {\r
+ "component-node": {\r
+ "type": "tosca.capabilities.Node"\r
+ }\r
+ },\r
+ "interfaces": {\r
+ "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {\r
+ "operations": {\r
+ "process": {\r
+ "inputs": {\r
+ "action-name": {\r
+ "description": "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",\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "handler-name": {\r
+ "description": "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.",\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "resource-type": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "template-names": {\r
+ "description": "Name of the Artifact Node Templates, to get the template Content.",\r
+ "required": true,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "string"\r
+ }\r
+ },\r
+ "request-id": {\r
+ "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "resource-id": {\r
+ "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present",\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ },\r
+ "outputs": {\r
+ "resource-assignment-params": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "status": {\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "derived_from": "tosca.nodes.Component"\r
+ },\r
+ "artifact-config-template": {\r
+ "description": "This is Configuration Velocity Template",\r
+ "version": "1.0.0",\r
+ "properties": {\r
+ "action-names": {\r
+ "required": true,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "string"\r
+ }\r
+ },\r
+ "content": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "mapping": {\r
+ "required": false,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "datatype-resource-assignment"\r
+ }\r
+ }\r
+ },\r
+ "capabilities": {\r
+ "content": {\r
+ "type": "tosca.capability.Content",\r
+ "properties": {\r
+ "content": {\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ }\r
+ },\r
+ "mapping": {\r
+ "type": "tosca.capability.Mapping",\r
+ "properties": {\r
+ "mapping": {\r
+ "required": false,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "datatype-resource-assignment"\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "derived_from": "tosca.nodes.Artifact"\r
+ }\r
+ },\r
+ "data_types": {\r
+ "datatype-resource-assignment": {\r
+ "version": "1.0.0",\r
+ "description": "This is Resource Assignment Data Type",\r
+ "properties": {\r
+ "property": {\r
+ "required": true,\r
+ "type": "datatype-property"\r
+ },\r
+ "input-param": {\r
+ "required": true,\r
+ "type": "boolean"\r
+ },\r
+ "dictionary-name": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "dictionary-source": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "dependencies": {\r
+ "required": true,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "string"\r
+ }\r
+ }\r
+ },\r
+ "derived_from": "tosca.datatypes.Root"\r
+ },\r
+ "datatype-property": {\r
+ "version": "1.0.0",\r
+ "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",\r
+ "properties": {\r
+ "type": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "description": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "required": {\r
+ "required": false,\r
+ "type": "boolean"\r
+ },\r
+ "default": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "entry_schema": {\r
+ "required": false,\r
+ "type": "string"\r
+ }\r
+ },\r
+ "derived_from": "tosca.datatypes.Root"\r
+ }\r
+ }\r
+}\r
--- /dev/null
+{\r
+ "metadata": {\r
+ "author": "ks220y@att.com",\r
+ "service-template-name": "VRR-baseconfiguration",\r
+ "service-template-version": "1.0.0",\r
+ "release": "1802",\r
+ "service-type": "AVPN",\r
+ "vnf-type": "VRR"\r
+ },\r
+ "topology_template": {\r
+ "inputs": {\r
+ "request-id": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "service-instance-id": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "action-name": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "scope-type": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "hostname": {\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ },\r
+ "node_templates": {\r
+ "base-config-template": {\r
+ "type": "artifact-config-template",\r
+ "properties": {\r
+ "action-names": [\r
+ "resource-assignment-action"\r
+ ]\r
+ },\r
+ "capabilities": {\r
+ "content": {\r
+ "properties": {\r
+ "content": "db://base-config-template"\r
+ }\r
+ },\r
+ "mapping": {\r
+ "properties": {\r
+ "mapping": [\r
+ {\r
+ "name": "vnf-id",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string",\r
+ "required": true\r
+ },\r
+ "dictionary-name": "vnf-id",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "group-name",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string",\r
+ "required": true\r
+ },\r
+ "dictionary-name": "group-name",\r
+ "dictionary-source": "input"\r
+ }\r
+ ]\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "resource-assignment-action": {\r
+ "type": "dg-resource-assignment",\r
+ "interfaces": {\r
+ "CONFIG": {\r
+ "operations": {\r
+ "ResourceAssignment": {\r
+ \r
+ }\r
+ }\r
+ }\r
+ },\r
+ "capabilities": {\r
+ "dg-node": {\r
+ \r
+ }\r
+ },\r
+ "requirements": {\r
+ "component-dependency": {\r
+ "capability": "component-node",\r
+ "node": "resource-assignment",\r
+ "relationship": "tosca.relationships.DependsOn"\r
+ }\r
+ }\r
+ },\r
+ "licence-template": {\r
+ "type": "artifact-config-template",\r
+ "properties": {\r
+ "action-names": [\r
+ "resource-assignment-action"\r
+ ]\r
+ },\r
+ "capabilities": {\r
+ "content": {\r
+ "properties": {\r
+ "content": "db://licence-template"\r
+ }\r
+ },\r
+ "mapping": {\r
+ "properties": {\r
+ "mapping": [\r
+ {\r
+ "name": "bundle-id",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "bundle-id",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "bundle-mac",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "string",\r
+ "required": true\r
+ },\r
+ "dictionary-name": "bundle-mac",\r
+ "dictionary-source": "input"\r
+ }\r
+ ]\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "resource-assignment": {\r
+ "type": "component-resource-assignment",\r
+ "interfaces": {\r
+ "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {\r
+ "operations": {\r
+ "process": {\r
+ "inputs": {\r
+ "service-template-name": "VRR-baseconfiguration",\r
+ "service-template-version": "1.0.0",\r
+ "action-name": "{ \"get_input\" : \"action-name\" }",\r
+ "resource-type": "vnf-type",\r
+ "template-names": [\r
+ "base-config-template",\r
+ "licence-template"\r
+ ],\r
+ "request-id": "{ \"get_input\" : \"request-id\" }",\r
+ "resource-id": "{ \"get_input\" : \"vnf-id\" }"\r
+ },\r
+ "outputs": {\r
+ "resource-assignment-params": "",\r
+ "status": ""\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "capabilities": {\r
+ "component-node": {\r
+ \r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "node_types": {\r
+ "dg-resource-assignment": {\r
+ "description": "This is Resource Assignment Directed Graph",\r
+ "version": "1.0.0",\r
+ "properties": {\r
+ "mode": {\r
+ "required": false,\r
+ "type": "string",\r
+ "default": "sync"\r
+ },\r
+ "version": {\r
+ "required": false,\r
+ "type": "string",\r
+ "default": "LATEST"\r
+ },\r
+ "is-start-flow": {\r
+ "required": false,\r
+ "type": "boolean",\r
+ "default": "false"\r
+ }\r
+ },\r
+ "capabilities": {\r
+ "dg-node": {\r
+ "type": "tosca.capabilities.Node"\r
+ },\r
+ "content": {\r
+ "type": "tosca.capability.Content",\r
+ "properties": {\r
+ "type": {\r
+ "required": false,\r
+ "type": "string",\r
+ "default": "json"\r
+ },\r
+ "content": {\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "requirements": {\r
+ "component-dependency": {\r
+ "capability": "component-node",\r
+ "node": "component-resource-assignment",\r
+ "relationship": "tosca.relationships.DependsOn"\r
+ }\r
+ },\r
+ "interfaces": {\r
+ "CONFIG": {\r
+ "operations": {\r
+ "ResourceAssignment": {\r
+ "inputs": {\r
+ "params": {\r
+ "required": false,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "datatype-property"\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "derived_from": "tosca.nodes.DG"\r
+ },\r
+ "component-resource-assignment": {\r
+ "description": "This is Resource Assignment Component API",\r
+ "version": "1.0.0",\r
+ "capabilities": {\r
+ "component-node": {\r
+ "type": "tosca.capabilities.Node"\r
+ }\r
+ },\r
+ "interfaces": {\r
+ "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {\r
+ "operations": {\r
+ "process": {\r
+ "inputs": {\r
+ "action-name": {\r
+ "description": "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",\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "handler-name": {\r
+ "description": "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.",\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "resource-type": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "service-template-name": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "service-template-version": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "template-names": {\r
+ "description": "Name of the Artifact Node Templates, to get the template Content.",\r
+ "required": true,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "string"\r
+ }\r
+ },\r
+ "request-id": {\r
+ "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "resource-id": {\r
+ "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present",\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ },\r
+ "outputs": {\r
+ "resource-assignment-params": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "status": {\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "derived_from": "tosca.nodes.Component"\r
+ },\r
+ "artifact-config-template": {\r
+ "description": "This is Configuration Velocity Template",\r
+ "version": "1.0.0",\r
+ "properties": {\r
+ "action-names": {\r
+ "required": true,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "string"\r
+ }\r
+ },\r
+ "content": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "mapping": {\r
+ "required": false,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "datatype-resource-assignment"\r
+ }\r
+ }\r
+ },\r
+ "capabilities": {\r
+ "content": {\r
+ "type": "tosca.capability.Content",\r
+ "properties": {\r
+ "content": {\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ }\r
+ },\r
+ "mapping": {\r
+ "type": "tosca.capability.Mapping",\r
+ "properties": {\r
+ "mapping": {\r
+ "required": false,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "datatype-resource-assignment"\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "derived_from": "tosca.nodes.Artifact"\r
+ }\r
+ },\r
+ "data_types": {\r
+ "datatype-resource-assignment": {\r
+ "version": "1.0.0",\r
+ "description": "This is Resource Assignment Data Type",\r
+ "properties": {\r
+ "property": {\r
+ "required": true,\r
+ "type": "datatype-property"\r
+ },\r
+ "input-param": {\r
+ "required": true,\r
+ "type": "boolean"\r
+ },\r
+ "dictionary-name": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "dictionary-source": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "dependencies": {\r
+ "required": true,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "string"\r
+ }\r
+ }\r
+ },\r
+ "derived_from": "tosca.datatypes.Root"\r
+ },\r
+ "datatype-property": {\r
+ "version": "1.0.0",\r
+ "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",\r
+ "properties": {\r
+ "type": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "description": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "required": {\r
+ "required": false,\r
+ "type": "boolean"\r
+ },\r
+ "default": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "entry_schema": {\r
+ "required": false,\r
+ "type": "string"\r
+ }\r
+ },\r
+ "derived_from": "tosca.datatypes.Root"\r
+ }\r
+ }\r
+}\r
--- /dev/null
+ <config>\r
+ <configuration>\r
+ <groups>\r
+ <name>${group-name}</name>\r
+ <routing-instances>\r
+ <instance>\r
+ <name><*></name>\r
+ <protocols>\r
+ <pim>\r
+ <dense-groups>\r
+ <dynamic-reject />\r
+ <pim-dense-group-type>\r
+ <name>224.0.1.40/32</name>\r
+ </pim-dense-group-type>\r
+ <pim-dense-group-type>\r
+ <name>224.0.1.39/32</name>\r
+ </pim-dense-group-type>\r
+ <pim-dense-group-type>\r
+ <name>224.0.0.0/4</name>\r
+ <reject />\r
+ </pim-dense-group-type>\r
+ </dense-groups>\r
+ <rp>\r
+ <auto-rp>\r
+ <discovery />\r
+ </auto-rp>\r
+ </rp>\r
+ <interface>\r
+ <name><*></name>\r
+ <disable />\r
+ <priority>1000</priority>\r
+ </interface>\r
+ <reset-tracking-bit />\r
+ </pim>\r
+ </protocols>\r
+ </instance>\r
+ </routing-instances>\r
+ </groups>\r
+ </configuration>\r
+ </config>
\ No newline at end of file
--- /dev/null
+[\r
+ {\r
+ "name": "adiod-unicast-route-reflectors",\r
+ "resourcePath": "vnf/protocol/adiod-unicast-route-reflectors",\r
+ "resourceType": "ATT",\r
+ "dataType": "list",\r
+ "entrySchema": "dt-adiod-unicast-route-reflectors",\r
+ "definition": "{\r\n \"tags\" : \"ADIOD3\",\r\n \"name\" : \"adiod-unicast-route-reflectors\",\r\n \"description\" : \"dd\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"vnf/protocol/adiod-unicast-route-reflectors\",\r\n \"data-type\" : \"list\",\r\n \"entry-schema\" : \"dt-adiod-unicast-route-reflectors\",\r\n \"source\" : {\r\n \"input\" : { },\r\n \"network-resource-discovery\" : {\r\n \"input-key-mapping\" : {\r\n \"complex-code-char8\" : \"complex-code-char8\"\r\n },\r\n \"output-key-mapping\" : {\r\n \"adiod-unicast-route-reflectors\" : \"adiod-unicast-route-reflectors\"\r\n }\r\n }\r\n },\r\n \"candidate-dependency\" : {\r\n \"network-resource-discovery\" : {\r\n \"names\" : [ \"complex-code-char8\" ]\r\n }\r\n }\r\n}",\r
+ "description": "dd",\r
+ "tags": "ADIOD3",\r
+ "creationDate": "2017-11-16T17:31:38.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ },\r
+ {\r
+ "name": "adiod-vpnv4-route-reflectors",\r
+ "resourcePath": "vnf/servers/adiod-vpnv4-route-reflectors",\r
+ "resourceType": "ATT",\r
+ "dataType": "list",\r
+ "entrySchema": "dt-adiod-vpnv4-route-reflectors",\r
+ "definition": "{\r\n \"tags\" : \"ADIOD3\",\r\n \"name\" : \"adiod-vpnv4-route-reflectors\",\r\n \"description\" : \"To be provided\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"vnf/servers/adiod-vpnv4-route-reflectors\",\r\n \"data-type\" : \"list\",\r\n \"entry-schema\" : \"dt-adiod-vpnv4-route-reflectors\",\r\n \"source\" : {\r\n \"input\" : { }\r\n }\r\n}",\r
+ "description": "To be provided",\r
+ "tags": "ADIOD3",\r
+ "creationDate": "2017-11-16T17:31:38.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ },\r
+ {\r
+ "name": "asn-region",\r
+ "resourcePath": "vnf/protocols/asn-region",\r
+ "resourceType": "ATT",\r
+ "dataType": "string",\r
+ "definition": "{\r\n \"tags\" : \"ADIOD3\",\r\n \"name\" : \"asn-region\",\r\n \"description\" : \"To be provided\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"vnf/protocols/asn-region\",\r\n \"data-type\" : \"string\",\r\n \"source\" : {\r\n \"input\" : { },\r\n \"network-resource-discovery\" : {\r\n \"input-key-mapping\" : {\r\n \"hostname\" : \"hostname\"\r\n },\r\n \"output-key-mapping\" : {\r\n \"asn-region\" : \"asn-region\"\r\n }\r\n }\r\n },\r\n \"candidate-dependency\" : {\r\n \"network-resource-discovery\" : {\r\n \"names\" : [ \"hostname\" ]\r\n }\r\n }\r\n}",\r
+ "description": "To be provided",\r
+ "tags": "ADIOD3",\r
+ "creationDate": "2017-11-17T11:31:29.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ },\r
+ {\r
+ "name": "bundle-id",\r
+ "resourcePath": "vnf/interface/bundle-id",\r
+ "resourceType": "ATT",\r
+ "dataType": "string",\r
+ "definition": "{\r\n \"tags\" : \"ADIOD3\",\r\n \"name\" : \"bundle-id\",\r\n \"description\" : \"To be provided\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"vnf/interface/bundle-id\",\r\n \"data-type\" : \"string\",\r\n \"source\" : {\r\n \"input\" : { },\r\n \"network-resource-discovery\" : {\r\n \"input-key-mapping\" : {\r\n \"hostname\" : \"hostname\"\r\n },\r\n \"output-key-mapping\" : {\r\n \"bundle-id\" : \"bundle-id\"\r\n }\r\n }\r\n },\r\n \"candidate-dependency\" : {\r\n \"network-resource-discovery\" : {\r\n \"names\" : [ \"hostname\" ]\r\n }\r\n }\r\n}",\r
+ "description": "To be provided",\r
+ "tags": "ADIOD3",\r
+ "creationDate": "2017-11-16T17:31:39.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ },\r
+ {\r
+ "name": "lo0-local-ipv4-address",\r
+ "resourcePath": "vnf/interface/lo0-local-ipv4",\r
+ "resourceType": "ATT",\r
+ "dataType": "ipv4-address",\r
+ "definition": "{\r\n \"tags\" : \"ADIOD3\",\r\n \"name\" : \"lo0-local-ipv4-address\",\r\n \"description\" : \"To be provided\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"vnf/interface/lo0-local-ipv4\",\r\n \"data-type\" : \"string\",\r\n \"source\" : {\r\n \"input\" : { },\r\n \"network-resource-discovery\" : {\r\n \"input-key-mapping\" : {\r\n \"hostname\" : \"hostname\"\r\n },\r\n \"output-key-mapping\" : {\r\n \"lo0-local-ipv4\" : \"lo0-local-ipv4\"\r\n }\r\n }\r\n },\r\n \"candidate-dependency\" : {\r\n \"network-resource-discovery\" : {\r\n \"names\" : [ \"hostname\" ]\r\n }\r\n }\r\n}",\r
+ "description": "To be provided",\r
+ "tags": "ADIOD3",\r
+ "creationDate": "2017-11-16T17:31:40.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ },\r
+ {\r
+ "name": "lo10-local-ipv4-address",\r
+ "resourcePath": "vnf/interface/lo10-local-ipv4",\r
+ "resourceType": "ATT",\r
+ "dataType": "ipv4-address",\r
+ "definition": "{\r\n \"tags\" : \"ADIOD3\",\r\n \"name\" : \"lo10-local-ipv4-address\",\r\n \"description\" : \"To be provided\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"vnf/interface/lo10-local-ipv4\",\r\n \"data-type\" : \"string\",\r\n \"source\" : {\r\n \"input\" : { },\r\n \"network-resource-discovery\" : {\r\n \"input-key-mapping\" : {\r\n \"hostname\" : \"hostname\"\r\n },\r\n \"output-key-mapping\" : {\r\n \"lo10-local-ipv4\" : \"lo10-local-ipv4\"\r\n }\r\n }\r\n },\r\n \"candidate-dependency\" : {\r\n \"network-resource-discovery\" : {\r\n \"names\" : [ \"hostname\" ]\r\n }\r\n }\r\n}",\r
+ "description": "To be provided",\r
+ "tags": "ADIOD3",\r
+ "creationDate": "2017-11-16T17:31:41.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ },\r
+ {\r
+ "name": "oam-remote-ipv4-address",\r
+ "resourcePath": "vnf/oam-remote-ipv4-address",\r
+ "resourceType": "ATT",\r
+ "dataType": "string",\r
+ "definition": "{\r\n \"tags\" : \"ADIOD3\",\r\n \"name\" : \"oam-remote-ipv4-address\",\r\n \"description\" : \"To be provided\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"vnf/oam-remote-ipv4-address\",\r\n \"data-type\" : \"string\",\r\n \"source\" : {\r\n \"input\" : {\r\n \"key\" : \"oam-remote-ipv4-address\"\r\n },\r\n \"mdsal\" : {\r\n \"base\" : \"sdnc-gc\",\r\n \"type\" : \"JSON\",\r\n \"url-path\" : \"/restconf/config/L3VNF-API\",\r\n \"path\" : \"/${services/service-list/$service-instance-id/service-data/vnf-topology-information/vnf-assignments/vnf-vms/$oam-ipv4-ip-type/vm-networks/$oam-network-role/v4-assigned-ip-list/$oam-vm-type\",\r\n \"input-key-mapping\" : {\r\n \"service-instance-id\" : \"service-instance-id\",\r\n \"oam-network-role\" : \"oam-network-role\",\r\n \"oam-ipv4-ip-type\" : \"oam-ipv4-ip-type\",\r\n \"oam-vm-type\" : \"oam-vm-type\"\r\n },\r\n \"output-key-mapping\" : {\r\n \"oam-remote-ipv4-address\" : \"ipv4-gateway-prefix\"\r\n }\r\n }\r\n },\r\n \"candidate-dependency\" : {\r\n \"mdsal\" : {\r\n \"names\" : [ \"service-instance-id\", \"oam-network-role\", \"oam-v4-ip-type \", \"oam-vm-type\" ]\r\n }\r\n }\r\n}",\r
+ "description": "To be provided",\r
+ "tags": "ADIOD3",\r
+ "creationDate": "2017-11-16T10:52:24.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ },\r
+ {\r
+ "name": "ospf-area",\r
+ "resourcePath": "/ospf-area",\r
+ "resourceType": "ATT",\r
+ "dataType": "string",\r
+ "definition": "{\r\n \"tags\" : \"ADIOD3\",\r\n \"name\" : \"ospf-area\",\r\n \"description\" : \"ospf-area\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"/ospf-area\",\r\n \"data-type\" : \"string\",\r\n \"source\" : {\r\n \"input\" : {\r\n \"key\" : \"ospf-area\"\r\n },\r\n \"network-resource-discovery\" : {\r\n \"input-key-mapping\" : {\r\n \"hostname\" : \"mainResource\"\r\n },\r\n \"output-key-mapping\" : {\r\n \"ospf-area\" : \"ospf-area\"\r\n }\r\n }\r\n }\r\n}",\r
+ "description": "ospf-area",\r
+ "tags": "ADIOD3",\r
+ "creationDate": "2017-11-16T10:52:24.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ },\r
+ {\r
+ "name": "ospf-cost",\r
+ "resourcePath": "/ospf-cost",\r
+ "resourceType": "ATT",\r
+ "dataType": "string",\r
+ "definition": "{\r\n \"tags\" : \"ADIOD3\",\r\n \"name\" : \"ospf-cost\",\r\n \"description\" : \"ospf-cost\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"/ospf-cost\",\r\n \"data-type\" : \"string\",\r\n \"source\" : {\r\n \"input\" : {\r\n \"key\" : \"ospf-cost\"\r\n },\r\n \"network-resource-discovery\" : {\r\n \"input-key-mapping\" : {\r\n \"hostname\" : \"mainResource\"\r\n },\r\n \"output-key-mapping\" : {\r\n \"ospf-cost\" : \"ospf-cost\"\r\n }\r\n }\r\n }\r\n}",\r
+ "description": "ospf-cost",\r
+ "tags": "ADIOD3",\r
+ "creationDate": "2017-11-16T10:52:25.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ },\r
+ {\r
+ "name": "si-local-ipv4-address",\r
+ "resourcePath": "vnf/interface/si-local-ipv4",\r
+ "resourceType": "ATT",\r
+ "dataType": "string",\r
+ "definition": "{\r\n \"tags\" : \"ADIOD3\",\r\n \"name\" : \"si-local-ipv4-address\",\r\n \"description\" : \"To be provided\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"vnf/interface/si-local-ipv4\",\r\n \"data-type\" : \"string\",\r\n \"source\" : {\r\n \"input\" : { },\r\n \"network-resource-discovery\" : {\r\n \"input-key-mapping\" : {\r\n \"hostname\" : \"hostname\"\r\n },\r\n \"output-key-mapping\" : {\r\n \"si-local-ipv4\" : \"si-local-ipv4\"\r\n }\r\n }\r\n },\r\n \"candidate-dependency\" : {\r\n \"network-resource-discovery\" : {\r\n \"names\" : [ \"hostname\" ]\r\n }\r\n }\r\n}",\r
+ "description": "To be provided",\r
+ "tags": "ADIOD3",\r
+ "creationDate": "2017-11-16T10:52:25.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ },\r
+ {\r
+ "name": "tacacs-server-ipv4-addresses",\r
+ "resourcePath": "vnf/servers/tacacs-server-ipv4-addresses",\r
+ "resourceType": "ATT",\r
+ "dataType": "list",\r
+ "entrySchema": "dt-tacacs-server-ipv4-addresses",\r
+ "definition": "{\r\n \"tags\" : \"ADIOD3\",\r\n \"name\" : \"tacacs-server-ipv4-addresses\",\r\n \"description\" : \"to be provided\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"vnf/servers/tacacs-server-ipv4-addresses\",\r\n \"data-type\" : \"list\",\r\n \"entry-schema\" : \"dt-tacacs-server-ipv4-addresses\",\r\n \"source\" : {\r\n \"input\" : { },\r\n \"network-resource-discovery\" : {\r\n \"input-key-mapping\" : {\r\n \"region\" : \"region\",\r\n \"complex-code-char8\" : \"complex-code-char8\",\r\n \"tacacs-domain-name\" : \"tacacs-domain-name\"\r\n },\r\n \"output-key-mapping\" : {\r\n \"tacacs-server-ipv4-addresses\" : \"tacacs-server-ipv4-addresses\"\r\n }\r\n }\r\n },\r\n \"candidate-dependency\" : {\r\n \"network-resource-discovery\" : {\r\n \"names\" : [ \"region\", \"complex-code-char8\", \"tacacs-domain-name\" ]\r\n }\r\n }\r\n}",\r
+ "description": "to be provided",\r
+ "tags": "ADIOD3",\r
+ "creationDate": "2017-11-16T17:31:43.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ },\r
+ {\r
+ "name": "uplink-1-unit",\r
+ "resourcePath": "vnf/interface/uplink-1-unit",\r
+ "resourceType": "ATT",\r
+ "dataType": "string",\r
+ "definition": "{\r\n \"tags\" : \"ADIOD3\",\r\n \"name\" : \"uplink-1-unit\",\r\n \"description\" : \"To be provided\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"vnf/interface/uplink-1-unit\",\r\n \"data-type\" : \"string\",\r\n \"source\" : {\r\n \"input\" : { },\r\n \"network-resource-discovery\" : {\r\n \"input-key-mapping\" : {\r\n \"hostname\" : \"hostname\"\r\n },\r\n \"output-key-mapping\" : {\r\n \"uplink-1-unit\" : \"uplink-1-unit\"\r\n }\r\n }\r\n },\r\n \"candidate-dependency\" : {\r\n \"network-resource-discovery\" : {\r\n \"names\" : [ \"hostname\" ]\r\n }\r\n }\r\n}",\r
+ "description": "To be provided",\r
+ "tags": "ADIOD3",\r
+ "creationDate": "2017-11-16T17:31:44.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ },\r
+ {\r
+ "name": "uplink-2-unit",\r
+ "resourcePath": "vnf/interface/uplink-2-unit",\r
+ "resourceType": "ATT",\r
+ "dataType": "string",\r
+ "definition": "{\r\n \"tags\" : \"ADIOD3\",\r\n \"name\" : \"uplink-2-unit\",\r\n \"description\" : \"To be provided\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"vnf/interface/uplink-2-unit\",\r\n \"data-type\" : \"string\",\r\n \"source\" : {\r\n \"input\" : { },\r\n \"network-resource-discovery\" : {\r\n \"input-key-mapping\" : {\r\n \"hostname\" : \"hostname\"\r\n },\r\n \"output-key-mapping\" : {\r\n \"uplink-2-unit\" : \"uplink-2-unit\"\r\n }\r\n }\r\n },\r\n \"candidate-dependency\" : {\r\n \"network-resource-discovery\" : {\r\n \"names\" : [ \"hostname\" ]\r\n }\r\n }\r\n}",\r
+ "description": "To be provided",\r
+ "tags": "ADIOD3",\r
+ "creationDate": "2017-11-16T17:31:45.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ },\r
+ {\r
+ "name": "wan-aggregate-ipv4-addresses",\r
+ "resourcePath": "vnf/wan-aggregate-ipv4-addresses",\r
+ "resourceType": "ATT",\r
+ "dataType": "list",\r
+ "entrySchema": "dt-v4-aggregate",\r
+ "definition": "{\r\n \"tags\" : \"wan-aggregate-ipv4-addresses, tosca.datatypes.Root, data_type, ks220y@att.com\",\r\n \"name\" : \"wan-aggregate-ipv4-addresses\",\r\n \"description\" : \"To be provided\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"vnf/wan-aggregate-ipv4-addresses\",\r\n \"data-type\" : \"list\",\r\n \"entry-schema\" : \"dt-v4-aggregate\",\r\n \"source\" : {\r\n \"input\" : { },\r\n \"mdsal\" : {\r\n \"base\" : \"sdnc-gc\",\r\n \"type\" : \"JSON\",\r\n \"url-path\" : \"/restconf/config/L3VNF-API\",\r\n \"path\" : \"/${services/service-list/$service-instance-id/service-data/vnf-topology-information/vnf-assignments/vnf-vms/$oam-ipv4-ip-type/vm-networks/$oam-network-role/v4-assigned-ip-list/$oam-vm-type\",\r\n \"input-key-mapping\" : {\r\n \"service-instance-id\" : \"service-instance-id\",\r\n \"oam-network-role\" : \"oam-network-role\",\r\n \"oam-ipv4-ip-type\" : \"oam-ipv4-ip-type\",\r\n \"oam-vm-type\" : \"oam-vm-type\"\r\n },\r\n \"output-key-mapping\" : {\r\n \"wan-aggregate-ipv4-addresses\" : \"v4-ip-prefix-length\"\r\n }\r\n }\r\n },\r\n \"candidate-dependency\" : {\r\n \"mdsal\" : {\r\n \"names\" : [ \"service-instance-id\", \"oam-network-role\", \"oam-v4-ip-type \", \"oam-vm-type\" ]\r\n }\r\n }\r\n}",\r
+ "description": "To be provided",\r
+ "tags": "wan-aggregate-ipv4-addresses, tosca.datatypes.Root, data_type, ks220y@att.com",\r
+ "creationDate": "2017-11-16T17:31:45.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ },\r
+ {\r
+ "name": "wan-aggregate-ipv6-addresses",\r
+ "resourcePath": "vnf/wan-aggregate-ipv6-addresses",\r
+ "resourceType": "ATT",\r
+ "dataType": "list",\r
+ "entrySchema": "dt-v6-aggregate",\r
+ "definition": "{\r\n \"tags\" : \"ADIOD3\",\r\n \"name\" : \"wan-aggregate-ipv6-addresses\",\r\n \"description\" : \"To be provided\",\r\n \"updated-by\" : \"ks220y@att.com\",\r\n \"resource-type\" : \"ATT\",\r\n \"resource-path\" : \"vnf/wan-aggregate-ipv6-addresses\",\r\n \"data-type\" : \"list\",\r\n \"entry-schema\" : \"dt-v6-aggregate\",\r\n \"source\" : {\r\n \"input\" : { },\r\n \"mdsal\" : {\r\n \"base\" : \"sdnc-gc\",\r\n \"type\" : \"JSON\",\r\n \"url-path\" : \"/restconf/config/L3VNF-API\",\r\n \"path\" : \"/${services/service-list/$service-instance-id/service-data/vnf-topology-information/vnf-assignments/vnf-vms/VCO\",\r\n \"input-key-mapping\" : {\r\n \"service-instance-id\" : \"service-instance-id\",\r\n \"oam-network-role\" : \"oam-network-role\",\r\n \"oam-ipv4-ip-type\" : \"oam-ipv4-ip-type\",\r\n \"oam-vm-type\" : \"oam-vm-type\"\r\n },\r\n \"output-key-mapping\" : {\r\n \"wan-aggregate-ipv6.addresses\" : \"v4-ip-prefix-length\"\r\n }\r\n }\r\n },\r\n \"candidate-dependency\" : {\r\n \"mdsal\" : {\r\n \"names\" : [ \"service-instance-id\", \"oam-network-role\", \"oam-v4-ip-type \", \"oam-vm-type\" ]\r\n }\r\n }\r\n}",\r
+ "description": "To be provided",\r
+ "tags": "ADIOD3",\r
+ "creationDate": "2017-11-16T17:31:46.000+0000",\r
+ "updatedBy": "ks220y@att.com"\r
+ }\r
+]\r
--- /dev/null
+{\r
+ "request-id": "1234",\r
+ "service-instance-id": "adsfdsf",\r
+ "action-name": "resource-assignment-action",\r
+ "scope-type": "vnf-type",\r
+ "hostname": "sample-host",\r
+ "resource-assignment-request": {\r
+ "uplink-2-unit": "sample-uplink-2-unit",\r
+ "bundle-mac": "sample-bundle-mac",\r
+ "wan-aggregate-ipv6-addresses": [\r
+ {\r
+ "v6-address": "sample-v6-address",\r
+ "v6-plen": "sample-v6-plen"\r
+ }\r
+ ],\r
+ "ospf-area": "sample-ospf-area",\r
+ "ospf-cost": 10.0,\r
+ "bundle-id": "bundle-id",\r
+ "adiod-unicast-route-reflectors": [\r
+ {\r
+ "v4-address": "sample-v4-address",\r
+ "name": "sample-name"\r
+ }\r
+ ],\r
+ "oam-remote-ipv4-address": "",\r
+ "adiod-vpnv4-route-reflectors": [\r
+ {\r
+ "v4-address": "sample-v4-address",\r
+ "name": "sample-name"\r
+ }\r
+ ],\r
+ "lo10-local-ipv4-address": "sample-lo10-local-ipv4-address",\r
+ "wan-aggregate-ipv4-addresses": [\r
+ {\r
+ "v4-address": "sample-v4-address",\r
+ "v4-plen": 0\r
+ }\r
+ ],\r
+ "lo0-local-ipv4-address": "sample-lo0-local-ipv4-address",\r
+ "uplink-1-unit": "sample-uplink-1-unit",\r
+ "tacacs-server-ipv4-addresses": [\r
+ {\r
+ "tacacs-server-ipv4-address": "sample-tacacs-server-ipv4-address"\r
+ }\r
+ ],\r
+ "asn-region": "sample-asn-region",\r
+ "si-local-ipv4-address": "sample-si-local-ipv4-address"\r
+ }\r
+}\r
--- /dev/null
+ <config>\r
+ <configuration>\r
+ <groups>\r
+ <name>${group-name}</name>\r
+ <routing-instances>\r
+ <instance>\r
+ <name><*></name>\r
+ <protocols>\r
+ <pim>\r
+ <dense-groups>\r
+ <dynamic-reject />\r
+ <pim-dense-group-type>\r
+ <name>224.0.1.40/32</name>\r
+ </pim-dense-group-type>\r
+ <pim-dense-group-type>\r
+ <name>224.0.1.39/32</name>\r
+ </pim-dense-group-type>\r
+ <pim-dense-group-type>\r
+ <name>224.0.0.0/4</name>\r
+ <reject />\r
+ </pim-dense-group-type>\r
+ </dense-groups>\r
+ <rp>\r
+ <auto-rp>\r
+ <discovery />\r
+ </auto-rp>\r
+ </rp>\r
+ <interface>\r
+ <name><*></name>\r
+ <disable />\r
+ <priority>1000</priority>\r
+ </interface>\r
+ <reset-tracking-bit />\r
+ </pim>\r
+ </protocols>\r
+ </instance>\r
+ </routing-instances>\r
+ </groups>\r
+ </configuration>\r
+ </config>
\ No newline at end of file
--- /dev/null
+{\r
+ "metadata": {\r
+ "author": "ks220y@att.com",\r
+ "service-template-name": "vpe-201802-baseconfig",\r
+ "service-template-version": "1.0.0",\r
+ "release": "1802",\r
+ "service-type": "ADIOD",\r
+ "vnf-type": "VPE"\r
+ },\r
+ "topology_template": {\r
+ "inputs": {\r
+ "request-id": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "service-instance-id": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "action-name": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "scope-type": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "hostname": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "resource-assignment-request": {\r
+ "description": "This is Dynamic Data type for the receipe resource-assignment-action.",\r
+ "required": false,\r
+ "type": "dt-resource-assignment-request"\r
+ }\r
+ },\r
+ "node_templates": {\r
+ "base-config-template": {\r
+ "type": "artifact-config-template",\r
+ "properties": {\r
+ "action-names": [\r
+ "resource-assignment-action"\r
+ ]\r
+ },\r
+ "capabilities": {\r
+ "content": {\r
+ "properties": {\r
+ "content": "db://base-config-template"\r
+ }\r
+ },\r
+ "mapping": {\r
+ "properties": {\r
+ "mapping": [\r
+ {\r
+ "name": "wan-aggregate-ipv6-addresses",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "dt-v6-aggregate"\r
+ }\r
+ },\r
+ "dictionary-name": "wan-aggregate-ipv6-addresses",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "wan-aggregate-ipv4-addresses",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "dt-v4-aggregate"\r
+ }\r
+ },\r
+ "dictionary-name": "wan-aggregate-ipv4-addresses",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "tacacs-server-ipv4-addresses",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "dt-tacacs-server-ipv4"\r
+ }\r
+ },\r
+ "dictionary-name": "tacacs-server-ipv4-addresses",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "oam-remote-ipv4-address",\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "oam-remote-ipv4-address",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "si-local-ipv4-address",\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "si-local-ipv4-address",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "lo0-local-ipv4-address",\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "lo0-local-ipv4-address",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "asn-region",\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "asn-region",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "adiod-unicast-route-reflectors",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "dt-adiod-unicast-route-reflector"\r
+ }\r
+ },\r
+ "dictionary-name": "adiod-unicast-route-reflectors",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "adiod-vpnv4-route-reflectors",\r
+ "input-param": true,\r
+ "property": {\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "dt-adiod-vpnv4-route-reflector"\r
+ }\r
+ },\r
+ "dictionary-name": "adiod-vpnv4-route-reflectors",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "bundle-id",\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "bundle-id",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "uplink-1-unit",\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "uplink-1-unit",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "uplink-2-unit",\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "uplink-2-unit",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "ospf-area",\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "ospf-area",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "ospf-cost",\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "ospf-cost",\r
+ "dictionary-source": "input"\r
+ },\r
+ {\r
+ "name": "lo10-local-ipv4-address",\r
+ "property": {\r
+ "type": "string"\r
+ },\r
+ "dictionary-name": "lo10-local-ipv4-address",\r
+ "dictionary-source": "input"\r
+ }\r
+ ]\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "resource-assignment-action": {\r
+ "type": "dg-resource-assignment",\r
+ "interfaces": {\r
+ "CONFIG": {\r
+ "operations": {\r
+ "ResourceAssignment": {\r
+ \r
+ }\r
+ }\r
+ }\r
+ },\r
+ "capabilities": {\r
+ "dg-node": {\r
+ \r
+ }\r
+ },\r
+ "requirements": {\r
+ "component-dependency": {\r
+ "capability": "component-node",\r
+ "node": "resource-assignment",\r
+ "relationship": "tosca.relationships.DependsOn"\r
+ }\r
+ }\r
+ },\r
+ "resource-assignment": {\r
+ "type": "component-resource-assignment",\r
+ "interfaces": {\r
+ "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {\r
+ "operations": {\r
+ "process": {\r
+ "inputs": {\r
+ "action-name": "{ \"get_input\" : \"action-name\" }",\r
+ "resource-type": "vnf-type",\r
+ "template-names": [\r
+ "base-config-template",\r
+ "licence-template"\r
+ ],\r
+ "request-id": "{ \"get_input\" : \"request-id\" }",\r
+ "resource-id": "{ \"get_input\" : \"hostname\" }"\r
+ },\r
+ "outputs": {\r
+ "resource-assignment-params": "",\r
+ "status": ""\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "capabilities": {\r
+ "component-node": {\r
+ \r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "node_types": {\r
+ "dg-resource-assignment": {\r
+ "description": "This is Resource Assignment Directed Graph",\r
+ "version": "1.0.0",\r
+ "properties": {\r
+ "mode": {\r
+ "required": false,\r
+ "type": "string",\r
+ "default": "sync"\r
+ },\r
+ "version": {\r
+ "required": false,\r
+ "type": "string",\r
+ "default": "LATEST"\r
+ },\r
+ "is-start-flow": {\r
+ "required": false,\r
+ "type": "boolean",\r
+ "default": "false"\r
+ }\r
+ },\r
+ "capabilities": {\r
+ "dg-node": {\r
+ "type": "tosca.capabilities.Node"\r
+ },\r
+ "content": {\r
+ "type": "tosca.capability.Content",\r
+ "properties": {\r
+ "type": {\r
+ "required": false,\r
+ "type": "string",\r
+ "default": "json"\r
+ },\r
+ "content": {\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "requirements": {\r
+ "component-dependency": {\r
+ "capability": "component-node",\r
+ "node": "component-resource-assignment",\r
+ "relationship": "tosca.relationships.DependsOn"\r
+ }\r
+ },\r
+ "interfaces": {\r
+ "CONFIG": {\r
+ "operations": {\r
+ "ResourceAssignment": {\r
+ "inputs": {\r
+ "params": {\r
+ "required": false,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "datatype-property"\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "derived_from": "tosca.nodes.DG"\r
+ },\r
+ "component-resource-assignment": {\r
+ "description": "This is Resource Assignment Component API",\r
+ "version": "1.0.0",\r
+ "capabilities": {\r
+ "component-node": {\r
+ "type": "tosca.capabilities.Node"\r
+ }\r
+ },\r
+ "interfaces": {\r
+ "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {\r
+ "operations": {\r
+ "process": {\r
+ "inputs": {\r
+ "action-name": {\r
+ "description": "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",\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "handler-name": {\r
+ "description": "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.",\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "resource-type": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "template-names": {\r
+ "description": "Name of the Artifact Node Templates, to get the template Content.",\r
+ "required": true,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "string"\r
+ }\r
+ },\r
+ "request-id": {\r
+ "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "resource-id": {\r
+ "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present",\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ },\r
+ "outputs": {\r
+ "resource-assignment-params": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "status": {\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "derived_from": "tosca.nodes.Component"\r
+ },\r
+ "artifact-config-template": {\r
+ "description": "This is Configuration Velocity Template",\r
+ "version": "1.0.0",\r
+ "properties": {\r
+ "action-names": {\r
+ "required": true,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "string"\r
+ }\r
+ }\r
+ },\r
+ "capabilities": {\r
+ "content": {\r
+ "type": "tosca.capability.Content",\r
+ "properties": {\r
+ "content": {\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ }\r
+ },\r
+ "mapping": {\r
+ "type": "tosca.capability.Mapping",\r
+ "properties": {\r
+ "mapping": {\r
+ "required": false,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "datatype-resource-assignment"\r
+ }\r
+ }\r
+ }\r
+ }\r
+ },\r
+ "derived_from": "tosca.nodes.Artifact"\r
+ }\r
+ },\r
+ "data_types": {\r
+ "dt-v4-aggregate": {\r
+ "version": "1.0.0",\r
+ "description": "This is dt-v4-aggregate Data Type",\r
+ "properties": {\r
+ "v4-address": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "v4-plen": {\r
+ "required": false,\r
+ "type": "integer"\r
+ }\r
+ },\r
+ "derived_from": "tosca.datatypes.Root"\r
+ },\r
+ "dt-tacacs-server-ipv4": {\r
+ "version": "1.0.0",\r
+ "description": "This is dt-tacacs-server-ipv4 Data Type",\r
+ "properties": {\r
+ "tacacs-server-ipv4-address": {\r
+ "required": true,\r
+ "type": "string"\r
+ }\r
+ },\r
+ "derived_from": "tosca.datatypes.Root"\r
+ },\r
+ "dt-adiod-vpnv4-route-reflector": {\r
+ "version": "1.0.0",\r
+ "description": "This is dt-adiod-unicast-route-reflector Data Type",\r
+ "properties": {\r
+ "v4-address": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "name": {\r
+ "required": false,\r
+ "type": "string"\r
+ }\r
+ },\r
+ "derived_from": "tosca.datatypes.Root"\r
+ },\r
+ "datatype-resource-assignment": {\r
+ "version": "1.0.0",\r
+ "description": "This is Resource Assignment Data Type",\r
+ "properties": {\r
+ "property": {\r
+ "required": true,\r
+ "type": "datatype-property"\r
+ },\r
+ "input-param": {\r
+ "required": true,\r
+ "type": "boolean"\r
+ },\r
+ "dictionary-name": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "dictionary-source": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "dependencies": {\r
+ "required": true,\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "string"\r
+ }\r
+ },\r
+ "status": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "message": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "updated-date": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "updated-by": {\r
+ "required": false,\r
+ "type": "string"\r
+ }\r
+ },\r
+ "derived_from": "tosca.datatypes.Root"\r
+ },\r
+ "dt-adiod-unicast-route-reflector": {\r
+ "version": "1.0.0",\r
+ "description": "This is dt-adiod-unicast-route-reflector Data Type",\r
+ "properties": {\r
+ "v4-address": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "name": {\r
+ "required": false,\r
+ "type": "string"\r
+ }\r
+ },\r
+ "derived_from": "tosca.datatypes.Root"\r
+ },\r
+ "datatype-property": {\r
+ "version": "1.0.0",\r
+ "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",\r
+ "properties": {\r
+ "type": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "description": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "required": {\r
+ "required": false,\r
+ "type": "boolean"\r
+ },\r
+ "default": {\r
+ "required": false,\r
+ "type": "string"\r
+ },\r
+ "entry_schema": {\r
+ "required": false,\r
+ "type": "string"\r
+ }\r
+ },\r
+ "derived_from": "tosca.datatypes.Root"\r
+ },\r
+ "dt-v6-aggregate": {\r
+ "version": "1.0.0",\r
+ "description": "This is dt-v6-aggregate Data Type",\r
+ "properties": {\r
+ "v6-address": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "v6-plen": {\r
+ "required": false,\r
+ "type": "string"\r
+ }\r
+ },\r
+ "derived_from": "tosca.datatypes.Root"\r
+ },\r
+ "dt-resource-assignment-request": {\r
+ "version": "1.0.0",\r
+ "description": "This is Dynamic Data type definition generated from resource mapping for the config template name base-config-template.",\r
+ "properties": {\r
+ "uplink-2-unit": {\r
+ "type": "string"\r
+ },\r
+ "bundle-mac": {\r
+ "required": true,\r
+ "type": "string"\r
+ },\r
+ "wan-aggregate-ipv6-addresses": {\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "dt-v6-aggregate"\r
+ }\r
+ },\r
+ "ospf-area": {\r
+ "type": "string"\r
+ },\r
+ "ospf-cost": {\r
+ "type": "string"\r
+ },\r
+ "bundle-id": {\r
+ "type": "string"\r
+ },\r
+ "adiod-unicast-route-reflectors": {\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "dt-adiod-unicast-route-reflector"\r
+ }\r
+ },\r
+ "oam-remote-ipv4-address": {\r
+ "type": "string"\r
+ },\r
+ "adiod-vpnv4-route-reflectors": {\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "dt-adiod-vpnv4-route-reflector"\r
+ }\r
+ },\r
+ "lo10-local-ipv4-address": {\r
+ "type": "string"\r
+ },\r
+ "wan-aggregate-ipv4-addresses": {\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "dt-v4-aggregate"\r
+ }\r
+ },\r
+ "lo0-local-ipv4-address": {\r
+ "type": "string"\r
+ },\r
+ "uplink-1-unit": {\r
+ "type": "string"\r
+ },\r
+ "tacacs-server-ipv4-addresses": {\r
+ "type": "list",\r
+ "entry_schema": {\r
+ "type": "dt-tacacs-server-ipv4"\r
+ }\r
+ },\r
+ "asn-region": {\r
+ "type": "string"\r
+ },\r
+ "si-local-ipv4-address": {\r
+ "type": "string"\r
+ }\r
+ },\r
+ "derived_from": "tosca.datatypes.Dynamic"\r
+ }\r
+ }\r
+}\r