github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/identity/v3/endpoint_test.go (about) 1 //go:build acceptance 2 // +build acceptance 3 4 package v3 5 6 import ( 7 "strings" 8 "testing" 9 10 "github.com/gophercloud/gophercloud" 11 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 12 "github.com/gophercloud/gophercloud/internal/acceptance/tools" 13 "github.com/gophercloud/gophercloud/openstack/identity/v3/endpoints" 14 "github.com/gophercloud/gophercloud/openstack/identity/v3/services" 15 th "github.com/gophercloud/gophercloud/testhelper" 16 ) 17 18 func TestEndpointsList(t *testing.T) { 19 clients.RequireAdmin(t) 20 21 client, err := clients.NewIdentityV3Client() 22 th.AssertNoErr(t, err) 23 24 allPages, err := endpoints.List(client, nil).AllPages() 25 th.AssertNoErr(t, err) 26 27 allEndpoints, err := endpoints.ExtractEndpoints(allPages) 28 th.AssertNoErr(t, err) 29 30 var found bool 31 for _, endpoint := range allEndpoints { 32 tools.PrintResource(t, endpoint) 33 34 if strings.Contains(endpoint.URL, "/v3") { 35 found = true 36 } 37 } 38 39 th.AssertEquals(t, found, true) 40 } 41 42 func TestEndpointsNavigateCatalog(t *testing.T) { 43 clients.RequireAdmin(t) 44 45 client, err := clients.NewIdentityV3Client() 46 th.AssertNoErr(t, err) 47 48 // Discover the service we're interested in. 49 serviceListOpts := services.ListOpts{ 50 ServiceType: "compute", 51 } 52 53 allPages, err := services.List(client, serviceListOpts).AllPages() 54 th.AssertNoErr(t, err) 55 56 allServices, err := services.ExtractServices(allPages) 57 th.AssertNoErr(t, err) 58 59 th.AssertEquals(t, len(allServices), 1) 60 61 computeService := allServices[0] 62 tools.PrintResource(t, computeService) 63 64 // Enumerate the endpoints available for this service. 65 endpointListOpts := endpoints.ListOpts{ 66 Availability: gophercloud.AvailabilityPublic, 67 ServiceID: computeService.ID, 68 } 69 70 allPages, err = endpoints.List(client, endpointListOpts).AllPages() 71 th.AssertNoErr(t, err) 72 73 allEndpoints, err := endpoints.ExtractEndpoints(allPages) 74 th.AssertNoErr(t, err) 75 76 th.AssertEquals(t, len(allServices), 1) 77 78 tools.PrintResource(t, allEndpoints[0]) 79 }