~juju-qa/ubuntu/xenial/juju/2.0-rc2

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/provider/lxd/environ_broker.go

  • Committer: Nicholas Skaggs
  • Date: 2016-09-30 14:39:30 UTC
  • mfrom: (1.8.1)
  • Revision ID: nicholas.skaggs@canonical.com-20160930143930-vwwhrefh6ftckccy
import upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
package lxd
7
7
 
8
8
import (
9
 
        "fmt"
10
9
        "strings"
11
10
 
12
11
        "github.com/juju/errors"
50
49
        raw, err := env.newRawInstance(args)
51
50
        if err != nil {
52
51
                if args.StatusCallback != nil {
53
 
                        args.StatusCallback(status.StatusProvisioningError, err.Error(), nil)
 
52
                        args.StatusCallback(status.ProvisioningError, err.Error(), nil)
54
53
                }
55
54
                return nil, errors.Trace(err)
56
55
        }
170
169
        defer cleanupCallback()
171
170
 
172
171
        imageCallback := func(copyProgress string) {
173
 
                statusCallback(status.StatusAllocating, copyProgress)
 
172
                statusCallback(status.Allocating, copyProgress)
174
173
        }
175
174
        if err := env.raw.EnsureImageExists(series, imageSources, imageCallback); err != nil {
176
175
                return nil, errors.Trace(err)
240
239
 
241
240
        logger.Infof("starting instance %q (image %q)...", instSpec.Name, instSpec.Image)
242
241
 
243
 
        statusCallback(status.StatusAllocating, "preparing image")
 
242
        statusCallback(status.Allocating, "preparing image")
244
243
        inst, err := env.raw.AddInstance(instSpec)
245
244
        if err != nil {
246
245
                return nil, errors.Trace(err)
247
246
        }
248
 
        statusCallback(status.StatusRunning, "container started")
 
247
        statusCallback(status.Running, "container started")
249
248
        return inst, nil
250
249
}
251
250
 
298
297
                // TODO(ericsnow) This special-case should be improved.
299
298
                archStr = arch.HostArch()
300
299
        }
301
 
 
302
 
        hwc, err := instance.ParseHardware(
303
 
                "arch="+archStr,
304
 
                fmt.Sprintf("cpu-cores=%d", raw.NumCores),
305
 
                fmt.Sprintf("mem=%dM", raw.MemoryMB),
306
 
                //"root-disk=",
307
 
                //"tags=",
308
 
        )
309
 
        if err != nil {
310
 
                logger.Errorf("unexpected problem parsing hardware info: %v", err)
311
 
                // Keep moving...
 
300
        cores := uint64(raw.NumCores)
 
301
        mem := uint64(raw.MemoryMB)
 
302
        return &instance.HardwareCharacteristics{
 
303
                Arch:     &archStr,
 
304
                CpuCores: &cores,
 
305
                Mem:      &mem,
312
306
        }
313
 
        return &hwc
314
307
}
315
308
 
316
309
// AllInstances implements environs.InstanceBroker.