summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorMichael Gundlach <michael.gundlach@rackspace.com>2010-09-09 19:23:27 -0400
committerMichael Gundlach <michael.gundlach@rackspace.com>2010-09-09 19:23:27 -0400
commit345749f514291928913a1ecb280b92daec2c0553 (patch)
tree45a2f12685386fa4c8ec3d34d9ec505ff9aa801e /nova/api
parent4ddcc28c944975c6e03cccf7d360b3ec4c26e848 (diff)
downloadnova-345749f514291928913a1ecb280b92daec2c0553.tar.gz
nova-345749f514291928913a1ecb280b92daec2c0553.tar.xz
nova-345749f514291928913a1ecb280b92daec2c0553.zip
Correct style issues brought up in termie's review
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/ec2/__init__.py37
-rw-r--r--nova/api/ec2/apirequest.py2
-rw-r--r--nova/api/ec2/cloud.py15
-rw-r--r--nova/api/ec2/context.py1
-rw-r--r--nova/api/ec2/images.py21
5 files changed, 34 insertions, 42 deletions
diff --git a/nova/api/ec2/__init__.py b/nova/api/ec2/__init__.py
index e53e7d964..d500b127c 100644
--- a/nova/api/ec2/__init__.py
+++ b/nova/api/ec2/__init__.py
@@ -16,9 +16,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-"""
-Starting point for routing EC2 requests
-"""
+"""Starting point for routing EC2 requests"""
import logging
import routes
@@ -40,6 +38,7 @@ _log.setLevel(logging.DEBUG)
class API(wsgi.Middleware):
+
"""Routing for all EC2 API requests."""
def __init__(self):
@@ -47,6 +46,7 @@ class API(wsgi.Middleware):
class Authenticate(wsgi.Middleware):
+
"""Authenticate an EC2 request and add 'ec2.context' to WSGI environ."""
@webob.dec.wsgify
@@ -65,28 +65,25 @@ class Authenticate(wsgi.Middleware):
# Authenticate the request.
try:
(user, project) = manager.AuthManager().authenticate(
- access,
- signature,
- auth_params,
- req.method,
- req.host,
- req.path
- )
-
+ access,
+ signature,
+ auth_params,
+ req.method,
+ req.host,
+ req.path)
except exception.Error, ex:
logging.debug("Authentication Failure: %s" % ex)
raise webob.exc.HTTPForbidden()
# Authenticated!
req.environ['ec2.context'] = context.APIRequestContext(user, project)
-
return self.application
class Router(wsgi.Middleware):
- """
- Add 'ec2.controller', 'ec2.action', and 'ec2.action_args' to WSGI environ.
- """
+
+ """Add ec2.'controller', .'action', and .'action_args' to WSGI environ."""
+
def __init__(self, application):
super(Router, self).__init__(application)
self.map = routes.Mapper()
@@ -121,12 +118,13 @@ class Router(wsgi.Middleware):
req.environ['ec2.controller'] = controller
req.environ['ec2.action'] = action
req.environ['ec2.action_args'] = args
-
return self.application
class Authorizer(wsgi.Middleware):
- """
+
+ """Authorize an EC2 API request.
+
Return a 401 if ec2.controller and ec2.action in WSGI environ may not be
executed in ec2.context.
"""
@@ -194,11 +192,14 @@ class Authorizer(wsgi.Middleware):
class Executor(wsgi.Application):
- """
+
+ """Execute an EC2 API request.
+
Executes 'ec2.action' upon 'ec2.controller', passing 'ec2.context' and
'ec2.action_args' (all variables in WSGI environ.) Returns an XML
response, or a 400 upon failure.
"""
+
@webob.dec.wsgify
def __call__(self, req):
context = req.environ['ec2.context']
diff --git a/nova/api/ec2/apirequest.py b/nova/api/ec2/apirequest.py
index 85ff2fa5e..a3b20118f 100644
--- a/nova/api/ec2/apirequest.py
+++ b/nova/api/ec2/apirequest.py
@@ -51,7 +51,6 @@ class APIRequest(object):
self.action = action
def send(self, context, **kwargs):
-
try:
method = getattr(self.controller,
_camelcase_to_underscore(self.action))
@@ -83,7 +82,6 @@ class APIRequest(object):
args[key] = [v for k, v in s]
result = method(context, **args)
-
return self._render_response(result, context.request_id)
def _render_response(self, response_data, request_id):
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index 5c9e1b170..e1e04ca90 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -205,8 +205,8 @@ class CloudController(object):
def create_key_pair(self, context, key_name, **kwargs):
data = _gen_key(context.user.id, key_name)
return {'keyName': key_name,
- 'keyFingerprint': data['fingerprint'],
- 'keyMaterial': data['private_key']}
+ 'keyFingerprint': data['fingerprint'],
+ 'keyMaterial': data['private_key']}
def delete_key_pair(self, context, key_name, **kwargs):
context.user.delete_key_pair(key_name)
@@ -273,10 +273,11 @@ class CloudController(object):
def create_volume(self, context, size, **kwargs):
# TODO(vish): refactor this to create the volume object here and tell service to create it
- result = rpc.call(FLAGS.volume_topic, {"method": "create_volume",
- "args": {"size": size,
- "user_id": context.user.id,
- "project_id": context.project.id}})
+ result = rpc.call(FLAGS.volume_topic,
+ {"method": "create_volume",
+ "args": {"size": size,
+ "user_id": context.user.id,
+ "project_id": context.project.id}})
# NOTE(vish): rpc returned value is in the result key in the dictionary
volume = self._get_volume(context, result)
return {'volumeSet': [self.format_volume(context, volume)]}
@@ -638,7 +639,6 @@ class CloudController(object):
image_location = kwargs['name']
image_id = images.register(context, image_location)
logging.debug("Registered %s as %s" % (image_location, image_id))
-
return {'imageId': image_id}
def describe_image_attribute(self, context, image_id, attribute, **kwargs):
@@ -682,5 +682,4 @@ class CloudController(object):
aggregate_state['pending'].has_key(item_id)):
del aggregate_state['pending'][item_id]
aggregate_state[node_name] = items
-
return True
diff --git a/nova/api/ec2/context.py b/nova/api/ec2/context.py
index f69747622..c53ba98d9 100644
--- a/nova/api/ec2/context.py
+++ b/nova/api/ec2/context.py
@@ -22,6 +22,7 @@ APIRequestContext
import random
+
class APIRequestContext(object):
def __init__(self, user, project):
self.user = user
diff --git a/nova/api/ec2/images.py b/nova/api/ec2/images.py
index cfea4c20b..f0be7b899 100644
--- a/nova/api/ec2/images.py
+++ b/nova/api/ec2/images.py
@@ -26,20 +26,20 @@ import urllib
import boto.s3.connection
-from nova import image
from nova import flags
from nova import utils
from nova.auth import manager
+from nova.image import service
FLAGS = flags.FLAGS
def modify(context, image_id, operation):
- image.S3ImageService(context)._conn().make_request(
+ service.S3ImageService(context)._conn().make_request(
method='POST',
bucket='_images',
- query_args=qs({'image_id': image_id, 'operation': operation}))
+ query_args=service.qs({'image_id': image_id, 'operation': operation}))
return True
@@ -48,10 +48,10 @@ def register(context, image_location):
""" rpc call to register a new image based from a manifest """
image_id = utils.generate_uid('ami')
- image.S3ImageService(context)._conn().make_request(
+ service.S3ImageService(context)._conn().make_request(
method='PUT',
bucket='_images',
- query_args=qs({'image_location': image_location,
+ query_args=service.qs({'image_location': image_location,
'image_id': image_id}))
return image_id
@@ -62,7 +62,7 @@ def list(context, filter_list=[]):
optionally filtered by a list of image_id """
- result = image.S3ImageService(context).index().values()
+ result = service.S3ImageService(context).index().values()
if not filter_list is None:
return [i for i in result if i['imageId'] in filter_list]
return result
@@ -70,11 +70,4 @@ def list(context, filter_list=[]):
def deregister(context, image_id):
""" unregister an image """
- image.S3ImageService(context).delete(image_id)
-
-
-def qs(params):
- pairs = []
- for key in params.keys():
- pairs.append(key + '=' + urllib.quote(params[key]))
- return '&'.join(pairs)
+ service.S3ImageService(context).delete(image_id)