github.com/cloudbase/juju-core@v0.0.0-20140504232958-a7271ac7912f/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 "launchpad.net/juju-core/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 // DNSName implements instance.Instance.DNSName. 42 func (kvm *kvmInstance) DNSName() (string, error) { 43 return "", instance.ErrNoDNSName 44 } 45 46 // WaitDNSName implements instance.Instance.WaitDNSName. 47 func (kvm *kvmInstance) WaitDNSName() (string, error) { 48 return "", instance.ErrNoDNSName 49 } 50 51 // OpenPorts implements instance.Instance.OpenPorts. 52 func (kvm *kvmInstance) OpenPorts(machineId string, ports []instance.Port) error { 53 return fmt.Errorf("not implemented") 54 } 55 56 // ClosePorts implements instance.Instance.ClosePorts. 57 func (kvm *kvmInstance) ClosePorts(machineId string, ports []instance.Port) error { 58 return fmt.Errorf("not implemented") 59 } 60 61 // Ports implements instance.Instance.Ports. 62 func (kvm *kvmInstance) Ports(machineId string) ([]instance.Port, error) { 63 return nil, fmt.Errorf("not implemented") 64 } 65 66 // Add a string representation of the id. 67 func (kvm *kvmInstance) String() string { 68 return fmt.Sprintf("kvm:%s", kvm.id) 69 }