resourceclasses

package
v2.12.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2026 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package resourceclasses manages resource classes from the OpenStack Placement service.

Resource Class API requests are available starting from microversion 1.2.

Example to list resource classes

placementClient.Microversion = "1.2"

allPages, err := resourceclasses.List(placementClient).AllPages(context.TODO())
if err != nil {
	panic(err)
}

allResourceClasses, err := resourceclasses.ExtractResourceClasses(allPages)
if err != nil {
	panic(err)
}

for _, rc := range allResourceClasses {
	fmt.Printf("%+v\n", rc)
}

Example to Get a resource class

placementClient.Microversion = "1.2"

resourceClassName := "VCPU"
resourceClass, err := resourceclasses.Get(context.TODO(), placementClient, resourceClassName).Extract()
if err != nil {
	panic(err)
}

fmt.Printf("%+v\n", resourceClass)

Example to Create a resource class using POST

placementClient.Microversion = "1.2"

createOpts := resourceclasses.CreateOpts{
	Name: "CUSTOM_RESOURCE_CLASS",
}

err := resourceclasses.Create(context.TODO(), placementClient, createOpts).ExtractErr()
if err != nil {
	panic(err)
}

Example to ensure the existence of a resource class using PUT (idempotent creation)

placementClient.Microversion = "1.7"

err := resourceclasses.Update(context.TODO(), placementClient, "CUSTOM_RESOURCE_CLASS").ExtractErr()
if err != nil {
	panic(err)
}

Example to delete a resource class

placementClient.Microversion = "1.2"

err := resourceclasses.Delete(context.TODO(), placementClient, "CUSTOM_RESOURCE_CLASS").ExtractErr()
if err != nil {
	panic(err)
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func List

List retrieves a list of resource classes.

Types

type CreateOpts

type CreateOpts struct {
	Name string `json:"name" required:"true"`
}

CreateOpts represents the attributes of a new resource class.

func (CreateOpts) ToResourceClassCreateMap

func (opts CreateOpts) ToResourceClassCreateMap() (map[string]any, error)

ToResourceClassCreateMap formats a CreateOpts into a create request.

type CreateOptsBuilder

type CreateOptsBuilder interface {
	ToResourceClassCreateMap() (map[string]any, error)
}

CreateOptsBuilder allows extensions to add additional parameters to the Create request.

type CreateResult

type CreateResult struct {
	gophercloud.ErrResult
}

CreateResult is the response from a Create operation. Call its ExtractErr to determine if the request succeeded or failed.

func Create

Create creates a new resource class.

type DeleteResult

type DeleteResult struct {
	gophercloud.ErrResult
}

DeleteResult is the response from a Delete operation. Call its ExtractErr to determine if the request succeeded or failed.

func Delete

func Delete(ctx context.Context, client *gophercloud.ServiceClient, name string) (r DeleteResult)

Delete deletes the resource class with the provided name.

type GetResult

type GetResult struct {
	// contains filtered or unexported fields
}

GetResult represents the result of a Get operation. Call its Extract method to interpret it as a ResourceClass.

func Get

func Get(ctx context.Context, client *gophercloud.ServiceClient, name string) (r GetResult)

Get retrieves the resource class with the provided name.

func (GetResult) Extract

func (r GetResult) Extract() (*ResourceClass, error)

Extract interprets any resourceClassResult-base result as a ResourceClass.

type Link struct {
	Href string `json:"href"`
	Rel  string `json:"rel"`
}

type ResourceClass

type ResourceClass struct {
	Name string `json:"name"`

	// Links is a list of links associated with the resource class.
	Links []Link `json:"links"`
}

func ExtractResourceClasses

func ExtractResourceClasses(p pagination.Page) ([]ResourceClass, error)

ExtractResourceClasses takes a List result and extracts the collection of resource classes returned by the API.

type ResourceClassesPage

type ResourceClassesPage struct {
	pagination.SinglePageBase
}

ResourceClassesPage contains a single page of all resource classes from a List call.

func (ResourceClassesPage) IsEmpty

func (r ResourceClassesPage) IsEmpty() (bool, error)

IsEmpty satisfies the IsEmpty method of the Page interface. It returns true if a List contains no results.

type UpdateResult

type UpdateResult struct {
	gophercloud.ErrResult
}

UpdateResult is the response from an Update operation. Call its ExtractErr to determine if the request succeeded or failed.

func Update

func Update(ctx context.Context, client *gophercloud.ServiceClient, name string) (r UpdateResult)

Update ensures the existence of a custom resource class with the provided name (can be safely called multiple times).

Directories

Path Synopsis
Package testing contains resourceclasses unit tests.
Package testing contains resourceclasses unit tests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL