# 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)
# 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'
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
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)
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)
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,
"""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,
"""
+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__)
def select_extensions(ext_mgr):
extensions.load_standard_extensions(ext_mgr, LOG, __path__, __package__,
- FLAGS.osapi_volume_ext_list)
+ CONF.osapi_volume_ext_list)
"""The backups api."""
+
import webob
from webob import exc
from xml.dom import minidom
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__)
"""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',
"""The hosts admin extension."""
+
+from oslo.config import cfg
import webob.exc
from xml.parsers import expat
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')
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']:
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"))
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__)
import os
+from oslo.config import cfg
import webob.dec
import webob.exc
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):
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()
Common Auth Middleware.
"""
+
+
import os
from oslo.config import cfg
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]]
# 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,
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,
"""
+
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__)
@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
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
LOG = logging.getLogger(__name__)
-FLAGS = flags.FLAGS
-
-
def _translate_snapshot_detail_view(context, snapshot):
"""Maps keys for snapshots details view."""
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
LOG = logging.getLogger(__name__)
-FLAGS = flags.FLAGS
-
-
def _translate_attachment_detail_view(_context, vol):
"""Maps keys for attachment details view."""
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
LOG = logging.getLogger(__name__)
-FLAGS = flags.FLAGS
-
-
def _translate_snapshot_detail_view(context, snapshot):
"""Maps keys for snapshots details view."""
"""The volumes api."""
+
import webob
from webob import exc
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
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):
# 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 = {
}
],
}
-
}
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