github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/networking/v2/extensions/fwaas_v2/rule_test.go (about) 1 //go:build acceptance || networking || fwaas_v2 2 // +build acceptance networking fwaas_v2 3 4 package fwaas_v2 5 6 import ( 7 "fmt" 8 "strconv" 9 "testing" 10 11 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 12 "github.com/gophercloud/gophercloud/internal/acceptance/tools" 13 "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/fwaas_v2/rules" 14 th "github.com/gophercloud/gophercloud/testhelper" 15 ) 16 17 func TestRuleCRUD(t *testing.T) { 18 // Releases below Victoria are not maintained. 19 // FWaaS_v2 is not compatible with releases below Zed. 20 clients.SkipReleasesBelow(t, "stable/zed") 21 22 client, err := clients.NewNetworkV2Client() 23 th.AssertNoErr(t, err) 24 25 rule, err := CreateRule(t, client) 26 th.AssertNoErr(t, err) 27 defer DeleteRule(t, client, rule.ID) 28 29 tools.PrintResource(t, rule) 30 31 ruleDescription := "Some rule description" 32 ruleSourcePortInt := strconv.Itoa(tools.RandomInt(1, 100)) 33 ruleSourcePort := fmt.Sprintf("%s:%s", ruleSourcePortInt, ruleSourcePortInt) 34 ruleProtocol := rules.ProtocolTCP 35 updateOpts := rules.UpdateOpts{ 36 Description: &ruleDescription, 37 Protocol: &ruleProtocol, 38 SourcePort: &ruleSourcePort, 39 } 40 41 ruleUpdated, err := rules.Update(client, rule.ID, updateOpts).Extract() 42 th.AssertNoErr(t, err) 43 th.AssertEquals(t, ruleUpdated.Description, ruleDescription) 44 th.AssertEquals(t, ruleUpdated.SourcePort, ruleSourcePortInt) 45 th.AssertEquals(t, ruleUpdated.Protocol, string(ruleProtocol)) 46 47 newRule, err := rules.Get(client, rule.ID).Extract() 48 th.AssertNoErr(t, err) 49 50 tools.PrintResource(t, newRule) 51 52 allPages, err := rules.List(client, nil).AllPages() 53 th.AssertNoErr(t, err) 54 55 allRules, err := rules.ExtractRules(allPages) 56 th.AssertNoErr(t, err) 57 58 t.Logf("Attempting to find rule %s\n", newRule.ID) 59 var found bool 60 for _, rule := range allRules { 61 if rule.ID == newRule.ID { 62 found = true 63 t.Logf("Found rule %s\n", newRule.ID) 64 } 65 } 66 67 th.AssertEquals(t, found, true) 68 }