github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/networking/v2/extensions/fwaas/firewall_test.go (about) 1 //go:build acceptance || networking || fwaas 2 // +build acceptance networking fwaas 3 4 package fwaas 5 6 import ( 7 "testing" 8 9 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 10 layer3 "github.com/gophercloud/gophercloud/internal/acceptance/openstack/networking/v2/extensions/layer3" 11 "github.com/gophercloud/gophercloud/internal/acceptance/tools" 12 "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/fwaas/firewalls" 13 "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/fwaas/routerinsertion" 14 th "github.com/gophercloud/gophercloud/testhelper" 15 ) 16 17 func TestFirewallCRUD(t *testing.T) { 18 t.Skip("Skip this test, FWAAS v1 is old and will be removed from Gophercloud") 19 client, err := clients.NewNetworkV2Client() 20 th.AssertNoErr(t, err) 21 22 router, err := layer3.CreateExternalRouter(t, client) 23 th.AssertNoErr(t, err) 24 defer layer3.DeleteRouter(t, client, router.ID) 25 26 rule, err := CreateRule(t, client) 27 th.AssertNoErr(t, err) 28 defer DeleteRule(t, client, rule.ID) 29 30 tools.PrintResource(t, rule) 31 32 policy, err := CreatePolicy(t, client, rule.ID) 33 th.AssertNoErr(t, err) 34 defer DeletePolicy(t, client, policy.ID) 35 36 tools.PrintResource(t, policy) 37 38 firewall, err := CreateFirewall(t, client, policy.ID) 39 th.AssertNoErr(t, err) 40 defer DeleteFirewall(t, client, firewall.ID) 41 42 tools.PrintResource(t, firewall) 43 44 fwName := "" 45 fwDescription := "" 46 fwUpdateOpts := firewalls.UpdateOpts{ 47 Name: &fwName, 48 Description: &fwDescription, 49 PolicyID: policy.ID, 50 } 51 52 _, err = firewalls.Update(client, firewall.ID, fwUpdateOpts).Extract() 53 th.AssertNoErr(t, err) 54 55 newFirewall, err := firewalls.Get(client, firewall.ID).Extract() 56 th.AssertNoErr(t, err) 57 58 tools.PrintResource(t, newFirewall) 59 th.AssertEquals(t, newFirewall.Name, fwName) 60 th.AssertEquals(t, newFirewall.Description, fwDescription) 61 th.AssertEquals(t, newFirewall.PolicyID, policy.ID) 62 63 allPages, err := firewalls.List(client, nil).AllPages() 64 th.AssertNoErr(t, err) 65 66 allFirewalls, err := firewalls.ExtractFirewalls(allPages) 67 th.AssertNoErr(t, err) 68 69 var found bool 70 for _, firewall := range allFirewalls { 71 if firewall.ID == newFirewall.ID { 72 found = true 73 } 74 } 75 76 th.AssertEquals(t, found, true) 77 } 78 79 func TestFirewallCRUDRouter(t *testing.T) { 80 t.Skip("Skip this test, FWAAS v1 is old and will be removed from Gophercloud") 81 client, err := clients.NewNetworkV2Client() 82 th.AssertNoErr(t, err) 83 84 router, err := layer3.CreateExternalRouter(t, client) 85 th.AssertNoErr(t, err) 86 defer layer3.DeleteRouter(t, client, router.ID) 87 88 rule, err := CreateRule(t, client) 89 th.AssertNoErr(t, err) 90 defer DeleteRule(t, client, rule.ID) 91 92 tools.PrintResource(t, rule) 93 94 policy, err := CreatePolicy(t, client, rule.ID) 95 th.AssertNoErr(t, err) 96 defer DeletePolicy(t, client, policy.ID) 97 98 tools.PrintResource(t, policy) 99 100 firewall, err := CreateFirewallOnRouter(t, client, policy.ID, router.ID) 101 th.AssertNoErr(t, err) 102 defer DeleteFirewall(t, client, firewall.ID) 103 104 tools.PrintResource(t, firewall) 105 106 router2, err := layer3.CreateExternalRouter(t, client) 107 th.AssertNoErr(t, err) 108 defer layer3.DeleteRouter(t, client, router2.ID) 109 110 description := "Some firewall description" 111 firewallUpdateOpts := firewalls.UpdateOpts{ 112 PolicyID: policy.ID, 113 Description: &description, 114 } 115 116 updateOpts := routerinsertion.UpdateOptsExt{ 117 firewallUpdateOpts, 118 []string{router2.ID}, 119 } 120 121 _, err = firewalls.Update(client, firewall.ID, updateOpts).Extract() 122 th.AssertNoErr(t, err) 123 124 newFirewall, err := firewalls.Get(client, firewall.ID).Extract() 125 th.AssertNoErr(t, err) 126 127 tools.PrintResource(t, newFirewall) 128 } 129 130 func TestFirewallCRUDRemoveRouter(t *testing.T) { 131 t.Skip("Skip this test, FWAAS v1 is old and will be removed from Gophercloud") 132 client, err := clients.NewNetworkV2Client() 133 th.AssertNoErr(t, err) 134 135 router, err := layer3.CreateExternalRouter(t, client) 136 th.AssertNoErr(t, err) 137 defer layer3.DeleteRouter(t, client, router.ID) 138 139 rule, err := CreateRule(t, client) 140 th.AssertNoErr(t, err) 141 defer DeleteRule(t, client, rule.ID) 142 143 tools.PrintResource(t, rule) 144 145 policy, err := CreatePolicy(t, client, rule.ID) 146 th.AssertNoErr(t, err) 147 defer DeletePolicy(t, client, policy.ID) 148 149 tools.PrintResource(t, policy) 150 151 firewall, err := CreateFirewallOnRouter(t, client, policy.ID, router.ID) 152 th.AssertNoErr(t, err) 153 defer DeleteFirewall(t, client, firewall.ID) 154 155 tools.PrintResource(t, firewall) 156 157 description := "Some firewall description" 158 firewallUpdateOpts := firewalls.UpdateOpts{ 159 PolicyID: policy.ID, 160 Description: &description, 161 } 162 163 updateOpts := routerinsertion.UpdateOptsExt{ 164 firewallUpdateOpts, 165 []string{}, 166 } 167 168 _, err = firewalls.Update(client, firewall.ID, updateOpts).Extract() 169 th.AssertNoErr(t, err) 170 171 newFirewall, err := firewalls.Get(client, firewall.ID).Extract() 172 th.AssertNoErr(t, err) 173 174 tools.PrintResource(t, newFirewall) 175 }