Skip to content

Commit

Permalink
Merge pull request #2953 from stephenfin/remove-identity-extensions
Browse files Browse the repository at this point in the history
Remove 'openstack/identity/extensions' module
  • Loading branch information
mandre committed Apr 2, 2024
2 parents b8db9fe + 5d2ddba commit 830ec42
Show file tree
Hide file tree
Showing 61 changed files with 411 additions and 238 deletions.
9 changes: 9 additions & 0 deletions auth_options.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ type AuthScope struct {
DomainID string
DomainName string
System bool
TrustID string
}

// ToTokenV2CreateMap allows AuthOptions to satisfy the AuthOptionsBuilder
Expand Down Expand Up @@ -430,6 +431,14 @@ func (opts *AuthOptions) ToTokenV3ScopeMap() (map[string]interface{}, error) {
}, nil
}

if opts.Scope.TrustID != "" {
return map[string]interface{}{
"OS-TRUST:trust": map[string]string{
"id": opts.Scope.TrustID,
},
}, nil
}

if opts.Scope.ProjectName != "" {
// ProjectName provided: either DomainID or DomainName must also be supplied.
// ProjectID may not be supplied.
Expand Down
2 changes: 1 addition & 1 deletion internal/acceptance/openstack/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/credentials"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/ec2tokens"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/ec2tokens"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/tokens"
th "github.com/gophercloud/gophercloud/v2/testhelper"
)
Expand Down
2 changes: 1 addition & 1 deletion internal/acceptance/openstack/identity/v2/identity.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (

"github.com/gophercloud/gophercloud/v2"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v2/extensions/admin/roles"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v2/roles"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v2/tenants"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v2/users"
th "github.com/gophercloud/gophercloud/v2/testhelper"
Expand Down
2 changes: 1 addition & 1 deletion internal/acceptance/openstack/identity/v2/role_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (

"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v2/extensions/admin/roles"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v2/roles"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v2/users"
th "github.com/gophercloud/gophercloud/v2/testhelper"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/credentials"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/ec2tokens"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/ec2tokens"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/tokens"
th "github.com/gophercloud/gophercloud/v2/testhelper"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/ec2credentials"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/ec2credentials"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/tokens"
th "github.com/gophercloud/gophercloud/v2/testhelper"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"github.com/gophercloud/gophercloud/v2"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/federation"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/federation"
th "github.com/gophercloud/gophercloud/v2/testhelper"
)

Expand Down
2 changes: 1 addition & 1 deletion internal/acceptance/openstack/identity/v3/identity.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ import (
"github.com/gophercloud/gophercloud/v2"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/domains"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/trusts"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/groups"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/projects"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/regions"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/roles"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/services"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/trusts"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/users"
th "github.com/gophercloud/gophercloud/v2/testhelper"
)
Expand Down
2 changes: 1 addition & 1 deletion internal/acceptance/openstack/identity/v3/oauth1_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/oauth1"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/oauth1"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/tokens"
th "github.com/gophercloud/gophercloud/v2/testhelper"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/endpoints"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/projectendpoints"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/projectendpoints"
th "github.com/gophercloud/gophercloud/v2/testhelper"
)

Expand Down
2 changes: 1 addition & 1 deletion internal/acceptance/openstack/identity/v3/trusts_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import (
"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/trusts"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/roles"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/tokens"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/trusts"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/users"
th "github.com/gophercloud/gophercloud/v2/testhelper"
)
Expand Down
4 changes: 2 additions & 2 deletions openstack/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import (

"github.com/gophercloud/gophercloud/v2"
tokens2 "github.com/gophercloud/gophercloud/v2/openstack/identity/v2/tokens"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/ec2tokens"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/oauth1"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/ec2tokens"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/oauth1"
tokens3 "github.com/gophercloud/gophercloud/v2/openstack/identity/v3/tokens"
"github.com/gophercloud/gophercloud/v2/openstack/utils"
)
Expand Down
24 changes: 24 additions & 0 deletions openstack/identity/v2/extensions/requests.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package extensions

import (
"context"

"github.com/gophercloud/gophercloud/v2"
common "github.com/gophercloud/gophercloud/v2/openstack/common/extensions"
"github.com/gophercloud/gophercloud/v2/pagination"
)

// Get retrieves information for a specific extension using its alias.
func Get(ctx context.Context, c *gophercloud.ServiceClient, alias string) common.GetResult {
return common.Get(ctx, c, alias)
}

// List returns a Pager which allows you to iterate over the full collection of extensions.
// It does not accept query parameters.
func List(c *gophercloud.ServiceClient) pagination.Pager {
return common.List(c).WithPageCreator(func(r pagination.PageResult) pagination.Page {
return ExtensionPage{
ExtensionPage: common.ExtensionPage{SinglePageBase: pagination.SinglePageBase(r)},
}
})
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package extensions

import (
"context"

"github.com/gophercloud/gophercloud/v2"
common "github.com/gophercloud/gophercloud/v2/openstack/common/extensions"
"github.com/gophercloud/gophercloud/v2/pagination"
)
Expand Down Expand Up @@ -31,18 +28,3 @@ func ExtractExtensions(page pagination.Page) ([]common.Extension, error) {
err := page.(ExtensionPage).ExtractInto(&s)
return s.Extensions.Values, err
}

// Get retrieves information for a specific extension using its alias.
func Get(ctx context.Context, c *gophercloud.ServiceClient, alias string) common.GetResult {
return common.Get(ctx, c, alias)
}

// List returns a Pager which allows you to iterate over the full collection of extensions.
// It does not accept query parameters.
func List(c *gophercloud.ServiceClient) pagination.Pager {
return common.List(c).WithPageCreator(func(r pagination.PageResult) pagination.Page {
return ExtensionPage{
ExtensionPage: common.ExtensionPage{SinglePageBase: pagination.SinglePageBase(r)},
}
})
}
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ func List(client *gophercloud.ServiceClient) pagination.Pager {
// a user. This is confined to the scope of the user's tenant - so the tenant
// ID is a required argument.
func AddUser(ctx context.Context, client *gophercloud.ServiceClient, tenantID, userID, roleID string) (r UserRoleResult) {
resp, err := client.Put(ctx, userRoleURL(client, tenantID, userID, roleID), nil, nil, &gophercloud.RequestOpts{
resp, err := client.Put(ctx, userTenantRoleURL(client, tenantID, userID, roleID), nil, nil, &gophercloud.RequestOpts{
OkCodes: []int{200, 201},
})
_, r.Header, r.Err = gophercloud.ParseResponse(resp, err)
Expand All @@ -30,7 +30,7 @@ func AddUser(ctx context.Context, client *gophercloud.ServiceClient, tenantID, u
// from a user. This is confined to the scope of the user's tenant - so the
// tenant ID is a required argument.
func DeleteUser(ctx context.Context, client *gophercloud.ServiceClient, tenantID, userID, roleID string) (r UserRoleResult) {
resp, err := client.Delete(ctx, userRoleURL(client, tenantID, userID, roleID), nil)
resp, err := client.Delete(ctx, userTenantRoleURL(client, tenantID, userID, roleID), nil)
_, r.Header, r.Err = gophercloud.ParseResponse(resp, err)
return
}
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"context"
"testing"

"github.com/gophercloud/gophercloud/v2/openstack/identity/v2/extensions/admin/roles"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v2/roles"
"github.com/gophercloud/gophercloud/v2/pagination"
th "github.com/gophercloud/gophercloud/v2/testhelper"
"github.com/gophercloud/gophercloud/v2/testhelper/client"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ func rootURL(c *gophercloud.ServiceClient) string {
return c.ServiceURL(ExtPath, RolePath)
}

func userRoleURL(c *gophercloud.ServiceClient, tenantID, userID, roleID string) string {
func userTenantRoleURL(c *gophercloud.ServiceClient, tenantID, userID, roleID string) string {
return c.ServiceURL("tenants", tenantID, UserPath, userID, RolePath, ExtPath, roleID)
}
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"net/http"
"testing"

"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/ec2credentials"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/ec2credentials"
th "github.com/gophercloud/gophercloud/v2/testhelper"
"github.com/gophercloud/gophercloud/v2/testhelper/client"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"context"
"testing"

"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/ec2credentials"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/ec2credentials"
"github.com/gophercloud/gophercloud/v2/pagination"
th "github.com/gophercloud/gophercloud/v2/testhelper"
"github.com/gophercloud/gophercloud/v2/testhelper/client"
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"time"

"github.com/gophercloud/gophercloud/v2"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/ec2tokens"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/ec2tokens"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/tokens"
tokens_testing "github.com/gophercloud/gophercloud/v2/openstack/identity/v3/tokens/testing"
"github.com/gophercloud/gophercloud/v2/testhelper"
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"net/http"
"testing"

"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/federation"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/federation"
th "github.com/gophercloud/gophercloud/v2/testhelper"
"github.com/gophercloud/gophercloud/v2/testhelper/client"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"context"
"testing"

"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/federation"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/federation"
"github.com/gophercloud/gophercloud/v2/pagination"
th "github.com/gophercloud/gophercloud/v2/testhelper"
"github.com/gophercloud/gophercloud/v2/testhelper/client"
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"testing"
"time"

"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/oauth1"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/oauth1"
tokens "github.com/gophercloud/gophercloud/v2/openstack/identity/v3/tokens/testing"
"github.com/gophercloud/gophercloud/v2/testhelper"
"github.com/gophercloud/gophercloud/v2/testhelper/client"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"testing"
"time"

"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/oauth1"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/oauth1"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/tokens"
"github.com/gophercloud/gophercloud/v2/pagination"
th "github.com/gophercloud/gophercloud/v2/testhelper"
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"testing"

"github.com/gophercloud/gophercloud/v2"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/extensions/projectendpoints"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/projectendpoints"
"github.com/gophercloud/gophercloud/v2/pagination"
th "github.com/gophercloud/gophercloud/v2/testhelper"
"github.com/gophercloud/gophercloud/v2/testhelper/client"
Expand Down
1 change: 1 addition & 0 deletions openstack/identity/v3/tokens/requests.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ type Scope struct {
DomainID string
DomainName string
System bool
TrustID string
}

// AuthOptionsBuilder provides the ability for extensions to add additional
Expand Down
21 changes: 21 additions & 0 deletions openstack/identity/v3/tokens/results.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,18 @@ type Project struct {
Name string `json:"name"`
}

type TrustUser struct {
ID string `json:"id"`
}

// Trust provides information about trust with which User is authorized.
type Trust struct {
ID string `json:"id"`
Impersonation bool `json:"impersonation"`
TrusteeUserID TrustUser `json:"trustee_user"`
TrustorUserID TrustUser `json:"trustor_user"`
}

// commonResult is the response from a request. A commonResult has various
// methods which can be used to extract different details about the result.
type commonResult struct {
Expand Down Expand Up @@ -160,6 +172,15 @@ func (r commonResult) ExtractDomain() (*Domain, error) {
return s.Domain, err
}

// ExtractTrust returns Trust to which User is authorized.
func (r commonResult) ExtractTrust() (*Trust, error) {
var s struct {
Trust *Trust `json:"OS-TRUST:trust"`
}
err := r.ExtractInto(&s)
return s.Trust, err
}

// CreateResult is the response from a Create request. Use ExtractToken()
// to interpret it as a Token, or ExtractServiceCatalog() to interpret it
// as a service catalog.
Expand Down

0 comments on commit 830ec42

Please sign in to comment.