Help us shape the future of Go! Take the 2026 Go Developer Survey

quotas

package
v0.24.3 Latest Latest
Warning

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

Go to latest
Published: Jan 6, 2022 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package quotas provides the ability to retrieve and manage Networking quotas through the Neutron API.

Example to Get project quotas

projectID = "23d5d3f79dfa4f73b72b8b0b0063ec55"
quotasInfo, err := quotas.Get(networkClient, projectID).Extract()
if err != nil {
    log.Fatal(err)
}

fmt.Printf("quotas: %#v\n", quotasInfo)

Example to Get a Detailed Quota Set

projectID = "23d5d3f79dfa4f73b72b8b0b0063ec55"
quotasInfo, err := quotas.GetDetail(networkClient, projectID).Extract()
if err != nil {
    log.Fatal(err)
}

fmt.Printf("quotas: %#v\n", quotasInfo)

Example to Update project quotas

projectID = "23d5d3f79dfa4f73b72b8b0b0063ec55"

updateOpts := quotas.UpdateOpts{
    FloatingIP:        gophercloud.IntToPointer(0),
    Network:           gophercloud.IntToPointer(-1),
    Port:              gophercloud.IntToPointer(5),
    RBACPolicy:        gophercloud.IntToPointer(10),
    Router:            gophercloud.IntToPointer(15),
    SecurityGroup:     gophercloud.IntToPointer(20),
    SecurityGroupRule: gophercloud.IntToPointer(-1),
    Subnet:            gophercloud.IntToPointer(25),
    SubnetPool:        gophercloud.IntToPointer(0),
    Trunk:             gophercloud.IntToPointer(0),
}
quotasInfo, err := quotas.Update(networkClient, projectID)
if err != nil {
    log.Fatal(err)
}

fmt.Printf("quotas: %#v\n", quotasInfo)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GetDetailResult

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

GetDetailResult represents the detailed result of a get operation. Call its Extract method to interpret it as a Quota.

func GetDetail

func GetDetail(client *gophercloud.ServiceClient, projectID string) (r GetDetailResult)

GetDetail returns detailed Networking Quotas for a project.

func (GetDetailResult) Extract

func (r GetDetailResult) Extract() (*QuotaDetailSet, error)

Extract is a function that accepts a result and extracts a QuotaDetailSet resource.

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 Quota.

func Get

func Get(client *gophercloud.ServiceClient, projectID string) (r GetResult)

Get returns Networking Quotas for a project.

func (GetResult) Extract

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

Extract is a function that accepts a result and extracts a Quota resource.

type Quota

type Quota struct {
	// FloatingIP represents a number of floating IPs. A "-1" value means no limit.
	FloatingIP int `json:"floatingip"`

	// Network represents a number of networks. A "-1" value means no limit.
	Network int `json:"network"`

	// Port represents a number of ports. A "-1" value means no limit.
	Port int `json:"port"`

	// RBACPolicy represents a number of RBAC policies. A "-1" value means no limit.
	RBACPolicy int `json:"rbac_policy"`

	// Router represents a number of routers. A "-1" value means no limit.
	Router int `json:"router"`

	// SecurityGroup represents a number of security groups. A "-1" value means no limit.
	SecurityGroup int `json:"security_group"`

	// SecurityGroupRule represents a number of security group rules. A "-1" value means no limit.
	SecurityGroupRule int `json:"security_group_rule"`

	// Subnet represents a number of subnets. A "-1" value means no limit.
	Subnet int `json:"subnet"`

	// SubnetPool represents a number of subnet pools. A "-1" value means no limit.
	SubnetPool int `json:"subnetpool"`

	// Trunk represents a number of trunks. A "-1" value means no limit.
	Trunk int `json:"trunk"`
}

Quota contains Networking quotas for a project.

type QuotaDetail

type QuotaDetail struct {
	// Used is the current number of provisioned/allocated resources of the
	// given type.
	Used int `json:"used"`

	// Reserved is a transitional state when a claim against quota has been made
	// but the resource is not yet fully online.
	Reserved int `json:"reserved"`

	// Limit is the maximum number of a given resource that can be
	// allocated/provisioned.  This is what "quota" usually refers to.
	Limit int `json:"limit"`
}

QuotaDetail is a set of details about a single operational limit that allows for control of networking usage.

func (*QuotaDetail) UnmarshalJSON

func (q *QuotaDetail) UnmarshalJSON(b []byte) error

UnmarshalJSON overrides the default unmarshalling function to accept Reserved as a string.

Due to a bug in Neutron, under some conditions Reserved is returned as a string.

This method is left for compatibility with unpatched versions of Neutron.

cf. https://bugs.launchpad.net/neutron/+bug/1918565

type QuotaDetailSet

type QuotaDetailSet struct {
	// FloatingIP represents a number of floating IPs. A "-1" value means no limit.
	FloatingIP QuotaDetail `json:"floatingip"`

	// Network represents a number of networks. A "-1" value means no limit.
	Network QuotaDetail `json:"network"`

	// Port represents a number of ports. A "-1" value means no limit.
	Port QuotaDetail `json:"port"`

	// RBACPolicy represents a number of RBAC policies. A "-1" value means no limit.
	RBACPolicy QuotaDetail `json:"rbac_policy"`

	// Router represents a number of routers. A "-1" value means no limit.
	Router QuotaDetail `json:"router"`

	// SecurityGroup represents a number of security groups. A "-1" value means no limit.
	SecurityGroup QuotaDetail `json:"security_group"`

	// SecurityGroupRule represents a number of security group rules. A "-1" value means no limit.
	SecurityGroupRule QuotaDetail `json:"security_group_rule"`

	// Subnet represents a number of subnets. A "-1" value means no limit.
	Subnet QuotaDetail `json:"subnet"`

	// SubnetPool represents a number of subnet pools. A "-1" value means no limit.
	SubnetPool QuotaDetail `json:"subnetpool"`

	// Trunk represents a number of trunks. A "-1" value means no limit.
	Trunk QuotaDetail `json:"trunk"`
}

QuotaDetailSet represents details of both operational limits of Networking resources for a project and the current usage of those resources.

type UpdateOpts

type UpdateOpts struct {
	// FloatingIP represents a number of floating IPs. A "-1" value means no limit.
	FloatingIP *int `json:"floatingip,omitempty"`

	// Network represents a number of networks. A "-1" value means no limit.
	Network *int `json:"network,omitempty"`

	// Port represents a number of ports. A "-1" value means no limit.
	Port *int `json:"port,omitempty"`

	// RBACPolicy represents a number of RBAC policies. A "-1" value means no limit.
	RBACPolicy *int `json:"rbac_policy,omitempty"`

	// Router represents a number of routers. A "-1" value means no limit.
	Router *int `json:"router,omitempty"`

	// SecurityGroup represents a number of security groups. A "-1" value means no limit.
	SecurityGroup *int `json:"security_group,omitempty"`

	// SecurityGroupRule represents a number of security group rules. A "-1" value means no limit.
	SecurityGroupRule *int `json:"security_group_rule,omitempty"`

	// Subnet represents a number of subnets. A "-1" value means no limit.
	Subnet *int `json:"subnet,omitempty"`

	// SubnetPool represents a number of subnet pools. A "-1" value means no limit.
	SubnetPool *int `json:"subnetpool,omitempty"`

	// Trunk represents a number of trunks. A "-1" value means no limit.
	Trunk *int `json:"trunk,omitempty"`
}

UpdateOpts represents options used to update the Networking Quotas.

func (UpdateOpts) ToQuotaUpdateMap

func (opts UpdateOpts) ToQuotaUpdateMap() (map[string]interface{}, error)

ToQuotaUpdateMap builds a request body from UpdateOpts.

type UpdateOptsBuilder

type UpdateOptsBuilder interface {
	ToQuotaUpdateMap() (map[string]interface{}, error)
}

UpdateOptsBuilder allows extensions to add additional parameters to the Update request.

type UpdateResult

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

UpdateResult represents the result of an update operation. Call its Extract method to interpret it as a Quota.

func Update

func Update(c *gophercloud.ServiceClient, projectID string, opts UpdateOptsBuilder) (r UpdateResult)

Update accepts a UpdateOpts struct and updates an existing Networking Quotas using the values provided.

func (UpdateResult) Extract

func (r UpdateResult) Extract() (*Quota, error)

Extract is a function that accepts a result and extracts a Quota resource.

Directories

Path Synopsis
quotas unit tests
quotas unit tests

Jump to

Keyboard shortcuts

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