From 67f39bf1f25a547016cee5bf81fb9e29de52b7a9 Mon Sep 17 00:00:00 2001 From: Sergey Vilgelm Date: Mon, 10 Jun 2013 12:52:13 +0400 Subject: [PATCH] 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 --- cinder/api/__init__.py | 10 +++++----- cinder/api/common.py | 15 ++++++++------- cinder/api/contrib/__init__.py | 7 ++++--- cinder/api/contrib/backups.py | 4 ++-- .../contrib/extended_snapshot_attributes.py | 3 +-- cinder/api/contrib/hosts.py | 11 +++++++---- cinder/api/contrib/volume_actions.py | 2 -- cinder/api/extensions.py | 7 ++++--- cinder/api/middleware/auth.py | 19 +++++++++++-------- cinder/api/middleware/sizelimit.py | 12 +++++++----- cinder/api/v1/snapshots.py | 4 ---- cinder/api/v1/volumes.py | 4 ---- cinder/api/v2/snapshots.py | 4 ---- cinder/api/v2/volumes.py | 3 +-- cinder/api/versions.py | 12 +++++++----- 15 files changed, 57 insertions(+), 60 deletions(-) diff --git a/cinder/api/__init__.py b/cinder/api/__init__.py index fc348ac5659..8bd465ba430 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 94bf594c00b..0a076ac467e 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 @@ def _get_next_link(self, request, identifier): 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 @@ def _get_next_link(self, request, identifier): 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 @@ def _get_bookmark_link(self, request, identifier): """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 503bc90b8f1..7fb1e78690f 100644 --- a/cinder/api/contrib/__init__.py +++ b/cinder/api/contrib/__init__.py @@ -21,12 +21,13 @@ """ +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 02444ac5502..81c89537241 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 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 f55fa53ac25..d4219387b6a 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 0fc85481d6e..1a853f33990 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 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 @@ def show(self, req, id): 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 50587c36926..7ab19d710e6 100644 --- a/cinder/api/contrib/volume_actions.py +++ b/cinder/api/contrib/volume_actions.py @@ -18,14 +18,12 @@ 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 67e682a0cce..744adfcbd53 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 @@ 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 6c6e23862c6..17bda1f94fb 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 @@ 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 @@ def __call__(self, req): # 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 @@ def __call__(self, req): 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 868db0f39e2..588df2c189c 100644 --- a/cinder/api/middleware/sizelimit.py +++ b/cinder/api/middleware/sizelimit.py @@ -18,21 +18,23 @@ """ + 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 @@ def __init__(self, *args, **kwargs): @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 6dd24e1a704..05a7ee0fa96 100644 --- a/cinder/api/v1/snapshots.py +++ b/cinder/api/v1/snapshots.py @@ -23,7 +23,6 @@ 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 @@ 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 b7a687ee1f7..fa395b402e2 100644 --- a/cinder/api/v1/volumes.py +++ b/cinder/api/v1/volumes.py @@ -22,7 +22,6 @@ 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 @@ 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 5c7dc1f9b9d..47a21f310fe 100644 --- a/cinder/api/v2/snapshots.py +++ b/cinder/api/v2/snapshots.py @@ -23,7 +23,6 @@ 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 @@ 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 66cb280df64..6ef8997a2ad 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.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 @@ 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 30627bd29a8..954ed9e55e9 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 @@ } ], } - } 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