X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test_scripts%2FO2IMS_Compliance_Test%2Fo2ims_compliance%2F7.3.4_SMO_succeeds_to_create_alarmSubscription_receive_alarm_notification_and_query_alarm_list.robot;fp=test_scripts%2FO2IMS_Compliance_Test%2Fo2ims_compliance%2F7.3.4_SMO_succeeds_to_create_alarmSubscription_receive_alarm_notification_and_query_alarm_list.robot;h=42a3364cd11fc6e180e522846d97c29e2835b37d;hb=323e652696ceb2746ea571cf9854b1b4cfb56ce5;hp=0000000000000000000000000000000000000000;hpb=41edb24f29769f7ba8a083666e3858edc56ee1ef;p=it%2Ftest.git diff --git a/test_scripts/O2IMS_Compliance_Test/o2ims_compliance/7.3.4_SMO_succeeds_to_create_alarmSubscription_receive_alarm_notification_and_query_alarm_list.robot b/test_scripts/O2IMS_Compliance_Test/o2ims_compliance/7.3.4_SMO_succeeds_to_create_alarmSubscription_receive_alarm_notification_and_query_alarm_list.robot new file mode 100644 index 0000000..42a3364 --- /dev/null +++ b/test_scripts/O2IMS_Compliance_Test/o2ims_compliance/7.3.4_SMO_succeeds_to_create_alarmSubscription_receive_alarm_notification_and_query_alarm_list.robot @@ -0,0 +1,284 @@ +*** Settings *** +Documentation Verify SMO succeeds to create alarmSubscription, receive alarm notification, and query alarm list +# Library REST ssl_verify=False loglevel=DEBUG +Library REST ssl_verify=False + +Resource ssh_helper.robot + +Variables ${EXECDIR}${/}test_configs.yaml + +# Suite Setup Set REST Headers +Suite Setup Set REST Headers And Clear Subscriptions +Suite Teardown Clear Subscriptions + +*** Variables *** +${HOST} ${ocloud.ssh.host} +${PORT} ${ocloud.ssh.port} +${USERNAME} ${ocloud.ssh.username} +${PASSWORD} ${ocloud.ssh.password} +${OPENRC} ${ocloud.ssh.openrc} + +${ORAN_HOST_EXTERNAL_IP} ${ocloud.oran_o2_app.api.host} +${ORAN_SERVICE_NODE_PORT} ${ocloud.oran_o2_app.api.node_port} +${GLOBAL_OCLOUD_ID1} ${ocloud.oran_o2_app.g_ocloud_id} +${SMO_TOKEN_DATA} ${ocloud.oran_o2_app.smo_token_data} +${globalLocationId} ${ocloud.oran_o2_app.g_location_id} + +${ORAN_O2IMS_ENDPOINT} ${ocloud.oran_o2_app.api.protocol}://${ORAN_HOST_EXTERNAL_IP}:${ORAN_SERVICE_NODE_PORT} + +${SMO_ALARM_OBSERVER_URL} ${smo.service.protocol}://${smo.service.host}:${smo.service.port}${smo.o2ims_alarm_observer.path} +${consumerSubscriptionId} 3F20D850-AF4F-A84F-FB5A-0AD585410361 + +# ${subscription_data} {"callback": "${SMO_ALARM_OBSERVER_URL}", "consumerSubscriptionId": "${consumerSubscriptionId}", "filter": "(neq,resourcePools.globalLocationId,${globalLocationId})" } + +# ${subscription_data} {"callback": "${SMO_ALARM_OBSERVER_URL}", "consumerSubscriptionId": "${consumerSubscriptionId}", "filter": "" } + +*** Test Cases *** +s1, create alarmSubscription + [documentation] This test case verifies create alarmSubscription + [tags] ORAN_Compliance ORAN_O2 ORAN_O2IMS ORAN_O2IMS_Alarm_Subscription + + Clear Expectations + # Expect Response Body ${CURDIR}/schemas/alarm_subscription_post_resp_properties.json + Expect Response Body ${CURDIR}/schemas/alarm_subscription_properties.json + + Set Headers {"Content-Type": "application/json"} + ${subscription_data} input {"callback": "${SMO_ALARM_OBSERVER_URL}", "consumerSubscriptionId": "${consumerSubscriptionId}", "filter": "" } + + # ${subscription_data} input {"callback": "${SMO_ALARM_OBSERVER_URL}", "consumerSubscriptionId": "${consumerSubscriptionId}", "filter": "(eq,resourceTypeID,typeid1234)" } + + # ${subscription_data} input {"callback": "${SMO_ALARM_OBSERVER_URL}", "consumerSubscriptionId": "${consumerSubscriptionId}", "filter": "(neq,resourceTypeID,typeid1234)" } + + # ${subscription_data} input {"callback": "${SMO_ALARM_OBSERVER_URL}", "consumerSubscriptionId": "${consumerSubscriptionId}", "filter": "(eq,perceivedSeverity,1)" } + + ${res} POST ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions ${subscription_data} + # Output Schema request body ${CURDIR}/schemas/.output/alarm_subscription_post_req_properties.json + # Output Schema response body ${CURDIR}/schemas/.output/alarm_subscription_post_resp_properties.json + Clear Expectations + log ${res} level=DEBUG + Integer response status 201 + Object response body + +# s2, query alarmSubscription list + # [documentation] This test case verifies query alarmSubscription list + # [tags] ORAN_Compliance ORAN_O2 ORAN_O2IMS ORAN_O2IMS_Alarm_Subscription + + Clear Expectations + Expect Response Body ${CURDIR}/schemas/alarm_subscriptions_properties.json + ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions + # Output Schema response body ${CURDIR}/schemas/.output/alarm_subscriptions_properties.json + Clear Expectations + log ${res} level=INFO + Integer response status 200 + Array response body + Array $ minItems=1 uniqueItems=true + + # all_fields + Expect Response Body ${CURDIR}/schemas/alarm_subscriptions_properties.json + ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions?all_fields + # Output Schema response body ${CURDIR}/schemas/.output/alarm_subscriptions_properties.json + Clear Expectations + log ${res} level=INFO + Integer response status 200 + Array response body + Array $ minItems=1 uniqueItems=true + +# s?, query alarmSubscription list with filter +# [documentation] This test case verifies Query OCloud resourceTypes with filter +# [tags] ORAN_Compliance ORAN_O2 ORAN_O2IMS ORAN_O2IMS_Alarm_Subscription + + # Clear Expectations + Expect Response Body ${CURDIR}/schemas/alarm_subscriptions_properties.json + ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions?filter=(eq,consumerSubscriptionId,${consumerSubscriptionId}) + Clear Expectations + log ${res} level=INFO + Integer response status 200 + Array response body + Array $ minItems=1 + +# s3, query alarmSubscription detail +# [documentation] This test case verifies Query OCloud resourceTypes detail +# [tags] ORAN_Compliance ORAN_O2 ORAN_O2IMS ORAN_O2IMS_Alarm_Subscription + + # Clear Expectations + # GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions/${subscriptionId} + ${subscriptionId} output $[0].alarmSubscriptionId + # Clear Expectations + Expect Response Body ${CURDIR}/schemas/alarm_subscription_properties.json + ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions/${subscriptionId} + # Output Schema response body ${CURDIR}/schemas/.output/alarm_subscriptions_properties.json + Clear Expectations + log ${res} level=INFO + Integer response status 200 + Object response body + + # all_fields + Expect Response Body ${CURDIR}/schemas/alarm_subscription_allfields_properties.json + ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions/${subscriptionId}?all_fields + # Output Schema response body ${CURDIR}/schemas/.output/alarm_subscription_allfields_properties.json + Clear Expectations + log ${res} level=DEBUG + Integer response status 200 + Object response body + + +# Check duplication logic + Expect Response Body ${CURDIR}/schemas/client_errors_properties.json + ${res} POST ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions ${subscription_data} + # Output Schema response body ${CURDIR}/schemas/.output/client_errors_properties.json + Clear Expectations + log ${res} level=DEBUG + Integer response status 400 + Object response body + +# s4, Stx/WRCP generates an alarm change event and check SMO succeeds to receive a alarm change notification +# [documentation] This test case verifies Query OCloud resourcePools without filter +# [tags] ORAN_Compliance ORAN_O2 ORAN_O2IMS ORAN_O2IMS_Alarm_Subscription + + # ${stdout} ${stderr} ${rc}= Assert Alarm With Disk Usage + # log ${rc} level=DEBUG + # Should Be Equal ${rc} 0 + + +# s5, query alarm list without filter + + Clear Expectations + Expect Response Body ${CURDIR}/schemas/alarms_properties.json + ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms + # Output Schema response body ${CURDIR}/schemas/.output/alarms_properties.json + Clear Expectations + log ${res} level=DEBUG + Integer response status 200 + Array response body + Array $ minItems=1 uniqueItems=true + + # # query with filter + # Expect Response Body ${CURDIR}/schemas/alarms_properties.json + # ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms?all_fields&filter=(eq,perceivedSeverity,1) + # # Output Schema response body ${CURDIR}/schemas/.output/alarms_properties.json + # Clear Expectations + # log ${res} level=DEBUG + # Integer response status 200 + # Array response body + # Array $ minItems=1 uniqueItems=true + + # extract resourceTypeId for query with fitler test + ${resourceTypeId} output $[0].resourceTypeId + +# s6, query alarm list with filter + Clear Expectations + # GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureInventory/v1/resourceTypes?filter=(eq,name,pserver) + # ${resourceTypeId} output $[0].resourceTypeId + Expect Response Body ${CURDIR}/schemas/alarms_properties.json + ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms?filter=(eq,resourceTypeID,${resourceTypeId}) + Clear Expectations + log ${res} level=DEBUG + Integer response status 200 + Array response body + Array $ minItems=1 uniqueItems=true + Expect Response Body ${CURDIR}/schemas/alarms_properties.json + ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms {"filter": "(eq,resourceTypeID,${resourceTypeId};eq,alarmAcknowledged,false)"} + Clear Expectations + log ${res} level=DEBUG + Integer response status 200 + Array response body + Array $ minItems=1 uniqueItems=true + + +# s7, query alarm detail + Expect Response Body ${CURDIR}/schemas/alarms_properties.json + ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms?all_fields + # Output Schema response body ${CURDIR}/schemas/.output/alarms_properties.json + Clear Expectations + log ${res} level=DEBUG + Integer response status 200 + Array response body + Array $ minItems=1 uniqueItems=true + + # all fields + ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms?all_fields + log ${res} level=DEBUG + Integer response status 200 + Array response body + Array $ minItems=1 uniqueItems=true + + # alarm detail + ${alarmEventRecordId} output $[0].alarmEventRecordId + Expect Response Body ${CURDIR}/schemas/alarm_properties.json + ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms/${alarmEventRecordId} + # Output Schema response body ${CURDIR}/schemas/.output/alarm_properties.json + Clear Expectations + log ${res} level=DEBUG + Integer response status 200 + + # all fields + ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarms/${alarmEventRecordId}?all_fields + log ${res} level=DEBUG + Integer response status 200 + Object response body + Object $.extensions + # Boolean $.extensions['mgmt_affecting'] + String $.extensions['alarm_state'] + # Boolean $.extensions['degrade_affecting'] + # Boolean $.extensions['service_affecting'] + String $.extensions['alarm_type'] + String $.extensions['entity_type_id'] + String $.extensions['probable_cause'] + String $.extensions['alarm_id'] + String $.extensions['entity_instance_id'] + String $.extensions['proposed_repair_action'] + # Boolean $.extensions['suppression'] + String $.extensions['suppression_status'] + +# s8, delete the alarmSubscription +# [documentation] This test case verifies Query OCloud resourcePools with filter +# [tags] ORAN_Compliance ORAN_O2 ORAN_O2IMS ORAN_O2IMS_Alarm_Subscription + + # Clear Expectations + # Expect Response Body ${CURDIR}/schemas/alarm_subscriptions_properties.json + ${res} DELETE ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions/${subscriptionId} + # Output Schema response body ${CURDIR}/schemas/.output/resourcePools_properties.json + Clear Expectations + log ${res} level=INFO + Integer response status 200 + # Array response body + # Array $ minItems=1 maxItems=1 + +# s9, Stx/WRCP generates an alarm change event and check SMO cannot receive any alarm change notification +# [documentation] This test case verifies Query OCloud resourcePools detail +# [tags] ORAN_Compliance ORAN_O2 ORAN_O2IMS ORAN_O2IMS_Alarm_Subscription + + # # Clear Expectations + # Expect Response Body ${CURDIR}/schemas/alarm_subscriptions_properties.json + # ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions/${subscriptionId} + # # Output Schema response body ${CURDIR}/schemas/.output/resourcePool_properties.json + # Clear Expectations + # log ${res} level=INFO + # Integer response status 200 + # Object response body + +# clear the alarm condition + ${stdout} ${stderr} ${rc}= Clear Alarm With Disk Usage +# log ${rc} level=DEBUG +# Should Be Equal ${rc} 0 + + +*** Keywords *** +Set REST Headers + Set Headers {"accept": "application/json"} + Set Headers {"Authorization": "Bearer ${SMO_TOKEN_DATA}"} + +Clear Subscriptions + Clear Expectations + ${res} GET ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions + log ${res} level=DEBUG + @{subs} output $ + FOR ${sub} IN @{subs} + ${subscriptionId}= input ${sub}[alarmSubscriptionId] + ${res2} DELETE ${ORAN_O2IMS_ENDPOINT}/o2ims-infrastructureMonitoring/v1/alarmSubscriptions/${subscriptionId} + log ${res2} level=DEBUG + END + +Set REST Headers And Clear Subscriptions + Set REST Headers + Clear Subscriptions