zaqar/marconi/common/decorators.py
Flaper Fesp 61765db141 Replace gunicorn with wsgiref
The patch replaces gunicorn with wsgiref since it doesn't make sense to
have gunicorn as dependency. Lets let deployers choose whatever the
prefer to use as container.

The patch also removes lib/* since marconi_paste is not needed anymore,
the wsgi app can now be accessed through:

    `marconi.transport.wsgi.app:app`

Backward incompatible change: bind refers now to the host and a new
config variable was introduced to specify the port it should bind to.

Fixes bug: #1187280
Implements blueprint: transport-wsgi

Change-Id: I9f7767ace5c6553e75e2f4587032d7d64b9537c4
2013-06-10 16:46:26 +02:00

43 lines
1.3 KiB
Python

# Copyright (c) 2013 Red Hat, Inc.
#
# 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.
def lazy_property(write=False, delete=True):
"""Creates a lazy property.
:param write: Whether this property is "writable"
:param delete: Whether this property can be deleted.
"""
def wrapper(fn):
attr_name = '_lazy_' + fn.__name__
def getter(self):
if not hasattr(self, attr_name):
setattr(self, attr_name, fn(self))
return getattr(self, attr_name)
def setter(self, value):
setattr(self, attr_name, value)
def deleter(self):
delattr(self, attr_name)
return property(fget=getter,
fset=write and setter,
fdel=delete and deleter,
doc=fn.__doc__)
return wrapper