Blueprints Processor Service

Blueprints Processor API definitions

Change-Id: Id44c74938f75e847a43b8e6d0733c36d4dc99e97
Issue-ID: CCSDK-411
Signed-off-by: Muthuramalingam, Brinda Santh(bs2796) <bs2796@att.com>
diff --git a/ms/blueprintsprocessor/modules/services/db-service/pom.xml b/ms/blueprintsprocessor/modules/services/db-service/pom.xml
new file mode 100644
index 0000000..b11ba6d
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/db-service/pom.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~  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.
+  -->
+<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.apps.blueprintsprocessor</groupId>
+		<artifactId>services</artifactId>
+		<version>0.0.3-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>db-service</artifactId>
+	<packaging>jar</packaging>
+	<name>Blueprints Processor DB Service</name>
+	<description>Blueprints Processor DB Service</description>
+
+	<dependencies>
+	</dependencies>
+</project>
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/pom.xml b/ms/blueprintsprocessor/modules/services/execution-service/pom.xml
new file mode 100644
index 0000000..c49476f
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/execution-service/pom.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~  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.
+  -->
+<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.apps.blueprintsprocessor</groupId>
+        <artifactId>services</artifactId>
+        <version>0.0.3-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>execution-service</artifactId>
+    <packaging>jar</packaging>
+    <name>Blueprints Processor Execution Service</name>
+    <description>Blueprints Processor Execution Service</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.onap.ccsdk.apps.blueprintsprocessor</groupId>
+            <artifactId>db-service</artifactId>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/services/execution/ExecutionService.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/services/execution/ExecutionService.kt
new file mode 100644
index 0000000..75b26bb
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/services/execution/ExecutionService.kt
@@ -0,0 +1,46 @@
+/*

+ *  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.blueprintsprocessor.services.execution

+

+

+import org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.ExecutionServiceInput

+import org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.ExecutionServiceOutput

+import org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.Status

+import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils

+import org.springframework.stereotype.Service

+import com.fasterxml.jackson.databind.node.ObjectNode

+

+/**

+ * ExecutionService

+ * @author Brinda Santh

+ * 8/14/2018

+ */

+@Service

+class ExecutionService {

+

+    fun process(executionServiceInput: ExecutionServiceInput): ExecutionServiceOutput {

+        val executionServiceOutput = ExecutionServiceOutput()

+        executionServiceOutput.actionIdentifiers = executionServiceInput.actionIdentifiers

+        executionServiceOutput.commonHeader = executionServiceInput.commonHeader

+        executionServiceOutput.payload = JacksonUtils.jsonNode("{}") as ObjectNode

+        val status = Status()

+        status.code = 200

+        status.message = "Success"

+        executionServiceOutput.status = status

+        return executionServiceOutput

+    }

+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/java/org/onap/ccsdk/apps/blueprintsprocessor/services/execution/ExecutionServiceTest.java b/ms/blueprintsprocessor/modules/services/execution-service/src/test/java/org/onap/ccsdk/apps/blueprintsprocessor/services/execution/ExecutionServiceTest.java
new file mode 100644
index 0000000..0df95d2
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/execution-service/src/test/java/org/onap/ccsdk/apps/blueprintsprocessor/services/execution/ExecutionServiceTest.java
@@ -0,0 +1,70 @@
+/*

+ *  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.blueprintsprocessor.services.execution;

+

+import com.fasterxml.jackson.databind.node.ObjectNode;

+import org.apache.commons.io.FileUtils;

+import org.junit.Assert;

+import org.junit.Test;

+import org.junit.runner.RunWith;

+import org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.ExecutionServiceInput;

+import org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.ExecutionServiceOutput;

+import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils;

+import org.slf4j.Logger;

+import org.slf4j.LoggerFactory;

+import org.springframework.beans.factory.annotation.Autowired;

+import org.springframework.test.context.ContextConfiguration;

+import org.springframework.test.context.junit4.SpringRunner;

+

+import java.io.File;

+import java.nio.charset.Charset;

+

+

+/**

+ * ExecutionServiceTest

+ *

+ * @author Brinda Santh

+ * DATE : 8/15/2018

+ */

+@RunWith(SpringRunner.class)

+@ContextConfiguration(classes = ExecutionService.class)

+public class ExecutionServiceTest {

+    private static Logger log = LoggerFactory.getLogger(ExecutionServiceTest.class);

+

+    @Autowired

+    private ExecutionService executionService;

+

+    @Test

+    public void testExecutionService() throws Exception {

+

+        Assert.assertNotNull("failed to create ResourceResolutionService", executionService);

+

+        String resourceResolutionInputContent = FileUtils.readFileToString(

+                new File("src/test/resources/payload/requests/sample-execution-request.json"), Charset.defaultCharset());

+

+        ExecutionServiceInput executionServiceInput = JacksonUtils.readValue(resourceResolutionInputContent, ExecutionServiceInput.class );

+        Assert.assertNotNull("failed to populate executionServiceInput request ",executionServiceInput);

+

+        ObjectNode inputContent = (ObjectNode)JacksonUtils.jsonNodeFromFile("src/test/resources/payload/inputs/input.json");

+        Assert.assertNotNull("failed to populate input payload ",inputContent);

+        executionServiceInput.setPayload(inputContent);

+

+        ExecutionServiceOutput executionServiceOutput = executionService.process(executionServiceInput);

+        Assert.assertNotNull("failed to populate output",executionServiceOutput);

+

+    }

+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/payload/inputs/input.json b/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/payload/inputs/input.json
new file mode 100644
index 0000000..cd6fac1
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/payload/inputs/input.json
@@ -0,0 +1,18 @@
+{

+	"api-ver": "2.00",

+	"originator-id": "MSO",

+	"request-id": "123456",

+	"service-instance-id": "ibcx0001vm001",

+	"service-type": "AVPN",

+	"vnf-type": "vUSP - vDBE-IPX HUB",

+	"vnf-id": 123456,

+	"service-template-name": "VRR-baseconfiguration",

+	"service-template-version": "1.0.0",

+	"action-name": "resource-assignment-action",

+	"group-name": "sample group name",

+	"bundle-id": "sample bundle id",

+	"bundle-mac": [

+		"Sample bundle mac",

+		"Sample bundle mac"

+	]

+}

diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/payload/requests/sample-execution-request.json b/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/payload/requests/sample-execution-request.json
new file mode 100644
index 0000000..b28ac5a
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/payload/requests/sample-execution-request.json
@@ -0,0 +1,20 @@
+{

+  "actionIdentifiers": {

+    "actionName": "sample-action",

+    "blueprintName": "sample-blurprint",

+    "blueprintVersion": "1.0.0",

+    "mode": "sync"

+  },

+  "commonHeader": {

+    "flags": {

+      "force": true,

+      "ttl": 3600

+    },

+    "originatorId": "sdnc",

+    "requestId": "123456-1000",

+    "subRequestId": "sub-123456-1000",

+    "timestamp": "2012-04-23T18:25:43.511Z"

+  },

+  "payload": {

+  }

+}

diff --git a/ms/blueprintsprocessor/modules/services/pom.xml b/ms/blueprintsprocessor/modules/services/pom.xml
new file mode 100644
index 0000000..4ab8d00
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/pom.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~  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.
+  -->
+<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.apps.blueprintsprocessor</groupId>
+        <artifactId>modules</artifactId>
+        <version>0.0.3-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>services</artifactId>
+    <name>Blueprints Processor Service POM</name>
+    <description>Blueprints Processor Service</description>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>db-service</module>
+        <module>resolution-service</module>
+        <module>execution-service</module>
+    </modules>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.onap.ccsdk.apps.blueprintsprocessor</groupId>
+            <artifactId>core</artifactId>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/ms/blueprintsprocessor/modules/services/resolution-service/pom.xml b/ms/blueprintsprocessor/modules/services/resolution-service/pom.xml
new file mode 100644
index 0000000..581dd14
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/resolution-service/pom.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~  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.
+  -->
+<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.apps.blueprintsprocessor</groupId>
+        <artifactId>services</artifactId>
+        <version>0.0.3-SNAPSHOT</version>
+    </parent>
+    <artifactId>resolution-service</artifactId>
+    <packaging>jar</packaging>
+    <name>Blueprints Processor Resolution Service</name>
+    <description>Blueprints Processor Resolution Service</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.onap.ccsdk.apps.blueprintsprocessor</groupId>
+            <artifactId>db-service</artifactId>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/ms/blueprintsprocessor/modules/services/resolution-service/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/services/resolution/ResourceResolutionService.kt b/ms/blueprintsprocessor/modules/services/resolution-service/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/services/resolution/ResourceResolutionService.kt
new file mode 100644
index 0000000..14ab784
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/resolution-service/src/main/kotlin/org/onap/ccsdk/apps/blueprintsprocessor/services/resolution/ResourceResolutionService.kt
@@ -0,0 +1,46 @@
+/*

+ *  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.blueprintsprocessor.services.resolution

+

+import org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.ResourceResolutionInput

+import org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.ResourceResolutionOutput

+import org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.Status

+import org.springframework.stereotype.Service

+

+/**

+ * ResourceResolutionService

+ * @author Brinda Santh

+ * 8/14/2018

+ */

+

+@Service

+class ResourceResolutionService {

+

+    fun resolveResource(resourceResolutionInput: ResourceResolutionInput): ResourceResolutionOutput {

+        val resourceResolutionOutput = ResourceResolutionOutput()

+        resourceResolutionOutput.actionIdentifiers = resourceResolutionInput.actionIdentifiers

+        resourceResolutionOutput.commonHeader = resourceResolutionInput.commonHeader

+        resourceResolutionOutput.resourceAssignments = resourceResolutionInput.resourceAssignments

+

+        val status = Status()

+        status.code = 200

+        status.message = "Success"

+        resourceResolutionOutput.status = status

+

+        return resourceResolutionOutput

+    }

+}

diff --git a/ms/blueprintsprocessor/modules/services/resolution-service/src/test/java/org/onap/ccsdk/apps/blueprintsprocessor/services/resolution/ResourceResolutionServiceTest.java b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/java/org/onap/ccsdk/apps/blueprintsprocessor/services/resolution/ResourceResolutionServiceTest.java
new file mode 100644
index 0000000..6335990
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/java/org/onap/ccsdk/apps/blueprintsprocessor/services/resolution/ResourceResolutionServiceTest.java
@@ -0,0 +1,80 @@
+/*

+ *  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.blueprintsprocessor.services.resolution;

+

+import com.fasterxml.jackson.databind.node.ObjectNode;

+import org.apache.commons.collections.CollectionUtils;

+import org.apache.commons.io.FileUtils;

+import org.junit.Assert;

+import org.junit.Test;

+import org.junit.runner.RunWith;

+import org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.ResourceResolutionInput;

+import org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.ResourceResolutionOutput;

+import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils;

+import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceAssignment;

+import org.slf4j.Logger;

+import org.slf4j.LoggerFactory;

+import org.springframework.beans.factory.annotation.Autowired;

+import org.springframework.test.context.ContextConfiguration;

+import org.springframework.test.context.junit4.SpringRunner;

+

+import java.io.File;

+import java.nio.charset.Charset;

+import java.util.List;

+

+/**

+ * ResourceResolutionServiceTest

+ *

+ * @author Brinda Santh DATE : 8/15/2018

+ */

+@RunWith(SpringRunner.class)

+@ContextConfiguration(classes = ResourceResolutionService.class)

+public class ResourceResolutionServiceTest {

+    private static Logger log = LoggerFactory.getLogger(ResourceResolutionServiceTest.class);

+

+    @Autowired

+    private ResourceResolutionService resourceResolutionService;

+

+    @Test

+    public void testResolveResource() throws Exception {

+

+        Assert.assertNotNull("failed to create ResourceResolutionService", resourceResolutionService);

+

+        String resourceResolutionInputContent = FileUtils.readFileToString(

+                new File("src/test/resources/payload/requests/sample-resourceresolution-request.json"), Charset.defaultCharset());

+

+        ResourceResolutionInput resourceResolutionInput = JacksonUtils.readValue(resourceResolutionInputContent, ResourceResolutionInput.class );

+        Assert.assertNotNull("failed to populate resourceResolutionInput request ",resourceResolutionInput);

+

+        String resourceAssignmentContent = FileUtils.readFileToString(

+                new File("src/test/resources/mapping/db/resource-assignments-simple.json"), Charset.defaultCharset());

+        List<ResourceAssignment> batchResourceAssignment =

+                JacksonUtils.getListFromJson(resourceAssignmentContent, ResourceAssignment.class);

+

+        Assert.assertTrue("failed to create ResourceAssignment from file", CollectionUtils.isNotEmpty(batchResourceAssignment));

+        resourceResolutionInput.setResourceAssignments(batchResourceAssignment);

+

+        ObjectNode inputContent = (ObjectNode)JacksonUtils.jsonNodeFromFile("src/test/resources/payload/inputs/input.json");

+        Assert.assertNotNull("failed to populate input payload ",inputContent);

+        resourceResolutionInput.setPayload(inputContent);

+        log.info("ResourceResolutionInput : {}", JacksonUtils.getJson(resourceResolutionInput, true));

+

+        ResourceResolutionOutput resourceResolutionOutput = resourceResolutionService.resolveResource(resourceResolutionInput);

+        Assert.assertNotNull("failed to populate output",resourceResolutionOutput);

+

+    }

+}

diff --git a/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/db-array.json b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/db-array.json
new file mode 100644
index 0000000..679b92d
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/db-array.json
@@ -0,0 +1,35 @@
+{

+	"locations": {

+		"name": "locations",

+		"data-type": "list",

+		"entry-schema": "dt-location",

+		"source": {

+			"db": {

+				"query": "SELECT db-country, db-state FROM DEVICE_PROFILE WHERE profile_name = :profile_name",

+				"input-key-mapping": {

+					"profile_name": "profile_name"

+				},

+				"output-key-mapping": {

+					"db-country": "country",

+					"db-state": "state"

+				}

+			}

+		},

+		"candidate-dependency": {

+			"db": {

+				"names": [

+					"profile_name"

+				]

+			}

+		}

+	},

+	"profile_name": {

+		"name": "profile_name",

+		"data-type": "string",

+		"source": {

+			"input": {

+				

+			}

+		}

+	}

+}

diff --git a/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/db-complex.json b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/db-complex.json
new file mode 100644
index 0000000..32d04b6
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/db-complex.json
@@ -0,0 +1,27 @@
+{

+	"location": {

+		"name": "location",

+		"data-type": "dt-location",

+		"source": {

+			"db": {

+				"query": "SELECT db-country, db-state FROM DEVICE_PROFILE WHERE profile_name = :profile_name",

+				"input-key-mapping": {

+					"profile_name": "profile_name"

+				},

+				"output-key-mapping": {

+					"db-country": "country",

+					"db-state": "state"

+				}

+			}

+		}

+	},

+	"profile_name": {

+		"name": "profile_name",

+		"data-type": "string",

+		"source": {

+			"input": {

+				

+			}

+		}

+	}

+}

diff --git a/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/db-simple.json b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/db-simple.json
new file mode 100644
index 0000000..841404f
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/db-simple.json
@@ -0,0 +1,26 @@
+{

+	"country": {

+		"name": "country",

+		"data-type": "string",

+		"source": {

+			"db": {

+				"query": "SELECT country FROM DEVICE_PROFILE WHERE profile_name = :profile_name",

+				"input-key-mapping": {

+					"profile_name": "profile_name"

+				},

+				"output-key-mapping": {

+					"country": "country"

+				}

+			}

+		}

+	},

+	"profile_name": {

+		"name": "profile_name",

+		"data-type": "string",

+		"source": {

+			"input": {

+				

+			}

+		}

+	}

+}

diff --git a/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/dt-location.json b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/dt-location.json
new file mode 100644
index 0000000..52e0a79
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/dt-location.json
@@ -0,0 +1,15 @@
+{

+	"version": "1.0.0",

+	"description": "test Data Type",

+	"properties": {

+		"country": {

+			"required": true,

+			"type": "string"

+		},

+		"state": {

+			"required": false,

+			"type": "string"

+		}

+	},

+	"derived_from": "tosca.datatypes.Root"

+}

diff --git a/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/resource-assignments-simple.json b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/resource-assignments-simple.json
new file mode 100644
index 0000000..02ce68b
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/mapping/db/resource-assignments-simple.json
@@ -0,0 +1,12 @@
+[

+	{

+		"name": "country",

+		"input-param": true,

+		"property": {

+			"type": "string"

+		},

+		"dictionary-name": "country",

+		"dictionary-source": "db",

+		"dependencies": []

+	}

+]

diff --git a/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/payload/inputs/input.json b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/payload/inputs/input.json
new file mode 100644
index 0000000..cd6fac1
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/payload/inputs/input.json
@@ -0,0 +1,18 @@
+{

+	"api-ver": "2.00",

+	"originator-id": "MSO",

+	"request-id": "123456",

+	"service-instance-id": "ibcx0001vm001",

+	"service-type": "AVPN",

+	"vnf-type": "vUSP - vDBE-IPX HUB",

+	"vnf-id": 123456,

+	"service-template-name": "VRR-baseconfiguration",

+	"service-template-version": "1.0.0",

+	"action-name": "resource-assignment-action",

+	"group-name": "sample group name",

+	"bundle-id": "sample bundle id",

+	"bundle-mac": [

+		"Sample bundle mac",

+		"Sample bundle mac"

+	]

+}

diff --git a/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/payload/requests/sample-resourceresolution-request.json b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/payload/requests/sample-resourceresolution-request.json
new file mode 100644
index 0000000..e8830a8
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/resolution-service/src/test/resources/payload/requests/sample-resourceresolution-request.json
@@ -0,0 +1,22 @@
+{

+  "actionIdentifiers": {

+    "actionName": "sample-action",

+    "blueprintName": "sample-blurprint",

+    "blueprintVersion": "1.0.0",

+    "mode": "sync"

+  },

+  "commonHeader": {

+    "flags": {

+      "force": true,

+      "ttl": 3600

+    },

+    "originatorId": "sdnc",

+    "requestId": "123456-1000",

+    "subRequestId": "sub-123456-1000",

+    "timestamp": "2012-04-23T18:25:43.511Z"

+  },

+  "payload": {

+  },

+  "resourceAssignments": [

+  ]

+}