summaryrefslogtreecommitdiffstats
path: root/csit/xacml-pdp/tests/xacml-pdp-test.robot
blob: c1bba0af0c0704b5503f6e1fb9f821bf042f59df (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
*** Settings ***
Library     Collections
Library     RequestsLibrary
Library     OperatingSystem
Library     Process
Library     json
Resource    ${CURDIR}/../../common-library.robot

*** Test Cases ***
Healthcheck
     [Documentation]  Verify policy xacml-pdp health check
     ${resp}=  PerformGetRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/healthcheck  200  null
     Should Be Equal As Strings    ${resp.json()['code']}  200

Statistics
     [Documentation]  Verify policy xacml-pdp statistics
     ${resp}=  PerformGetRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/statistics  200  null
     Should Be Equal As Strings    ${resp.json()['code']}  200

Metrics
    [Documentation]  Verify policy-xacml-pdp is exporting prometheus metrics
    ${resp}=  PerformGetRequest  ${POLICY_PDPX_IP}  /metrics  200  null
    Should Contain  ${resp.text}  jvm_threads_current

MakeTopics
     [Documentation]    Creates the Policy topics
     ${result}=     Run Process     ${SCR_DMAAP}/make_topic.sh   POLICY-PDP-PAP
     Should Be Equal As Integers        ${result.rc}    0

ExecuteXacmlPolicy
     CreateMonitorPolicy
     CreateOptimizationPolicy
     Wait Until Keyword Succeeds    1 min   15 sec  GetDefaultDecision
     DeployPolicies
     Wait Until Keyword Succeeds    1 min   15 sec  GetStatisticsAfterDeployed
     Wait Until Keyword Succeeds    1 min   15 sec  GetAbbreviatedDecisionResult
     Wait Until Keyword Succeeds    1 min   15 sec  GetMonitoringDecision
     Wait Until Keyword Succeeds    1 min   15 sec  GetNamingDecision
     Wait Until Keyword Succeeds    1 min   15 sec  GetOptimizationDecision
     Wait Until Keyword Succeeds    1 min   15 sec  GetStatisticsAfterDecision
     UndeployMonitorPolicy
     Wait Until Keyword Succeeds    1 min   15 sec  GetStatisticsAfterUndeploy

*** Keywords ***

CreateMonitorPolicy
     [Documentation]  Create a Monitoring policy
     ${postjson}=  Get file  ${DATA2}/vCPE.policy.monitoring.input.tosca.json
     CreatePolicy  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies  200  ${postjson}  onap.restart.tca  1.0.0

CreateOptimizationPolicy
     [Documentation]  Create an Optimization policy
     ${postjson}=  Get file  ${DATA2}/vCPE.policies.optimization.input.tosca.json
     CreatePolicy  /policy/api/v1/policytypes/onap.policies.optimization.resource.AffinityPolicy/versions/1.0.0/policies  200  ${postjson}  OSDF_CASABLANCA.Affinity_Default  1.0.0

GetDefaultDecision
     [Documentation]  Get Default Decision with no policies in Xacml PDP
     ${postjson}=  Get file  ${CURDIR}/data/onap.policy.guard.decision.request.json
     ${resp}=  PerformPostRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/decision  200  ${postjson}  abbrev=true
     ${status}=  Get From Dictionary  ${resp.json()}  status
     Should Be Equal As Strings  ${status}  Permit

DeployPolicies
     [Documentation]   Runs Policy PAP to deploy a policy
     ${postjson}=  Get file  ${CURDIR}/data/vCPE.policy.input.tosca.deploy.json
     PerformPostRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/policies  202  ${postjson}  null
     ${result}=     Run Process    ${SCR_DMAAP}/wait_topic.sh    POLICY-PDP-PAP
     ...            responseTo    xacml    ACTIVE    onap.restart.tca
     Should Be Equal As Integers        ${result.rc}    0

GetStatisticsAfterDeployed
     [Documentation]  Verify policy xacml-pdp statistics after policy is deployed
     ${resp}=  PerformGetRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/statistics  200  null
     Should Be Equal As Strings  ${resp.json()['code']}  200
     Should Be Equal As Strings  ${resp.json()['totalPoliciesCount']}  3

GetAbbreviatedDecisionResult
     [Documentation]    Get Decision with abbreviated results from Policy Xacml PDP
     ${postjson}=  Get file  ${CURDIR}/data/onap.policy.monitoring.decision.request.json
     ${resp}=  PerformPostRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/decision  200  ${postjson}  abbrev=true
     ${policy}=    Get From Dictionary    ${resp.json()['policies']}   onap.restart.tca
     Dictionary Should Contain Key    ${policy}    type
     Dictionary Should Contain Key    ${policy}    metadata
     Dictionary Should Not Contain Key    ${policy}    type_version
     Dictionary Should Not Contain Key    ${policy}    properties
     Dictionary Should Not Contain Key    ${policy}    name
     Dictionary Should Not Contain Key    ${policy}    version

GetMonitoringDecision
     [Documentation]    Get Decision from Monitoring Policy Xacml PDP
     ${postjson}=  Get file  ${CURDIR}/data/onap.policy.monitoring.decision.request.json
     ${resp}=  PerformPostRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/decision  200  ${postjson}  null
     ${policy}=    Get From Dictionary    ${resp.json()['policies']}   onap.restart.tca
     Dictionary Should Contain Key    ${policy}    type
     Dictionary Should Contain Key    ${policy}    metadata
     Dictionary Should Contain Key    ${policy}    type_version
     Dictionary Should Contain Key    ${policy}    properties
     Dictionary Should Contain Key    ${policy}    name
     Dictionary Should Contain Key    ${policy}    version

GetNamingDecision
     [Documentation]    Get Decision from Naming Policy Xacml PDP
     ${postjson}=  Get file  ${CURDIR}/data/onap.policy.naming.decision.request.json
     ${resp}=  PerformPostRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/decision  200  ${postjson}  null
     ${policy}=    Get From Dictionary    ${resp.json()['policies']}   SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP
     Dictionary Should Contain Key    ${policy}    type
     Dictionary Should Contain Key    ${policy}    type_version
     Dictionary Should Contain Key    ${policy}    properties
     Dictionary Should Contain Key    ${policy}    name

GetOptimizationDecision
     [Documentation]    Get Decision from Optimization Policy Xacml PDP
     ${postjson}=  Get file  ${CURDIR}/data/onap.policy.optimization.decision.request.json
     ${resp}=  PerformPostRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/decision  200  ${postjson}  null
     ${policy}=    Get From Dictionary    ${resp.json()['policies']}   OSDF_CASABLANCA.Affinity_Default
     Dictionary Should Contain Key    ${policy}    type
     Dictionary Should Contain Key    ${policy}    type_version
     Dictionary Should Contain Key    ${policy}    properties
     Dictionary Should Contain Key    ${policy}    name

GetStatisticsAfterDecision
     [Documentation]    Runs Policy Xacml PDP Statistics after Decision request
     ${resp}=  PerformGetRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/statistics  200  null
     Should Be Equal As Strings    ${resp.json()['code']}  200
     Should Be Equal As Strings    ${resp.json()['permitDecisionsCount']}     4
     Should Be Equal As Strings    ${resp.json()['notApplicableDecisionsCount']}     1

UndeployMonitorPolicy
     [Documentation]    Runs Policy PAP to undeploy a policy
     PerformDeleteRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/policies/onap.restart.tca  202

GetStatisticsAfterUndeploy
     [Documentation]    Runs Policy Xacml PDP Statistics after policy is undeployed
     ${resp}=  PerformGetRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/statistics  200  null
     Should Be Equal As Strings    ${resp.json()['code']}  200
     Should Be Equal As Strings    ${resp.json()['totalPoliciesCount']}     2