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  }