Jump to: navigation, search


  • Launchpad Entry: NovaSpec:per-user-quotas
  • Created: 2012-May-22
  • Contributors: Kylin CG


Currently nova supports per-project quotas.Users under the same project have exactly the same quota-set.In order to control a normal user's use of cloud resources we need per-user quotas.

User stories

  • An administrator wants to manage project's quotas.
  • An administrator wants to manage normal user's quotas.


1.RESTful API:

Verb URI
GET /os-quota-sets/{project_id}?user_id={user_id}
GET /os-quota-sets/{project_id}?remained=1
PUT /os-quota-sets/{project_id}?user_id={user_id}
DELETE /os-quota-sets/{project_id}?user_id={user_id}

2.Project-quotas & User-quotas:

The sum of user's quotas under the same project should be less than the project quotas.


Data would be stored in a new user_quotas table.

Field Type Null Key Default
id int(11) NO PRI NULL
created_at datetime YES NULL
updated_at datetime YES NULL
deleted_at datetime YES NULL
deleted tinyint(1) YES NULL
user_id varchar(255) YES NULL
project_id varchar(255) YES NULL
resource varchar(255) NO NULL
hard_limit int(11) YES NULL

The implementation of the SQL backend will drive the implementations of the other backends. When using cloud resources, the request will be checked if it exceeds the quotas of the specific user.

Test/Demo Plan

This need not be added or completed until the specification is nearing beta.

Unresolved issues

We'll eventually need a blueprint/spec for managing user's quotas via Horizon.