[SO] SO release image for CSIT testing
[integration/csit.git] / tests / policy / api / api-test.robot
1 *** Settings ***
2 Library     Collections
3 Library     RequestsLibrary
4 Library     OperatingSystem
5 Library     json
6
7 *** Test Cases ***
8 Healthcheck
9      [Documentation]    Runs Policy Api Health check
10      ${auth}=    Create List    healthcheck    zb!XztG34
11      Log    Creating session https://${POLICY_API_IP}:6969
12      ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
13      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
14      ${resp}=   Get Request     policy  /policy/api/v1/healthcheck     headers=${headers}
15      Log    Received response from policy ${resp.text}
16      Should Be Equal As Strings    ${resp.status_code}     200
17      Should Be Equal As Strings    ${resp.json()['code']}  200
18
19 Statistics
20      [Documentation]    Runs Policy Api Statistics
21      ${auth}=    Create List    healthcheck    zb!XztG34
22      Log    Creating session https://${POLICY_API_IP}:6969
23      ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
24      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
25      ${resp}=   Get Request     policy  /policy/api/v1/statistics     headers=${headers}
26      Log    Received response from policy ${resp.text}
27      Should Be Equal As Strings    ${resp.status_code}     200
28      Should Be Equal As Strings    ${resp.json()['code']}  200
29
30 RetrievePolicyTypes
31      [Documentation]    Gets Policy Types
32      ${auth}=    Create List    healthcheck    zb!XztG34
33      Log    Creating session https://${POLICY_API_IP}:6969
34      ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
35      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
36      ${resp}=   Get Request     policy  /policy/api/v1/policytypes     headers=${headers}
37      Log    Received response from policy ${resp.text}
38      Should Be Equal As Strings    ${resp.status_code}     200
39      Should Be Equal As Strings    ${resp.json()['version']}  1.0.0
40
41 CreateTCAPolicyTypeV1
42      [Documentation]    Create TCA Policy Type Version 1. Trying to create an existing policy type with any change and same version should cause error.
43      ${auth}=    Create List    healthcheck    zb!XztG34
44      ${postjson}=  Get file  ${CURDIR}/data/onap.policy.monitoring.cdap.tca.hi.lo.app.v1.json
45      Log    Creating session https://${POLICY_API_IP}:6969
46      ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
47      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
48      ${resp}=   Post Request   policy  /policy/api/v1/policytypes  data=${postjson}   headers=${headers}
49      Log    Received response from policy ${resp.text}
50      Should Be Equal As Strings    ${resp.status_code}    406
51
52 CreateTCAPolicyTypeV2
53      [Documentation]    Create TCA Policy Type Version 2
54      ${auth}=    Create List    healthcheck    zb!XztG34
55      ${postjson}=  Get file  ${CURDIR}/data/onap.policy.monitoring.cdap.tca.hi.lo.app.v2.json
56      Log    Creating session https://${POLICY_API_IP}:6969
57      ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
58      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
59      ${resp}=   Post Request   policy  /policy/api/v1/policytypes  data=${postjson}   headers=${headers}
60      Log    Received response from policy ${resp.text}
61      Should Be Equal As Strings    ${resp.status_code}     200
62      ${postjsonobject}   To Json    ${postjson}
63      Dictionary Should Contain Key    ${resp.json()}    tosca_definitions_version
64      Dictionary Should Contain Key    ${postjsonobject}    tosca_definitions_version
65
66 RetrieveMonitoringPolicyTypes
67      [Documentation]    Retrieve Monitoring related Policy Types
68      ${auth}=    Create List    healthcheck    zb!XztG34
69      Log    Creating session https://${POLICY_API_IP}:6969
70      ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
71      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
72      ${resp}=   Get Request   policy  /policy/api/v1/policytypes/onap.policies.Monitoring     headers=${headers}
73      Log    Received response from policy ${resp.text}
74      Should Be Equal As Strings    ${resp.status_code}     200
75      List Should Contain Value    ${resp.json()['policy_types']}  onap.policies.Monitoring
76
77
78 CreateNewMonitoringPolicyV1
79      [Documentation]    Create a new Monitoring TCA policy version 1
80      ${auth}=    Create List    healthcheck    zb!XztG34
81      ${postjson}=  Get file  ${CURDIR}/data/vCPE.policy.monitoring.input.tosca.v1.json
82      Log    Creating session https://${POLICY_API_IP}:6969
83      ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
84      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
85      ${resp}=   Post Request   policy  /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies  data=${postjson}   headers=${headers}
86      Log    Received response from policy ${resp.text}
87      ${postjsonobject}   To Json    ${postjson}
88      Should Be Equal As Strings    ${resp.status_code}     200
89      Dictionary Should Contain Key    ${resp.json()['topology_template']['policies'][0]}  onap.restart.tca
90      Dictionary Should Contain Key      ${postjsonobject['topology_template']['policies'][0]}  onap.restart.tca
91
92 SimpleCreateNewMonitoringPolicyV1
93      [Documentation]    Create a new Monitoring TCA policiy version 1 using simple endpoint. Trying to create an existing policy with any change and same version should cause error.
94      ${auth}=    Create List    healthcheck    zb!XztG34
95      ${postjson}=  Get file  ${CURDIR}/data/vCPE.policy.monitoring.input.tosca.v1_2.json
96      Log    Creating session https://${POLICY_API_IP}:6969
97      ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
98      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
99      ${resp}=   Post Request   policy  /policy/api/v1/policies  data=${postjson}   headers=${headers}
100      Log    Received response from policy ${resp.text}
101      Should Be Equal As Strings    ${resp.status_code}    406
102
103 SimpleCreateNewMonitoringPolicyV2
104      [Documentation]    Create a new Monitoring TCA policiy version 2 using simple endpoint
105      ${auth}=    Create List    healthcheck    zb!XztG34
106      ${postjson}=  Get file  ${CURDIR}/data/vCPE.policy.monitoring.input.tosca.v2.json
107      Log    Creating session https://${POLICY_API_IP}:6969
108      ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
109      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
110      ${resp}=   Post Request   policy  /policy/api/v1/policies  data=${postjson}   headers=${headers}
111      Log    Received response from policy ${resp.text}
112      ${postjsonobject}   To Json    ${postjson}
113      Should Be Equal As Strings    ${resp.status_code}     200
114      Dictionary Should Contain Key    ${resp.json()['topology_template']['policies'][0]}  onap.restart.tca
115      Dictionary Should Contain Key      ${postjsonobject['topology_template']['policies'][0]}  onap.restart.tca
116
117 RetrievePoliciesOfType
118      [Documentation]    Retrieve all Policies Created for a specific Policy Type
119      ${auth}=    Create List    healthcheck    zb!XztG34
120      ${expjson}=  Get file  ${CURDIR}/data/vCPE.policy.monitoring.input.tosca.v1.json
121      Log    Creating session https://${POLICY_API_IP}:6969
122      ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
123      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
124      ${resp}=   Get Request   policy  /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies     headers=${headers}
125      Log    Received response from policy ${resp.text}
126      ${expjsonobject}   To Json    ${expjson}
127      Should Be Equal As Strings    ${resp.status_code}     200
128      Dictionary Should Contain Key    ${resp.json()['topology_template']['policies'][0]}  onap.restart.tca
129      Dictionary Should Contain Key      ${expjsonobject['topology_template']['policies'][0]}  onap.restart.tca
130
131 DeleteSpecificPolicyV1
132      [Documentation]    Delete the Monitoring Policy Version 1 of the TCA Policy Type
133      ${auth}=    Create List    healthcheck    zb!XztG34
134      Log    Creating session https://${POLICY_API_IP}:6969
135      ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
136      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
137      ${resp}=   Delete Request   policy  /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/1.0.0     headers=${headers}
138      Log    Received response from policy ${resp.text}
139      Should Be Equal As Strings    ${resp.status_code}     200
140      ${resp}=   Delete Request   policy  /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/1.0.0     headers=${headers}
141      Should Be Equal As Strings    ${resp.status_code}     404
142
143 DeleteSpecificPolicyV2
144      [Documentation]    Delete the Monitoring Policy Version 2 of the TCA Policy Type
145      ${auth}=    Create List    healthcheck    zb!XztG34
146      Log    Creating session https://${POLICY_API_IP}:6969
147      ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
148      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
149      ${resp}=   Delete Request   policy  /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/2.0.0     headers=${headers}
150      Log    Received response from policy ${resp.text}
151      Should Be Equal As Strings    ${resp.status_code}     200
152      ${resp}=   Delete Request   policy  /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/2.0.0     headers=${headers}
153      Should Be Equal As Strings    ${resp.status_code}     404
154
155 DeleteSpecificPolicyTypeV1
156      [Documentation]    Delete the TCA Policy Type Version 1
157      ${auth}=    Create List    healthcheck    zb!XztG34
158      Log    Creating session https://${POLICY_API_IP}:6969
159      ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
160      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
161      ${resp}=   Delete Request   policy  /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0    headers=${headers}
162      Log    Received response from policy ${resp.text}
163      Should Be Equal As Strings    ${resp.status_code}     200
164      ${resp}=   Delete Request   policy  /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0    headers=${headers}
165      Should Be Equal As Strings    ${resp.status_code}     404
166
167 DeleteSpecificPolicyTypeV2
168      [Documentation]    Delete the TCA Policy Type Version 2
169      ${auth}=    Create List    healthcheck    zb!XztG34
170      Log    Creating session https://${POLICY_API_IP}:6969
171      ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
172      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
173      ${resp}=   Delete Request   policy  /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/2.0.0    headers=${headers}
174      Log    Received response from policy ${resp.text}
175      Should Be Equal As Strings    ${resp.status_code}     200
176      ${resp}=   Delete Request   policy  /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/2.0.0    headers=${headers}
177      Should Be Equal As Strings    ${resp.status_code}     404