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