diff --git a/ci-scripts/ci_infra.yaml b/ci-scripts/ci_infra.yaml index 8cbb5936e2..d562593e1a 100644 --- a/ci-scripts/ci_infra.yaml +++ b/ci-scripts/ci_infra.yaml @@ -58,6 +58,8 @@ adb_ue_2: oc-cn5g: Host: avra + Namespace: "oaicicd-core-for-ci-ran" + CNPath: "/opt/oai-cn5g-fed-develop-2024-april-00102" NetworkScript: echo "inet 172.21.6.102" RunIperf3Server: False diff --git a/ci-scripts/cls_cluster.py b/ci-scripts/cls_cluster.py index 80d6d95daa..3f11fad7fb 100644 --- a/ci-scripts/cls_cluster.py +++ b/ci-scripts/cls_cluster.py @@ -43,7 +43,6 @@ NAMESPACE = "oaicicd-ran" OCUrl = "https://api.oai.cs.eurecom.fr:6443" OCRegistry = "default-route-openshift-image-registry.apps.oai.cs.eurecom.fr/" CI_OC_RAN_NAMESPACE = "oaicicd-ran" -CI_OC_CORE_NAMESPACE = "oaicicd-core-for-ci-ran" CN_IMAGES = ["mysql", "oai-nrf", "oai-amf", "oai-smf", "oai-upf", "oai-ausf", "oai-udm", "oai-udr", "oai-traffic-server"] CN_CONTAINERS = ["", "-c nrf", "-c amf", "-c smf", "-c upf", "-c ausf", "-c udm", "-c udr", ""] @@ -68,10 +67,9 @@ def OC_login(cmd, ocUserName, ocPassword, ocProjectName): def OC_logout(cmd): cmd.run(f'oc logout') -def OC_deploy_CN(cmd, ocUserName, ocPassword): - logging.debug('OC OAI CN5G: Deploying OAI CN5G on Openshift Cluster') - path = "/opt/oai-cn5g-fed-develop-2024-april-00102" - succeeded = OC_login(cmd, ocUserName, ocPassword, CI_OC_CORE_NAMESPACE) +def OC_deploy_CN(cmd, ocUserName, ocPassword, ocNamespace, path): + logging.debug(f'OC OAI CN5G: Deploying OAI CN5G on Openshift Cluster: {ocNamespace}') + succeeded = OC_login(cmd, ocUserName, ocPassword, ocNamespace) if not succeeded: return False, CONST.OC_LOGIN_FAIL cmd.run('helm uninstall oai5gcn --wait --timeout 60s') @@ -84,10 +82,9 @@ def OC_deploy_CN(cmd, ocUserName, ocPassword): OC_logout(cmd) return True, report -def OC_undeploy_CN(cmd, ocUserName, ocPassword): - logging.debug('OC OAI CN5G: Terminating CN on Openshift Cluster') - path = "/opt/oai-cn5g-fed-develop-2024-april-00102" - succeeded = OC_login(cmd, ocUserName, ocPassword, CI_OC_CORE_NAMESPACE) +def OC_undeploy_CN(cmd, ocUserName, ocPassword, ocNamespace, path): + logging.debug(f'OC OAI CN5G: Terminating CN on Openshift Cluster: {ocNamespace}') + succeeded = OC_login(cmd, ocUserName, ocPassword, ocNamespace) if not succeeded: return False, CONST.OC_LOGIN_FAIL cmd.run(f'rm -Rf {path}/logs') diff --git a/ci-scripts/cls_module.py b/ci-scripts/cls_module.py index d0cfba0299..ef758a2933 100644 --- a/ci-scripts/cls_module.py +++ b/ci-scripts/cls_module.py @@ -65,6 +65,8 @@ class Module_UE: self.logStore = m.get('LogStore') self.cmd_prefix = m.get('CmdPrefix') self.runIperf3Server = m.get('RunIperf3Server', True) + self.namespace = m.get('Namespace') + self.cnPath = m.get('CNPath') logging.info(f'initialized {self.module_name}@{self.host} from {filename}') def __str__(self): @@ -190,6 +192,12 @@ class Module_UE: def getHost(self): return self.host + def getNamespace(self): + return self.namespace + + def getCNPath(self): + return self.cnPath + def getRunIperf3Server(self): return self.runIperf3Server diff --git a/ci-scripts/epc.py b/ci-scripts/epc.py index fb5aa8cde6..7c0eb51853 100644 --- a/ci-scripts/epc.py +++ b/ci-scripts/epc.py @@ -48,6 +48,7 @@ import helpreadme as HELP import constants as CONST import cls_cluster as OC import cls_cmd +import cls_module #----------------------------------------------------------- # Class Declaration #----------------------------------------------------------- @@ -75,6 +76,7 @@ class EPCManagement(): self.OCRegistry = "default-route-openshift-image-registry.apps.oai.cs.eurecom.fr/" self.OCUserName = '' self.OCPassword = '' + self.cnID = '' self.imageToPull = '' self.eNBSourceCodePath = '' @@ -298,7 +300,8 @@ class EPCManagement(): html_cell += '(' + res4.group('date') + ')' html_cell += '\n' elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE): - succeeded, report = OC.OC_deploy_CN(mySSH, self.OCUserName, self.OCPassword) + cn = cls_module.Module_UE(self.cnID) + succeeded, report = OC.OC_deploy_CN(mySSH, self.OCUserName, self.OCPassword, cn.getNamespace(), cn.getCNPath()) if not succeeded: HTML.CreateHtmlTestRow('N/A', 'KO', report) HTML.CreateHtmlTabFooter(False) @@ -575,7 +578,8 @@ class EPCManagement(): mySSH.copyin(f'{self.SourceCodePath}/logs/test_logs_CN.zip','test_logs_CN.zip') logging.debug(message) elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE): - succeeded, report = OC.OC_undeploy_CN(mySSH, self.OCUserName, self.OCPassword) + cn = cls_module.Module_UE(self.cnID) + succeeded, report = OC.OC_undeploy_CN(mySSH, self.OCUserName, self.OCPassword, cn.getNamespace(), cn.getCNPath()) if not succeeded: HTML.CreateHtmlTestRow('N/A', 'KO', report) HTML.CreateHtmlTabFooter(False) diff --git a/ci-scripts/main.py b/ci-scripts/main.py index 03c99d9741..14466a1594 100644 --- a/ci-scripts/main.py +++ b/ci-scripts/main.py @@ -329,11 +329,13 @@ def GetParametersFromXML(action): string_field = test.findtext('args') if (string_field is not None): EPC.cfgDeploy = string_field + EPC.cnID = test.findtext('cn_id') elif action == 'Terminate_5GCN': string_field = test.findtext('args') if (string_field is not None): EPC.cfgUnDeploy = string_field + EPC.cnID = test.findtext('cn_id') elif action == 'Deploy_Object' or action == 'Undeploy_Object': eNB_instance=test.findtext('eNB_instance') diff --git a/ci-scripts/xml_files/sa_cn5g_closure.xml b/ci-scripts/xml_files/sa_cn5g_closure.xml index 7174da3b7b..727e208d4c 100644 --- a/ci-scripts/xml_files/sa_cn5g_closure.xml +++ b/ci-scripts/xml_files/sa_cn5g_closure.xml @@ -32,6 +32,7 @@ Terminate_5GCN Terminate 5G Core + oc-cn5g diff --git a/ci-scripts/xml_files/sa_cn5g_start.xml b/ci-scripts/xml_files/sa_cn5g_start.xml index 6499d60700..3de615330a 100644 --- a/ci-scripts/xml_files/sa_cn5g_start.xml +++ b/ci-scripts/xml_files/sa_cn5g_start.xml @@ -33,5 +33,6 @@ Initialize_5GCN Initialize 5G Core + oc-cn5g