Merge pull request #48264 from johscheuer/set-quota-for-volumes
Automatic merge from submit-queue (batch tested with PRs 48264, 48324, 48125, 47944, 47489) Set quota for volumes **What this PR does / why we need it**: This PR allows users of the Quobyte Storage class to specify if automatically a Quota for the volume should be created. With a Quota a Quobyte volume can only grow in the specified size. **Special notes for your reviewer**: Update the Quobyte API version for the needed functionality.
This commit is contained in:
8
vendor/github.com/quobyte/api/README.md
generated
vendored
8
vendor/github.com/quobyte/api/README.md
generated
vendored
@@ -22,14 +22,14 @@ func main() {
|
||||
Name: "MyVolume",
|
||||
RootUserID: "root",
|
||||
RootGroupID: "root",
|
||||
ConfigurationName: "base",
|
||||
ConfigurationName: "BASE",
|
||||
}
|
||||
|
||||
volume_uuid, err := client.CreateVolume(req)
|
||||
volumeUUID, err := client.CreateVolume(req)
|
||||
if err != nil {
|
||||
log.Fatalf("Error:", err)
|
||||
}
|
||||
|
||||
log.Printf("%s", volume_uuid)
|
||||
log.Printf("%s", volumeUUID)
|
||||
}
|
||||
```
|
||||
```
|
||||
27
vendor/github.com/quobyte/api/quobyte.go
generated
vendored
27
vendor/github.com/quobyte/api/quobyte.go
generated
vendored
@@ -1,7 +1,9 @@
|
||||
// Package quobyte represents a golang API for the Quobyte Storage System
|
||||
package quobyte
|
||||
|
||||
import "net/http"
|
||||
import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type QuobyteClient struct {
|
||||
client *http.Client
|
||||
@@ -77,3 +79,26 @@ func (client *QuobyteClient) GetClientList(tenant string) (GetClientListResponse
|
||||
|
||||
return response, nil
|
||||
}
|
||||
|
||||
func (client *QuobyteClient) SetVolumeQuota(volumeUUID string, quotaSize uint64) error {
|
||||
request := &setQuotaRequest{
|
||||
Quotas: []*quota{
|
||||
"a{
|
||||
Consumer: []*consumingEntity{
|
||||
&consumingEntity{
|
||||
Type: "VOLUME",
|
||||
Identifier: volumeUUID,
|
||||
},
|
||||
},
|
||||
Limits: []*resource{
|
||||
&resource{
|
||||
Type: "LOGICAL_DISK_SPACE",
|
||||
Value: quotaSize,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return client.sendRequest("setQuota", request, nil)
|
||||
}
|
||||
|
||||
22
vendor/github.com/quobyte/api/types.go
generated
vendored
22
vendor/github.com/quobyte/api/types.go
generated
vendored
@@ -32,3 +32,25 @@ type Client struct {
|
||||
MountedUserName string `json:"mount_user_name,omitempty"`
|
||||
MountedVolumeUUID string `json:"mounted_volume_uuid,omitempty"`
|
||||
}
|
||||
|
||||
type consumingEntity struct {
|
||||
Type string `json:"type,omitempty"`
|
||||
Identifier string `json:"identifier,omitempty"`
|
||||
TenantID string `json:"tenant_id,omitempty"`
|
||||
}
|
||||
|
||||
type resource struct {
|
||||
Type string `json:"type,omitempty"`
|
||||
Value uint64 `json:"value,omitempty"`
|
||||
}
|
||||
|
||||
type quota struct {
|
||||
ID string `json:"id,omitempty"`
|
||||
Consumer []*consumingEntity `json:"consumer,omitempty"`
|
||||
Limits []*resource `json:"limits,omitempty"`
|
||||
Currentusage []*resource `json:"current_usage,omitempty"`
|
||||
}
|
||||
|
||||
type setQuotaRequest struct {
|
||||
Quotas []*quota `json:"quotas,omitempty"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user