############################################################################## # # Copyright (c) 2019 AT&T Intellectual Property. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ############################################################################## # # This source code is part of the near-RT RIC (RAN Intelligent Controller) # platform project (RICP). # *** Settings *** Documentation Keywords file Library ../Scripts/cleanup_db.py Library ../Scripts/k8s_helper.py Resource ../Resource/resource.robot Library OperatingSystem Library Process *** Keywords *** Get Request node b gnb Sleep 1s GET ${getNodeb} Update Gnb request Sleep 1s PUT ${update_gnb_url} ${update_gnb_body} Add eNb Request Sleep 1s POST ${enb_url} ${add_enb_request_body} Delete eNb Request Sleep 1s DELETE ${enb_url}/${enb_ran_name} Update eNb Request Sleep 1s PUT ${enb_url}/${enb_ran_name} ${update_enb_request_body} Set General Configuration request Sleep 1s PUT ${set_general_configuration} ${set_general_configuration_body} 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} Save logs Sleep 1s Run ${Save_sim_log} Run ${Save_e2mgr_log} Run ${Save_e2t_log} Prepare Enviorment [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} Sleep 5s Stop E2 Log to Console Stopping E2Term Run And Return Rc And Output ${stop_e2} 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 Log to Console Starting redis Run And Return Rc And Output ${dbass_start} Sleep 5s Stop Dbass Log to Console Stopping redis Run And Return Rc And Output ${dbass_stop} 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 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 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 ${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 ${result}= log_scripts.verify_redis_monitor_connection_status_message ${EXECDIR}/${redis_monitor_log_filename} ${ran_name} ${event} Should Be Equal As Strings ${result} True