| // +build acceptance identity |
| |
| package v2 |
| |
| import ( |
| "testing" |
| |
| "github.com/gophercloud/gophercloud" |
| "github.com/gophercloud/gophercloud/openstack" |
| th "github.com/gophercloud/gophercloud/testhelper" |
| ) |
| |
| func v2AuthOptions(t *testing.T) gophercloud.AuthOptions { |
| // Obtain credentials from the environment. |
| ao, err := openstack.AuthOptionsFromEnv() |
| th.AssertNoErr(t, err) |
| |
| // Trim out unused fields. Prefer authentication by API key to password. |
| ao.UserID, ao.DomainID, ao.DomainName = "", "", "" |
| if ao.APIKey != "" { |
| ao.Password = "" |
| } |
| |
| return ao |
| } |
| |
| func createClient(t *testing.T, auth bool) *gophercloud.ServiceClient { |
| ao := v2AuthOptions(t) |
| |
| provider, err := openstack.NewClient(ao.IdentityEndpoint) |
| th.AssertNoErr(t, err) |
| |
| if auth { |
| err = openstack.AuthenticateV2(provider, ao) |
| th.AssertNoErr(t, err) |
| } |
| |
| return openstack.NewIdentityV2(provider) |
| } |
| |
| func unauthenticatedClient(t *testing.T) *gophercloud.ServiceClient { |
| return createClient(t, false) |
| } |
| |
| func authenticatedClient(t *testing.T) *gophercloud.ServiceClient { |
| return createClient(t, true) |
| } |