blob: e506657a4f4195cfc35fc1afd763045ab5cc203d [file] [log] [blame]
##############################################################################
#
# 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 70s
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