1
// Copyright 2013 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
9
"github.com/juju/juju/instance"
10
"github.com/juju/juju/network"
11
"github.com/juju/juju/status"
14
type kvmInstance struct {
19
var _ instance.Instance = (*kvmInstance)(nil)
21
// Id implements instance.Instance.Id.
22
func (kvm *kvmInstance) Id() instance.Id {
23
return instance.Id(kvm.id)
26
// Status implements instance.Instance.Status.
27
func (kvm *kvmInstance) Status() instance.InstanceStatus {
28
if kvm.container.IsRunning() {
29
return instance.InstanceStatus{
30
Status: status.StatusRunning,
34
return instance.InstanceStatus{
35
Status: status.StatusStopped,
40
func (*kvmInstance) Refresh() error {
44
func (kvm *kvmInstance) Addresses() ([]network.Address, error) {
45
logger.Errorf("kvmInstance.Addresses not implemented")
49
// OpenPorts implements instance.Instance.OpenPorts.
50
func (kvm *kvmInstance) OpenPorts(machineId string, ports []network.PortRange) error {
51
return fmt.Errorf("not implemented")
54
// ClosePorts implements instance.Instance.ClosePorts.
55
func (kvm *kvmInstance) ClosePorts(machineId string, ports []network.PortRange) error {
56
return fmt.Errorf("not implemented")
59
// Ports implements instance.Instance.Ports.
60
func (kvm *kvmInstance) Ports(machineId string) ([]network.PortRange, error) {
61
return nil, fmt.Errorf("not implemented")
64
// Add a string representation of the id.
65
func (kvm *kvmInstance) String() string {
66
return fmt.Sprintf("kvm:%s", kvm.id)