 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Overview ¶
Package quotasets enables retrieving and managing Compute quotas.
Example to Get a Quota Set
quotaset, err := quotasets.Get(computeClient, "tenant-id").Extract()
if err != nil {
	panic(err)
}
fmt.Printf("%+v\n", quotaset)
Example to Get a Detailed Quota Set
quotaset, err := quotasets.GetDetail(computeClient, "tenant-id").Extract()
if err != nil {
	panic(err)
}
fmt.Printf("%+v\n", quotaset)
Example to Update a Quota Set
updateOpts := quotasets.UpdateOpts{
	FixedIPs: gophercloud.IntToPointer(100),
	Cores:    gophercloud.IntToPointer(64),
}
quotaset, err := quotasets.Update(computeClient, "tenant-id", updateOpts).Extract()
if err != nil {
	panic(err)
}
fmt.Printf("%+v\n", quotaset)
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Absolute ¶
type Absolute struct {
	MaxServerMeta           int `json:"maxServerMeta"`
	MaxPersonality          int `json:"maxPersonality"`
	TotalServerGroupsUsed   int `json:"totalServerGroupsUsed"`
	MaxImageMeta            int `json:"maxImageMeta"`
	MaxPersonalitySize      int `json:"maxPersonalitySize"`
	MaxTotalRAMSize         int `json:"maxTotalRAMSize"`
	MaxTotalKeypairs        int `json:"maxTotalKeypairs"`
	MaxSecurityGroupRules   int `json:"maxSecurityGroupRules"`
	MaxServerGroups         int `json:"maxServerGroups"`
	TotalCoresUsed          int `json:"totalCoresUsed"`
	TotalRAMUsed            int `json:"totalRAMUsed"`
	MaxSecurityGroups       int `json:"maxSecurityGroups"`
	TotalFloatingIpsUsed    int `json:"totalFloatingIpsUsed"`
	TotalInstancesUsed      int `json:"totalInstancesUsed"`
	TotalSecurityGroupsUsed int `json:"totalSecurityGroupsUsed"`
	MaxTotalFloatingIps     int `json:"maxTotalFloatingIps"`
	MaxTotalInstances       int `json:"maxTotalInstances"`
	MaxTotalCores           int `json:"maxTotalCores"`
	MaxServerGroupMembers   int `json:"maxServerGroupMembers"`
}
    type DeleteResult ¶
type DeleteResult struct {
	// contains filtered or unexported fields
}
    DeleteResult is the response from a Delete operation. Call its Extract method to interpret it as a QuotaSet.
func Delete ¶
func Delete(client *gophercloud.ServiceClient, tenantID string) (res DeleteResult)
Resets the quotas for the given tenant to their default values.
type GetDefaultResult ¶
type GetDefaultResult struct {
	// contains filtered or unexported fields
}
    func GetDefault ¶
func GetDefault(client *gophercloud.ServiceClient, ProjectID string) GetDefaultResult
func (GetDefaultResult) Extract ¶
func (r GetDefaultResult) Extract() (QuotaSet, error)
type GetDetailResult ¶
type GetDetailResult struct {
	// contains filtered or unexported fields
}
    GetDetailResult is the response from a Get operation. Call its Extract method to interpret it as a QuotaSet.
func GetDetail ¶
func GetDetail(client *gophercloud.ServiceClient, tenantID string) GetDetailResult
GetDetail returns detailed public data about a previously created QuotaSet.
func (GetDetailResult) Extract ¶
func (r GetDetailResult) Extract() (QuotaDetailSet, error)
Extract is a method that attempts to interpret any QuotaDetailSet resource response as a set of QuotaDetailSet structs.
type GetLimitResult ¶
type GetLimitResult struct {
	// contains filtered or unexported fields
}
    func GetLimits ¶
func GetLimits(client *gophercloud.ServiceClient) GetLimitResult
GetLimits returns limits public data about a previously created QuotaSet.
func (GetLimitResult) Extract ¶
func (r GetLimitResult) Extract() (Limits, error)
type GetResult ¶
type GetResult struct {
	// contains filtered or unexported fields
}
    GetResult is the response from a Get operation. Call its Extract method to interpret it as a QuotaSet.
func Get ¶
func Get(client *gophercloud.ServiceClient, tenantID string) GetResult
Get returns public data about a previously created QuotaSet.
type QuotaDefaultSet ¶
type QuotaDefaultSet struct {
	// ID is the tenant ID associated with this QuotaDetailSet.
	ID string `json:"id"`
	// FixedIPs is number of fixed ips alloted this QuotaDetailSet.
	FixedIPs QuotaDetail `json:"fixed_ips"`
	// FloatingIPs is number of floating ips alloted this QuotaDetailSet.
	FloatingIPs QuotaDetail `json:"floating_ips"`
	// InjectedFileContentBytes is the allowed bytes for each injected file.
	InjectedFileContentBytes QuotaDetail `json:"injected_file_content_bytes"`
	// InjectedFilePathBytes is allowed bytes for each injected file path.
	InjectedFilePathBytes QuotaDetail `json:"injected_file_path_bytes"`
	// InjectedFiles is the number of injected files allowed for each project.
	InjectedFiles QuotaDetail `json:"injected_files"`
	// KeyPairs is number of ssh keypairs.
	KeyPairs QuotaDetail `json:"key_pairs"`
	// MetadataItems is number of metadata items allowed for each instance.
	MetadataItems QuotaDetail `json:"metadata_items"`
	// RAM is megabytes allowed for each instance.
	RAM QuotaDetail `json:"ram"`
	// SecurityGroupRules is number of security group rules allowed for each
	// security group.
	SecurityGroupRules QuotaDetail `json:"security_group_rules"`
	// SecurityGroups is the number of security groups allowed for each project.
	SecurityGroups QuotaDetail `json:"security_groups"`
	// Cores is number of instance cores allowed for each project.
	Cores QuotaDetail `json:"cores"`
	// Instances is number of instances allowed for each project.
	Instances QuotaDetail `json:"instances"`
	// ServerGroups is the number of ServerGroups allowed for the project.
	ServerGroups QuotaDetail `json:"server_groups"`
	// ServerGroupMembers is the number of members for each ServerGroup.
	ServerGroupMembers QuotaDetail `json:"server_group_members"`
}
    type QuotaDetail ¶
type QuotaDetail struct {
	// InUse is the current number of provisioned/allocated resources of the
	// given type.
	InUse int `json:"in_use"`
	// 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 compute usage.
type QuotaDetailSet ¶
type QuotaDetailSet struct {
	// ID is the tenant ID associated with this QuotaDetailSet.
	ID string `json:"id"`
	// FixedIPs is number of fixed ips alloted this QuotaDetailSet.
	FixedIPs QuotaDetail `json:"fixed_ips"`
	// FloatingIPs is number of floating ips alloted this QuotaDetailSet.
	FloatingIPs QuotaDetail `json:"floating_ips"`
	// InjectedFileContentBytes is the allowed bytes for each injected file.
	InjectedFileContentBytes QuotaDetail `json:"injected_file_content_bytes"`
	// InjectedFilePathBytes is allowed bytes for each injected file path.
	InjectedFilePathBytes QuotaDetail `json:"injected_file_path_bytes"`
	// InjectedFiles is the number of injected files allowed for each project.
	InjectedFiles QuotaDetail `json:"injected_files"`
	// KeyPairs is number of ssh keypairs.
	KeyPairs QuotaDetail `json:"key_pairs"`
	// MetadataItems is number of metadata items allowed for each instance.
	MetadataItems QuotaDetail `json:"metadata_items"`
	// RAM is megabytes allowed for each instance.
	RAM QuotaDetail `json:"ram"`
	// SecurityGroupRules is number of security group rules allowed for each
	// security group.
	SecurityGroupRules QuotaDetail `json:"security_group_rules"`
	// SecurityGroups is the number of security groups allowed for each project.
	SecurityGroups QuotaDetail `json:"security_groups"`
	// Cores is number of instance cores allowed for each project.
	Cores QuotaDetail `json:"cores"`
	// Instances is number of instances allowed for each project.
	Instances QuotaDetail `json:"instances"`
	// ServerGroups is the number of ServerGroups allowed for the project.
	ServerGroups QuotaDetail `json:"server_groups"`
	// ServerGroupMembers is the number of members for each ServerGroup.
	ServerGroupMembers QuotaDetail `json:"server_group_members"`
}
    QuotaDetailSet represents details of both operational limits of compute resources and the current usage of those resources.
type QuotaSet ¶
type QuotaSet struct {
	// ID is tenant associated with this QuotaSet.
	ID string `json:"id"`
	// FixedIPs is number of fixed ips alloted this QuotaSet.
	FixedIPs int `json:"fixed_ips"`
	// FloatingIPs is number of floating ips alloted this QuotaSet.
	FloatingIPs int `json:"floating_ips"`
	// InjectedFileContentBytes is the allowed bytes for each injected file.
	InjectedFileContentBytes int `json:"injected_file_content_bytes"`
	// InjectedFilePathBytes is allowed bytes for each injected file path.
	InjectedFilePathBytes int `json:"injected_file_path_bytes"`
	// InjectedFiles is the number of injected files allowed for each project.
	InjectedFiles int `json:"injected_files"`
	// KeyPairs is number of ssh keypairs.
	KeyPairs int `json:"key_pairs"`
	// MetadataItems is number of metadata items allowed for each instance.
	MetadataItems int `json:"metadata_items"`
	// RAM is megabytes allowed for each instance.
	RAM int `json:"ram"`
	// SecurityGroupRules is number of security group rules allowed for each
	// security group.
	SecurityGroupRules int `json:"security_group_rules"`
	// SecurityGroups is the number of security groups allowed for each project.
	SecurityGroups int `json:"security_groups"`
	// Cores is number of instance cores allowed for each project.
	Cores int `json:"cores"`
	// Instances is number of instances allowed for each project.
	Instances int `json:"instances"`
	// ServerGroups is the number of ServerGroups allowed for the project.
	ServerGroups int `json:"server_groups"`
	// ServerGroupMembers is the number of members for each ServerGroup.
	ServerGroupMembers int `json:"server_group_members"`
}
    QuotaSet is a set of operational limits that allow for control of compute usage.
func ExtractQuotaSets ¶
func ExtractQuotaSets(r pagination.Page) ([]QuotaSet, error)
ExtractQuotaSets interprets a page of results as a slice of QuotaSets.
type QuotaSetPage ¶
type QuotaSetPage struct {
	pagination.SinglePageBase
}
    QuotaSetPage stores a single page of all QuotaSet results from a List call.
func (QuotaSetPage) IsEmpty ¶
func (page QuotaSetPage) IsEmpty() (bool, error)
IsEmpty determines whether or not a QuotaSetsetPage is empty.
type UpdateOpts ¶
type UpdateOpts struct {
	// FixedIPs is number of fixed ips alloted this quota_set.
	FixedIPs *int `json:"fixed_ips,omitempty"`
	// FloatingIPs is number of floating ips alloted this quota_set.
	FloatingIPs *int `json:"floating_ips,omitempty"`
	// InjectedFileContentBytes is content bytes allowed for each injected file.
	InjectedFileContentBytes *int `json:"injected_file_content_bytes,omitempty"`
	// InjectedFilePathBytes is allowed bytes for each injected file path.
	InjectedFilePathBytes *int `json:"injected_file_path_bytes,omitempty"`
	// InjectedFiles is injected files allowed for each project.
	InjectedFiles *int `json:"injected_files,omitempty"`
	// KeyPairs is number of ssh keypairs.
	KeyPairs *int `json:"key_pairs,omitempty"`
	// MetadataItems is number of metadata items allowed for each instance.
	MetadataItems *int `json:"metadata_items,omitempty"`
	// RAM is megabytes allowed for each instance.
	RAM *int `json:"ram,omitempty"`
	// SecurityGroupRules is rules allowed for each security group.
	SecurityGroupRules *int `json:"security_group_rules,omitempty"`
	// SecurityGroups security groups allowed for each project.
	SecurityGroups *int `json:"security_groups,omitempty"`
	// Cores is number of instance cores allowed for each project.
	Cores *int `json:"cores,omitempty"`
	// Instances is number of instances allowed for each project.
	Instances *int `json:"instances,omitempty"`
	// Number of ServerGroups allowed for the project.
	ServerGroups *int `json:"server_groups,omitempty"`
	// Max number of Members for each ServerGroup.
	ServerGroupMembers *int `json:"server_group_members,omitempty"`
	// Force will update the quotaset even if the quota has already been used
	// and the reserved quota exceeds the new quota.
	Force bool `json:"force,omitempty"`
}
    Options for Updating the quotas of a Tenant. All int-values are pointers so they can be nil if they are not needed. You can use gopercloud.IntToPointer() for convenience
func (UpdateOpts) ToComputeQuotaUpdateMap ¶
func (opts UpdateOpts) ToComputeQuotaUpdateMap() (map[string]interface{}, error)
ToComputeQuotaUpdateMap builds the update options into a serializable format.
type UpdateOptsBuilder ¶
type UpdateOptsBuilder interface {
	// Extra specific name to prevent collisions with interfaces for other quotas
	// (e.g. neutron)
	ToComputeQuotaUpdateMap() (map[string]interface{}, error)
}
    UpdateOptsBuilder enables extensins to add parameters to the update request.
type UpdateResult ¶
type UpdateResult struct {
	// contains filtered or unexported fields
}
    UpdateResult is the response from a Update operation. Call its Extract method to interpret it as a QuotaSet.
func Update ¶
func Update(client *gophercloud.ServiceClient, tenantID string, opts UpdateOptsBuilder) (res UpdateResult)
Updates the quotas for the given tenantID and returns the new QuotaSet.