summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md3
-rwxr-xr-xcompose/get-k8s-versions.sh6
-rwxr-xr-xcsit/resources/scripts/get-cluster-info.sh23
-rwxr-xr-xcsit/resources/scripts/run-test.sh4
-rwxr-xr-xcsit/resources/scripts/setup-clamp.sh3
-rw-r--r--csit/resources/tests/data/OutProperties.json13
-rw-r--r--csit/resources/tests/data/ac-definition-migration-from.yaml153
-rw-r--r--csit/resources/tests/data/ac-definition-migration-to.yaml153
-rw-r--r--csit/resources/tests/data/ac-instance-migration-from.yaml97
-rw-r--r--csit/resources/tests/data/ac-instance-migration-to.yaml59
-rw-r--r--csit/resources/tests/data/ac-instance-update.yaml60
-rw-r--r--csit/resources/tests/policy-clamp-test.robot243
-rwxr-xr-xcsit/run-k8s-csit.sh31
-rwxr-xr-xhelm/policy/templates/job.yaml4
14 files changed, 817 insertions, 35 deletions
diff --git a/README.md b/README.md
index 709eee3d..c1e90e5f 100644
--- a/README.md
+++ b/README.md
@@ -26,6 +26,9 @@ Steps involved in running CSIT in kubernetes:
4. Invokes the respective robot test file for the project supplied by the user.
The test execution results can be viewed from the logs of policy-csit-robot pod.
+Running Policy CSIT in docker:
+To run CSIT in docker, docker/csit/run-project-csit.sh script can be invoked with the argument {project_name}.
+
Running Policy Regression Tests:
ACM regression tests can be invoked using the script docker/csit/run-acm-regression.sh with the arguments {ACM-R release name} {participant release name}
For example, if ACM-R and participants needs to be tested for backward compatbility between montreal and london versions, the script can be invoked
diff --git a/compose/get-k8s-versions.sh b/compose/get-k8s-versions.sh
index 1575164c..49954604 100755
--- a/compose/get-k8s-versions.sh
+++ b/compose/get-k8s-versions.sh
@@ -1,7 +1,7 @@
#! /bin/bash
# ============LICENSE_START====================================================
-# Copyright (C) 2023 Nordix Foundation. All rights reserved.
+# Copyright (C) 2023-2024 Nordix Foundation. All rights reserved.
# =============================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -27,9 +27,9 @@ fi
VALUES_YML=${WORKSPACE}/helm/policy/values.yaml
-policy_components=(policy-api policy-pap policy-apex-pdp policy-models-simulator policy-pdpd-cl policy-xacml-pdp policy-distribution)
+policy_components=(policy-api policy-pap policy-apex-pdp policy-models-simulator policy-pdpd-cl policy-xacml-pdp policy-distribution policy-db-migrator)
-clamp_components=(policy-clamp-runtime-acm policy-clamp-ac-kserve-ppnt policy-clamp-ac-k8s-ppnt policy-clamp-ac-pf-ppnt policy-clamp-ac-http-ppnt policy-clamp-ac-a1pms-ppnt)
+clamp_components=(policy-clamp-runtime-acm policy-clamp-ac-kserve-ppnt policy-clamp-ac-k8s-ppnt policy-clamp-ac-pf-ppnt policy-clamp-ac-http-ppnt policy-clamp-ac-sim-ppnt policy-clamp-ac-a1pms-ppnt)
version_tags=$(source ${WORKSPACE}/compose/get-versions.sh)
export version_tags
diff --git a/csit/resources/scripts/get-cluster-info.sh b/csit/resources/scripts/get-cluster-info.sh
index ab0b27b9..539bf6a3 100755
--- a/csit/resources/scripts/get-cluster-info.sh
+++ b/csit/resources/scripts/get-cluster-info.sh
@@ -1,6 +1,6 @@
#!/bin/bash
# ============LICENSE_START=======================================================
-# Copyright (C) 2023 Nordix Foundation. All rights reserved.
+# Copyright (C) 2023-2024 Nordix Foundation. All rights reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -28,9 +28,10 @@ export XACML_PORT=30004
export DROOLS_PORT=30005
export DIST_PORT=30006
export ACM_PORT=30007
-export POLICY_PF_PARTICIPANT_PORT=30008
-export POLICY_HTTP_PARTICIPANT_PORT=30009
-export POLICY_K8S_PARTICIPANT_PORT=30010
+export PF_PARTICIPANT_PORT=30008
+export HTTP_PARTICIPANT_PORT=30009
+export K8S_PARTICIPANT_PORT=30010
+export SIM_PARTICIPANT_PORT=30011
export SIMULATOR_PORT=30904
# Retrieve pod names
@@ -44,8 +45,9 @@ function get_pod_names() {
export DIST_POD=$(get_pod_name distribution)
export ACM_POD=$(get_pod_name acm-runtime)
export POLICY_PPNT_POD=$(get_pod_name policy-ppnt)
- export POLICY_PPNT_POD=$(get_pod_name http-ppnt)
- export POLICY_PPNT_POD=$(get_pod_name k8s-ppnt)
+ export POLICY_HTTP_POD=$(get_pod_name http-ppnt)
+ export POLICY_SIM_POD=$(get_pod_name sim-ppnt)
+ export POLICY_K8S_POD=$(get_pod_name k8s-ppnt)
}
# Retrieve service names
@@ -60,6 +62,7 @@ function get_svc_names() {
export ACM_SVC=$(get_svc_name policy-clamp-runtime-acm)
export POLICY_PPNT_SVC=$(get_svc_name policy-clamp-ac-pf-ppnt)
export POLICY_HTTP_SVC=$(get_svc_name policy-clamp-ac-http-ppnt)
+ export POLICY_SIM_SVC=$(get_svc_name policy-clamp-ac-sim-ppnt)
export POLICY_K8S_SVC=$(get_svc_name policy-clamp-ac-k8s-ppnt)
}
@@ -74,6 +77,7 @@ function expose_services() {
expose_service $ACM_SVC
expose_service $POLICY_PPNT_SVC
expose_service POLICY_HTTP_SVC
+ expose_service POLICY_SIM_SVC
expose_service POLICY_K8S_SVC
setup_message_router_svc
@@ -103,9 +107,10 @@ function patch_ports() {
patch_port "$API_SVC" $API_PORT
patch_port "$PAP_SVC" $PAP_PORT
patch_port "$ACM_SVC" $ACM_PORT
- patch_port "$POLICY_PPNT_SVC" $POLICY_PF_PARTICIPANT_PORT
- patch_port "$HTTP_PPNT_SVC" $POLICY_HTTP_PARTICIPANT_PORT
- patch_port "$K8S_PPNT_SVC" $POLICY_K8S_PARTICIPANT_PORT
+ patch_port "$POLICY_PPNT_SVC" $PF_PARTICIPANT_PORT
+ patch_port "$POLICY_HTTP_SVC" $HTTP_PARTICIPANT_PORT
+ patch_port "$POLICY_SIM_SVC" $SIM_PARTICIPANT_PORT
+ patch_port "$POLICY_K8S_SVC" $K8S_PARTICIPANT_PORT
patch_port "$DIST_SVC" $DIST_PORT
patch_port "$DROOLS_SVC" $DROOLS_PORT
patch_port "$XACML_SVC" $XACML_PORT
diff --git a/csit/resources/scripts/run-test.sh b/csit/resources/scripts/run-test.sh
index 34048e2e..90dec572 100755
--- a/csit/resources/scripts/run-test.sh
+++ b/csit/resources/scripts/run-test.sh
@@ -27,6 +27,7 @@ DATA=/opt/robotworkspace/models/models-examples/src/main/resources/policies
NODETEMPLATES=/opt/robotworkspace/models/models-examples/src/main/resources/nodetemplates
POLICY_RUNTIME_ACM_IP=policy-clamp-runtime-acm:${DEFAULT_PORT}
+POLICY_PARTICIPANT_SIM_IP=policy-clamp-ac-sim-ppnt:${DEFAULT_PORT}
POLICY_API_IP=policy-api:${DEFAULT_PORT}
POLICY_PAP_IP=policy-pap:${DEFAULT_PORT}
APEX_IP=policy-apex-pdp:${DEFAULT_PORT}
@@ -42,7 +43,8 @@ DIST_TEMP_FOLDER=/tmp/distribution
export ROBOT_VARIABLES=
ROBOT_VARIABLES="-v DATA:$DATA -v NODETEMPLATES:$NODETEMPLATES -v POLICY_API_IP:$POLICY_API_IP
--v POLICY_RUNTIME_ACM_IP:$POLICY_RUNTIME_ACM_IP -v POLICY_PAP_IP:$POLICY_PAP_IP -v APEX_IP:$APEX_IP
+-v POLICY_RUNTIME_ACM_IP:$POLICY_RUNTIME_ACM_IP -v POLICY_PARTICIPANT_SIM_IP:$POLICY_PARTICIPANT_SIM_IP
+-v POLICY_PAP_IP:$POLICY_PAP_IP -v APEX_IP:$APEX_IP
-v APEX_EVENTS_IP:$APEX_EVENTS_IP -v KAFKA_IP:$KAFKA_IP -v PROMETHEUS_IP:${PROMETHEUS_IP}
-v POLICY_PDPX_IP:$POLICY_PDPX_IP -v POLICY_DROOLS_IP:$POLICY_DROOLS_IP -v TEMP_FOLDER:${DIST_TEMP_FOLDER}
-v DISTRIBUTION_IP:$DISTRIBUTION_IP -v CLAMP_K8S_TEST:$CLAMP_K8S_TEST"
diff --git a/csit/resources/scripts/setup-clamp.sh b/csit/resources/scripts/setup-clamp.sh
index 4eae4da3..ba4467b9 100755
--- a/csit/resources/scripts/setup-clamp.sh
+++ b/csit/resources/scripts/setup-clamp.sh
@@ -1,6 +1,6 @@
#!/bin/bash
# ============LICENSE_START=======================================================
-# Copyright (C) 2021-2023 Nordix Foundation.
+# Copyright (C) 2021-2024 Nordix Foundation.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -30,6 +30,7 @@ CLAMP_K8S_TEST=false
export SUITES="policy-clamp-test.robot"
ROBOT_VARIABLES="-v POLICY_RUNTIME_ACM_IP:localhost:${ACM_PORT}
+-v POLICY_PARTICIPANT_SIM_IP:localhost:${SIM_PARTICIPANT_PORT}
-v POLICY_API_IP:localhost:${API_PORT} -v POLICY_PAP_IP:localhost:${PAP_PORT} -v CLAMP_K8S_TEST:$CLAMP_K8S_TEST"
diff --git a/csit/resources/tests/data/OutProperties.json b/csit/resources/tests/data/OutProperties.json
new file mode 100644
index 00000000..1d4144c1
--- /dev/null
+++ b/csit/resources/tests/data/OutProperties.json
@@ -0,0 +1,13 @@
+{
+ "outProperties": {
+ "test": {
+ "object": "TEXTPLACEHOLDER",
+ "from": "Participant",
+ "to": "Runtime"
+ }
+ },
+ "automationCompositionId": "INSTACEIDPLACEHOLDER",
+ "automationCompositionElementId": "709c62b3-8918-41b9-a747-d21eb79c6c34",
+ "useState": "IDLE",
+ "operationalState": "ENABLED"
+}
diff --git a/csit/resources/tests/data/ac-definition-migration-from.yaml b/csit/resources/tests/data/ac-definition-migration-from.yaml
new file mode 100644
index 00000000..273cfec3
--- /dev/null
+++ b/csit/resources/tests/data/ac-definition-migration-from.yaml
@@ -0,0 +1,153 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2024 Nordix Foundation.
+# ================================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+tosca_definitions_version: tosca_simple_yaml_1_3
+name: Migration-From
+data_types:
+ onap.datatypes.ToscaConceptIdentifier:
+ derived_from: tosca.datatypes.Root
+ properties:
+ name:
+ type: string
+ required: true
+ version:
+ type: string
+ required: true
+
+node_types:
+ 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.acm.AutomationCompositionElement:
+ version: 1.0.1
+ derived_from: tosca.nodetypes.Root
+ properties:
+ provider:
+ type: string
+ required: false
+ metadata:
+ common: true
+ description: Specifies the organization that provides the automation composition element
+ startPhase:
+ type: integer
+ required: false
+ constraints:
+ - greater_or_equal: 0
+ metadata:
+ common: true
+ description: A value indicating the start phase in which this automation composition 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
+
+ org.onap.policy.clamp.acm.AutomationComposition:
+ version: 1.0.1
+ derived_from: tosca.nodetypes.Root
+ properties:
+ provider:
+ type: string
+ required: false
+ metadata:
+ common: true
+ description: Specifies the organization that provides the automation composition element
+ elements:
+ type: list
+ required: true
+ metadata:
+ common: true
+ entry_schema:
+ type: onap.datatypes.ToscaConceptIdentifier
+ description: Specifies a list of automation composition element definitions that make up this automation composition definition
+
+ org.onap.policy.clamp.acm.SimAutomationCompositionElement:
+ version: 1.0.0
+ derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
+ properties:
+ baseUrl:
+ type: string
+ required: true
+ description: The base URL to be prepended to each path, identifies the host for the REST endpoints.
+ httpHeaders:
+ type: map
+ required: false
+ entry_schema:
+ type: string
+ description: HTTP headers to send on REST requests
+ configurationEntities:
+ type: map
+ required: true
+ entry_schema:
+ type: map
+ description: The connfiguration entities the Automation Composition Element is managing and their associated REST requests
+
+topology_template:
+
+ node_templates:
+
+ org.onap.policy.clamp.acm.SimParticipant:
+ version: 2.3.4
+ type: org.onap.policy.clamp.acm.Participant
+ type_version: 1.0.1
+ description: Participant Simulator
+ properties:
+ provider: ONAP
+
+ onap.policy.clamp.ac.element.Sim_StarterAutomationCompositionElement:
+ version: 1.2.3
+ type: org.onap.policy.clamp.acm.SimAutomationCompositionElement
+ type_version: 1.0.0
+ description: Automation composition element for the http requests of AC Element Starter microservice
+ properties:
+ provider: ONAP
+ startPhase: 0
+
+ onap.policy.clamp.ac.element.Sim_BridgeAutomationCompositionElement:
+ version: 1.2.3
+ type: org.onap.policy.clamp.acm.SimAutomationCompositionElement
+ type_version: 1.0.0
+ description: Automation composition element for the http requests of AC Element Bridge microservice
+ properties:
+ provider: ONAP
+ startPhase: 0
+
+ onap.policy.clamp.ac.element.Sim_SinkAutomationCompositionElement:
+ version: 1.2.3
+ type: org.onap.policy.clamp.acm.SimAutomationCompositionElement
+ type_version: 1.0.0
+ description: Automation composition element for the http requests of AC Element Sink microservice
+ properties:
+ provider: ONAP
+ startPhase: 0
+
+ onap.policy.clamp.ac.element.AutomationCompositionDefinition:
+ version: 1.2.3
+ type: org.onap.policy.clamp.acm.AutomationComposition
+ type_version: 1.0.1
+ description: Automation composition for Demo
+ properties:
+ provider: ONAP
+ elements:
+ - name: onap.policy.clamp.ac.element.Sim_StarterAutomationCompositionElement
+ version: 1.2.3
+ - name: onap.policy.clamp.ac.element.Sim_BridgeAutomationCompositionElement
+ version: 1.2.3
+ - name: onap.policy.clamp.ac.element.Sim_SinkAutomationCompositionElement
+ version: 1.2.3
diff --git a/csit/resources/tests/data/ac-definition-migration-to.yaml b/csit/resources/tests/data/ac-definition-migration-to.yaml
new file mode 100644
index 00000000..efc550b0
--- /dev/null
+++ b/csit/resources/tests/data/ac-definition-migration-to.yaml
@@ -0,0 +1,153 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2024 Nordix Foundation.
+# ================================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+tosca_definitions_version: tosca_simple_yaml_1_3
+name: Migration-To
+data_types:
+ onap.datatypes.ToscaConceptIdentifier:
+ derived_from: tosca.datatypes.Root
+ properties:
+ name:
+ type: string
+ required: true
+ version:
+ type: string
+ required: true
+
+node_types:
+ 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.acm.AutomationCompositionElement:
+ version: 1.0.1
+ derived_from: tosca.nodetypes.Root
+ properties:
+ provider:
+ type: string
+ required: false
+ metadata:
+ common: true
+ description: Specifies the organization that provides the automation composition element
+ startPhase:
+ type: integer
+ required: false
+ constraints:
+ - greater_or_equal: 0
+ metadata:
+ common: true
+ description: A value indicating the start phase in which this automation composition 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
+
+ org.onap.policy.clamp.acm.AutomationComposition:
+ version: 1.0.1
+ derived_from: tosca.nodetypes.Root
+ properties:
+ provider:
+ type: string
+ required: false
+ metadata:
+ common: true
+ description: Specifies the organization that provides the automation composition element
+ elements:
+ type: list
+ required: true
+ metadata:
+ common: true
+ entry_schema:
+ type: onap.datatypes.ToscaConceptIdentifier
+ description: Specifies a list of automation composition element definitions that make up this automation composition definition
+
+ org.onap.policy.clamp.acm.SimAutomationCompositionElement:
+ version: 1.0.0
+ derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
+ properties:
+ baseUrl:
+ type: string
+ required: true
+ description: The base URL to be prepended to each path, identifies the host for the REST endpoints.
+ httpHeaders:
+ type: map
+ required: false
+ entry_schema:
+ type: string
+ description: HTTP headers to send on REST requests
+ configurationEntities:
+ type: map
+ required: true
+ entry_schema:
+ type: map
+ description: The connfiguration entities the Automation Composition Element is managing and their associated REST requests
+
+topology_template:
+
+ node_templates:
+
+ org.onap.policy.clamp.acm.SimParticipant:
+ version: 2.3.4
+ type: org.onap.policy.clamp.acm.Participant
+ type_version: 1.0.1
+ description: Participant Simulator
+ properties:
+ provider: ONAP
+
+ onap.policy.clamp.ac.element.Sim_StarterAutomationCompositionElement:
+ version: 1.2.4
+ type: org.onap.policy.clamp.acm.SimAutomationCompositionElement
+ type_version: 1.0.0
+ description: Automation composition element for the http requests of AC Element Starter microservice
+ properties:
+ provider: ONAP
+ startPhase: 0
+
+ onap.policy.clamp.ac.element.Sim_BridgeAutomationCompositionElement:
+ version: 1.2.4
+ type: org.onap.policy.clamp.acm.SimAutomationCompositionElement
+ type_version: 1.0.0
+ description: Automation composition element for the http requests of AC Element Bridge microservice
+ properties:
+ provider: ONAP
+ startPhase: 0
+
+ onap.policy.clamp.ac.element.Sim_SinkAutomationCompositionElement:
+ version: 1.2.4
+ type: org.onap.policy.clamp.acm.SimAutomationCompositionElement
+ type_version: 1.0.0
+ description: Automation composition element for the http requests of AC Element Sink microservice
+ properties:
+ provider: ONAP
+ startPhase: 0
+
+ onap.policy.clamp.ac.element.AutomationCompositionDefinition:
+ version: 1.2.4
+ type: org.onap.policy.clamp.acm.AutomationComposition
+ type_version: 1.0.1
+ description: Automation composition for Demo
+ properties:
+ provider: ONAP
+ elements:
+ - name: onap.policy.clamp.ac.element.Sim_StarterAutomationCompositionElement
+ version: 1.2.4
+ - name: onap.policy.clamp.ac.element.Sim_BridgeAutomationCompositionElement
+ version: 1.2.4
+ - name: onap.policy.clamp.ac.element.Sim_SinkAutomationCompositionElement
+ version: 1.2.4
diff --git a/csit/resources/tests/data/ac-instance-migration-from.yaml b/csit/resources/tests/data/ac-instance-migration-from.yaml
new file mode 100644
index 00000000..76858e4e
--- /dev/null
+++ b/csit/resources/tests/data/ac-instance-migration-from.yaml
@@ -0,0 +1,97 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2024 Nordix Foundation.
+# ================================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+name: Instance-Migration-From
+version: 1.0.1
+compositionId: COMPOSITIONIDPLACEHOLDER
+description: Demo automation composition instance 0
+elements:
+
+ 709c62b3-8918-41b9-a747-d21eb79c6c34:
+ id: 709c62b3-8918-41b9-a747-d21eb79c6c34
+ definition:
+ name: onap.policy.clamp.ac.element.Sim_StarterAutomationCompositionElement
+ version: 1.2.3
+ description: Starter Automation Composition Element for the Demo
+ properties:
+ baseUrl: http://address:30800
+ httpHeaders:
+ Content-Type: application/json
+ Authorization: Basic YWNtVXNlcjp6YiFYenRHMzQ=
+ configurationEntities:
+ - configurationEntityId:
+ name: onap.policy.clamp.ac.starter
+ version: 1.0.0
+ restSequence:
+ - restRequestId:
+ name: request1
+ version: 1.0.1
+ httpMethod: POST
+ path: /onap/policy/clamp/acelement/v2/activate
+ body: '{ "receiverId": { "name": "onap.policy.clamp.ac.startertobridge", "version": "1.0.0" }, "timerMs": 20000, "elementType": "STARTER", "topicParameterGroup": { "server": "message-router:3904", "listenerTopic": "POLICY_UPDATE_MSG", "publisherTopic": "AC_ELEMENT_MSG", "fetchTimeout": 15000, "topicCommInfrastructure": "dmaap" } }'
+ expectedResponse: 201
+ myParameterToUpdate: text
+
+ 709c62b3-8918-41b9-a747-d21eb79c6c35:
+ id: 709c62b3-8918-41b9-a747-d21eb79c6c35
+ definition:
+ name: onap.policy.clamp.ac.element.Sim_BridgeAutomationCompositionElement
+ version: 1.2.3
+ description: Bridge Automation Composition Element for the Demo
+ properties:
+ baseUrl: http://address:30801
+ httpHeaders:
+ Content-Type: application/json
+ Authorization: Basic YWNtVXNlcjp6YiFYenRHMzQ=
+ configurationEntities:
+ - configurationEntityId:
+ name: onap.policy.clamp.ac.bridge
+ version: 1.0.0
+ restSequence:
+ - restRequestId:
+ name: request2
+ version: 1.0.1
+ httpMethod: POST
+ path: /onap/policy/clamp/acelement/v2/activate
+ body: '{ "receiverId": { "name": "onap.policy.clamp.ac.bridgetosink", "version": "1.0.0" }, "timerMs": 20000, "elementType": "BRIDGE", "topicParameterGroup": { "server": "message-router:3904", "listenerTopic": "POLICY_UPDATE_MSG", "publisherTopic": "AC_ELEMENT_MSG", "fetchTimeout": 15000, "topicCommInfrastructure": "dmaap" } }'
+ expectedResponse: 201
+ myParameterToUpdate: text
+
+ 709c62b3-8918-41b9-a747-d21eb79c6c36:
+ id: 709c62b3-8918-41b9-a747-d21eb79c6c36
+ definition:
+ name: onap.policy.clamp.ac.element.Sim_SinkAutomationCompositionElement
+ version: 1.2.3
+ description: Sink Automation Composition Element for the Demo
+ properties:
+ baseUrl: http://address:30802
+ httpHeaders:
+ Content-Type: application/json
+ Authorization: Basic YWNtVXNlcjp6YiFYenRHMzQ=
+ configurationEntities:
+ - configurationEntityId:
+ name: onap.policy.clamp.ac.sink
+ version: 1.0.0
+ restSequence:
+ - restRequestId:
+ name: request3
+ version: 1.0.1
+ httpMethod: POST
+ path: /onap/policy/clamp/acelement/v2/activate
+ body: '{ "receiverId": { "name": "onap.policy.clamp.ac.sink", "version": "1.0.0" }, "timerMs": 20000, "elementType": "SINK", "topicParameterGroup": { "server": "message-router", "listenerTopic": "POLICY_UPDATE_MSG", "publisherTopic": "AC_ELEMENT_MSG", "fetchTimeout": 15000, "topicCommInfrastructure": "dmaap" } }'
+ expectedResponse: 201
+ myParameterToUpdate: text
diff --git a/csit/resources/tests/data/ac-instance-migration-to.yaml b/csit/resources/tests/data/ac-instance-migration-to.yaml
new file mode 100644
index 00000000..65b684a3
--- /dev/null
+++ b/csit/resources/tests/data/ac-instance-migration-to.yaml
@@ -0,0 +1,59 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2024 Nordix Foundation.
+# ================================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+name: Instance-Migration-To
+version: 1.0.1
+compositionId: COMPOSITIONIDPLACEHOLDER
+instanceId: INSTACEIDPLACEHOLDER
+compositionTargetId: COMPOSITIONTARGETIDPLACEHOLDER
+description: Demo automation composition instance 0
+elements:
+
+ 709c62b3-8918-41b9-a747-d21eb79c6c34:
+ id: 709c62b3-8918-41b9-a747-d21eb79c6c34
+ definition:
+ name: onap.policy.clamp.ac.element.Sim_StarterAutomationCompositionElement
+ version: 1.2.4
+ description: Starter Automation Composition Element for the Demo
+ properties:
+ baseUrl: http://10.101.0.249:30800
+ configurationEntities:
+ - configurationEntityId:
+ myParameterToUpdate: text updated for migration
+
+ 709c62b3-8918-41b9-a747-d21eb79c6c35:
+ id: 709c62b3-8918-41b9-a747-d21eb79c6c35
+ definition:
+ name: onap.policy.clamp.ac.element.Sim_BridgeAutomationCompositionElement
+ version: 1.2.4
+ description: Bridge Automation Composition Element for the Demo
+ properties:
+ baseUrl: http://10.101.0.249:30801
+ configurationEntities:
+ - configurationEntityId:
+ myParameterToUpdate: TEXTPLACEHOLDER
+
+ 709c62b3-8918-41b9-a747-d21eb79c6c36:
+ id: 709c62b3-8918-41b9-a747-d21eb79c6c36
+ definition:
+ name: onap.policy.clamp.ac.element.Sim_SinkAutomationCompositionElement
+ version: 1.2.4
+ description: Sink Automation Composition Element for the Demo
+ properties:
+ configurationEntities:
+ - configurationEntityId:
+ myParameterToUpdate: text updated for migration
diff --git a/csit/resources/tests/data/ac-instance-update.yaml b/csit/resources/tests/data/ac-instance-update.yaml
new file mode 100644
index 00000000..26015591
--- /dev/null
+++ b/csit/resources/tests/data/ac-instance-update.yaml
@@ -0,0 +1,60 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2024 Nordix Foundation.
+# ================================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+name: Instance-Migration-To
+version: 1.0.1
+compositionId: COMPOSITIONIDPLACEHOLDER
+instanceId: INSTACEIDPLACEHOLDER
+description: Demo automation composition instance 0
+elements:
+
+ 709c62b3-8918-41b9-a747-d21eb79c6c34:
+ id: 709c62b3-8918-41b9-a747-d21eb79c6c34
+ definition:
+ name: onap.policy.clamp.ac.element.Sim_StarterAutomationCompositionElement
+ version: 1.2.3
+ description: Starter Automation Composition Element for the Demo
+ properties:
+ baseUrl: http://address:30800
+ httpHeaders:
+ Content-Type: application/json
+ Authorization: Basic YWNtVXNlcjp6YiFYenRHMzQ=
+ configurationEntities:
+ - configurationEntityId:
+ myParameterToUpdate: TEXTPLACEHOLDER
+
+ 709c62b3-8918-41b9-a747-d21eb79c6c35:
+ id: 709c62b3-8918-41b9-a747-d21eb79c6c35
+ definition:
+ name: onap.policy.clamp.ac.element.Sim_BridgeAutomationCompositionElement
+ version: 1.2.3
+ description: Bridge Automation Composition Element for the Demo
+ properties:
+ configurationEntities:
+ - configurationEntityId:
+ myParameterToUpdate: text updated
+
+ 709c62b3-8918-41b9-a747-d21eb79c6c36:
+ id: 709c62b3-8918-41b9-a747-d21eb79c6c36
+ definition:
+ name: onap.policy.clamp.ac.element.Sim_SinkAutomationCompositionElement
+ version: 1.2.3
+ description: Sink Automation Composition Element for the Demo
+ properties:
+ configurationEntities:
+ - configurationEntityId:
+ myParameterToUpdate: text updated
diff --git a/csit/resources/tests/policy-clamp-test.robot b/csit/resources/tests/policy-clamp-test.robot
index 95af26a2..eff970a6 100644
--- a/csit/resources/tests/policy-clamp-test.robot
+++ b/csit/resources/tests/policy-clamp-test.robot
@@ -17,6 +17,16 @@ HealthcheckAcm
Log Received response from ACM healthcheck {resp.text}
Should Be Equal As Strings ${resp.status_code} 200
+HealthcheckParticipantSim
+ [Documentation] Healthcheck on Participant Simulator
+ ${auth}= Create List participantUser zb!XztG34
+ Log Creating session http://${POLICY_PARTICIPANT_SIM_IP}
+ ${session}= Create Session participant http://${POLICY_PARTICIPANT_SIM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= GET On Session participant /onap/policy/simparticipant/health headers=${headers}
+ Log Received response from participant healthcheck {resp.text}
+ Should Be Equal As Strings ${resp.status_code} 200
+
HealthcheckApi
[Documentation] Healthcheck on policy-api
Wait Until Keyword Succeeds 5 min 10 sec VerifyHealthcheckApi
@@ -35,7 +45,7 @@ RegisterParticipants
Should Be Equal As Strings ${resp.status_code} 202
CommissionAutomationComposition
- [Documentation] Commission automation composition.
+ [Documentation] Commission automation composition definition.
${auth}= Create List runtimeUser zb!XztG34
Log Creating session http://${POLICY_RUNTIME_ACM_IP}
${postyaml}= Get file ${CURDIR}/data/acelement-usecase.yaml
@@ -47,6 +57,32 @@ CommissionAutomationComposition
set Suite variable ${compositionId} ${respyaml["compositionId"]}
Should Be Equal As Strings ${resp.status_code} 201
+CommissionAcDefinitionMigrationFrom
+ [Documentation] Commission automation composition definition From.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${postyaml}= Get file ${CURDIR}/data/ac-definition-migration-from.yaml
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/yaml Content-Type=application/yaml
+ ${resp}= POST On Session policy /onap/policy/clamp/acm/v2/compositions data=${postyaml} headers=${headers}
+ Log Received response from runtime acm ${resp.text}
+ ${respyaml}= yaml.Safe Load ${resp.text}
+ set Suite variable ${compositionFromId} ${respyaml["compositionId"]}
+ Should Be Equal As Strings ${resp.status_code} 201
+
+CommissionAcDefinitionMigrationTo
+ [Documentation] Commission automation composition definition To.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${postyaml}= Get file ${CURDIR}/data/ac-definition-migration-to.yaml
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/yaml Content-Type=application/yaml
+ ${resp}= POST On Session policy /onap/policy/clamp/acm/v2/compositions data=${postyaml} headers=${headers}
+ Log Received response from runtime acm ${resp.text}
+ ${respyaml}= yaml.Safe Load ${resp.text}
+ set Suite variable ${compositionToId} ${respyaml["compositionId"]}
+ Should Be Equal As Strings ${resp.status_code} 201
+
PrimeACDefinitions
[Documentation] Prime automation composition definition
${auth}= Create List runtimeUser zb!XztG34
@@ -56,8 +92,29 @@ PrimeACDefinitions
${headers}= Create Dictionary Accept=application/json Content-Type=application/json
${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId} data=${postjson} headers=${headers}
Should Be Equal As Strings ${resp.status_code} 202
- Wait Until Keyword Succeeds 2 min 5 sec VerifyPriming PRIMED
+ Wait Until Keyword Succeeds 2 min 5 sec VerifyPriming ${compositionId} PRIMED
+PrimeACDefinitionFrom
+ [Documentation] Prime automation composition definition Migration From.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${postjson}= Get file ${CURDIR}/data/ACPriming.json
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionFromId} data=${postjson} headers=${headers}
+ Should Be Equal As Strings ${resp.status_code} 202
+ Wait Until Keyword Succeeds 2 min 5 sec VerifyPriming ${compositionFromId} PRIMED
+
+PrimeACDefinitionTo
+ [Documentation] Prime automation composition definition Migration To.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${postjson}= Get file ${CURDIR}/data/ACPriming.json
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionToId} data=${postjson} headers=${headers}
+ Should Be Equal As Strings ${resp.status_code} 202
+ Wait Until Keyword Succeeds 2 min 5 sec VerifyPriming ${compositionToId} PRIMED
InstantiateAutomationComposition
[Documentation] Instantiate automation composition.
@@ -77,6 +134,20 @@ InstantiateAutomationComposition
set Suite variable ${instanceId} ${respyaml["instanceId"]}
Should Be Equal As Strings ${resp.status_code} 201
+InstantiateAutomationCompositionMigrationFrom
+ [Documentation] Instantiate automation composition migration.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${postyaml}= Get file ${CURDIR}/data/ac-instance-migration-from.yaml
+ ${updatedpostyaml}= Replace String ${postyaml} COMPOSITIONIDPLACEHOLDER ${compositionFromId}
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/yaml Content-Type=application/yaml
+ ${resp}= POST On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionFromId}/instances data=${updatedpostyaml} headers=${headers}
+ Log Received response from runtime acm ${resp.text}
+ ${respyaml}= yaml.Safe Load ${resp.text}
+ set Suite variable ${instanceMigrationId} ${respyaml["instanceId"]}
+ Should Be Equal As Strings ${resp.status_code} 201
+
DeployAutomationComposition
[Documentation] Deploy automation composition.
${auth}= Create List runtimeUser zb!XztG34
@@ -87,8 +158,7 @@ DeployAutomationComposition
${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} data=${postjson} headers=${headers}
Log Received response from runtime acm ${resp.text}
Should Be Equal As Strings ${resp.status_code} 202
- Wait Until Keyword Succeeds 10 min 5 sec VerifyDeployStatus DEPLOYED
-
+ Wait Until Keyword Succeeds 10 min 5 sec VerifyDeployStatus ${compositionId} ${instanceId} DEPLOYED
QueryPolicies
[Documentation] Verify the new policies deployed
@@ -102,7 +172,6 @@ QueryPolicies
Should Be Equal As Strings ${resp.status_code} 200
Dictionary Should Contain Value ${resp.json()[0]} onap.policies.native.apex.ac.element
-
QueryPolicyTypes
[Documentation] Verify the new policy types created
${auth}= Create List policyadmin zb!XztG34
@@ -115,6 +184,66 @@ QueryPolicyTypes
Should Be Equal As Strings ${resp.status_code} 200
List Should Contain Value ${resp.json()['policy_types']} onap.policies.native.Apex
+DeployAutomationCompositionMigration
+ [Documentation] Deploy automation composition.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${postjson}= Get file ${CURDIR}/data/DeployAC.json
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionFromId}/instances/${instanceMigrationId} data=${postjson} headers=${headers}
+ Log Received response from runtime acm ${resp.text}
+ Should Be Equal As Strings ${resp.status_code} 202
+ Wait Until Keyword Succeeds 10 min 5 sec VerifyDeployStatus ${compositionFromId} ${instanceMigrationId} DEPLOYED
+
+SendOutPropertiesToRuntime
+ [Documentation] Send Out Properties To Runtime
+ ${auth}= Create List participantUser zb!XztG34
+ Log Creating session http://${POLICY_PARTICIPANT_SIM_IP}
+ ${postjson}= Get file ${CURDIR}/data/OutProperties.json
+ ${updatedpostjson}= Replace String ${postjson} INSTACEIDPLACEHOLDER ${instanceMigrationId}
+ ${updatedpostjson}= Replace String ${updatedpostjson} TEXTPLACEHOLDER MyTextToSend
+ ${session}= Create Session policy http://${POLICY_PARTICIPANT_SIM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= PUT On Session policy /onap/policy/simparticipant/v2/datas data=${updatedpostjson} headers=${headers}
+ Log Received response from participant sim ${resp.text}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Wait Until Keyword Succeeds 2 min 5 sec VerifyPropertiesUpdated ${compositionFromId} ${instanceMigrationId} MyTextToSend
+
+AutomationCompositionUpdate
+ [Documentation] Update of an automation composition.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${postyaml}= Get file ${CURDIR}/data/ac-instance-update.yaml
+ ${updatedpostyaml}= Replace String ${postyaml} COMPOSITIONIDPLACEHOLDER ${compositionFromId}
+ ${updatedpostyaml}= Replace String ${updatedpostyaml} INSTACEIDPLACEHOLDER ${instanceMigrationId}
+ ${updatedpostyaml}= Replace String ${updatedpostyaml} TEXTPLACEHOLDER MyTextUpdated
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/yaml Content-Type=application/yaml
+ ${resp}= POST On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionFromId}/instances data=${updatedpostyaml} headers=${headers}
+ Log Received response from runtime acm ${resp.text}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Wait Until Keyword Succeeds 2 min 5 sec VerifyDeployStatus ${compositionFromId} ${instanceMigrationId} DEPLOYED
+ VerifyPropertiesUpdated ${compositionFromId} ${instanceMigrationId} MyTextUpdated
+ VerifyParticipantSim ${instanceMigrationId} MyTextUpdated
+
+AutomationCompositionMigrationTo
+ [Documentation] Migration of an automation composition.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${postyaml}= Get file ${CURDIR}/data/ac-instance-migration-to.yaml
+ ${updatedpostyaml}= Replace String ${postyaml} COMPOSITIONIDPLACEHOLDER ${compositionFromId}
+ ${updatedpostyaml}= Replace String ${updatedpostyaml} COMPOSITIONTARGETIDPLACEHOLDER ${compositionToId}
+ ${updatedpostyaml}= Replace String ${updatedpostyaml} INSTACEIDPLACEHOLDER ${instanceMigrationId}
+ ${updatedpostyaml}= Replace String ${updatedpostyaml} TEXTPLACEHOLDER TextForMigration
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/yaml Content-Type=application/yaml
+ ${resp}= POST On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionFromId}/instances data=${updatedpostyaml} headers=${headers}
+ Log Received response from runtime acm ${resp.text}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Wait Until Keyword Succeeds 10 min 5 sec VerifyDeployStatus ${compositionToId} ${instanceMigrationId} DEPLOYED
+ VerifyPropertiesUpdated ${compositionToId} ${instanceMigrationId} TextForMigration
+ VerifyParticipantSim ${instanceMigrationId} TextForMigration
UnDeployAutomationComposition
[Documentation] UnDeploy automation composition.
@@ -126,8 +255,19 @@ UnDeployAutomationComposition
${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} data=${postjson} headers=${headers}
Log Received response from runtime acm ${resp.text}
Should Be Equal As Strings ${resp.status_code} 202
- Wait Until Keyword Succeeds 10 min 5 sec VerifyDeployStatus UNDEPLOYED
+ Wait Until Keyword Succeeds 10 min 5 sec VerifyDeployStatus ${compositionId} ${instanceId} UNDEPLOYED
+UnDeployAutomationCompositionMigrationTo
+ [Documentation] UnDeploy automation composition migrated.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${postjson}= Get file ${CURDIR}/data/UndeployAC.json
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionToId}/instances/${instanceMigrationId} data=${postjson} headers=${headers}
+ Log Received response from runtime acm ${resp.text}
+ Should Be Equal As Strings ${resp.status_code} 202
+ Wait Until Keyword Succeeds 10 min 5 sec VerifyDeployStatus ${compositionToId} ${instanceMigrationId} UNDEPLOYED
UnInstantiateAutomationComposition
[Documentation] Delete automation composition instance.
@@ -138,8 +278,18 @@ UnInstantiateAutomationComposition
${resp}= DELETE On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} headers=${headers}
Log Received response from runtime acm ${resp.text}
Should Be Equal As Strings ${resp.status_code} 202
- Wait Until Keyword Succeeds 1 min 5 sec VerifyUninstantiated
+ Wait Until Keyword Succeeds 1 min 5 sec VerifyUninstantiated ${compositionId}
+UnInstantiateAutomationCompositionMigrationTo
+ [Documentation] Delete automation composition instance migrated.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= DELETE On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionToId}/instances/${instanceMigrationId} headers=${headers}
+ Log Received response from runtime acm ${resp.text}
+ Should Be Equal As Strings ${resp.status_code} 202
+ Wait Until Keyword Succeeds 1 min 5 sec VerifyUninstantiated ${compositionToId}
DePrimeACDefinitions
[Documentation] DePrime automation composition definition
@@ -150,8 +300,29 @@ DePrimeACDefinitions
${headers}= Create Dictionary Accept=application/json Content-Type=application/json
${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId} data=${postjson} headers=${headers}
Should Be Equal As Strings ${resp.status_code} 202
- Wait Until Keyword Succeeds 2 min 5 sec VerifyPriming COMMISSIONED
+ Wait Until Keyword Succeeds 2 min 5 sec VerifyPriming ${compositionId} COMMISSIONED
+
+DePrimeACDefinitionsFrom
+ [Documentation] DePrime automation composition definition migration From.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${postjson}= Get file ${CURDIR}/data/ACDepriming.json
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionFromId} data=${postjson} headers=${headers}
+ Should Be Equal As Strings ${resp.status_code} 202
+ Wait Until Keyword Succeeds 2 min 5 sec VerifyPriming ${compositionFromId} COMMISSIONED
+DePrimeACDefinitionsTo
+ [Documentation] DePrime automation composition definition migration To.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${postjson}= Get file ${CURDIR}/data/ACDepriming.json
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionToId} data=${postjson} headers=${headers}
+ Should Be Equal As Strings ${resp.status_code} 202
+ Wait Until Keyword Succeeds 2 min 5 sec VerifyPriming ${compositionToId} COMMISSIONED
DeleteACDefinition
[Documentation] Delete automation composition definition.
@@ -163,6 +334,25 @@ DeleteACDefinition
Log Received response from runtime acm ${resp.text}
Should Be Equal As Strings ${resp.status_code} 200
+DeleteACDefinitionFrom
+ [Documentation] Delete automation composition definition migration From.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/yaml Content-Type=application/yaml
+ ${resp}= DELETE On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionFromId} headers=${headers}
+ Log Received response from runtime acm ${resp.text}
+ Should Be Equal As Strings ${resp.status_code} 200
+
+DeleteACDefinitionTo
+ [Documentation] Delete automation composition definition migration To.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/yaml Content-Type=application/yaml
+ ${resp}= DELETE On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionToId} headers=${headers}
+ Log Received response from runtime acm ${resp.text}
+ Should Be Equal As Strings ${resp.status_code} 200
*** Keywords ***
@@ -188,35 +378,60 @@ VerifyHealthcheckPap
Should Be Equal As Strings ${resp.status_code} 200
VerifyPriming
- [Arguments] ${primestate}
+ [Arguments] ${theCompositionId} ${primestate}
[Documentation] Verify the AC definitions are primed to the participants
${auth}= Create List runtimeUser zb!XztG34
Log Creating session http://${POLICY_RUNTIME_ACM_IP}
${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= GET On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId} headers=${headers}
+ ${resp}= GET On Session policy /onap/policy/clamp/acm/v2/compositions/${theCompositionId} headers=${headers}
Should Be Equal As Strings ${resp.status_code} 200
Run Keyword If ${resp.status_code}==200 Should Be Equal As Strings ${resp.json()['state']} ${primestate}
VerifyDeployStatus
- [Arguments] ${deploystate}
+ [Arguments] ${theCompositionId} ${theInstanceId} ${deploystate}
[Documentation] Verify the Deploy status of automation composition.
${auth}= Create List runtimeUser zb!XztG34
Log Creating session http://${POLICY_RUNTIME_ACM_IP}
- ${postjson}= Get file ${CURDIR}/data/DeployAC.json
${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= GET On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} headers=${headers}
+ ${resp}= GET On Session policy /onap/policy/clamp/acm/v2/compositions/${theCompositionId}/instances/${theInstanceId} headers=${headers}
Should Be Equal As Strings ${resp.status_code} 200
Run Keyword If ${resp.status_code}==200 Should Be Equal As Strings ${resp.json()['deployState']} ${deploystate}
+VerifyPropertiesUpdated
+ [Arguments] ${theCompositionId} ${theInstanceId} ${textToFind}
+ [Documentation] Verify the Deploy status of automation composition.
+ ${auth}= Create List runtimeUser zb!XztG34
+ Log Creating session http://${POLICY_RUNTIME_ACM_IP}
+ ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= GET On Session policy /onap/policy/clamp/acm/v2/compositions/${theCompositionId}/instances/${theInstanceId} headers=${headers}
+ Should Be Equal As Strings ${resp.status_code} 200
+ ${respstring} Convert To String ${resp.json()}
+ Run Keyword If ${resp.status_code}==200 Should Match Regexp ${respstring} ${textToFind}
+
+VerifyParticipantSim
+ [Arguments] ${theInstanceId} ${textToFind}
+ [Documentation] Query on Participant Simulator
+ ${auth}= Create List participantUser zb!XztG34
+ Log Creating session http://${POLICY_PARTICIPANT_SIM_IP}
+ ${session}= Create Session ACM http://${POLICY_PARTICIPANT_SIM_IP} auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= GET On Session ACM /onap/policy/simparticipant/v2/instances/${theInstanceId} headers=${headers}
+ Log Received response from participant {resp.text}
+ Should Be Equal As Strings ${resp.status_code} 200
+ ${respstring} Convert To String ${resp.json()}
+ Should Match Regexp ${respstring} ${textToFind}
+
VerifyUninstantiated
+ [Arguments] ${theCompositionId}
[Documentation] Verify the Uninstantiation of automation composition.
${auth}= Create List runtimeUser zb!XztG34
Log Creating session http://${POLICY_RUNTIME_ACM_IP}
${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth}
${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= GET On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances headers=${headers}
+ ${resp}= GET On Session policy /onap/policy/clamp/acm/v2/compositions/${theCompositionId}/instances headers=${headers}
Should Be Equal As Strings ${resp.status_code} 200
Run Keyword If ${resp.status_code}==200 Length Should Be ${resp.json()['automationCompositionList']} 0
diff --git a/csit/run-k8s-csit.sh b/csit/run-k8s-csit.sh
index 478d0485..d8fda028 100755
--- a/csit/run-k8s-csit.sh
+++ b/csit/run-k8s-csit.sh
@@ -45,6 +45,7 @@ POLICY_XACML_CONTAINER="policy-xacml-pdp"
POLICY_DISTRIBUTION_CONTAINER="policy-distribution"
POLICY_K8S_PPNT_CONTAINER="policy-clamp-ac-k8s-ppnt"
POLICY_HTTP_PPNT_CONTAINER="policy-clamp-ac-http-ppnt"
+POLICY_SIM_PPNT_CONTAINER="policy-clamp-ac-sim-ppnt"
POLICY_PF_PPNT_CONTAINER="policy-clamp-ac-pf-ppnt"
KAFKA_CONTAINER="kafka-deployment"
ZK_CONTAINER="zookeeper-deployment"
@@ -87,9 +88,27 @@ function spin_microk8s_cluster() {
else
echo "K8s cluster is already running"
echo "----------------------------------------"
- return 0
fi
+ echo "Verify if kubectl is running.."
+ kubectl version
+ exitcode="${?}"
+
+ if [ "$exitcode" -ne 0 ]; then
+ echo "Kubectl not available, Spinning up the cluster.."
+ sudo snap install kubectl --classic --channel=1.26/stable
+
+ if [ "${?}" -ne 0 ]; then
+ echo "Failed to install Kubectl. Aborting.."
+ return 1
+ fi
+ echo "Kubectl installation completed"
+ echo "----------------------------------------"
+ else
+ echo "Kubectl is already running"
+ echo "----------------------------------------"
+ return 0
+ fi
}
function install_kafka() {
@@ -216,9 +235,10 @@ function set_project_config() {
clamp | policy-clamp)
export ROBOT_FILE=$POLICY_CLAMP_ROBOT
export READINESS_CONTAINERS=($POLICY_CLAMP_CONTAINER,$POLICY_APEX_CONTAINER,$POLICY_PF_PPNT_CONTAINER,$POLICY_K8S_PPNT_CONTAINER,
- $POLICY_HTTP_PPNT_CONTAINER)
+ $POLICY_HTTP_PPNT_CONTAINER,$POLICY_SIM_PPNT_CONTAINER)
export SET_VALUES="--set $POLICY_CLAMP_CONTAINER.enabled=true --set $POLICY_APEX_CONTAINER.enabled=true
- --set $POLICY_PF_PPNT_CONTAINER.enabled=true --set $POLICY_K8S_PPNT_CONTAINER.enabled=true --set $POLICY_HTTP_PPNT_CONTAINER.enabled=true"
+ --set $POLICY_PF_PPNT_CONTAINER.enabled=true --set $POLICY_K8S_PPNT_CONTAINER.enabled=true
+ --set $POLICY_HTTP_PPNT_CONTAINER.enabled=true --set $POLICY_SIM_PPNT_CONTAINER.enabled=true"
install_chartmuseum
;;
@@ -263,11 +283,12 @@ function set_project_config() {
export READINESS_CONTAINERS=($POLICY_APEX_CONTAINER,$POLICY_API_CONTAINER,$POLICY_PAP_CONTAINER,
$POLICY_DISTRIBUTION_CONTAINER,$POLICY_DROOLS_CONTAINER,$POLICY_XACML_CONTAINER,
$POLICY_CLAMP_CONTAINER,$POLICY_PF_PPNT_CONTAINER,$POLICY_K8S_PPNT_CONTAINER,
- $POLICY_HTTP_PPNT_CONTAINER)
+ $POLICY_HTTP_PPNT_CONTAINER,$POLICY_SIM_PPNT_CONTAINER)
export SET_VALUES="--set $POLICY_APEX_CONTAINER.enabled=true --set $POLICY_XACML_CONTAINER.enabled=true
--set $POLICY_DISTRIBUTION_CONTAINER.enabled=true --set $POLICY_DROOLS_CONTAINER.enabled=true
--set $POLICY_CLAMP_CONTAINER.enabled=true --set $POLICY_PF_PPNT_CONTAINER.enabled=true
- --set $POLICY_K8S_PPNT_CONTAINER.enabled=true --set $POLICY_HTTP_PPNT_CONTAINER.enabled=true"
+ --set $POLICY_K8S_PPNT_CONTAINER.enabled=true --set $POLICY_HTTP_PPNT_CONTAINER.enabled=true
+ --set $POLICY_SIM_PPNT_CONTAINER.enabled=true"
;;
esac
diff --git a/helm/policy/templates/job.yaml b/helm/policy/templates/job.yaml
index 560cea09..4d3bd714 100755
--- a/helm/policy/templates/job.yaml
+++ b/helm/policy/templates/job.yaml
@@ -128,7 +128,7 @@ spec:
fieldPath: metadata.namespace
containers:
- name: policy-galera-db-migrator-policy
- image: {{ .Values.global.dockerRepository }}/{{ .Values.dbmigrator.image }}
+ image: {{ .Values.global.repository }}/{{ .Values.dbmigrator.image }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
volumeMounts:
- mountPath: /dbcmd-config/db_migrator_policy_init.sh
@@ -212,7 +212,7 @@ spec:
fieldPath: metadata.namespace
containers:
- name: policy-galera-db-migrator-clamp
- image: {{ .Values.global.dockerRepository }}/{{ .Values.dbmigrator.image }}
+ image: {{ .Values.global.repository }}/{{ .Values.dbmigrator.image }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
volumeMounts:
- mountPath: /dbcmd-config/db_migrator_policy_init.sh