const val TOSCA_SCRIPTS_KOTLIN_DIR: String = "$TOSCA_SCRIPTS_DIR/kotlin"
const val TOSCA_SCRIPTS_JYTHON_DIR: String = "$TOSCA_SCRIPTS_DIR/python"
- const val METADATA_USER_GROUPS = "user-groups"
+ const val PROPERTY_ENV = "ENV"
+ const val PROPERTY_APP = "APP"
+ const val PROPERTY_BPP = "BPP"
+ const val PROPERTY_SELF = "SELF"
+
const val METADATA_TEMPLATE_NAME = "template_name"
const val METADATA_TEMPLATE_VERSION = "template_version"
const val METADATA_TEMPLATE_AUTHOR = "template_author"
const val PROPERTY_CURRENT_IMPLEMENTATION = "current-implementation"
const val PROPERTY_EXECUTION_REQUEST = "execution-request"
- const val OPERATION_PROCESS = "process"
- const val OPERATION_PREPARE = "prepare"
-
- const val BLUEPRINT_RETRIEVE_TYPE_DB = "db"
- const val BLUEPRINT_RETRIEVE_TYPE_FILE = "file"
- const val BLUEPRINT_RETRIEVE_TYPE_REPO = "repo"
}
\ No newline at end of file
fun setBluePrintError(bluePrintError: BluePrintError)
- fun loadEnvironments(fileName: String)
+ fun loadEnvironments(type: String, fileName: String)
fun resolveNodeTemplatePropertyAssignments(nodeTemplateName: String,
propertyDefinitions: MutableMap<String, PropertyDefinition>,
init {
/**
- * Load Default Environments Properties
+ * Load Blueprint Environments Properties
*/
val absoluteEnvFilePath = bluePrintContext.rootPath.plus(File.separator)
.plus(BluePrintConstants.TOSCA_ENVIRONMENTS_DIR)
- loadEnvironments(absoluteEnvFilePath)
+ loadEnvironments(BluePrintConstants.PROPERTY_BPP, absoluteEnvFilePath)
}
this.bluePrintError = bluePrintError
}
- override fun loadEnvironments(fileName: String) {
+ override fun loadEnvironments(type: String, fileName: String) {
BluePrintMetadataUtils.environmentFileProperties(fileName).forEach { key, value ->
- setNodeTemplateAttributeValue("ENV", key.toString(), value.toString().asJsonPrimitive())
+ setNodeTemplateAttributeValue(type, key.toString(), value.toString()
+ .asJsonPrimitive())
}
}
import com.fasterxml.jackson.databind.node.NullNode
import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants
import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException
+import org.onap.ccsdk.apps.controllerblueprints.core.asJsonPrimitive
import org.onap.ccsdk.apps.controllerblueprints.core.data.*
import org.onap.ccsdk.apps.controllerblueprints.core.format
import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils
val subAttributeName: String? = attributeExpression.subAttributeName
var attributeNodeTemplateName = nodeTemplateName
+ /**
+ * Attributes are dynamic runtime properties information. There are multiple types of Attributes,
+ * ENV : Environment Variables
+ * APP : Application properties ( ie Spring resolved properties )
+ * BPP : Blueprint Properties, Specific to Blue Print execution.
+ * SELF : Current Node Template properties.
+ */
when (attributeExpression.modelableEntityName) {
- "ENV" -> {
+ BluePrintConstants.PROPERTY_ENV -> {
val environmentValue = System.getProperty(attributeName)
- valueNode = JacksonUtils.jsonNode(environmentValue)
+ valueNode = environmentValue.asJsonPrimitive()
+ }
+ BluePrintConstants.PROPERTY_APP -> {
+ TODO("Get property from application properties")
+ }
+ BluePrintConstants.PROPERTY_BPP -> {
+ valueNode = bluePrintRuntimeService.getNodeTemplateAttributeValue(BluePrintConstants.PROPERTY_BPP, attributeName)
+ ?: throw BluePrintException("failed to get env attribute name ($attributeName) ")
}
else -> {
- if (!attributeExpression.modelableEntityName.equals("SELF", true)) {
+ if (!attributeExpression.modelableEntityName.equals(BluePrintConstants.PROPERTY_SELF, true)) {
attributeNodeTemplateName = attributeExpression.modelableEntityName
}
val subPropertyName: String? = propertyExpression.subPropertyName
var propertyNodeTemplateName = nodeTemplateName
- if (!propertyExpression.modelableEntityName.equals("SELF", true)) {
+
+ if (!propertyExpression.modelableEntityName.equals(BluePrintConstants.PROPERTY_SELF, true)) {
propertyNodeTemplateName = propertyExpression.modelableEntityName
}