From: Sergey Vilgelm Date: Mon, 10 Jun 2013 08:52:13 +0000 (+0400) Subject: Replace FLAGS with cfg.CONF in api X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=67f39bf1f25a547016cee5bf81fb9e29de52b7a9;p=openstack-build%2Fcinder-build.git Replace FLAGS with cfg.CONF in api Replace all the FLAGS with cfg.CONF in cinder/api Large commit was split into several parts Change-Id: I2114d5fc45f5299c3b2011270034a3370e0ec388 Fixes: bug #1182037 --- diff --git a/cinder/api/__init__.py b/cinder/api/__init__.py index fc348ac56..8bd465ba4 100644 --- a/cinder/api/__init__.py +++ b/cinder/api/__init__.py @@ -16,17 +16,17 @@ # License for the specific language governing permissions and limitations # under the License. -import paste.urlmap -from cinder import flags +from oslo.config import cfg +import paste.urlmap -FLAGS = flags.FLAGS +CONF = cfg.CONF def root_app_factory(loader, global_conf, **local_conf): - if not FLAGS.enable_v1_api: + if not CONF.enable_v1_api: del local_conf['/v1'] - if not FLAGS.enable_v2_api: + if not CONF.enable_v2_api: del local_conf['/v2'] return paste.urlmap.urlmap_factory(loader, global_conf, **local_conf) diff --git a/cinder/api/common.py b/cinder/api/common.py index 94bf594c0..0a076ac46 100644 --- a/cinder/api/common.py +++ b/cinder/api/common.py @@ -15,21 +15,22 @@ # License for the specific language governing permissions and limitations # under the License. + import os import re import urlparse +from oslo.config import cfg import webob from cinder.api.openstack import wsgi from cinder.api import xmlutil -from cinder import flags from cinder.openstack.common import log as logging from cinder import utils +CONF = cfg.CONF LOG = logging.getLogger(__name__) -FLAGS = flags.FLAGS XML_NS_V1 = 'http://docs.openstack.org/volume/api/v1' @@ -73,7 +74,7 @@ def _get_marker_param(request): return request.GET['marker'] -def limited(items, request, max_limit=FLAGS.osapi_max_limit): +def limited(items, request, max_limit=CONF.osapi_max_limit): """Return a slice of items according to requested offset and limit. :param items: A sliceable entity @@ -110,7 +111,7 @@ def limited(items, request, max_limit=FLAGS.osapi_max_limit): return items[offset:range_end] -def limited_by_marker(items, request, max_limit=FLAGS.osapi_max_limit): +def limited_by_marker(items, request, max_limit=CONF.osapi_max_limit): """Return a slice of items according to the requested marker and limit.""" params = get_pagination_params(request) @@ -192,7 +193,7 @@ class ViewBuilder(object): params = request.params.copy() params["marker"] = identifier prefix = self._update_link_prefix(request.application_url, - FLAGS.osapi_volume_base_URL) + CONF.osapi_volume_base_URL) url = os.path.join(prefix, request.environ["cinder.context"].project_id, self._collection_name) @@ -201,7 +202,7 @@ class ViewBuilder(object): def _get_href_link(self, request, identifier): """Return an href string pointing to this object.""" prefix = self._update_link_prefix(request.application_url, - FLAGS.osapi_volume_base_URL) + CONF.osapi_volume_base_URL) return os.path.join(prefix, request.environ["cinder.context"].project_id, self._collection_name, @@ -211,7 +212,7 @@ class ViewBuilder(object): """Create a URL that refers to a specific resource.""" base_url = remove_version_from_href(request.application_url) base_url = self._update_link_prefix(base_url, - FLAGS.osapi_volume_base_URL) + CONF.osapi_volume_base_URL) return os.path.join(base_url, request.environ["cinder.context"].project_id, self._collection_name, diff --git a/cinder/api/contrib/__init__.py b/cinder/api/contrib/__init__.py index 503bc90b8..7fb1e7869 100644 --- a/cinder/api/contrib/__init__.py +++ b/cinder/api/contrib/__init__.py @@ -21,12 +21,13 @@ It can't be called 'extensions' because that causes namespacing problems. """ +from oslo.config import cfg + from cinder.api import extensions -from cinder import flags from cinder.openstack.common import log as logging -FLAGS = flags.FLAGS +CONF = cfg.CONF LOG = logging.getLogger(__name__) @@ -36,4 +37,4 @@ def standard_extensions(ext_mgr): def select_extensions(ext_mgr): extensions.load_standard_extensions(ext_mgr, LOG, __path__, __package__, - FLAGS.osapi_volume_ext_list) + CONF.osapi_volume_ext_list) diff --git a/cinder/api/contrib/backups.py b/cinder/api/contrib/backups.py index 02444ac55..81c895372 100644 --- a/cinder/api/contrib/backups.py +++ b/cinder/api/contrib/backups.py @@ -15,6 +15,7 @@ """The backups api.""" + import webob from webob import exc from xml.dom import minidom @@ -26,10 +27,9 @@ from cinder.api.views import backups as backup_views from cinder.api import xmlutil from cinder import backup as backupAPI from cinder import exception -from cinder import flags from cinder.openstack.common import log as logging -FLAGS = flags.FLAGS + LOG = logging.getLogger(__name__) diff --git a/cinder/api/contrib/extended_snapshot_attributes.py b/cinder/api/contrib/extended_snapshot_attributes.py index f55fa53ac..d4219387b 100644 --- a/cinder/api/contrib/extended_snapshot_attributes.py +++ b/cinder/api/contrib/extended_snapshot_attributes.py @@ -14,18 +14,17 @@ """The Extended Snapshot Attributes API extension.""" + from webob import exc from cinder.api import extensions from cinder.api.openstack import wsgi from cinder.api import xmlutil from cinder import exception -from cinder import flags from cinder.openstack.common import log as logging from cinder import volume -FLAGS = flags.FLAGS LOG = logging.getLogger(__name__) authorize = extensions.soft_extension_authorizer( 'volume', diff --git a/cinder/api/contrib/hosts.py b/cinder/api/contrib/hosts.py index 0fc85481d..1a853f339 100644 --- a/cinder/api/contrib/hosts.py +++ b/cinder/api/contrib/hosts.py @@ -15,6 +15,8 @@ """The hosts admin extension.""" + +from oslo.config import cfg import webob.exc from xml.parsers import expat @@ -23,13 +25,14 @@ from cinder.api.openstack import wsgi from cinder.api import xmlutil from cinder import db from cinder import exception -from cinder import flags from cinder.openstack.common import log as logging from cinder.openstack.common import timeutils from cinder import utils from cinder.volume import api as volume_api -FLAGS = flags.FLAGS + +CONF = cfg.CONF + LOG = logging.getLogger(__name__) authorize = extensions.extension_authorizer('volume', 'hosts') @@ -103,7 +106,7 @@ def _list_hosts(req, service=None): hosts = [] for host in services: delta = curr_time - (host['updated_at'] or host['created_at']) - alive = abs(utils.total_seconds(delta)) <= FLAGS.service_down_time + alive = abs(utils.total_seconds(delta)) <= CONF.service_down_time status = (alive and "available") or "unavailable" active = 'enabled' if host['disabled']: @@ -205,7 +208,7 @@ class HostController(object): try: host_ref = db.service_get_by_host_and_topic(context, host, - FLAGS.volume_topic) + CONF.volume_topic) except exception.ServiceNotFound: raise webob.exc.HTTPNotFound(explanation=_("Host not found")) diff --git a/cinder/api/contrib/volume_actions.py b/cinder/api/contrib/volume_actions.py index 50587c369..7ab19d710 100644 --- a/cinder/api/contrib/volume_actions.py +++ b/cinder/api/contrib/volume_actions.py @@ -18,14 +18,12 @@ from cinder.api import extensions from cinder.api.openstack import wsgi from cinder.api import xmlutil from cinder import exception -from cinder import flags from cinder.openstack.common import log as logging from cinder.openstack.common.rpc import common as rpc_common from cinder import utils from cinder import volume -FLAGS = flags.FLAGS LOG = logging.getLogger(__name__) diff --git a/cinder/api/extensions.py b/cinder/api/extensions.py index 67e682a0c..744adfcbd 100644 --- a/cinder/api/extensions.py +++ b/cinder/api/extensions.py @@ -18,6 +18,7 @@ import os +from oslo.config import cfg import webob.dec import webob.exc @@ -25,15 +26,15 @@ import cinder.api.openstack from cinder.api.openstack import wsgi from cinder.api import xmlutil from cinder import exception -from cinder import flags from cinder.openstack.common import exception as common_exception from cinder.openstack.common import importutils from cinder.openstack.common import log as logging import cinder.policy +CONF = cfg.CONF + LOG = logging.getLogger(__name__) -FLAGS = flags.FLAGS class ExtensionDescriptor(object): @@ -183,7 +184,7 @@ class ExtensionManager(object): def __init__(self): LOG.audit(_('Initializing extension manager.')) - self.cls_list = FLAGS.osapi_volume_extension + self.cls_list = CONF.osapi_volume_extension self.extensions = {} self._load_extensions() diff --git a/cinder/api/middleware/auth.py b/cinder/api/middleware/auth.py index 6c6e23862..17bda1f94 100644 --- a/cinder/api/middleware/auth.py +++ b/cinder/api/middleware/auth.py @@ -18,6 +18,8 @@ Common Auth Middleware. """ + + import os from oslo.config import cfg @@ -26,26 +28,27 @@ import webob.exc from cinder.api.openstack import wsgi from cinder import context -from cinder import flags from cinder.openstack.common import log as logging from cinder import wsgi as base_wsgi + use_forwarded_for_opt = cfg.BoolOpt( 'use_forwarded_for', default=False, help='Treat X-Forwarded-For as the canonical remote address. ' 'Only enable this if you have a sanitizing proxy.') -FLAGS = flags.FLAGS -FLAGS.register_opt(use_forwarded_for_opt) +CONF = cfg.CONF +CONF.register_opt(use_forwarded_for_opt) + LOG = logging.getLogger(__name__) def pipeline_factory(loader, global_conf, **local_conf): """A paste pipeline replica that keys off of auth_strategy.""" - pipeline = local_conf[FLAGS.auth_strategy] - if not FLAGS.api_rate_limit: - limit_name = FLAGS.auth_strategy + '_nolimit' + pipeline = local_conf[CONF.auth_strategy] + if not CONF.api_rate_limit: + limit_name = CONF.auth_strategy + '_nolimit' pipeline = local_conf.get(limit_name, pipeline) pipeline = pipeline.split() filters = [loader.get_filter(n) for n in pipeline[:-1]] @@ -94,7 +97,7 @@ class CinderKeystoneContext(base_wsgi.Middleware): # Build a context, including the auth_token... remote_address = req.remote_addr - if FLAGS.use_forwarded_for: + if CONF.use_forwarded_for: remote_address = req.headers.get('X-Forwarded-For', remote_address) ctx = context.RequestContext(user_id, project_id, @@ -129,7 +132,7 @@ class NoAuthMiddleware(base_wsgi.Middleware): user_id, _sep, project_id = token.partition(':') project_id = project_id or user_id remote_address = getattr(req, 'remote_address', '127.0.0.1') - if FLAGS.use_forwarded_for: + if CONF.use_forwarded_for: remote_address = req.headers.get('X-Forwarded-For', remote_address) ctx = context.RequestContext(user_id, project_id, diff --git a/cinder/api/middleware/sizelimit.py b/cinder/api/middleware/sizelimit.py index 868db0f39..588df2c18 100644 --- a/cinder/api/middleware/sizelimit.py +++ b/cinder/api/middleware/sizelimit.py @@ -18,21 +18,23 @@ Request Body limiting middleware. """ + from oslo.config import cfg import webob.dec import webob.exc -from cinder import flags from cinder.openstack.common import log as logging from cinder import wsgi + #default request size is 112k max_request_body_size_opt = cfg.IntOpt('osapi_max_request_body_size', default=114688, help='Max size for body of a request') -FLAGS = flags.FLAGS -FLAGS.register_opt(max_request_body_size_opt) +CONF = cfg.CONF +CONF.register_opt(max_request_body_size_opt) + LOG = logging.getLogger(__name__) @@ -73,11 +75,11 @@ class RequestBodySizeLimiter(wsgi.Middleware): @webob.dec.wsgify(RequestClass=wsgi.Request) def __call__(self, req): - if req.content_length > FLAGS.osapi_max_request_body_size: + if req.content_length > CONF.osapi_max_request_body_size: msg = _("Request is too large.") raise webob.exc.HTTPRequestEntityTooLarge(explanation=msg) if req.content_length is None and req.is_body_readable: limiter = LimitingReader(req.body_file, - FLAGS.osapi_max_request_body_size) + CONF.osapi_max_request_body_size) req.body_file = limiter return self.application diff --git a/cinder/api/v1/snapshots.py b/cinder/api/v1/snapshots.py index 6dd24e1a7..05a7ee0fa 100644 --- a/cinder/api/v1/snapshots.py +++ b/cinder/api/v1/snapshots.py @@ -23,7 +23,6 @@ from cinder.api.openstack import wsgi from cinder.api.v1 import volumes from cinder.api import xmlutil from cinder import exception -from cinder import flags from cinder.openstack.common import log as logging from cinder.openstack.common import strutils from cinder import utils @@ -33,9 +32,6 @@ from cinder import volume LOG = logging.getLogger(__name__) -FLAGS = flags.FLAGS - - def _translate_snapshot_detail_view(context, snapshot): """Maps keys for snapshots details view.""" diff --git a/cinder/api/v1/volumes.py b/cinder/api/v1/volumes.py index b7a687ee1..fa395b402 100644 --- a/cinder/api/v1/volumes.py +++ b/cinder/api/v1/volumes.py @@ -22,7 +22,6 @@ from cinder.api import common from cinder.api.openstack import wsgi from cinder.api import xmlutil from cinder import exception -from cinder import flags from cinder.openstack.common import log as logging from cinder.openstack.common import uuidutils from cinder import utils @@ -33,9 +32,6 @@ from cinder.volume import volume_types LOG = logging.getLogger(__name__) -FLAGS = flags.FLAGS - - def _translate_attachment_detail_view(_context, vol): """Maps keys for attachment details view.""" diff --git a/cinder/api/v2/snapshots.py b/cinder/api/v2/snapshots.py index 5c7dc1f9b..47a21f310 100644 --- a/cinder/api/v2/snapshots.py +++ b/cinder/api/v2/snapshots.py @@ -23,7 +23,6 @@ from cinder.api.openstack import wsgi from cinder.api.v2 import volumes from cinder.api import xmlutil from cinder import exception -from cinder import flags from cinder.openstack.common import log as logging from cinder.openstack.common import strutils from cinder import utils @@ -33,9 +32,6 @@ from cinder import volume LOG = logging.getLogger(__name__) -FLAGS = flags.FLAGS - - def _translate_snapshot_detail_view(context, snapshot): """Maps keys for snapshots details view.""" diff --git a/cinder/api/v2/volumes.py b/cinder/api/v2/volumes.py index 66cb280df..6ef8997a2 100644 --- a/cinder/api/v2/volumes.py +++ b/cinder/api/v2/volumes.py @@ -15,6 +15,7 @@ """The volumes api.""" + import webob from webob import exc @@ -23,7 +24,6 @@ from cinder.api.openstack import wsgi from cinder.api.v2.views import volumes as volume_views from cinder.api import xmlutil from cinder import exception -from cinder import flags from cinder.openstack.common import log as logging from cinder.openstack.common import uuidutils from cinder import utils @@ -34,7 +34,6 @@ from cinder.volume import volume_types LOG = logging.getLogger(__name__) SCHEDULER_HINTS_NAMESPACE =\ "http://docs.openstack.org/block-service/ext/scheduler-hints/api/v2" -FLAGS = flags.FLAGS def make_attachment(elem): diff --git a/cinder/api/versions.py b/cinder/api/versions.py index 30627bd29..954ed9e55 100644 --- a/cinder/api/versions.py +++ b/cinder/api/versions.py @@ -15,15 +15,18 @@ # License for the specific language governing permissions and limitations # under the License. + import datetime + from lxml import etree +from oslo.config import cfg from cinder.api.openstack import wsgi from cinder.api.views import versions as views_versions from cinder.api import xmlutil -from cinder import flags -FLAGS = flags.FLAGS + +CONF = cfg.CONF _KNOWN_VERSIONS = { @@ -87,16 +90,15 @@ _KNOWN_VERSIONS = { } ], } - } def get_supported_versions(): versions = {} - if FLAGS.enable_v1_api: + if CONF.enable_v1_api: versions['v1.0'] = _KNOWN_VERSIONS['v1.0'] - if FLAGS.enable_v2_api: + if CONF.enable_v2_api: versions['v2.0'] = _KNOWN_VERSIONS['v2.0'] return versions