Merge lp:~axwalk/juju-core/null-provider-destroy-environment into lp:~go-bot/juju-core/trunk
Status: | Work in progress |
---|---|
Proposed branch: | lp:~axwalk/juju-core/null-provider-destroy-environment |
Merge into: | lp:~go-bot/juju-core/trunk |
Diff against target: |
179 lines (+124/-4) 3 files modified
provider/common/destroy.go (+111/-0) provider/null/environ.go (+13/-0) provider/null/environ_test.go (+0/-4) |
To merge this branch: | bzr merge lp:~axwalk/juju-core/null-provider-destroy-environment |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Juju Engineering | Pending | ||
Review via email: mp+193538@code.launchpad.net |
Description of the change
provider/null: first half of Environ.Destroy()
This is CL 1 of 2: destroy-environment will work
by first destroying all units, and non-environment
manager machines; then, the environment-manager
machine(s) will be destroyed by sshing to them
and killing jujud. jujud will catch the signal,
and clean itself up.
The next CL will implement the manager machine
killing bit.
Unmerged revisions
- 2010. By Andrew Wilkins
-
provider/null: first half of Environ.Destroy()
This is CL 1 of 2: destroy-environment will work
by first destroying all units, and non-environment
manager machines; then, the environment-manager
machine(s) will be destroyed by sshing to them
and killing jujud. jujud will catch the signal,
and clean itself up.The next CL will implement the manager machine
killing bit.
I think this needs a bit more thought. This stuff all has to happen over
the API this cycle anyway; this may restrict our ability to ssh into
machines and kill them with signals. Didn't we decide that it'd be best
if a machine agent were to clean *itself* up once the machine were dead?
That'd solve the manual case trivially, and wouldn't matter in other
providers -- if the machine's actually being decommissioned, it doesn't
matter if we interrupt the final cleanup.
https:/ /codereview. appspot. com/20720043/ diff/1/ provider/ common/ destroy. go common/ destroy. go (right):
File provider/
https:/ /codereview. appspot. com/20720043/ diff/1/ provider/ common/ destroy. go#newcode34 common/ destroy. go:34: // DestroyUnitMachines destroys all of
provider/
the units and machines without
I think we should be doing all this on the other side of the API,
shouldn't we? This is basically as -much-as-possible a "clean" shutdown
of the environment, and we'll want to be exposing that capability over
the API server.
We'll *also* probably want a "dirty" shutdown that does as-possible what we do today -- just saving machines with
as-close-
manager jobs for last -- but that won't be viable when manually
provisioned machines are in the mix.
https:/ /codereview. appspot. com/20720043/