X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=Automation%2FTests%2FResource%2FKeywords.robot;h=552f4ab5e3db6398dd72283c56bed4a82cac7b35;hb=460b4806813d4abbcb8d379f9297a41d6e519c4b;hp=2593c5f2681a7d6dcf7a09bd0e85586ca0521bd6;hpb=efcb4528362460aa2249d319c9752b63bb720fe2;p=ric-plt%2Fe2mgr.git diff --git a/Automation/Tests/Resource/Keywords.robot b/Automation/Tests/Resource/Keywords.robot index 2593c5f..552f4ab 100644 --- a/Automation/Tests/Resource/Keywords.robot +++ b/Automation/Tests/Resource/Keywords.robot @@ -23,150 +23,219 @@ *** 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 *** -Post Request setup node b x-2 - Set Headers ${header} - POST /v1/nodeb/x2-setup ${json} +Get Request nodeb + [Arguments] ${nodeb_name}=${ranName} + Sleep 1s + GET ${getNodeb}/${nodeb_name} +Update Gnb request + Sleep 1s + PUT ${update_gnb_url} ${update_gnb_body} -Put Request Resource Status Start - Set Headers ${header} - PUT /v1/general/resourcestatus ${resource_status_start_json} +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} -Put Request Resource Status Stop - Set Headers ${header} - PUT /v1/general/resourcestatus ${resource_status_stop_json} +Delete eNb Request + Sleep 1s + DELETE ${enb_url}/${enb_ran_name} -Get Request node b enb test1 - Sleep 1s - GET /v1/nodeb/test1 +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} -Get Request node b enb test2 - Sleep 1s - GET /v1/nodeb/test2 - +Update Gnb request not valid + Sleep 1s + PUT ${update_gnb_url} ${update_gnb_body_notvalid} Remove log files Remove File ${EXECDIR}/${gnb_log_filename} Remove File ${EXECDIR}/${e2mgr_log_filename} Remove File ${EXECDIR}/${e2t_log_filename} - Remove File ${EXECDIR}/${rsm_log_filename} - Remove File ${EXECDIR}/${e2e_simu_log_filename} - Remove File ${EXECDIR}/${rm_sim_log_filename} - Remove File ${EXECDIR}/${e2adapter_log_filename} Save logs Sleep 1s Run ${Save_sim_log} Run ${Save_e2mgr_log} Run ${Save_e2t_log} - Run ${Save_rsm_log} - Run ${Save_e2e_simu_log} - Run ${Save_rm_sim_log} - Run ${Save_e2adapter_log} - - -Post Request setup node b endc-setup - Set Headers ${header} - POST /v1/nodeb/endc-setup ${endcjson} - -Stop Simulator - Run And Return Rc And Output ${stop_simu} - - - -Prepare Simulator For Load Information - Run And Return Rc And Output ${stop_simu} - Run And Return Rc And Output ${docker_Remove} - ${flush} cleanup_db.flush - Should Be Equal As Strings ${flush} True - Run And Return Rc And Output ${run_simu_load} - ${result}= Run And Return Rc And Output ${docker_command} - Should Be Equal As Integers ${result[1]} ${docker_number} Prepare Enviorment - ${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(" ","-") - ${rsm_log_filename} Evaluate "rsm.${SUITE NAME}.log".replace(" ","-") - ${e2e_simu_log_filename} Evaluate "e2e_simu.${SUITE NAME}.log".replace(" ","-") - ${rm_sim_log_filename} Evaluate "rm_sim.${SUITE NAME}.log".replace(" ","-") - ${e2adapter_log_filename} Evaluate "e2adapter.${SUITE NAME}.log".replace(" ","-") - ${Save_sim_log} Evaluate 'docker logs --since ${starting_timestamp} gnbe2_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_rsm_log} Evaluate 'docker logs --since ${starting_timestamp} rsm > ${rsm_log_filename}' - ${Save_e2e_simu_log} Evaluate 'docker logs --since ${starting_timestamp} e2e_simu > ${e2e_simu_log_filename}' - ${Save_rm_sim_log} Evaluate 'docker logs --since ${starting_timestamp} rm_sim > ${rm_sim_log_filename}' - ${Save_e2adapter_log} Evaluate 'docker logs --since ${starting_timestamp} e2adapter > ${e2adapter_log_filename}' - Set Suite Variable ${e2t_log_filename} - Set Suite Variable ${e2mgr_log_filename} - Set Suite Variable ${gnb_log_filename} - Set Suite Variable ${rsm_log_filename} - Set Suite Variable ${e2e_simu_log_filename} - Set Suite Variable ${rm_sim_log_filename} - Set Suite Variable ${e2adapter_log_filename} - Set Suite Variable ${Save_sim_log} - Set Suite Variable ${Save_e2mgr_log} - Set Suite Variable ${Save_e2t_log} - Set Suite Variable ${Save_rsm_log} - Set Suite Variable ${Save_e2e_simu_log} - Set Suite Variable ${Save_rm_sim_log} - Set Suite Variable ${Save_e2adapter_log} - - ${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 ${stop_e2e_simu} - Run And Return Rc And Output ${docker_Remove} - Run And Return Rc And Output ${docker_remove_e2e_simu} - Run And Return Rc And Output ${run_simu_regular} - Run And Return Rc And Output ${run_e2e_simu_regular} - Run And Return Rc And Output ${restart_e2adapter} - Sleep 2s - ${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} - -Restart simulator - - Run And Return Rc And Output ${restart_docker_sim} - ${result}= Run And Return Rc And Output ${docker_command} - Should Be Equal As Integers ${result[1]} ${docker_number} - - + Sleep 5s +Stop Simulator + log to console Stopping gnbe2 simulator + Run And Return Rc And Output ${stop_simu} + Sleep 90s +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