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