Documentation
¶
Overview ¶
Package projects provides interaction with Limes at the project hierarchical level.
Here is an example on how you would list all the projects in the current domain:
import (
"fmt"
"log"
"github.com/gophercloud/gophercloud/v2"
"github.com/gophercloud/gophercloud/v2/openstack/identity/v3/tokens"
"github.com/gophercloud/utils/v2/openstack/clientconfig"
"github.com/sapcc/gophercloud-sapcc/v2/clients"
"github.com/sapcc/gophercloud-sapcc/v2/resources/v1/projects"
)
func main() {
provider, err := clientconfig.AuthenticatedClient(nil)
if err != nil {
log.Fatalf("could not initialize openstack client: %v", err)
}
limesClient, err := clients.NewLimesV1(provider, gophercloud.EndpointOpts{})
if err != nil {
log.Fatalf("could not initialize Limes client: %v", err)
}
project, err := provider.GetAuthResult().(tokens.CreateResult).ExtractProject()
if err != nil {
log.Fatalf("could not get project from token: %v", err)
}
result := projects.List(limesClient, project.Domain.ID, projects.ListOpts{Detail: true})
if result.Err != nil {
log.Fatalf("could not get projects: %v", result.Err)
}
projectList, err := result.ExtractProjects()
if err != nil {
log.Fatalf("could not get projects: %v", err)
}
for _, project := range projectList {
fmt.Printf("%+v\n", project.Services)
}
}
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CommonResult ¶
type CommonResult struct {
gophercloud.Result
}
CommonResult is the result of a Get/List operation. Call its appropriate Extract method to interpret it as a Project or a slice of Projects.
func Get ¶
func Get(ctx context.Context, c *gophercloud.ServiceClient, domainID, projectID string, opts GetOptsBuilder) (r CommonResult)
Get retrieves details on a single project, by ID.
func List ¶
func List(ctx context.Context, c *gophercloud.ServiceClient, domainID string, opts ListOptsBuilder) (r CommonResult)
List enumerates the projects in a specific domain.
func (CommonResult) Extract ¶
func (r CommonResult) Extract() (*limesresources.ProjectReport, error)
Extract interprets a CommonResult as a Project.
func (CommonResult) ExtractProjects ¶
func (r CommonResult) ExtractProjects() ([]limesresources.ProjectReport, error)
ExtractProjects interprets a CommonResult as a slice of Projects.
type GetOpts ¶
type GetOpts struct {
Detail bool `q:"detail"`
Areas []string `q:"area"`
Services []limes.ServiceType `q:"service"`
Resources []limesresources.ResourceName `q:"resource"`
}
GetOpts contains parameters for filtering a Get request.
type GetOptsBuilder ¶
GetOptsBuilder allows extensions to add additional parameters to the Get request.
type ListOpts ¶
type ListOpts struct {
Detail bool `q:"detail"`
Areas []string `q:"area"`
Services []limes.ServiceType `q:"service"`
Resources []limesresources.ResourceName `q:"resource"`
}
ListOpts contains parameters for filtering a List request.
type ListOptsBuilder ¶
ListOptsBuilder allows extensions to add additional parameters to the List request.
type SyncResult ¶
type SyncResult struct {
gophercloud.ErrResult
}
SyncResult is the result of an Sync operation. Call its appropriate ExtractErr method to extract the error from the result.