func tokenPost(t *testing.T, options gophercloud.AuthOptions, requestJSON string) tokens.CreateResult { th.SetupHTTP() defer th.TeardownHTTP() HandleTokenPost(t, requestJSON) return tokens.Create(client.ServiceClient(), options) }
func TestTokenValidate(t *testing.T) { client, err := clients.NewIdentityV2Client() if err != nil { t.Fatalf("Unable to obtain an identity client: %v", err) } authOptions, err := openstack.AuthOptionsFromEnv() if err != nil { t.Fatalf("Unable to obtain authentication options: %v", err) } result := tokens.Create(client, authOptions) token, err := result.ExtractToken() if err != nil { t.Fatalf("Unable to extract token: %v", err) } PrintToken(t, token) getResult := tokens.Get(client, token.ID) user, err := getResult.ExtractUser() if err != nil { t.Fatalf("Unable to extract user: %v", err) } PrintTokenUser(t, user) }
func TestTokenAuthenticate(t *testing.T) { client, err := clients.NewIdentityV2UnauthenticatedClient() if err != nil { t.Fatalf("Unable to obtain an identity client: %v", err) } authOptions, err := openstack.AuthOptionsFromEnv() if err != nil { t.Fatalf("Unable to obtain authentication options: %v", err) } result := tokens.Create(client, authOptions) token, err := result.ExtractToken() if err != nil { t.Fatalf("Unable to extract token: %v", err) } PrintToken(t, token) catalog, err := result.ExtractServiceCatalog() if err != nil { t.Fatalf("Unable to extract service catalog: %v", err) } for _, entry := range catalog.Entries { PrintCatalogEntry(t, &entry) } }
func tokenPostErr(t *testing.T, options gophercloud.AuthOptions, expectedErr error) { th.SetupHTTP() defer th.TeardownHTTP() HandleTokenPost(t, "") actualErr := tokens.Create(client.ServiceClient(), options).Err th.CheckDeepEquals(t, expectedErr, actualErr) }
func v2auth(client *gophercloud.ProviderClient, endpoint string, options gophercloud.AuthOptions, eo gophercloud.EndpointOpts) error { v2Client, err := NewIdentityV2(client, eo) if err != nil { return err } if endpoint != "" { v2Client.Endpoint = endpoint } v2Opts := tokens2.AuthOptions{ IdentityEndpoint: options.IdentityEndpoint, Username: options.Username, Password: options.Password, TenantID: options.TenantID, TenantName: options.TenantName, AllowReauth: options.AllowReauth, TokenID: options.TokenID, } result := tokens2.Create(v2Client, v2Opts) token, err := result.ExtractToken() if err != nil { return err } catalog, err := result.ExtractServiceCatalog() if err != nil { return err } if options.AllowReauth { client.ReauthFunc = func() error { client.TokenID = "" return v2auth(client, endpoint, options, eo) } } client.TokenID = token.ID client.EndpointLocator = func(opts gophercloud.EndpointOpts) (string, error) { return V2EndpointURL(catalog, opts) } return nil }