Matteo Scandolo | 51b7630 | 2020-02-05 12:07:23 -0800 | [diff] [blame] | 1 | /* voltha-scale-measurements pipeline */ |
| 2 | pipeline { |
Matteo Scandolo | 51b7630 | 2020-02-05 12:07:23 -0800 | [diff] [blame] | 3 | /* no label, executor is determined by JJB */ |
| 4 | agent { |
| 5 | label "${params.buildNode}" |
| 6 | } |
Shrey Baid | 00ff5c4 | 2020-02-07 15:14:08 -0800 | [diff] [blame] | 7 | environment { |
Shrey Baid | b001c71 | 2020-02-11 11:12:46 -0800 | [diff] [blame] | 8 | SSHPASS="karaf" |
Shrey Baid | 00ff5c4 | 2020-02-07 15:14:08 -0800 | [diff] [blame] | 9 | } |
Matteo Scandolo | 51b7630 | 2020-02-05 12:07:23 -0800 | [diff] [blame] | 10 | stages { |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 11 | stage('Set build description') { |
Shrey Baid | e7614d0 | 2020-02-25 10:26:42 -0800 | [diff] [blame] | 12 | steps { |
| 13 | script { |
Shrey Baid | 943e207 | 2020-03-04 10:31:32 -0800 | [diff] [blame] | 14 | currentBuild.description = "$BUILD_TIMESTAMP" |
Shrey Baid | e7614d0 | 2020-02-25 10:26:42 -0800 | [diff] [blame] | 15 | } |
| 16 | } |
| 17 | } |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 18 | stage('Cleanup') { |
Matteo Scandolo | 51b7630 | 2020-02-05 12:07:23 -0800 | [diff] [blame] | 19 | steps { |
Shrey Baid | b044718 | 2020-02-27 16:39:35 -0800 | [diff] [blame] | 20 | sh ''' |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 21 | rm -rf *.txt |
Matteo Scandolo | dd5bbe9 | 2020-03-27 11:43:08 -0700 | [diff] [blame] | 22 | for hchart in \$(helm list -q | grep -E -v 'docker-registry|kafkacat|etcd-operator'); |
Matteo Scandolo | 151e35c | 2020-02-28 15:45:15 -0800 | [diff] [blame] | 23 | do |
| 24 | echo "Purging chart: \${hchart}" |
| 25 | helm delete --purge "\${hchart}" |
| 26 | done |
Shrey Baid | b044718 | 2020-02-27 16:39:35 -0800 | [diff] [blame] | 27 | bash /home/cord/voltha-scale/wait_for_pods.sh |
| 28 | bash /home/cord/voltha-scale/stop_port_forward.sh |
| 29 | ''' |
Matteo Scandolo | 51b7630 | 2020-02-05 12:07:23 -0800 | [diff] [blame] | 30 | } |
| 31 | } |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 32 | stage('Start') { |
Matteo Scandolo | 51b7630 | 2020-02-05 12:07:23 -0800 | [diff] [blame] | 33 | steps { |
Shrey Baid | 00ff5c4 | 2020-02-07 15:14:08 -0800 | [diff] [blame] | 34 | sh ''' |
Matteo Scandolo | 51b7630 | 2020-02-05 12:07:23 -0800 | [diff] [blame] | 35 | #!/usr/bin/env bash |
| 36 | set -euo pipefail |
Shrey Baid | 00ff5c4 | 2020-02-07 15:14:08 -0800 | [diff] [blame] | 37 | ''' |
| 38 | } |
| 39 | } |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 40 | stage('Deploy voltha') { |
Matteo Scandolo | 2fc1dac | 2020-03-09 08:39:53 -0700 | [diff] [blame] | 41 | options { |
| 42 | timeout(time:10) |
| 43 | } |
Shrey Baid | 00ff5c4 | 2020-02-07 15:14:08 -0800 | [diff] [blame] | 44 | steps { |
| 45 | sh ''' |
Matteo Scandolo | a3470b7 | 2020-03-17 12:26:47 -0700 | [diff] [blame] | 46 | helm repo update |
Matteo Scandolo | f87e1da | 2020-04-16 16:13:31 -0700 | [diff] [blame] | 47 | helm install -n cord-kafka incubator/kafka -f /home/cord/voltha-scale/voltha-values.yaml --version 0.13.3 --set replicas=${numOfKafka} --set persistence.enabled=false --set zookeeper.replicaCount=${numOfKafka} --set zookeeper.persistence.enabled=false |
Matteo Scandolo | e1c200f | 2020-03-24 10:33:58 -0700 | [diff] [blame] | 48 | helm install -n nem-monitoring cord/nem-monitoring --set kpi_exporter.enabled=false,dashboards.xos=false,dashboards.onos=false,dashboards.aaa=false,dashboards.voltha=false |
Shrey Baid | b06b55a | 2020-03-12 15:04:58 -0700 | [diff] [blame] | 49 | |
Matteo Scandolo | f87e1da | 2020-04-16 16:13:31 -0700 | [diff] [blame] | 50 | helm install -n radius onf/freeradius ${extraHelmFlags} |
| 51 | |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 52 | # Multi BBSim sadis server (to be migrated in ONF and included in the helm-chart) |
| 53 | # kubectl create -f https://raw.githubusercontent.com/ciena/bbsim-sadis-server/master/bbsim-sadis-server.yaml |
| 54 | |
Matteo Scandolo | f87e1da | 2020-04-16 16:13:31 -0700 | [diff] [blame] | 55 | # NOTE wait for the infrastructure to be running before installing VOLTHA |
| 56 | bash /home/cord/voltha-scale/wait_for_pods.sh |
| 57 | |
Matteo Scandolo | e69614f | 2020-03-10 11:35:35 -0700 | [diff] [blame] | 58 | IFS=: read -r onosRepo onosTag <<< ${onosImg} |
| 59 | helm install -n onos onf/onos --set images.onos.repository=${onosRepo} --set images.onos.tag=${onosTag} ${extraHelmFlags} |
Shrey Baid | b044718 | 2020-02-27 16:39:35 -0800 | [diff] [blame] | 60 | |
Matteo Scandolo | a2928e7 | 2020-03-02 16:38:22 -0800 | [diff] [blame] | 61 | IFS=: read -r volthaRepo volthaTag <<< ${volthaImg} |
Matteo Scandolo | e69614f | 2020-03-10 11:35:35 -0700 | [diff] [blame] | 62 | IFS=: read -r ofAgentRepo ofAgentTag <<< ${ofAgentImg} |
Matteo Scandolo | fddcb00 | 2020-03-24 09:14:57 -0700 | [diff] [blame] | 63 | helm install -n voltha ${volthaChart} -f /home/cord/voltha-scale/voltha-values.yaml --set defaults.log_level=${logLevel},images.rw_core.repository=${volthaRepo},images.rw_core.tag=${volthaTag},images.ofagent_go.repository=${ofAgentRepo},images.ofagent_go.tag=${ofAgentTag} ${extraHelmFlags} |
Matteo Scandolo | a2928e7 | 2020-03-02 16:38:22 -0800 | [diff] [blame] | 64 | |
| 65 | IFS=: read -r openoltAdapterRepo openoltAdapterTag <<< ${openoltAdapterImg} |
Matteo Scandolo | 330f752 | 2020-03-17 17:15:53 -0700 | [diff] [blame] | 66 | helm install -n openolt ${openoltAdapterChart} -f /home/cord/voltha-scale/voltha-values.yaml --set defaults.log_level=${logLevel},images.adapter_open_olt.repository=${openoltAdapterRepo},images.adapter_open_olt.tag=${openoltAdapterTag} ${extraHelmFlags} |
Matteo Scandolo | a2928e7 | 2020-03-02 16:38:22 -0800 | [diff] [blame] | 67 | |
| 68 | IFS=: read -r openonuAdapterRepo openonuAdapterTag <<< ${openonuAdapterImg} |
Matteo Scandolo | 330f752 | 2020-03-17 17:15:53 -0700 | [diff] [blame] | 69 | helm install -n openonu ${openonuAdapterChart} -f /home/cord/voltha-scale/voltha-values.yaml --set defaults.log_level=${logLevel},images.adapter_open_onu.repository=${openonuAdapterRepo},images.adapter_open_onu.tag=${openonuAdapterTag} ${extraHelmFlags} |
Matteo Scandolo | a2928e7 | 2020-03-02 16:38:22 -0800 | [diff] [blame] | 70 | |
| 71 | IFS=: read -r bbsimRepo bbsimTag <<< ${bbsimImg} |
Matteo Scandolo | 7059b08 | 2020-03-17 09:05:03 -0700 | [diff] [blame] | 72 | |
Matteo Scandolo | f87e1da | 2020-04-16 16:13:31 -0700 | [diff] [blame] | 73 | for i in $(seq 1 $((${numOfBbsim}))); do |
| 74 | helm install -n bbsim-$i ${bbsimChart} --set olt_id=$i,enablePerf=true,pon=${ponPorts},onu=${onuPerPon},auth=${bbsimAuth},dhcp=${bbsimDhcp},delay=${BBSIMdelay},images.bbsim.repository=${bbsimRepo},images.bbsim.tag=${bbsimTag} ${extraHelmFlags} |
| 75 | done |
Shrey Baid | b044718 | 2020-02-27 16:39:35 -0800 | [diff] [blame] | 76 | |
Shrey Baid | b044718 | 2020-02-27 16:39:35 -0800 | [diff] [blame] | 77 | bash /home/cord/voltha-scale/wait_for_pods.sh |
| 78 | bash /home/cord/voltha-scale/start_port_forward.sh |
Shrey Baid | 00ff5c4 | 2020-02-07 15:14:08 -0800 | [diff] [blame] | 79 | ''' |
| 80 | } |
| 81 | } |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 82 | stage('Wait for Adapters to be registered in VOLTHA') { |
Matteo Scandolo | 2fc1dac | 2020-03-09 08:39:53 -0700 | [diff] [blame] | 83 | options { |
| 84 | timeout(time:5) |
| 85 | } |
Matteo Scandolo | a711ddf | 2020-03-06 16:41:34 -0800 | [diff] [blame] | 86 | steps{ |
| 87 | waitUntil { |
| 88 | script { |
| 89 | openolt_res = sh returnStdout: true, script: """ |
| 90 | voltctl adapter list | grep openolt | wc -l |
| 91 | """ |
| 92 | |
| 93 | openonu_res = sh returnStdout: true, script: """ |
| 94 | voltctl adapter list | grep brcm_openomci_onu | wc -l |
| 95 | """ |
| 96 | |
Matteo Scandolo | 89f1cea | 2020-04-10 10:20:20 -0700 | [diff] [blame] | 97 | return openolt_res.toInteger() >= 1 && openonu_res.toInteger() >= 1 |
Matteo Scandolo | a711ddf | 2020-03-06 16:41:34 -0800 | [diff] [blame] | 98 | } |
| 99 | } |
| 100 | } |
| 101 | } |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 102 | stage('Push MIB template to ETCD') { |
Shrey Baid | e7614d0 | 2020-02-25 10:26:42 -0800 | [diff] [blame] | 103 | steps { |
| 104 | sh ''' |
| 105 | if [ ${withMibTemplate} = true ] ; then |
Shrey Baid | b044718 | 2020-02-27 16:39:35 -0800 | [diff] [blame] | 106 | rm -f BBSM-12345123451234512345-00000000000001-v1.json |
Shrey Baid | e7614d0 | 2020-02-25 10:26:42 -0800 | [diff] [blame] | 107 | wget https://raw.githubusercontent.com/opencord/voltha-openonu-adapter/master/templates/BBSM-12345123451234512345-00000000000001-v1.json |
Shrey Baid | b044718 | 2020-02-27 16:39:35 -0800 | [diff] [blame] | 108 | cat BBSM-12345123451234512345-00000000000001-v1.json | kubectl exec -it $(kubectl get pods | grep etcd-cluster | awk 'NR==1{print $1}') etcdctl put service/voltha/omci_mibs/templates/BBSM/12345123451234512345/00000000000001 |
Shrey Baid | e7614d0 | 2020-02-25 10:26:42 -0800 | [diff] [blame] | 109 | fi |
| 110 | ''' |
Shrey Baid | 0d4e31d | 2020-02-11 13:28:47 -0800 | [diff] [blame] | 111 | } |
Shrey Baid | e7614d0 | 2020-02-25 10:26:42 -0800 | [diff] [blame] | 112 | } |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 113 | stage('Configure ONOS and VOLTHA') { |
Shrey Baid | e7614d0 | 2020-02-25 10:26:42 -0800 | [diff] [blame] | 114 | steps { |
| 115 | sh ''' |
Matteo Scandolo | 330f752 | 2020-03-17 17:15:53 -0700 | [diff] [blame] | 116 | #Setting LOG level to ${logLevel} |
Matteo Scandolo | f87e1da | 2020-04-16 16:13:31 -0700 | [diff] [blame] | 117 | sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 log:set ${logLevel} |
Shrey Baid | b044718 | 2020-02-27 16:39:35 -0800 | [diff] [blame] | 118 | kubectl exec $(kubectl get pods | grep bbsim | awk 'NR==1{print $1}') bbsimctl log warn false |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 119 | |
Shrey Baid | e7614d0 | 2020-02-25 10:26:42 -0800 | [diff] [blame] | 120 | #Setting link discovery |
Matteo Scandolo | f87e1da | 2020-04-16 16:13:31 -0700 | [diff] [blame] | 121 | sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 cfg set org.onosproject.provider.lldp.impl.LldpLinkProvider enabled ${setLinkDiscovery} |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 122 | |
Matteo Scandolo | 7b3fde9 | 2020-02-26 16:17:16 -0800 | [diff] [blame] | 123 | # extending voltctl timeout |
Shrey Baid | b044718 | 2020-02-27 16:39:35 -0800 | [diff] [blame] | 124 | sed -i 's/timeout: 10s/timeout: 5m/g' /home/cord/.volt/config |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 125 | |
| 126 | #Setting the flow and ports stats collection interval |
| 127 | sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 cfg set org.onosproject.provider.of.flow.impl.OpenFlowRuleProvider flowPollFrequency ${flowStatInterval} |
| 128 | sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 cfg set org.onosproject.provider.of.device.impl.OpenFlowDeviceProvider portStatsPollFrequency ${portsStatInterval} |
| 129 | |
Matteo Scandolo | c981223 | 2020-04-22 14:18:07 -0700 | [diff] [blame] | 130 | # Always deactivate org.opencord.kafka |
| 131 | sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 app deactivate org.opencord.kafka |
| 132 | |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 133 | #Check withOnosApps and disable apps accordingly |
| 134 | if [ ${withOnosApps} = false ] ; then |
| 135 | sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 app deactivate org.opencord.olt |
| 136 | sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 app deactivate org.opencord.aaa |
| 137 | sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 app deactivate org.opencord.dhcpl2relay |
| 138 | else |
| 139 | curl --fail -sSL --user karaf:karaf -X POST -H Content-Type:application/json "http://127.0.0.1:30120/onos/v1/network/configuration/apps/org.opencord.sadis" --data '{ |
| 140 | "sadis": { |
| 141 | "integration": { |
| 142 | "url": "http://bbsim-sadis-server.default.svc:58080/subscribers/%s", |
| 143 | "cache": { |
| 144 | "enabled": true, |
| 145 | "maxsize": 50, |
| 146 | "ttl": "PT1m" |
| 147 | } |
| 148 | } |
| 149 | }, |
| 150 | "bandwidthprofile": { |
| 151 | "integration": { |
| 152 | "url": "http://bbsim-sadis-server.default.svc:58080/profiles/%s", |
| 153 | "cache": { |
| 154 | "enabled": true, |
| 155 | "maxsize": 50, |
| 156 | "ttl": "PT1m" |
| 157 | } |
| 158 | } |
| 159 | } |
| 160 | }' |
| 161 | fi |
Shrey Baid | e7614d0 | 2020-02-25 10:26:42 -0800 | [diff] [blame] | 162 | ''' |
| 163 | } |
| 164 | } |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 165 | stage('Set timeout at 10 minutes') { |
Shrey Baid | e7614d0 | 2020-02-25 10:26:42 -0800 | [diff] [blame] | 166 | options { |
| 167 | timeout(time:10) |
| 168 | } |
| 169 | stages { |
Matteo Scandolo | f87e1da | 2020-04-16 16:13:31 -0700 | [diff] [blame] | 170 | stage('Activate OLTs') { |
| 171 | steps { |
| 172 | sh ''' |
| 173 | for i in $(seq 1 $((${numOfBbsim}))); do |
| 174 | voltctl device create -t openolt -H bbsim-$i:50060 -m 0f:f1:ce:c$i:ff:ee |
| 175 | done |
| 176 | voltctl device list --filter Type~openolt -q | xargs voltctl device enable |
| 177 | ''' |
| 178 | } |
| 179 | } |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 180 | stage('Wait for ONUs to be enabled') { |
Shrey Baid | a3b8aa6 | 2020-02-13 11:22:51 -0800 | [diff] [blame] | 181 | steps { |
| 182 | sh ''' |
| 183 | if [ -z ${expectedOnus} ] |
| 184 | then |
| 185 | echo -e "You need to set the target ONU number\n" |
| 186 | exit 1 |
| 187 | fi |
Shrey Baid | 00ff5c4 | 2020-02-07 15:14:08 -0800 | [diff] [blame] | 188 | |
Shrey Baid | a3b8aa6 | 2020-02-13 11:22:51 -0800 | [diff] [blame] | 189 | # check ONUs reached Active State in VOLTHA |
| 190 | i=$(voltctl device list | grep -v OLT | grep ACTIVE | wc -l) |
| 191 | until [ $i -eq ${expectedOnus} ] |
| 192 | do |
| 193 | echo "$i ONUs ACTIVE of ${expectedOnus} expected (time: $SECONDS)" |
| 194 | sleep ${pollInterval} |
| 195 | i=$(voltctl device list | grep -v OLT | grep ACTIVE | wc -l) |
| 196 | done |
| 197 | echo "${expectedOnus} ONUs Activated in $SECONDS seconds (time: $SECONDS)" |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 198 | |
Shrey Baid | 49bf8f6 | 2020-03-09 17:52:01 -0700 | [diff] [blame] | 199 | echo $SECONDS > voltha-devices-time-num.txt |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 200 | |
| 201 | echo "VOLTHA Duration(s)" > voltha-devices-time.txt |
| 202 | cat voltha-devices-time-num.txt >> voltha-devices-time.txt |
Shrey Baid | a3b8aa6 | 2020-02-13 11:22:51 -0800 | [diff] [blame] | 203 | ''' |
| 204 | } |
| 205 | } |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 206 | stage('Wait for ports to be discovered in ONOS') { |
Shrey Baid | a3b8aa6 | 2020-02-13 11:22:51 -0800 | [diff] [blame] | 207 | steps { |
Shrey Baid | e7614d0 | 2020-02-25 10:26:42 -0800 | [diff] [blame] | 208 | sh ''' |
Shrey Baid | a3b8aa6 | 2020-02-13 11:22:51 -0800 | [diff] [blame] | 209 | # Check ports showed up in ONOS |
Matteo Scandolo | f87e1da | 2020-04-16 16:13:31 -0700 | [diff] [blame] | 210 | z=$(sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 ports -e | grep BBSM | wc -l) |
Shrey Baid | a3b8aa6 | 2020-02-13 11:22:51 -0800 | [diff] [blame] | 211 | until [ $z -eq ${expectedOnus} ] |
| 212 | do |
| 213 | echo "${z} enabled ports of ${expectedOnus} expected (time: $SECONDS)" |
| 214 | sleep ${pollInterval} |
Matteo Scandolo | f87e1da | 2020-04-16 16:13:31 -0700 | [diff] [blame] | 215 | z=$(sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 ports -e | grep BBSM | wc -l) |
Shrey Baid | a3b8aa6 | 2020-02-13 11:22:51 -0800 | [diff] [blame] | 216 | done |
| 217 | echo "${expectedOnus} ports enabled in $SECONDS seconds (time: $SECONDS)" |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 218 | |
Shrey Baid | 49bf8f6 | 2020-03-09 17:52:01 -0700 | [diff] [blame] | 219 | echo $SECONDS > temp.txt |
| 220 | paste voltha-devices-time-num.txt temp.txt | awk '{print ($1 + $2)}' > onos-ports-time-num.txt |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 221 | |
| 222 | echo "PORTs Duration(s)" > onos-ports-time.txt |
Shrey Baid | 49bf8f6 | 2020-03-09 17:52:01 -0700 | [diff] [blame] | 223 | cat onos-ports-time-num.txt >> onos-ports-time.txt |
Shrey Baid | a3b8aa6 | 2020-02-13 11:22:51 -0800 | [diff] [blame] | 224 | ''' |
| 225 | } |
| 226 | } |
Matteo Scandolo | c981223 | 2020-04-22 14:18:07 -0700 | [diff] [blame] | 227 | stage('Wait for flows to be programmed in VOLTHA') { |
| 228 | steps { |
| 229 | sh ''' |
| 230 | if [ ${withOnosApps} = false ] ; then |
| 231 | echo "ONOS Apps are not enabled, nothing to check" |
| 232 | else |
| 233 | function get_flows() { |
| 234 | local TOTAL |
| 235 | TOTAL=0 |
| 236 | |
| 237 | arr=("$@") |
| 238 | for id in "${arr[@]}" |
| 239 | do |
| 240 | TOTAL=$((TOTAL + $(voltctl logicaldevice flows $id | grep -v ID | wc -l))) |
| 241 | done |
| 242 | echo $TOTAL |
| 243 | } |
| 244 | |
| 245 | LOGICAL_DEVICE_IDS=$(voltctl logicaldevice list | grep BBSIM | awk '{print $1}') |
| 246 | IDS=($LOGICAL_DEVICE_IDS) |
| 247 | |
| 248 | FLOWS=$(get_flows "${IDS[@]}") |
| 249 | |
| 250 | until [ $FLOWS -eq ${expectedFlows} ] |
| 251 | do |
| 252 | echo "${FLOWS} of ${expectedFlows} flows programmed in VOLTHA (time: $SECONDS)" |
| 253 | sleep ${pollInterval} |
| 254 | FLOWS=$(get_flows "${IDS[@]}") |
| 255 | done |
| 256 | echo "${expectedFlows} flows correctly programmed (time: $SECONDS)" |
| 257 | echo $SECONDS > temp.txt |
| 258 | paste onos-ports-time-num.txt temp.txt | awk '{print ($1 + $2)}' > voltha-flows-time-num.txt |
| 259 | |
| 260 | echo "VOLTHA FLOWs Duration(s)" > voltha-flows-time.txt |
| 261 | cat voltha-flows-time-num.txt >> voltha-flows-time.txt |
| 262 | fi |
| 263 | ''' |
| 264 | } |
| 265 | } |
| 266 | stage('Wait for flows to be acknowledged in ONOS') { |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 267 | steps { |
| 268 | sh ''' |
| 269 | if [ ${withOnosApps} = false ] ; then |
| 270 | echo "ONOS Apps are not enabled, nothing to check" |
| 271 | else |
| 272 | # wait until all flows are in added state |
Matteo Scandolo | c981223 | 2020-04-22 14:18:07 -0700 | [diff] [blame] | 273 | z=$(sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 flows -s | grep ADDED | wc -l) |
| 274 | until [ $z -eq ${expectedFlows} ] |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 275 | do |
Matteo Scandolo | c981223 | 2020-04-22 14:18:07 -0700 | [diff] [blame] | 276 | echo "${z} of ${expectedFlows} flows in ADDED state (time: $SECONDS)" |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 277 | sleep ${pollInterval} |
Matteo Scandolo | c981223 | 2020-04-22 14:18:07 -0700 | [diff] [blame] | 278 | z=$(sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 flows -s | grep ADDED | wc -l) |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 279 | done |
Matteo Scandolo | c981223 | 2020-04-22 14:18:07 -0700 | [diff] [blame] | 280 | echo "${expectedFlows} flows correctly acknowledged (time: $SECONDS)" |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 281 | |
| 282 | echo $SECONDS > temp.txt |
Matteo Scandolo | c981223 | 2020-04-22 14:18:07 -0700 | [diff] [blame] | 283 | paste voltha-flows-time-num.txt temp.txt | awk '{print ($1 + $2)}' > onos-flows-time-num.txt |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 284 | |
Matteo Scandolo | c981223 | 2020-04-22 14:18:07 -0700 | [diff] [blame] | 285 | echo "ONOS FLOWs Duration(s)" > onos-flows-time.txt |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 286 | cat onos-flows-time-num.txt >> onos-flows-time.txt |
| 287 | fi |
| 288 | ''' |
| 289 | } |
| 290 | } |
Shrey Baid | b001c71 | 2020-02-11 11:12:46 -0800 | [diff] [blame] | 291 | } |
| 292 | } |
Matteo Scandolo | 51b7630 | 2020-02-05 12:07:23 -0800 | [diff] [blame] | 293 | } |
| 294 | post { |
Shrey Baid | 4da57a6 | 2020-03-05 15:49:50 -0800 | [diff] [blame] | 295 | success { |
Shrey Baid | e7614d0 | 2020-02-25 10:26:42 -0800 | [diff] [blame] | 296 | plot([ |
| 297 | csvFileName: 'plot-onu-activation.csv', |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 298 | csvSeries: [ |
| 299 | [displayTableFlag: false, exclusionValues: '', file: 'voltha-devices-time.txt', inclusionFlag: 'OFF', url: ''], |
| 300 | [displayTableFlag: false, exclusionValues: '', file: 'onos-ports-time.txt', inclusionFlag: 'OFF', url: ''], |
Matteo Scandolo | c981223 | 2020-04-22 14:18:07 -0700 | [diff] [blame] | 301 | [displayTableFlag: false, exclusionValues: '', file: 'voltha-flows-time.txt', inclusionFlag: 'OFF', url: ''], |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 302 | [displayTableFlag: false, exclusionValues: '', file: 'onos-flows-time.txt', inclusionFlag: 'OFF', url: ''] |
| 303 | ], |
| 304 | group: 'Voltha-Scale-Numbers', numBuilds: '20', style: 'line', title: "Time (${BBSIMdelay}s Delay)", yaxis: 'Time (s)', useDescr: true |
Shrey Baid | e7614d0 | 2020-02-25 10:26:42 -0800 | [diff] [blame] | 305 | ]) |
Shrey Baid | 4da57a6 | 2020-03-05 15:49:50 -0800 | [diff] [blame] | 306 | } |
| 307 | always { |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 308 | // count how many ONUs have been activated |
Shrey Baid | 4da57a6 | 2020-03-05 15:49:50 -0800 | [diff] [blame] | 309 | sh ''' |
Shrey Baid | 49bf8f6 | 2020-03-09 17:52:01 -0700 | [diff] [blame] | 310 | echo "#-of-ONUs" > voltha-devices-count.txt |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 311 | echo $(voltctl device list | grep -v OLT | grep ACTIVE | wc -l) >> voltha-devices-count.txt |
Matteo Scandolo | e1c200f | 2020-03-24 10:33:58 -0700 | [diff] [blame] | 312 | ''' |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 313 | // count how many ports have been discovered |
Matteo Scandolo | e1c200f | 2020-03-24 10:33:58 -0700 | [diff] [blame] | 314 | sh ''' |
Shrey Baid | 49bf8f6 | 2020-03-09 17:52:01 -0700 | [diff] [blame] | 315 | echo "#-of-ports" > onos-ports-count.txt |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 316 | echo $(sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 ports -e | grep BBSM | wc -l) >> onos-ports-count.txt |
Matteo Scandolo | e1c200f | 2020-03-24 10:33:58 -0700 | [diff] [blame] | 317 | ''' |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 318 | // count how many flows have been provisioned |
| 319 | sh ''' |
| 320 | echo "#-of-flows" > onos-flows-count.txt |
| 321 | echo $(sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 flows -s | grep ADDED | wc -l) >> onos-flows-count.txt |
| 322 | ''' |
| 323 | // check which containers were used in this build |
Matteo Scandolo | e1c200f | 2020-03-24 10:33:58 -0700 | [diff] [blame] | 324 | sh ''' |
Matteo Scandolo | 24044fc | 2020-04-14 10:07:14 -0700 | [diff] [blame] | 325 | kubectl get pods --all-namespaces -o jsonpath="{range .items[*].status.containerStatuses[*]}{.image}{'\\n'}" | sort | uniq |
| 326 | kubectl get pods --all-namespaces -o jsonpath="{range .items[*].status.containerStatuses[*]}{.imageID}{'\\n'}" | sort | uniq |
Matteo Scandolo | e1c200f | 2020-03-24 10:33:58 -0700 | [diff] [blame] | 327 | ''' |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 328 | // dump all the VOLTHA devices informations |
Matteo Scandolo | e1c200f | 2020-03-24 10:33:58 -0700 | [diff] [blame] | 329 | sh ''' |
Shrey Baid | 4da57a6 | 2020-03-05 15:49:50 -0800 | [diff] [blame] | 330 | voltctl device list -o json > device-list.json |
Shrey Baid | 49bf8f6 | 2020-03-09 17:52:01 -0700 | [diff] [blame] | 331 | python -m json.tool device-list.json > voltha-devices-list.json |
Matteo Scandolo | e1c200f | 2020-03-24 10:33:58 -0700 | [diff] [blame] | 332 | ''' |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 333 | // get ports and flows from ONOS |
Matteo Scandolo | e1c200f | 2020-03-24 10:33:58 -0700 | [diff] [blame] | 334 | sh ''' |
Matteo Scandolo | f87e1da | 2020-04-16 16:13:31 -0700 | [diff] [blame] | 335 | sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 ports > onos-ports-list.txt |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 336 | sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@127.0.0.1 flows -s > onos-flows-list.txt |
| 337 | ''' |
| 338 | // collect the CPU usage |
| 339 | sh ''' |
Shrey Baid | ce9ed55 | 2020-03-13 13:40:13 -0700 | [diff] [blame] | 340 | curl -s -X GET -G http://127.0.0.1:31301/api/v1/query --data-urlencode 'query=avg(rate(container_cpu_usage_seconds_total[10m])*100) by (pod_name)' | jq . > cpu-usage.json |
Matteo Scandolo | e1c200f | 2020-03-24 10:33:58 -0700 | [diff] [blame] | 341 | ''' |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 342 | // get all the logs from kubernetes PODs |
Matteo Scandolo | e1c200f | 2020-03-24 10:33:58 -0700 | [diff] [blame] | 343 | sh ''' |
Matteo Scandolo | 3d31ebc | 2020-04-16 14:39:40 -0700 | [diff] [blame] | 344 | kubectl get pods -o wide |
Matteo Scandolo | 89f1cea | 2020-04-10 10:20:20 -0700 | [diff] [blame] | 345 | kubectl logs -l app=adapter-open-olt > open-olt-logs.txt |
| 346 | kubectl logs -l app=adapter-open-onu > open-onu-logs.txt |
| 347 | kubectl logs -l app=rw-core > voltha-rw-core-logs.txt |
| 348 | kubectl logs -l app=ofagent > voltha-ofagent-logs.txt |
| 349 | kubectl logs -l app=bbsim > bbsim-logs.txt |
Matteo Scandolo | 4b03e3b | 2020-04-23 09:44:17 -0700 | [diff] [blame] | 350 | kubectl logs -l app=onos > onos-logs.txt |
Matteo Scandolo | e1c200f | 2020-03-24 10:33:58 -0700 | [diff] [blame] | 351 | ''' |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 352 | // cleanup of things we don't want to archive |
Matteo Scandolo | e1c200f | 2020-03-24 10:33:58 -0700 | [diff] [blame] | 353 | sh ''' |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 354 | rm -rf BBSM-12345123451234512345-00000000000001-v1.json device-list.json temp.txt |
Matteo Scandolo | e1c200f | 2020-03-24 10:33:58 -0700 | [diff] [blame] | 355 | ''' |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 356 | // compile a plot of the activate informations |
Shrey Baid | 4da57a6 | 2020-03-05 15:49:50 -0800 | [diff] [blame] | 357 | plot([ |
| 358 | csvFileName: 'plot-numbers.csv', |
Matteo Scandolo | d1a1508 | 2020-04-22 10:57:49 -0700 | [diff] [blame] | 359 | csvSeries: [ |
| 360 | [displayTableFlag: false, exclusionValues: '', file: 'voltha-devices-count.txt', inclusionFlag: 'OFF', url: ''], |
| 361 | [displayTableFlag: false, exclusionValues: '', file: 'onos-ports-count.txt', inclusionFlag: 'OFF', url: ''] |
| 362 | ], |
Shrey Baid | 4da57a6 | 2020-03-05 15:49:50 -0800 | [diff] [blame] | 363 | group: 'Voltha-Scale-Numbers', numBuilds: '100', style: 'line', title: "Activated ONUs and Recognized Ports", yaxis: 'Number of Ports/ONUs', useDescr: true |
| 364 | ]) |
| 365 | |
| 366 | archiveArtifacts artifacts: '*.log,*.json,*txt' |
| 367 | |
Matteo Scandolo | 51b7630 | 2020-02-05 12:07:23 -0800 | [diff] [blame] | 368 | } |
| 369 | } |
Matteo Scandolo | e69614f | 2020-03-10 11:35:35 -0700 | [diff] [blame] | 370 | } |