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  }