Exclude vendor directory and ignore several err
[icn.git] / deploy / metal3-vm / 04_verify.sh
1 #!/usr/bin/env bash
2
3 set -x
4
5 # shellcheck disable=SC1091
6 source lib/common.sh
7
8 node=0
9 declare -i timeout=30
10 declare -i interval=60
11
12 function check_num_hosts {
13     while read -r name address user password mac; do
14         ((node+=1))
15     done
16     return $node
17 }
18
19 function check_bm_state {
20     c=1
21     n=$1
22     while [ $c -le $n ]
23     do
24         echo "Welcone $c times"
25         (( c++ ))
26     done
27 }
28
29 function check_provisioned {
30     declare -i prev_host_state=0
31     declare -i j=0
32     while read -r name address user password mac; do
33         declare -i current_host_state=0
34         state=$(kubectl get baremetalhosts $name -n metal3 -o json | jq -r '.status.provisioning.state')
35         echo $name":"$state
36
37         if [ $state == "provisioned" ];then
38             current_host_state=1
39         fi
40
41         echo "j:"$j
42         echo "current_host_state":$current_host_state
43         echo "prev_host_state":$prev_host_state
44
45          if [ $j -eq 0 ]; then
46             prev_host_state=$current_host_state
47             ((j+=1))
48             continue
49         fi
50
51         if [ $current_host_state -eq 1 ] && [ $prev_host_state -eq 1 ]; then
52             prev_host_state=1
53         else
54             prev_host_state=0
55         fi
56
57         echo "after:prev_host_state:"$prev_host_state
58         ((j+=1))
59     done
60     return $prev_host_state
61 }
62
63 function wait_for_provisioned {
64     all_bmh_provisioned=1
65     while ((timeout > 0)); do
66         echo "Try $timeout: Wait for $interval seconds to check all bmh state"
67         sleep $interval
68         list_nodes | check_provisioned
69         all_bmh_state=$?
70         if [[ $all_bmh_state -eq $all_bmh_provisioned ]]; then
71             echo "All the bmh state is provisioned - vsuccess"
72             exit 0
73         fi
74         ((timeout-=1))
75     done
76     exit 1
77 }
78
79 function verify_bm_hosts {
80     #list_nodes | check_num_hosts
81     #nodes=$?
82     #check_bm_state $nodes
83     wait_for_provisioned
84 }
85
86 verify_bm_hosts