github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/gce/environ_firewall_test.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package gce_test 5 6 import ( 7 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 10 "github.com/juju/juju/provider/gce" 11 ) 12 13 type environFirewallSuite struct { 14 gce.BaseSuite 15 } 16 17 var _ = gc.Suite(&environFirewallSuite{}) 18 19 func (s *environFirewallSuite) TestGlobalFirewallName(c *gc.C) { 20 uuid := s.Config.UUID() 21 fwname := gce.GlobalFirewallName(s.Env) 22 23 c.Check(fwname, gc.Equals, "juju-"+uuid) 24 } 25 26 func (s *environFirewallSuite) TestOpenPortsInvalidCredentialError(c *gc.C) { 27 s.FakeConn.Err = gce.InvalidCredentialError 28 c.Assert(s.InvalidatedCredentials, jc.IsFalse) 29 err := s.Env.OpenPorts(s.CallCtx, s.Rules) 30 c.Check(err, gc.NotNil) 31 c.Assert(s.InvalidatedCredentials, jc.IsTrue) 32 } 33 34 func (s *environFirewallSuite) TestOpenPorts(c *gc.C) { 35 err := s.Env.OpenPorts(s.CallCtx, s.Rules) 36 37 c.Check(err, jc.ErrorIsNil) 38 } 39 40 func (s *environFirewallSuite) TestOpenPortsAPI(c *gc.C) { 41 fwname := gce.GlobalFirewallName(s.Env) 42 err := s.Env.OpenPorts(s.CallCtx, s.Rules) 43 c.Assert(err, jc.ErrorIsNil) 44 45 c.Check(s.FakeConn.Calls, gc.HasLen, 1) 46 c.Check(s.FakeConn.Calls[0].FuncName, gc.Equals, "OpenPorts") 47 c.Check(s.FakeConn.Calls[0].FirewallName, gc.Equals, fwname) 48 c.Check(s.FakeConn.Calls[0].Rules, jc.DeepEquals, s.Rules) 49 } 50 51 func (s *environFirewallSuite) TestClosePorts(c *gc.C) { 52 err := s.Env.ClosePorts(s.CallCtx, s.Rules) 53 54 c.Check(err, jc.ErrorIsNil) 55 } 56 57 func (s *environFirewallSuite) TestClosePortsInvalidCredentialError(c *gc.C) { 58 s.FakeConn.Err = gce.InvalidCredentialError 59 c.Assert(s.InvalidatedCredentials, jc.IsFalse) 60 err := s.Env.ClosePorts(s.CallCtx, s.Rules) 61 c.Check(err, gc.NotNil) 62 c.Assert(s.InvalidatedCredentials, jc.IsTrue) 63 } 64 65 func (s *environFirewallSuite) TestClosePortsAPI(c *gc.C) { 66 fwname := gce.GlobalFirewallName(s.Env) 67 err := s.Env.ClosePorts(s.CallCtx, s.Rules) 68 c.Assert(err, jc.ErrorIsNil) 69 70 c.Check(s.FakeConn.Calls, gc.HasLen, 1) 71 c.Check(s.FakeConn.Calls[0].FuncName, gc.Equals, "ClosePorts") 72 c.Check(s.FakeConn.Calls[0].FirewallName, gc.Equals, fwname) 73 c.Check(s.FakeConn.Calls[0].Rules, jc.DeepEquals, s.Rules) 74 } 75 76 func (s *environFirewallSuite) TestPorts(c *gc.C) { 77 s.FakeConn.Rules = s.Rules 78 79 ports, err := s.Env.IngressRules(s.CallCtx) 80 c.Assert(err, jc.ErrorIsNil) 81 82 c.Check(ports, jc.DeepEquals, s.Rules) 83 } 84 85 func (s *environFirewallSuite) TestIngressRulesInvalidCredentialError(c *gc.C) { 86 s.FakeConn.Err = gce.InvalidCredentialError 87 c.Assert(s.InvalidatedCredentials, jc.IsFalse) 88 _, err := s.Env.IngressRules(s.CallCtx) 89 c.Check(err, gc.NotNil) 90 c.Assert(s.InvalidatedCredentials, jc.IsTrue) 91 } 92 93 func (s *environFirewallSuite) TestPortsAPI(c *gc.C) { 94 fwname := gce.GlobalFirewallName(s.Env) 95 _, err := s.Env.IngressRules(s.CallCtx) 96 c.Assert(err, jc.ErrorIsNil) 97 98 c.Check(s.FakeConn.Calls, gc.HasLen, 1) 99 c.Check(s.FakeConn.Calls[0].FuncName, gc.Equals, "Ports") 100 c.Check(s.FakeConn.Calls[0].FirewallName, gc.Equals, fwname) 101 }