github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/container/kvm/instance.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package kvm 5 6 import ( 7 "fmt" 8 9 "github.com/juju/juju/instance" 10 "github.com/juju/juju/network" 11 "github.com/juju/juju/status" 12 ) 13 14 type kvmInstance struct { 15 container Container 16 id string 17 } 18 19 var _ instance.Instance = (*kvmInstance)(nil) 20 21 // Id implements instance.Instance.Id. 22 func (kvm *kvmInstance) Id() instance.Id { 23 return instance.Id(kvm.id) 24 } 25 26 // Status implements instance.Instance.Status. 27 func (kvm *kvmInstance) Status() instance.InstanceStatus { 28 if kvm.container.IsRunning() { 29 return instance.InstanceStatus{ 30 Status: status.Running, 31 Message: "running", 32 } 33 } 34 return instance.InstanceStatus{ 35 Status: status.Stopped, 36 Message: "stopped", 37 } 38 } 39 40 func (*kvmInstance) Refresh() error { 41 return nil 42 } 43 44 func (kvm *kvmInstance) Addresses() ([]network.Address, error) { 45 logger.Errorf("kvmInstance.Addresses not implemented") 46 return nil, nil 47 } 48 49 // OpenPorts implements instance.Instance.OpenPorts. 50 func (kvm *kvmInstance) OpenPorts(machineId string, ports []network.PortRange) error { 51 return fmt.Errorf("not implemented") 52 } 53 54 // ClosePorts implements instance.Instance.ClosePorts. 55 func (kvm *kvmInstance) ClosePorts(machineId string, ports []network.PortRange) error { 56 return fmt.Errorf("not implemented") 57 } 58 59 // Ports implements instance.Instance.Ports. 60 func (kvm *kvmInstance) Ports(machineId string) ([]network.PortRange, error) { 61 return nil, fmt.Errorf("not implemented") 62 } 63 64 // Add a string representation of the id. 65 func (kvm *kvmInstance) String() string { 66 return fmt.Sprintf("kvm:%s", kvm.id) 67 }