~rogpeppe/juju-core/438-local-instance-Addresses

« back to all changes in this revision

Viewing changes to provider/common/bootstrap.go

  • Committer: Tarmac
  • Author(s): William Reade
  • Date: 2013-10-02 10:38:04 UTC
  • mfrom: (1915.1.3 juju-core)
  • Revision ID: tarmac-20131002103804-zxlnv7ik17unxc3p
[r=fwereade] provider/common: Destroy, and tests

Added a common implementation of Destroy, and tests for Bootstrap which had
somehow never been written. Also drive-by removed the machineId arg from
consideration when bootstrapping, because, WTF... a non-0 bootstrap machine
would break *everything*.

https://codereview.appspot.com/14254043/

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
// Bootstrap is a common implementation of the Bootstrap method defined on
20
20
// environs.Environ; we strongly recommend that this implementation be used
21
21
// when writing a new provider.
22
 
func Bootstrap(env environs.Environ, cons constraints.Value, possibleTools coretools.List, machineID string) error {
 
22
func Bootstrap(env environs.Environ, cons constraints.Value, possibleTools coretools.List) error {
23
23
 
24
24
        // TODO make safe in the case of racing Bootstraps
25
25
        // If two Bootstraps are called concurrently, there's
32
32
        if err != nil {
33
33
                return err
34
34
        }
35
 
        machineConfig := environs.NewBootstrapMachineConfig(machineID, stateFileURL)
 
35
        machineConfig := environs.NewBootstrapMachineConfig(stateFileURL)
36
36
        inst, hw, err := env.StartInstance(cons, possibleTools, machineConfig)
37
37
        if err != nil {
38
38
                return fmt.Errorf("cannot start bootstrap instance: %v", err)
51
51
                stoperr := env.StopInstances([]instance.Instance{inst})
52
52
                if stoperr != nil {
53
53
                        // Failure upon failure.  Log it, but return the original error.
54
 
                        logger.Errorf("cannot release failed bootstrap instance: %v", stoperr)
 
54
                        logger.Errorf("cannot stop failed bootstrap instance %q: %v", inst.Id(), stoperr)
55
55
                }
56
56
                return fmt.Errorf("cannot save state: %v", err)
57
57
        }