When new units are added, deployer exits too soon
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
juju-deployer |
Fix Released
|
Critical
|
Kapil Thangavelu |
Bug Description
Running deployer against an env which was already up. The only change was the unit count for some services:
$ juju-deployer -vdW -c ooo.cfg precise-
2013-07-26 18:04:06 [DEBUG] deployer.cli: Using runtime GoEnvironment
2013-07-26 18:04:06 [INFO] deployer.cli: Starting deployment of precise-
2013-07-26 18:04:18 [DEBUG] deployer.env: Connected to environment
2013-07-26 18:04:18 [DEBUG] deployer.import: Getting charms...
2013-07-26 18:04:18 [WARNING] deployer.deploy: Override openstack-origin does not match any charms
2013-07-26 18:04:18 [DEBUG] deployer.deploy: Resolving configuration
2013-07-26 18:04:18 [INFO] deployer.import: Deploying services...
2013-07-26 18:04:20 [DEBUG] deployer.import: Service 'rabbitmq-
2013-07-26 18:04:20 [DEBUG] deployer.import: Service 'mysql-hacluster' already deployed. Skipping
2013-07-26 18:04:20 [DEBUG] deployer.import: Service 'ceph' already deployed. Skipping
2013-07-26 18:04:20 [DEBUG] deployer.import: Service 'rabbitmq-server' already deployed. Skipping
2013-07-26 18:04:20 [DEBUG] deployer.import: Service 'lds-quickstart' already deployed. Skipping
2013-07-26 18:04:20 [DEBUG] deployer.import: Service 'mysql' already deployed. Skipping
2013-07-26 18:04:20 [DEBUG] deployer.import: Service 'juju-gui' already deployed. Skipping
2013-07-26 18:04:20 [DEBUG] deployer.import: Service 'landscape-client' already deployed. Skipping
2013-07-26 18:04:27 [DEBUG] deployer.import: Adding units...
2013-07-26 18:04:28 [DEBUG] deployer.import: Service 'rabbitmq-
2013-07-26 18:04:28 [DEBUG] deployer.import: Service 'mysql-hacluster' does not need any more units added.
2013-07-26 18:04:28 [INFO] deployer.import: Adding 2 more units to ceph
2013-07-26 18:04:28 [INFO] deployer.import: Adding 1 more units to rabbitmq-server
2013-07-26 18:04:29 [DEBUG] deployer.import: Service 'lds-quickstart' does not need any more units added.
2013-07-26 18:04:29 [INFO] deployer.import: Adding 1 more units to mysql
2013-07-26 18:04:29 [DEBUG] deployer.import: Service 'juju-gui' does not need any more units added.
2013-07-26 18:04:29 [DEBUG] deployer.import: Service 'landscape-client' does not need any more units added.
2013-07-26 18:04:29 [INFO] deployer.import: Adding relations...
2013-07-26 18:04:30 [DEBUG] deployer.import: Waiting for units to be started
2013-07-26 18:04:32 [INFO] deployer.cli: Deployment complete in 25.56 seconds
In the last two lines from the log above we can see that there is no way the 4 new units are alread up and running.
This is related to bug #1203105. The API didn't even see the new units yet and that means that deployer thinks there is nothing pending, so no need to wait.
We really need juju-core to implement status to resolve this cleanly. I'd rather not introduce a bunch of sleeps to wait for the api to be clean.