.. Copyright 2016 Rackspace Inc. Author: Tim Simmons Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. View and Manage Quotas ====================== Quotas exist in Designate for various resources, these are configurable by an operator globally, as well as on a per-tenant basis. View Quotas ----------- Users can view their quotas with a simple API call: .. code-block:: http GET /v2/quotas/ HTTP/1.1 Accept: application/json Content-Type: application/json Response: .. code-block:: http HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 X-Openstack-Request-Id: req-bfcd0723-624c-4ec2-bbd5-99e985efe8db { "api_export_size": 1000, "recordset_records": 20, "zone_records": 500, "zone_recordsets": 500, "zones": 500 } Administrators with the ability to use the ``X-Auth-All-Projects`` header can view the quotas of any user by making a similar API call to ``/v2/quotas/tenant``. Available Quotas ---------------- Zones ^^^^^ +---------+---------------------------------------+---------+ | Quota | Description | Default | +---------+---------------------------------------+---------+ | zones | The number of zone allowed per tenant | 10 | +---------+---------------------------------------+---------+ Recordsets/Records ^^^^^^^^^^^^^^^^^^ +------------------+-------------------------------------------------+---------+ | Quota | Description | Default | +------------------+-------------------------------------------------+---------+ | zone_recordsets | Number of recordsets allowed per zone | 500 | +------------------+-------------------------------------------------+---------+ | zone_records | Number of records allowed per zone | 500 | +------------------+-------------------------------------------------+---------+ | recordset_records| Number of records allowed per recordset | 20 | +------------------+-------------------------------------------------+---------+ Zone Exports ^^^^^^^^^^^^ +-----------------+-------------------------------------------------+---------+ | Quota | Description | Default | +-----------------+-------------------------------------------------+---------+ | api_export_size | Number of recordsets allowed in a zone export | 1000 | +-----------------+-------------------------------------------------+---------+ Editing Quotas -------------- Global Configuration ^^^^^^^^^^^^^^^^^^^^ All of the quotas above can be set as a default for all users by editing the ``[DEFAULT]`` configuration section, and setting each quota with ``quota_$name``. for example:: [DEFAULT] ######################## ## General Configuration ######################## quota_zones = 500 quota_zone_recordsets = 500 quota_zone_records = 500 quota_recordset_records = 20 quota_api_export_size = 1000 Per-Tenant via API ^^^^^^^^^^^^^^^^^^ These quotas can be edited via API on a per-tenant basis. An administrator can edit quotas for any tenant, but they must supply the ``X-Auth-All-Projects`` header, and have permission to use it, they'll also need the ``set-quotas`` permission in ``policy.json``. For example, an admin setting the zones quota for tenant X would look like: .. code-block:: http PATCH /v2/quotas/tenantX HTTP/1.1 Accept: application/json Content-Type: application/json X-Auth-All-Projects: True { "zones": 100 } The response would be: .. code-block:: http HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 X-Openstack-Request-Id: req-bfcd0723-624c-4ec2-bbd5-99e985efe8db { "api_export_size": 1000, "recordset_records": 20, "zone_records": 500, "zone_recordsets": 500, "zones": 100 }