# ===========LICENSE_START====================================================
# Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
# Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
-# Modification Copyright 2021-2025 Nordix Foundation.
+# Modifications Copyright 2021-2025 Nordix Foundation.
# Modifications Copyright 2024-2025 Deutsche Telekom
# ============================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
- simulator
- kafka
- pap
- - opa-pdp
ports:
- ${APEX_PORT}:6969
- ${APEX_EVENTS_PORT}:23324
'kafka', '9092'
]
-
opa-pdp:
image: ${CONTAINER_LOCATION}onap/policy-opa-pdp:${POLICY_OPA_PDP_VERSION}
container_name: policy-opa-pdp
"currentInstanceCount": 0,
"desiredInstanceCount": 1,
"policies": []
- },
- {
- "name": "opaGroup",
- "pdpGroupState": "ACTIVE",
- "properties": {},
- "pdpSubgroups": [
- {
- "pdpType": "opa",
- "desiredInstanceCount": 1,
- "properties": {},
- "supportedPolicyTypes": [
- {
- "name": "onap.policies.native.opa",
- "version": "1.0.0"
- }
- ],
- "policies": [
- {
- "name": "slice.capacity.check",
- "version": "1.0.0"
- }
- ]
}
]
}
- ]
- }
]
}
--- /dev/null
+{
+ "groups": [
+ {
+ "name": "opaGroup",
+ "pdpGroupState": "ACTIVE",
+ "properties": {},
+ "pdpSubgroups": [
+ {
+ "pdpType": "opa",
+ "desiredInstanceCount": 1,
+ "properties": {},
+ "supportedPolicyTypes": [
+ {
+ "name": "onap.policies.native.opa",
+ "version": "1.0.0"
+ }
+ ],
+ "policies": [
+ {
+ "name": "slice.capacity.check",
+ "version": "1.0.0"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
"policies": []
}
]
- },
- {
- "name": "opaGroup",
- "pdpGroupState": "ACTIVE",
- "properties": {},
- "pdpSubgroups": [
- {
- "pdpType": "opa",
- "desiredInstanceCount": 1,
- "properties": {},
- "supportedPolicyTypes": [
- {
- "name": "onap.policies.native.opa",
- "version": "1.0.0"
- }
- ],
- "policies": [
- {
- "name": "slice.capacity.check",
- "version": "1.0.0"
- }
- ]
- }
- ]
}
]
}
QueryPdpGroups
[Documentation] Verify pdp group query - suphosts upto 2 groups
- [Arguments] ${groupsLength} ${group1Name} ${group1State} ${policiesLengthInGroup1} ${group2Name} ${group2State} ${policiesLengthInGroup2} ${group3Name} ${group3State} ${policiesLengthInGroup3}
+ [Arguments] ${groupsLength} ${group1Name} ${group1State} ${policiesLengthInGroup1} ${group2Name} ${group2State} ${policiesLengthInGroup2}
${policyadmin}= PolicyAdminAuth
${resp}= PerformGetRequest ${POLICY_PAP_IP} /policy/pap/v1/pdps 200 null ${policyadmin}
Length Should Be ${resp.json()['groups']} ${groupsLength}
Run Keyword If ${groupsLength}>1 Should Be Equal As Strings ${resp.json()['groups'][1]['name']} ${group2Name}
Run Keyword If ${groupsLength}>1 Should Be Equal As Strings ${resp.json()['groups'][1]['pdpGroupState']} ${group2State}
Run Keyword If ${groupsLength}>1 Length Should Be ${resp.json()['groups'][1]['pdpSubgroups'][0]['policies']} ${policiesLengthInGroup2}
- Run Keyword If ${groupsLength}>2 Should Be Equal As Strings ${resp.json()['groups'][2]['name']} ${group3Name}
- Run Keyword If ${groupsLength}>2 Should Be Equal As Strings ${resp.json()['groups'][2]['pdpGroupState']} ${group3State}
- Run Keyword If ${groupsLength}>2 Length Should Be ${resp.json()['groups'][2]['pdpSubgroups'][0]['policies']} ${policiesLengthInGroup3}
QueryPolicyAudit
[Arguments] ${url} ${expectedstatus} ${pdpGroup} ${pdpType} ${policyName} ${expectedAction}
Consolidated Healthcheck
[Documentation] Verify policy consolidated health check
- sleep 60
+ sleep 20
${resp}= GetReq /policy/pap/v1/components/healthcheck
Should Be Equal As Strings ${resp.json()['healthy']} True
${resp}= GetMetrics ${POLICY_PAP_IP} ${auth} /policy/pap/v1/
Should Contain ${resp.text} http_server_requests_seconds_count{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/healthcheck"}
Should Contain ${resp.text} http_server_requests_seconds_count{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/components/healthcheck"} 1
- Should Contain ${resp.text} spring_data_repository_invocations_seconds_count{exception="None",method="save",repository="PdpGroupRepository",state="SUCCESS"} 2
+ Should Contain ${resp.text} spring_data_repository_invocations_seconds_count{exception="None",method="save",repository="PdpGroupRepository",state="SUCCESS"} 1
Should Contain ${resp.text} spring_data_repository_invocations_seconds_count{exception="None",method="findByKeyName",repository="PdpGroupRepository",state="SUCCESS"} 1
Should Contain ${resp.text} spring_data_repository_invocations_seconds_count{exception="None",method="findAll",repository="PolicyStatusRepository",state="SUCCESS"}
QueryPdpGroupsBeforeActivation
[Documentation] Verify PdpGroups before activation
- QueryPdpGroups 3 defaultGroup ACTIVE 0 opaGroup ACTIVE 1 testGroup PASSIVE 0
+ QueryPdpGroups 2 defaultGroup ACTIVE 0 testGroup PASSIVE 0
ActivatePdpGroup
[Documentation] Change the state of PdpGroup named 'testGroup' to ACTIVE
QueryPdpGroupsAfterActivation
[Documentation] Verify PdpGroups after activation
- QueryPdpGroups 3 defaultGroup ACTIVE 0 opaGroup ACTIVE 1 testGroup ACTIVE 0
+ QueryPdpGroups 2 defaultGroup ACTIVE 0 testGroup ACTIVE 0
DeployPdpGroups
[Documentation] Deploy policies in PdpGroups
QueryPdpGroupsAfterDeploy
[Documentation] Verify PdpGroups after undeploy
- QueryPdpGroups 3 defaultGroup ACTIVE 0 opaGroup ACTIVE 1 testGroup ACTIVE 1
+ QueryPdpGroups 2 defaultGroup ACTIVE 0 testGroup ACTIVE 1
QueryPolicyAuditAfterDeploy
[Documentation] Verify policy audit record after deploy
QueryPdpGroupsAfterUndeploy
[Documentation] Verify PdpGroups after undeploy
- QueryPdpGroups 3 defaultGroup ACTIVE 0 opaGroup ACTIVE 1 testGroup ACTIVE 0
+ QueryPdpGroups 2 defaultGroup ACTIVE 0 testGroup ACTIVE 0
QueryPolicyAuditAfterUnDeploy
[Documentation] Verify policy audit record after undeploy
QueryPdpGroupsAfterDelete
[Documentation] Verify PdpGroups after delete
- QueryPdpGroups 2 defaultGroup ACTIVE 0 opaGroup ACTIVE 1 null null null
+ QueryPdpGroups 1 defaultGroup ACTIVE 0 null null null
sleep 60
check_rest_endpoint "${PAP_PORT}"
check_rest_endpoint "${APEX_PORT}"
- check_rest_endpoint "${OPA_PDP_PORT}"
apex_healthcheck
}
export PROJECT="opa-pdp"
source "${DOCKER_COMPOSE_DIR}"/start-compose.sh opa-pdp
echo "Waiting 3 minutes for OPA-PDP to start..."
- sleep 145
+ sleep 180
+ check_rest_endpoint "${PAP_PORT}"
check_rest_endpoint "${OPA_PDP_PORT}"
}
export DO_NOT_TEARDOWN=true
shift
;;
+ --stop)
+ export TEARDOWN=true
+ shift
+ ;;
*)
export PROJECT="${1}"
shift
sudo rm -rf "${ROBOT_LOG_DIR}"
mkdir -p "${ROBOT_LOG_DIR}"
+if [ "${TEARDOWN}" == "true" ]; then
+ on_exit
+fi
+
# log into nexus docker
docker login -u docker -p docker nexus3.onap.org:10001