github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/internal/acceptance/openstack/networking/v2/extensions/security_test.go (about) 1 //go:build acceptance || networking || security 2 3 package extensions 4 5 import ( 6 "context" 7 "testing" 8 9 "github.com/vnpaycloud-console/gophercloud/v2/internal/acceptance/clients" 10 networking "github.com/vnpaycloud-console/gophercloud/v2/internal/acceptance/openstack/networking/v2" 11 "github.com/vnpaycloud-console/gophercloud/v2/internal/acceptance/tools" 12 "github.com/vnpaycloud-console/gophercloud/v2/openstack/networking/v2/extensions/security/groups" 13 th "github.com/vnpaycloud-console/gophercloud/v2/testhelper" 14 ) 15 16 func TestSecurityGroupsCreateUpdateDelete(t *testing.T) { 17 client, err := clients.NewNetworkV2Client() 18 th.AssertNoErr(t, err) 19 20 group, err := CreateSecurityGroup(t, client) 21 th.AssertNoErr(t, err) 22 defer DeleteSecurityGroup(t, client, group.ID) 23 th.AssertEquals(t, group.Stateful, true) 24 25 rule, err := CreateSecurityGroupRule(t, client, group.ID) 26 th.AssertNoErr(t, err) 27 defer DeleteSecurityGroupRule(t, client, rule.ID) 28 29 rules, err := CreateSecurityGroupRulesBulk(t, client, group.ID) 30 th.AssertNoErr(t, err) 31 for _, r := range rules { 32 defer DeleteSecurityGroupRule(t, client, r.ID) 33 } 34 35 tools.PrintResource(t, group) 36 37 var name = "Update group" 38 var description = "" 39 updateOpts := groups.UpdateOpts{ 40 Name: name, 41 Description: &description, 42 Stateful: new(bool), 43 } 44 45 newGroup, err := groups.Update(context.TODO(), client, group.ID, updateOpts).Extract() 46 th.AssertNoErr(t, err) 47 48 tools.PrintResource(t, newGroup) 49 th.AssertEquals(t, newGroup.Name, name) 50 th.AssertEquals(t, newGroup.Description, description) 51 th.AssertEquals(t, newGroup.Stateful, false) 52 53 listOpts := groups.ListOpts{} 54 allPages, err := groups.List(client, listOpts).AllPages(context.TODO()) 55 th.AssertNoErr(t, err) 56 57 allGroups, err := groups.ExtractGroups(allPages) 58 th.AssertNoErr(t, err) 59 60 var found bool 61 for _, group := range allGroups { 62 if group.ID == newGroup.ID { 63 found = true 64 } 65 } 66 67 th.AssertEquals(t, found, true) 68 } 69 70 func TestSecurityGroupsPort(t *testing.T) { 71 client, err := clients.NewNetworkV2Client() 72 th.AssertNoErr(t, err) 73 74 network, err := networking.CreateNetwork(t, client) 75 th.AssertNoErr(t, err) 76 defer networking.DeleteNetwork(t, client, network.ID) 77 78 subnet, err := networking.CreateSubnet(t, client, network.ID) 79 th.AssertNoErr(t, err) 80 defer networking.DeleteSubnet(t, client, subnet.ID) 81 82 group, err := CreateSecurityGroup(t, client) 83 th.AssertNoErr(t, err) 84 defer DeleteSecurityGroup(t, client, group.ID) 85 86 rule, err := CreateSecurityGroupRule(t, client, group.ID) 87 th.AssertNoErr(t, err) 88 defer DeleteSecurityGroupRule(t, client, rule.ID) 89 90 port, err := CreatePortWithSecurityGroup(t, client, network.ID, subnet.ID, group.ID) 91 th.AssertNoErr(t, err) 92 defer networking.DeletePort(t, client, port.ID) 93 94 tools.PrintResource(t, port) 95 }