Resource ../Resource/resource.robot
Resource ../Resource/Keywords.robot
Library OperatingSystem
+Library Process
+Library ../Scripts/log_scripts.py
Library REST ${url}
*** Test Cases ***
+Prepare Redis Monitor Log
+ Start Redis Monitor
+
Add eNB
Sleep 2s
Add eNb Request
String response body nodeType ENB
String response body enb enbType MACRO_ENB
+prepare logs for tests
+ Remove log files
+ Save logs
+Redis Monitor Logs - Verify Publish
+ Redis Monitor Logs - Verify Publish To Manipulation Channel ${enb_ran_name} ADDED
-
+[Teardown]
+ Stop Redis Monitor
--- /dev/null
+##############################################################################
+#
+# 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 ***
+Variables ../Scripts/variables.py
+Suite Setup Prepare Enviorment ${False}
+Resource ../Resource/resource.robot
+Resource ../Resource/Keywords.robot
+Library OperatingSystem
+Library ../Scripts/log_scripts.py
+Library ../Scripts/k8s_helper.py
+Library REST ${url}
+
+
+*** Variables ***
+${url} ${e2mgr_address}
+
+*** Test Cases ***
+
+Prepare Redis Monitor Log
+ Start Redis Monitor
+
+Add eNB
+ Sleep 2s
+ Add eNb Request
+
+Delete eNb
+ Sleep 2s
+ Delete eNb Request
+ Integer response status 204
+
+
+prepare logs for tests
+ Remove log files
+ Save logs
+
+E2M Logs - Verify Deletion
+ ${result} log_scripts.verify_log_message ${EXECDIR}/${e2mgr_log_filename} ${delete_enb_log_message}
+ Should Be Equal As Strings ${result} True
+
+Redis Monitor Logs - Verify Publish
+ Redis Monitor Logs - Verify Publish To Manipulation Channel ${enb_ran_name} DELETED
+
+[Teardown]
+ Stop Redis Monitor
\ No newline at end of file
--- /dev/null
+##############################################################################
+#
+# 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 Add_ENB
*** Settings ***
Variables ../Scripts/variables.py
-Suite Setup Prepare Enviorment ${True}
Resource ../Resource/resource.robot
Resource ../Resource/Keywords.robot
Library OperatingSystem
Library ../Scripts/find_rmr_message.py
-Library ../Scripts/rsmscripts.py
+Library ../Scripts/log_scripts.py
Library REST ${url}
*** Variables ***
*** Test Cases ***
+[Setup]
+ Start Redis Monitor
+ AND Prepare Enviorment ${True}
+
+Redis Monitor Logs - Verify Publish
+ Redis Monitor Logs - Verify Publish To Connection Status Channel ${ran_name} CONNECTED
Get request gnb
Sleep 2s
Remove log files
Save logs
+[Teardown]
+ Stop Redis Monitor
\ No newline at end of file
Resource ../Resource/Keywords.robot
Library ../Scripts/find_error_script.py
Library ../Scripts/e2mdbscripts.py
+Library ../Scripts/log_scripts.py
Library OperatingSystem
Library Collections
Library REST ${url}
*** Test Cases ***
+Prepare Redis Monitor Log
+ Start Redis Monitor
+
Setup Ran and verify it's CONNECTED and associated
Get Request node b gnb
Integer response status 200
${result} e2mdbscripts.verify_ran_is_associated_with_e2t_instance ${ranname} ${e2t_alpha_address}
Should Be True ${result} == False
-#Verify e2mgr logs - Set and Publish Disconnect True
-# ${result} find_error_script.find_error ${EXECDIR} ${e2mgr_log_filename} ${set_and_publish_disconnect}
-# Should Be Equal As Strings ${result} True
+Redis Monitor Logs - Verify Publish
+ Redis Monitor Logs - Verify Publish To Connection Status Channel ${ran_name} DISCONNECTED
[Teardown] Run Keywords
Start Simulator
- AND wait until keyword succeeds 1 min 10 sec Validate Required Dockers
\ No newline at end of file
+ AND wait until keyword succeeds 1 min 10 sec Validate Required Dockers
+ AND Stop Redis Monitor
\ No newline at end of file
Resource ../Resource/Keywords.robot
Resource red_button_keywords.robot
Library ../Scripts/find_error_script.py
+Library ../Scripts/log_scripts.py
Library OperatingSystem
Library Collections
Library REST ${url}
*** Test Cases ***
+Prepare Redis Monitor Log
+ Start Redis Monitor
+
Verify gnb nodeb connection status is CONNECTED and it's associated to an e2t instance
Verify connected and associated
Verify E2T instance has no associated RANs
Verify E2T instance has no associated RANs
-#Verify e2mgr logs - Set and Publish Disconnect
-# ${result} find_error_script.find_error ${EXECDIR} ${e2mgr_log_filename} ${set_and_publish_disconnect}
-# Should Be Equal As Strings ${result} True
\ No newline at end of file
+Redis Monitor Logs - Verify Publish
+ Redis Monitor Logs - Verify Publish To Connection Status Channel ${ran_name} DISCONNECTED
+
+[Teardown]
+ Stop Redis Monitor
\ No newline at end of file
Resource ../Resource/Keywords.robot
Resource red_button_keywords.robot
Library ../Scripts/find_error_script.py
+Library ../Scripts/log_scripts.py
Library OperatingSystem
Library Collections
Library REST ${url}
*** Test Cases ***
+Prepare Redis Monitor Log
+ Start Redis Monitor
+
Verify gnb nodeb connection status is CONNECTED and it's associated to an e2t instance
Verify connected and associated
Remove log files
Save logs
-#Verify e2mgr logs - Set and Publish Disconnect
-# ${result} find_error_script.find_error ${EXECDIR} ${e2mgr_log_filename} ${set_and_publish_disconnect}
-# Should Be Equal As Strings ${result} True
+Redis Monitor Logs - Verify Publish 1
+ Redis Monitor Logs - Verify Publish To Connection Status Channel ${ran_name} DISCONNECTED
Verify nodeb's connection status is SHUT_DOWN and it's NOT associated to an e2t instance
Verify shutdown for gnb
wait until keyword succeeds 1 min 10 sec Validate Required Dockers
Verify gnb nodeb connection status is CONNECTED and it's associated to an e2t instance - checking again
- Verify connected and associated
\ No newline at end of file
+ Verify connected and associated
+
+Redis Monitor Logs - Verify Publish 2
+ Redis Monitor Logs - Verify Publish To Connection Status Channel ${ran_name} CONNECTED
+
+[Teardown]
+ Stop Redis Monitor
\ No newline at end of file
Resource ../Resource/Keywords.robot
Resource red_button_keywords.robot
Library ../Scripts/find_error_script.py
+Library ../Scripts/log_scripts.py
Library OperatingSystem
Library Collections
Library REST ${url}
*** Test Cases ***
+Prepare Redis Monitor Log
+ Start Redis Monitor
+
Verify nodeb connection status is CONNECTED and it's associated to an e2t instance
Verify connected and associated
Remove log files
Save logs
-#Verify e2mgr logs - Set and Publish Disconnect True
-# ${result} find_error_script.find_error ${EXECDIR} ${e2mgr_log_filename} ${set_and_publish_disconnect}
-# Should Be Equal As Strings ${result} True
+Redis Monitor Logs - Verify Publish
+ Redis Monitor Logs - Verify Publish To Connection Status Channel ${ran_name} DISCONNECTED
Verify nodeb's connection status is SHUT_DOWN and it's NOT associated to an e2t instance
Verify shutdown for gnb
Verify again E2T instance has no associated RANs
Verify E2T instance has no associated RANs
+
+[Teardown]
+ Stop Redis Monitor
\ No newline at end of file
*** 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
Add eNb Request
Sleep 1s
- POST ${add_enb_url} ${add_enb_request_body}
+ 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
Remove File ${EXECDIR}/${e2mgr_log_filename}
Remove File ${EXECDIR}/${e2t_log_filename}
+
Save logs
Sleep 1s
Run ${Save_sim_log}
${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}
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} ${string}
+ Log To Console Verify Publish To Manipulation Channel
+ ${result}= log_scripts.verify_redis_monitor_manipulation_message ${EXECDIR}/${redis_monitor_log_filename} ${ran_name} ${string}
+ Should Be Equal As Strings ${result} True
+
+Redis Monitor Logs - Verify Publish To Connection Status Channel
+ [Arguments] ${ran_name} ${string}
+ 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} ${string}
+ Should Be Equal As Strings ${result} True
+
${set_general_configuration} /v1/nodeb/parameters
${set_general_configuration_body} {"enableRic":false}
${update_gnb_url} /v1/nodeb/${ranName}/update
-${add_enb_url} /v1/nodeb/enb
+${enb_url} /v1/nodeb/enb
${update_gnb_body} {"servedNrCells":[{"servedNrCellInformation":{"cellId":"abcd","choiceNrMode":{"fdd":{}},"nrMode":1,"nrPci":1,"servedPlmns":["whatever"]},"nrNeighbourInfos":[{"nrCgi":"one","choiceNrMode":{"fdd":{}},"nrMode":1,"nrPci":1}]}]}
${update_gnb_body_notvalid} {"servedNrCells":[{"servedNrCellInformation":{"choiceNrMode":{"fdd":{}},"nrMode":1,"nrPci":1,"servedPlmns":["whatever"]},"nrNeighbourInfos":[{"nrCgi":"whatever","choiceNrMode":{"fdd":{}},"nrMode":1,"nrPci":1}]}]}
${add_enb_request_body} {"ranName":"enb_test","globalNbId":{"nbId":"abc","plmnId":"def"},"port":1234,"enb":{"enbType":1,"guGroupIds":["ghi"],"servedCells":[{"broadcastPlmns":["jkl"],"cellId":"mnop","choiceEutraMode":{"fdd":{"dlearFcn":1,"ulearFcn":1},"tdd":{"additionalSpecialSubframeExtensionInfo":{"additionalSpecialSubframePatternsExtension":1,"cyclicPrefixDl":1,"cyclicPrefixUl":1},"additionalSpecialSubframeInfo":{"additionalSpecialSubframePatterns":1,"cyclicPrefixDl":1,"cyclicPrefixUl":1},"earFcn":4,"specialSubframeInfo":{"specialSubframePatterns":1,"cyclicPrefixDl":1,"cyclicPrefixUl":1}}},"eutraMode":1,"csgId":"string","mbmsServiceAreaIdentities":["sds"],"mbsfnSubframeInfos":[{"radioframeAllocationOffset":3,"subframeAllocation":"jhg"}],"multibandInfos":[4],"neighbourInfos":[{"earFcn":4,"ecgi":"klj","pci":5,"tac":"wew"}],"pci":2,"prachConfiguration":{"highSpeedFlag":true,"prachConfigurationIndex":5,"prachFrequencyOffset":6,"rootSequenceIndex":7,"zeroCorrelationZoneConfiguration":6},"tac":"asd","additionalCellInformation":{"cellLatitude":1,"cellLongitude":1,"antennaHeight":1,"antennaAzimuthDirection":2,"antennaTiltAngle":3,"antennaMaxTransmit":4,"antennaMaxGain":5,"sectorId":6}},{"broadcastPlmns":["jkl"],"cellId":"qrst","choiceEutraMode":{"fdd":{"dlearFcn":4,"ulearFcn":2},"tdd":{"additionalSpecialSubframeExtensionInfo":{"additionalSpecialSubframePatternsExtension":1,"cyclicPrefixDl":1,"cyclicPrefixUl":1},"additionalSpecialSubframeInfo":{"additionalSpecialSubframePatterns":1,"cyclicPrefixDl":1,"cyclicPrefixUl":1},"earFcn":4,"specialSubframeInfo":{"specialSubframePatterns":1,"cyclicPrefixDl":1,"cyclicPrefixUl":1}}},"eutraMode":1,"csgId":"string","mbmsServiceAreaIdentities":["sds"],"mbsfnSubframeInfos":[{"radioframeAllocationOffset":5,"subframeAllocation":"jhg"}],"multibandInfos":[4],"neighbourInfos":[{"earFcn":2,"ecgi":"klj","pci":4,"tac":"wew"}],"pci":3,"prachConfiguration":{"highSpeedFlag":true,"prachConfigurationIndex":4,"prachFrequencyOffset":3,"rootSequenceIndex":3,"zeroCorrelationZoneConfiguration":2},"tac":"asd","additionalCellInformation":{"cellLatitude":3,"cellLongitude":3,"antennaHeight":3,"antennaAzimuthDirection":3,"antennaTiltAngle":4,"antennaMaxTransmit":4,"antennaMaxGain":5,"sectorId":5}}]}}
${add_enb_response_body} {"ranName":"enb_test","port":1234,"connectionStatus":"DISCONNECTED","globalNbId":{"plmnId":"def","nbId":"abc"},"nodeType":"ENB","enb":{"enbType":"MACRO_ENB","servedCells":[{"pci":2,"cellId":"mnop","tac":"asd","broadcastPlmns":["jkl"],"choiceEutraMode":{"fdd":{"ulearFcn":1,"dlearFcn":1},"tdd":{"earFcn":4,"specialSubframeInfo":{"specialSubframePatterns":"SSP0","cyclicPrefixDl":"NORMAL","cyclicPrefixUl":"NORMAL"},"additionalSpecialSubframeInfo":{"additionalSpecialSubframePatterns":"SSP0","cyclicPrefixDl":"NORMAL","cyclicPrefixUl":"NORMAL"},"additionalSpecialSubframeExtensionInfo":{"additionalSpecialSubframePatternsExtension":"SSP10","cyclicPrefixDl":"NORMAL","cyclicPrefixUl":"NORMAL"}}},"eutraMode":"FDD","prachConfiguration":{"rootSequenceIndex":7,"zeroCorrelationZoneConfiguration":6,"highSpeedFlag":true,"prachFrequencyOffset":6,"prachConfigurationIndex":5},"mbsfnSubframeInfos":[{"radioframeAllocationOffset":3,"subframeAllocation":"jhg"}],"csgId":"string","mbmsServiceAreaIdentities":["sds"],"multibandInfos":[4],"neighbourInfos":[{"ecgi":"klj","pci":5,"earFcn":4,"tac":"wew"}],"additionalCellInformation":{"cellLatitude":1,"cellLongitude":1,"antennaHeight":1,"antennaAzimuthDirection":2,"antennaTiltAngle":3,"antennaMaxTransmit":4,"antennaMaxGain":5,"sectorId":6}},{"pci":3,"cellId":"qrst","tac":"asd","broadcastPlmns":["jkl"],"choiceEutraMode":{"fdd":{"ulearFcn":2,"dlearFcn":4},"tdd":{"earFcn":4,"specialSubframeInfo":{"specialSubframePatterns":"SSP0","cyclicPrefixDl":"NORMAL","cyclicPrefixUl":"NORMAL"},"additionalSpecialSubframeInfo":{"additionalSpecialSubframePatterns":"SSP0","cyclicPrefixDl":"NORMAL","cyclicPrefixUl":"NORMAL"},"additionalSpecialSubframeExtensionInfo":{"additionalSpecialSubframePatternsExtension":"SSP10","cyclicPrefixDl":"NORMAL","cyclicPrefixUl":"NORMAL"}}},"eutraMode":"FDD","prachConfiguration":{"rootSequenceIndex":3,"zeroCorrelationZoneConfiguration":2,"highSpeedFlag":true,"prachFrequencyOffset":3,"prachConfigurationIndex":4},"mbsfnSubframeInfos":[{"radioframeAllocationOffset":5,"subframeAllocation":"jhg"}],"csgId":"string","mbmsServiceAreaIdentities":["sds"],"multibandInfos":[4],"neighbourInfos":[{"ecgi":"klj","pci":4,"earFcn":2,"tac":"wew"}],"additionalCellInformation":{"cellLatitude":3,"cellLongitude":3,"antennaHeight":3,"antennaAzimuthDirection":3,"antennaTiltAngle":4,"antennaMaxTransmit":4,"antennaMaxGain":5,"sectorId":5}}],"guGroupIds":["ghi"]}}
+${update_enb_request_body} {"enb":{"enbType":"HOME_ENB","guGroupIds":["ghi"],"servedCells":[{"broadcastPlmns":["jkl"],"cellId":"mnop","choiceEutraMode":{"fdd":{"dlearFcn":1,"ulearFcn":1},"tdd":{"additionalSpecialSubframeExtensionInfo":{"additionalSpecialSubframePatternsExtension":1,"cyclicPrefixDl":1,"cyclicPrefixUl":1},"additionalSpecialSubframeInfo":{"additionalSpecialSubframePatterns":1,"cyclicPrefixDl":1,"cyclicPrefixUl":1},"earFcn":4,"specialSubframeInfo":{"specialSubframePatterns":1,"cyclicPrefixDl":1,"cyclicPrefixUl":1}}},"eutraMode":1,"csgId":"string","mbmsServiceAreaIdentities":["sds"],"mbsfnSubframeInfos":[{"radioframeAllocationOffset":3,"subframeAllocation":"jhg"}],"multibandInfos":[4],"neighbourInfos":[{"earFcn":4,"ecgi":"klj","pci":5,"tac":"wew"}],"pci":2,"prachConfiguration":{"highSpeedFlag":true,"prachConfigurationIndex":5,"prachFrequencyOffset":6,"rootSequenceIndex":7,"zeroCorrelationZoneConfiguration":6},"tac":"asd","additionalCellInformation":{"cellLatitude":1,"cellLongitude":1,"antennaHeight":1,"antennaAzimuthDirection":2,"antennaTiltAngle":3,"antennaMaxTransmit":4,"antennaMaxGain":5,"sectorId":6}},{"broadcastPlmns":["jkl"],"cellId":"qrst","choiceEutraMode":{"fdd":{"dlearFcn":4,"ulearFcn":2},"tdd":{"additionalSpecialSubframeExtensionInfo":{"additionalSpecialSubframePatternsExtension":1,"cyclicPrefixDl":1,"cyclicPrefixUl":1},"additionalSpecialSubframeInfo":{"additionalSpecialSubframePatterns":1,"cyclicPrefixDl":1,"cyclicPrefixUl":1},"earFcn":4,"specialSubframeInfo":{"specialSubframePatterns":1,"cyclicPrefixDl":1,"cyclicPrefixUl":1}}},"eutraMode":1,"csgId":"string","mbmsServiceAreaIdentities":["sds"],"mbsfnSubframeInfos":[{"radioframeAllocationOffset":5,"subframeAllocation":"jhg"}],"multibandInfos":[4],"neighbourInfos":[{"earFcn":2,"ecgi":"klj","pci":4,"tac":"wew"}],"pci":3,"prachConfiguration":{"highSpeedFlag":true,"prachConfigurationIndex":4,"prachFrequencyOffset":3,"rootSequenceIndex":3,"zeroCorrelationZoneConfiguration":2},"tac":"asd","additionalCellInformation":{"cellLatitude":3,"cellLongitude":3,"antennaHeight":3,"antennaAzimuthDirection":3,"antennaTiltAngle":4,"antennaMaxTransmit":4,"antennaMaxGain":5,"sectorId":5}}]}}
${header} {"Content-Type": "application/json"}
#K8S
${E2_TERM_KEEP_ALIVE_REQ_message_type_successfully_sent} Message type: 1101 - Successfully sent RMR message
${save_general_configuration} SetGeneralConfigurationHandler.Handle - save general configuration to rnib: {EnableRic:false}
${set_and_publish_disconnect} RnibDataService.UpdateNodebInfoOnConnectionStatusInversion - stateChangeMessageChannel: RAN_CONNECTION_STATUS_CHANGE, event: gnb_208_092_303030_DISCONNECTED
-
+${delete_enb_log_message} RAN name: ${enb_ran_name} - deleted successfully
+${update_enb_log_message} RAN name: ${enb_ran_name} - Successfully updated eNB
def extract_service_ip(service_name):
- k8s_command = "kubectl -n ricplt get services | /bin/grep {} | /bin/grep ClusterIP | awk \'{{print $3}}\'"\
+ k8s_command = "kubectl -n ricplt get services | /bin/grep {} | /bin/grep ClusterIP | awk \'{{print $3}}\'" \
.format(service_name)
service_ip = subprocess.check_output(["/bin/bash", "-c", k8s_command], universal_newlines=True)
- return service_ip.strip()
+ return service_ip.strip()
\ No newline at end of file
--- /dev/null
+##############################################################################
+#
+# 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).
+#
+
+import subprocess
+
+
+def verify_log_message(file_path, message):
+
+ file = open(file_path, 'r')
+
+ for line in file:
+
+ if line.find(message) > 0:
+ return True
+
+ return False
+
+
+def verify_redis_monitor_manipulation_message(file_path, ran_name, action):
+ message = "\"PUBLISH\" \"{e2Manager},RAN_MANIPULATION\" \"" + ran_name + "_" + action + "\""
+ return verify_log_message(file_path, message)
+
+def verify_redis_monitor_connection_status_message(file_path, ran_name, status):
+ message = "\"PUBLISH\" \"{e2Manager},RAN_CONNECTION_STATUS_CHANGE\" \"" + ran_name + "_" + status + "\""
+ return verify_log_message(file_path, message)
+
+
+def kill_redis_monitor_root_process():
+ kill_command = "for pid in $(pidof redis-cli); do sudo kill -9 $pid; done"
+ return subprocess.check_output(["/bin/bash", "-c", kill_command], universal_newlines=True)
--- /dev/null
+##############################################################################
+#
+# 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 ***
+Variables ../Scripts/variables.py
+Suite Setup Prepare Enviorment ${False}
+Resource ../Resource/resource.robot
+Resource ../Resource/Keywords.robot
+Library OperatingSystem
+Library ../Scripts/log_scripts.py
+Library ../Scripts/k8s_helper.py
+Library REST ${url}
+
+
+*** Variables ***
+${url} ${e2mgr_address}
+
+*** Test Cases ***
+
+Prepare Redis Monitor Log
+ Start Redis Monitor
+
+Add eNB
+ Sleep 2s
+ Add eNb Request
+
+Update eNb
+ Sleep 2s
+ Update eNb Request
+ Integer response status 200
+ String response body enb enbType HOME_ENB
+
+prepare logs for tests
+ Remove log files
+ Save logs
+
+E2M Logs - Verify Update
+ ${result} log_scripts.verify_log_message ${EXECDIR}/${e2mgr_log_filename} ${update_enb_log_message}
+ Should Be Equal As Strings ${result} True
+
+Redis Monitor Logs - Verify Publish
+ Redis Monitor Logs - Verify Publish To Manipulation Channel ${enb_ran_name} UPDATED
+
+[Teardown]
+ Stop Redis Monitor
\ No newline at end of file
--- /dev/null
+##############################################################################
+#
+# 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 Add_ENB