@@ -15,35 +15,57 @@ DOCKER_RM="${DOCKER_RM:-true}"
1515cleanup () {
1616 if [ " $DOCKER_RM " = " true" ]; then
1717 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
2020 rm -rf $TEST_DIR
2121 fi
2222}
2323trap cleanup EXIT
2424
25+ # set up the directories
26+
2527mkdir -p $TEST_DIR /plugins
28+
29+ configstore=$TEST_DIR /configs
30+ mkdir -p $configstore
31+
2632mkdir -p $TEST_DIR /tutorial
2733
2834volumes=" -v $TEST_DIR :/root -v $PWD /docs:/root/docs"
2935
3036# set the environment variable to use a shorter path so we don't have
3137# 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"
3341
3442server () {
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 $@
3646}
3747
3848run () {
3949 docker run --rm $envs $volumes $DOCKER_IMAGE :$DOCKER_TAG $@
4050}
4151
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
4561
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
4769
4870expect_exact_output () {
4971 message=$1
@@ -81,10 +103,11 @@ expect_output_lines() {
81103 fi
82104}
83105
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 "
85107
86108expect_output_lines " 0 instances should exist" " run infrakit instance describe -q --name instance-file" " 0"
87109
110+ echo " Commiting"
88111run infrakit group commit /root/docs/cattle.json
89112
90113echo ' Waiting for group to be provisioned'
@@ -93,7 +116,10 @@ sleep 2
93116expect_output_lines " 5 instances should exist in group" " run infrakit group describe cattle -q" " 5"
94117expect_output_lines " 5 instances should exist" " run infrakit instance describe -q --name instance-file" " 5"
95118
119+ echo " Free the cattle"
96120run infrakit group free cattle
121+
122+ echo " Commit again"
97123run infrakit group commit /root/docs/cattle.json
98124
99125expect_exact_output " Should be watching one group" " run infrakit group ls -q" " cattle"
0 commit comments