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

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/provider/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:
11
11
        "github.com/juju/juju/instance"
12
12
        "github.com/juju/juju/network"
13
13
        "github.com/juju/juju/provider/common"
 
14
        "github.com/juju/juju/status"
14
15
        "github.com/juju/juju/tools/lxdclient"
15
16
)
16
17
 
34
35
}
35
36
 
36
37
// Status implements instance.Instance.
37
 
func (inst *environInstance) Status() string {
38
 
        return inst.raw.Status()
 
38
func (inst *environInstance) Status() instance.InstanceStatus {
 
39
        jujuStatus := status.StatusPending
 
40
        instStatus := inst.raw.Status()
 
41
        switch instStatus {
 
42
        case lxdclient.StatusStarting, lxdclient.StatusStarted:
 
43
                jujuStatus = status.StatusAllocating
 
44
        case lxdclient.StatusRunning:
 
45
                jujuStatus = status.StatusRunning
 
46
        case lxdclient.StatusFreezing, lxdclient.StatusFrozen, lxdclient.StatusThawed, lxdclient.StatusStopping, lxdclient.StatusStopped:
 
47
                jujuStatus = status.StatusEmpty
 
48
        default:
 
49
                jujuStatus = status.StatusEmpty
 
50
        }
 
51
        return instance.InstanceStatus{
 
52
                Status:  jujuStatus,
 
53
                Message: instStatus,
 
54
        }
 
55
 
39
56
}
40
57
 
41
58
// Addresses implements instance.Instance.
58
75
// should have been started with the given machine id.
59
76
func (inst *environInstance) OpenPorts(machineID string, ports []network.PortRange) error {
60
77
        // TODO(ericsnow) Make sure machineId matches inst.Id()?
61
 
        name := common.MachineFullName(inst.env, machineID)
 
78
        name := common.MachineFullName(inst.env.Config().UUID(), machineID)
62
79
        env := inst.env.getSnapshot()
63
80
        err := env.raw.OpenPorts(name, ports...)
64
81
        if errors.IsNotImplemented(err) {
71
88
// ClosePorts closes the given ports on the instance, which
72
89
// should have been started with the given machine id.
73
90
func (inst *environInstance) ClosePorts(machineID string, ports []network.PortRange) error {
74
 
        name := common.MachineFullName(inst.env, machineID)
 
91
        name := common.MachineFullName(inst.env.Config().UUID(), machineID)
75
92
        env := inst.env.getSnapshot()
76
93
        err := env.raw.ClosePorts(name, ports...)
77
94
        if errors.IsNotImplemented(err) {
85
102
// should have been started with the given machine id.
86
103
// The ports are returned as sorted by SortPorts.
87
104
func (inst *environInstance) Ports(machineID string) ([]network.PortRange, error) {
88
 
        name := common.MachineFullName(inst.env, machineID)
 
105
        name := common.MachineFullName(inst.env.Config().UUID(), machineID)
89
106
        env := inst.env.getSnapshot()
90
107
        ports, err := env.raw.Ports(name)
91
108
        if errors.IsNotImplemented(err) {