1// +build acceptance networking fwaas_v2 2 3package fwaas_v2 4 5import ( 6 "testing" 7 8 "github.com/gophercloud/gophercloud/acceptance/clients" 9 "github.com/gophercloud/gophercloud/acceptance/tools" 10 "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/fwaas_v2/rules" 11 th "github.com/gophercloud/gophercloud/testhelper" 12) 13 14func TestRuleCRUD(t *testing.T) { 15 16 client, err := clients.NewNetworkV2Client() 17 th.AssertNoErr(t, err) 18 19 rule, err := CreateRule(t, client) 20 th.AssertNoErr(t, err) 21 defer DeleteRule(t, client, rule.ID) 22 23 tools.PrintResource(t, rule) 24 25 ruleDescription := "Some rule description" 26 ruleProtocol := rules.ProtocolICMP 27 updateOpts := rules.UpdateOpts{ 28 Description: &ruleDescription, 29 Protocol: &ruleProtocol, 30 } 31 32 ruleUpdated, err := rules.Update(client, rule.ID, updateOpts).Extract() 33 th.AssertNoErr(t, err) 34 th.AssertEquals(t, ruleUpdated.Description, ruleDescription) 35 th.AssertEquals(t, ruleUpdated.Protocol, string(ruleProtocol)) 36 37 newRule, err := rules.Get(client, rule.ID).Extract() 38 th.AssertNoErr(t, err) 39 40 tools.PrintResource(t, newRule) 41 42 allPages, err := rules.List(client, nil).AllPages() 43 th.AssertNoErr(t, err) 44 45 allRules, err := rules.ExtractRules(allPages) 46 th.AssertNoErr(t, err) 47 48 t.Logf("Attempting to find rule %s\n", newRule.ID) 49 var found bool 50 for _, rule := range allRules { 51 if rule.ID == newRule.ID { 52 found = true 53 t.Logf("Found rule %s\n", newRule.ID) 54 } 55 } 56 57 th.AssertEquals(t, found, true) 58} 59