github.com/mwhudson/juju@v0.0.0-20160512215208-90ff01f3497f/provider/lxd/environ_network.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  // +build go1.3
     5  
     6  package lxd
     7  
     8  import (
     9  	"github.com/juju/errors"
    10  
    11  	"github.com/juju/juju/network"
    12  	"github.com/juju/juju/provider/common"
    13  )
    14  
    15  // globalFirewallName returns the name to use for the global firewall.
    16  func (env *environ) globalFirewallName() string {
    17  	return common.EnvFullName(env.uuid)
    18  }
    19  
    20  // OpenPorts opens the given port ranges for the whole environment.
    21  // Must only be used if the environment was setup with the
    22  // FwGlobal firewall mode.
    23  func (env *environ) OpenPorts(ports []network.PortRange) error {
    24  	err := env.raw.OpenPorts(env.globalFirewallName(), ports...)
    25  	if errors.IsNotImplemented(err) {
    26  		// TODO(ericsnow) for now...
    27  		return nil
    28  	}
    29  	return errors.Trace(err)
    30  }
    31  
    32  // ClosePorts closes the given port ranges for the whole environment.
    33  // Must only be used if the environment was setup with the
    34  // FwGlobal firewall mode.
    35  func (env *environ) ClosePorts(ports []network.PortRange) error {
    36  	err := env.raw.ClosePorts(env.globalFirewallName(), ports...)
    37  	if errors.IsNotImplemented(err) {
    38  		// TODO(ericsnow) for now...
    39  		return nil
    40  	}
    41  	return errors.Trace(err)
    42  }
    43  
    44  // Ports returns the port ranges opened for the whole environment.
    45  // Must only be used if the environment was setup with the
    46  // FwGlobal firewall mode.
    47  func (env *environ) Ports() ([]network.PortRange, error) {
    48  	ports, err := env.raw.Ports(env.globalFirewallName())
    49  	if errors.IsNotImplemented(err) {
    50  		// TODO(ericsnow) for now...
    51  		return nil, nil
    52  	}
    53  	return ports, errors.Trace(err)
    54  }