qos

package
v0.22.0 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2021 License: Apache-2.0 Imports: 2 Imported by: 7

Documentation

Overview

Package qos provides information and interaction with the QoS specifications for the Openstack Blockstorage service.

Example to create a QoS specification

createOpts := qos.CreateOpts{
	Name:     "test",
	Consumer: qos.ConsumerFront,
	Specs: map[string]string{
		"read_iops_sec": "20000",
	},
}

test, err := qos.Create(client, createOpts).Extract()
if err != nil {
	log.Fatal(err)
}

fmt.Printf("QoS: %+v\n", test)

Example to delete a QoS specification

qosID := "d6ae28ce-fcb5-4180-aa62-d260a27e09ae"

deleteOpts := qos.DeleteOpts{
	Force: false,
}

err = qos.Delete(client, qosID, deleteOpts).ExtractErr()
if err != nil {
	log.Fatal(err)
}

Example to list QoS specifications

listOpts := qos.ListOpts{}

allPages, err := qos.List(client, listOpts).AllPages()
if err != nil {
	panic(err)
}

allQoS, err := qos.ExtractQoS(allPages)
if err != nil {
	panic(err)
}

for _, qos := range allQoS {
	fmt.Printf("List: %+v\n", qos)
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func List added in v0.19.0

List instructs OpenStack to provide a list of QoS. You may provide criteria by which List curtails its results for easier processing.

Types

type CreateOpts

type CreateOpts struct {
	// The name of the QoS spec
	Name string `json:"name"`
	// The consumer of the QoS spec. Possible values are
	// both, front-end, back-end.
	Consumer QoSConsumer `json:"consumer,omitempty"`
	// Specs is a collection of miscellaneous key/values used to set
	// specifications for the QoS
	Specs map[string]string `json:"-"`
}

CreateOpts contains options for creating a QoS specification. This object is passed to the qos.Create function.

func (CreateOpts) ToQoSCreateMap

func (opts CreateOpts) ToQoSCreateMap() (map[string]interface{}, error)

ToQoSCreateMap assembles a request body based on the contents of a CreateOpts.

type CreateOptsBuilder

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

type CreateResult

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

CreateResult contains the response body and error from a Create request.

func Create

func Create(client *gophercloud.ServiceClient, opts CreateOptsBuilder) (r CreateResult)

Create will create a new QoS based on the values in CreateOpts. To extract the QoS object from the response, call the Extract method on the CreateResult.

func (CreateResult) Extract

func (r CreateResult) Extract() (*QoS, error)

Extract will get the QoS object out of the commonResult object.

func (CreateResult) ExtractInto

func (r CreateResult) ExtractInto(qos interface{}) error

ExtractInto converts our response data into a QoS struct

type DeleteOpts

type DeleteOpts struct {
	// Delete a QoS specification even if it is in-use
	Force bool `q:"force"`
}

DeleteOpts contains options for deleting a QoS. This object is passed to the qos.Delete function.

func (DeleteOpts) ToQoSDeleteQuery

func (opts DeleteOpts) ToQoSDeleteQuery() (string, error)

ToQoSDeleteQuery formats a DeleteOpts into a query string.

type DeleteOptsBuilder

type DeleteOptsBuilder interface {
	ToQoSDeleteQuery() (string, error)
}

DeleteOptsBuilder allows extensions to add additional parameters to the Delete request.

type DeleteResult

type DeleteResult struct {
	gophercloud.ErrResult
}

DeleteResult contains the response body and error from a Delete request.

func Delete

func Delete(client *gophercloud.ServiceClient, id string, opts DeleteOptsBuilder) (r DeleteResult)

Delete will delete the existing QoS with the provided ID.

type ListOpts added in v0.19.0

type ListOpts struct {
	// Sort is Comma-separated list of sort keys and optional sort
	// directions in the form of < key > [: < direction > ]. A valid
	//direction is asc (ascending) or desc (descending).
	Sort string `q:"sort"`

	// Marker and Limit control paging.
	// Marker instructs List where to start listing from.
	Marker string `q:"marker"`

	// Limit instructs List to refrain from sending excessively large lists of
	// QoS.
	Limit int `q:"limit"`
}

func (ListOpts) ToQoSListQuery added in v0.19.0

func (opts ListOpts) ToQoSListQuery() (string, error)

ToQoSListQuery formats a ListOpts into a query string.

type ListOptsBuilder added in v0.19.0

type ListOptsBuilder interface {
	ToQoSListQuery() (string, error)
}

ListOptsBuilder allows extensions to add additional parameters to the List request.

type QoS

type QoS struct {
	// Name is the name of the QoS.
	Name string `json:"name"`
	// Unique identifier for the QoS.
	ID string `json:"id"`
	// Consumer of QoS
	Consumer string `json:"consumer"`
	// Arbitrary key-value pairs defined by the user.
	Specs map[string]string `json:"specs"`
}

QoS contains all the information associated with an OpenStack QoS specification.

func ExtractQoS added in v0.19.0

func ExtractQoS(r pagination.Page) ([]QoS, error)

ExtractQoS provides access to the list of qos in a page acquired from the List operation.

type QoSConsumer

type QoSConsumer string
const (
	ConsumerFront QoSConsumer = "front-end"
	ConsumberBack QoSConsumer = "back-end"
	ConsumerBoth  QoSConsumer = "both"
)

type QoSPage added in v0.19.0

type QoSPage struct {
	pagination.LinkedPageBase
}

func (QoSPage) IsEmpty added in v0.19.0

func (page QoSPage) IsEmpty() (bool, error)

IsEmpty determines if a QoSPage contains any results.

func (QoSPage) NextPageURL added in v0.19.0

func (page QoSPage) NextPageURL() (string, error)

NextPageURL uses the response's embedded link reference to navigate to the next page of results.

Directories

Path Synopsis
Package testing for qos_v3
Package testing for qos_v3

Jump to

Keyboard shortcuts

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