Easy search definitions Types and Templates inside ServiceTemplate DSL builder.
Unit test modifications to support this change.
Issue-ID: CCSDK-1054
Signed-off-by: Brinda Santh <bs2796@att.com>
Change-Id: Ie944ff5f75f80c852555306e1a4e0fa7f5b803d7
import org.onap.ccsdk.cds.blueprintsprocessor.ssh.relationshipTemplateSshClient
import org.onap.ccsdk.cds.blueprintsprocessor.ssh.relationshipTypeConnectsToSshClient
import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
-import org.onap.ccsdk.cds.controllerblueprints.core.asJsonString
import org.onap.ccsdk.cds.controllerblueprints.core.data.ServiceTemplate
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.artifactTypeTemplateVelocity
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.getAttribute
step(id = "check", target = "check", description = "Calling check script node")
}
- val checkComponent = BluePrintTypes.nodeTemplateComponentScriptExecutor(id = "check", description = "") {
+ /** Check component Node Template */
+ nodeTemplateComponentScriptExecutor(id = "check", description = "") {
definedOperation(description = "") {
inputs {
type(BluePrintConstants.SCRIPT_KOTLIN)
file = "Templates/check-command-template.vtl"
)
}
- nodeTemplate(checkComponent)
/** Connection Configuration through Relationship **/
relationshipTemplateSshClient("ssh-connection-config", "Device connection config") {
}
/** Artifact Types */
- artifactType(BluePrintTypes.artifactTypeTemplateVelocity())
+ artifactTypeTemplateVelocity()
/** Node Types */
- nodeType(BluePrintTypes.nodeTypeComponent())
- nodeType(BluePrintTypes.nodeTypeComponentScriptExecutor())
+ nodeTypeComponent()
+ nodeTypeComponentScriptExecutor()
/** Relationship Types */
- relationshipType(BluePrintTypes.relationshipTypeConnectsToSshClient())
- relationshipType(BluePrintTypes.relationshipTypeConnectsTo())
+ relationshipTypeConnectsToSshClient()
+ relationshipTypeConnectsTo()
}
import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeType
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.AbstractNodeTemplateOperationImplBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.PropertiesAssignmentBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.ServiceTemplateBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.TopologyTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.nodeType
import org.onap.ccsdk.cds.controllerblueprints.core.jsonAsJsonType
/** Component Extensions **/
+fun ServiceTemplateBuilder.nodeTypeComponentResourceResolution() {
+ val nodeType = BluePrintTypes.nodeTypeComponentResourceResolution()
+ if (this.nodeTypes == null) this.nodeTypes = hashMapOf()
+ this.nodeTypes!![nodeType.id!!] = nodeType
+}
+
fun BluePrintTypes.nodeTypeComponentResourceResolution(): NodeType {
return nodeType(
id = "component-resource-resolution", version = BluePrintConstants.DEFAULT_VERSION_NUMBER,
}
/** Component Builder */
+fun TopologyTemplateBuilder.nodeTemplateComponentResourceResolution(
+ id: String,
+ description: String,
+ block: ComponentResourceResolutionNodeTemplateBuilder.() -> Unit
+) {
+ val nodeTemplate = BluePrintTypes.nodeTemplateComponentResourceResolution(
+ id, description,
+ block
+ )
+ if (nodeTemplates == null) nodeTemplates = hashMapOf()
+ nodeTemplates!![nodeTemplate.id!!] = nodeTemplate
+}
+
fun BluePrintTypes.nodeTemplateComponentResourceResolution(
id: String,
description: String,
block: ComponentResourceResolutionNodeTemplateBuilder.() -> Unit
-):
- NodeTemplate {
+): NodeTemplate {
return ComponentResourceResolutionNodeTemplateBuilder(id, description).apply(block).build()
}
class ComponentResourceResolutionNodeTemplateBuilder(id: String, description: String) :
AbstractNodeTemplateOperationImplBuilder<PropertiesAssignmentBuilder,
- ComponentResourceResolutionNodeTemplateBuilder.InputsBuilder,
- ComponentResourceResolutionNodeTemplateBuilder.OutputsBuilder>(
+ ComponentResourceResolutionNodeTemplateBuilder.InputsBuilder,
+ ComponentResourceResolutionNodeTemplateBuilder.OutputsBuilder>(
id, "component-script-executor",
"ComponentResourceResolution",
description
version: String,
author: String,
tags: String,
- block: BluePrintServiceDSLBuilder.() -> Unit
+ block: ServiceTemplateBuilder.() -> Unit
): ServiceTemplate {
- return BluePrintServiceDSLBuilder(name, version, author, tags).apply(block).build()
+ return ServiceTemplateBuilder(name, version, author, tags).apply(block).build()
}
fun workflow(id: String, description: String, block: WorkflowBuilder.() -> Unit): Workflow {
}
/** Blueprint Type Extensions */
+fun ServiceTemplateBuilder.nodeTypeComponent() {
+ val nodeType = BluePrintTypes.nodeTypeComponent()
+ if (this.nodeTypes == null) this.nodeTypes = hashMapOf()
+ this.nodeTypes!![nodeType.id!!] = nodeType
+}
fun BluePrintTypes.nodeTypeComponent(): NodeType {
return nodeType(
}
}
+@Deprecated("CDS won't support, use implerative workflow definitions.")
fun BluePrintTypes.nodeTypeWorkflow(): NodeType {
return nodeType(
id = BluePrintConstants.MODEL_TYPE_NODE_WORKFLOW,
}
}
+fun ServiceTemplateBuilder.nodeTypeVnf() {
+ val nodeType = BluePrintTypes.nodeTypeVnf()
+ if (this.nodeTypes == null) this.nodeTypes = hashMapOf()
+ this.nodeTypes!![nodeType.id!!] = nodeType
+}
+
fun BluePrintTypes.nodeTypeVnf(): NodeType {
return nodeType(
id = BluePrintConstants.MODEL_TYPE_NODE_VNF,
}
}
+fun ServiceTemplateBuilder.nodeTypeResourceSource() {
+ val nodeType = BluePrintTypes.nodeTypeResourceSource()
+ if (this.nodeTypes == null) this.nodeTypes = hashMapOf()
+ this.nodeTypes!![nodeType.id!!] = nodeType
+}
+
fun BluePrintTypes.nodeTypeResourceSource(): NodeType {
return nodeType(
id = BluePrintConstants.MODEL_TYPE_NODE_RESOURCE_SOURCE,
}
/** Artifacts */
+fun ServiceTemplateBuilder.artifactTypeTemplateVelocity() {
+ val artifactType = BluePrintTypes.artifactTypeTemplateVelocity()
+ if (this.artifactTypes == null) this.artifactTypes = hashMapOf()
+ this.artifactTypes!![artifactType.id!!] = artifactType
+}
fun BluePrintTypes.artifactTypeTemplateVelocity(): ArtifactType {
return artifactType(
}
}
+fun ServiceTemplateBuilder.artifactTypeTempleJinja() {
+ val artifactType = BluePrintTypes.artifactTypeTempleJinja()
+ if (this.artifactTypes == null) this.artifactTypes = hashMapOf()
+ this.artifactTypes!![artifactType.id!!] = artifactType
+}
+
fun BluePrintTypes.artifactTypeTempleJinja(): ArtifactType {
return artifactType(
id = BluePrintConstants.MODEL_TYPE_ARTIFACT_TEMPLATE_JINJA,
}
}
+fun ServiceTemplateBuilder.artifactTypeMappingResource() {
+ val artifactType = BluePrintTypes.artifactTypeMappingResource()
+ if (this.artifactTypes == null) this.artifactTypes = hashMapOf()
+ this.artifactTypes!![artifactType.id!!] = artifactType
+}
+
fun BluePrintTypes.artifactTypeMappingResource(): ArtifactType {
return artifactType(
id = BluePrintConstants.MODEL_TYPE_ARTIFACT_MAPPING_RESOURCE,
}
}
+fun ServiceTemplateBuilder.artifactTypeScriptKotlin() {
+ val artifactType = BluePrintTypes.artifactTypeScriptKotlin()
+ if (this.artifactTypes == null) this.artifactTypes = hashMapOf()
+ this.artifactTypes!![artifactType.id!!] = artifactType
+}
+
fun BluePrintTypes.artifactTypeScriptKotlin(): ArtifactType {
return artifactType(
id = BluePrintConstants.MODEL_TYPE_ARTIFACT_SCRIPT_KOTLIN,
}
}
+fun ServiceTemplateBuilder.artifactTypeComponentJar() {
+ val artifactType = BluePrintTypes.artifactTypeComponentJar()
+ if (this.artifactTypes == null) this.artifactTypes = hashMapOf()
+ this.artifactTypes!![artifactType.id!!] = artifactType
+}
+
fun BluePrintTypes.artifactTypeComponentJar(): ArtifactType {
return artifactType(
id = BluePrintConstants.MODEL_TYPE_ARTIFACT_COMPONENT_JAR,
/** Relationship Types */
+fun ServiceTemplateBuilder.relationshipTypeConnectsTo() {
+ val relationshipType = BluePrintTypes.relationshipTypeConnectsTo()
+ if (this.relationshipTypes == null) this.relationshipTypes = hashMapOf()
+ this.relationshipTypes!![relationshipType.id!!] = relationshipType
+}
+
fun BluePrintTypes.relationshipTypeConnectsTo(): RelationshipType {
return relationshipType(
id = BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO,
}
}
+fun ServiceTemplateBuilder.relationshipTypeDependsOn() {
+ val relationshipType = BluePrintTypes.relationshipTypeDependsOn()
+ if (this.relationshipTypes == null) this.relationshipTypes = hashMapOf()
+ this.relationshipTypes!![relationshipType.id!!] = relationshipType
+}
+
fun BluePrintTypes.relationshipTypeDependsOn(): RelationshipType {
return relationshipType(
id = BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_DEPENDS_ON,
}
}
+fun ServiceTemplateBuilder.relationshipTypeHostedOn() {
+ val relationshipType = BluePrintTypes.relationshipTypeHostedOn()
+ if (this.relationshipTypes == null) this.relationshipTypes = hashMapOf()
+ this.relationshipTypes!![relationshipType.id!!] = relationshipType
+}
+
fun BluePrintTypes.relationshipTypeHostedOn(): RelationshipType {
return relationshipType(
id = BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_HOSTED_ON,
open class TopologyTemplateBuilder {
private var topologyTemplate = TopologyTemplate()
- private var nodeTemplates: MutableMap<String, NodeTemplate>? = null
+ var nodeTemplates: MutableMap<String, NodeTemplate>? = null
var relationshipTemplates: MutableMap<String, RelationshipTemplate>? = null
private var workflows: MutableMap<String, Workflow>? = null
import org.onap.ccsdk.cds.controllerblueprints.core.data.TopologyTemplate
import kotlin.reflect.KClass
-class BluePrintServiceDSLBuilder(
+class ServiceTemplateBuilder(
private val name: String,
private val version: String,
private val author: String,
private var metadata: MutableMap<String, String> = hashMapOf()
private var dslDefinitions: MutableMap<String, JsonNode>? = null
private var imports: MutableList<ImportDefinition> = mutableListOf()
- private var nodeTypes: MutableMap<String, NodeType>? = null
- private var artifactTypes: MutableMap<String, ArtifactType>? = null
- private var dataTypes: MutableMap<String, DataType>? = null
- private var relationshipTypes: MutableMap<String, RelationshipType>? = null
- private var policyTypes: MutableMap<String, PolicyType>? = null
+ var nodeTypes: MutableMap<String, NodeType>? = null
+ var artifactTypes: MutableMap<String, ArtifactType>? = null
+ var dataTypes: MutableMap<String, DataType>? = null
+ var relationshipTypes: MutableMap<String, RelationshipType>? = null
+ var policyTypes: MutableMap<String, PolicyType>? = null
private fun initMetaData() {
metadata[BluePrintConstants.METADATA_TEMPLATE_NAME] = name
fun artifactTypes(artifactTypes: MutableMap<String, ArtifactType>) {
if (this.artifactTypes == null) this.artifactTypes = hashMapOf()
-
this.artifactTypes!!.putAll(artifactTypes)
}
fun relationshipTypes(relationshipTypes: MutableMap<String, RelationshipType>) {
if (this.relationshipTypes == null) this.relationshipTypes = hashMapOf()
-
this.relationshipTypes!!.putAll(relationshipTypes)
}
fun policyTypes(policyTypes: MutableMap<String, PolicyType>) {
if (this.policyTypes == null) this.policyTypes = hashMapOf()
-
this.policyTypes!!.putAll(policyTypes)
}
fun nodeType(nodeTypes: MutableMap<String, NodeType>) {
if (this.nodeTypes == null) this.nodeTypes = hashMapOf()
-
this.nodeTypes!!.putAll(nodeTypes)
}
fun policyType(policyType: PolicyType) {
if (policyTypes == null) policyTypes = hashMapOf()
-
policyTypes!![policyType.id!!] = policyType
}
import("Definition/data_types.json")
dsl("rest-endpoint", """{ "selector" : "odl-selector"}""")
dsl("db-endpoint", """{ "selector" : "db-selector"}""")
+
+ nodeTypeComponent()
+ nodeTypeResourceSource()
+ nodeTypeVnf()
+
+ artifactTypeTemplateVelocity()
+ artifactTypeTempleJinja()
+ artifactTypeScriptKotlin()
+ artifactTypeMappingResource()
+ artifactTypeComponentJar()
+
+ relationshipTypeConnectsTo()
+ relationshipTypeDependsOn()
+ relationshipTypeHostedOn()
+
topologyTemplate {
nodeTemplateOperation(
nodeTemplateName = "activate", type = "sample-node-type", interfaceName = "RestconfExecutor",
}
}
+ // println(serviceTemplate.asJsonString(true))
+ assertNotNull(serviceTemplate.artifactTypes, "failed to get artifactTypes")
+ assertNotNull(serviceTemplate.nodeTypes, "failed to get nodeTypes")
+ assertNotNull(serviceTemplate.relationshipTypes, "failed to get relationshipTypes")
assertNotNull(serviceTemplate.topologyTemplate, "failed to get topology template")
assertNotNull(serviceTemplate.topologyTemplate?.nodeTemplates, "failed to get nodeTypes")
- assertNotNull(serviceTemplate.topologyTemplate?.nodeTemplates!!["activate"], "failed to get nodeTypes(activate)")
- // println(serviceTemplate.asJsonString(true))
+ assertNotNull(
+ serviceTemplate.topologyTemplate?.nodeTemplates!!["activate"],
+ "failed to get nodeTypes(activate)"
+ )
}
@Test
description: String,
block: TestNodeTemplateOperationImplBuilder.() -> Unit
):
- NodeTemplate {
+ NodeTemplate {
return TestNodeTemplateOperationImplBuilder(id, description).apply(block).build()
}
import org.onap.ccsdk.cds.controllerblueprints.core.data.RelationshipType
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.PropertiesAssignmentBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.RelationshipTemplateBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.ServiceTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.TopologyTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.relationshipType
/** Relationships Types DSL for Database Producer */
+fun ServiceTemplateBuilder.relationshipTypeConnectsToDb() {
+ val relationshipType = BluePrintTypes.relationshipTypeConnectsToDb()
+ if (this.relationshipTypes == null) this.relationshipTypes = hashMapOf()
+ this.relationshipTypes!![relationshipType.id!!] = relationshipType
+}
+
fun BluePrintTypes.relationshipTypeConnectsToDb(): RelationshipType {
return relationshipType(
id = BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_DB,
package org.onap.ccsdk.cds.blueprintsprocessor.db
import org.junit.Test
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.relationshipTypeConnectsTo
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.serviceTemplate
import kotlin.test.assertEquals
}
}
}
- relationshipTypes(
- arrayListOf(
- BluePrintTypes.relationshipTypeConnectsToDb(),
- BluePrintTypes.relationshipTypeConnectsTo()
- )
- )
+ relationshipTypeConnectsToDb()
+ relationshipTypeConnectsTo()
}
+
+ // println(serviceTemplate.asJsonString(true))
assertNotNull(serviceTemplate, "failed to create service template")
val relationshipTemplates = serviceTemplate.topologyTemplate?.relationshipTemplates
assertNotNull(relationshipTemplates, "failed to get relationship templates")
assertEquals(2, relationshipTemplates.size, "relationshipTemplates doesn't match")
assertNotNull(relationshipTemplates["sample-maria-db"], "failed to get sample-maria-db")
assertNotNull(relationshipTemplates["sample-mysql-db"], "failed to get sample-mysql-db")
- // println(serviceTemplate.asJsonString(true))
+
+ val relationshipTypes = serviceTemplate.relationshipTypes
+ assertNotNull(relationshipTypes, "failed to get relationship types")
+ assertEquals(2, relationshipTypes.size, "relationshipTypes doesn't match")
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO}"
+ )
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_DB],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_DB}"
+ )
}
}
import org.onap.ccsdk.cds.controllerblueprints.core.data.RelationshipType
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.PropertiesAssignmentBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.RelationshipTemplateBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.ServiceTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.TopologyTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.relationshipType
/** Relationships Types DSL for GRPC Server Producer */
+fun ServiceTemplateBuilder.relationshipTypeConnectsToGrpcServer() {
+ val relationshipType = BluePrintTypes.relationshipTypeConnectsToGrpcServer()
+ if (this.relationshipTypes == null) this.relationshipTypes = hashMapOf()
+ this.relationshipTypes!![relationshipType.id!!] = relationshipType
+}
+
fun BluePrintTypes.relationshipTypeConnectsToGrpcServer(): RelationshipType {
return relationshipType(
id = BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_GRPC_SERVER,
}
}
+fun ServiceTemplateBuilder.relationshipTypeConnectsToGrpcClient() {
+ val relationshipType = BluePrintTypes.relationshipTypeConnectsToGrpcClient()
+ if (this.relationshipTypes == null) this.relationshipTypes = hashMapOf()
+ this.relationshipTypes!![relationshipType.id!!] = relationshipType
+}
+
fun BluePrintTypes.relationshipTypeConnectsToGrpcClient(): RelationshipType {
return relationshipType(
id = BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_GRPC_CLIENT,
package org.onap.ccsdk.cds.blueprintsprocessor.grpc
import org.junit.Test
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.relationshipTypeConnectsTo
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.serviceTemplate
import kotlin.test.assertEquals
}
}
}
- relationshipTypes(
- arrayListOf(
- BluePrintTypes.relationshipTypeConnectsToGrpcServer(),
- BluePrintTypes.relationshipTypeConnectsTo()
- )
- )
+ relationshipTypeConnectsToGrpcServer()
+ relationshipTypeConnectsTo()
}
+
+ // println(serviceTemplate.asJsonString(true))
assertNotNull(serviceTemplate, "failed to create service template")
val relationshipTemplates = serviceTemplate.topologyTemplate?.relationshipTemplates
assertNotNull(relationshipTemplates, "failed to get relationship templates")
assertEquals(2, relationshipTemplates.size, "relationshipTemplates doesn't match")
assertNotNull(relationshipTemplates["sample-tls-auth"], "failed to get sample-tls-auth")
assertNotNull(relationshipTemplates["sample-token-auth"], "failed to get sample-token-auth")
- // println(serviceTemplate.asJsonString(true))
+
+ val relationshipTypes = serviceTemplate.relationshipTypes
+ assertNotNull(relationshipTypes, "failed to get relationship types")
+ assertEquals(2, relationshipTypes.size, "relationshipTypes doesn't match")
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO}"
+ )
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_GRPC_SERVER],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_GRPC_SERVER}"
+ )
}
@Test
}
}
}
- relationshipTypes(
- arrayListOf(
- BluePrintTypes.relationshipTypeConnectsToGrpcClient(),
- BluePrintTypes.relationshipTypeConnectsTo()
- )
- )
+ relationshipTypeConnectsToGrpcClient()
+ relationshipTypeConnectsTo()
}
+
+ // println(serviceTemplate.asJsonString(true))
assertNotNull(serviceTemplate, "failed to create service template")
val relationshipTemplates = serviceTemplate.topologyTemplate?.relationshipTemplates
assertNotNull(relationshipTemplates, "failed to get relationship templates")
assertNotNull(relationshipTemplates["sample-tls-auth"], "failed to get sample-tls-auth")
assertNotNull(relationshipTemplates["sample-basic-auth"], "failed to get sample-basic-auth")
assertNotNull(relationshipTemplates["sample-token-auth"], "failed to get sample-token-auth")
- // println(serviceTemplate.asJsonString(true))
+
+ val relationshipTypes = serviceTemplate.relationshipTypes
+ assertNotNull(relationshipTypes, "failed to get relationship types")
+ assertEquals(2, relationshipTypes.size, "relationshipTypes doesn't match")
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO}"
+ )
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_GRPC_CLIENT],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_GRPC_CLIENT}"
+ )
}
}
import org.onap.ccsdk.cds.controllerblueprints.core.data.RelationshipType
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.PropertiesAssignmentBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.RelationshipTemplateBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.ServiceTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.TopologyTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.relationshipType
/** Relationships Types DSL for Message Producer */
+fun ServiceTemplateBuilder.relationshipTypeConnectsToMessageProducer() {
+ val relationshipType = BluePrintTypes.relationshipTypeConnectsToMessageProducer()
+ if (this.relationshipTypes == null) this.relationshipTypes = hashMapOf()
+ this.relationshipTypes!![relationshipType.id!!] = relationshipType
+}
+
fun BluePrintTypes.relationshipTypeConnectsToMessageProducer(): RelationshipType {
return relationshipType(
id = BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_MESSAGE_PRODUCER,
}
}
+fun ServiceTemplateBuilder.relationshipTypeConnectsToMessageConsumer() {
+ val relationshipType = BluePrintTypes.relationshipTypeConnectsToMessageConsumer()
+ if (this.relationshipTypes == null) this.relationshipTypes = hashMapOf()
+ this.relationshipTypes!![relationshipType.id!!] = relationshipType
+}
+
fun BluePrintTypes.relationshipTypeConnectsToMessageConsumer(): RelationshipType {
return relationshipType(
id = BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_MESSAGE_CONSUMER,
import org.apache.kafka.streams.StreamsConfig
import org.junit.Test
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.relationshipTypeConnectsTo
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.serviceTemplate
import kotlin.test.assertEquals
}
}
}
- relationshipTypes(
- arrayListOf(
- BluePrintTypes.relationshipTypeConnectsToMessageProducer(),
- BluePrintTypes.relationshipTypeConnectsTo()
- )
- )
+ relationshipTypeConnectsToMessageProducer()
+ relationshipTypeConnectsTo()
}
+
+ // println(serviceTemplate.asJsonString(true))
assertNotNull(serviceTemplate, "failed to create service template")
val relationshipTemplates = serviceTemplate.topologyTemplate?.relationshipTemplates
assertNotNull(relationshipTemplates, "failed to get relationship templates")
assertEquals(1, relationshipTemplates.size, "relationshipTemplates doesn't match")
assertNotNull(relationshipTemplates["sample-basic-auth"], "failed to get sample-basic-auth")
- // println(serviceTemplate.asJsonString(true))
+
+ val relationshipTypes = serviceTemplate.relationshipTypes
+ assertNotNull(relationshipTypes, "failed to get relationship types")
+ assertEquals(2, relationshipTypes.size, "relationshipTypes doesn't match")
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO}"
+ )
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_MESSAGE_PRODUCER],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_MESSAGE_PRODUCER}"
+ )
}
@Test
}
}
}
- relationshipTypes(
- arrayListOf(
- BluePrintTypes.relationshipTypeConnectsToMessageConsumer(),
- BluePrintTypes.relationshipTypeConnectsTo()
- )
- )
+ relationshipTypeConnectsToMessageConsumer()
+ relationshipTypeConnectsTo()
}
+ // println(serviceTemplate.asJsonString(true))
assertNotNull(serviceTemplate, "failed to create service template")
val relationshipTemplates = serviceTemplate.topologyTemplate?.relationshipTemplates
assertNotNull(relationshipTemplates, "failed to get relationship templates")
assertEquals(2, relationshipTemplates.size, "relationshipTemplates doesn't match")
assertNotNull(relationshipTemplates["sample-basic-auth"], "failed to get sample-basic-auth")
assertNotNull(relationshipTemplates["sample-stream-basic-auth"], "failed to get sample-stream-basic-auth")
- // println(serviceTemplate.asJsonString(true))
+
+ val relationshipTypes = serviceTemplate.relationshipTypes
+ assertNotNull(relationshipTypes, "failed to get relationship types")
+ assertEquals(2, relationshipTypes.size, "relationshipTypes doesn't match")
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO}"
+ )
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_MESSAGE_CONSUMER],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_MESSAGE_CONSUMER}"
+ )
}
}
import org.onap.ccsdk.cds.controllerblueprints.core.data.RelationshipType
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.PropertiesAssignmentBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.RelationshipTemplateBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.ServiceTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.TopologyTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.relationshipType
/** Relationships Types DSL for NATS Producer */
+fun ServiceTemplateBuilder.relationshipTypeConnectsToNats() {
+ val relationshipType = BluePrintTypes.relationshipTypeConnectsToNats()
+ if (this.relationshipTypes == null) this.relationshipTypes = hashMapOf()
+ this.relationshipTypes!![relationshipType.id!!] = relationshipType
+}
+
fun BluePrintTypes.relationshipTypeConnectsToNats(): RelationshipType {
return relationshipType(
id = BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_NATS,
package org.onap.ccsdk.cds.blueprintsprocessor.nats
import org.junit.Test
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.getInput
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.relationshipTypeConnectsTo
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.serviceTemplate
}
}
}
-
- relationshipTypes(
- arrayListOf(
- BluePrintTypes.relationshipTypeConnectsToNats(),
- BluePrintTypes.relationshipTypeConnectsTo()
- )
- )
+ relationshipTypeConnectsToNats()
+ relationshipTypeConnectsTo()
}
+ // println(serviceTemplate.asJsonString(true))
assertNotNull(serviceTemplate, "failed to create service template")
val relationshipTemplates = serviceTemplate.topologyTemplate?.relationshipTemplates
assertNotNull(relationshipTemplates, "failed to get relationship templates")
assertEquals(2, relationshipTemplates.size, "relationshipTemplates doesn't match")
assertNotNull(relationshipTemplates["sample-token-auth"], "failed to get sample-token-auth")
assertNotNull(relationshipTemplates["sample-tls-auth"], "failed to get sample-tls-auth")
- // println(serviceTemplate.asJsonString(true))
+
+ val relationshipTypes = serviceTemplate.relationshipTypes
+ assertNotNull(relationshipTypes, "failed to get relationship types")
+ assertEquals(2, relationshipTypes.size, "relationshipTypes doesn't match")
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO}"
+ )
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_NATS],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_NATS}"
+ )
}
}
import org.onap.ccsdk.cds.controllerblueprints.core.data.RelationshipType
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.PropertiesAssignmentBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.RelationshipTemplateBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.ServiceTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.TopologyTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.relationshipType
/** Relationships Type DSL for Rest */
+fun ServiceTemplateBuilder.relationshipTypeConnectsToRestClient() {
+ val relationshipType = BluePrintTypes.relationshipTypeConnectsToRestClient()
+ if (this.relationshipTypes == null) this.relationshipTypes = hashMapOf()
+ this.relationshipTypes!![relationshipType.id!!] = relationshipType
+}
+
fun BluePrintTypes.relationshipTypeConnectsToRestClient(): RelationshipType {
return relationshipType(
id = BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_REST_CLIENT,
import org.junit.Test
import org.onap.ccsdk.cds.blueprintsprocessor.rest.relationshipTemplateRestClient
import org.onap.ccsdk.cds.blueprintsprocessor.rest.relationshipTypeConnectsToRestClient
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.relationshipTypeConnectsTo
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.serviceTemplate
import kotlin.test.assertEquals
}
}
}
- relationshipTypes(
- arrayListOf(
- BluePrintTypes.relationshipTypeConnectsToRestClient(),
- BluePrintTypes.relationshipTypeConnectsTo()
- )
- )
+ relationshipTypeConnectsToRestClient()
+ relationshipTypeConnectsTo()
}
// println(serviceTemplate.asJsonString(true))
assertNotNull(relationshipTemplates["sample-basic-auth"], "failed to get sample-basic-auth")
assertNotNull(relationshipTemplates["sample-token-auth"], "failed to get sample-token-auth")
assertNotNull(relationshipTemplates["sample-ssl-auth"], "failed to get sample-ssl-auth")
+
+ val relationshipTypes = serviceTemplate.relationshipTypes
+ assertNotNull(relationshipTypes, "failed to get relationship types")
+ assertEquals(2, relationshipTypes.size, "relationshipTypes doesn't match")
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO}"
+ )
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_REST_CLIENT],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_REST_CLIENT}"
+ )
}
}
import org.onap.ccsdk.cds.controllerblueprints.core.data.RelationshipType
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.PropertiesAssignmentBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.RelationshipTemplateBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.ServiceTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.TopologyTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.relationshipType
/** Relationships Types DSL for Message Producer */
+fun ServiceTemplateBuilder.relationshipTypeConnectsToSshClient() {
+ val relationshipType = BluePrintTypes.relationshipTypeConnectsToSshClient()
+ if (this.relationshipTypes == null) this.relationshipTypes = hashMapOf()
+ this.relationshipTypes!![relationshipType.id!!] = relationshipType
+}
+
fun BluePrintTypes.relationshipTypeConnectsToSshClient(): RelationshipType {
return relationshipType(
id = BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_SSH_CLIENT,
package org.onap.ccsdk.cds.blueprintsprocessor.ssh
import org.junit.Test
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.relationshipTypeConnectsTo
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.serviceTemplate
import kotlin.test.assertEquals
}
}
}
- relationshipTypes(
- arrayListOf(
- BluePrintTypes.relationshipTypeConnectsToSshClient(),
- BluePrintTypes.relationshipTypeConnectsTo()
- )
- )
+ relationshipTypeConnectsToSshClient()
+ relationshipTypeConnectsTo()
}
+ // println(serviceTemplate.asJsonString(true))
assertNotNull(serviceTemplate, "failed to create service template")
val relationshipTemplates = serviceTemplate.topologyTemplate?.relationshipTemplates
assertNotNull(relationshipTemplates, "failed to get relationship templates")
assertEquals(1, relationshipTemplates.size, "relationshipTemplates doesn't match")
assertNotNull(relationshipTemplates["sample-basic-auth"], "failed to get sample-basic-auth")
- // println(serviceTemplate.asJsonString(true))
+
+ val relationshipTypes = serviceTemplate.relationshipTypes
+ assertNotNull(relationshipTypes, "failed to get relationship types")
+ assertEquals(2, relationshipTypes.size, "relationshipTypes doesn't match")
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO}"
+ )
+ assertNotNull(
+ relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_SSH_CLIENT],
+ "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_SSH_CLIENT}"
+ )
}
}
import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeType
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.AbstractNodeTemplateOperationImplBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.PropertiesAssignmentBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.ServiceTemplateBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.TopologyTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.nodeType
/** Component Extensions **/
+fun ServiceTemplateBuilder.nodeTypeComponentRemoteScriptExecutor() {
+ val nodeType = BluePrintTypes.nodeTypeComponentRemoteScriptExecutor()
+ if (this.nodeTypes == null) this.nodeTypes = hashMapOf()
+ this.nodeTypes!![nodeType.id!!] = nodeType
+}
fun BluePrintTypes.nodeTypeComponentRemoteScriptExecutor(): NodeType {
return nodeType(
}
/** Component Builder */
+fun TopologyTemplateBuilder.nodeTemplateComponentRemoteScriptExecutor(
+ id: String,
+ description: String,
+ block: ComponentRemoteScriptExecutorNodeTemplateBuilder.() -> Unit
+) {
+ val nodeTemplate = BluePrintTypes.nodeTemplateComponentRemoteScriptExecutor(
+ id, description,
+ block
+ )
+ if (nodeTemplates == null) nodeTemplates = hashMapOf()
+ nodeTemplates!![nodeTemplate.id!!] = nodeTemplate
+}
+
fun BluePrintTypes.nodeTemplateComponentRemoteScriptExecutor(
id: String,
description: String,
block: ComponentRemoteScriptExecutorNodeTemplateBuilder.() -> Unit
-):
- NodeTemplate {
+): NodeTemplate {
return ComponentRemoteScriptExecutorNodeTemplateBuilder(id, description).apply(block).build()
}
import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeType
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.AbstractNodeTemplateOperationImplBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.PropertiesAssignmentBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.ServiceTemplateBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.TopologyTemplateBuilder
import org.onap.ccsdk.cds.controllerblueprints.core.dsl.nodeType
import kotlin.reflect.KClass
/** Component Extensions **/
+fun ServiceTemplateBuilder.nodeTypeComponentScriptExecutor() {
+ val nodeType = BluePrintTypes.nodeTypeComponentScriptExecutor()
+ if (this.nodeTypes == null) this.nodeTypes = hashMapOf()
+ this.nodeTypes!![nodeType.id!!] = nodeType
+}
fun BluePrintTypes.nodeTypeComponentScriptExecutor(): NodeType {
return nodeType(
}
/** Component Builder */
+fun TopologyTemplateBuilder.nodeTemplateComponentScriptExecutor(
+ id: String,
+ description: String,
+ block: ComponentScriptExecutorNodeTemplateBuilder.() -> Unit
+) {
+ val nodeTemplate = BluePrintTypes.nodeTemplateComponentScriptExecutor(
+ id, description,
+ block
+ )
+ if (nodeTemplates == null) nodeTemplates = hashMapOf()
+ nodeTemplates!![nodeTemplate.id!!] = nodeTemplate
+}
+
fun BluePrintTypes.nodeTemplateComponentScriptExecutor(
id: String,
description: String,
block: ComponentScriptExecutorNodeTemplateBuilder.() -> Unit
-):
- NodeTemplate {
+): NodeTemplate {
return ComponentScriptExecutorNodeTemplateBuilder(id, description).apply(block).build()
}
class ComponentScriptExecutorNodeTemplateBuilder(id: String, description: String) :
AbstractNodeTemplateOperationImplBuilder<PropertiesAssignmentBuilder,
- ComponentScriptExecutorNodeTemplateBuilder.InputsBuilder,
- ComponentScriptExecutorNodeTemplateBuilder.OutputsBuilder>(
+ ComponentScriptExecutorNodeTemplateBuilder.InputsBuilder,
+ ComponentScriptExecutorNodeTemplateBuilder.OutputsBuilder>(
id, "component-script-executor",
"ComponentScriptExecutor",
description
scriptClassReference(scriptClassReference.qualifiedName!!)
}
- fun scriptClassReference(scriptClassReference: String) = scriptClassReference(scriptClassReference.asJsonPrimitive())
+ fun scriptClassReference(scriptClassReference: String) =
+ scriptClassReference(scriptClassReference.asJsonPrimitive())
fun scriptClassReference(scriptClassReference: JsonNode) {
property(ComponentScriptExecutor.INPUT_SCRIPT_CLASS_REFERENCE, scriptClassReference)
import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive
import org.onap.ccsdk.cds.controllerblueprints.core.data.Implementation
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.serviceTemplate
import org.onap.ccsdk.cds.controllerblueprints.core.jsonAsJsonType
import org.onap.ccsdk.cds.controllerblueprints.core.normalizedPathName
import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext
@Test
fun testNodeTemplateComponentRemoteScriptExecutor() {
- val nodeTemplate = BluePrintTypes.nodeTemplateComponentRemoteScriptExecutor(
- "remote-sample",
- "This is sample node template"
- ) {
- definedOperation(" Sample Operation") {
- implementation(180, "SELF")
- inputs {
- selector("remote-script-executor")
- blueprintName("sample")
- blueprintVersion("1.0.0")
- blueprintAction("sample-action")
- timeout(120)
- requestData("""{"key" :"value"}""")
- }
- outputs {
- status("success")
+ val serviceTemplate = serviceTemplate("remote-script-dsl", "1.0.0", "xx@xx.com", "remote-script-ds") {
+ topologyTemplate {
+ nodeTemplateComponentRemoteScriptExecutor(
+ "remote-sample",
+ "This is sample node template"
+ ) {
+ definedOperation(" Sample Operation") {
+ implementation(180, "SELF")
+ inputs {
+ selector("remote-script-executor")
+ blueprintName("sample")
+ blueprintVersion("1.0.0")
+ blueprintAction("sample-action")
+ timeout(120)
+ requestData("""{"key" :"value"}""")
+ }
+ outputs {
+ status("success")
+ }
+ }
}
}
+ nodeTypeComponentRemoteScriptExecutor()
}
- assertNotNull(nodeTemplate, "failed to generate nodeTemplate Component Remote Script Executor")
+ // println(serviceTemplate.asJsonString(true))
+ assertNotNull(serviceTemplate, "failed to service template")
+ assertNotNull(serviceTemplate.nodeTypes, "failed to service template node Types")
+ assertNotNull(
+ serviceTemplate.nodeTypes!!["component-remote-script-executor"],
+ "failed to service template nodeType(component-remote-script-executor)"
+ )
+ assertNotNull(
+ serviceTemplate.topologyTemplate?.nodeTemplates?.get("remote-sample"),
+ "failed to nodeTemplate(remote-sample)"
+ )
}
@Test
val mockStreamingRemoteExecutionService = mockk<StreamingRemoteExecutionService<
org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput,
- org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput>>()
+ ExecutionServiceOutput>>()
coEvery {
mockStreamingRemoteExecutionService.sendNonInteractive(
--- /dev/null
+/*
+ * Copyright © 2018-2019 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.cds.blueprintsprocessor.services.execution
+
+import org.junit.Test
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.serviceTemplate
+import kotlin.test.assertNotNull
+
+class ComponentScriptExecutorDSLTest {
+
+ @Test
+ fun nodeTemplateComponentScriptExecutor() {
+
+ val serviceTemplate = serviceTemplate("remote-script-dsl", "1.0.0", "xx@xx.com", "remote-script-ds") {
+ topologyTemplate {
+ nodeTemplateComponentScriptExecutor(
+ "script-sample",
+ "This is sample node template"
+ ) {
+ definedOperation(" Sample Operation") {
+ implementation(180, "SELF")
+ inputs {
+ type("kotlin")
+ scriptClassReference("cba.sample.Processor")
+ dynamicProperties("*dynamic-inputs")
+ }
+ outputs {
+ status("success")
+ }
+ }
+ }
+ }
+ nodeTypeComponentScriptExecutor()
+ }
+
+ // println(serviceTemplate.asJsonString(true))
+ assertNotNull(serviceTemplate, "failed to service template")
+ assertNotNull(serviceTemplate.nodeTypes, "failed to service template node Types")
+ assertNotNull(
+ serviceTemplate.nodeTypes!!["component-script-executor"],
+ "failed to service template nodeType(component-script-executor)"
+ )
+ assertNotNull(
+ serviceTemplate.topologyTemplate?.nodeTemplates?.get("script-sample"),
+ "failed to nodeTemplate(script-sample)"
+ )
+ }
+}