diff --git a/ci-scripts/Jenkinsfile-trig-nsa b/ci-scripts/Jenkinsfile-trig-nsa
index 8f623ffb05..1c479a5a2a 100644
--- a/ci-scripts/Jenkinsfile-trig-nsa
+++ b/ci-scripts/Jenkinsfile-trig-nsa
@@ -55,14 +55,23 @@ pipeline {
string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)),
booleanParam(name: 'eNB_AllowMergeRequestProcess', value: Boolean.valueOf(ALLOW_MERGE))
]
- //calling Benetel sub job
- //build job: "RAN-CI-BENETEL", wait : false, propagate : false, parameters: [
- // string(name: 'eNB_MR', value: String.valueOf(MR)),
- // string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)),
- // string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)),
- // string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)),
- // booleanParam(name: 'eNB_AllowMergeRequestProcess', value: Boolean.valueOf(ALLOW_MERGE))
- //]
+ //calling NSA long sub job
+ build job: "RAN-NSA-Mini-Module-Long", wait : false, propagate : false, parameters: [
+ string(name: 'eNB_MR', value: String.valueOf(MR)),
+ string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)),
+ string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)),
+ string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)),
+ booleanParam(name: 'eNB_AllowMergeRequestProcess', value: Boolean.valueOf(ALLOW_MERGE))
+ ]
+ //calling NSA attach/detach job
+ build job: "RAN-NSA-Mini-Module-Attach-Detach", wait : false, propagate : false, parameters: [
+ string(name: 'eNB_MR', value: String.valueOf(MR)),
+ string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)),
+ string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)),
+ string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)),
+ booleanParam(name: 'eNB_AllowMergeRequestProcess', value: Boolean.valueOf(ALLOW_MERGE))
+ ]
+
}
}
}
diff --git a/ci-scripts/cls_module_ue.py b/ci-scripts/cls_module_ue.py
index cb5c81e271..0ad493ad40 100644
--- a/ci-scripts/cls_module_ue.py
+++ b/ci-scripts/cls_module_ue.py
@@ -50,7 +50,8 @@ class Module_UE:
setattr(self, k, v)
self.UEIPAddress = ""
#dictionary linking command names and related module scripts
- self.cmd_dict= {"wup": self.WakeupScript,"detach":self.DetachScript}#dictionary of function scripts
+ self.cmd_dict= {"wup": self.WakeupScript,"detach":self.DetachScript}#dictionary of function scripts
+ self.ue_trace=''
@@ -130,13 +131,14 @@ class Module_UE:
return -1
def EnableTrace(self):
- mySSH = sshconnection.SSHConnection()
- mySSH.open(self.HostIPAddress, self.HostUsername, self.HostPassword)
- #delete old artifacts
- mySSH.command('echo ' + self.HostPassword + ' | sudo -S rm -rf ci_qlog','\$',5)
- #start Trace, artifact is created in home dir
- mySSH.command('echo $USER; nohup sudo -E QLog/QLog -s ci_qlog -f NR5G.cfg &','\$', 5)
- mySSH.close()
+ if self.ue_trace=="yes":
+ mySSH = sshconnection.SSHConnection()
+ mySSH.open(self.HostIPAddress, self.HostUsername, self.HostPassword)
+ #delete old artifacts
+ mySSH.command('echo ' + self.HostPassword + ' | sudo -S rm -rf ci_qlog','\$',5)
+ #start Trace, artifact is created in home dir
+ mySSH.command('echo $USER; nohup sudo -E QLog/QLog -s ci_qlog -f NR5G.cfg &','\$', 5)
+ mySSH.close()
def DisableTrace(self):
mySSH = sshconnection.SSHConnection()
@@ -153,18 +155,20 @@ class Module_UE:
def LogCollect(self):
- mySSH = sshconnection.SSHConnection()
- mySSH.open(self.HostIPAddress, self.HostUsername, self.HostPassword)
- #archive qlog to USB stick in /media/usb-drive/ci_qlogs with datetime suffix
- now=datetime.now()
- now_string = now.strftime("%Y%m%d-%H%M")
- source='ci_qlog'
- destination='/media/usb-drive/ci_qlogs/ci_qlog_'+now_string+'.zip'
- #qlog artifact is zipped into the target folder
- mySSH.command('echo $USER; echo ' + self.HostPassword + ' | nohup sudo -S zip -r '+destination+' '+source+' &','\$', 10)
- mySSH.close()
- #post action : log cleaning to make sure enough space is reserved for the next run
- Log_Mgt=cls_log_mgt.Log_Mgt(self.HostIPAddress, self.HostPassword, "/media/usb-drive/ci_qlogs")
- Log_Mgt.LogRotation()
-
+ if self.ue_trace=="yes":
+ mySSH = sshconnection.SSHConnection()
+ mySSH.open(self.HostIPAddress, self.HostUsername, self.HostPassword)
+ #archive qlog to USB stick in /media/usb-drive/ci_qlogs with datetime suffix
+ now=datetime.now()
+ now_string = now.strftime("%Y%m%d-%H%M")
+ source='ci_qlog'
+ destination='/media/usb-drive/ci_qlogs/ci_qlog_'+now_string+'.zip'
+ #qlog artifact is zipped into the target folder
+ mySSH.command('echo $USER; echo ' + self.HostPassword + ' | nohup sudo -S zip -r '+destination+' '+source+' &','\$', 10)
+ mySSH.close()
+ #post action : log cleaning to make sure enough space is reserved for the next run
+ Log_Mgt=cls_log_mgt.Log_Mgt(self.HostIPAddress, self.HostPassword, "/media/usb-drive/ci_qlogs")
+ Log_Mgt.LogRotation()
+ else:
+ destination=""
return destination
diff --git a/ci-scripts/cls_oaicitest.py b/ci-scripts/cls_oaicitest.py
index 7283fba5af..6f61fddbc3 100644
--- a/ci-scripts/cls_oaicitest.py
+++ b/ci-scripts/cls_oaicitest.py
@@ -160,6 +160,7 @@ class OaiCiTest():
self.air_interface=''
self.expectedNbOfConnectedUEs = 0
self.ue_id = '' #used for module identification
+ self.ue_trace ='' #used to enable QLog trace for Module UE, passed to Module UE object at InitializeUE()
def BuildOAIUE(self,HTML):
@@ -367,7 +368,7 @@ class OaiCiTest():
except:
os.kill(os.getppid(),signal.SIGUSR1)
- def InitializeUE(self,HTML,RAN,EPC, COTS_UE, InfraUE):
+ def InitializeUE(self,HTML,RAN,EPC, COTS_UE, InfraUE,ue_trace):
if self.ue_id=='':#no ID specified, then it is a COTS controlled by ADB
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
HELP.GenericHelp(CONST.Version)
@@ -386,6 +387,7 @@ class OaiCiTest():
else: #if an ID is specified, it is a module from the yaml infrastructure file
#RH
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
+ Module_UE.ue_trace=ue_trace
is_module=Module_UE.CheckCMProcess()
if is_module:
Module_UE.EnableTrace()
@@ -3102,7 +3104,7 @@ class OaiCiTest():
except:
os.kill(os.getppid(),signal.SIGUSR1)
- def TerminateUE(self,HTML,COTS_UE):
+ def TerminateUE(self,HTML,COTS_UE,InfraUE,ue_trace):
if self.ue_id=='':#no ID specified, then it is a COTS controlled by ADB
terminate_ue_flag = False
self.GetAllUEDevices(terminate_ue_flag)
@@ -3119,6 +3121,7 @@ class OaiCiTest():
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
else: #if an ID is specified, it is a module from the yaml infrastructure file
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
+ Module_UE.ue_trace=ue_trace
Module_UE.Command("detach")
Module_UE.DisableTrace()
Module_UE.DisableCM()
diff --git a/ci-scripts/main.py b/ci-scripts/main.py
index 142ecdf202..066e67d6be 100644
--- a/ci-scripts/main.py
+++ b/ci-scripts/main.py
@@ -197,6 +197,7 @@ def GetParametersFromXML(action):
elif action == 'Initialize_UE':
ue_id = test.findtext('id')
+ CiTestObj.ue_trace=test.findtext('UE_Trace')#temporary variable, to be passed to Module_UE in Initialize_UE call
if (ue_id is None):
CiTestObj.ue_id = ""
else:
@@ -727,9 +728,9 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
elif action == 'Terminate_eNB':
RAN.TerminateeNB(HTML, EPC)
elif action == 'Initialize_UE':
- CiTestObj.InitializeUE(HTML,RAN, EPC, COTS_UE, InfraUE)
+ CiTestObj.InitializeUE(HTML,RAN, EPC, COTS_UE, InfraUE, CiTestObj.ue_trace)
elif action == 'Terminate_UE':
- CiTestObj.TerminateUE(HTML,COTS_UE)
+ CiTestObj.TerminateUE(HTML,COTS_UE, InfraUE, CiTestObj.ue_trace)
elif action == 'Attach_UE':
CiTestObj.AttachUE(HTML,RAN,EPC,COTS_UE,InfraUE)
elif action == 'Detach_UE':
diff --git a/ci-scripts/xml_files/fr1_nsa_quectel.xml b/ci-scripts/xml_files/fr1_nsa_quectel.xml
index 980b55c30c..7ec3a5f140 100644
--- a/ci-scripts/xml_files/fr1_nsa_quectel.xml
+++ b/ci-scripts/xml_files/fr1_nsa_quectel.xml
@@ -48,6 +48,7 @@
Initialize_UE
Initialize Quectel
idefix
+ yes