2
Copyright 2010 United States Government as represented by the
3
Administrator of the National Aeronautics and Space Administration.
6
Licensed under the Apache License, Version 2.0 (the "License"); you may
7
not use this file except in compliance with the License. You may obtain
8
a copy of the License at
10
http://www.apache.org/licenses/LICENSE-2.0
12
Unless required by applicable law or agreed to in writing, software
13
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15
License for the specific language governing permissions and limitations
21
Projects are isolated resource containers forming the principal organizational structure within Nova. They consist of a separate vlan, volumes, instances, images, keys, and users.
23
Although the original ec2 api only supports users, nova adds the concept of projects. A user can specify which project he or she wishes to use by appending `:project_id` to his or her access key. If no project is specified in the api request, nova will attempt to use a project with the same id as the user.
25
The api will return NotAuthorized if a normal user attempts to make requests for a project that he or she is not a member of. Note that admins or users with special admin roles skip this check and can make requests for any project.
27
To create a project, use the `project create` command of nova-manage. The syntax is nova-manage project create projectname manager_id [description] You must specify a projectname and a manager_id. For example::
28
nova-manage project create john_project john "This is a sample project"
30
You can add and remove users from projects with `project add` and `project remove`::
31
nova-manage project add john_project john
32
nova-manage project remove john_project john
37
Admins and Project Managers can use the 'nova-manage project' command to manage project resources:
39
* project add: Adds user to project
40
* arguments: project user
41
* project create: Creates a new project
42
* arguments: name project_manager [description]
43
* project delete: Deletes an existing project
44
* arguments: project_id
45
* project environment: Exports environment variables to an sourcable file
46
* arguments: project_id user_id [filename='novarc]
47
* project list: lists all projects
49
* project remove: Removes user from project
50
* arguments: project user
51
* project scrub: Deletes data associated with project
53
* project zipfile: Exports credentials for project to a zip file
54
* arguments: project_id user_id [filename='nova.zip]
58
Nova utilizes a quota system at the project level to control resource consumption across available hardware resources. Current quota controls are available to limit the:
60
* Number of volumes which may be created
61
* Total size of all volumes within a project as measured in GB
62
* Number of instances which may be launched
63
* Number of processor cores which may be allocated
64
* Publicly accessible IP addresses
66
Use the following command to set quotas for a project
67
* project quota: Set or display quotas for project
68
* arguments: project_id [key] [value]