Remove unused Initialize_OAI_UE XML step: no XML uses this
This commit is contained in:
@@ -275,7 +275,6 @@ class OaiCiTest():
|
|||||||
self.UE_instance = 0
|
self.UE_instance = 0
|
||||||
self.UESourceCodePath = ''
|
self.UESourceCodePath = ''
|
||||||
self.UELogFile = ''
|
self.UELogFile = ''
|
||||||
self.Initialize_OAI_UE_args = ''
|
|
||||||
self.clean_repository = True
|
self.clean_repository = True
|
||||||
self.air_interface=''
|
self.air_interface=''
|
||||||
self.ue_ids = []
|
self.ue_ids = []
|
||||||
@@ -295,211 +294,6 @@ class OaiCiTest():
|
|||||||
[f.result() for f in futures]
|
[f.result() for f in futures]
|
||||||
HTML.CreateHtmlTestRowQueue('N/A', 'OK', messages)
|
HTML.CreateHtmlTestRowQueue('N/A', 'OK', messages)
|
||||||
|
|
||||||
def InitializeOAIUE(self,HTML,RAN,EPC,CONTAINERS):
|
|
||||||
if self.UEIPAddress == '' or self.UEUserName == '' or self.UEPassword == '' or self.UESourceCodePath == '':
|
|
||||||
HELP.GenericHelp(CONST.Version)
|
|
||||||
sys.exit('Insufficient Parameter')
|
|
||||||
|
|
||||||
|
|
||||||
if self.air_interface == 'lte-uesoftmodem':
|
|
||||||
result = re.search('--no-L2-connect', str(self.Initialize_OAI_UE_args))
|
|
||||||
if result is None:
|
|
||||||
check_eNB = True
|
|
||||||
check_OAI_UE = False
|
|
||||||
UE_prefix = ''
|
|
||||||
else:
|
|
||||||
UE_prefix = 'NR '
|
|
||||||
SSH = sshconnection.SSHConnection()
|
|
||||||
SSH.open(self.UEIPAddress, self.UEUserName, self.UEPassword)
|
|
||||||
SSH.command(f'cd {self.UESourceCodePath}', '\$', 5)
|
|
||||||
# Initialize_OAI_UE_args usually start with -C and followed by the location in repository
|
|
||||||
SSH.command('source oaienv', '\$', 5)
|
|
||||||
SSH.command('cd cmake_targets/ran_build/build', '\$', 5)
|
|
||||||
if self.air_interface == 'lte-uesoftmodem':
|
|
||||||
result = re.search('--no-L2-connect', str(self.Initialize_OAI_UE_args))
|
|
||||||
# We may have to regenerate the .u* files
|
|
||||||
if result is None:
|
|
||||||
SSH.command('ls /tmp/*.sed', '\$', 5)
|
|
||||||
result = re.search('adapt_usim_parameters', SSH.getBefore())
|
|
||||||
if result is not None:
|
|
||||||
SSH.command('sed -f /tmp/adapt_usim_parameters.sed ../../../openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf > ../../../openair3/NAS/TOOLS/ci-ue_eurecom_test_sfr.conf', '\$', 5)
|
|
||||||
else:
|
|
||||||
SSH.command('sed -e "s#93#92#" -e "s#8baf473f2f8fd09487cccbd7097c6862#fec86ba6eb707ed08905757b1bb44b8f#" -e "s#e734f8734007d6c5ce7a0508809e7e9c#C42449363BBAD02B66D16BC975D77CC1#" ../../../openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf > ../../../openair3/NAS/TOOLS/ci-ue_eurecom_test_sfr.conf', '\$', 5)
|
|
||||||
SSH.command(f'echo {self.UEPassword} | sudo -S rm -Rf .u*', '\$', 5)
|
|
||||||
SSH.command(f'echo {self.UEPassword} | sudo -S ../../nas_sim_tools/build/conf2uedata -c ../../../openair3/NAS/TOOLS/ci-ue_eurecom_test_sfr.conf -o .', '\$', 5)
|
|
||||||
else:
|
|
||||||
SSH.command(f'if [ -e rbconfig.raw ]; then echo {self.UEPassword} | sudo -S rm rbconfig.raw; fi', '\$', 5)
|
|
||||||
SSH.command(f'if [ -e reconfig.raw ]; then echo {self.UEPassword} | sudo -S rm reconfig.raw; fi', '\$', 5)
|
|
||||||
# Copy the RAW files from gNB running directory (maybe on another machine)
|
|
||||||
copyin_res = SSH.copyin(RAN.eNBIPAddress, RAN.eNBUserName, RAN.eNBPassword, RAN.eNBSourceCodePath + '/cmake_targets/rbconfig.raw', '.')
|
|
||||||
if (copyin_res == 0):
|
|
||||||
SSH.copyout(self.UEIPAddress, self.UEUserName, self.UEPassword, './rbconfig.raw', self.UESourceCodePath + '/cmake_targets/ran_build/build')
|
|
||||||
copyin_res = SSH.copyin(RAN.eNBIPAddress, RAN.eNBUserName, RAN.eNBPassword, RAN.eNBSourceCodePath + '/cmake_targets/reconfig.raw', '.')
|
|
||||||
if (copyin_res == 0):
|
|
||||||
SSH.copyout(self.UEIPAddress, self.UEUserName, self.UEPassword, './reconfig.raw', self.UESourceCodePath + '/cmake_targets/ran_build/build')
|
|
||||||
SSH.command(f'echo "ulimit -c unlimited && {self.cmd_prefix} ./{self.air_interface} {self.Initialize_OAI_UE_args}" > ./my-lte-uesoftmodem-run{self.UE_instance}.sh', '\$', 5)
|
|
||||||
SSH.command(f'chmod 775 ./my-lte-uesoftmodem-run {self.UE_instance}.sh', '\$', 5)
|
|
||||||
SSH.command(f'echo {self.UEPassword} | sudo -S rm -Rf {self.UESourceCodePath}/cmake_targets/ue_{self.testCase_id}.log', '\$', 5)
|
|
||||||
self.UELogFile = f'ue_{self.testCase_id}.log'
|
|
||||||
|
|
||||||
# We are now looping several times to hope we really sync w/ an eNB
|
|
||||||
doOutterLoop = True
|
|
||||||
outterLoopCounter = 5
|
|
||||||
gotSyncStatus = True
|
|
||||||
fullSyncStatus = True
|
|
||||||
while (doOutterLoop):
|
|
||||||
SSH.command(f'cd {self.UESourceCodePath}/cmake_targets/ran_build/build', '\$', 5)
|
|
||||||
SSH.command(f'echo {self.UEPassword} | sudo -S rm -Rf {self.UESourceCodePath}/cmake_targets/ue_{self.testCase_id}.log', '\$', 5)
|
|
||||||
SSH.command(f'echo $USER; nohup sudo -E stdbuf -o0 ./my-lte-uesoftmodem-run {self.UE_instance}.sh > {self.UESourceCodePath}/cmake_targets/ue_{self.testCase_id}.log 2>&1 &', self.UEUserName, 5)
|
|
||||||
time.sleep(6)
|
|
||||||
SSH.command('cd ../..', '\$', 5)
|
|
||||||
doLoop = True
|
|
||||||
loopCounter = 10
|
|
||||||
gotSyncStatus = True
|
|
||||||
# the 'got sync' message is for the UE threads synchronization
|
|
||||||
while (doLoop):
|
|
||||||
loopCounter = loopCounter - 1
|
|
||||||
if (loopCounter == 0):
|
|
||||||
# Here should never occur
|
|
||||||
logging.error('"got sync" message never showed!')
|
|
||||||
gotSyncStatus = False
|
|
||||||
doLoop = False
|
|
||||||
continue
|
|
||||||
SSH.command(f'stdbuf -o0 cat ue_{self.testCase_id}.log | egrep --text --color=never -i "wait|sync"', '\$', 4)
|
|
||||||
if self.air_interface == 'nr-uesoftmodem':
|
|
||||||
result = re.search('Starting sync detection', SSH.getBefore())
|
|
||||||
else:
|
|
||||||
result = re.search('got sync', SSH.getBefore())
|
|
||||||
if result is None:
|
|
||||||
time.sleep(10)
|
|
||||||
else:
|
|
||||||
doLoop = False
|
|
||||||
logging.debug('Found "got sync" message!')
|
|
||||||
if gotSyncStatus == False:
|
|
||||||
# we certainly need to stop the lte-uesoftmodem process if it is still running!
|
|
||||||
SSH.command('ps -aux | grep --text --color=never softmodem | grep -v grep', '\$', 4)
|
|
||||||
result = re.search('-uesoftmodem', SSH.getBefore())
|
|
||||||
if result is not None:
|
|
||||||
SSH.command(f'echo {self.UEPassword} | sudo -S killall --signal=SIGINT -r *-uesoftmodem', '\$', 4)
|
|
||||||
time.sleep(3)
|
|
||||||
outterLoopCounter = outterLoopCounter - 1
|
|
||||||
if (outterLoopCounter == 0):
|
|
||||||
doOutterLoop = False
|
|
||||||
continue
|
|
||||||
# We are now checking if sync w/ eNB DOES NOT OCCUR
|
|
||||||
# Usually during the cell synchronization stage, the UE returns with No cell synchronization message
|
|
||||||
# That is the case for LTE
|
|
||||||
# In NR case, it's a positive message that will show if synchronization occurs
|
|
||||||
doLoop = True
|
|
||||||
if self.air_interface == 'nr-uesoftmodem':
|
|
||||||
loopCounter = 10
|
|
||||||
else:
|
|
||||||
# We are now checking if sync w/ eNB DOES NOT OCCUR
|
|
||||||
# Usually during the cell synchronization stage, the UE returns with No cell synchronization message
|
|
||||||
loopCounter = 10
|
|
||||||
while (doLoop):
|
|
||||||
loopCounter = loopCounter - 1
|
|
||||||
if (loopCounter == 0):
|
|
||||||
if self.air_interface == 'nr-uesoftmodem':
|
|
||||||
# Here we do have great chances that UE did NOT cell-sync w/ gNB
|
|
||||||
doLoop = False
|
|
||||||
fullSyncStatus = False
|
|
||||||
logging.debug('Never seen the NR-Sync message (Measured Carrier Frequency) --> try again')
|
|
||||||
time.sleep(6)
|
|
||||||
# Stopping the NR-UE
|
|
||||||
SSH.command('ps -aux | grep --text --color=never softmodem | grep -v grep', '\$', 4)
|
|
||||||
result = re.search('nr-uesoftmodem', SSH.getBefore())
|
|
||||||
if result is not None:
|
|
||||||
SSH.command(f'echo {self.UEPassword} | sudo -S killall --signal=SIGINT nr-uesoftmodem', '\$', 4)
|
|
||||||
time.sleep(6)
|
|
||||||
else:
|
|
||||||
# Here we do have a great chance that the UE did cell-sync w/ eNB
|
|
||||||
doLoop = False
|
|
||||||
doOutterLoop = False
|
|
||||||
fullSyncStatus = True
|
|
||||||
continue
|
|
||||||
SSH.command(f'stdbuf -o0 cat ue_{self.testCase_id}.log | egrep --text --color=never -i "wait|sync|Frequency"', '\$', 4)
|
|
||||||
if self.air_interface == 'nr-uesoftmodem':
|
|
||||||
# Positive messaging -->
|
|
||||||
result = re.search('Measured Carrier Frequency', SSH.getBefore())
|
|
||||||
if result is not None:
|
|
||||||
doLoop = False
|
|
||||||
doOutterLoop = False
|
|
||||||
fullSyncStatus = True
|
|
||||||
else:
|
|
||||||
time.sleep(6)
|
|
||||||
else:
|
|
||||||
# Negative messaging -->
|
|
||||||
result = re.search('No cell synchronization found', SSH.getBefore())
|
|
||||||
if result is None:
|
|
||||||
time.sleep(6)
|
|
||||||
else:
|
|
||||||
doLoop = False
|
|
||||||
fullSyncStatus = False
|
|
||||||
logging.debug('Found: "No cell synchronization" message! --> try again')
|
|
||||||
time.sleep(6)
|
|
||||||
SSH.command('ps -aux | grep --text --color=never softmodem | grep -v grep', '\$', 4)
|
|
||||||
result = re.search('lte-uesoftmodem', SSH.getBefore())
|
|
||||||
if result is not None:
|
|
||||||
SSH.command(f'echo {self.UEPassword} | sudo -S killall --signal=SIGINT lte-uesoftmodem', '\$', 4)
|
|
||||||
outterLoopCounter = outterLoopCounter - 1
|
|
||||||
if (outterLoopCounter == 0):
|
|
||||||
doOutterLoop = False
|
|
||||||
|
|
||||||
if fullSyncStatus and gotSyncStatus:
|
|
||||||
doInterfaceCheck = False
|
|
||||||
if self.air_interface == 'lte-uesoftmodem':
|
|
||||||
result = re.search('--no-L2-connect', str(self.Initialize_OAI_UE_args))
|
|
||||||
if result is None:
|
|
||||||
doInterfaceCheck = True
|
|
||||||
# For the moment, only in explicit noS1 without kernel module (ie w/ tunnel interface)
|
|
||||||
if self.air_interface == 'nr-uesoftmodem':
|
|
||||||
result = re.search('--noS1', str(self.Initialize_OAI_UE_args))
|
|
||||||
if result is not None:
|
|
||||||
doInterfaceCheck = True
|
|
||||||
if doInterfaceCheck:
|
|
||||||
SSH.command('ifconfig oaitun_ue1', '\$', 4)
|
|
||||||
SSH.command('ifconfig oaitun_ue1', '\$', 4)
|
|
||||||
# ifconfig output is different between ubuntu 16 and ubuntu 18
|
|
||||||
result = re.search('inet addr:[0-9]|inet [0-9]', SSH.getBefore())
|
|
||||||
if result is not None:
|
|
||||||
logging.debug('\u001B[1m oaitun_ue1 interface is mounted and configured\u001B[0m')
|
|
||||||
tunnelInterfaceStatus = True
|
|
||||||
else:
|
|
||||||
logging.debug(SSH.getBefore())
|
|
||||||
logging.error('\u001B[1m oaitun_ue1 interface is either NOT mounted or NOT configured\u001B[0m')
|
|
||||||
tunnelInterfaceStatus = False
|
|
||||||
if RAN.eNBmbmsEnables[0]:
|
|
||||||
SSH.command('ifconfig oaitun_uem1', '\$', 4)
|
|
||||||
result = re.search('inet addr', SSH.getBefore())
|
|
||||||
if result is not None:
|
|
||||||
logging.debug('\u001B[1m oaitun_uem1 interface is mounted and configured\u001B[0m')
|
|
||||||
tunnelInterfaceStatus = tunnelInterfaceStatus and True
|
|
||||||
else:
|
|
||||||
logging.error('\u001B[1m oaitun_uem1 interface is either NOT mounted or NOT configured\u001B[0m')
|
|
||||||
tunnelInterfaceStatus = False
|
|
||||||
else:
|
|
||||||
tunnelInterfaceStatus = True
|
|
||||||
else:
|
|
||||||
tunnelInterfaceStatus = True
|
|
||||||
|
|
||||||
SSH.close()
|
|
||||||
if fullSyncStatus and gotSyncStatus and tunnelInterfaceStatus:
|
|
||||||
HTML.CreateHtmlTestRow(self.air_interface + ' ' + self.Initialize_OAI_UE_args, 'OK', CONST.ALL_PROCESSES_OK, 'OAI UE')
|
|
||||||
logging.debug('\u001B[1m Initialize OAI UE Completed\u001B[0m')
|
|
||||||
else:
|
|
||||||
if self.air_interface == 'lte-uesoftmodem':
|
|
||||||
if RAN.eNBmbmsEnables[0]:
|
|
||||||
HTML.htmlUEFailureMsg='oaitun_ue1/oaitun_uem1 interfaces are either NOT mounted or NOT configured'
|
|
||||||
else:
|
|
||||||
HTML.htmlUEFailureMsg='oaitun_ue1 interface is either NOT mounted or NOT configured'
|
|
||||||
HTML.CreateHtmlTestRow(self.air_interface + ' ' + self.Initialize_OAI_UE_args, 'KO', CONST.OAI_UE_PROCESS_NO_TUNNEL_INTERFACE, 'OAI UE')
|
|
||||||
else:
|
|
||||||
HTML.htmlUEFailureMsg='nr-uesoftmodem did NOT synced'
|
|
||||||
HTML.CreateHtmlTestRow(self.air_interface + ' ' + self.Initialize_OAI_UE_args, 'KO', CONST.OAI_UE_PROCESS_COULD_NOT_SYNC, 'OAI UE')
|
|
||||||
logging.error('\033[91mInitialize OAI UE Failed! \033[0m')
|
|
||||||
self.AutoTerminateUEandeNB(HTML,RAN,EPC,CONTAINERS)
|
|
||||||
|
|
||||||
def AttachUE(self, HTML, RAN, EPC, CONTAINERS):
|
def AttachUE(self, HTML, RAN, EPC, CONTAINERS):
|
||||||
ues = [cls_module.Module_UE(ue_id, server_name) for ue_id, server_name in zip(self.ue_ids, self.nodes)]
|
ues = [cls_module.Module_UE(ue_id, server_name) for ue_id, server_name in zip(self.ue_ids, self.nodes)]
|
||||||
with concurrent.futures.ThreadPoolExecutor() as executor:
|
with concurrent.futures.ThreadPoolExecutor() as executor:
|
||||||
@@ -1134,14 +928,6 @@ class OaiCiTest():
|
|||||||
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
|
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
|
||||||
|
|
||||||
def AutoTerminateUEandeNB(self,HTML,RAN,EPC,CONTAINERS):
|
def AutoTerminateUEandeNB(self,HTML,RAN,EPC,CONTAINERS):
|
||||||
# TODO: terminate UE?
|
|
||||||
if (self.Initialize_OAI_UE_args != ''):
|
|
||||||
self.testCase_id = 'AUTO-KILL-OAI-UE'
|
|
||||||
HTML.testCase_id = self.testCase_id
|
|
||||||
self.desc = 'Automatic Termination of OAI-UE'
|
|
||||||
HTML.desc = self.desc
|
|
||||||
self.ShowTestID()
|
|
||||||
self.TerminateOAIUE(HTML,RAN,EPC,CONTAINERS)
|
|
||||||
if (RAN.Initialize_eNB_args != ''):
|
if (RAN.Initialize_eNB_args != ''):
|
||||||
self.testCase_id = 'AUTO-KILL-RAN'
|
self.testCase_id = 'AUTO-KILL-RAN'
|
||||||
HTML.testCase_id = self.testCase_id
|
HTML.testCase_id = self.testCase_id
|
||||||
|
|||||||
@@ -225,25 +225,6 @@ def GetParametersFromXML(action):
|
|||||||
else:
|
else:
|
||||||
CiTestObj.nodes = [None] * len(CiTestObj.ue_ids)
|
CiTestObj.nodes = [None] * len(CiTestObj.ue_ids)
|
||||||
|
|
||||||
elif action == 'Initialize_OAI_UE':
|
|
||||||
CiTestObj.Initialize_OAI_UE_args = test.findtext('Initialize_OAI_UE_args')
|
|
||||||
UE_instance = test.findtext('UE_instance')
|
|
||||||
if (UE_instance is None):
|
|
||||||
CiTestObj.UE_instance = 0
|
|
||||||
else:
|
|
||||||
CiTestObj.UE_instance = UE_instance
|
|
||||||
|
|
||||||
#local variable air_interface
|
|
||||||
air_interface = test.findtext('air_interface')
|
|
||||||
if (air_interface is None) or (air_interface.lower() not in ['nr','lte']):
|
|
||||||
CiTestObj.air_interface = 'lte-uesoftmodem'
|
|
||||||
elif (air_interface.lower() in ['nr','lte']):
|
|
||||||
CiTestObj.air_interface = air_interface.lower() +'-uesoftmodem'
|
|
||||||
else :
|
|
||||||
logging.error('OCP UE -- NOT SUPPORTED')
|
|
||||||
|
|
||||||
CiTestObj.cmd_prefix = test.findtext('cmd_prefix') or ""
|
|
||||||
|
|
||||||
elif action == 'Terminate_OAI_UE':
|
elif action == 'Terminate_OAI_UE':
|
||||||
UE_instance=test.findtext('UE_instance')
|
UE_instance=test.findtext('UE_instance')
|
||||||
if (UE_instance is None):
|
if (UE_instance is None):
|
||||||
@@ -772,8 +753,6 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
|
|||||||
CiTestObj.DataEnableUE(HTML)
|
CiTestObj.DataEnableUE(HTML)
|
||||||
elif action == 'CheckStatusUE':
|
elif action == 'CheckStatusUE':
|
||||||
CiTestObj.CheckStatusUE(HTML)
|
CiTestObj.CheckStatusUE(HTML)
|
||||||
elif action == 'Initialize_OAI_UE':
|
|
||||||
CiTestObj.InitializeOAIUE(HTML,RAN,EPC,CONTAINERS)
|
|
||||||
elif action == 'Terminate_OAI_UE':
|
elif action == 'Terminate_OAI_UE':
|
||||||
CiTestObj.TerminateOAIUE(HTML,RAN,EPC,CONTAINERS)
|
CiTestObj.TerminateOAIUE(HTML,RAN,EPC,CONTAINERS)
|
||||||
elif action == 'Ping':
|
elif action == 'Ping':
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
- Terminate_UE
|
- Terminate_UE
|
||||||
- Attach_UE
|
- Attach_UE
|
||||||
- Detach_UE
|
- Detach_UE
|
||||||
- Initialize_OAI_UE
|
|
||||||
- Terminate_OAI_UE
|
- Terminate_OAI_UE
|
||||||
- DataDisable_UE
|
- DataDisable_UE
|
||||||
- DataEnable_UE
|
- DataEnable_UE
|
||||||
|
|||||||
Reference in New Issue
Block a user