X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=Automation%2FTests%2FResource%2FKeywords.robot;h=f252af8712f71c4c5eb265d421417f65c6f14ef7;hb=0fb24ff00209041b316352327e2c73b699943131;hp=46296d8c3d03d22740623473465465d127f3d67c;hpb=09288ab8d9de67eb9ac73bf8ac1e6eb79dcb2cb4;p=ric-plt%2Fe2mgr.git diff --git a/Automation/Tests/Resource/Keywords.robot b/Automation/Tests/Resource/Keywords.robot index 46296d8..f252af8 100644 --- a/Automation/Tests/Resource/Keywords.robot +++ b/Automation/Tests/Resource/Keywords.robot @@ -1,6 +1,7 @@ ############################################################################## # # Copyright (c) 2019 AT&T Intellectual Property. +# Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -23,20 +24,53 @@ *** Settings *** Documentation Keywords file Library ../Scripts/cleanup_db.py +Library ../Scripts/k8s_helper.py Resource ../Resource/resource.robot Library OperatingSystem +Library Process +Variables ../Scripts/variables.py *** Keywords *** -Get Request node b gnb +Get Request nodeb + [Arguments] ${nodeb_name}=${ranName} Sleep 1s - GET ${getNodeb} + GET ${getNodeb}/${nodeb_name} -Update Ran request +Get request nodeb health + [Arguments] ${request_body}=${list_nodeb_body} + Sleep 1s + LOG health check url ${nodeb_health_url} + LOG health check body ${request_body} + PUT ${nodeb_health_url} ${request_body} + +Update Gnb request Sleep 1s PUT ${update_gnb_url} ${update_gnb_body} +Add eNb Request + [Arguments] ${request}=${add_enb_request_body} + Sleep 1s + POST ${enb_url} ${request} + +Get NodeB state request + [Arguments] ${request}=${nodeb_state_url} + Sleep 1s + GET ${request} + +Delete eNb Request + Sleep 1s + DELETE ${enb_url}/${enb_ran_name} + +Update eNb Request + [Arguments] ${request}=${update_enb_request_body} + Sleep 1s + PUT ${enb_url}/${enb_ran_name} ${request} + +Set General Configuration request + Sleep 1s + PUT ${set_general_configuration} ${set_general_configuration_body} -Update Ran request not valid +Update Gnb request not valid Sleep 1s PUT ${update_gnb_url} ${update_gnb_body_notvalid} @@ -44,85 +78,172 @@ Remove log files Remove File ${EXECDIR}/${gnb_log_filename} Remove File ${EXECDIR}/${e2mgr_log_filename} Remove File ${EXECDIR}/${e2t_log_filename} - Remove File ${EXECDIR}/${rm_sim_log_filename} Save logs Sleep 1s Run ${Save_sim_log} Run ${Save_e2mgr_log} Run ${Save_e2t_log} - Run ${Save_rm_sim_log} - -Stop Simulator - Run And Return Rc And Output ${stop_simu} Prepare Enviorment - Log To Console Starting preparations - ${starting_timestamp} Evaluate datetime.datetime.now(datetime.timezone.utc).isoformat("T") modules=datetime - ${e2t_log_filename} Evaluate "e2t.${SUITE NAME}.log".replace(" ","-") - ${e2mgr_log_filename} Evaluate "e2mgr.${SUITE NAME}.log".replace(" ","-") - ${gnb_log_filename} Evaluate "gnb.${SUITE NAME}.log".replace(" ","-") - ${rm_sim_log_filename} Evaluate "rm_sim.${SUITE NAME}.log".replace(" ","-") - ${Save_sim_log} Evaluate 'docker logs --since ${starting_timestamp} gnbe2_oran_simu > ${gnb_log_filename}' - ${Save_e2mgr_log} Evaluate 'docker logs --since ${starting_timestamp} e2mgr > ${e2mgr_log_filename}' - ${Save_e2t_log} Evaluate 'docker logs --since ${starting_timestamp} e2 > ${e2t_log_filename}' - ${Save_rm_sim_log} Evaluate 'docker logs --since ${starting_timestamp} rm_sim > ${rm_sim_log_filename}' - Set Suite Variable ${e2t_log_filename} - Set Suite Variable ${e2mgr_log_filename} - Set Suite Variable ${gnb_log_filename} - Set Suite Variable ${rm_sim_log_filename} - Set Suite Variable ${Save_sim_log} - Set Suite Variable ${Save_e2mgr_log} - Set Suite Variable ${Save_e2t_log} - Set Suite Variable ${Save_rm_sim_log} - - Log To Console Ready to flush db - ${flush} cleanup_db.flush - Should Be Equal As Strings ${flush} True - Run And Return Rc And Output ${stop_simu} - Run And Return Rc And Output ${docker_Remove} - Run And Return Rc And Output ${run_simu_regular} - Sleep 3s - Log To Console Validating dockers are up - ${result}= Run And Return Rc And Output ${docker_command} - Should Be Equal As Integers ${result[1]} ${docker_number} + [Arguments] ${need_to_restart_pods}=${False} ${set_new_timestamp}=${True} + Init logs + Flush And Populate DB ${set_new_timestamp} + Run keyword if ${need_to_restart_pods}==${True} Restart RM and GNB Simulator + Wait until keyword succeeds 2 min 10 sec Validate Required Dockers + +Restart RM and GNB Simulator + Restart routing manager + Wait until keyword succeeds 2 min 10 sec Validate Required Dockers + Restart simulator + + +Init logs + ${starting_timestamp} Evaluate datetime.datetime.now(datetime.timezone.utc).isoformat("T") modules=datetime + ${e2t_log_filename} Evaluate "e2t.${SUITE NAME}.log".replace(" ","-") + ${e2mgr_log_filename} Evaluate "e2mgr.${SUITE NAME}.log".replace(" ","-") + ${gnb_log_filename} Evaluate "gnb.${SUITE NAME}.log".replace(" ","-") + ${Save_sim_log} Evaluate "kubectl -n ricplt logs --since-time=${starting_timestamp} $(${gnbe2_sim_pod}) > ${gnb_log_filename}" + ${Save_e2mgr_log} Evaluate "kubectl -n ricplt logs --since-time=${starting_timestamp} $(${e2mgr_pod}) > ${e2mgr_log_filename}" + ${Save_e2t_log} Evaluate "kubectl -n ricplt logs --since-time=${starting_timestamp} $(${e2term_pod}) > ${e2t_log_filename}" + Set Suite Variable ${e2t_log_filename} + Set Suite Variable ${e2mgr_log_filename} + Set Suite Variable ${gnb_log_filename} + Set Suite Variable ${Save_sim_log} + Set Suite Variable ${Save_e2mgr_log} + Set Suite Variable ${Save_e2t_log} + +Validate Required Dockers + [Arguments] ${required_number_of_dockers}=${pods_number} + Log To Console Validating all required dockers are up + ${result}= Run And Return Rc And Output ${verify_all_pods_are_ready_command} + Should Be Equal As Integers ${result[1]} ${required_number_of_dockers} Start E2 + Log to Console Starting E2Term Run And Return Rc And Output ${start_e2} - ${result}= Run And Return Rc And Output ${docker_command} - Should Be Equal As Integers ${result[1]} ${docker_number} - Sleep 2s + Sleep 5s Stop E2 + Log to Console Stopping E2Term Run And Return Rc And Output ${stop_e2} - ${result}= Run And Return Rc And Output ${docker_command} - Should Be Equal As Integers ${result[1]} ${docker_number-1} - Sleep 2s + Sleep 5s + +Start E2 Manager + Log to Console Starting E2Mgr + Run And Return Rc And Output ${start_e2mgr} + Sleep 5s + +Stop E2 Manager + Log to Console Stopping E2Mgr + Run And Return Rc And Output ${stop_e2mgr} + Sleep 5s Start Dbass - Run And Return Rc And Output ${dbass_remove} + Log to Console Starting redis Run And Return Rc And Output ${dbass_start} - ${result}= Run And Return Rc And Output ${docker_command} - Should Be Equal As Integers ${result[1]} ${docker_number} + Sleep 5s Stop Dbass + Log to Console Stopping redis Run And Return Rc And Output ${dbass_stop} - ${result}= Run And Return Rc And Output ${docker_command} - Should Be Equal As Integers ${result[1]} ${docker_number-1} + Sleep 5s -Restart simulator - Run And Return Rc And Output ${restart_simu} - ${result}= Run And Return Rc And Output ${docker_command} - Should Be Equal As Integers ${result[1]} ${docker_number} - -Start RoutingManager Simulator - Run And Return Rc And Output ${start_routingmanager_sim} - -Stop RoutingManager Simulator - Run And Return Rc And Output ${stop_routingmanager_sim} +Stop Simulator + log to console Stopping gnbe2 simulator + Run And Return Rc And Output ${stop_simu} + Sleep 90s -Restart simulator with less docker - Run And Return Rc And Output ${restart_simu} - ${result}= Run And Return Rc And Output ${docker_command} - Should Be Equal As Integers ${result[1]} ${docker_number-1} +Start Simulator + log to console Starting gnbe2 simulator + Run And Return Rc And Output ${start_simu} +Restart simulator + Log to Console Restarting gnbe2 simulator + Stop Simulator + Start Simulator + +Start Routing Manager + Log to Console Starting routing manager + Run And Return Rc And Output ${start_routing_manager} + Sleep 5s + +Stop Routing Manager + Log to Console Stopping routing manager + Run And Return Rc And Output ${stop_routing_manager} + Sleep 5s + +Restart Routing Manager + Log to Console Restarting routing manager + Stop Routing Manager + Start Routing Manager + +Start e2adapter + Log to Console Starting e2adapter + Run And Return Rc And Output ${start_e2adapter} + Sleep 5s + +Stop e2adapter + Log to Console Stopping e2adapter + Run And Return Rc And Output ${stop_e2adapter} + Sleep 90s + +Restart e2adapter + Log to Console Restarting e2adapter + Stop e2adapter + Start e2adapter + +Flush And Populate DB + [Arguments] ${set_new_timestamp}=${True} + Log To Console Flushing and populating DB + ${flush}= cleanup_db.flush ${set_new_timestamp} + Sleep 2s + Should Be Equal As Strings ${flush} True + +Stop All Pods Except Simulator + Stop E2 Manager + Stop Dbass + Stop E2 + Stop Routing Manager + Stop e2adapter + +Send eNB Setup Request + Log To Console Sending eNB setup request form e2adapter + Restart e2adapter + Wait until keyword succeeds 2 min 3 sec Validate Required Dockers + ${e2adapter_pod} = Run And Return Rc And Output kubectl get pods -n ricplt | /bin/grep e2adapter | /bin/grep Running | awk '{{print $1}}' + ${send_enb_setup} Evaluate "kubectl -n ricplt exec -it ${e2adapter_pod[1]} cli send-e2setup-req 10.0.2.15" + Run And Return Rc And Output ${send_enb_setup} + +Start Redis Monitor + Log To Console Starting redis monitor log + ${redis_monitor_log_filename} Evaluate "redis_monitor.${SUITE NAME}.log".replace(" ","-") + Set Suite Variable ${redis_monitor_log_filename} + Remove File ${EXECDIR}/${redis_monitor_log_filename} + Start Process kubectl -n ricplt exec -it statefulset-ricplt-dbaas-server-0 redis-cli MONITOR>${EXECDIR}/${redis_monitor_log_filename} shell=yes + +Stop Redis Monitor + Log To Console Stopping redis monitor log + log_scripts.kill_redis_monitor_root_process + + +Redis Monitor Logs - Verify Publish To Manipulation Channel + [Arguments] ${ran_name} ${event} + Log To Console Verify Publish To Manipulation Channel + Sleep 3s + ${result}= log_scripts.verify_redis_monitor_manipulation_message ${EXECDIR}/${redis_monitor_log_filename} ${ran_name} ${event} + Should Be Equal As Strings ${result} True + +Redis Monitor Logs - Verify Publish To Connection Status Channel + [Arguments] ${ran_name} ${event} + Log To Console Verify Publish To Connection Status Channel + Sleep 3s + ${result}= log_scripts.verify_redis_monitor_connection_status_message ${EXECDIR}/${redis_monitor_log_filename} ${ran_name} ${event} + Should Be Equal As Strings ${result} True + +Redis Monitor Logs - Verify NOT Published To Manipulation Channel + [Arguments] ${ran_name} ${event} + Log To Console Verify NOT Published To Manipulation Channel + Sleep 3s + ${result}= log_scripts.verify_redis_monitor_manipulation_message ${EXECDIR}/${redis_monitor_log_filename} ${ran_name} ${event} + Should Be Equal As Strings ${result} False \ No newline at end of file