~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/gce/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:
10
10
        "github.com/juju/juju/network"
11
11
        "github.com/juju/juju/provider/common"
12
12
        "github.com/juju/juju/provider/gce/google"
 
13
        "github.com/juju/juju/status"
13
14
)
14
15
 
15
16
type environInstance struct {
32
33
}
33
34
 
34
35
// Status implements instance.Instance.
35
 
func (inst *environInstance) Status() string {
36
 
        return inst.base.Status()
 
36
func (inst *environInstance) Status() instance.InstanceStatus {
 
37
        instStatus := inst.base.Status()
 
38
        jujuStatus := status.StatusProvisioning
 
39
        switch instStatus {
 
40
        case "PROVISIONING", "STAGING":
 
41
                jujuStatus = status.StatusProvisioning
 
42
        case "RUNNING":
 
43
                jujuStatus = status.StatusRunning
 
44
        case "STOPPING", "TERMINATED":
 
45
                jujuStatus = status.StatusEmpty
 
46
        default:
 
47
                jujuStatus = status.StatusEmpty
 
48
        }
 
49
        return instance.InstanceStatus{
 
50
                Status:  jujuStatus,
 
51
                Message: instStatus,
 
52
        }
37
53
}
38
54
 
39
55
// Addresses implements instance.Instance.
56
72
// should have been started with the given machine id.
57
73
func (inst *environInstance) OpenPorts(machineID string, ports []network.PortRange) error {
58
74
        // TODO(ericsnow) Make sure machineId matches inst.Id()?
59
 
        name := common.MachineFullName(inst.env, machineID)
 
75
        name := common.MachineFullName(inst.env.Config().UUID(), machineID)
60
76
        env := inst.env.getSnapshot()
61
77
        err := env.gce.OpenPorts(name, ports...)
62
78
        return errors.Trace(err)
65
81
// ClosePorts closes the given ports on the instance, which
66
82
// should have been started with the given machine id.
67
83
func (inst *environInstance) ClosePorts(machineID string, ports []network.PortRange) error {
68
 
        name := common.MachineFullName(inst.env, machineID)
 
84
        name := common.MachineFullName(inst.env.Config().UUID(), machineID)
69
85
        env := inst.env.getSnapshot()
70
86
        err := env.gce.ClosePorts(name, ports...)
71
87
        return errors.Trace(err)
75
91
// should have been started with the given machine id.
76
92
// The ports are returned as sorted by SortPorts.
77
93
func (inst *environInstance) Ports(machineID string) ([]network.PortRange, error) {
78
 
        name := common.MachineFullName(inst.env, machineID)
 
94
        name := common.MachineFullName(inst.env.Config().UUID(), machineID)
79
95
        env := inst.env.getSnapshot()
80
96
        ports, err := env.gce.Ports(name)
81
97
        return ports, errors.Trace(err)