# Copyright (c) 2019 AT&T Intellectual Property. # Copyright (c) 2020 HCL Technologies Limited. # 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. *** Settings *** Documentation The main interface for interacting with RIC E2 Manager (E2Mgr). ... It handles low level stuff like managing the http request library and ... E2Mgr required fields Library RequestsLibrary Library UUID Resource /robot/resources/global_properties.robot Resource /robot/resources/json_templater.robot *** Variables *** ${E2MGR_BASE_PATH} v1/nodeb ${E2MGR_ENDPOINT} ${GLOBAL_E2MGR_SERVER_PROTOCOL}://${GLOBAL_INJECTED_E2MGR_IP_ADDR}:${GLOBAL_E2MGR_SERVER_PORT} ${E2MGR_SETUP_NODEB_TEMPLATE} robot/assets/templates/e2mgr_setup_nodeb.template ** Keywords *** Run E2Mgr Health Check [Documentation] Runs E2Mgr Health check ${data_path} = Set Variable /v1/health ${resp} = Run E2Mgr GET Request ${data_path} Check NodeB Status [Documentation] Check NodeB Status [Arguments] ${ran_name} ${resp} = Run E2Mgr Get NodeB Request ${ran_name} Should Be Equal As Strings ${resp.json()['connectionStatus']} CONNECTED [Return] ${resp} Run E2Mgr Get NodeB Request [Documentation] Runs E2Mgr Get NodeB Request [Arguments] ${ran_name} ${data_path} = Set Variable ${E2MGR_BASE_PATH}/${ran_name} ${resp} = Run E2Mgr GET Request ${data_path} Should Be Equal As Strings ${resp.json()['ranName']} ${ran_name} [Return] ${resp} Run E2Mgr Get All NodeBs Request [Documentation] Runs E2Mgr Get All NodeBs Request ${data_path} = Set Variable ${E2MGR_BASE_PATH}/ids ${resp} = Run E2Mgr GET Request ${data_path} [Return] ${resp} Run E2Mgr Setup NodeB X2 [documentation] Setup X2 NodeB via E2 Manager [Arguments] ${ran_name} ${ran_ip} ${ran_port} ${data_path} = Set Variable ${E2MGR_BASE_PATH}/x2-setup ${dict} = Create Dictionary ... ran_name=${ran_name} ... ran_ip=${ran_ip} ... ran_port=${ran_port} ${data} = Fill JSON Template File ${E2MGR_SETUP_NODEB_TEMPLATE} ${dict} ${resp} = Run E2Mgr POST Request ${data_path} ${data} [Return] ${resp} Run E2Mgr Setup NodeB Endc [documentation] Setup Endc NodeB via E2 Manager [Arguments] ${ran_name} ${ran_ip} ${ran_port} ${data_path} = Set Variable ${E2MGR_BASE_PATH}/endc-setup ${dict} = Create Dictionary ran_name=${ran_name} ran_ip=${ran_ip} ran_port=${ran_port} ${data} = Fill JSON Template File ${E2MGR_SETUP_NODEB_TEMPLATE} ${dict} ${resp} = Run E2Mgr POST Request ${data_path} ${data} [Return] ${resp} Run E2Mgr Delete NodeB [documentation] Delete NodeB via E2 Manager [Arguments] ${ran_name} ${data_path} = Set Variable ${E2MGR_BASE_PATH}/${ran_name} ${resp} = Run E2Mgr DELETE Request ${data_path} # Run E2Mgr GET Request [Documentation] Runs E2Mgr GET Request [Arguments] ${data_path} ${auth} = Create List ... ${GLOBAL_INJECTED_E2MGR_USER} ... ${GLOBAL_INJECTED_E2MGR_PASSWORD} ${session} = Create Session e2mgr ${E2MGR_ENDPOINT} auth=${auth} ${uuid} = Generate UUID ${headers} = Create Dictionary ... Accept=application/json ... Content-Type=application/json ${resp} = Get Request e2mgr ${data_path} headers=${headers} Log Received response from E2Mgr ${resp.text} Should Be True ${resp} [Return] ${resp} Run E2Mgr DELETE Request [Documentation] Runs E2Mgr Delete Request [Arguments] ${data_path} ${auth} = Create List ... ${GLOBAL_INJECTED_E2MGR_USER} ... ${GLOBAL_INJECTED_E2MGR_PASSWORD} ${session} = Create Session e2mgr ${E2MGR_ENDPOINT} auth=${auth} ${uuid} = Generate UUID ${headers} = Create Dictionary ... Accept=application/json ... Content-Type=application/json ${resp} = Delete Request e2mgr ${data_path} headers=${headers} Log Received response from E2Mgr ${resp.text} Should Be True ${resp} [Return] ${resp} Run E2Mgr POST Request [Documentation] Send an HTTP POST to the E2 Manager [Arguments] ${data_path} ${data} ${auth} = Create List ... ${GLOBAL_INJECTED_E2MGR_USER} ... ${GLOBAL_INJECTED_E2MGR_PASSWORD} ${session} = Create Session e2mgr ${E2MGR_ENDPOINT} auth=${auth} ${headers} = Create Dictionary ... Accept=application/json ... Content-Type=application/json ${resp} = Post Request e2mgr ... ${data_path} ... data=${data} ... headers=${headers} Log Received response from E2Mgr ${resp.text} Should Be True ${resp} [Return] ${resp}