summaryrefslogtreecommitdiffstats
path: root/ci/02-deploybundle.sh
blob: c8d35ef395ba6a25b5ee3e231bf5d7545b169884 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
#!/bin/bash
#placeholder for deployment script.
set -ex

#    ./02-deploybundle.sh $opnfvtype $openstack $opnfvlab $opnfvsdn $opnfvfeature $opnfvdistro

opnfvtype=$1
openstack=$2
opnfvlab=$3
opnfvsdn=$4
opnfvfeature=$5
opnfvdistro=$6
opnfvmodel=$7

jujuver=`juju --version`
maasver=`apt-cache policy maas | grep Installed | cut -d ':' -f 2 | sed -e 's/ //'`

if [[ "$opnfvmodel" = "openstack" ]]; then
    #copy and download charms
    ./$opnfvsdn/fetch-charms.sh $opnfvdistro
    tar xvf common/scaleio.tar -C ./$opnfvdistro/ --strip=2 juju-scaleio/trusty/
    osdomname=''
else
    ./kubernetes/fetch-charms.sh $opnfvdistro
fi

#check whether charms are still executing the code even juju-deployer says installed.
check_status() {
    retval=0
    timeoutiter=0
    while [ $retval -eq 0 ]; do
       sleep 30
       juju status > status.txt
       if [ "$(grep -c "waiting" status.txt )" -ge 4 ]; then
           echo " still waiting for machines ..."
           if [ $timeoutiter -ge 240 ]; then
               retval=1
           fi
           timeoutiter=$((timeoutiter+1))
       else
           retval=1
       fi
    done
    echo "...... deployment finishing ......."
}

#read the value from deployconfig.yaml

PROFILE=maas
MAAS_IP=$(grep " ip_address" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //')
API_SERVERMAAS="http://$MAAS_IP/MAAS/"
if [ "$maasver" > "2" ]; then
    API_KEY=`sudo maas-region apikey --username=ubuntu || true`
else
    API_KEY=`sudo maas-region-admin apikey --username=ubuntu || true`
fi


if [[ "$API_KEY" = "" ]]; then
    if [[ "$maasver" > "2" ]]; then
        API_KEY=`sshpass -p ubuntu ssh ubuntu@$MAAS_IP 'sudo maas-region apikey --username=ubuntu'`
    else
        API_KEY=`sshpass -p ubuntu ssh ubuntu@$MAAS_IP 'sudo maas-region-admin apikey --username=ubuntu'`
    fi
fi

maas login $PROFILE $API_SERVERMAAS $API_KEY

if [[ "$opnfvmodel" = "openstack" ]]; then
    if [ -e ./deployconfig.yaml ]; then
       extport=`grep "ext-port" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //' | tr ',' ' '`
       datanet=`grep "dataNetwork" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //'`
       admnet=`grep "admNetwork" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //'`
       cephdisk=`grep "ceph-disk" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //'`
       osdomname=`grep "os-domain-name" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //'`
    fi

    if [[ "$maasver" > "2" ]]; then
        workmutiple=`maas maas nodes read | grep "cpu_count" | cut -d ':' -f 2 | sed -e 's/ //' | tr ',' ' '`
    else
        workmutiple=`maas maas nodes list | grep "cpu_count" | cut -d ':' -f 2 | sed -e 's/ //' | tr ',' ' '`
    fi
    max=0
    for v in ${workmutiple[@]}; do
        if (( $v > $max )); then max=$v; fi;
    done
    echo $max

    if [ "$max" -lt 4 ];then
        workmutiple=1.1
    elif [ "$max" -lt 33 ]; then
        workmutiple=0.25
    elif [ "$max" -lt 73 ]; then
        workmutiple=0.1
    else
        workmutiple=0.05
    fi
    sed -i "s/worker_multiplier: 1.0/worker_multiplier: ${workmutiple}/g" default_deployment_config.yaml
fi

case "$opnfvlab" in
     'juniperpod1' )
         sed -i -- 's/10.4.1.1/172.16.50.1/g' ./bundles.yaml
         sed -i -- 's/#ext-port: "eth1"/ext-port: "eth1"/g' ./bundles.yaml
         ;;
     'ravellodemopod' )
         sed -i -- 's/#ext-port: "eth1"/ext-port: "eth2"/g' ./bundles.yaml
        ;;
esac

# lets put the if seperateor as "," as this will save me from world.
fea=""
IFS=","
for feature in $opnfvfeature; do
    if [ "$fea" == "" ]; then
        fea=$feature
    else
        fea=$fea"_"$feature
    fi
done

if [[ "$opnfvmodel" = "openstack" ]]; then
    #update source if trusty is target distribution
    var=os-$opnfvsdn-$fea-$opnfvtype"-"$opnfvdistro"_"$openstack

    if [ "$osdomname" != "None" ]; then
        var=$var"_"publicapi
    fi
else
    var=k8-$opnfvsdn-$fea-baremetal-core
fi

if [[ "$opnfvmodel" = "openstack" ]]; then
    #lets generate the bundle for all target using genBundle.py
    python genBundle.py  -l deployconfig.yaml  -s $var > bundles.yaml
else
    #lets generate the bundle for k8 target using genK8Bundle.py
    python genK8Bundle.py  -l deployconfig.yaml  -s $var > bundles.yaml
fi

#keep the back in cloud for later debugging.
pastebinit bundles.yaml || true

if [[ "$jujuver" < "2" ]]; then
    echo "... Deployment Started ...."
    juju-deployer -vW -d -t 7200 -r 5 -c bundles.yaml $opnfvdistro-"$openstack"-nodes
    count=`juju status nodes --format=short | grep nodes | wc -l`
    c=0
    while [ $c -lt $count ]; do
        juju ssh nodes/$c 'echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p' || true
        juju ssh nodes-compute/$c 'echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p' || true
        juju ssh nodes/$c 'echo 2048 | sudo tee /proc/sys/fs/inotify/max_user_instances' || true
        juju ssh nodes-compute/$c 'echo 2048 | sudo tee /proc/sys/fs/inotify/max_user_instances' || true
        let c+=1
    done

    juju-deployer -vW -d -t 7200 -r 5 -c bundles.yaml $opnfvdistro-"$openstack" || true
else
    # with JUJU 2.0 bundles has to be deployed only once.
    juju deploy bundles.yaml --debug
    sleep 120
    check_status
    # seeing issue related to number of open files.
    count=`juju status nodes --format=short | grep nodes | wc -l`
    c=0
    while [ $c -lt $count ]; do
        juju ssh nodes/$c 'echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p' || true
        juju ssh nodes-compute/$c 'echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p' || true
        juju ssh nodes/$c 'echo 2048 | sudo tee /proc/sys/fs/inotify/max_user_instances' || true
        juju ssh nodes-compute/$c 'echo 2048 | sudo tee /proc/sys/fs/inotify/max_user_instances' || true
        let c+=1
    done
fi

#lets gather the status of deployment once juju-deployer completed.
juju status --format=tabular
le */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
 <html>
  <head>
    <meta charset="utf-8">
    <!-- Bootstrap core CSS -->
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
    <link href="../../js/default.css" rel="stylesheet">
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
    <script type="text/javascript" src="../../js/gauge.js"></script>
    <script type="text/javascript" src="../../js/trend.js"></script>
    <script>
    function onDocumentReady() {
    	// Gauge management
        var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');var gaugeScenario6 = gauge('#gaugeScenario6');var gaugeScenario7 = gauge('#gaugeScenario7');var gaugeScenario8 = gauge('#gaugeScenario8');var gaugeScenario9 = gauge('#gaugeScenario9');var gaugeScenario10 = gauge('#gaugeScenario10');var gaugeScenario11 = gauge('#gaugeScenario11');var gaugeScenario12 = gauge('#gaugeScenario12');

    	// assign success rate to the gauge
    	function updateReadings() {
    	    gaugeScenario1.update(50.0);gaugeScenario2.update(83.3333333333);gaugeScenario3.update(83.3333333333);gaugeScenario4.update(66.6666666667);gaugeScenario5.update(58.3333333333);gaugeScenario6.update(96.9696969697);gaugeScenario7.update(20.0);gaugeScenario8.update(81.8181818182);gaugeScenario9.update(6.06060606061);gaugeScenario10.update(6.06060606061);gaugeScenario11.update(80.5555555556);gaugeScenario12.update(100.0);
    	}
    	updateReadings();
        }

        // trend line management
        d3.csv("./scenario_history.txt", function(data) {
       // ***************************************
       // Create the trend line
      // for scenario os-nosdn-fdio-noha
       // Filter results
        var trend1 = data.filter(function(row) {
    	     return row["scenario"]=="os-nosdn-fdio-noha" && row["installer"]=="apex";
    	})
       // Parse the date
        trend1.forEach(function(d) {
    	    d.date = parseDate(d.date);
    	    d.score = +d.score
        });
        // Draw the trend line
        var mytrend = trend("#trend_svg1",trend1)
        // ****************************************// for scenario os-odl-gluon-noha
       // Filter results
        var trend2 = data.filter(function(row) {
    	     return row["scenario"]=="os-odl-gluon-noha" && row["installer"]=="apex";
    	})
       // Parse the date
        trend2.forEach(function(d) {
    	    d.date = parseDate(d.date);
    	    d.score = +d.score
        });
        // Draw the trend line
        var mytrend = trend("#trend_svg2",trend2)
        // ****************************************// for scenario os-odl_l2-fdio-noha
       // Filter results
        var trend3 = data.filter(function(row) {
    	     return row["scenario"]=="os-odl_l2-fdio-noha" && row["installer"]=="apex";
    	})
       // Parse the date
        trend3.forEach(function(d) {
    	    d.date = parseDate(d.date);
    	    d.score = +d.score
        });
        // Draw the trend line
        var mytrend = trend("#trend_svg3",trend3)
        // ****************************************// for scenario os-odl_l3-fdio-noha
       // Filter results
        var trend4 = data.filter(function(row) {
    	     return row["scenario"]=="os-odl_l3-fdio-noha" && row["installer"]=="apex";
    	})
       // Parse the date
        trend4.forEach(function(d) {
    	    d.date = parseDate(d.date);
    	    d.score = +d.score
        });
        // Draw the trend line
        var mytrend = trend("#trend_svg4",trend4)
        // ****************************************// for scenario os-odl-bgpvpn-ha
       // Filter results
        var trend5 = data.filter(function(row) {
    	     return row["scenario"]=="os-odl-bgpvpn-ha" && row["installer"]=="apex";
    	})
       // Parse the date
        trend5.forEach(function(d) {
    	    d.date = parseDate(d.date);
    	    d.score = +d.score
        });
        // Draw the trend line
        var mytrend = trend("#trend_svg5",trend5)
        // ****************************************// for scenario os-nosdn-kvm-ha
       // Filter results
        var trend6 = data.filter(function(row) {
    	     return row["scenario"]=="os-nosdn-kvm-ha" && row["installer"]=="apex";
    	})
       // Parse the date
        trend6.forEach(function(d) {
    	    d.date = parseDate(d.date);
    	    d.score = +d.score
        });
        // Draw the trend line
        var mytrend = trend("#trend_svg6",trend6)
        // ****************************************// for scenario os-nosdn-fdio-ha
       // Filter results
        var trend7 = data.filter(function(row) {
    	     return row["scenario"]=="os-nosdn-fdio-ha" && row["installer"]=="apex";
    	})
       // Parse the date
        trend7.forEach(function(d) {
    	    d.date = parseDate(d.date);
    	    d.score = +d.score
        });
        // Draw the trend line
        var mytrend = trend("#trend_svg7",trend7)
        // ****************************************// for scenario os-odl_l3-nofeature-ha
       // Filter results
        var trend8 = data.filter(function(row) {
    	     return row["scenario"]=="os-odl_l3-nofeature-ha" && row["installer"]=="apex";
    	})
       // Parse the date
        trend8.forEach(function(d) {
    	    d.date = parseDate(d.date);
    	    d.score = +d.score
        });
        // Draw the trend line
        var mytrend = trend("#trend_svg8",trend8)
        // ****************************************// for scenario os-odl_l3-ovs-ha
       // Filter results
        var trend9 = data.filter(function(row) {
    	     return row["scenario"]=="os-odl_l3-ovs-ha" && row["installer"]=="apex";
    	})
       // Parse the date
        trend9.forEach(function(d) {
    	    d.date = parseDate(d.date);
    	    d.score = +d.score
        });
        // Draw the trend line
        var mytrend = trend("#trend_svg9",trend9)
        // ****************************************// for scenario os-nosdn-ovs-ha
       // Filter results
        var trend10 = data.filter(function(row) {
    	     return row["scenario"]=="os-nosdn-ovs-ha" && row["installer"]=="apex";
    	})
       // Parse the date
        trend10.forEach(function(d) {
    	    d.date = parseDate(d.date);
    	    d.score = +d.score
        });
        // Draw the trend line
        var mytrend = trend("#trend_svg10",trend10)
        // ****************************************// for scenario os-odl_l2-fdio-ha
       // Filter results
        var trend11 = data.filter(function(row) {
    	     return row["scenario"]=="os-odl_l2-fdio-ha" && row["installer"]=="apex";
    	})
       // Parse the date
        trend11.forEach(function(d) {
    	    d.date = parseDate(d.date);
    	    d.score = +d.score
        });
        // Draw the trend line
        var mytrend = trend("#trend_svg11",trend11)
        // ****************************************// for scenario os-nosdn-nofeature-ha
       // Filter results
        var trend12 = data.filter(function(row) {
    	     return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="apex";
    	})
       // Parse the date
        trend12.forEach(function(d) {
    	    d.date = parseDate(d.date);
    	    d.score = +d.score
        });
        // Draw the trend line
        var mytrend = trend("#trend_svg12",trend12)
        // ****************************************
    });
    if ( !window.isLoaded ) {
        window.addEventListener("load", function() {
    			onDocumentReady();
        }, false);
    } else {
    	onDocumentReady();
    }
</script>
<script type="text/javascript">
$(document).ready(function (){
    $(".btn-more").click(function() {
    	$(this).hide();
    	$(this).parent().find(".panel-default").show();
    });
})
</script>

  </head>
    <body>
    <div class="container">
      <div class="masthead">
        <h3 class="text-muted">Functest Danube 1.0 status page (2017-03-31 01:45)</h3>
        <nav>
          <ul class="nav nav-justified">
            <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
            <li><a href="./apex.html">Apex</a></li>
            <li><a href="./compass.html">Compass</a></li>
            <li><a href="./fuel.html">Fuel</a></li>
            <li><a href="./joid.html">Joid</a></li>
          </ul>
        </nav>
      </div>
<div class="row">
    <div class="col-md-1"></div>
    <div class="col-md-10">
        <div class="page-header">
            <h2>apex</h2>
        </div>

        <div class="scenario-overview">
            <div class="panel-heading"><h4><b>List of last scenarios (danube) run over the last 10 days </b></h4></div>
                <table class="table">
                    <tr>
                        <th width="40%">Scenario</th>
                        <th width="20%">Status</th>
                        <th width="20%">Trend</th>
                        <th width="10%">Score</th>
                        <th width="10%">Iteration</th>
                    </tr>
                        <tr class="tr-ok">
                                <td><a href=http://testresultS.opnfv.org/reporting>os-nosdn-fdio-noha</a></td>
                                <td><div id="gaugeScenario1"></div></td>
                                <td><div id="trend_svg1"></div></td>
                                <td>15/30</td>
                                <td>2</td>
                            </tr><tr class="tr-ok">
                                <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/71/console>os-odl-gluon-noha</a></td>
                                <td><div id="gaugeScenario2"></div></td>
                                <td><div id="trend_svg2"></div></td>
                                <td>30/36</td>
                                <td>6</td>
                            </tr><tr class="tr-ok">
                                <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/72/console>os-odl_l2-fdio-noha</a></td>
                                <td><div id="gaugeScenario3"></div></td>
                                <td><div id="trend_svg3"></div></td>
                                <td>30/36</td>
                                <td>14</td>
                            </tr><tr class="tr-ok">
                                <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/75/console>os-odl_l3-fdio-noha</a></td>
                                <td><div id="gaugeScenario4"></div></td>
                                <td><div id="trend_svg4"></div></td>
                                <td>20/30</td>
                                <td>5</td>
                            </tr><tr class="tr-ok">
                                <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/70/console>os-odl-bgpvpn-ha</a></td>
                                <td><div id="gaugeScenario5"></div></td>
                                <td><div id="trend_svg5"></div></td>
                                <td>21/36</td>
                                <td>6</td>
                            </tr><tr class="tr-ok">
                                <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/74/console>os-nosdn-kvm-ha</a></td>
                                <td><div id="gaugeScenario6"></div></td>
                                <td><div id="trend_svg6"></div></td>
                                <td>32/33</td>
                                <td>5</td>
                            </tr><tr class="tr-ok">
                                <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/76/console>os-nosdn-fdio-ha</a></td>
                                <td><div id="gaugeScenario7"></div></td>
                                <td><div id="trend_svg7"></div></td>
                                <td>6/30</td>
                                <td>4</td>
                            </tr><tr class="tr-ok">
                                <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/69/console>os-odl_l3-nofeature-ha</a></td>
                                <td><div id="gaugeScenario8"></div></td>
                                <td><div id="trend_svg8"></div></td>
                                <td>27/33</td>
                                <td>6</td>
                            </tr><tr class="tr-ok">
                                <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/78/console>os-odl_l3-ovs-ha</a></td>
                                <td><div id="gaugeScenario9"></div></td>
                                <td><div id="trend_svg9"></div></td>
                                <td>2/33</td>
                                <td>1</td>
                            </tr><tr class="tr-ok">
                                <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/77/console>os-nosdn-ovs-ha</a></td>
                                <td><div id="gaugeScenario10"></div></td>
                                <td><div id="trend_svg10"></div></td>
                                <td>2/33</td>
                                <td>1</td>
                            </tr><tr class="tr-ok">
                                <td><a href=http://testresultS.opnfv.org/reporting>os-odl_l2-fdio-ha</a></td>
                                <td><div id="gaugeScenario11"></div></td>
                                <td><div id="trend_svg11"></div></td>
                                <td>29/36</td>
                                <td>8</td>
                            </tr><tr class="tr-ok">
                                <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/79/console>os-nosdn-nofeature-ha</a></td>
                                <td><div id="gaugeScenario12"></div></td>
                                <td><div id="trend_svg12"></div></td>
                                <td>33/33</td>
                                <td>6</td>
                            </tr>
                        </table>
        </div>


        <div class="scenario-part">
            <div class="page-header">
                <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-fdio-noha</b></h3>
            </div>
                    <div class="panel panel-default">
                    <div class="panel-heading">
                        <span class="panel-header-item">
                        </span>
                    </div>
                    <table class="table">
                        <tr>
                            <th>
                            Health (connection)

                             </th><th>
                            Health (api)

                             </th><th>
                            Health (dhcp)

                             </th><th>
                            vPing (ssh)

                             </th><th>
                            vPing (userdata)

                             </th><th>
                            Tempest (smoke)

                             </th><th>
                            Rally (smoke)

                             </th><th>
                            Refstack

                             </th><th>
                            SNAPS

                             </th><th>
                            Domino

                             </th>
                        </tr>
                        <tr class="tr-weather-weather">
                            <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
                        </tr>
                    </table>
                </div>
        </div><div class="scenario-part">
            <div class="page-header">
                <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-gluon-noha</b></h3>
            </div>
                    <div class="panel panel-default">
                    <div class="panel-heading">
                        <span class="panel-header-item">
                        </span>
                    </div>
                    <table class="table">
                        <tr>
                            <th>
                            Health (connection)

                             </th><th>
                            Health (api)

                             </th><th>
                            Health (dhcp)

                             </th><th>
                            vPing (userdata)

                             </th><th>
                            Tempest (smoke)

                             </th><th>
                            Rally (smoke)

                             </th><th>
                            Refstack

                             </th><th>
                            ODL

                             </th><th>
                            SNAPS

                             </th><th>
                            Doctor

                             </th><th>
                            Domino

                             </th><th>
                            Netready

                             </th>
                        </tr>
                        <tr class="tr-weather-weather">
                            <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
                        </tr>
                    </table>
                </div>
        </div><div class="scenario-part">
            <div class="page-header">
                <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-fdio-noha</b></h3>
            </div>
                    <div class="panel panel-default">
                    <div class="panel-heading">
                        <span class="panel-header-item">
                        </span>
                    </div>
                    <table class="table">
                        <tr>
                            <th>
                            Health (connection)

                             </th><th>
                            Health (api)

                             </th><th>
                            Health (dhcp)

                             </th><th>
                            vPing (ssh)

                             </th><th>
                            vPing (userdata)

                             </th><th>
                            Tempest (smoke)

                             </th><th>
                            Rally (smoke)

                             </th><th>
                            Refstack

                             </th><th>
                            ODL

                             </th><th>
                            FDS

                             </th><th>
                            SNAPS

                             </th><th>
                            Domino

                             </th>
                        </tr>
                        <tr class="tr-weather-weather">
                            <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
                        </tr>
                    </table>
                </div>
        </div><div class="scenario-part">
            <div class="page-header">
                <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-fdio-noha</b></h3>
            </div>
                    <div class="panel panel-default">
                    <div class="panel-heading">
                        <span class="panel-header-item">
                        </span>
                    </div>
                    <table class="table">
                        <tr>
                            <th>
                            Health (connection)

                             </th><th>
                            Health (api)

                             </th><th>
                            Health (dhcp)

                             </th><th>
                            vPing (userdata)

                             </th><th>
                            Tempest (smoke)

                             </th><th>
                            Rally (smoke)

                             </th><th>
                            Refstack

                             </th><th>
                            ODL

                             </th><th>
                            SNAPS

                             </th><th>
                            Domino

                             </th>
                        </tr>
                        <tr class="tr-weather-weather">
                            <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
                        </tr>
                    </table>
                </div>
        </div><div class="scenario-part">
            <div class="page-header">
                <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-bgpvpn-ha</b></h3>
            </div>
                    <div class="panel panel-default">
                    <div class="panel-heading">
                        <span class="panel-header-item">
                        </span>
                    </div>
                    <table class="table">
                        <tr>
                            <th>
                            Health (connection)

                             </th><th>
                            Health (api)

                             </th><th>
                            Health (dhcp)

                             </th><th>
                            vPing (userdata)

                             </th><th>
                            Tempest (smoke)

                             </th><th>
                            Rally (smoke)

                             </th><th>
                            Refstack

                             </th><th>
                            ODL

                             </th><th>
                            SNAPS

                             </th><th>
                            Doctor

                             </th><th>
                            bgpvpn

                             </th><th>
                            Domino

                             </th>
                        </tr>
                        <tr class="tr-weather-weather">
                            <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
                        </tr>
                    </table>
                </div>
        </div><div class="scenario-part">
            <div class="page-header">
                <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm-ha</b></h3>
            </div>
                    <div class="panel panel-default">
                    <div class="panel-heading">
                        <span class="panel-header-item">
                        </span>
                    </div>
                    <table class="table">
                        <tr>
                            <th>
                            Health (connection)

                             </th><th>
                            Health (api)

                             </th><th>
                            Health (dhcp)

                             </th><th>
                            vPing (ssh)

                             </th><th>
                            vPing (userdata)

                             </th><th>
                            Tempest (smoke)

                             </th><th>
                            Rally (smoke)

                             </th><th>
                            Refstack

                             </th><th>
                            SNAPS

                             </th><th>
                            Doctor

                             </th><th>
                            Domino

                             </th>
                        </tr>
                        <tr class="tr-weather-weather">
                            <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
                        </tr>
                    </table>
                </div>
        </div><div class="scenario-part">
            <div class="page-header">
                <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-fdio-ha</b></h3>
            </div>
                    <div class="panel panel-default">
                    <div class="panel-heading">
                        <span class="panel-header-item">
                        </span>
                    </div>
                    <table class="table">
                        <tr>
                            <th>
                            Health (connection)

                             </th><th>
                            Health (api)

                             </th><th>
                            Health (dhcp)

                             </th><th>
                            vPing (ssh)

                             </th><th>
                            vPing (userdata)

                             </th><th>
                            Tempest (smoke)

                             </th><th>
                            Rally (smoke)

                             </th><th>
                            Refstack

                             </th><th>
                            SNAPS

                             </th><th>
                            Domino

                             </th>
                        </tr>
                        <tr class="tr-weather-weather">
                            <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
                        </tr>
                    </table>
                </div>
        </div><div class="scenario-part">
            <div class="page-header">
                <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-ha</b></h3>
            </div>
                    <div class="panel panel-default">
                    <div class="panel-heading">
                        <span class="panel-header-item">
                        </span>
                    </div>
                    <table class="table">
                        <tr>
                            <th>
                            Health (connection)

                             </th><th>
                            Health (api)

                             </th><th>
                            Health (dhcp)

                             </th><th>
                            vPing (userdata)

                             </th><th>
                            Tempest (smoke)

                             </th><th>
                            Rally (smoke)

                             </th><th>
                            Refstack

                             </th><th>
                            ODL

                             </th><th>
                            SNAPS

                             </th><th>
                            Doctor

                             </th><th>
                            Domino

                             </th>
                        </tr>
                        <tr class="tr-weather-weather">
                            <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
                        </tr>
                    </table>
                </div>
        </div><div class="scenario-part">
            <div class="page-header">
                <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-ovs-ha</b></h3>
            </div>
                    <div class="panel panel-default">
                    <div class="panel-heading">
                        <span class="panel-header-item">
                        </span>
                    </div>
                    <table class="table">
                        <tr>
                            <th>
                            Health (connection)

                             </th><th>
                            Health (api)

                             </th><th>
                            Health (dhcp)

                             </th><th>
                            vPing (userdata)

                             </th><th>
                            Tempest (smoke)

                             </th><th>
                            Rally (smoke)

                             </th><th>
                            Refstack

                             </th><th>
                            ODL

                             </th><th>
                            SNAPS

                             </th><th>
                            Doctor

                             </th><th>
                            Domino

                             </th>
                        </tr>
                        <tr class="tr-weather-weather">
                            <td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
                        </tr>
                    </table>
                </div>
        </div><div class="scenario-part">
            <div class="page-header">
                <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs-ha</b></h3>
            </div>
                    <div class="panel panel-default">
                    <div class="panel-heading">
                        <span class="panel-header-item">
                        </span>
                    </div>
                    <table class="table">
                        <tr>
                            <th>
                            Health (connection)

                             </th><th>
                            Health (api)

                             </th><th>
                            Health (dhcp)

                             </th><th>
                            vPing (ssh)

                             </th><th>
                            vPing (userdata)

                             </th><th>
                            Tempest (smoke)

                             </th><th>
                            Rally (smoke)

                             </th><th>
                            Refstack

                             </th><th>
                            SNAPS

                             </th><th>
                            Doctor

                             </th><th>
                            Domino

                             </th>
                        </tr>
                        <tr class="tr-weather-weather">
                            <td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
                        </tr>
                    </table>
                </div>
        </div><div class="scenario-part">
            <div class="page-header">
                <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-fdio-ha</b></h3>
            </div>
                    <div class="panel panel-default">
                    <div class="panel-heading">
                        <span class="panel-header-item">
                        </span>
                    </div>
                    <table class="table">
                        <tr>
                            <th>
                            Health (connection)

                             </th><th>
                            Health (api)

                             </th><th>
                            Health (dhcp)

                             </th><th>
                            vPing (ssh)

                             </th><th>
                            vPing (userdata)

                             </th><th>
                            Tempest (smoke)

                             </th><th>
                            Rally (smoke)

                             </th><th>
                            Refstack

                             </th><th>
                            ODL

                             </th><th>
                            FDS

                             </th><th>
                            SNAPS

                             </th><th>
                            Domino

                             </th>
                        </tr>
                        <tr class="tr-weather-weather">
                            <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
                        </tr>
                    </table>
                </div>
        </div><div class="scenario-part">
            <div class="page-header">
                <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
            </div>
                    <div class="panel panel-default">
                    <div class="panel-heading">
                        <span class="panel-header-item">
                        </span>
                    </div>
                    <table class="table">
                        <tr>
                            <th>
                            Health (connection)

                             </th><th>
                            Health (api)

                             </th><th>
                            Health (dhcp)

                             </th><th>
                            vPing (ssh)

                             </th><th>
                            vPing (userdata)

                             </th><th>
                            Tempest (smoke)

                             </th><th>
                            Rally (smoke)

                             </th><th>
                            Refstack

                             </th><th>
                            SNAPS

                             </th><th>
                            Doctor

                             </th><th>
                            Domino

                             </th>
                        </tr>
                        <tr class="tr-weather-weather">
                            <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
                        </tr>
                    </table>
                </div>
        </div>
    see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
    </div>
    <div class="col-md-1"></div>
</div>