aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/api/api.rst30
-rw-r--r--docs/api/swagger/nodetemplates-api.json1742
-rw-r--r--docs/development/devtools/acm-participants-smoke.rst (renamed from docs/development/devtools/cl-participants-smoke.rst)75
-rw-r--r--docs/development/devtools/clamp-smoke.rst125
-rw-r--r--docs/development/devtools/json/acm-instantiation.json (renamed from docs/development/devtools/json/cl-instantiation.json)18
-rw-r--r--docs/development/devtools/tosca/smoke-test-participants.yaml68
6 files changed, 1947 insertions, 111 deletions
diff --git a/docs/api/api.rst b/docs/api/api.rst
index 8b0ae3e8..5aa38853 100644
--- a/docs/api/api.rst
+++ b/docs/api/api.rst
@@ -181,6 +181,7 @@ Global API Table
"Statistics API", ":download:`link <swagger/statistics-api.json>`"
"Tosca Policy Type API", ":download:`link <swagger/policytype-api.json>`"
"Tosca Policy API", ":download:`link <swagger/policy-api.json>`"
+ "Tosca NodeTemplate API", ":download:`link <swagger/nodetemplates-api.json>`"
API Swagger
-----------
@@ -217,6 +218,35 @@ x-onap-requestid is used to track REST transactions for logging purpose, as desc
.. swaggerv2doc:: swagger/policy-api.json
+
+Creating MetadataSet for policy
+--------------------------------
+
+The policy type implementation in tosca policy can be independently persisted to the database as metadataSets via the Tosca node template Apis .
+The policy type implementation data can be excluded from the policy properties section of the tosca policy and the user can specify only the "metadataSetName" and "metadataSetVersion"
+fields under the policy "metadata" section to map a specific policy type implementation to the policy during the policy creation.
+
+The following sample tosca service template comprises a list of tosca node templates each containing a policy type implementation data in the form of metadataSet that can be persisted to the database independently using the policy node template Api.
+
+.. csv-table::
+ :header: "Tosca node template", "Payload"
+ :widths: 15,10
+
+ "sample.nodetemplates.metadatasets", `nodetemplates.metadatasets.input.tosca.yaml <https://github.com/onap/policy-models/blob/master/models-examples/src/main/resources/nodetemplates/nodetemplates.metadatasets.input.tosca.yaml>`_ `nodetemplates.metadatasets.input.tosca.json <https://github.com/onap/policy-models/blob/master/models-examples/src/main/resources/nodetemplates/nodetemplates.metadatasets.input.tosca.json>`_
+
+
+The following sample tosca policy shows the policy metadata section that maps to one of the metadataSets stored in the database prior to the policy creation.
+
+.. csv-table::
+ :header: "Tosca policy", "Payload"
+ :widths: 15,10
+
+ "apex.decisionmaker.policy", `apex.policy.decisionmaker.input.tosca.yaml <https://github.com/onap/policy-models/blob/master/models-examples/src/main/resources/policies/apex.policy.decisionmaker.input.tosca.yaml>`_
+
+The following node template Apis are introduced to handle the policy metadataSets as independent entities that can be later mapped to a tosca policy during policy creation.
+
+.. swaggerv2doc:: swagger/nodetemplates-api.json
+
When making a POST policy API call, the client must not only provide well-formed JSON/YAML,
but also must conform to the TOSCA specification. For example. the "type" field for a TOSCA
policy should strictly match the policy type name it derives.
diff --git a/docs/api/swagger/nodetemplates-api.json b/docs/api/swagger/nodetemplates-api.json
new file mode 100644
index 00000000..bd8ed48e
--- /dev/null
+++ b/docs/api/swagger/nodetemplates-api.json
@@ -0,0 +1,1742 @@
+{
+ "swagger": "2.0",
+ "basePath": "/",
+ "tags": [
+ {
+ "name": "nodeTemplate"
+ }
+ ],
+ "schemes": [
+ "http",
+ "https"
+ ],
+ "paths": {
+ "/policy/api/v1/nodetemplates":{
+ "get":{
+ "tags":[
+ "nodeTemplates"
+ ],
+ "summary":"Retrieve all the available tosca node templates",
+ "description":"Returns all the node templates from the service template",
+ "operationId":"getAllNodeTemplatesUsingGET",
+ "produces":[
+ "application/json",
+ "application/yaml"
+ ],
+ "parameters":[
+ {
+ "name":"X-ONAP-RequestID",
+ "in":"header",
+ "description":"RequestID for http transaction",
+ "required":false,
+ "type":"string",
+ "format":"uuid"
+ }
+ ],
+ "responses":{
+ "200":{
+ "description":"OK",
+ "schema":{
+ "type":"array",
+ "items":{
+ "$ref":"#/definitions/ToscaNodeTemplateRes",
+ "originalRef":"ToscaNodeTemplateRes"
+ }
+ }
+ },
+ "401":{
+ "description":"Authentication Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "403":{
+ "description":"Authorization Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "404":{
+ "description":"Resource Not Found",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "500":{
+ "description":"Internal Server Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ }
+ },
+ "security":[
+ {
+ "basicAuth":[
+
+ ]
+ }
+ ],
+ "x-interface info":{
+ "api-version":"1.0.0",
+ "last-mod-release":"Jakarta"
+ }
+ },
+ "post":{
+ "tags":[
+ "nodeTemplate"
+ ],
+ "summary":"Create one or more new node templates",
+ "description":"Client should provide TOSCA body of the new node templates",
+ "operationId":"createToscaNodeTemplatesUsingPOST",
+ "consumes":[
+ "application/json"
+ ],
+ "produces":[
+ "application/json",
+ "application/yaml"
+ ],
+ "parameters":[
+ {
+ "in":"body",
+ "name":"body",
+ "description":"Entity body of tosca node templates",
+ "required":true,
+ "schema":{
+ "$ref":"#/definitions/ToscaServiceTemplateReq",
+ "originalRef":"ToscaServiceTemplateReq"
+ }
+ },
+ {
+ "name":"X-ONAP-RequestID",
+ "in":"header",
+ "description":"RequestID for http transaction",
+ "required":false,
+ "type":"string",
+ "format":"uuid"
+ }
+ ],
+ "responses":{
+ "200":{
+ "description":"OK",
+ "schema":{
+ "$ref":"#/definitions/ToscaServiceTemplateRes",
+ "originalRef":"ToscaServiceTemplateRes"
+ }
+ },
+ "201":{
+ "description":"Created"
+ },
+ "400":{
+ "description":"Invalid Body",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "401":{
+ "description":"Authentication Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "403":{
+ "description":"Authorization Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "404":{
+ "description":"Resource Not Found",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "406":{
+ "description":"Not Acceptable Payload",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "500":{
+ "description":"Internal Server Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ }
+ },
+ "security":[
+ {
+ "basicAuth":[
+
+ ]
+ }
+ ],
+ "x-interface info":{
+ "api-version":"1.0.0",
+ "last-mod-release":"Jakarta"
+ }
+ },
+ "put":{
+ "tags":[
+ "nodeTemplate"
+ ],
+ "summary":"Updates one or more new node templates",
+ "description":"Client should provide TOSCA body of the updated node templates",
+ "operationId":"updateToscaNodeTemplatesUsingPUT",
+ "consumes":[
+ "application/json"
+ ],
+ "produces":[
+ "application/json",
+ "application/yaml"
+ ],
+ "parameters":[
+ {
+ "in":"body",
+ "name":"body",
+ "description":"Entity body of tosca node templates",
+ "required":true,
+ "schema":{
+ "$ref":"#/definitions/ToscaServiceTemplateReq",
+ "originalRef":"ToscaServiceTemplateReq"
+ }
+ },
+ {
+ "name":"X-ONAP-RequestID",
+ "in":"header",
+ "description":"RequestID for http transaction",
+ "required":false,
+ "type":"string",
+ "format":"uuid"
+ }
+ ],
+ "responses":{
+ "200":{
+ "description":"OK",
+ "schema":{
+ "$ref":"#/definitions/ToscaServiceTemplateRes",
+ "originalRef":"ToscaServiceTemplateRes"
+ }
+ },
+ "201":{
+ "description":"Created"
+ },
+ "400":{
+ "description":"Invalid Body",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "401":{
+ "description":"Authentication Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "403":{
+ "description":"Authorization Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "404":{
+ "description":"Resource Not Found",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "406":{
+ "description":"Not Acceptable Payload",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "500":{
+ "description":"Internal Server Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ }
+ },
+ "security":[
+ {
+ "basicAuth":[
+
+ ]
+ }
+ ],
+ "x-interface info":{
+ "api-version":"1.0.0",
+ "last-mod-release":"Jakarta"
+ }
+ }
+ },
+ "/policy/api/v1/nodetemplates/{name}/versions/{version}":{
+ "get":{
+ "tags":[
+ "nodeTemplates"
+ ],
+ "summary":"Retrieve one version of a tosca node template",
+ "description":"Returns a particular version of a node template",
+ "operationId":"getSpecificVersionOfNodeTemplateUsingGET",
+ "produces":[
+ "application/json",
+ "application/yaml"
+ ],
+ "parameters":[
+ {
+ "name":"name",
+ "in":"path",
+ "description":"Name of the node template",
+ "required":true,
+ "type":"string"
+ },
+ {
+ "name":"version",
+ "in":"path",
+ "description":"Version of the node template",
+ "required":true,
+ "type":"string"
+ },
+ {
+ "name":"X-ONAP-RequestID",
+ "in":"header",
+ "description":"RequestID for http transaction",
+ "required":false,
+ "type":"string",
+ "format":"uuid"
+ }
+ ],
+ "responses":{
+ "200":{
+ "description":"OK",
+ "schema":{
+ "type":"array",
+ "items":{
+ "$ref":"#/definitions/ToscaNodeTemplateRes",
+ "originalRef":"ToscaNodeTemplateRes"
+ }
+ }
+ },
+ "401":{
+ "description":"Authentication Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "403":{
+ "description":"Authorization Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "404":{
+ "description":"Resource Not Found",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "500":{
+ "description":"Internal Server Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ }
+ },
+ "security":[
+ {
+ "basicAuth":[
+
+ ]
+ }
+ ],
+ "x-interface info":{
+ "api-version":"1.0.0",
+ "last-mod-release":"Jakarta"
+ }
+ },
+ "delete":{
+ "tags":[
+ "nodeTemplate"
+ ],
+ "summary":"Deletes a specific node templates",
+ "description":"Client should provide the name and version of the node template to be deleted",
+ "operationId":"deleteToscaNodeTemplatesUsingDELETE",
+ "produces":[
+ "application/json",
+ "application/yaml"
+ ],
+ "parameters":[
+ {
+ "name":"name",
+ "in":"path",
+ "description":"Name of the node template",
+ "required":true,
+ "type":"string"
+ },
+ {
+ "name":"version",
+ "in":"path",
+ "description":"Version of the node template",
+ "required":true,
+ "type":"string"
+ },
+ {
+ "name":"X-ONAP-RequestID",
+ "in":"header",
+ "description":"RequestID for http transaction",
+ "required":false,
+ "type":"string",
+ "format":"uuid"
+ }
+ ],
+ "responses":{
+ "200":{
+ "description":"OK",
+ "schema":{
+ "$ref":"#/definitions/ToscaServiceTemplateRes",
+ "originalRef":"ToscaServiceTemplateRes"
+ }
+ },
+ "204":{
+ "description":"No Content"
+ },
+ "400":{
+ "description":"Invalid Body",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "401":{
+ "description":"Authentication Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "403":{
+ "description":"Authorization Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "404":{
+ "description":"Resource Not Found",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "406":{
+ "description":"Not Acceptable Payload",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ },
+ "500":{
+ "description":"Internal Server Error",
+ "headers":{
+ "X-LatestVersion":{
+ "type":"string"
+ },
+ "X-PatchVersion":{
+ "type":"string"
+ },
+ "X-MinorVersion":{
+ "type":"string"
+ },
+ "X-ONAP-RequestID":{
+ "type":"string",
+ "format":"uuid"
+ }
+ }
+ }
+ },
+ "security":[
+ {
+ "basicAuth":[
+
+ ]
+ }
+ ],
+ "x-interface info":{
+ "api-version":"1.0.0",
+ "last-mod-release":"Jakarta"
+ }
+ }
+ }
+ },
+ "definitions": {
+
+ "ToscaCapabilityAssignmentReq":{
+ "type":"object",
+ "properties":{
+ "attributes":{
+ "type":"object"
+ },
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "occurrences":{
+ "type":"array",
+ "items":{
+ "type":"object"
+ }
+ },
+ "properties":{
+ "type":"object"
+ },
+ "type":{
+ "type":"string"
+ },
+ "typeVersion":{
+ "type":"string"
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaCapabilityAssignmentReq"
+ },
+ "ToscaCapabilityAssignmentRes":{
+ "type":"object",
+ "properties":{
+ "attributes":{
+ "type":"object"
+ },
+ "definedName":{
+ "type":"string"
+ },
+ "definedVersion":{
+ "type":"string"
+ },
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "identifier":{
+ "$ref":"#/definitions/ToscaConceptIdentifier",
+ "originalRef":"ToscaConceptIdentifier"
+ },
+ "key":{
+ "$ref":"#/definitions/ToscaEntityKey",
+ "originalRef":"ToscaEntityKey"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "occurrences":{
+ "type":"array",
+ "items":{
+ "type":"object"
+ }
+ },
+ "properties":{
+ "type":"object"
+ },
+ "type":{
+ "type":"string"
+ },
+ "typeIdentifier":{
+ "$ref":"#/definitions/ToscaConceptIdentifier",
+ "originalRef":"ToscaConceptIdentifier"
+ },
+ "typeVersion":{
+ "type":"string"
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaCapabilityAssignmentRes"
+ },
+ "ToscaCapabilityTypeReq":{
+ "type":"object",
+ "properties":{
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "properties":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaProperty",
+ "originalRef":"ToscaProperty"
+ }
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaCapabilityTypeReq"
+ },
+ "ToscaCapabilityTypeRes":{
+ "type":"object",
+ "properties":{
+ "definedName":{
+ "type":"string"
+ },
+ "definedVersion":{
+ "type":"string"
+ },
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "key":{
+ "$ref":"#/definitions/ToscaEntityKey",
+ "originalRef":"ToscaEntityKey"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "properties":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaProperty",
+ "originalRef":"ToscaProperty"
+ }
+ },
+ "type":{
+ "type":"string"
+ },
+ "typeVersion":{
+ "type":"string"
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaCapabilityTypeRes"
+ },
+ "ToscaConceptIdentifier":{
+ "type":"object",
+ "properties":{
+ "name":{
+ "type":"string"
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaConceptIdentifier"
+ },
+ "ToscaConstraint":{
+ "type":"object",
+ "properties":{
+ "equal":{
+ "type":"string"
+ },
+ "greaterOrEqual":{
+ "type":"string"
+ },
+ "greaterThan":{
+ "type":"string"
+ },
+ "lessOrEqual":{
+ "type":"string"
+ },
+ "lessThan":{
+ "type":"string"
+ },
+ "rangeValues":{
+ "type":"array",
+ "items":{
+ "type":"string"
+ }
+ },
+ "validValues":{
+ "type":"array",
+ "items":{
+ "type":"string"
+ }
+ }
+ },
+ "title":"ToscaConstraint"
+ },
+ "ToscaDataTypeReq":{
+ "type":"object",
+ "properties":{
+ "constraints":{
+ "type":"array",
+ "items":{
+ "$ref":"#/definitions/ToscaConstraint",
+ "originalRef":"ToscaConstraint"
+ }
+ },
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "properties":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaProperty",
+ "originalRef":"ToscaProperty"
+ }
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaDataTypeReq"
+ },
+ "ToscaDataTypeRes":{
+ "type":"object",
+ "properties":{
+ "constraints":{
+ "type":"array",
+ "items":{
+ "$ref":"#/definitions/ToscaConstraint",
+ "originalRef":"ToscaConstraint"
+ }
+ },
+ "definedName":{
+ "type":"string"
+ },
+ "definedVersion":{
+ "type":"string"
+ },
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "key":{
+ "$ref":"#/definitions/ToscaEntityKey",
+ "originalRef":"ToscaEntityKey"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "properties":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaProperty",
+ "originalRef":"ToscaProperty"
+ }
+ },
+ "type":{
+ "type":"string"
+ },
+ "typeVersion":{
+ "type":"string"
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaDataTypeRes"
+ },
+ "ToscaEntityKey":{
+ "type":"object",
+ "properties":{
+ "name":{
+ "type":"string"
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaEntityKey"
+ },
+ "ToscaNodeTemplateReq":{
+ "type":"object",
+ "properties":{
+ "capabilities":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaCapabilityAssignmentReq",
+ "originalRef":"ToscaCapabilityAssignmentReq"
+ }
+ },
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "properties":{
+ "type":"object"
+ },
+ "requirements":{
+ "type":"array",
+ "items":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaRequirementReq",
+ "originalRef":"ToscaRequirementReq"
+ }
+ }
+ },
+ "type":{
+ "type":"string"
+ },
+ "typeVersion":{
+ "type":"string"
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaNodeTemplateReq"
+ },
+ "ToscaNodeTemplateRes":{
+ "type":"object",
+ "properties":{
+ "capabilities":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaCapabilityAssignmentRes",
+ "originalRef":"ToscaCapabilityAssignmentRes"
+ }
+ },
+ "definedName":{
+ "type":"string"
+ },
+ "definedVersion":{
+ "type":"string"
+ },
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "identifier":{
+ "$ref":"#/definitions/ToscaConceptIdentifier",
+ "originalRef":"ToscaConceptIdentifier"
+ },
+ "key":{
+ "$ref":"#/definitions/ToscaEntityKey",
+ "originalRef":"ToscaEntityKey"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "properties":{
+ "type":"object"
+ },
+ "requirements":{
+ "type":"array",
+ "items":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaRequirementRes",
+ "originalRef":"ToscaRequirementRes"
+ }
+ }
+ },
+ "type":{
+ "type":"string"
+ },
+ "typeIdentifier":{
+ "$ref":"#/definitions/ToscaConceptIdentifier",
+ "originalRef":"ToscaConceptIdentifier"
+ },
+ "typeVersion":{
+ "type":"string"
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaNodeTemplateRes"
+ },
+ "ToscaNodeTypeReq":{
+ "type":"object",
+ "properties":{
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "properties":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaProperty",
+ "originalRef":"ToscaProperty"
+ }
+ },
+ "requirements":{
+ "type":"array",
+ "items":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaRequirementReq",
+ "originalRef":"ToscaRequirementReq"
+ }
+ }
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaNodeTypeReq"
+ },
+ "ToscaNodeTypeRes":{
+ "type":"object",
+ "properties":{
+ "definedName":{
+ "type":"string"
+ },
+ "definedVersion":{
+ "type":"string"
+ },
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "key":{
+ "$ref":"#/definitions/ToscaEntityKey",
+ "originalRef":"ToscaEntityKey"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "properties":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaProperty",
+ "originalRef":"ToscaProperty"
+ }
+ },
+ "requirements":{
+ "type":"array",
+ "items":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaRequirementRes",
+ "originalRef":"ToscaRequirementRes"
+ }
+ }
+ },
+ "type":{
+ "type":"string"
+ },
+ "typeVersion":{
+ "type":"string"
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaNodeTypeRes"
+ },
+ "ToscaParameter":{
+ "type":"object",
+ "properties":{
+ "name":{
+ "type":"string"
+ },
+ "type":{
+ "type":"string"
+ },
+ "typeVersion":{
+ "type":"string"
+ },
+ "value":{
+ "type":"object"
+ }
+ },
+ "title":"ToscaParameter"
+ },
+ "ToscaProperty":{
+ "type":"object",
+ "properties":{
+ "constraints":{
+ "type":"array",
+ "items":{
+ "$ref":"#/definitions/ToscaConstraint",
+ "originalRef":"ToscaConstraint"
+ }
+ },
+ "defaultValue":{
+ "type":"object"
+ },
+ "description":{
+ "type":"string"
+ },
+ "entrySchema":{
+ "$ref":"#/definitions/ToscaSchemaDefinition",
+ "originalRef":"ToscaSchemaDefinition"
+ },
+ "keySchema":{
+ "$ref":"#/definitions/ToscaSchemaDefinition",
+ "originalRef":"ToscaSchemaDefinition"
+ },
+ "metadata":{
+ "type":"object",
+ "additionalProperties":{
+ "type":"string"
+ }
+ },
+ "name":{
+ "type":"string"
+ },
+ "required":{
+ "type":"boolean"
+ },
+ "status":{
+ "type":"string",
+ "enum":[
+ "DEPRECATED",
+ "EXPERIMENTAL",
+ "SUPPORTED",
+ "UNSUPPORTED"
+ ]
+ },
+ "type":{
+ "type":"string"
+ },
+ "typeVersion":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaProperty"
+ },
+ "ToscaRelationshipTypeReq":{
+ "type":"object",
+ "properties":{
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "properties":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaProperty",
+ "originalRef":"ToscaProperty"
+ }
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaRelationshipTypeReq"
+ },
+ "ToscaRelationshipTypeRes":{
+ "type":"object",
+ "properties":{
+ "definedName":{
+ "type":"string"
+ },
+ "definedVersion":{
+ "type":"string"
+ },
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "key":{
+ "$ref":"#/definitions/ToscaEntityKey",
+ "originalRef":"ToscaEntityKey"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "properties":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaProperty",
+ "originalRef":"ToscaProperty"
+ }
+ },
+ "type":{
+ "type":"string"
+ },
+ "typeVersion":{
+ "type":"string"
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaRelationshipTypeRes"
+ },
+ "ToscaRequirementReq":{
+ "type":"object",
+ "properties":{
+ "capability":{
+ "type":"string"
+ },
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "node":{
+ "type":"string"
+ },
+ "occurrences":{
+ "type":"array",
+ "items":{
+ "type":"object"
+ }
+ },
+ "properties":{
+ "type":"object"
+ },
+ "relationship":{
+ "type":"string"
+ },
+ "type":{
+ "type":"string"
+ },
+ "typeVersion":{
+ "type":"string"
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaRequirementReq"
+ },
+ "ToscaRequirementRes":{
+ "type":"object",
+ "properties":{
+ "capability":{
+ "type":"string"
+ },
+ "definedName":{
+ "type":"string"
+ },
+ "definedVersion":{
+ "type":"string"
+ },
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "identifier":{
+ "$ref":"#/definitions/ToscaConceptIdentifier",
+ "originalRef":"ToscaConceptIdentifier"
+ },
+ "key":{
+ "$ref":"#/definitions/ToscaEntityKey",
+ "originalRef":"ToscaEntityKey"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "node":{
+ "type":"string"
+ },
+ "occurrences":{
+ "type":"array",
+ "items":{
+ "type":"object"
+ }
+ },
+ "properties":{
+ "type":"object"
+ },
+ "relationship":{
+ "type":"string"
+ },
+ "type":{
+ "type":"string"
+ },
+ "typeIdentifier":{
+ "$ref":"#/definitions/ToscaConceptIdentifier",
+ "originalRef":"ToscaConceptIdentifier"
+ },
+ "typeVersion":{
+ "type":"string"
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaRequirementRes"
+ },
+ "ToscaSchemaDefinition":{
+ "type":"object",
+ "properties":{
+ "constraints":{
+ "type":"array",
+ "items":{
+ "$ref":"#/definitions/ToscaConstraint",
+ "originalRef":"ToscaConstraint"
+ }
+ },
+ "description":{
+ "type":"string"
+ },
+ "name":{
+ "type":"string"
+ },
+ "type":{
+ "type":"string"
+ },
+ "typeVersion":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaSchemaDefinition"
+ },
+ "ToscaServiceTemplateReq":{
+ "type":"object",
+ "properties":{
+ "capabilityTypes":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaCapabilityTypeReq",
+ "originalRef":"ToscaCapabilityTypeReq"
+ }
+ },
+ "dataTypes":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaDataTypeReq",
+ "originalRef":"ToscaDataTypeReq"
+ }
+ },
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "nodeTypes":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaNodeTypeReq",
+ "originalRef":"ToscaNodeTypeReq"
+ }
+ },
+ "relationshipTypes":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaRelationshipTypeReq",
+ "originalRef":"ToscaRelationshipTypeReq"
+ }
+ },
+ "toscaDefinitionsVersion":{
+ "type":"string"
+ },
+ "toscaTopologyTemplate":{
+ "$ref":"#/definitions/ToscaTopologyTemplateReq",
+ "originalRef":"ToscaTopologyTemplateReq"
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaServiceTemplateReq"
+ },
+ "ToscaServiceTemplateRes":{
+ "type":"object",
+ "properties":{
+ "capabilityTypes":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaCapabilityTypeRes",
+ "originalRef":"ToscaCapabilityTypeRes"
+ }
+ },
+ "dataTypes":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaDataTypeRes",
+ "originalRef":"ToscaDataTypeRes"
+ }
+ },
+ "dataTypesAsMap":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaDataTypeRes",
+ "originalRef":"ToscaDataTypeRes"
+ }
+ },
+ "definedName":{
+ "type":"string"
+ },
+ "definedVersion":{
+ "type":"string"
+ },
+ "derivedFrom":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "key":{
+ "$ref":"#/definitions/ToscaEntityKey",
+ "originalRef":"ToscaEntityKey"
+ },
+ "metadata":{
+ "type":"object"
+ },
+ "name":{
+ "type":"string"
+ },
+ "nodeTypes":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaNodeTypeRes",
+ "originalRef":"ToscaNodeTypeRes"
+ }
+ },
+ "relationshipTypes":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaRelationshipTypeRes",
+ "originalRef":"ToscaRelationshipTypeRes"
+ }
+ },
+ "toscaDefinitionsVersion":{
+ "type":"string"
+ },
+ "toscaTopologyTemplate":{
+ "$ref":"#/definitions/ToscaTopologyTemplateRes",
+ "originalRef":"ToscaTopologyTemplateRes"
+ },
+ "type":{
+ "type":"string"
+ },
+ "typeVersion":{
+ "type":"string"
+ },
+ "version":{
+ "type":"string"
+ }
+ },
+ "title":"ToscaServiceTemplateRes"
+ },
+ "ToscaTopologyTemplateReq":{
+ "type":"object",
+ "properties":{
+ "description":{
+ "type":"string"
+ },
+ "inputs":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaParameter",
+ "originalRef":"ToscaParameter"
+ }
+ },
+ "nodeTemplates":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaNodeTemplateReq",
+ "originalRef":"ToscaNodeTemplateReq"
+ }
+ }
+ },
+ "title":"ToscaTopologyTemplateReq"
+ },
+ "ToscaTopologyTemplateRes":{
+ "type":"object",
+ "properties":{
+ "description":{
+ "type":"string"
+ },
+ "inputs":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaParameter",
+ "originalRef":"ToscaParameter"
+ }
+ },
+ "nodeTemplates":{
+ "type":"object",
+ "additionalProperties":{
+ "$ref":"#/definitions/ToscaNodeTemplateRes",
+ "originalRef":"ToscaNodeTemplateRes"
+ }
+ }
+ },
+ "title":"ToscaTopologyTemplateRes"
+ }
+ }
+}
diff --git a/docs/development/devtools/cl-participants-smoke.rst b/docs/development/devtools/acm-participants-smoke.rst
index 202f5d75..3c5b6f88 100644
--- a/docs/development/devtools/cl-participants-smoke.rst
+++ b/docs/development/devtools/acm-participants-smoke.rst
@@ -1,6 +1,6 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. _clamp-controlloop-participants-smoke-tests:
+.. _clamp-acm-participants-smoke-tests:
CLAMP participants (kubernetes, http) Smoke Tests
-------------------------------------------------
@@ -8,7 +8,7 @@ CLAMP participants (kubernetes, http) Smoke Tests
***************
The CLAMP participants (kubernetes and http) are used to interact with the helm client in a kubernetes environment for the
deployment of microservices via helm chart as well as to configure the microservices over REST endpoints. Both of these participants are
-often used together in the Control loop workflow.
+often used together in the Automation Composition Management workflow.
This document will serve as a guide to do smoke tests on the different components that are involved when working with the participants and outline how they operate. It will also show a developer how to set up their environment for carrying out smoke tests on these participants.
@@ -53,19 +53,19 @@ In this setup guide, we will be setting up all the components technically requir
2.3.1 MariaDB Setup
^^^^^^^^^^^^^^^^^^^
-We will be using Docker to run our mariadb instance. It will have the runtime-controlloop database running in it.
+We will be using Docker to run our mariadb instance. It will have the acm-runtime database running in it.
-- controlloop: the runtime-controlloop db
+- AutomationComposition: the runtime-acm db
The easiest way to do this is to perform a small alteration on an SQL script provided by the clamp backend in the file "runtime/extra/sql/bulkload/create-db.sql"
.. code-block:: mysql
- CREATE DATABASE `controlloop`;
- USE `controlloop`;
+ CREATE DATABASE `clampacm`;
+ USE `clampacm`;
DROP USER 'policy';
CREATE USER 'policy';
- GRANT ALL on controlloop.* to 'policy' identified by 'P01icY' with GRANT OPTION;
+ GRANT ALL on clampacm.* to 'policy' identified by 'P01icY' with GRANT OPTION;
Once this has been done, we can run the bash script provided here: "runtime/extra/bin-for-dev/start-db.sh"
@@ -73,7 +73,7 @@ Once this has been done, we can run the bash script provided here: "runtime/extr
./start-db.sh
-This will setup all the Control Loop runtime database. The database will be exposed locally on port 3306 and will be backed by an anonymous docker volume.
+This will setup all the automation composition runtime database. The database will be exposed locally on port 3306 and will be backed by an anonymous docker volume.
2.3.2 DMAAP Simulator
^^^^^^^^^^^^^^^^^^^^^
@@ -109,9 +109,9 @@ For convenience, a dmaap simulator has been provided in the policy/models reposi
At this stage the dmaap simulator should be running on your local machine on port 3904.
-2.3.3 Controlloop Runtime
-^^^^^^^^^^^^^^^^^^^^^^^^^
-To start the controlloop runtime service, we need to execute the following maven command from the "runtime-controlloop" directory in the clamp repo. Control Loop runtime uses the config file "src/main/resources/application.yaml" by default.
+2.3.3 Automation composition Runtime
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+To start the automation composition runtime service, we need to execute the following maven command from the "runtime-acm" directory in the clamp repo. Automation composition runtime uses the config file "src/main/resources/application.yaml" by default.
.. code-block:: bash
@@ -129,7 +129,7 @@ The following command can be used to add nginx repository to the helm client.
2.3.5 Kubernetes and http participants
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The participants can be started from the clamp repository by executing the following maven command from the appropriate directories.
-The participants will be started and get registered to the Control Loop runtime.
+The participants will be started and get registered to the Automation composition runtime.
Navigate to the directory "participant/participant-impl/participant-impl-kubernetes/" and start kubernetes participant.
@@ -143,16 +143,23 @@ Navigate to the directory "participant/participant-impl/participant-impl-http/"
mvn spring-boot:run
+For building docker images of runtime-acm and participants:
+
+.. code-block:: bash
+
+ cd ~/git/onap/policy/clamp/packages/
+ mvn clean install -P docker
+
3. Running Tests
****************
-In this section, we will run through the sequence of steps in Control Loop workflow . The workflow can be triggered via Postman client.
+In this section, we will run through the sequence of steps in ACM workflow . The workflow can be triggered via Postman client.
3.1 Commissioning
=================
-Commission Control loop TOSCA definitions to Runtime.
+Commission Automation composition TOSCA definitions to Runtime.
-The Control Loop definitions are commissioned to CL runtime which populates the CL runtime database.
+The Automation composition definitions are commissioned to runtime-acm which populates the ACM runtime database.
The following sample TOSCA template is commissioned to the runtime endpoint which contains definitions for kubernetes participant that deploys nginx ingress microservice
helm chart and a http POST request for http participant.
@@ -162,41 +169,41 @@ Commissioning Endpoint:
.. code-block:: bash
- POST: https://<CL Runtime IP> : <Port> /onap/controlloop/v2/commission
+ POST: https://<Runtime ACM IP> : <Port> /onap/policy/clamp/acm/v2/commission
A successful commissioning gives 200 response in the postman client.
-3.2 Create New Instances of Control Loops
-=========================================
-Once the template is commissioned, we can instantiate Control Loop instances. This will create the instances with default state "UNINITIALISED".
+3.2 Create New Instances of Automation composition
+==================================================
+Once the template is commissioned, we can instantiate automation composition instances. This will create the instances with default state "UNINITIALISED".
Instantiation Endpoint:
.. code-block:: bash
- POST: https://<CL Runtime IP> : <Port> /onap/controlloop/v2/instantiation
+ POST: https://<Runtime ACM IP> : <Port> /onap/policy/clamp/acm/v2/instantiation
Request body:
-:download:`Instantiation json <json/cl-instantiation.json>`
+:download:`Instantiation json <json/acm-instantiation.json>`
3.3 Change the State of the Instance
====================================
-When the Control loop is updated with state “PASSIVE”, the Kubernetes participant fetches the node template for all control loop elements and deploys the helm chart of each CL element in to the cluster. The following sample json input is passed on the request body.
+When the automation composition is updated with state “PASSIVE”, the Kubernetes participant fetches the node template for all automation composition elements and deploys the helm chart of each AC element in to the cluster. The following sample json input is passed on the request body.
-Control Loop Update Endpoint:
+Automation Composition Update Endpoint:
.. code-block:: bash
- PUT: https://<CL Runtime IP> : <Port> /onap/controlloop/v2/instantiation/command
+ PUT: https://<Runtime ACM IP> : <Port> /onap/policy/clamp/acm/v2/instantiation/command
Request body:
.. code-block:: bash
{
"orderedState": "PASSIVE",
- "controlLoopIdentifierList": [
+ "automationCompositionIdentifierList": [
{
"name": "K8SInstance0",
"version": "1.0.1"
@@ -214,31 +221,31 @@ The following command can be used to verify the pods deployed successfully by ku
helm ls -n onap | grep nginx
kubectl get po -n onap | grep nginx
-The overall state of the control loop should be "PASSIVE" to indicate both the participants has successfully completed the operations. This can be verified by the following rest endpoint.
+The overall state of the automation composition should be "PASSIVE" to indicate both the participants has successfully completed the operations. This can be verified by the following rest endpoint.
-Verify control loop state:
+Verify automation composition state:
.. code-block:: bash
- GET: https://<CL Runtime IP> : <Port>/onap/controlloop/v2/instantiation
+ GET: https://<Runtime ACM IP> : <Port>/onap/policy/clamp/acm/v2/instantiation
-3.4 Control Loop can be "UNINITIALISED" after deployment
-========================================================
+3.4 Automation Compositions can be "UNINITIALISED" after deployment
+===================================================================
-By changing the state to "UNINITIALISED", all the helm deployments under the corresponding control loop will be uninstalled from the cluster.
-Control Loop Update Endpoint:
+By changing the state to "UNINITIALISED", all the helm deployments under the corresponding automation composition will be uninstalled from the cluster.
+Automation Composition Update Endpoint:
.. code-block:: bash
- PUT: https://<CL Runtime IP> : <Port> /onap/controlloop/v2/instantiation/command
+ PUT: https://<Runtime ACM IP> : <Port> /onap/policy/clamp/acm/v2/instantiation/command
Request body:
.. code-block:: bash
{
"orderedState": "UNINITIALISED",
- "controlLoopIdentifierList": [
+ "automationCompositionIdentifierList": [
{
"name": "K8SInstance0",
"version": "1.0.1"
diff --git a/docs/development/devtools/clamp-smoke.rst b/docs/development/devtools/clamp-smoke.rst
index 764c9ff2..80f8c3b7 100644
--- a/docs/development/devtools/clamp-smoke.rst
+++ b/docs/development/devtools/clamp-smoke.rst
@@ -4,14 +4,14 @@
.. _policy-clamp-runtime-smoke-label:
-CLAMP control loop runtime Smoke Tests
-######################################
+CLAMP Automation Composition Smoke Tests
+########################################
.. contents::
:depth: 3
-This article explains how to build the CLAMP control loop runtime for development purposes and how to run smoke tests for control loop runtime. To start, the developer should consult the latest ONAP Wiki to familiarize themselves with developer best practices and how-tos to setup their environment, see `https://wiki.onap.org/display/DW/Developer+Best+Practices`.
+This article explains how to build the CLAMP automation composition for development purposes and how to run smoke tests for automation composition. To start, the developer should consult the latest ONAP Wiki to familiarize themselves with developer best practices and how-tos to setup their environment, see `https://wiki.onap.org/display/DW/Developer+Best+Practices`.
This article assumes that:
@@ -24,10 +24,10 @@ This article assumes that:
The procedure documented in this article has been verified using Unbuntu 20.04 LTS VM.
-Cloning CLAMP control loop runtime and all dependency
-*****************************************************
+Cloning CLAMP automation composition and all dependency
+*******************************************************
-Run a script such as the script below to clone the required modules from the `ONAP git repository <https://gerrit.onap.org/r/#/admin/projects/?filter=policy>`_. This script clones CLAMP control loop runtime and all dependency.
+Run a script such as the script below to clone the required modules from the `ONAP git repository <https://gerrit.onap.org/r/#/admin/projects/?filter=policy>`_. This script clones CLAMP automation composition and all dependency.
ONAP Policy Framework has dependencies to the ONAP Parent *oparent* module, the ONAP ECOMP SDK *ecompsdkos* module, and the A&AI Schema module.
@@ -142,8 +142,8 @@ Execution of the script above results in the following directory hierarchy in yo
* ~/git/onap/policy/docker
-Building CLAMP control loop runtime and all dependency
-******************************************************
+Building CLAMP automation composition and all dependency
+********************************************************
**Step 1:** Optionally, for a completely clean build, remove the ONAP built modules from your local repository.
@@ -155,8 +155,8 @@ Building CLAMP control loop runtime and all dependency
**Step 2:** A pom such as the one below can be used to build the ONAP Policy Framework modules. Create the *pom.xml* file in the directory *~/git/onap/policy*.
.. code-block:: xml
- :caption: Typical pom.xml to build the ONAP Policy Framework
- :linenos:
+ :caption: Typical pom.xml to build the ONAP Policy Framework
+ :linenos:
<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>
@@ -181,14 +181,14 @@ Building CLAMP control loop runtime and all dependency
**Step 3:** You can now build the Policy framework.
-Java artifacts only:
+Build java artifacts only:
.. code-block:: bash
cd ~/git/onap/policy
mvn -pl '!org.onap.policy.clamp:policy-clamp-runtime' install
-With docker images:
+Build with docker images:
.. code-block:: bash
@@ -201,16 +201,16 @@ Running MariaDb and DMaaP Simulator
Running a MariaDb Instance
++++++++++++++++++++++++++
-Assuming you have successfully built the codebase using the instructions above. There are two requirements for the Clamp controlloop runtime component to run, one of them is a
+Assuming you have successfully built the codebase using the instructions above. There are two requirements for the Clamp automation composition component to run, one of them is a
running MariaDb database instance. The easiest way to do this is to run the docker image locally.
An sql such as the one below can be used to build the SQL initialization. Create the *mariadb.sql* file in the directory *~/git*.
.. code-block:: SQL
- create database controlloop;
+ create database clampacm;
CREATE USER 'policy'@'%' IDENTIFIED BY 'P01icY';
- GRANT ALL PRIVILEGES ON controlloop.* TO 'policy'@'%';
+ GRANT ALL PRIVILEGES ON clampacm.* TO 'policy'@'%';
Execution of the command above results in the creation and start of the *mariadb-smoke-test* container.
@@ -227,7 +227,7 @@ Execution of the command above results in the creation and start of the *mariadb
Running the DMaaP Simulator during Development
++++++++++++++++++++++++++++++++++++++++++++++
-The second requirement for the Clamp controlloop runtime component to run is to run the DMaaP simulator. You can run it from the command line using Maven.
+The second requirement for the Clamp automation composition component to run is to run the DMaaP simulator. You can run it from the command line using Maven.
Change the local configuration file *src/test/resources/simParameters.json* using the below code:
@@ -258,8 +258,8 @@ Run the following commands:
mvn exec:java -Dexec.mainClass=org.onap.policy.models.simulators.Main -Dexec.args="src/test/resources/simParameters.json"
-Developing and Debugging CLAMP control loop runtime
-***************************************************
+Developing and Debugging CLAMP automation composition
+*****************************************************
Running on the Command Line using Maven
+++++++++++++++++++++++++++++++++++++++
@@ -268,7 +268,7 @@ Once the mariadb and DMaap simulator are up and running, run the following comma
.. code-block:: bash
- cd ~/git/onap/policy/clamp/runtime-controlloop
+ cd ~/git/onap/policy/clamp/runtime-acm
mvn spring-boot:run
@@ -277,19 +277,19 @@ Running on the Command Line
.. code-block:: bash
- cd ~/git/onap/policy/clamp/runtime-controlloop
- java -jar target/policy-clamp-runtime-controlloop-6.1.3-SNAPSHOT.jar
+ cd ~/git/onap/policy/clamp/runtime-acm
+ java -jar target/policy-clamp-runtime-acm-6.2.2-SNAPSHOT.jar
Running in Eclipse
++++++++++++++++++
1. Check out the policy models repository
-2. Go to the *policy-clamp-runtime-controlloop* module in the clamp repo
-3. Specify a run configuration using the class *org.onap.policy.clamp.controlloop.runtime.Application* as the main class
+2. Go to the *policy-clamp-runtime-acm* module in the clamp repo
+3. Specify a run configuration using the class *org.onap.policy.clamp.acm.runtime.Application* as the main class
4. Run the configuration
-Swagger UI of Control loop runtime is available at *http://localhost:6969/onap/controlloop/swagger-ui/*, and swagger JSON at *http://localhost:6969/onap/controlloop/v2/api-docs/*
+Swagger UI of Automation composition is available at *http://localhost:6969/onap/policy/clamp/acm/swagger-ui/*, and swagger JSON at *http://localhost:6969/onap/policy/clamp/acm/v2/api-docs/*
Running one or more participant simulators
@@ -301,24 +301,24 @@ Copy the file *src/main/resources/config/application.yaml* and paste into *src/t
.. code-block:: yaml
participantId:
- name: org.onap.policy.controlloop.PolicyControlLoopParticipant
- version: 2.3.1
- participantType:
name: org.onap.PM_Policy
version: 1.0.0
+ participantType:
+ name: org.onap.policy.clamp.acm.PolicyParticipant
+ version: 2.3.1
Run the following commands:
.. code-block:: bash
cd ~/git/onap/policy/clamp/participant/participant-impl/participant-impl-simulator
- java -jar target/policy-clamp-participant-impl-simulator-6.1.3-SNAPSHOT.jar --spring.config.location=src/test/resources/application.yaml
+ java -jar target/policy-clamp-participant-impl-simulator-6.2.2-SNAPSHOT.jar --spring.config.location=src/main/resources/config/application.yaml
Creating self-signed certificate
++++++++++++++++++++++++++++++++
-There is an additional requirement for the Clamp control loop runtime docker image to run, is creating the SSL self-signed certificate.
+There is an additional requirement for the Clamp automation composition docker image to run, is creating the SSL self-signed certificate.
Run the following commands:
@@ -338,8 +338,8 @@ Execution of the commands above results additional files into the following dire
* ~/git/onap/policy/docker/csit/config/ks.jks
-Running the CLAMP control loop runtime docker image
-+++++++++++++++++++++++++++++++++++++++++++++++++++
+Running the CLAMP automation composition docker image
++++++++++++++++++++++++++++++++++++++++++++++++++++++
Run the following command:
@@ -350,8 +350,65 @@ Run the following command:
-e mariadb.host=host.docker.internal \
-e topicServer=host.docker.internal \
--mount type=bind,source=~/git/onap/policy/docker/csit/config/ks.jks,target=/opt/app/policy/clamp/etc/ssl/policy-keystore \
- --mount type=bind,source=~/git/onap/policy/clamp/runtime-controlloop/src/main/resources/application.yaml,target=/opt/app/policy/clamp/etc/ClRuntimeParameters.yaml \
- onap/policy-clamp-cl-runtime
+ --mount type=bind,source=~/git/onap/policy/clamp/runtime-acm/src/main/resources/application.yaml,target=/opt/app/policy/clamp/etc/AcRuntimeParameters.yaml \
+ onap/policy-clamp-runtime-acm
+
+
+Swagger UI of automation composition is available at *https://localhost:6969/onap/policy/clamp/acm/swagger-ui/*, and swagger JSON at *https://localhost:6969/onap/policy/clamp/acm/v2/api-docs/*
-Swagger UI of Control loop runtime is available at *https://localhost:6969/onap/controlloop/swagger-ui/*, and swagger JSON at *https://localhost:6969/onap/controlloop/v2/api-docs/*
+Using CLAMP runtime to connect to CLAMP automation composition
+**************************************************************
+
+Build CLAMP runtime image:
+
+ .. code-block:: bash
+
+ cd ~/git/onap/policy/clamp/runtime
+ mvn clean install -P docker -DskipTests
+
+
+Run the following docker composition:
+
+ .. code-block:: yaml
+
+ version: '3.1'
+
+ services:
+ db:
+ image: mariadb:10.5.8
+ volumes:
+ - "~/git/onap/policy/clamp/runtime/extra/sql/:/docker-entrypoint-initdb.d:rw"
+ environment:
+ - MYSQL_ROOT_PASSWORD=strong_pitchou
+ ports:
+ - "3306:3306"
+
+ policy-clamp-backend:
+ image: onap/policy-clamp-backend
+ depends_on:
+ - db
+ - third-party-proxy
+ environment:
+ - SPRING_DATASOURCE_URL=jdbc:mariadb:sequential://db:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3
+ - SPRING_PROFILES_ACTIVE=clamp-default,clamp-default-user,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller,default-dictionary-elements
+ - CLAMP_CONFIG_POLICY_API_URL=http://third-party-proxy:8085
+ - CLAMP_CONFIG_ACM_RUNTIME_URL=http://host.docker.internal:6969
+ - CLAMP_CONFIG_POLICY_PAP_URL=http://third-party-proxy:8085
+ - CLAMP_CONFIG_DCAE_INVENTORY_URL=http://third-party-proxy:8085
+ - CLAMP_CONFIG_DCAE_DEPLOYMENT_URL=http://third-party-proxy:8085
+ - SPRING_CONFIG_LOCATION=classpath:/application.properties
+ ports:
+ - "10443:8443"
+
+ third-party-proxy:
+ image: python:2-slim
+ volumes:
+ - "~/git/onap/policy/clamp/runtime/src/test/resources/http-cache/example/:/thirdparty:rw"
+ - "~/git/onap/policy/clamp/runtime/src/test/resources/http-cache/:/script/:ro"
+ ports:
+ - "8085:8085"
+ command: /bin/sh -c "pip install --no-cache-dir requests && pip install --no-cache-dir simplejson && python -u /script/third_party_proxy.py -v true --port 8085 --root /thirdparty --proxyaddress third-party-proxy:8085"
+
+
+Run DMaaP simulator, and than run CLAMP Acm using java.
diff --git a/docs/development/devtools/json/cl-instantiation.json b/docs/development/devtools/json/acm-instantiation.json
index 66197860..9977cf02 100644
--- a/docs/development/devtools/json/cl-instantiation.json
+++ b/docs/development/devtools/json/acm-instantiation.json
@@ -1,20 +1,20 @@
{
- "controlLoopList": [
+ "automationCompositionList ": [
{
"name": "K8SInstance0",
"version": "1.0.1",
"definition": {
- "name": "org.onap.domain.sample.GenericK8s_ControlLoopDefinition",
+ "name": "org.onap.domain.sample.GenericK8s_AutomationCompositionDefinition",
"version": "1.2.3"
},
"state": "UNINITIALISED",
"orderedState": "UNINITIALISED",
- "description": "K8s control loop instance 0",
+ "description": "K8s automation composition instance 0",
"elements": {
"709c62b3-8918-41b9-a747-d21eb79c6c21": {
"id": "709c62b3-8918-41b9-a747-d21eb79c6c21",
"definition": {
- "name": "org.onap.domain.database.Local_K8SMicroserviceControlLoopElement",
+ "name": "org.onap.policy.clamp.Local_K8SMicroserviceAutomationCompositionElement",
"version": "1.2.3"
},
"participantId": {
@@ -22,17 +22,17 @@
"version": "1.0.0"
},
"participantType": {
- "name": "org.onap.k8s.controlloop.K8SControlLoopParticipant",
+ "name": "org.onap.policy.clamp.acm.KubernetesParticipant",
"version": "2.3.4"
},
"state": "UNINITIALISED",
"orderedState": "UNINITIALISED",
- "description": "K8s Control Loop Element for the nginx-ingress microservice"
+ "description": "K8s Automation composition Element for the nginx-ingress microservice"
},
"709c62b3-8918-41b9-a747-d21eb79c6c22": {
"id": "709c62b3-8918-41b9-a747-d21eb79c6c22",
"definition": {
- "name": "org.onap.domain.database.Http_MicroserviceControlLoopElement",
+ "name": "org.onap.policy.clamp.Http_AutomationCompositionElement",
"version": "1.2.3"
},
"participantId": {
@@ -40,12 +40,12 @@
"version": "1.0.0"
},
"participantType": {
- "name": "org.onap.k8s.controlloop.HttpControlLoopParticipant",
+ "name": "org.onap.policy.clamp.acm.HttpParticipant",
"version": "2.3.4"
},
"state": "UNINITIALISED",
"orderedState": "UNINITIALISED",
- "description": "Http Control Loop Element"
+ "description": "Http Automation composition Element"
}
}
}
diff --git a/docs/development/devtools/tosca/smoke-test-participants.yaml b/docs/development/devtools/tosca/smoke-test-participants.yaml
index a10e05ec..7823a773 100644
--- a/docs/development/devtools/tosca/smoke-test-participants.yaml
+++ b/docs/development/devtools/tosca/smoke-test-participants.yaml
@@ -9,7 +9,7 @@ data_types:
version:
type: string
required: true
- org.onap.datatypes.policy.clamp.controlloop.httpControlLoopElement.RestRequest:
+ org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest:
version: 1.0.0
derived_from: tosca.datatypes.Root
properties:
@@ -38,7 +38,7 @@ data_types:
constraints:
- in_range: [100, 599]
description: THe expected HTTP status code for the REST request
- org.onap.datatypes.policy.clamp.controlloop.httpControlLoopElement.ConfigurationEntity:
+ org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity:
version: 1.0.0
derived_from: tosca.datatypes.Root
properties:
@@ -46,22 +46,22 @@ data_types:
type: onap.datatypes.ToscaConceptIdentifier
typeVersion: 1.0.0
required: true
- description: The name and version of a Configuration Entity to be handled by the HTTP Control Loop Element
+ description: The name and version of a Configuration Entity to be handled by the HTTP Automation Composition Element
restSequence:
type: list
entry_schema:
- type: org.onap.datatypes.policy.clamp.controlloop.httpControlLoopElement.RestRequest
+ type: org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest
typeVersion: 1.0.0
description: A sequence of REST commands to send to the REST endpoint
node_types:
- org.onap.policy.clamp.controlloop.Participant:
+ org.onap.policy.clamp.acm.Participant:
version: 1.0.1
derived_from: tosca.nodetypes.Root
properties:
provider:
type: string
required: false
- org.onap.policy.clamp.controlloop.ControlLoopElement:
+ org.onap.policy.clamp.acm.AutomationCompositionElement:
version: 1.0.1
derived_from: tosca.nodetypes.Root
properties:
@@ -76,7 +76,7 @@ node_types:
required: true
metadata:
common: true
- description: The identity of the participant type that hosts this type of Control Loop Element
+ description: The identity of the participant type that hosts this type of Automation Composition Element
startPhase:
type: integer
required: false
@@ -84,9 +84,9 @@ node_types:
- greater_or_equal: 0
metadata:
common: true
- description: A value indicating the start phase in which this control loop element will be started, the
- first start phase is zero. Control Loop Elements are started in their start_phase order and stopped
- in reverse start phase order. Control Loop Elements with the same start phase are started and
+ description: A value indicating the start phase in which this ACM element will be started, the
+ first start phase is zero. Automation Composition Elements are started in their start_phase order and stopped
+ in reverse start phase order. Automation Composition Elements with the same start phase are started and
stopped simultaneously
uninitializedToPassiveTimeout:
type: integer
@@ -124,7 +124,7 @@ node_types:
metadata:
common: true
description: The maximum time in seconds to wait for a state chage from passive to uninitialized
- org.onap.policy.clamp.controlloop.ControlLoop:
+ org.onap.policy.clamp.acm.AutomationComposition:
version: 1.0.1
derived_from: tosca.nodetypes.Root
properties:
@@ -136,9 +136,9 @@ node_types:
required: true
entry_schema:
type: onap.datatypes.ToscaConceptIdentifier
- org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement:
+ org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement:
version: 1.0.1
- derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
+ derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
properties:
chart:
type: string
@@ -156,9 +156,9 @@ node_types:
values:
type: string
required: true
- org.onap.policy.clamp.controlloop.HttpControlLoopElement:
+ org.onap.policy.clamp.acm.HttpAutomationCompositionElement:
version: 1.0.1
- derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
+ derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
properties:
baseUrl:
type: string
@@ -174,31 +174,31 @@ node_types:
type: map
required: true
entry_schema:
- type: org.onap.datatypes.policy.clamp.controlloop.httpControlLoopElement.ConfigurationEntity
+ type: org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity
typeVersion: 1.0.0
- description: The connfiguration entities the Control Loop Element is managing and their associated REST requests
+ description: The connfiguration entities the Automation Composition Element is managing and their associated REST requests
topology_template:
node_templates:
- org.onap.k8s.controlloop.K8SControlLoopParticipant:
+ org.onap.policy.clamp.acm.KubernetesParticipant:
version: 2.3.4
- type: org.onap.policy.clamp.controlloop.Participant
+ type: org.onap.policy.clamp.acm.Participant
type_version: 1.0.1
description: Participant for K8S
properties:
provider: ONAP
- org.onap.domain.database.Local_K8SMicroserviceControlLoopElement:
+ org.onap.policy.clamp.Local_K8SMicroserviceAutomationCompositionElement:
# Chart installation without passing repository info
version: 1.2.3
- type: org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement
+ type: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement
type_version: 1.0.0
- description: Control loop element for the K8S microservice for local chart
+ description: Automation Composition element for the K8S microservice for local chart
properties:
provider: ONAP
participant_id:
name: K8sParticipant0
version: 1.0.0
participantType:
- name: org.onap.k8s.controlloop.K8SControlLoopParticipant
+ name: org.onap.policy.clamp.acm.KubernetesParticipant
version: 2.3.4
chart:
chartId:
@@ -206,26 +206,26 @@ topology_template:
version: 0.11.0
releaseName: nginxapp
namespace: onap
- org.onap.controlloop.HttpControlLoopParticipant:
+ org.onap.policy.clamp.acm.HttpParticipant:
version: 2.3.4
- type: org.onap.policy.clamp.controlloop.Participant
+ type: org.onap.policy.clamp.acm.Participant
type_version: 1.0.1
description: Participant for Http requests
properties:
provider: ONAP
- org.onap.domain.database.Http_MicroserviceControlLoopElement:
+ org.onap.policy.clamp.Http_AutomationCompositionElement:
version: 1.2.3
- type: org.onap.policy.clamp.controlloop.HttpControlLoopElement
+ type: org.onap.policy.clamp.acm.HttpAutomationCompositionElement
type_version: 1.0.1
- description: Control loop element for the http requests of PMSH microservice
+ description: Automation composition element for the http requests of PMSH microservice
properties:
provider: ONAP
participant_id:
name: HttpParticipant0
version: 1.0.0
participantType:
- name: org.onap.k8s.controlloop.HttpControlLoopParticipant
+ name: org.onap.policy.clamp.acm.HttpParticipant
version: 2.3.4
uninitializedToPassiveTimeout: 180
startPhase: 1
@@ -246,15 +246,15 @@ topology_template:
expectedResponse: 200
- org.onap.domain.sample.GenericK8s_ControlLoopDefinition:
+ org.onap.domain.sample.GenericK8s_AutomationCompositionDefinition:
version: 1.2.3
- type: org.onap.policy.clamp.controlloop.ControlLoop
+ type: org.onap.policy.clamp.acm.AutomationComposition
type_version: 1.0.0
- description: Control loop for Hello World
+ description: Automation compostion for smoke testing participants
properties:
provider: ONAP
elements:
- - name: org.onap.domain.database.Local_K8SMicroserviceControlLoopElement
+ - name: org.onap.policy.clamp.Local_K8SMicroserviceAutomationCompositionElement
version: 1.2.3
- - name: org.onap.domain.database.Http_MicroserviceControlLoopElement
+ - name: org.onap.policy.clamp.Http_AutomationCompositionElement
version: 1.2.3