github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/identity/v3/projectendpoint_test.go (about) 1 //go:build acceptance 2 // +build acceptance 3 4 package v3 5 6 import ( 7 "testing" 8 9 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 10 "github.com/gophercloud/gophercloud/internal/acceptance/tools" 11 "github.com/gophercloud/gophercloud/openstack/identity/v3/endpoints" 12 "github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/projectendpoints" 13 th "github.com/gophercloud/gophercloud/testhelper" 14 ) 15 16 func TestProjectEndpoints(t *testing.T) { 17 clients.RequireAdmin(t) 18 19 client, err := clients.NewIdentityV3Client() 20 th.AssertNoErr(t, err) 21 22 // Create a project to assign endpoints. 23 project, err := CreateProject(t, client, nil) 24 th.AssertNoErr(t, err) 25 defer DeleteProject(t, client, project.ID) 26 27 tools.PrintResource(t, project) 28 29 // Get an endpoint 30 allEndpointsPages, err := endpoints.List(client, nil).AllPages() 31 th.AssertNoErr(t, err) 32 33 allEndpoints, err := endpoints.ExtractEndpoints(allEndpointsPages) 34 th.AssertNoErr(t, err) 35 th.AssertIntGreaterOrEqual(t, len(allEndpoints), 1) 36 endpoint := allEndpoints[0] 37 38 // Attach endpoint 39 err = projectendpoints.Create(client, project.ID, endpoint.ID).Err 40 th.AssertNoErr(t, err) 41 42 // List endpoints 43 allProjectEndpointsPages, err := projectendpoints.List(client, project.ID).AllPages() 44 th.AssertNoErr(t, err) 45 46 allProjectEndpoints, err := projectendpoints.ExtractEndpoints(allProjectEndpointsPages) 47 th.AssertNoErr(t, err) 48 th.AssertEquals(t, 1, len(allProjectEndpoints)) 49 50 tools.PrintResource(t, allProjectEndpoints[0]) 51 52 // Detach endpoint 53 err = projectendpoints.Delete(client, project.ID, endpoint.ID).Err 54 th.AssertNoErr(t, err) 55 56 }