-
Committer:
Francesco Banconi
-
Date:
2014-01-29 11:14:09 UTC
-
mfrom:
(155.1.9 http-proxy)
-
Revision ID:
francesco.banconi@canonical.com-20140129111409-zq1iia3m2mk240hy
Add putcharm support to the GUI server.
Implement a proxy handler propagating requests/responses from
the GUI to the real juju-core HTTPS endpoint.
Tests: `make unittest`.
QA:
QA must be done using juju-core trunk.
I used revno 2265 for the following.
1) Bootstrap a juju environment, deploy the GUI charm
and get the latest GUI sources:
juju bootstrap
make deploy
juju set juju-gui juju-gui-source="https://github.com/juju/juju-gui.git"
2) wait for the GUI to be ready
(using `juju debug-log` or `tailf ~/.juju/local/log/unit-juju-gui-0.log`
if you bootstrapped a local environment).
This step takes a while.
3) Open the GUI with Chrome and log in. Open the network tab of the
Chrome JavaScript console and refresh.
4) In the terminal, open and observe the GUI server logs:
juju ssh juju-gui/0 sudo tailf /var/log/upstart/guiserver.log
5) Drag and drop a zipped archive of a local charm.
Charm files (e.g. metadata.yaml) must be on the zip root.
You can use an haproxy archive I used for tests:
it is available in http://ubuntuone.com/3FRDrcjSECyHp3xLmMIZLY
At this point you should see a 200 response in the gui server logs,
and a notification in the GUI itself.
Moreover, if you inspect the request from the JavaScript console,
you should see a response including info about the charm you
just uploaded: if you used haproxy, you should see
{"CharmURL":"local:precise/haproxy-0"}.
Done!. If you want additional fun, you can now try to
execute the following in the Chrome console:
app.env.deploy('local:precise/haproxy-0', 'myservice', null, null, 1)
Replace "local:precise/haproxy-0" with the charm URL you used.
In a couple of seconds you should see the "myservice" box appearing
in a pending state. Congratulations, you deployed a local
charm from the GUI! :-)
6) Destroy the environment.
R=gary.poster, jeff.pihach
CC=
https://codereview.appspot.com/57820043