[VOL-4711] Added FTTB Test Support on Berlin DT Pod with ADTRAN DPU
Change-Id: I76f88f87cfdb49cb23d1d0a339f0f2bcc21b5a12
diff --git a/jjb/pipeline/voltha/master/physical-build.groovy b/jjb/pipeline/voltha/master/physical-build.groovy
index 0bf7a97..45bf2ff 100755
--- a/jjb/pipeline/voltha/master/physical-build.groovy
+++ b/jjb/pipeline/voltha/master/physical-build.groovy
@@ -147,6 +147,7 @@
kafkaReplica: params.NumOfKafka,
etcdReplica: params.NumOfEtcd,
bbsimReplica: bbsimReplicas.toInteger(),
+ withFttb: withFttb.toBoolean(),
adaptersToWait: numberOfAdaptersToWait,
])
@@ -259,7 +260,7 @@
curl -sSL --user karaf:karaf -X POST http://${deployment_config.nodes[0].ip}:30120/onos/v1/applications/org.onosproject.segmentrouting/active
"""
}
- timeout(1) {
+ timeout(3) {
setOnosLogLevels([
onosNamespace: infraNamespace,
apps: [
@@ -281,7 +282,7 @@
return sr_active_out == 0
}
}
- timeout(5) {
+ timeout(8) {
for(int i=0; i < deployment_config.hosts.src.size(); i++) {
for(int j=0; j < deployment_config.olts.size(); j++) {
def aggPort = -1
diff --git a/jjb/pipeline/voltha/master/voltha-dt-physical-functional-tests.groovy b/jjb/pipeline/voltha/master/voltha-dt-physical-functional-tests.groovy
index 26ff325..f26c417 100644
--- a/jjb/pipeline/voltha/master/voltha-dt-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha/master/voltha-dt-physical-functional-tests.groovy
@@ -149,16 +149,36 @@
sh """
ps -ef | grep port-forward
mkdir -p $ROBOT_LOGS_DIR
- if ( ${powerSwitch} ); then
- export ROBOT_MISC_ARGS="--removekeywords wuks -i PowerSwitch -i sanityDt -i functionalDt -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
- if ( ${powerCycleOlt} ); then
- ROBOT_MISC_ARGS+=" -v power_cycle_olt:True"
- fi
- else
- export ROBOT_MISC_ARGS="--removekeywords wuks -e PowerSwitch -i sanityDt -i functionalDt -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+ if [ ${params.withFttb} = false ]; then
+ if ( ${powerSwitch} ); then
+ export ROBOT_MISC_ARGS="--removekeywords wuks -i PowerSwitch -i sanityDt -i functionalDt -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+ if ( ${powerCycleOlt} ); then
+ ROBOT_MISC_ARGS+=" -v power_cycle_olt:True"
+ fi
+ else
+ export ROBOT_MISC_ARGS="--removekeywords wuks -e PowerSwitch -i sanityDt -i functionalDt -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+ fi
+ ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
+ make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
fi
- ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
- make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
+ """
+ }
+ }
+
+ stage('FTTB Functional Tests') {
+ environment {
+ ROBOT_CONFIG_FILE="$WORKSPACE/${configBaseDir}/${configDeploymentDir}/${configFileName}-DT.yaml"
+ ROBOT_FILE="Voltha_DT_FTTB_Tests.robot"
+ ROBOT_LOGS_DIR="$WORKSPACE/RobotLogs/dt-workflow/FunctionalTests"
+ }
+ steps {
+ sh """
+ mkdir -p $ROBOT_LOGS_DIR
+ if [ ${params.withFttb} = false ]; then
+ export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i sanityDtFttb -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE"
+ ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace} -v has_dataplane:False"
+ make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
+ fi
"""
}
}
@@ -173,13 +193,15 @@
sh """
ps -ef | grep port-forward
mkdir -p $ROBOT_LOGS_DIR
- if ( ${powerSwitch} ); then
- export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functionalDt -i PowerSwitch -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
- else
- export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functionalDt -e PowerSwitch -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+ if [ ${params.withFttb} = false ]; then
+ if ( ${powerSwitch} ); then
+ export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functionalDt -i PowerSwitch -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+ else
+ export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functionalDt -e PowerSwitch -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+ fi
+ ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
+ make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
fi
- ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
- make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
"""
}
}
@@ -194,9 +216,11 @@
sh """
ps -ef | grep port-forward
mkdir -p $ROBOT_LOGS_DIR
- export ROBOT_MISC_ARGS="--removekeywords wuks -i dataplaneDt -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
- ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
- make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
+ if [ ${params.withFttb} = false ]; then
+ export ROBOT_MISC_ARGS="--removekeywords wuks -i dataplaneDt -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+ ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
+ make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
+ fi
"""
}
}
@@ -210,9 +234,11 @@
sh """
ps -ef | grep port-forward
mkdir -p $ROBOT_LOGS_DIR
- export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v workflow:${params.workFlow} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
- ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
- make -C $WORKSPACE/voltha-system-tests voltha-test || true
+ if [ ${params.withFttb} = false ]; then
+ export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v workflow:${params.workFlow} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+ ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
+ make -C $WORKSPACE/voltha-system-tests voltha-test || true
+ fi
"""
}
}
@@ -227,13 +253,15 @@
sh """
ps -ef | grep port-forward
mkdir -p $ROBOT_LOGS_DIR
- if ( ${powerSwitch} ); then
- export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functionalDt -i PowerSwitch -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
- else
- export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functionalDt -e PowerSwitch -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+ if [ ${params.withFttb} = false ]; then
+ if ( ${powerSwitch} ); then
+ export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functionalDt -i PowerSwitch -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+ else
+ export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functionalDt -e PowerSwitch -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+ fi
+ ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
+ make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
fi
- ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
- make -C $WORKSPACE/voltha-system-tests voltha-dt-test || true
"""
}
}
@@ -248,9 +276,11 @@
steps {
sh """
mkdir -p $ROBOT_LOGS_DIR
- export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functional -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v workflow:${params.workFlow} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
- ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
- make -C $WORKSPACE/voltha-system-tests voltha-test || true
+ if [ ${params.withFttb} = false ]; then
+ export ROBOT_MISC_ARGS="--removekeywords wuks -L TRACE -i functional -e bbsim -e notready -d $ROBOT_LOGS_DIR -v POD_NAME:${configFileName} -v workflow:${params.workFlow} -v KUBERNETES_CONFIGS_DIR:$WORKSPACE/${configBaseDir}/${configKubernetesDir} -v container_log_dir:$WORKSPACE -v OLT_ADAPTER_APP_LABEL:${oltAdapterAppLabel}"
+ ROBOT_MISC_ARGS+=" -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
+ make -C $WORKSPACE/voltha-system-tests voltha-test || true
+ fi
"""
}
}
diff --git a/jjb/voltha-test/voltha-nightly-jobs.yaml b/jjb/voltha-test/voltha-nightly-jobs.yaml
index 30a2194..fcf589b 100644
--- a/jjb/voltha-test/voltha-nightly-jobs.yaml
+++ b/jjb/voltha-test/voltha-nightly-jobs.yaml
@@ -97,6 +97,11 @@
default: '{enableMultiUni}'
description: "Enables the Multi UNI feature"
+ - bool:
+ name: withFttb
+ default: '{withFttb}'
+ description: "Deploy with FTTB"
+
- string:
name: uniPortMask
default: '{uniPortMask}'
@@ -227,6 +232,7 @@
profile: 'Default'
logLevel: 'DEBUG'
enableMultiUni: false
+ withFttb: false
uniPortMask: '0x0001'
bbsimReplicas: 0
num-of-onus: 0
@@ -268,6 +274,7 @@
profile: 'Default'
logLevel: 'DEBUG'
enableMultiUni: false
+ withFttb: false
uniPortMask: '0x0001'
bbsimReplicas: 0
num-of-onus: 0
@@ -304,6 +311,7 @@
oltAdapterAppLabel: 'adapter-open-olt'
enableMultiUni: false
+ withFttb: false
timeout: 300
parameters:
@@ -383,6 +391,11 @@
description: "Enables the Multi UNI feature"
- bool:
+ name: withFttb
+ default: '{withFttb}'
+ description: "Test with FTTB enabled"
+
+ - bool:
name: powerSwitch
default: '{power-switch}'
description: "Indicate whether POD has power switch to reboot ONUs/OLT remotely"
diff --git a/jjb/voltha-test/voltha.yaml b/jjb/voltha-test/voltha.yaml
index 19c9383..4a6f362 100644
--- a/jjb/voltha-test/voltha.yaml
+++ b/jjb/voltha-test/voltha.yaml
@@ -536,7 +536,7 @@
num-of-onos: '3'
num-of-atomix: '3'
pipeline-script: 'voltha/voltha-2.8/physical-build.groovy'
- time: '8'
+ time: '7'
# Berlin POD test job - voltha-2.8 versions: uses tech profile on voltha branch
- 'build_voltha_pod_test':
@@ -551,6 +551,36 @@
power-switch: True
pipeline-script: 'voltha/voltha-2.8/voltha-dt-physical-functional-tests.groovy'
+ # Berlin pod with gpon olt/onu - master 1T8GEM tech profile and timer based job
+ - 'build_voltha_pod_release_timer':
+ build-node: 'berlin-community-pod-1'
+ config-pod: 'berlin-community-pod-1-gpon-fttb'
+ withFttb: true
+ name-extension: '_DT'
+ 'disable-job': false
+ work-flow: 'DT'
+ profile: '1T8GEM'
+ num-of-onos: '3'
+ num-of-atomix: '3'
+ extraHelmFlags: " --set onos-classic.image.repository=andreacampanella/voltha-onos --set onos-classic.image.tag=configured-mac-fttb "
+ time: '13'
+
+ # Berlin POD test job - master versions: uses 1T8GEM tech profile on voltha branch
+ - 'build_voltha_pod_test':
+ timeout: 330
+ build-node: 'berlin-community-pod-1'
+ config-pod: 'berlin-community-pod-1-gpon-fttb'
+ withFttb: true
+ name-extension: '_DT'
+ 'disable-job': false
+ work-flow: 'DT'
+ release: 'master'
+ branch: 'master'
+ test-repo: 'voltha-system-tests'
+ profile: '1T8GEM'
+ power-switch: True
+ pipeline-script: 'voltha/master/voltha-dt-physical-functional-tests.groovy'
+
# Berlin pod with adtran gpon olt/onu - 2.8 1T8GEM tech profile and timer based job
- 'build_voltha_pod_release_timer':
build-node: 'berlin-community-pod-1'
@@ -608,4 +638,4 @@
openoltAdapterChart: '/home/community/adtran-21.5-voltha-2.8/voltha-adapter-adtran-olt'
oltAdapterReleaseName: 'adtran-olt'
waitTimerForOltUp: 420
- time: '15'
+ time: '16'
diff --git a/vars/volthaDeploy.groovy b/vars/volthaDeploy.groovy
index aad754b..8cb2622 100644
--- a/vars/volthaDeploy.groovy
+++ b/vars/volthaDeploy.groovy
@@ -15,6 +15,7 @@
stackId: 1,
workflow: "att",
withMacLearning: false,
+ withFttb: false,
extraHelmFlags: "",
localCharts: false, // wether to use locally cloned charts or upstream one (for local we assume they are stored in $WORKSPACE/voltha-helm-charts)
dockerRegistry: "", // use a different docker registry for all images, eg: "mirror.registry.opennetworking.org"
diff --git a/vars/volthaInfraDeploy.groovy b/vars/volthaInfraDeploy.groovy
index fd03e51..a6870d8 100644
--- a/vars/volthaInfraDeploy.groovy
+++ b/vars/volthaInfraDeploy.groovy
@@ -19,6 +19,7 @@
infraNamespace: "infra",
workflow: "att",
withMacLearning: false,
+ withFttb: false,
extraHelmFlags: "",
localCharts: false,
kubeconfig: null, // location of the kubernetes config file, if null we assume it's stored in the $KUBECONFIG environment variable
@@ -57,6 +58,8 @@
def serviceConfigFile = cfg.workflow
if (cfg.withMacLearning && cfg.workflow == 'tt') {
serviceConfigFile = "tt-maclearner"
+ } else if (cfg.withFttb && cfg.workflow == 'dt') {
+ serviceConfigFile = "dt-fttb"
}
// bitnamic/etch has change the replica format between the currently used 5.4.2 and the latest 6.2.5
diff --git a/vars/volthaStackDeploy.groovy b/vars/volthaStackDeploy.groovy
index bea044b..c63850b 100644
--- a/vars/volthaStackDeploy.groovy
+++ b/vars/volthaStackDeploy.groovy
@@ -9,6 +9,7 @@
stackId: 1, // NOTE this is used to differentiate between BBSims across multiple stacks
workflow: "att",
withMacLearning: false,
+ withFttb: false,
extraHelmFlags: "",
localCharts: false,
onosReplica: 1,