github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/identity/v3/endpoint_test.go (about)

     1  package v3
     2  
     3  import (
     4  	"testing"
     5  
     6  	golangsdk "github.com/opentelekomcloud/gophertelekomcloud"
     7  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients"
     8  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools"
     9  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/identity/v3/endpoints"
    10  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/identity/v3/services"
    11  	th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
    12  )
    13  
    14  func TestEndpointsList(t *testing.T) {
    15  	client, err := clients.NewIdentityV3Client()
    16  	th.AssertNoErr(t, err)
    17  
    18  	allPages, err := endpoints.List(client, nil).AllPages()
    19  	th.AssertNoErr(t, err)
    20  
    21  	allEndpoints, err := endpoints.ExtractEndpoints(allPages)
    22  	th.AssertNoErr(t, err)
    23  
    24  	for _, endpoint := range allEndpoints {
    25  		tools.PrintResource(t, endpoint)
    26  	}
    27  }
    28  
    29  func TestEndpointsNavigateCatalog(t *testing.T) {
    30  	client, err := clients.NewIdentityV3Client()
    31  	th.AssertNoErr(t, err)
    32  
    33  	// Discover the service we're interested in.
    34  	serviceListOpts := services.ListOpts{
    35  		ServiceType: "compute",
    36  	}
    37  
    38  	allPages, err := services.List(client, serviceListOpts).AllPages()
    39  	th.AssertNoErr(t, err)
    40  
    41  	allServices, err := services.ExtractServices(allPages)
    42  	th.AssertNoErr(t, err)
    43  
    44  	if len(allServices) != 1 {
    45  		t.Fatalf("Expected one service, got %d", len(allServices))
    46  	}
    47  
    48  	computeService := allServices[0]
    49  	tools.PrintResource(t, computeService)
    50  
    51  	// Enumerate the endpoints available for this service.
    52  	endpointListOpts := endpoints.ListOpts{
    53  		Availability: golangsdk.AvailabilityPublic,
    54  		ServiceID:    computeService.ID,
    55  	}
    56  
    57  	allPages, err = endpoints.List(client, endpointListOpts).AllPages()
    58  	th.AssertNoErr(t, err)
    59  
    60  	allEndpoints, err := endpoints.ExtractEndpoints(allPages)
    61  	th.AssertNoErr(t, err)
    62  
    63  	th.AssertEquals(t, allEndpoints[0].Region, "eu-de")
    64  	th.AssertEquals(t, allEndpoints[1].Region, "eu-nl")
    65  	th.CheckEquals(t, 2, len(allEndpoints))
    66  	tools.PrintResource(t, allEndpoints)
    67  
    68  }