summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorMichael Gundlach <michael.gundlach@rackspace.com>2010-09-01 13:55:38 -0400
committerMichael Gundlach <michael.gundlach@rackspace.com>2010-09-01 13:55:38 -0400
commitb965dde9e95e16a9a207697d5729bd146c2dfd23 (patch)
treef714da896e130ed131153aa2b848e6eaec6b15c9 /nova
parent40778d77936cb63decfc56e6b75fa4c31c13a564 (diff)
downloadnova-b965dde9e95e16a9a207697d5729bd146c2dfd23.tar.gz
nova-b965dde9e95e16a9a207697d5729bd146c2dfd23.tar.xz
nova-b965dde9e95e16a9a207697d5729bd146c2dfd23.zip
Fix simple errors to the point where we can run the tests [but not pass]
Diffstat (limited to 'nova')
-rw-r--r--nova/api/ec2/__init__.py10
-rw-r--r--nova/api/ec2/cloud.py2
-rw-r--r--nova/api/ec2/context.py (renamed from nova/api/ec2/apirequestcontext.py)0
-rwxr-xr-xnova/endpoint/api.py122
-rw-r--r--nova/objectstore/handler.py4
-rw-r--r--nova/tests/api_unittest.py3
-rw-r--r--nova/tests/auth_unittest.py2
-rw-r--r--nova/tests/cloud_unittest.py6
8 files changed, 14 insertions, 135 deletions
diff --git a/nova/api/ec2/__init__.py b/nova/api/ec2/__init__.py
index aee9915d0..3335338e0 100644
--- a/nova/api/ec2/__init__.py
+++ b/nova/api/ec2/__init__.py
@@ -26,9 +26,11 @@ import webob
import webob.dec
import webob.exc
+from nova import exception
+from nova import wsgi
+from nova.api.ec2 import context
from nova.api.ec2 import admin
from nova.api.ec2 import cloud
-from nova import exception
from nova.auth import manager
@@ -74,7 +76,7 @@ class Authenticate(wsgi.Middleware):
raise webob.exc.HTTPForbidden()
# Authenticated!
- req.environ['ec2.context'] = APIRequestContext(user, project)
+ req.environ['ec2.context'] = context.APIRequestContext(user, project)
return self.application
@@ -188,7 +190,7 @@ class Authorization(wsgi.Middleware):
for role in roles)
-class Executor(wsg.Application):
+class Executor(wsgi.Application):
"""
Executes 'ec2.action' upon 'ec2.controller', passing 'ec2.context' and
'ec2.action_args' (all variables in WSGI environ.) Returns an XML
@@ -217,6 +219,6 @@ class Executor(wsg.Application):
resp.body = ('<?xml version="1.0"?>\n'
'<Response><Errors><Error><Code>%s</Code>'
'<Message>%s</Message></Error></Errors>'
- '<RequestID>?</RequestID></Response>') % (code, message))
+ '<RequestID>?</RequestID></Response>') % (code, message)
return resp
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index 566887c1a..fc0eb2711 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -357,7 +357,7 @@ class CloudController(object):
'instanceId': instance_id,
'requestId': context.request_id,
'status': volume['attach_status'],
- 'volumeId': volume_id})
+ 'volumeId': volume_id}
def _convert_to_set(self, lst, label):
if lst == None or lst == []:
diff --git a/nova/api/ec2/apirequestcontext.py b/nova/api/ec2/context.py
index fb3118020..fb3118020 100644
--- a/nova/api/ec2/apirequestcontext.py
+++ b/nova/api/ec2/context.py
diff --git a/nova/endpoint/api.py b/nova/endpoint/api.py
deleted file mode 100755
index 311fb1880..000000000
--- a/nova/endpoint/api.py
+++ /dev/null
@@ -1,122 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright 2010 United States Government as represented by the
-# Administrator of the National Aeronautics and Space Administration.
-# All Rights Reserved.
-#
-# 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.
-
-"""
-Tornado REST API Request Handlers for Nova functions
-Most calls are proxied into the responsible controller.
-"""
-
-import multiprocessing
-import re
-import urllib
-
-import tornado.web
-
-from nova import crypto
-from nova import flags
-import nova.cloudpipe.api
-from nova.endpoint import cloud
-
-
-FLAGS = flags.FLAGS
-flags.DEFINE_integer('cc_port', 8773, 'cloud controller port')
-
-
-class RootRequestHandler(tornado.web.RequestHandler):
- def get(self):
- # available api versions
- versions = [
- '1.0',
- '2007-01-19',
- '2007-03-01',
- '2007-08-29',
- '2007-10-10',
- '2007-12-15',
- '2008-02-01',
- '2008-09-01',
- '2009-04-04',
- ]
- for version in versions:
- self.write('%s\n' % version)
- self.finish()
-
-
-class MetadataRequestHandler(tornado.web.RequestHandler):
- def print_data(self, data):
- if isinstance(data, dict):
- output = ''
- for key in data:
- if key == '_name':
- continue
- output += key
- if isinstance(data[key], dict):
- if '_name' in data[key]:
- output += '=' + str(data[key]['_name'])
- else:
- output += '/'
- output += '\n'
- self.write(output[:-1]) # cut off last \n
- elif isinstance(data, list):
- self.write('\n'.join(data))
- else:
- self.write(str(data))
-
- def lookup(self, path, data):
- items = path.split('/')
- for item in items:
- if item:
- if not isinstance(data, dict):
- return data
- if not item in data:
- return None
- data = data[item]
- return data
-
- def get(self, path):
- cc = self.application.controllers['Cloud']
- meta_data = cc.get_metadata(self.request.remote_ip)
- if meta_data is None:
- _log.error('Failed to get metadata for ip: %s' %
- self.request.remote_ip)
- raise tornado.web.HTTPError(404)
- data = self.lookup(path, meta_data)
- if data is None:
- raise tornado.web.HTTPError(404)
- self.print_data(data)
- self.finish()
-
-
-class APIServerApplication(tornado.web.Application):
- def __init__(self, controllers):
- tornado.web.Application.__init__(self, [
- (r'/', RootRequestHandler),
- (r'/cloudpipe/(.*)', nova.cloudpipe.api.CloudPipeRequestHandler),
- (r'/cloudpipe', nova.cloudpipe.api.CloudPipeRequestHandler),
- (r'/services/([A-Za-z0-9]+)/', APIRequestHandler),
- (r'/latest/([-A-Za-z0-9/]*)', MetadataRequestHandler),
- (r'/2009-04-04/([-A-Za-z0-9/]*)', MetadataRequestHandler),
- (r'/2008-09-01/([-A-Za-z0-9/]*)', MetadataRequestHandler),
- (r'/2008-02-01/([-A-Za-z0-9/]*)', MetadataRequestHandler),
- (r'/2007-12-15/([-A-Za-z0-9/]*)', MetadataRequestHandler),
- (r'/2007-10-10/([-A-Za-z0-9/]*)', MetadataRequestHandler),
- (r'/2007-08-29/([-A-Za-z0-9/]*)', MetadataRequestHandler),
- (r'/2007-03-01/([-A-Za-z0-9/]*)', MetadataRequestHandler),
- (r'/2007-01-19/([-A-Za-z0-9/]*)', MetadataRequestHandler),
- (r'/1.0/([-A-Za-z0-9/]*)', MetadataRequestHandler),
- ], pool=multiprocessing.Pool(4))
- self.controllers = controllers
diff --git a/nova/objectstore/handler.py b/nova/objectstore/handler.py
index 035e342ca..09591101b 100644
--- a/nova/objectstore/handler.py
+++ b/nova/objectstore/handler.py
@@ -55,7 +55,7 @@ from twisted.web import static
from nova import exception
from nova import flags
from nova.auth import manager
-from nova.endpoint import api
+from nova.api.ec2 import context
from nova.objectstore import bucket
from nova.objectstore import image
@@ -122,7 +122,7 @@ def get_context(request):
request.uri,
headers=request.getAllHeaders(),
check_type='s3')
- return api.APIRequestContext(None, user, project)
+ return context.APIRequestContext(None, user, project)
except exception.Error as ex:
logging.debug("Authentication Failure: %s" % ex)
raise exception.NotAuthorized
diff --git a/nova/tests/api_unittest.py b/nova/tests/api_unittest.py
index 9d072866c..d21ded75b 100644
--- a/nova/tests/api_unittest.py
+++ b/nova/tests/api_unittest.py
@@ -27,8 +27,7 @@ from twisted.internet import defer
from nova import flags
from nova import test
from nova.auth import manager
-from nova.endpoint import api
-from nova.endpoint import cloud
+from nova.api.ec2 import cloud
FLAGS = flags.FLAGS
diff --git a/nova/tests/auth_unittest.py b/nova/tests/auth_unittest.py
index 0b404bfdc..b3b6800a1 100644
--- a/nova/tests/auth_unittest.py
+++ b/nova/tests/auth_unittest.py
@@ -26,7 +26,7 @@ from nova import crypto
from nova import flags
from nova import test
from nova.auth import manager
-from nova.endpoint import cloud
+from nova.api.ec2 import cloud
FLAGS = flags.FLAGS
diff --git a/nova/tests/cloud_unittest.py b/nova/tests/cloud_unittest.py
index 3501771cc..545cbaede 100644
--- a/nova/tests/cloud_unittest.py
+++ b/nova/tests/cloud_unittest.py
@@ -29,8 +29,8 @@ from nova import rpc
from nova import test
from nova.auth import manager
from nova.compute import service
-from nova.endpoint import api
-from nova.endpoint import cloud
+from nova.api.ec2 import context
+from nova.api.ec2 import cloud
FLAGS = flags.FLAGS
@@ -64,7 +64,7 @@ class CloudTestCase(test.BaseTestCase):
except: pass
admin = manager.AuthManager().get_user('admin')
project = manager.AuthManager().create_project('proj', 'admin', 'proj')
- self.context = api.APIRequestContext(handler=None,project=project,user=admin)
+ self.context = context.APIRequestContext(handler=None,project=project,user=admin)
def tearDown(self):
manager.AuthManager().delete_project('proj')