/vendor/github.com/gophercloud/gophercloud/acceptance/openstack/networking/v2/extensions/portsbinding/portsbinding_test.go
Go | 57 lines | 40 code | 11 blank | 6 comment | 13 complexity | efbe7a3e07b8187e2034ac33668da61e MD5 | raw file
1// +build acceptance networking
2
3package portsbinding
4
5import (
6 "testing"
7
8 "github.com/gophercloud/gophercloud/acceptance/clients"
9 networking "github.com/gophercloud/gophercloud/acceptance/openstack/networking/v2"
10 "github.com/gophercloud/gophercloud/acceptance/tools"
11 "github.com/gophercloud/gophercloud/openstack/networking/v2/ports"
12)
13
14func TestPortsbindingCRUD(t *testing.T) {
15 client, err := clients.NewNetworkV2Client()
16 if err != nil {
17 t.Fatalf("Unable to create a network client: %v", err)
18 }
19
20 // Create Network
21 network, err := networking.CreateNetwork(t, client)
22 if err != nil {
23 t.Fatalf("Unable to create network: %v", err)
24 }
25 defer networking.DeleteNetwork(t, client, network.ID)
26
27 // Create Subnet
28 subnet, err := networking.CreateSubnet(t, client, network.ID)
29 if err != nil {
30 t.Fatalf("Unable to create subnet: %v", err)
31 }
32 defer networking.DeleteSubnet(t, client, subnet.ID)
33
34 // Define a host
35 hostID := "localhost"
36
37 // Create port
38 port, err := CreatePortsbinding(t, client, network.ID, subnet.ID, hostID)
39 if err != nil {
40 t.Fatalf("Unable to create port: %v", err)
41 }
42 defer networking.DeletePort(t, client, port.ID)
43
44 tools.PrintResource(t, port)
45
46 // Update port
47 newPortName := tools.RandomString("TESTACC-", 8)
48 updateOpts := ports.UpdateOpts{
49 Name: newPortName,
50 }
51 newPort, err := ports.Update(client, port.ID, updateOpts).Extract()
52 if err != nil {
53 t.Fatalf("Could not update port: %v", err)
54 }
55
56 tools.PrintResource(t, newPort)
57}