diff --git a/nova/api/ec2/__init__.py b/nova/api/ec2/__init__.py index 95792796fa56..f9c0a9a599d4 100644 --- a/nova/api/ec2/__init__.py +++ b/nova/api/ec2/__init__.py @@ -17,33 +17,69 @@ import webob.dec import webob.exc +from oslo_log import log as logging + +from nova.i18n import _LW from nova import wsgi +LOG = logging.getLogger(__name__) + +_DEPRECATED_MIDDLEWARE = ( + '%s has been deprecated and removed from Nova in Mitaka. ' + 'You will need to remove lines referencing it in your paste.ini before ' + 'upgrade to Newton or your cloud will break.') + _DEPRECATION_MESSAGE = ('The in tree EC2 API has been removed in Mitaka. ' 'Please remove entries from api-paste.ini') +# NOTE(sdague): this whole file is safe to remove in Newton. We just +# needed a release cycle for it. + class DeprecatedMiddleware(wsgi.Middleware): def __init__(self, *args, **kwargs): super(DeprecatedMiddleware, self).__init__(args[0]) + LOG.warn(_LW(_DEPRECATED_MIDDLEWARE % type(self).__name__)) # noqa @webob.dec.wsgify(RequestClass=wsgi.Request) def __call__(self, req): - return webob.exc.HTTPException(message=_DEPRECATION_MESSAGE) + # deprecated middleware needs to be a no op, not an exception + return req.get_response(self.application) -class DeprecatedApplication(wsgi.Application): +class FaultWrapper(DeprecatedMiddleware): + pass + + +class Lockout(DeprecatedMiddleware): + pass + + +class EC2KeystoneAuth(DeprecatedMiddleware): + pass + + +class NoAuth(DeprecatedMiddleware): + pass + + +class Requestify(DeprecatedMiddleware): + pass + + +class Authorizer(DeprecatedMiddleware): + pass + + +class RequestLogging(DeprecatedMiddleware): + pass + + +class Validator(DeprecatedMiddleware): + pass + + +class Executor(wsgi.Application): @webob.dec.wsgify(RequestClass=wsgi.Request) def __call__(self, req): - return webob.exc.HTTPException(message=_DEPRECATION_MESSAGE) - - -FaultWrapper = DeprecatedMiddleware -RequestLogging = DeprecatedMiddleware -Lockout = DeprecatedMiddleware -EC2KeystoneAuth = DeprecatedMiddleware -NoAuth = DeprecatedMiddleware -Requestify = DeprecatedMiddleware -Authorizer = DeprecatedMiddleware -Validator = DeprecatedMiddleware -Executor = DeprecatedApplication + return webob.exc.HTTPNotFound(explanation=_DEPRECATION_MESSAGE)