github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/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 }