github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/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 ) 12 13 type kvmInstance struct { 14 container Container 15 id string 16 } 17 18 var _ instance.Instance = (*kvmInstance)(nil) 19 20 // Id implements instance.Instance.Id. 21 func (kvm *kvmInstance) Id() instance.Id { 22 return instance.Id(kvm.id) 23 } 24 25 // Status implements instance.Instance.Status. 26 func (kvm *kvmInstance) Status() string { 27 if kvm.container.IsRunning() { 28 return "running" 29 } 30 return "stopped" 31 } 32 33 func (*kvmInstance) Refresh() error { 34 return nil 35 } 36 37 func (kvm *kvmInstance) Addresses() ([]network.Address, error) { 38 logger.Errorf("kvmInstance.Addresses not implemented") 39 return nil, nil 40 } 41 42 // OpenPorts implements instance.Instance.OpenPorts. 43 func (kvm *kvmInstance) OpenPorts(machineId string, ports []network.PortRange) error { 44 return fmt.Errorf("not implemented") 45 } 46 47 // ClosePorts implements instance.Instance.ClosePorts. 48 func (kvm *kvmInstance) ClosePorts(machineId string, ports []network.PortRange) error { 49 return fmt.Errorf("not implemented") 50 } 51 52 // Ports implements instance.Instance.Ports. 53 func (kvm *kvmInstance) Ports(machineId string) ([]network.PortRange, error) { 54 return nil, fmt.Errorf("not implemented") 55 } 56 57 // Add a string representation of the id. 58 func (kvm *kvmInstance) String() string { 59 return fmt.Sprintf("kvm:%s", kvm.id) 60 }