Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
spbro
OpenXG-RAN
Commits
41a9ac11
Commit
41a9ac11
authored
Jul 20, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Python Class for Cluster Building and Deployment
parent
ebdbb1fc
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
484 additions
and
11 deletions
+484
-11
ci-scripts/args_parse.py
ci-scripts/args_parse.py
+19
-1
ci-scripts/cls_cluster.py
ci-scripts/cls_cluster.py
+407
-0
ci-scripts/main.py
ci-scripts/main.py
+9
-2
ci-scripts/xml_class_list.yml
ci-scripts/xml_class_list.yml
+1
-0
ci-scripts/xml_files/cluster_image_build.xml
ci-scripts/xml_files/cluster_image_build.xml
+35
-0
openshift/oai-physim-bc.yaml
openshift/oai-physim-bc.yaml
+0
-4
openshift/ran-base-log-retrieval.yaml
openshift/ran-base-log-retrieval.yaml
+13
-0
openshift/ran-build-bc.yaml
openshift/ran-build-bc.yaml
+0
-4
No files found.
ci-scripts/args_parse.py
View file @
41a9ac11
...
...
@@ -41,7 +41,7 @@ import constants as CONST
#-----------------------------------------------------------
def
ArgsParse
(
argvs
,
CiTestObj
,
RAN
,
HTML
,
EPC
,
ldpc
,
CONTAINERS
,
HELP
,
SCA
,
PHYSIM
):
def
ArgsParse
(
argvs
,
CiTestObj
,
RAN
,
HTML
,
EPC
,
ldpc
,
CONTAINERS
,
HELP
,
SCA
,
PHYSIM
,
CLUSTER
):
py_param_file_present
=
False
...
...
@@ -82,6 +82,7 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM):
CONTAINERS
.
ranRepository
=
matchReg
.
group
(
1
)
SCA
.
ranRepository
=
matchReg
.
group
(
1
)
PHYSIM
.
ranRepository
=
matchReg
.
group
(
1
)
CLUSTER
.
ranRepository
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNB_AllowMerge=(.+)$|^\-\-ranAllowMerge=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
if
re
.
match
(
'^\-\-eNB_AllowMerge=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNB_AllowMerge=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
...
...
@@ -96,6 +97,7 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM):
CONTAINERS
.
ranAllowMerge
=
True
SCA
.
ranAllowMerge
=
True
PHYSIM
.
ranAllowMerge
=
True
CLUSTER
.
ranAllowMerge
=
True
elif
re
.
match
(
'^\-\-eNBBranch=(.+)$|^\-\-ranBranch=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
if
re
.
match
(
'^\-\-eNBBranch=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNBBranch=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
...
...
@@ -108,6 +110,7 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM):
CONTAINERS
.
ranBranch
=
matchReg
.
group
(
1
)
SCA
.
ranBranch
=
matchReg
.
group
(
1
)
PHYSIM
.
ranBranch
=
matchReg
.
group
(
1
)
CLUSTER
.
ranBranch
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNBCommitID=(.*)$|^\-\-ranCommitID=(.*)$'
,
myArgv
,
re
.
IGNORECASE
):
if
re
.
match
(
'^\-\-eNBCommitID=(.*)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNBCommitID=(.*)$'
,
myArgv
,
re
.
IGNORECASE
)
...
...
@@ -120,6 +123,7 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM):
CONTAINERS
.
ranCommitID
=
matchReg
.
group
(
1
)
SCA
.
ranCommitID
=
matchReg
.
group
(
1
)
PHYSIM
.
ranCommitID
=
matchReg
.
group
(
1
)
CLUSTER
.
ranCommitID
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNBTargetBranch=(.*)$|^\-\-ranTargetBranch=(.*)$'
,
myArgv
,
re
.
IGNORECASE
):
if
re
.
match
(
'^\-\-eNBTargetBranch=(.*)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNBTargetBranch=(.*)$'
,
myArgv
,
re
.
IGNORECASE
)
...
...
@@ -132,6 +136,7 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM):
CONTAINERS
.
ranTargetBranch
=
matchReg
.
group
(
1
)
SCA
.
ranTargetBranch
=
matchReg
.
group
(
1
)
PHYSIM
.
ranTargetBranch
=
matchReg
.
group
(
1
)
CLUSTER
.
ranTargetBranch
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNBIPAddress=(.+)$|^\-\-eNB[1-2]IPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
if
re
.
match
(
'^\-\-eNBIPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNBIPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
...
...
@@ -140,6 +145,7 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM):
CONTAINERS
.
eNBIPAddress
=
matchReg
.
group
(
1
)
SCA
.
eNBIPAddress
=
matchReg
.
group
(
1
)
PHYSIM
.
eNBIPAddress
=
matchReg
.
group
(
1
)
CLUSTER
.
eNBIPAddress
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNB1IPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNB1IPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNB1IPAddress
=
matchReg
.
group
(
1
)
...
...
@@ -156,6 +162,7 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM):
CONTAINERS
.
eNBUserName
=
matchReg
.
group
(
1
)
SCA
.
eNBUserName
=
matchReg
.
group
(
1
)
PHYSIM
.
eNBUserName
=
matchReg
.
group
(
1
)
CLUSTER
.
eNBUserName
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNB1UserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNB1UserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNB1UserName
=
matchReg
.
group
(
1
)
...
...
@@ -172,6 +179,7 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM):
CONTAINERS
.
eNBPassword
=
matchReg
.
group
(
1
)
SCA
.
eNBPassword
=
matchReg
.
group
(
1
)
PHYSIM
.
eNBPassword
=
matchReg
.
group
(
1
)
CLUSTER
.
eNBPassword
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNB1Password=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNB1Password=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNB1Password
=
matchReg
.
group
(
1
)
...
...
@@ -188,6 +196,7 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM):
CONTAINERS
.
eNBSourceCodePath
=
matchReg
.
group
(
1
)
SCA
.
eNBSourceCodePath
=
matchReg
.
group
(
1
)
PHYSIM
.
eNBSourceCodePath
=
matchReg
.
group
(
1
)
CLUSTER
.
eNBSourceCodePath
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNB1SourceCodePath=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNB1SourceCodePath=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNB1SourceCodePath
=
matchReg
.
group
(
1
)
...
...
@@ -260,12 +269,21 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM):
elif
re
.
match
(
'^\-\-OCUserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-OCUserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
PHYSIM
.
OCUserName
=
matchReg
.
group
(
1
)
CLUSTER
.
OCUserName
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-OCPassword=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-OCPassword=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
PHYSIM
.
OCPassword
=
matchReg
.
group
(
1
)
CLUSTER
.
OCPassword
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-OCProjectName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-OCProjectName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
PHYSIM
.
OCProjectName
=
matchReg
.
group
(
1
)
CLUSTER
.
OCProjectName
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-OCUrl=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-OCUrl=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
CLUSTER
.
OCUrl
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-OCRegistry=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-OCRegistry=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
CLUSTER
.
OCRegistry
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-BuildId=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-BuildId=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
BuildId
=
matchReg
.
group
(
1
)
...
...
ci-scripts/cls_cluster.py
0 → 100644
View file @
41a9ac11
This diff is collapsed.
Click to expand it.
ci-scripts/main.py
View file @
41a9ac11
...
...
@@ -45,6 +45,7 @@ import cls_containerize #class Containerize for all container-based oper
import
cls_static_code_analysis
#class for static code analysis
import
cls_ci_ueinfra
#class defining the multi Ue infrastrucure
import
cls_physim1
#class PhySim for physical simulators deploy and run
import
cls_cluster
# class for building/deploying on cluster
import
sshconnection
import
epc
...
...
@@ -102,15 +103,17 @@ def AssignParams(params_dict):
def
GetParametersFromXML
(
action
):
if
action
==
'Build_eNB'
or
action
==
'Build_Image'
or
action
==
'Build_Proxy'
:
if
action
==
'Build_eNB'
or
action
==
'Build_Image'
or
action
==
'Build_Proxy'
or
action
==
"Build_Cluster_Image"
:
RAN
.
Build_eNB_args
=
test
.
findtext
(
'Build_eNB_args'
)
CONTAINERS
.
imageKind
=
test
.
findtext
(
'kind'
)
forced_workspace_cleanup
=
test
.
findtext
(
'forced_workspace_cleanup'
)
RAN
.
Build_eNB_forced_workspace_cleanup
=
False
CONTAINERS
.
forcedWorkspaceCleanup
=
False
CLUSTER
.
forcedWorkspaceCleanup
=
False
if
forced_workspace_cleanup
is
not
None
and
re
.
match
(
'true'
,
forced_workspace_cleanup
,
re
.
IGNORECASE
):
RAN
.
Build_eNB_forced_workspace_cleanup
=
True
CONTAINERS
.
forcedWorkspaceCleanup
=
True
CLUSTER
.
forcedWorkspaceCleanup
=
True
eNB_instance
=
test
.
findtext
(
'eNB_instance'
)
if
(
eNB_instance
is
None
):
RAN
.
eNB_instance
=
0
...
...
@@ -529,6 +532,7 @@ HTML = cls_oai_html.HTMLManagement()
CONTAINERS
=
cls_containerize
.
Containerize
()
SCA
=
cls_static_code_analysis
.
StaticCodeAnalysis
()
PHYSIM
=
cls_physim1
.
PhySim
()
CLUSTER
=
cls_cluster
.
Cluster
()
ldpc
=
cls_physim
.
PhySim
()
#create an instance for LDPC test using GPU or CPU build
...
...
@@ -538,7 +542,7 @@ ldpc=cls_physim.PhySim() #create an instance for LDPC test using GPU or CPU b
#-----------------------------------------------------------
import
args_parse
py_param_file_present
,
py_params
,
mode
=
args_parse
.
ArgsParse
(
sys
.
argv
,
CiTestObj
,
RAN
,
HTML
,
EPC
,
ldpc
,
CONTAINERS
,
HELP
,
SCA
,
PHYSIM
)
py_param_file_present
,
py_params
,
mode
=
args_parse
.
ArgsParse
(
sys
.
argv
,
CiTestObj
,
RAN
,
HTML
,
EPC
,
ldpc
,
CONTAINERS
,
HELP
,
SCA
,
PHYSIM
,
CLUSTER
)
...
...
@@ -926,6 +930,9 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
HTML
=
ldpc
.
Run_NRulsimTest
(
HTML
,
CONST
,
id
)
if
ldpc
.
exitStatus
==
1
:
RAN
.
prematureExit
=
True
elif
action
==
'Build_Cluster_Image'
:
if
not
CLUSTER
.
BuildClusterImage
(
HTML
):
RAN
.
prematureExit
=
True
elif
action
==
'Build_Image'
:
CONTAINERS
.
BuildImage
(
HTML
)
elif
action
==
'Build_Proxy'
:
...
...
ci-scripts/xml_class_list.yml
View file @
41a9ac11
-
Build_Proxy
-
Build_Cluster_Image
-
Build_PhySim
-
Run_LDPCTest
-
Run_NRulsimTest
...
...
ci-scripts/xml_files/cluster_image_build.xml
0 → 100644
View file @
41a9ac11
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
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.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>
build-tab
</htmlTabRef>
<htmlTabName>
Build Images on Cluster
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<TestCaseRequestedList>
000001
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"000001"
>
<class>
Build_Cluster_Image
</class>
<desc>
Build Images on OpenShift Cluster
</desc>
</testCase>
</testCaseList>
openshift/oai-physim-bc.yaml
View file @
41a9ac11
...
...
@@ -31,10 +31,6 @@ spec:
strategy
:
dockerStrategy
:
dockerfilePath
:
"
docker/Dockerfile.phySim.rhel8.2"
from
:
kind
:
ImageStreamTag
namespace
:
oaicicd-ran
name
:
oai-ran-base:latest
output
:
to
:
kind
:
"
ImageStreamTag"
...
...
openshift/ran-base-log-retrieval.yaml
0 → 100644
View file @
41a9ac11
# Creating a pod to retrieve ran-base logs
apiVersion
:
v1
kind
:
Pod
metadata
:
name
:
ran-base-log-retrieval
namespace
:
oaicicd-ran
spec
:
containers
:
-
name
:
logcontainer
image
:
ran-base:latest
command
:
[
"
/bin/sh"
,
"
-c"
]
args
:
[
"
sleep
inf"
]
openshift/ran-build-bc.yaml
View file @
41a9ac11
...
...
@@ -31,10 +31,6 @@ spec:
strategy
:
dockerStrategy
:
dockerfilePath
:
"
docker/Dockerfile.build.rhel8.2"
from
:
kind
:
ImageStreamTag
# Use an imagestream tag as 'FROM'
namespace
:
oaicicd-ran
# Which project?
name
:
oai-ran-base:latest
# Use the imagestream created above
output
:
to
:
kind
:
"
ImageStreamTag"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment