summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorTushar Patil <tushar.vitthal.patil@gmail.com>2011-08-15 15:09:42 -0700
committerTushar Patil <tushar.vitthal.patil@gmail.com>2011-08-15 15:09:42 -0700
commit9a4b1deb5f9abdc88809ff80bccdfb503e66dccd (patch)
treec98740f3dc00afbeff75e010a8572aabea26d437 /nova/api
parent8666aca320ce95840a378231bfe81bc4e759df6e (diff)
downloadnova-9a4b1deb5f9abdc88809ff80bccdfb503e66dccd.tar.gz
nova-9a4b1deb5f9abdc88809ff80bccdfb503e66dccd.tar.xz
nova-9a4b1deb5f9abdc88809ff80bccdfb503e66dccd.zip
Removed newly added userdatarequesthandler for OS API, there is no need to add this handler since the existing Ec2 API metadatarequesthandler does the same job
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/__init__.py6
-rw-r--r--nova/api/ec2/__init__.py3
-rw-r--r--nova/api/openstack/userdatarequesthandler.py110
3 files changed, 3 insertions, 116 deletions
diff --git a/nova/api/__init__.py b/nova/api/__init__.py
index 6e6b092b3..747015af5 100644
--- a/nova/api/__init__.py
+++ b/nova/api/__init__.py
@@ -15,9 +15,3 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
-from nova import flags
-
-
-flags.DEFINE_boolean('use_forwarded_for', False,
- 'Treat X-Forwarded-For as the canonical remote address. '
- 'Only enable this if you have a sanitizing proxy.')
diff --git a/nova/api/ec2/__init__.py b/nova/api/ec2/__init__.py
index 2e9278b52..96df97393 100644
--- a/nova/api/ec2/__init__.py
+++ b/nova/api/ec2/__init__.py
@@ -37,6 +37,9 @@ from nova.auth import manager
FLAGS = flags.FLAGS
LOG = logging.getLogger("nova.api")
+flags.DEFINE_boolean('use_forwarded_for', False,
+ 'Treat X-Forwarded-For as the canonical remote address. '
+ 'Only enable this if you have a sanitizing proxy.')
flags.DEFINE_integer('lockout_attempts', 5,
'Number of failed auths before lockout.')
flags.DEFINE_integer('lockout_minutes', 15,
diff --git a/nova/api/openstack/userdatarequesthandler.py b/nova/api/openstack/userdatarequesthandler.py
deleted file mode 100644
index f0205419b..000000000
--- a/nova/api/openstack/userdatarequesthandler.py
+++ /dev/null
@@ -1,110 +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.
-
-"""User data request handler."""
-
-import base64
-import webob.dec
-import webob.exc
-
-from nova import log as logging
-from nova import context
-from nova import exception
-from nova import db
-from nova import flags
-from nova import wsgi
-
-
-LOG = logging.getLogger('nova.api.openstack.userdata')
-FLAGS = flags.FLAGS
-
-
-class Controller(object):
- """ The server user-data API controller for the Openstack API """
-
- def __init__(self):
- super(Controller, self).__init__()
-
- @staticmethod
- def _format_user_data(instance_ref):
- return base64.b64decode(instance_ref['user_data'])
-
- def get_user_data(self, address):
- ctxt = context.get_admin_context()
- try:
- instance_ref = db.instance_get_by_fixed_ip(ctxt, address)
- except exception.NotFound:
- instance_ref = None
- if not instance_ref:
- return None
-
- data = {'user-data': self._format_user_data(instance_ref)}
- return data
-
-
-class UserdataRequestHandler(wsgi.Application):
- """Serve user-data from the OS API."""
-
- def __init__(self):
- self.cc = Controller()
-
- 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'
- # Cut off last \n
- return output[:-1]
- elif isinstance(data, list):
- return '\n'.join(data)
- else:
- return 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
-
- @webob.dec.wsgify(RequestClass=wsgi.Request)
- def __call__(self, req):
- remote_address = req.remote_addr
- if FLAGS.use_forwarded_for:
- remote_address = req.headers.get('X-Forwarded-For', remote_address)
-
- data = self.cc.get_user_data(remote_address)
- if data is None:
- LOG.error(_('Failed to get user data for ip: %s'), remote_address)
- raise webob.exc.HTTPNotFound()
- data = self.lookup(req.path_info, data)
- if data is None:
- raise webob.exc.HTTPNotFound()
- return self.print_data(data)