juju sync-tools destroys the environment when given an invalid source
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
juju-core |
Fix Released
|
Critical
|
Andrew Wilkins | ||
1.18 |
Fix Released
|
Critical
|
Andrew Wilkins |
Bug Description
If an existing juju environment exists, and juju sync-tools is run with an invalid --source location, the existing environment will be destroyed without prompt.
[rfinnie@lcy01] ryan@linda:~$ juju --debug sync-tools --dry-run --version 1.18 --source blahblah
2014-05-07 10:14:19 INFO juju.cmd supercommand.go:297 running juju-1.
2014-05-07 10:14:19 DEBUG juju.environs open.go:86 ConfigForName found bootstrap config map[string]
2014-05-07 10:14:20 DEBUG juju.environs.
2014-05-07 10:14:20 INFO juju.environs open.go:177 environment info already exists; using New not Prepare
2014-05-07 10:14:20 INFO juju.provider.
2014-05-07 10:14:20 INFO juju.environs.sync sync.go:141 using sync tools source: file://
using sync tools source: file://
2014-05-07 10:14:20 INFO juju.environs.sync sync.go:64 listing available tools
listing available tools
2014-05-07 10:14:20 DEBUG juju.environs.tools tools.go:45 no architecture specified when finding tools, looking for any
2014-05-07 10:14:20 DEBUG juju.environs.tools tools.go:56 no series specified when finding tools, looking for any
2014-05-07 10:14:20 INFO juju.utils http.go:55 hostname SSL verification enabled
2014-05-07 10:14:20 DEBUG juju.environs.
2014-05-07 10:14:20 DEBUG juju.environs.
2014-05-07 10:14:20 INFO juju.utils http.go:55 hostname SSL verification enabled
2014-05-07 10:14:20 DEBUG juju.environs.
2014-05-07 10:14:20 DEBUG juju.environs.
2014-05-07 10:14:20 INFO juju.cmd cmd.go:113 Sync-tools failed, destroying environment
2014-05-07 10:14:20 INFO juju.provider.
2014-05-07 10:14:21 DEBUG juju.provider.
2014-05-07 10:14:24 ERROR juju.cmd supercommand.go:300 no tools available
Related branches
- Juju Engineering: Pending requested
-
Diff: 1664 lines (+354/-94)49 files modifiedcmd/envcmd/environmentcommand.go (+26/-2)
cmd/envcmd/environmentcommand_test.go (+76/-18)
cmd/envcmd/export_test.go (+9/-0)
cmd/export_test.go (+0/-9)
cmd/juju/addmachine.go (+5/-1)
cmd/juju/addrelation.go (+5/-1)
cmd/juju/addunit.go (+5/-1)
cmd/juju/authorizedkeys_add.go (+5/-1)
cmd/juju/authorizedkeys_delete.go (+5/-1)
cmd/juju/authorizedkeys_import.go (+5/-1)
cmd/juju/authorizedkeys_list.go (+9/-1)
cmd/juju/bootstrap.go (+5/-1)
cmd/juju/bootstrap_test.go (+17/-9)
cmd/juju/cmd_test.go (+2/-1)
cmd/juju/constraints.go (+9/-2)
cmd/juju/debuglog_test.go (+1/-1)
cmd/juju/deploy.go (+5/-1)
cmd/juju/destroymachine.go (+5/-1)
cmd/juju/destroyrelation.go (+5/-1)
cmd/juju/destroyservice.go (+5/-1)
cmd/juju/destroyunit.go (+5/-1)
cmd/juju/endpoint.go (+5/-1)
cmd/juju/environment.go (+14/-4)
cmd/juju/expose.go (+5/-1)
cmd/juju/get.go (+5/-1)
cmd/juju/plugin.go (+5/-1)
cmd/juju/publish.go (+5/-1)
cmd/juju/publish_test.go (+3/-5)
cmd/juju/resolved.go (+5/-1)
cmd/juju/retryprovisioning.go (+5/-1)
cmd/juju/run.go (+5/-1)
cmd/juju/set.go (+5/-1)
cmd/juju/ssh.go (+5/-1)
cmd/juju/status.go (+5/-1)
cmd/juju/switch.go (+3/-2)
cmd/juju/switch_test.go (+2/-2)
cmd/juju/synctools.go (+5/-1)
cmd/juju/unexpose.go (+5/-1)
cmd/juju/unset.go (+5/-1)
cmd/juju/upgradecharm.go (+5/-1)
cmd/juju/upgradejuju.go (+5/-1)
cmd/plugins/juju-metadata/imagemetadata.go (+5/-1)
cmd/plugins/juju-metadata/imagemetadata_test.go (+6/-1)
cmd/plugins/juju-metadata/toolsmetadata.go (+9/-1)
cmd/plugins/juju-metadata/validateimagemetadata.go (+6/-2)
cmd/plugins/juju-metadata/validateimagemetadata_test.go (+2/-0)
cmd/plugins/juju-metadata/validatetoolsmetadata.go (+6/-2)
cmd/plugins/juju-restore/restore.go (+5/-1)
testing/environ.go (+4/-2)
- Juju Engineering: Pending requested
-
Diff: 825 lines (+143/-102)45 files modifiedcmd/envcmd/environmentcommand.go (+12/-1)
cmd/envcmd/environmentcommand_test.go (+58/-3)
cmd/envcmd/export_test.go (+0/-9)
cmd/juju/addmachine.go (+1/-2)
cmd/juju/addrelation.go (+1/-2)
cmd/juju/addunit.go (+3/-0)
cmd/juju/adduser.go (+1/-2)
cmd/juju/authorizedkeys_add.go (+1/-2)
cmd/juju/authorizedkeys_delete.go (+1/-2)
cmd/juju/authorizedkeys_import.go (+1/-2)
cmd/juju/authorizedkeys_list.go (+1/-2)
cmd/juju/bootstrap.go (+2/-3)
cmd/juju/constraints.go (+3/-5)
cmd/juju/debuglog.go (+1/-2)
cmd/juju/deploy.go (+1/-2)
cmd/juju/destroymachine.go (+1/-2)
cmd/juju/destroyrelation.go (+1/-2)
cmd/juju/destroyservice.go (+1/-2)
cmd/juju/destroyunit.go (+1/-2)
cmd/juju/endpoint.go (+1/-2)
cmd/juju/ensureavailability.go (+1/-2)
cmd/juju/environment.go (+7/-10)
cmd/juju/expose.go (+1/-2)
cmd/juju/get.go (+1/-2)
cmd/juju/plugin.go (+4/-1)
cmd/juju/publish.go (+1/-2)
cmd/juju/removeuser.go (+1/-2)
cmd/juju/resolved.go (+1/-2)
cmd/juju/retryprovisioning.go (+3/-0)
cmd/juju/run.go (+1/-2)
cmd/juju/set.go (+1/-2)
cmd/juju/ssh.go (+1/-2)
cmd/juju/status.go (+4/-1)
cmd/juju/synctools.go (+1/-2)
cmd/juju/unexpose.go (+1/-2)
cmd/juju/unset.go (+1/-2)
cmd/juju/upgradecharm.go (+1/-2)
cmd/juju/upgradejuju.go (+1/-2)
cmd/plugins/juju-metadata/imagemetadata.go (+3/-0)
cmd/plugins/juju-metadata/imagemetadata_test.go (+6/-1)
cmd/plugins/juju-metadata/toolsmetadata.go (+3/-4)
cmd/plugins/juju-metadata/validateimagemetadata.go (+2/-3)
cmd/plugins/juju-metadata/validateimagemetadata_test.go (+2/-0)
cmd/plugins/juju-metadata/validatetoolsmetadata.go (+2/-3)
cmd/plugins/juju-restore/restore.go (+1/-2)
Changed in juju-core: | |
status: | New → In Progress |
importance: | Undecided → Critical |
assignee: | nobody → Andrew Wilkins (axwalk) |
Changed in juju-core: | |
milestone: | none → 1.18.3 |
no longer affects: | juju-core/trunk |
Changed in juju-core: | |
milestone: | 1.18.3 → 1.19.2 |
Changed in juju-core: | |
status: | In Progress → Fix Committed |
Changed in juju-core: | |
status: | Fix Committed → Fix Released |
sync-tools will destroy the environment *iff* it created it and sync-tools fails. If it exists already, and sync-tools fails, it will be left alone. Closing as invalid; please reopen if my analysis is wrong.