aboutsummaryrefslogtreecommitdiffstats
path: root/csit/pap/tests/pap-test.robot
blob: 9b44fe772552f787c73bf21dd16d9a2ff9a91d6d (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
*** Settings ***
Library    Collections
Library    RequestsLibrary
Library    OperatingSystem
Library    json

*** Test Cases ***
LoadPolicy
    [Documentation]  Create a policy named 'onap.restart.tca' and version '1.0.0' using specific api
    CreatePolicy  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies  200  vCPE.policy.monitoring.input.tosca.json  onap.restart.tca  1.0.0

Healthcheck
    [Documentation]  Verify policy pap health check
    ${resp}=  PeformGetRequest  /policy/pap/v1/healthcheck  200  null
    Should Be Equal As Strings  ${resp.json()['code']}  200

Statistics
    [Documentation]  Verify policy pap statistics
    ${resp}=  PeformGetRequest  /policy/pap/v1/statistics  200  null
    Should Be Equal As Strings  ${resp.json()['code']}  200

AddPdpGroup
    [Documentation]  Add a new PdpGroup named 'testGroup' in the policy database
    PerformPostRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/groups/batch  200  create.group.request.json  ${CURDIR}/data

ActivatePdpGroup
    [Documentation]  Change the state of PdpGroup named 'testGroup' to ACTIVE
    PerformPutRequest  /policy/pap/v1/pdps/groups/testGroup  200  ACTIVE

QueryPdpGroupsAfterActivation
    [Documentation]  Verify PdpGroups after activation
    QueryPdpGroups  2  0

DeployPdpGroups
    [Documentation]  Deploy policies in PdpGroups
    PerformPostRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/deployments/batch  202  deploy.group.request.json  ${CURDIR}/data

QueryPdpGroupsAfterDeploy
    [Documentation]  Verify PdpGroups after undeploy
    QueryPdpGroups  2  1

QueryPolicyAuditAfterDeploy
    [Documentation]  Verify policy audit record after deploy
    QueryPolicyAudit  /policy/pap/v1/policies/audit  200  DEPLOYMENT

UndeployPolicy
    [Documentation]  Undeploy a policy named 'onap.restart.tca' from PdpGroups
    PeformDeleteRequest  /policy/pap/v1/pdps/policies/onap.restart.tca  202

QueryPdpGroupsAfterUndeploy
    [Documentation]  Verify PdpGroups after undeploy
    QueryPdpGroups  2  0

QueryPolicyAuditAfterUnDeploy
    [Documentation]  Verify policy audit record after undeploy
    QueryPolicyAudit  /policy/pap/v1/policies/audit  200  UNDEPLOYMENT

DeactivatePdpGroup
    [Documentation]  Change the state of PdpGroup named 'testGroup' to PASSIVE
    PerformPutRequest  /policy/pap/v1/pdps/groups/testGroup  200  PASSIVE

DeletePdpGroups
    [Documentation]  Delete the PdpGroup named 'testGroup' from policy database
    PeformDeleteRequest  /policy/pap/v1/pdps/groups/testGroup  200

QueryPdpGroupsAfterDelete
    [Documentation]    Verify PdpGroups after delete
    QueryPdpGroups  1  0

*** Keywords ***

CreatePolicy
    [Arguments]  ${url}  ${expectedstatus}  ${jsonfile}  ${policyname}  ${policyversion}
    [Documentation]  Create the specific policy
    ${resp}=  PerformPostRequest  ${POLICY_API_IP}  ${url}  ${expectedstatus}  ${jsonfile}  ${DATA}
    Run Keyword If  ${expectedstatus}==200  Dictionary Should Contain Key  ${resp.json()['topology_template']['policies'][0]}  ${policyname}
    Run Keyword If  ${expectedstatus}==200  Should Be Equal As Strings  ${resp.json()['topology_template']['policies'][0]['${policyname}']['version']}  ${policyversion}

QueryPdpGroups
    [Arguments]  ${groupsLength}  ${policiesLength}
    ${resp}=  PeformGetRequest  /policy/pap/v1/pdps  200  null
    Length Should Be  ${resp.json()['groups']}  ${groupsLength}
    Should Be Equal As Strings  ${resp.json()['groups'][0]['name']}  defaultGroup
    Should Be Equal As Strings  ${resp.json()['groups'][0]['pdpGroupState']}  ACTIVE
    Run Keyword If  ${groupsLength}>1  Should Be Equal As Strings  ${resp.json()['groups'][1]['name']}  testGroup
    Run Keyword If  ${groupsLength}>1  Should Be Equal As Strings  ${resp.json()['groups'][1]['pdpGroupState']}  ACTIVE
    Run Keyword If  ${groupsLength}>1  Length Should Be  ${resp.json()['groups'][1]['pdpSubgroups'][0]['policies']}  ${policiesLength}

QueryPolicyAudit
    [Arguments]  ${url}  ${expectedstatus}  ${expectedAction}
    ${resp}=  PeformGetRequest  ${url}  ${expectedstatus}  recordCount=1
    Should Be Equal As Strings    ${resp.json()[0]['pdpGroup']}  testGroup
    Should Be Equal As Strings    ${resp.json()[0]['pdpType']}  pdpTypeA
    Should Be Equal As Strings    ${resp.json()[0]['policy']['name']}  onap.restart.tca
    Should Be Equal As Strings    ${resp.json()[0]['policy']['version']}  1.0.0
    Should Be Equal As Strings    ${resp.json()[0]['action']}  ${expectedAction}
    Should Be Equal As Strings    ${resp.json()[0]['user']}  healthcheck

PerformPostRequest
    [Arguments]  ${hostname}  ${url}  ${expectedstatus}  ${jsonfile}  ${filepath}
    ${auth}=  Create List  healthcheck  zb!XztG34
    ${postjson}=  Get file  ${filepath}/${jsonfile}
    Log  Creating session https://${hostname}:6969
    ${session}=  Create Session  policy  https://${hostname}:6969  auth=${auth}
    ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
    ${resp}=  POST On Session  policy  ${url}  data=${postjson}  headers=${headers}  expected_status=${expectedstatus}
    Log  Received response from policy ${resp.text}
    [return]  ${resp}

PerformPutRequest
    [Arguments]  ${url}  ${expectedstatus}  ${state}
    ${auth}=  Create List  healthcheck  zb!XztG34
    Log  Creating session https://${POLICY_PAP_IP}:6969
    ${session}=  Create Session  policy  https://${POLICY_PAP_IP}:6969  auth=${auth}
    ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
    ${resp}=  PUT On Session  policy  ${url}  params=state=${state}  headers=${headers}  expected_status=${expectedstatus}
    Log  Received response from policy ${resp.text}
    [return]  ${resp}

PeformGetRequest
    [Arguments]  ${url}  ${expectedstatus}  ${params}
    ${auth}=  Create List  healthcheck  zb!XztG34
    Log  Creating session https://${POLICY_PAP_IP}:6969
    ${session}=  Create Session  policy  https://${POLICY_PAP_IP}:6969  auth=${auth}
    ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
    ${resp}=  GET On Session  policy  ${url}  params=${params}  headers=${headers}  expected_status=${expectedstatus}
    Log  Received response from policy ${resp.text}
    [return]  ${resp}

PeformDeleteRequest
    [Arguments]  ${url}  ${expectedstatus}
    ${auth}=  Create List  healthcheck  zb!XztG34
    Log  Creating session https://${POLICY_PAP_IP}:6969
    ${session}=  Create Session  policy  https://${POLICY_PAP_IP}:6969  auth=${auth}
    ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
    ${resp}=  DELETE On Session  policy  ${url}  headers=${headers}  expected_status=${expectedstatus}
    Log  Received response from policy ${resp.text}