Issue-ID: RIC-149
[it/test.git] / ric_robot_suite / helm / nanobot / configmap-src / public / resources / e2mgr_interface.robot
diff --git a/ric_robot_suite/helm/nanobot/configmap-src/public/resources/e2mgr_interface.robot b/ric_robot_suite/helm/nanobot/configmap-src/public/resources/e2mgr_interface.robot
new file mode 100644 (file)
index 0000000..115f63a
--- /dev/null
@@ -0,0 +1,135 @@
+#   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} 
+