github.com/gophercloud/gophercloud@v1.14.1/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 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 tools.PrintResource(t, group) 30 31 var name = "Update group" 32 var description = "" 33 updateOpts := groups.UpdateOpts{ 34 Name: name, 35 Description: &description, 36 Stateful: new(bool), 37 } 38 39 newGroup, err := groups.Update(client, group.ID, updateOpts).Extract() 40 th.AssertNoErr(t, err) 41 42 tools.PrintResource(t, newGroup) 43 th.AssertEquals(t, newGroup.Name, name) 44 th.AssertEquals(t, newGroup.Description, description) 45 th.AssertEquals(t, newGroup.Stateful, false) 46 47 listOpts := groups.ListOpts{} 48 allPages, err := groups.List(client, listOpts).AllPages() 49 th.AssertNoErr(t, err) 50 51 allGroups, err := groups.ExtractGroups(allPages) 52 th.AssertNoErr(t, err) 53 54 var found bool 55 for _, group := range allGroups { 56 if group.ID == newGroup.ID { 57 found = true 58 } 59 } 60 61 th.AssertEquals(t, found, true) 62 } 63 64 func TestSecurityGroupsPort(t *testing.T) { 65 client, err := clients.NewNetworkV2Client() 66 th.AssertNoErr(t, err) 67 68 network, err := networking.CreateNetwork(t, client) 69 th.AssertNoErr(t, err) 70 defer networking.DeleteNetwork(t, client, network.ID) 71 72 subnet, err := networking.CreateSubnet(t, client, network.ID) 73 th.AssertNoErr(t, err) 74 defer networking.DeleteSubnet(t, client, subnet.ID) 75 76 group, err := CreateSecurityGroup(t, client) 77 th.AssertNoErr(t, err) 78 defer DeleteSecurityGroup(t, client, group.ID) 79 80 rule, err := CreateSecurityGroupRule(t, client, group.ID) 81 th.AssertNoErr(t, err) 82 defer DeleteSecurityGroupRule(t, client, rule.ID) 83 84 port, err := CreatePortWithSecurityGroup(t, client, network.ID, subnet.ID, group.ID) 85 th.AssertNoErr(t, err) 86 defer networking.DeletePort(t, client, port.ID) 87 88 tools.PrintResource(t, port) 89 }