// GetTenants returns map of tenant names -> tenant ids func (self *collector) GetTenants() (map[string]string, error) { opts := &tenants.ListOpts{} pager := tenants.List(self.Keystone, opts) result := map[string]string{} err := pager.EachPage(func(page pagination.Page) (bool, error) { tenantList, err := tenants.ExtractTenants(page) if err != nil { return false, err } for _, t := range tenantList { result[t.Name] = t.ID } return true, nil }) if err != nil { return nil, err } return result, nil }
// Check the tenant id exist func (os *OpenStack) CheckTenantID(tenantID string) (bool, error) { opts := tenants.ListOpts{} pager := tenants.List(os.identity, &opts) var found bool err := pager.EachPage(func(page pagination.Page) (bool, error) { tenantList, err := tenants.ExtractTenants(page) if err != nil { return false, err } if len(tenantList) == 0 { return false, ErrNotFound } for _, t := range tenantList { if t.ID == tenantID || t.Name == tenantID { found = true } } return true, nil }) return found, err }
func getTenantID(t *testing.T, client *gophercloud.ServiceClient) (string, error) { allPages, err := tenants.List(client, nil).AllPages() if err != nil { t.Fatalf("Unable to get list of tenants: %v", err) } allTenants, err := tenants.ExtractTenants(allPages) if err != nil { t.Fatalf("Unable to extract tenants: %v", err) } for _, tenant := range allTenants { return tenant.ID, nil } return "", fmt.Errorf("Unable to get tenant ID") }
func TestListTenants(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() HandleListTenantsSuccessfully(t) count := 0 err := tenants.List(client.ServiceClient(), nil).EachPage(func(page pagination.Page) (bool, error) { count++ actual, err := tenants.ExtractTenants(page) th.AssertNoErr(t, err) th.CheckDeepEquals(t, ExpectedTenantSlice, actual) return true, nil }) th.AssertNoErr(t, err) th.CheckEquals(t, count, 1) }
func TestTenantsList(t *testing.T) { client, err := clients.NewIdentityV2Client() if err != nil { t.Fatalf("Unable to obtain an identity client: %v") } allPages, err := tenants.List(client, nil).AllPages() if err != nil { t.Fatalf("Unable to list tenants: %v", err) } allTenants, err := tenants.ExtractTenants(allPages) if err != nil { t.Fatalf("Unable to extract tenants: %v", err) } for _, tenant := range allTenants { PrintTenant(t, &tenant) } }
// FindTenant finds all tenants that the current authenticated client has access // to and returns the first one found. An error will be returned if the lookup // was unsuccessful. func FindTenant(t *testing.T, client *gophercloud.ServiceClient) (*tenants.Tenant, error) { var tenant *tenants.Tenant allPages, err := tenants.List(client, nil).AllPages() if err != nil { return tenant, err } allTenants, err := tenants.ExtractTenants(allPages) if err != nil { return tenant, err } for _, t := range allTenants { tenant = &t break } return tenant, nil }
// Convert tenantName to tenantID func (os *OpenStack) ToTenantID(tenant string) string { opts := tenants.ListOpts{} pager := tenants.List(os.identity, &opts) result := tenant pager.EachPage(func(page pagination.Page) (bool, error) { tenantList, err := tenants.ExtractTenants(page) if err != nil { return false, err } for _, t := range tenantList { if t.Name == tenant { result = t.ID } } return true, nil }) return result }