blob: 57fc93b3a9e820d6927867db6731f939a1d0f02a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
*** Settings ***
Library Collections
Library RequestsLibrary
Library OperatingSystem
Library json
Library Process
Resource ${CURDIR}/common-library.robot
*** Test Cases ***
Healthcheck
[Documentation] Runs Apex PDP Health check
${hcauth}= PolicyAdminAuth
${resp}= PerformGetRequest ${APEX_IP} /policy/apex-pdp/v1/healthcheck 200 null ${hcauth}
Should Be Equal As Strings ${resp.json()['code']} 200
Set Suite Variable ${pdpName} ${resp.json()['name']}
ExecuteApexSampleDomainPolicy
# [Tags] docker
Set Test Variable ${policyName} onap.policies.native.apex.Sampledomain
${postjson}= Get File ${CURDIR}/data/${policyName}.json
CreatePolicy /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies 200 ${postjson} ${policyName} 1.0.0
Wait Until Keyword Succeeds 3 min 5 sec VerifyPdpStatistics 0 0 0 0
DeployPolicy
Wait Until Keyword Succeeds 2 min 5 sec QueryPolicyStatus ${policyName} defaultGroup apex ${pdpName} onap.policies.native.Apex
Wait Until Keyword Succeeds 3 min 5 sec VerifyPdpStatistics 1 1 0 0
Wait Until Keyword Succeeds 4 min 5 sec RunEventOnApexEngine
Wait Until Keyword Succeeds 3 min 5 sec VerifyPdpStatistics 1 1 1 1
ExecuteApexTestPnfPolicy
Set Test Variable ${policyName} onap.policies.apex.pnf.Test
${postjson}= Get File ${CURDIR}/data/${policyName}.json
CreatePolicy /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies 200 ${postjson} ${policyName} 1.0.0
DeployPolicy
Wait Until Keyword Succeeds 2 min 5 sec QueryPolicyStatus ${policyName} defaultGroup apex ${pdpName} onap.policies.native.Apex
GetTopic APEX-CL-MGT
Wait Until Keyword Succeeds 2 min 5 sec TriggerAndVerifyTestPnfPolicy
ExecuteApexTestVnfPolicy
Set Test Variable ${policyName} onap.policies.apex.vnf.Test
${postjson}= Get File ${CURDIR}/data/${policyName}.json
CreatePolicy /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies 200 ${postjson} ${policyName} 1.0.0
DeployPolicy
Wait Until Keyword Succeeds 2 min 5 sec QueryPolicyStatus ${policyName} defaultGroup apex ${pdpName} onap.policies.native.Apex
GetTopic APEX-CL-MGT
Wait Until Keyword Succeeds 2 min 5 sec TriggerAndVerifyTestVnfPolicy
ExecuteApexTestPnfPolicyWithMetadataSet
Set Test Variable ${policyName} onap.policies.apex.pnf.metadataSet.Test
${postjson}= Get File ${CURDIR}/data/${policyName}.json
CreatePolicy /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies 200 ${postjson} ${policyName} 1.0.0
${postjson}= Get File ${CURDIR}/data/onap.pnf.metadataSet.Test.json
CreateNodeTemplate /policy/api/v1/nodetemplates 200 ${postjson} 1
DeployPolicy
Wait Until Keyword Succeeds 2 min 5 sec QueryPolicyStatus ${policyName} defaultGroup apex ${pdpName} onap.policies.native.Apex
GetTopic APEX-CL-MGT2
Wait Until Keyword Succeeds 2 min 5 sec TriggerAndVerifyTestPnfPolicy
Metrics
[Documentation] Verify policy-apex-pdp is exporting prometheus metrics
${auth}= PolicyAdminAuth
${resp}= PerformGetRequest ${APEX_IP} /metrics 200 null ${auth}
Should Contain ${resp.text} pdpa_policy_deployments_total{operation="deploy",status="TOTAL",} 4.0
Should Contain ${resp.text} pdpa_policy_deployments_total{operation="deploy",status="SUCCESS",} 4.0
Should Contain ${resp.text} pdpa_policy_executions_total{status="SUCCESS",} 3.0
Should Contain ${resp.text} pdpa_policy_executions_total{status="TOTAL",} 3.0
Should Match ${resp.text} *pdpa_engine_event_executions{engine_instance_id="NSOApexEngine-*:0.0.1",}*
Should Match ${resp.text} *pdpa_engine_event_executions{engine_instance_id="MyApexEngine-*:0.0.1",}*
Should Match ${resp.text} *pdpa_engine_state{engine_instance_id=*,} 2.0*
Should Contain ${resp.text} pdpa_engine_event_executions
Should Contain ${resp.text} pdpa_engine_average_execution_time_seconds
Should Contain ${resp.text} pdpa_engine_last_execution_time_bucket
Should Contain ${resp.text} pdpa_engine_last_execution_time_count
Should Contain ${resp.text} pdpa_engine_last_execution_time_sum
Should Match ${resp.text} *pdpa_engine_last_start_timestamp_epoch{engine_instance_id="NSOApexEngine-*:0.0.1",}*E12*
Should Match ${resp.text} *pdpa_engine_last_start_timestamp_epoch{engine_instance_id="MyApexEngine-*:0.0.1",}*E12*
Should Contain ${resp.text} jvm_threads_current
*** Keywords ***
DeployPolicy
[Documentation] Deploy the policy in apex-pdp engine
${postjson}= Get File ${CURDIR}/data/policy_deploy.json
${postjson}= evaluate json.loads('''${postjson}''') json
set to dictionary ${postjson['groups'][0]['deploymentSubgroups'][0]['policies'][0]} name=${policyName}
${postjson}= evaluate json.dumps(${postjson}) json
${policyadmin}= PolicyAdminAuth
PerformPostRequest ${POLICY_PAP_IP} /policy/pap/v1/pdps/deployments/batch 202 ${postjson} null ${policyadmin}
RunEventOnApexEngine
[Documentation] Send event to verify policy execution
Create Session apexSession http://${APEX_EVENTS_IP} max_retries=1
${data}= Get Binary File ${CURDIR}/data/event.json
&{headers}= Create Dictionary Content-Type=application/json Accept=application/json
${resp}= PUT On Session apexSession /apex/FirstConsumer/EventIn data=${data} headers=${headers}
Should Be Equal As Strings ${resp.status_code} 200
TriggerAndVerifyTestPnfPolicy
[Documentation] Send TestPnf policy trigger event to DMaaP and read notifications to verify policy execution
Create Session apexSession http://${DMAAP_IP} max_retries=1
${data}= Get Binary File ${CURDIR}/data/VesEventForPnfPolicy.json
&{headers}= Create Dictionary Content-Type=application/json Accept=application/json
${resp}= POST On Session apexSession /events/unauthenticated.DCAE_CL_OUTPUT data=${data} headers=${headers}
Should Be Equal As Strings ${resp.status_code} 200
Run Keyword CheckLogMessage ACTIVE VES event has been received. Going to fetch details from AAI.
Run Keyword CheckLogMessage SUCCESS Received response from AAI successfully. Hostname in AAI matches with the one in Ves event. Going to make the update-config request to CDS.
Run Keyword CheckLogMessage FINAL_SUCCESS Successfully processed the VES event. Hostname is updated.
TriggerAndVerifyTestVnfPolicy
[Documentation] Send TestVnf policy trigger event to DMaaP and read notifications to verify policy execution
Create Session apexSession http://${DMAAP_IP} max_retries=1
${data}= Get Binary File ${CURDIR}/data/VesEventForVnfPolicy.json
&{headers}= Create Dictionary Content-Type=application/json Accept=application/json
${resp}= POST On Session apexSession /events/unauthenticated.DCAE_POLICY_EXAMPLE_OUTPUT data=${data} headers=${headers}
Should Be Equal As Strings ${resp.status_code} 200
Run Keyword CheckLogMessage ACTIVE VES event has been received. Going to fetch VNF details from AAI.
Run Keyword CheckLogMessage SUCCESS VNF details are received from AAI successfully. Sending ConfigModify request to CDS.
Run Keyword CheckLogMessage SUCCESS ConfigModify request is successful. Sending restart request to CDS.
Run Keyword CheckLogMessage FINAL_SUCCESS Successfully processed the VES Event. Restart is complete.
CheckLogMessage
[Documentation] Read log messages received and check for expected content.
[Arguments] ${status} ${expectedMsg}
${result}= CheckTopic APEX-CL-MGT ${status}
Should Contain ${result} ${expectedMsg}
VerifyPdpStatistics
[Documentation] Verify pdp statistics after policy execution
[Arguments] ${deployCount} ${deploySuccessCount} ${executedCount} ${executedSuccessCount}
${policyadmin}= PolicyAdminAuth
${resp}= PerformGetRequest ${POLICY_PAP_IP} /policy/pap/v1/pdps/statistics/defaultGroup/apex/${pdpName} 200 null ${policyadmin}
Should Be Equal As Strings ${resp.status_code} 200
Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['pdpInstanceId']} ${pdpName}
Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['pdpGroupName']} defaultGroup
Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['pdpSubGroupName']} apex
Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['policyDeployCount']} ${deployCount}
Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['policyDeploySuccessCount']} ${deploySuccessCount}
Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['policyDeployFailCount']} 0
Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['policyExecutedCount']} ${executedCount}
Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['policyExecutedSuccessCount']} ${executedSuccessCount}
Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['policyExecutedFailCount']} 0
|