manage command for project quotas
This commit is contained in:
		| @@ -50,7 +50,6 @@ | |||||||
|  |  | ||||||
| """ | """ | ||||||
|   CLI interface for nova management. |   CLI interface for nova management. | ||||||
|   Connects to the running ADMIN api in the api daemon. |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| import os | import os | ||||||
| @@ -68,7 +67,9 @@ if os.path.exists(os.path.join(possible_topdir, 'nova', '__init__.py')): | |||||||
|     sys.path.insert(0, possible_topdir) |     sys.path.insert(0, possible_topdir) | ||||||
|  |  | ||||||
| from nova import db | from nova import db | ||||||
|  | from nova import exception | ||||||
| from nova import flags | from nova import flags | ||||||
|  | from nova import quota | ||||||
| from nova import utils | from nova import utils | ||||||
| from nova.auth import manager | from nova.auth import manager | ||||||
| from nova.cloudpipe import pipelib | from nova.cloudpipe import pipelib | ||||||
| @@ -186,6 +187,13 @@ class RoleCommands(object): | |||||||
| class UserCommands(object): | class UserCommands(object): | ||||||
|     """Class for managing users.""" |     """Class for managing users.""" | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def _print_export(user): | ||||||
|  |         """Print export variables to use with API.""" | ||||||
|  |         print 'export EC2_ACCESS_KEY=%s' % user.access | ||||||
|  |         print 'export EC2_SECRET_KEY=%s' % user.secret | ||||||
|  |  | ||||||
|  |  | ||||||
|     def __init__(self): |     def __init__(self): | ||||||
|         self.manager = manager.AuthManager() |         self.manager = manager.AuthManager() | ||||||
|  |  | ||||||
| @@ -193,13 +201,13 @@ class UserCommands(object): | |||||||
|         """creates a new admin and prints exports |         """creates a new admin and prints exports | ||||||
|         arguments: name [access] [secret]""" |         arguments: name [access] [secret]""" | ||||||
|         user = self.manager.create_user(name, access, secret, True) |         user = self.manager.create_user(name, access, secret, True) | ||||||
|         print_export(user) |         self._print_export(user) | ||||||
|  |  | ||||||
|     def create(self, name, access=None, secret=None): |     def create(self, name, access=None, secret=None): | ||||||
|         """creates a new user and prints exports |         """creates a new user and prints exports | ||||||
|         arguments: name [access] [secret]""" |         arguments: name [access] [secret]""" | ||||||
|         user = self.manager.create_user(name, access, secret, False) |         user = self.manager.create_user(name, access, secret, False) | ||||||
|         print_export(user) |         self._print_export(user) | ||||||
|  |  | ||||||
|     def delete(self, name): |     def delete(self, name): | ||||||
|         """deletes an existing user |         """deletes an existing user | ||||||
| @@ -211,7 +219,7 @@ class UserCommands(object): | |||||||
|         arguments: name""" |         arguments: name""" | ||||||
|         user = self.manager.get_user(name) |         user = self.manager.get_user(name) | ||||||
|         if user: |         if user: | ||||||
|             print_export(user) |             self._print_export(user) | ||||||
|         else: |         else: | ||||||
|             print "User %s doesn't exist" % name |             print "User %s doesn't exist" % name | ||||||
|  |  | ||||||
| @@ -222,12 +230,6 @@ class UserCommands(object): | |||||||
|             print user.name |             print user.name | ||||||
|  |  | ||||||
|  |  | ||||||
| def print_export(user): |  | ||||||
|     """Print export variables to use with API.""" |  | ||||||
|     print 'export EC2_ACCESS_KEY=%s' % user.access |  | ||||||
|     print 'export EC2_SECRET_KEY=%s' % user.secret |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class ProjectCommands(object): | class ProjectCommands(object): | ||||||
|     """Class for managing projects.""" |     """Class for managing projects.""" | ||||||
|  |  | ||||||
| @@ -262,6 +264,19 @@ class ProjectCommands(object): | |||||||
|         for project in self.manager.get_projects(): |         for project in self.manager.get_projects(): | ||||||
|             print project.name |             print project.name | ||||||
|  |  | ||||||
|  |     def quota(self, project_id, key=None, value=None): | ||||||
|  |         """Set or display quotas for project | ||||||
|  |         arguments: project_id [key] [value]""" | ||||||
|  |         if key: | ||||||
|  |             quo = {'project_id': project_id, key: value} | ||||||
|  |             try: | ||||||
|  |                 db.quota_update(None, project_id, quo) | ||||||
|  |             except exception.NotFound: | ||||||
|  |                 db.quota_create(None, quo) | ||||||
|  |         project_quota = quota._get_quota(None, project_id) | ||||||
|  |         for key, value in project_quota.iteritems(): | ||||||
|  |             print '%s: %s' % (key, value) | ||||||
|  |  | ||||||
|     def remove(self, project, user): |     def remove(self, project, user): | ||||||
|         """Removes user from project |         """Removes user from project | ||||||
|         arguments: project user""" |         arguments: project user""" | ||||||
| @@ -274,6 +289,7 @@ class ProjectCommands(object): | |||||||
|         with open(filename, 'w') as f: |         with open(filename, 'w') as f: | ||||||
|             f.write(zip_file) |             f.write(zip_file) | ||||||
|  |  | ||||||
|  |  | ||||||
| class FloatingIpCommands(object): | class FloatingIpCommands(object): | ||||||
|     """Class for managing floating ip.""" |     """Class for managing floating ip.""" | ||||||
|  |  | ||||||
| @@ -306,6 +322,7 @@ class FloatingIpCommands(object): | |||||||
|                                   floating_ip['address'], |                                   floating_ip['address'], | ||||||
|                                   instance) |                                   instance) | ||||||
|  |  | ||||||
|  |  | ||||||
| CATEGORIES = [ | CATEGORIES = [ | ||||||
|     ('user', UserCommands), |     ('user', UserCommands), | ||||||
|     ('project', ProjectCommands), |     ('project', ProjectCommands), | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Vishvananda Ishaya
					Vishvananda Ishaya