@@ -15,35 +15,57 @@ DOCKER_RM="${DOCKER_RM:-true}"
15
15
cleanup () {
16
16
if [ " $DOCKER_RM " = " true" ]; then
17
17
echo " cleaning up docker images"
18
- docker ps | grep devbundle | awk ' {print $1}' | xargs docker stop
19
- docker ps | grep devbundle | awk ' {print $1}' | xargs docker rm
18
+ docker ps -a | grep devbundle | awk ' {print $1}' | xargs docker stop
19
+ docker ps -a | grep devbundle | awk ' {print $1}' | xargs docker rm
20
20
rm -rf $TEST_DIR
21
21
fi
22
22
}
23
23
trap cleanup EXIT
24
24
25
+ # set up the directories
26
+
25
27
mkdir -p $TEST_DIR /plugins
28
+
29
+ configstore=$TEST_DIR /configs
30
+ mkdir -p $configstore
31
+
26
32
mkdir -p $TEST_DIR /tutorial
27
33
28
34
volumes=" -v $TEST_DIR :/root -v $PWD /docs:/root/docs"
29
35
30
36
# set the environment variable to use a shorter path so we don't have
31
37
# problems with Docker for Mac. See https://github.com/docker/docker/issues/23545
32
- envs=" -e INFRAKIT_PLUGINS_DIR=/root"
38
+ envs=" -e INFRAKIT_PLUGINS_DIR=/root/plugins"
39
+
40
+ log=" --log 5"
33
41
34
42
server () {
35
- docker run -d --name $1 $envs $volumes $DOCKER_IMAGE :$DOCKER_TAG $@
43
+ name=$1
44
+ shift ;
45
+ docker run -d --name $name $envs $volumes $DOCKER_IMAGE :$DOCKER_TAG $@
36
46
}
37
47
38
48
run () {
39
49
docker run --rm $envs $volumes $DOCKER_IMAGE :$DOCKER_TAG $@
40
50
}
41
51
42
- server infrakit-instance-file --dir /root/tutorial/
43
- server infrakit-group-default --poll-interval 500ms
44
- server infrakit-flavor-vanilla
52
+ # set the leader -- for os / file based leader detection for manager
53
+ leaderfile=$TEST_DIR /leader
54
+ echo group > $leaderfile
55
+
56
+ # start up multiple instances of manager -- typically we want multiple SETS of plugins and managers
57
+ # but here for simplicity just start up with multiple managers and one set of plugins
58
+ server manager infrakit-manager $log --name group --proxy-for-group group-stateless os --leader-file /root/leader --store-dir /root/configs
59
+ server manager1 infrakit-manager $log --name group1 --proxy-for-group group-stateless os --leader-file /root/leader --store-dir /root/configs
60
+ server manager2 infrakit-manager $log --name group2 --proxy-for-group group-stateless os --leader-file /root/leader --store-dir /root/configs
45
61
46
- sleep 1
62
+ sleep 5 # wait for leadership detection to run
63
+
64
+ server instance-file infrakit-instance-file --dir /root/tutorial/ $log
65
+ server group-default infrakit-group-default --poll-interval 500ms --name group-stateless $log
66
+ server flavor-vanilla infrakit-flavor-vanilla $log
67
+
68
+ sleep 2
47
69
48
70
expect_exact_output () {
49
71
message=$1
@@ -81,10 +103,11 @@ expect_output_lines() {
81
103
fi
82
104
}
83
105
84
- expect_output_lines " 3 plugins should be discoverable" " run infrakit plugin ls -q" " 3 "
106
+ expect_output_lines " 6 plugins should be discoverable" " run infrakit plugin ls -q" " 6 "
85
107
86
108
expect_output_lines " 0 instances should exist" " run infrakit instance describe -q --name instance-file" " 0"
87
109
110
+ echo " Commiting"
88
111
run infrakit group commit /root/docs/cattle.json
89
112
90
113
echo ' Waiting for group to be provisioned'
@@ -93,7 +116,10 @@ sleep 2
93
116
expect_output_lines " 5 instances should exist in group" " run infrakit group describe cattle -q" " 5"
94
117
expect_output_lines " 5 instances should exist" " run infrakit instance describe -q --name instance-file" " 5"
95
118
119
+ echo " Free the cattle"
96
120
run infrakit group free cattle
121
+
122
+ echo " Commit again"
97
123
run infrakit group commit /root/docs/cattle.json
98
124
99
125
expect_exact_output " Should be watching one group" " run infrakit group ls -q" " cattle"
0 commit comments