126
|
|
|
Brad Crittenden |
10 years ago
|
|
|
125
|
|
|
Brad Crittenden |
10 years ago
|
|
|
124
|
|
|
Rick Harding |
10 years ago
|
|
|
123
|
|
|
Rick Harding |
10 years ago
|
|
|
122
|
|
|
Francesco Banconi |
10 years ago
|
|
|
121
|
|
Fix deployer integration.
Fix the deployer error when the bundle includes services with constraints.
Updated the deployer dependency. The new tarball is generated from lp:~frankban/juju-deployer/guienv-fixes I will take care of proposing that branch later, however, the diff can be found here: http://pastebin.ubuntu.com/6376113/
This branch includes the work Benji did for fixing this issue.
TODO: but these are not release blockers IMHO: - improve the way we handle the set up of testing/production environments (as Rick suggested); - improve the GUI server bundle validation, e.g. disallow the deployment of local charms, or better check that the YAML structure is what we expect; - investigate and fix the bundle deployment error handling: why errors in the deployer process are not propagated? Why concurrent.futures explodes with an error while trying to set up the exception to be propagated in the Future? This is important because right now an error in the deployer is not notified, so the deployment is forever considered in progress and all the other deployments will be just queued... Actually this is "almost" a release blocker.
Tests: make unittest
QA: I used this bundle: http://pastebin.ubuntu.com/6376098/ to live test the branch. Bootstrap a juju environment, run `make deploy` and then switch the gui source to lp:juju-gui. When everything is ready, try to deploy a bundle which includes num_units != 1, customized config and constraints. Check the bundle is deployed correctly and the resulting services have the defined number of units, options and constraints. Now try to deploy a bundle with invalid constraints: right after the drag and drop, the GUI should notify an invalid constraints error.
R=rharding, benji CC= https://codereview.appspot.com/22810043
|
Francesco Banconi |
10 years ago
|
|
|
120
|
|
|
Matthew Scott |
10 years ago
|
|
|
119
|
|
|
Matthew Scott |
10 years ago
|
|
|
118
|
|
|
Francesco Banconi |
10 years ago
|
|
|
117
|
|
|
Gary Poster |
10 years ago
|
|
|
116
|
|
|
Francesco Banconi |
10 years ago
|
|
|
115
|
|
|
Francesco Banconi |
10 years ago
|
|
|
114
|
|
Avoid installing from PPA if not required.
No longer add the juju-gui PPA by default: the external repository is added only if required, i.e. if the legacy server is used or if a branch is passed to juju-gui-source.
The only missing bit to make the charm work well from behind a firewall AFAICT is avoiding the release to be downloaded from Launchpad.
Also included the shelltoolbox file in the charm: unfortunately the python-shelltoolbox package is not available on precise. On the other hand, this allows for getting rid of the bootstrap_utils.py file, and the install hook now feels cleaner.
Refactoring + some magic removal on the backend framework. Now it should be less surprising, and also allows for more customizations, e.g. what I did in the install method.
Also added missing tests for the backend framework: those were required in order to increase our control over what's really happening in the backend "hooks".
Switched to the builtin Tornado server by default.
This diff is very big, I am sorry, but: - you can ignore the bootstrap_utils removal; - you can ignore the shelltoolbox.py file: it is just a copy of the one present in the raring python-shelltoolbox package; - a lot of code is tests, the rest of the code should be quite easy to follow.
QA: `make deploy` and watch the logs: - no PPA should be installed by default; - the deployment succeeds and the GUI works well; switch to builtin-server=false and watch the logs: - the PPA is installed (and then haproxy, apache...); - the config-change hook exits without errors and the GUI works well.
Tests: `make unittest` (I ran the functional tests myself).
Thank you!
R=gary.poster, rharding CC= https://codereview.appspot.com/14433049
|
Francesco Banconi |
10 years ago
|
|
|
113
|
|
|
Francesco Banconi |
10 years ago
|
|
|
112
|
|
|
Gary Poster |
10 years ago
|
|
|
111
|
|
|
Gary Poster |
10 years ago
|
|
|
110
|
|
|
Francesco Banconi |
10 years ago
|
|
|
109
|
|
|
Francesco Banconi |
10 years ago
|
|
|
108
|
|
GUI server: cancel deployment feature.
Added an API call for cancelling a pending deployment.
Also updated the bundles module documentation.
For this first implementation, I discussed with Gary a workaround to avoid scheduled deployments to be included in the ProcessPool executor's call queue: a time.sleep call is added to the queue right after a new deployment. This way, as described in the code, it is still possible to cancel a scheduled deployment job even if it is the first in the queue.
Tests: run `make unittest` from the root of this branch.
QA: - bootstrap a juju-core environment; - deploy the GUI from this branch (`make deploy`); - switch to the builtin server: `juju set juju-gui builtin-server=true`; - ensure the GUI is working well by visiting https://GUI-ADDRESS .
To test the deployer support and the "cancel deployment" feature, use the script in http://pastebin.ubuntu.com/6100815/ e.g.:
- download and save the Python script; - run it passing the GUI node address as first argument: `python start-deployer-cancel.py GUI-ADDRESS`.
The script does the following: 1) it logs in to the juju-core API server; 2) it starts/schedules three deployments; 3) it send two invalid Cancel requests; 4) it cancels the second deployment; 5) it shows the deployments status before and after the deployment deletion.
- if everything is ok, you should see an output like this: http://pastebin.ubuntu.com/6100861/ ; - you should also be able to check the deployment progress from the GUI; - when the two deployments are completed (it may take some minutes) you should see wordpress, mysql and mediawiki correctly deployed and displayed in the topology view; - visiting https://GUI-ADDRESS/gui-server-info you should see something like this: { "uptime": 970, "deployer": [ {"Status": "completed", "DeploymentId": 0, "Time": 1379062144}, {"Status": "cancelled", "DeploymentId": 1, "Time": 1379061766}, {"Status": "completed", "DeploymentId": 2, "Time": 1379062156} ], "apiversion": "go", "sandbox": false, "version": "0.2.0", "debug": false, "apiurl": "wss://ec2-50-17-116-51.compute-1.amazonaws.com:17070" }
That's all, thanks a lot for QAing this branch!
R=rharding, bac CC= https://codereview.appspot.com/13549046
|
Francesco Banconi |
10 years ago
|
|
|
107
|
|
|
Brad Crittenden |
10 years ago
|
|
|