Merge lp://qastaging/~doanac/uci-engine/deploy-upgrade into lp://qastaging/uci-engine
Status: | Merged |
---|---|
Approved by: | Andy Doan |
Approved revision: | 683 |
Merged at revision: | 691 |
Proposed branch: | lp://qastaging/~doanac/uci-engine/deploy-upgrade |
Merge into: | lp://qastaging/uci-engine |
Diff against target: |
153 lines (+60/-54) 1 file modified
juju-deployer/deploy.py (+60/-54) |
To merge this branch: | bzr merge lp://qastaging/~doanac/uci-engine/deploy-upgrade |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot (community) | continuous-integration | Approve | |
Francis Ginther | Approve | ||
Joe Talbott (community) | Approve | ||
Review via email:
|
Commit message
deploy.py: improve upgrade logic and other fixes
This breaks up our options for upgrade by requiring an "upgrade type"
which can be "charms", "code", or "config".
I also removed some options that are no longer used/supported.
I also cleaned up the logic in our "main" to ensure we are really only
uploading tarballs and generating our YAML files when needed.
Description of the change
I'm a little hesitant to propse this, but time is running out for me and the only real way for this kind of feature to get confidence is by getting everyone using it.
This attemps to get our upgrade logic working well enough for i/s. It breaks up upgrade into 3 kinds: charms, config, and code. Code is really a special case of "config" but is special enough to warrant its own option.
I actually hit a problem in my deployment this evening and this deploy.py got me through it. So I'll just explain how that worked as a way to show you how its useful.
= What I Did
Accidentally deployed a branch that had bad wsgi-app and rabbit-mq charms (the os.path.lexits problem from this morning). So deploy.py broke and juju status was showing almost everything as broke in config-changed.
= How I Fixed It
1) you have to run "juju resolved" on each broken unit to make juju happy
2) ran "deploy.py --upgrade charm" and got the proper charm code on each unit. Now I had good charms but not the right code.
3) ran "deploy.py --upgrade code" and got proper code everywhere
I thought things were good, but I realized I was missing all the relationships because deploy.py didn't get to set them up. So I just ran our classic "./juju-
= How I responded
I'm drinking a Shiner Bock and describing my exploits in an MP from the Texas Gulf Coast.
PASSED: Continuous integration, rev:682 s-jenkins. ubuntu- ci:8080/ job/uci- engine- ci/1097/
http://
Executed test runs:
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/uci- engine- ci/1097/ rebuild
http://