aboutsummaryrefslogtreecommitdiffstats
path: root/ms/blueprintsprocessor/functions/resource-resolution/src/main
diff options
context:
space:
mode:
authorBrinda Santh <brindasanth@in.ibm.com>2019-08-02 12:08:54 -0400
committerDan Timoney <dtimoney@att.com>2019-08-09 20:04:11 +0000
commit54c3633cadf1cd087efa7af6acdf54ae47a4759a (patch)
tree3bb93418bf4ca553c04816a5380662079b36a086 /ms/blueprintsprocessor/functions/resource-resolution/src/main
parent6972452ec5f9cab7a8031d670843dd54c0c0a708 (diff)
Add resource assignment DSL.
Change-Id: I44a3596c05b02faa171f90b9207f774ce34976a6 Issue-ID: CCSDK-1577 Signed-off-by: Brinda Santh <brindasanth@in.ibm.com>
Diffstat (limited to 'ms/blueprintsprocessor/functions/resource-resolution/src/main')
-rw-r--r--ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceDefinitionDSL.kt96
1 files changed, 89 insertions, 7 deletions
diff --git a/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceDefinitionDSL.kt b/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceDefinitionDSL.kt
index 340894f1b..a48762832 100644
--- a/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceDefinitionDSL.kt
+++ b/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceDefinitionDSL.kt
@@ -19,15 +19,50 @@ package org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution
import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeTemplate
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.PropertyDefinitionBuilder
+import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment
import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceDefinition
/** Resource Definition DSL **/
-fun BluePrintTypes.resourceDefinition(name: String,
+fun BluePrintTypes.resourceDefinitions(block: ResourceDefinitionsBuilder.() -> Unit)
+ : MutableMap<String, ResourceDefinition> {
+ return ResourceDefinitionsBuilder().apply(block).build()
+}
+
+fun BluePrintTypes.resourceDefinition(name: String, description: String,
block: ResourceDefinitionBuilder.() -> Unit): ResourceDefinition {
- return ResourceDefinitionBuilder(name).apply(block).build()
+ return ResourceDefinitionBuilder(name, description).apply(block).build()
+}
+
+/** Resource Mapping DSL **/
+fun BluePrintTypes.resourceAssignments(block: ResourceAssignmentsBuilder.() -> Unit)
+ : MutableMap<String, ResourceAssignment> {
+ return ResourceAssignmentsBuilder().apply(block).build()
+}
+
+fun BluePrintTypes.resourceAssignment(name: String, dictionaryName: String, dictionarySource: String,
+ block: ResourceAssignmentBuilder.() -> Unit): ResourceAssignment {
+ return ResourceAssignmentBuilder(name, dictionaryName, dictionarySource).apply(block).build()
+}
+
+class ResourceDefinitionsBuilder() {
+ private val resourceDefinitions: MutableMap<String, ResourceDefinition> = hashMapOf()
+
+ fun resourceDefinition(name: String, description: String,
+ block: ResourceDefinitionBuilder.() -> Unit) {
+ val resourceDefinition = ResourceDefinitionBuilder(name, description).apply(block).build()
+ resourceDefinitions[resourceDefinition.name] = resourceDefinition
+ }
+
+ fun resourceDefinition(resourceDefinition: ResourceDefinition) {
+ resourceDefinitions[resourceDefinition.name] = resourceDefinition
+ }
+
+ fun build(): MutableMap<String, ResourceDefinition> {
+ return resourceDefinitions
+ }
}
-class ResourceDefinitionBuilder(private val name: String) {
+class ResourceDefinitionBuilder(private val name: String, private val description: String) {
private val resourceDefinition = ResourceDefinition()
fun updatedBy(updatedBy: String) {
@@ -38,13 +73,13 @@ class ResourceDefinitionBuilder(private val name: String) {
resourceDefinition.tags = tags
}
- fun property(id: String, type: String, required: Boolean, description: String? = "") {
- resourceDefinition.property = PropertyDefinitionBuilder(id, type, required, description).build()
+ fun property(type: String, required: Boolean) {
+ resourceDefinition.property = PropertyDefinitionBuilder(name, type, required, description).build()
}
- fun property(id: String, type: String, required: Boolean, description: String? = "",
+ fun property(type: String, required: Boolean,
block: PropertyDefinitionBuilder.() -> Unit) {
- resourceDefinition.property = PropertyDefinitionBuilder(id, type, required, description).apply(block).build()
+ resourceDefinition.property = PropertyDefinitionBuilder(name, type, required, description).apply(block).build()
}
fun sources(block: ResourceDefinitionSourcesBuilder.() -> Unit) {
@@ -91,4 +126,51 @@ class ResourceDefinitionSourcesBuilder {
fun build(): MutableMap<String, NodeTemplate> {
return sources
}
+}
+
+class ResourceAssignmentsBuilder() {
+ private val resourceAssignments: MutableMap<String, ResourceAssignment> = hashMapOf()
+
+ fun resourceAssignment(name: String, dictionaryName: String, dictionarySource: String,
+ block: ResourceAssignmentBuilder.() -> Unit) {
+ val resourceAssignment = ResourceAssignmentBuilder(name, dictionaryName, dictionarySource).apply(block).build()
+ resourceAssignments[resourceAssignment.name] = resourceAssignment
+ }
+
+ fun resourceAssignment(resourceAssignment: ResourceAssignment) {
+ resourceAssignments[resourceAssignment.name] = resourceAssignment
+ }
+
+ fun build(): MutableMap<String, ResourceAssignment> {
+ return resourceAssignments
+ }
+}
+
+class ResourceAssignmentBuilder(private val name: String, private val dictionaryName: String,
+ private val dictionarySource: String) {
+ private val resourceAssignment = ResourceAssignment()
+
+ fun inputParameter(inputParameter: Boolean) {
+ resourceAssignment.inputParameter = inputParameter
+ }
+
+ fun property(type: String, required: Boolean, description: String? = "") {
+ resourceAssignment.property = PropertyDefinitionBuilder(name, type, required, description).build()
+ }
+
+ fun property(type: String, required: Boolean, description: String? = "",
+ block: PropertyDefinitionBuilder.() -> Unit) {
+ resourceAssignment.property = PropertyDefinitionBuilder(name, type, required, description).apply(block).build()
+ }
+
+ fun dependencies(dependencies: MutableList<String>) {
+ resourceAssignment.dependencies = dependencies
+ }
+
+ fun build(): ResourceAssignment {
+ resourceAssignment.name = name
+ resourceAssignment.dictionaryName = dictionaryName
+ resourceAssignment.dictionarySource = dictionarySource
+ return resourceAssignment
+ }
} \ No newline at end of file