Skip to content

Commit 1414066

Browse files
committed
Call openFirewallRules in CreateIsolatedNetwork to create an egress rule
Make openFirewallRules a private function
1 parent 434e4c4 commit 1414066

File tree

2 files changed

+6
-32
lines changed

2 files changed

+6
-32
lines changed

pkg/cloud/network.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ type NetworkIface interface {
3030
ResolveNetworkStatuses(*capcv1.CloudStackCluster) error
3131
ResolveNetwork(*capcv1.CloudStackCluster, *capcv1.Network) error
3232
CreateIsolatedNetwork(*capcv1.CloudStackCluster) error
33-
OpenFirewallRules(*capcv1.CloudStackCluster) error
3433
FetchPublicIP(*capcv1.CloudStackCluster) (*cloudstack.PublicIpAddress, error)
3534
ResolveLoadBalancerRuleDetails(*capcv1.CloudStackCluster) error
3635
GetOrCreateLoadBalancerRule(*capcv1.CloudStackCluster) error
@@ -146,6 +145,10 @@ func (c *client) CreateIsolatedNetwork(csCluster *capcv1.CloudStackCluster) (ret
146145
return err
147146
}
148147

148+
if err := c.openFirewallRules(zoneStatus.Network.ID); err != nil {
149+
return err
150+
}
151+
149152
return nil
150153
}
151154

@@ -268,8 +271,8 @@ func (c *client) AssociatePublicIPAddress(csCluster *capcv1.CloudStackCluster) (
268271
return nil
269272
}
270273

271-
func (c *client) OpenFirewallRules(csCluster *capcv1.CloudStackCluster) (retErr error) {
272-
p := c.cs.Firewall.NewCreateEgressFirewallRuleParams(csCluster.Status.PublicIPNetworkID, NetworkProtocolTCP)
274+
func (c *client) openFirewallRules(networkID string) (retErr error) {
275+
p := c.cs.Firewall.NewCreateEgressFirewallRuleParams(networkID, NetworkProtocolTCP)
273276
_, retErr = c.cs.Firewall.CreateEgressFirewallRule(p)
274277
if retErr != nil && strings.Contains(strings.ToLower(retErr.Error()), "there is already") { // Already a firewall rule here.
275278
retErr = nil

pkg/cloud/network_test.go

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -149,35 +149,6 @@ var _ = Describe("Network", func() {
149149
Ω(client.GetOrCreateIsolatedNetwork(dummies.CSCluster)).Should(Succeed())
150150
})
151151

152-
Context("for a closed firewall", func() {
153-
It("OpenFirewallRule asks CloudStack to open the firewall", func() {
154-
dummies.Zone1.Network = dummies.ISONet1
155-
dummies.CSCluster.Status.Zones = capcv1.ZoneStatusMap{dummies.Zone1.ID: dummies.Zone1}
156-
dummies.CSCluster.Status.PublicIPNetworkID = dummies.ISONet1.ID
157-
fs.EXPECT().NewCreateEgressFirewallRuleParams(dummies.ISONet1.ID, cloud.NetworkProtocolTCP).
158-
Return(&csapi.CreateEgressFirewallRuleParams{})
159-
fs.EXPECT().CreateEgressFirewallRule(&csapi.CreateEgressFirewallRuleParams{}).
160-
Return(&csapi.CreateEgressFirewallRuleResponse{}, nil)
161-
162-
Ω(client.OpenFirewallRules(dummies.CSCluster)).Should(Succeed())
163-
})
164-
})
165-
166-
Context("for an open firewall", func() {
167-
It("OpenFirewallRule asks CloudStack to open the firewall anyway, but doesn't fail", func() {
168-
dummies.Zone1.Network = dummies.ISONet1
169-
dummies.CSCluster.Status.Zones = capcv1.ZoneStatusMap{dummies.Zone1.ID: dummies.Zone1}
170-
dummies.CSCluster.Status.PublicIPNetworkID = dummies.ISONet1.ID
171-
172-
fs.EXPECT().NewCreateEgressFirewallRuleParams(dummies.ISONet1.ID, "tcp").
173-
Return(&csapi.CreateEgressFirewallRuleParams{})
174-
fs.EXPECT().CreateEgressFirewallRule(&csapi.CreateEgressFirewallRuleParams{}).
175-
Return(&csapi.CreateEgressFirewallRuleResponse{}, errors.New("there is already a rule like this"))
176-
177-
Ω(client.OpenFirewallRules(dummies.CSCluster)).Should(Succeed())
178-
})
179-
})
180-
181152
Context("in an isolated network with public IPs available", func() {
182153
It("will resolve public IP details given an endpoint spec", func() {
183154
ipAddress := "192.168.1.14"

0 commit comments

Comments
 (0)