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

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/container/lxd/instance.go

  • Committer: Martin Packman
  • Date: 2016-03-30 19:31:08 UTC
  • mfrom: (1.1.41)
  • Revision ID: martin.packman@canonical.com-20160330193108-h9iz3ak334uk0z5r
Merge new upstream source 2.0~beta3

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
 
13
13
        "github.com/juju/juju/instance"
14
14
        "github.com/juju/juju/network"
 
15
        "github.com/juju/juju/status"
15
16
        "github.com/juju/juju/tools/lxdclient"
16
17
)
17
18
 
36
37
}
37
38
 
38
39
// Status implements instance.Instance.Status.
39
 
func (lxd *lxdInstance) Status() string {
40
 
        // On error, the state will be "unknown".
41
 
        status, err := lxd.client.Status(lxd.id)
 
40
func (lxd *lxdInstance) Status() instance.InstanceStatus {
 
41
        jujuStatus := status.StatusPending
 
42
        instStatus, err := lxd.client.Status(lxd.id)
42
43
        if err != nil {
43
 
                return "unknown"
44
 
        }
45
 
        return status
 
44
                return instance.InstanceStatus{
 
45
                        Status:  status.StatusEmpty,
 
46
                        Message: fmt.Sprintf("could not get status: %v", err),
 
47
                }
 
48
        }
 
49
        switch instStatus {
 
50
        case lxdclient.StatusStarting, lxdclient.StatusStarted:
 
51
                jujuStatus = status.StatusAllocating
 
52
        case lxdclient.StatusRunning:
 
53
                jujuStatus = status.StatusRunning
 
54
        case lxdclient.StatusFreezing, lxdclient.StatusFrozen, lxdclient.StatusThawed, lxdclient.StatusStopping, lxdclient.StatusStopped:
 
55
                jujuStatus = status.StatusEmpty
 
56
        default:
 
57
                jujuStatus = status.StatusEmpty
 
58
        }
 
59
        return instance.InstanceStatus{
 
60
                Status:  jujuStatus,
 
61
                Message: instStatus,
 
62
        }
46
63
}
47
64
 
48
65
// OpenPorts implements instance.Instance.OpenPorts.