2 Documentation Verify SMO succeeds to create alarmSubscription, receive alarm notification, and query alarm list
3 # Library REST ssl_verify=False loglevel=DEBUG
4 Library REST ssl_verify=False
6 Resource ssh_helper.robot
8 Variables ${EXECDIR}${/}test_configs.yaml
10 # Suite Setup Set REST Headers
11 Suite Setup Set REST Headers And Clear Subscriptions
12 Suite Teardown Clear Subscriptions
15 ${HOST} ${ocloud.ssh.host}
16 ${PORT} ${ocloud.ssh.port}
17 ${USERNAME} ${ocloud.ssh.username}
18 ${PASSWORD} ${ocloud.ssh.password}
19 ${OPENRC} ${ocloud.ssh.openrc}
21 ${ORAN_HOST_EXTERNAL_IP} ${ocloud.oran_o2_app.api.host}
22 ${ORAN_SERVICE_NODE_PORT} ${ocloud.oran_o2_app.api.node_port}
23 ${GLOBAL_OCLOUD_ID1} ${ocloud.oran_o2_app.g_ocloud_id}
24 ${SMO_TOKEN_DATA} ${ocloud.oran_o2_app.smo_token_data}
25 ${globalLocationId} ${ocloud.oran_o2_app.g_location_id}
27 ${ORAN_O2IMS_ENDPOINT} ${ocloud.oran_o2_app.api.protocol}://${ORAN_HOST_EXTERNAL_IP}:${ORAN_SERVICE_NODE_PORT}
29 ${SMO_ALARM_OBSERVER_URL} ${smo.service.protocol}://${smo.service.host}:${smo.service.port}${smo.o2ims_alarm_observer.path}
30 ${consumerSubscriptionId} 3F20D850-AF4F-A84F-FB5A-0AD585410361
32 # ${subscription_data} {"callback": "${SMO_ALARM_OBSERVER_URL}", "consumerSubscriptionId": "${consumerSubscriptionId}", "filter": "(neq,resourcePools.globalLocationId,${globalLocationId})" }
34 # ${subscription_data} {"callback": "${SMO_ALARM_OBSERVER_URL}", "consumerSubscriptionId": "${consumerSubscriptionId}", "filter": "" }
37 s1, create alarmSubscription
38 [documentation] This test case verifies create alarmSubscription
39 [tags] ORAN_Compliance ORAN_O2 ORAN_O2IMS ORAN_O2IMS_Alarm_Subscription
42 # Expect Response Body ${CURDIR}/schemas/alarm_subscription_post_resp_properties.json
43 Expect Response Body ${CURDIR}/schemas/alarm_subscription_properties.json
45 Set Headers {"Content-Type": "application/json"}
46 ${subscription_data} input {"callback": "${SMO_ALARM_OBSERVER_URL}", "consumerSubscriptionId": "${consumerSubscriptionId}", "filter": "" }
48 # ${subscription_data} input {"callback": "${SMO_ALARM_OBSERVER_URL}", "consumerSubscriptionId": "${consumerSubscriptionId}", "filter": "(eq,resourceTypeID,typeid1234)" }
50 # ${subscription_data} input {"callback": "${SMO_ALARM_OBSERVER_URL}", "consumerSubscriptionId": "${consumerSubscriptionId}", "filter": "(neq,resourceTypeID,typeid1234)" }
52 # ${subscription_data} input {"callback": "${SMO_ALARM_OBSERVER_URL}", "consumerSubscriptionId": "${consumerSubscriptionId}", "filter": "(eq,perceivedSeverity,1)" }
54 ${res} POST ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions ${subscription_data}
55 # Output Schema request body ${CURDIR}/schemas/.output/alarm_subscription_post_req_properties.json
56 # Output Schema response body ${CURDIR}/schemas/.output/alarm_subscription_post_resp_properties.json
58 log ${res} level=DEBUG
59 Integer response status 201
62 # s2, query alarmSubscription list
63 # [documentation] This test case verifies query alarmSubscription list
64 # [tags] ORAN_Compliance ORAN_O2 ORAN_O2IMS ORAN_O2IMS_Alarm_Subscription
67 Expect Response Body ${CURDIR}/schemas/alarm_subscriptions_properties.json
68 ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions
69 # Output Schema response body ${CURDIR}/schemas/.output/alarm_subscriptions_properties.json
72 Integer response status 200
74 Array $ minItems=1 uniqueItems=true
77 Expect Response Body ${CURDIR}/schemas/alarm_subscriptions_properties.json
78 ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions?all_fields
79 # Output Schema response body ${CURDIR}/schemas/.output/alarm_subscriptions_properties.json
82 Integer response status 200
84 Array $ minItems=1 uniqueItems=true
86 # s?, query alarmSubscription list with filter
87 # [documentation] This test case verifies Query OCloud resourceTypes with filter
88 # [tags] ORAN_Compliance ORAN_O2 ORAN_O2IMS ORAN_O2IMS_Alarm_Subscription
91 Expect Response Body ${CURDIR}/schemas/alarm_subscriptions_properties.json
92 ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions?filter=(eq,consumerSubscriptionId,${consumerSubscriptionId})
95 Integer response status 200
99 # s3, query alarmSubscription detail
100 # [documentation] This test case verifies Query OCloud resourceTypes detail
101 # [tags] ORAN_Compliance ORAN_O2 ORAN_O2IMS ORAN_O2IMS_Alarm_Subscription
104 # GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions/${subscriptionId}
105 ${subscriptionId} output $[0].alarmSubscriptionId
107 Expect Response Body ${CURDIR}/schemas/alarm_subscription_properties.json
108 ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions/${subscriptionId}
109 # Output Schema response body ${CURDIR}/schemas/.output/alarm_subscriptions_properties.json
111 log ${res} level=INFO
112 Integer response status 200
116 Expect Response Body ${CURDIR}/schemas/alarm_subscription_allfields_properties.json
117 ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions/${subscriptionId}?all_fields
118 # Output Schema response body ${CURDIR}/schemas/.output/alarm_subscription_allfields_properties.json
120 log ${res} level=DEBUG
121 Integer response status 200
125 # Check duplication logic
126 Expect Response Body ${CURDIR}/schemas/client_errors_properties.json
127 ${res} POST ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions ${subscription_data}
128 # Output Schema response body ${CURDIR}/schemas/.output/client_errors_properties.json
130 log ${res} level=DEBUG
131 Integer response status 400
134 # s4, Stx/WRCP generates an alarm change event and check SMO succeeds to receive a alarm change notification
135 # [documentation] This test case verifies Query OCloud resourcePools without filter
136 # [tags] ORAN_Compliance ORAN_O2 ORAN_O2IMS ORAN_O2IMS_Alarm_Subscription
138 # ${stdout} ${stderr} ${rc}= Assert Alarm With Disk Usage
139 # log ${rc} level=DEBUG
140 # Should Be Equal ${rc} 0
143 # s5, query alarm list without filter
146 Expect Response Body ${CURDIR}/schemas/alarms_properties.json
147 ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms
148 # Output Schema response body ${CURDIR}/schemas/.output/alarms_properties.json
150 log ${res} level=DEBUG
151 Integer response status 200
153 Array $ minItems=1 uniqueItems=true
155 # # query with filter
156 # Expect Response Body ${CURDIR}/schemas/alarms_properties.json
157 # ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms?all_fields&filter=(eq,perceivedSeverity,1)
158 # # Output Schema response body ${CURDIR}/schemas/.output/alarms_properties.json
160 # log ${res} level=DEBUG
161 # Integer response status 200
162 # Array response body
163 # Array $ minItems=1 uniqueItems=true
165 # extract resourceTypeId for query with fitler test
166 ${resourceTypeId} output $[0].resourceTypeId
168 # s6, query alarm list with filter
170 # GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureInventory/v1/resourceTypes?filter=(eq,name,pserver)
171 # ${resourceTypeId} output $[0].resourceTypeId
172 Expect Response Body ${CURDIR}/schemas/alarms_properties.json
173 ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms?filter=(eq,resourceTypeID,${resourceTypeId})
175 log ${res} level=DEBUG
176 Integer response status 200
178 Array $ minItems=1 uniqueItems=true
179 Expect Response Body ${CURDIR}/schemas/alarms_properties.json
180 ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms {"filter": "(eq,resourceTypeID,${resourceTypeId};eq,alarmAcknowledged,false)"}
182 log ${res} level=DEBUG
183 Integer response status 200
185 Array $ minItems=1 uniqueItems=true
188 # s7, query alarm detail
189 Expect Response Body ${CURDIR}/schemas/alarms_properties.json
190 ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms?all_fields
191 # Output Schema response body ${CURDIR}/schemas/.output/alarms_properties.json
193 log ${res} level=DEBUG
194 Integer response status 200
196 Array $ minItems=1 uniqueItems=true
199 ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms?all_fields
200 log ${res} level=DEBUG
201 Integer response status 200
203 Array $ minItems=1 uniqueItems=true
206 ${alarmEventRecordId} output $[0].alarmEventRecordId
207 Expect Response Body ${CURDIR}/schemas/alarm_properties.json
208 ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms/${alarmEventRecordId}
209 # Output Schema response body ${CURDIR}/schemas/.output/alarm_properties.json
211 log ${res} level=DEBUG
212 Integer response status 200
215 ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms/${alarmEventRecordId}?all_fields
216 log ${res} level=DEBUG
217 Integer response status 200
220 # Boolean $.extensions['mgmt_affecting']
221 String $.extensions['alarm_state']
222 # Boolean $.extensions['degrade_affecting']
223 # Boolean $.extensions['service_affecting']
224 String $.extensions['alarm_type']
225 String $.extensions['entity_type_id']
226 String $.extensions['probable_cause']
227 String $.extensions['alarm_id']
228 String $.extensions['entity_instance_id']
229 String $.extensions['proposed_repair_action']
230 # Boolean $.extensions['suppression']
231 String $.extensions['suppression_status']
233 # s8, delete the alarmSubscription
234 # [documentation] This test case verifies Query OCloud resourcePools with filter
235 # [tags] ORAN_Compliance ORAN_O2 ORAN_O2IMS ORAN_O2IMS_Alarm_Subscription
238 # Expect Response Body ${CURDIR}/schemas/alarm_subscriptions_properties.json
239 ${res} DELETE ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions/${subscriptionId}
240 # Output Schema response body ${CURDIR}/schemas/.output/resourcePools_properties.json
242 log ${res} level=INFO
243 Integer response status 200
244 # Array response body
245 # Array $ minItems=1 maxItems=1
247 # s9, Stx/WRCP generates an alarm change event and check SMO cannot receive any alarm change notification
248 # [documentation] This test case verifies Query OCloud resourcePools detail
249 # [tags] ORAN_Compliance ORAN_O2 ORAN_O2IMS ORAN_O2IMS_Alarm_Subscription
251 # # Clear Expectations
252 # Expect Response Body ${CURDIR}/schemas/alarm_subscriptions_properties.json
253 # ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions/${subscriptionId}
254 # # Output Schema response body ${CURDIR}/schemas/.output/resourcePool_properties.json
256 # log ${res} level=INFO
257 # Integer response status 200
258 # Object response body
260 # clear the alarm condition
261 ${stdout} ${stderr} ${rc}= Clear Alarm With Disk Usage
262 # log ${rc} level=DEBUG
263 # Should Be Equal ${rc} 0
268 Set Headers {"accept": "application/json"}
269 Set Headers {"Authorization": "Bearer ${SMO_TOKEN_DATA}"}
273 ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions
274 log ${res} level=DEBUG
276 FOR ${sub} IN @{subs}
277 ${subscriptionId}= input ${sub}[alarmSubscriptionId]
278 ${res2} DELETE ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions/${subscriptionId}
279 log ${res2} level=DEBUG
282 Set REST Headers And Clear Subscriptions