Stack.log is created by stack.sh, which is started by run.sh. Using
the pid from run.sh doesn't mean that stack.log has been created yet
so wait for the log to be created before tailing
Change-Id: I86e563478949cb7bbe0d1afd80b790ba70328e3a
| ... | ... |
@@ -382,10 +382,16 @@ if [ "$WAIT_TILL_LAUNCH" = "1" ] && [ -e ~/.ssh/id_rsa.pub ] && [ "$COPYENV" = |
| 382 | 382 |
while ! ssh_no_check -q stack@$OS_VM_MANAGEMENT_ADDRESS "service devstack status | grep -q running"; do |
| 383 | 383 |
sleep 10 |
| 384 | 384 |
done |
| 385 |
- echo -n "devstack is running" |
|
| 385 |
+ echo -n "devstack service is running, waiting for stack.sh to start logging..." |
|
| 386 |
+ |
|
| 387 |
+ while ! ssh_no_check -q stack@$OS_VM_MANAGEMENT_ADDRESS "test -e /tmp/devstack/log/stack.log"; do |
|
| 388 |
+ sleep 10 |
|
| 389 |
+ done |
|
| 386 | 390 |
set -x |
| 387 | 391 |
|
| 388 |
- # Watch devstack's output |
|
| 392 |
+ # Watch devstack's output (which doesn't start until stack.sh is running, |
|
| 393 |
+ # but wait for run.sh (which starts stack.sh) to exit as that is what |
|
| 394 |
+ # hopefully writes the succeded cookie. |
|
| 389 | 395 |
pid=`ssh_no_check -q stack@$OS_VM_MANAGEMENT_ADDRESS pgrep run.sh` |
| 390 | 396 |
ssh_no_check -q stack@$OS_VM_MANAGEMENT_ADDRESS "tail --pid $pid -n +1 -f /tmp/devstack/log/stack.log" |
| 391 | 397 |
|