Comment 6 for bug 1420403

Revision history for this message
Francesco Banconi (frankban) wrote :

The error is due to an backward incompatible change in the Juju mega-watcher for units API.
We assumed this was solved in [1] but it seems that's not the case.
Specifically, unitInfo.Ports is sent by juju-core as a null value in the JSON stream, in the case there are no ports opened [2].
The python-jujuclient fails trying to loop over the juju-gui unit ports (set to None) [3].
The deployer process started by the GUI server propagates the error, and the GUI server correctly reports it to Quickstart.
So the juju-core regression affects the whole stack: juju-quickstart -> GUI server -> juju-deployer -> python-jujuclient.

I'll investigate more with juju-core folks.

[1] https://github.com/juju/juju/commit/8b0a9a9a9443fbacef00fa00d1f71365826f0eb6

[2] an empty slice should be used for compatiblePorts in place of the nil slice currently used. Moreover, unitInfo.Ports does not seem to be populated even after the fix. Perhaps we should watch the openedPorts mongo document in the mega-watcher and force a unitInfo update accordingly.

[3] http://bazaar.launchpad.net/~juju-deployers/python-jujuclient/trunk/view/head:/jujuclient.py#L2048