github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/gce/environ_firewall.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package gce
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  
     9  	"github.com/juju/juju/environs/context"
    10  	"github.com/juju/juju/network"
    11  	"github.com/juju/juju/provider/common"
    12  	"github.com/juju/juju/provider/gce/google"
    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(ctx context.ProviderCallContext, rules []network.IngressRule) error {
    24  	err := env.gce.OpenPorts(env.globalFirewallName(), rules...)
    25  	return google.HandleCredentialError(errors.Trace(err), ctx)
    26  }
    27  
    28  // ClosePorts closes the given port ranges for the whole environment.
    29  // Must only be used if the environment was setup with the
    30  // FwGlobal firewall mode.
    31  func (env *environ) ClosePorts(ctx context.ProviderCallContext, rules []network.IngressRule) error {
    32  	err := env.gce.ClosePorts(env.globalFirewallName(), rules...)
    33  	return google.HandleCredentialError(errors.Trace(err), ctx)
    34  }
    35  
    36  // IngressRules returns the ingress rules applicable for the whole environment.
    37  // Must only be used if the environment was setup with the
    38  // FwGlobal firewall mode.
    39  func (env *environ) IngressRules(ctx context.ProviderCallContext) ([]network.IngressRule, error) {
    40  	rules, err := env.gce.IngressRules(env.globalFirewallName())
    41  	return rules, google.HandleCredentialError(errors.Trace(err), ctx)
    42  }