1 ##############################################################################
3 # Copyright (c) 2019 AT&T Intellectual Property.
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 ##############################################################################
19 # This source code is part of the near-RT RIC (RAN Intelligent Controller)
20 # platform project (RICP).
24 Documentation Keywords file
25 Library ../Scripts/cleanup_db.py
26 Library ../Scripts/k8s_helper.py
27 Resource ../Resource/resource.robot
28 Library OperatingSystem
30 Variables ../Scripts/variables.py
33 ${e2adapter} ${e2adapter_pod_name}
37 [Arguments] ${nodeb_name}=${ranName}
39 GET ${getNodeb}/${nodeb_name}
43 PUT ${update_gnb_url} ${update_gnb_body}
47 POST ${enb_url} ${add_enb_request_body}
51 DELETE ${enb_url}/${enb_ran_name}
55 PUT ${enb_url}/${enb_ran_name} ${update_enb_request_body}
57 Set General Configuration request
59 PUT ${set_general_configuration} ${set_general_configuration_body}
61 Update Gnb request not valid
63 PUT ${update_gnb_url} ${update_gnb_body_notvalid}
66 Remove File ${EXECDIR}/${gnb_log_filename}
67 Remove File ${EXECDIR}/${e2mgr_log_filename}
68 Remove File ${EXECDIR}/${e2t_log_filename}
77 [Arguments] ${need_to_restart_pods}=${False} ${set_new_timestamp}=${True}
79 Flush And Populate DB ${set_new_timestamp}
80 Run keyword if ${need_to_restart_pods}==${True} Restart RM and GNB Simulator
81 Wait until keyword succeeds 2 min 10 sec Validate Required Dockers
83 Restart RM and GNB Simulator
84 Restart routing manager
85 Wait until keyword succeeds 2 min 10 sec Validate Required Dockers
90 ${starting_timestamp} Evaluate datetime.datetime.now(datetime.timezone.utc).isoformat("T") modules=datetime
91 ${e2t_log_filename} Evaluate "e2t.${SUITE NAME}.log".replace(" ","-")
92 ${e2mgr_log_filename} Evaluate "e2mgr.${SUITE NAME}.log".replace(" ","-")
93 ${gnb_log_filename} Evaluate "gnb.${SUITE NAME}.log".replace(" ","-")
94 ${Save_sim_log} Evaluate "kubectl -n ricplt logs --since-time=${starting_timestamp} $(${gnbe2_sim_pod}) > ${gnb_log_filename}"
95 ${Save_e2mgr_log} Evaluate "kubectl -n ricplt logs --since-time=${starting_timestamp} $(${e2mgr_pod}) > ${e2mgr_log_filename}"
96 ${Save_e2t_log} Evaluate "kubectl -n ricplt logs --since-time=${starting_timestamp} $(${e2term_pod}) > ${e2t_log_filename}"
97 Set Suite Variable ${e2t_log_filename}
98 Set Suite Variable ${e2mgr_log_filename}
99 Set Suite Variable ${gnb_log_filename}
100 Set Suite Variable ${Save_sim_log}
101 Set Suite Variable ${Save_e2mgr_log}
102 Set Suite Variable ${Save_e2t_log}
104 Validate Required Dockers
105 [Arguments] ${required_number_of_dockers}=${pods_number}
106 Log To Console Validating all required dockers are up
107 ${result}= Run And Return Rc And Output ${verify_all_pods_are_ready_command}
108 Should Be Equal As Integers ${result[1]} ${required_number_of_dockers}
111 Log to Console Starting E2Term
112 Run And Return Rc And Output ${start_e2}
116 Log to Console Stopping E2Term
117 Run And Return Rc And Output ${stop_e2}
121 Log to Console Starting E2Mgr
122 Run And Return Rc And Output ${start_e2mgr}
126 Log to Console Stopping E2Mgr
127 Run And Return Rc And Output ${stop_e2mgr}
131 Log to Console Starting redis
132 Run And Return Rc And Output ${dbass_start}
136 Log to Console Stopping redis
137 Run And Return Rc And Output ${dbass_stop}
141 log to console Stopping gnbe2 simulator
142 Run And Return Rc And Output ${stop_simu}
146 log to console Starting gnbe2 simulator
147 Run And Return Rc And Output ${start_simu}
150 Log to Console Restarting gnbe2 simulator
154 Start Routing Manager
155 Log to Console Starting routing manager
156 Run And Return Rc And Output ${start_routing_manager}
160 Log to Console Stopping routing manager
161 Run And Return Rc And Output ${stop_routing_manager}
164 Restart Routing Manager
165 Log to Console Restarting routing manager
167 Start Routing Manager
170 Log to Console Starting e2adapter
171 Run And Return Rc And Output ${start_e2adapter}
175 Log to Console Stopping e2adapter
176 Run And Return Rc And Output ${stop_e2adapter}
179 Flush And Populate DB
180 [Arguments] ${set_new_timestamp}=${True}
181 Log To Console Flushing and populating DB
182 ${flush}= cleanup_db.flush ${set_new_timestamp}
184 Should Be Equal As Strings ${flush} True
186 Stop All Pods Except Simulator
193 Send eNB Setup Request
194 Log To Console Sending eNB setup request form e2adapter
195 ${send_enb_setup} Evaluate "kubectl -n ricplt exec -it ${e2adapter} cli send-e2setup-req 10.0.2.15"
197 Run And Return Rc And Output ${send_enb_setup}
200 Log To Console Starting redis monitor log
201 ${redis_monitor_log_filename} Evaluate "redis_monitor.${SUITE NAME}.log".replace(" ","-")
202 Set Suite Variable ${redis_monitor_log_filename}
203 Remove File ${EXECDIR}/${redis_monitor_log_filename}
204 Start Process kubectl -n ricplt exec -it statefulset-ricplt-dbaas-server-0 redis-cli MONITOR>${EXECDIR}/${redis_monitor_log_filename} shell=yes
207 Log To Console Stopping redis monitor log
208 log_scripts.kill_redis_monitor_root_process
211 Redis Monitor Logs - Verify Publish To Manipulation Channel
212 [Arguments] ${ran_name} ${event}
213 Log To Console Verify Publish To Manipulation Channel
215 ${result}= log_scripts.verify_redis_monitor_manipulation_message ${EXECDIR}/${redis_monitor_log_filename} ${ran_name} ${event}
216 Should Be Equal As Strings ${result} True
218 Redis Monitor Logs - Verify Publish To Connection Status Channel
219 [Arguments] ${ran_name} ${event}
220 Log To Console Verify Publish To Connection Status Channel
222 ${result}= log_scripts.verify_redis_monitor_connection_status_message ${EXECDIR}/${redis_monitor_log_filename} ${ran_name} ${event}
223 Should Be Equal As Strings ${result} True
225 Redis Monitor Logs - Verify NOT Published To Manipulation Channel
226 [Arguments] ${ran_name} ${event}
227 Log To Console Verify NOT Published To Manipulation Channel
229 ${result}= log_scripts.verify_redis_monitor_manipulation_message ${EXECDIR}/${redis_monitor_log_filename} ${ran_name} ${event}
230 Should Be Equal As Strings ${result} False