Factor out a newBackupID function.
Add an alternate ID generator.
Add tests.
Remove the old implementation.
Merge pull request #750 from ericsnowcurrently/backups-human-readable-ID

Make backup IDs more human-readable.

Currently we just use the current UUID.  This patch changes it to "<timestamp>.<env ID>".  A more human-readable ID will help juju users.
apiserver/client: Migrated SetEnvironAgentVersion test to serverSuite
Merge pull request #762 from wallyworld/sshstorage-not-found

Tweak bash used for sshstorage.Get()

Fixes: https://bugs.launchpad.net/juju-core/+bug/1367695

Return fixed, locale independent string when file is not found.
cmd/juju: created interface for upgrade-juju's client API

To allow mocking in tests.
cmd/juju: upgrade-juju "upgrade in progress" handling

upgrade-juju now special-cases handling the case of the
SetEnvironAgentVersion API call failing due to an upgrade appearing to
already be in progress. The user is given guidance on what they might
be able to do to fix it.

The change introduces a struct conforming to the upgradeJujuAPI
interface to allow testing of the upgrade-juju command without making
actual API calls.
apiserver: defined "upgrade in progress" error

Avoids repeating the error code string everywhere.
Also added SetEnvironAgentVersion API integration test.
Merge pull request #761 from wallyworld/licensing-fixes

Licensing fixes

Various tweaks to address:

https://bugs.launchpad.net/bugs/1368321
https://bugs.launchpad.net/bugs/1368358
Remove obsolete files
Merge pull request #763 from wallyworld/sshstorage-not-found-trunk

Merge pull request #762 from wallyworld/sshstorage-not-found

Tweak bash used for sshstorage.Get()

Fixes: https://bugs.launchpad.net/juju-core/+bug/1367695

Return fixed, locale independent string when file is not found.
Add owner and server uuid to environments.

Add real owners to the environments document.

Add upgrade step.
Merge pull request #733 from howbazaar/env-owner-and-new-env

Environment owner and new environment.

Add owner and server uuid to the environment document.

The server uuid is added to allow us to be able to refer to environments that are not local.  This is a prelude to support for cross environment relations.  From the outside of a juju environment we have started using the pair of uuids to describe a juju environment (env uuid, server uuid).

There is a drive by fix to the usermanager which I thought was on the other branch, but it got merged already.
cmd/juju: implemented upgrade-juju --reset-previous-upgrade flag

For aborting a current UpgradeInfo document in state (in the case of
previous partially complete upgrades). Use of this flag could break
otherwise healthy upgrades so the user is asked to confirm the action
(and --yes overrides the manual confirm).
cmd/jujud: added another upgrade related wrench point

This is useful to simulate a state machine failing after it has
indicated it's ready to upgrade.
Merge pull request #751 from mjs/upgrade-juju-abort-previous-upgrade

Allow upgrade-juju to detect and clear in-progress / partially completed upgrade

Review here: http://reviews.vapour.ws/r/20/
Merge pull request #764 from wallyworld/licensing-fixes-trunk

Port licensing fixes from 1.20

Licensing fixes

Various tweaks to address:

https://bugs.launchpad.net/bugs/1368321
https://bugs.launchpad.net/bugs/1368358
state: remove FromParams helper

`FromParams` forces `state` to depend on `apiserver/params` for its input parameters.

Ideally params should own these helpers, but that would require it to depend on state, which would currently cause an import loop.

Instead move the function to the calling packages temporarily.