diff --git a/api-ref/source/parameters.yaml b/api-ref/source/parameters.yaml index 9e6a48e087..b16032bb26 100644 --- a/api-ref/source/parameters.yaml +++ b/api-ref/source/parameters.yaml @@ -1662,6 +1662,20 @@ os-share-type-access:is_public: required: false type: boolean max_version: 2.6 +perShareGigabytes: + description: | + The number of gigabytes per share allowed in a project. + in: body + required: true + type: integer + min_version: 2.62 +perShareGigabytesOptional: + description: | + The number of gigabytes per share allowed in a project. + in: body + required: false + type: integer + min_version: 2.62 pool: description: | The pool name for the back end. @@ -1799,6 +1813,28 @@ quota_gigabytes_request: in: body required: false type: integer +quota_per_share_gigabytes: + description: | + The number of gigabytes per share allowed for each project. + in: body + required: true + min_version: 2.62 + type: integer +quota_per_share_gigabytes_detail: + description: | + The limit, in_use, reserved number of per share gigabytes + for each project. + in: body + min_version: 2.62 + required: true + type: object +quota_per_share_gigabytes_request: + description: | + The number of gigabytes per share allowed for each project. + in: body + min_version: 2.62 + required: false + type: integer quota_project_id: description: | The ID of the project the quota pertains to. diff --git a/api-ref/source/quota-classes.inc b/api-ref/source/quota-classes.inc index aa5d985597..f7e3a4f460 100644 --- a/api-ref/source/quota-classes.inc +++ b/api-ref/source/quota-classes.inc @@ -9,6 +9,8 @@ Quota classes can be shown and updated for a project. .. important:: Share replicas and replica gigabytes were added to quota management APIs in API version 2.53. + Per share gigabytes was added to quota management APIs in API + version 2.62. Show quota classes for a project @@ -56,6 +58,7 @@ Response Parameters - share_networks: maxTotalShareNetworks - share_replicas: maxTotalShareReplicas - replica_gigabytes: maxTotalReplicaGigabytes + - per_share_gigabytes: perShareGigabytes Response Example ---------------- @@ -99,6 +102,7 @@ Request - share-networks: maxTotalShareNetworksOptional - share-replicas: maxTotalShareReplicasOptional - replica-gigabytes: maxTotalReplicaGigabytesOptional + - per-share-gigabytes: perShareGigabytesOptional Request Example --------------- @@ -122,6 +126,7 @@ Response Parameters - share_networks: maxTotalShareNetworks - share_replicas: maxTotalShareReplicas - replica_gigabytes: maxTotalReplicaGigabytes + - per_share_gigabytes: perShareGigabytes Response Example ---------------- diff --git a/api-ref/source/quota-sets.inc b/api-ref/source/quota-sets.inc index 7c2571752a..837c95fa75 100644 --- a/api-ref/source/quota-sets.inc +++ b/api-ref/source/quota-sets.inc @@ -22,6 +22,7 @@ Provides quotas management support. - ``share_group_snapshots`` (since API version 2.40) - ``share_replicas`` (since API version 2.53) - ``replica_gigabytes`` (since API version 2.53) + - ``per_share_gigabytes`` (since API version 2.62) Share groups and share group snapshots were added to quota management APIs in API version 2.40. @@ -29,6 +30,9 @@ Provides quotas management support. Share replicas and replica gigabytes were added to quota management APIs in API version 2.53. + Per share gigabytes was added to quota management APIs in API + version 2.62. + Show default quota set ====================== @@ -75,6 +79,7 @@ Response parameters - share_networks: quota_share_networks_default - share_replicas: quota_share_replicas - replica_gigabytes: quota_replica_gigabytes + - per_share_gigabytes: quota_per_share_gigabytes Response example ---------------- @@ -133,6 +138,7 @@ Response parameters - share_group_snapshots: quota_share_group_snapshots - share_replicas: quota_share_replicas - replica_gigabytes: quota_replica_gigabytes + - per_share_gigabytes: quota_per_share_gigabytes Response example ---------------- @@ -193,6 +199,7 @@ Response parameters - share_group_snapshots: quota_share_group_snapshots_detail - share_replicas: quota_share_replicas_detail - replica_gigabytes: quota_replica_gigabytes_detail + - per_share_gigabytes: quota_per_share_gigabytes_detail Response example ---------------- @@ -245,6 +252,7 @@ Request - share_type: share_type_for_quota - share_replicas: quota_share_replicas_request - replica_gigabytes: quota_replica_gigabytes_request + - per_share_gigabytes: quota_per_share_gigabytes_request Request example --------------- @@ -268,6 +276,7 @@ Response parameters - share_group_snapshots: quota_share_group_snapshots - share_replicas: quota_share_replicas - replica_gigabytes: quota_replica_gigabytes + - per_share_gigabytes: quota_per_share_gigabytes Response example ---------------- diff --git a/api-ref/source/samples/quota-classes-show-response.json b/api-ref/source/samples/quota-classes-show-response.json index f640aa2bc4..54d4242b55 100644 --- a/api-ref/source/samples/quota-classes-show-response.json +++ b/api-ref/source/samples/quota-classes-show-response.json @@ -9,6 +9,7 @@ "id": "default", "share_networks": 10, "share_replicas": 100, - "replica_gigabytes": 1000 + "replica_gigabytes": 1000, + "per_share_gigabytes": -1 } } diff --git a/api-ref/source/samples/quota-classes-update-response.json b/api-ref/source/samples/quota-classes-update-response.json index fd1d13b899..87fe1db420 100644 --- a/api-ref/source/samples/quota-classes-update-response.json +++ b/api-ref/source/samples/quota-classes-update-response.json @@ -8,6 +8,7 @@ "shares": 50, "share_networks": 10, "share_replicas": 100, - "replica_gigabytes": 1000 + "replica_gigabytes": 1000, + "per_share_gigabytes": -1 } } diff --git a/api-ref/source/samples/quota-show-detail-response.json b/api-ref/source/samples/quota-show-detail-response.json index 6f0c2e9b0a..53b3984b35 100644 --- a/api-ref/source/samples/quota-show-detail-response.json +++ b/api-ref/source/samples/quota-show-detail-response.json @@ -27,6 +27,10 @@ "reserved": 0}, "replica_gigabytes": {"in_use": 0, "limit": 1000, - "reserved": 0} + "reserved": 0}, + "per_share_gigabytes": {"in_use": 0, + "limit": -1, + "reserved": 0} + } } diff --git a/api-ref/source/samples/quota-show-response.json b/api-ref/source/samples/quota-show-response.json index 8331d93aad..6f985a11b6 100644 --- a/api-ref/source/samples/quota-show-response.json +++ b/api-ref/source/samples/quota-show-response.json @@ -9,6 +9,7 @@ "share_groups": 10, "share_group_snapshots": 10, "share_replicas": 100, - "replica_gigabytes": 1000 + "replica_gigabytes": 1000, + "per_share_gigabytes": -1 } } diff --git a/api-ref/source/samples/quota-update-request.json b/api-ref/source/samples/quota-update-request.json index d860206e6d..382052a1a0 100644 --- a/api-ref/source/samples/quota-update-request.json +++ b/api-ref/source/samples/quota-update-request.json @@ -3,6 +3,7 @@ "snapshot_gigabytes": 999, "snapshots": 49, "share_networks": 9, - "share_replicas": 89 + "share_replicas": 89, + "per_share_gigabytes": 5 } } diff --git a/api-ref/source/samples/quota-update-response.json b/api-ref/source/samples/quota-update-response.json index 6c26323f12..29e73d8a9d 100644 --- a/api-ref/source/samples/quota-update-response.json +++ b/api-ref/source/samples/quota-update-response.json @@ -8,6 +8,7 @@ "share_groups": 12, "share_group_snapshots": 12, "share_replicas": 89, - "replica_gigabytes": 1000 + "replica_gigabytes": 1000, + "per_share_gigabytes": -1 } } diff --git a/doc/source/admin/shared-file-systems-manage-and-unmanage-share.rst b/doc/source/admin/shared-file-systems-manage-and-unmanage-share.rst index 683bdfc970..0da6d2f458 100644 --- a/doc/source/admin/shared-file-systems-manage-and-unmanage-share.rst +++ b/doc/source/admin/shared-file-systems-manage-and-unmanage-share.rst @@ -60,6 +60,8 @@ Manage a share a ``replication_type`` extra spec while managing a share, manila quota system will reserve and consume resources for two additional quotas: ``share_replicas`` and ``replica_gigabytes``. + From API version 2.62, manila quota system will validate size of the + share against ``per_share_gigabytes`` quota. To register the non-managed share in the File System service, run the :command:`manila manage` command: diff --git a/doc/source/admin/shared-file-systems-quotas.rst b/doc/source/admin/shared-file-systems-quotas.rst index 6c5f259433..b0b2cf9bf5 100644 --- a/doc/source/admin/shared-file-systems-quotas.rst +++ b/doc/source/admin/shared-file-systems-quotas.rst @@ -110,6 +110,7 @@ you get the quotas for the specified project. +-----------------------+-----------------------------------+ | id | d99c76b43b1743fd822d26ccc915989c | | gigabytes | 1000 | + | per_share_gigabytes | -1 | | snapshot_gigabytes | 1000 | | snapshots | 50 | | shares | 50 | @@ -132,6 +133,7 @@ the :command:`manila quota-defaults` command: +-----------------------+------------------------------------+ | id | 1cc2154937bd40f4815d5f168d372263 | | gigabytes | 1000 | + | per_share_gigabytes | -1 | | snapshot_gigabytes | 1000 | | snapshots | 50 | | shares | 50 | @@ -152,6 +154,8 @@ arguments. It is possible to update the ``shares``, ``snapshots``, Since API version 2.53, the administrator is also able to update quotas for share replicas and replica gigabytes by specifying ``share_replicas`` and/or ``replica_gigabytes``. + Since API version 2.62, the administrator is also able to update quotas + for per share gigabytes by specifying ``per_share_gigabytes`` .. code-block:: console diff --git a/doc/source/configuration/shared-file-systems/overview.rst b/doc/source/configuration/shared-file-systems/overview.rst index 14845de100..f3d5d329cd 100644 --- a/doc/source/configuration/shared-file-systems/overview.rst +++ b/doc/source/configuration/shared-file-systems/overview.rst @@ -74,6 +74,8 @@ The Shared File Systems service contains the following components: - The number of gigabytes that can be provisioned for share replicas. + - The number of gigabytes that can be provisioned for each share. + You can revise the default quota values with the Shared File Systems CLI, so the limits placed by quotas are editable by admin users.