diff --git a/doc/source/conf.py b/doc/source/conf.py index 125e2410..32bdfb43 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -24,7 +24,7 @@ source_suffix = '.rst' master_doc = 'index' # General information about the project. -project = u'glance.store' +project = u'glance_store' copyright = u'2014, OpenStack Foundation' # If true, '()' will be appended to :func: etc. cross-reference text. diff --git a/doc/source/index.rst b/doc/source/index.rst index 11a5044a..50350a85 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -1,7 +1,7 @@ -glance.store +glance_store ============ -The glance.store library supports the creation, deletion and gather of data +The glance_store library supports the creation, deletion and gather of data assets from/to a set of several, different, storage technologies Contents @@ -16,9 +16,9 @@ Release Notes 0.0.1a1 ------- -* Initial release of glance.store_. +* Initial release of glance_store_. -.. _glance.store: https://wiki.openstack.org/wiki/Glance/Store +.. _glance_store: https://wiki.openstack.org/wiki/Glance/Store Indices and tables ================== diff --git a/glance/__init__.py b/glance/__init__.py deleted file mode 100644 index 442771aa..00000000 --- a/glance/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright 2014 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. - -__import__('pkg_resources').declare_namespace(__name__) diff --git a/glance/store/__init__.py b/glance_store/__init__.py similarity index 100% rename from glance/store/__init__.py rename to glance_store/__init__.py diff --git a/glance/store/_drivers/__init__.py b/glance_store/_drivers/__init__.py similarity index 100% rename from glance/store/_drivers/__init__.py rename to glance_store/_drivers/__init__.py diff --git a/glance/store/_drivers/cinder.py b/glance_store/_drivers/cinder.py similarity index 92% rename from glance/store/_drivers/cinder.py rename to glance_store/_drivers/cinder.py index 62508435..905af40f 100644 --- a/glance/store/_drivers/cinder.py +++ b/glance_store/_drivers/cinder.py @@ -19,11 +19,11 @@ from cinderclient import service_catalog from cinderclient.v2 import client as cinderclient from oslo.config import cfg -from glance.store.common import utils -import glance.store.driver -from glance.store import exceptions -from glance.store.i18n import _ -import glance.store.location +from glance_store.common import utils +import glance_store.driver +from glance_store import exceptions +from glance_store.i18n import _ +import glance_store.location LOG = logging.getLogger(__name__) @@ -100,7 +100,7 @@ def get_cinderclient(conf, context): return c -class StoreLocation(glance.store.location.StoreLocation): +class StoreLocation(glance_store.location.StoreLocation): """Class describing a Cinder URI""" @@ -126,7 +126,7 @@ class StoreLocation(glance.store.location.StoreLocation): raise exceptions.BadStoreUri(message=reason) -class Store(glance.store.driver.Store): +class Store(glance_store.driver.Store): """Cinder backend store adapter.""" @@ -155,12 +155,12 @@ class Store(glance.store.driver.Store): def get_size(self, location, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file and returns the image size - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() - :raises `glance.store.exceptions.NotFound` if image does not exist + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() + :raises `glance_store.exceptions.NotFound` if image does not exist :rtype int """ diff --git a/glance/store/_drivers/filesystem.py b/glance_store/_drivers/filesystem.py similarity index 92% rename from glance/store/_drivers/filesystem.py rename to glance_store/_drivers/filesystem.py index 82eac26c..b4408558 100644 --- a/glance/store/_drivers/filesystem.py +++ b/glance_store/_drivers/filesystem.py @@ -26,16 +26,16 @@ import urlparse from oslo.config import cfg -import glance.store -from glance.store.common import utils -import glance.store.driver -from glance.store import exceptions -from glance.store.i18n import _ -import glance.store.location -from glance.store.openstack.common import excutils -from glance.store.openstack.common import jsonutils -from glance.store.openstack.common import processutils -from glance.store.openstack.common import units +import glance_store +from glance_store.common import utils +import glance_store.driver +from glance_store import exceptions +from glance_store.i18n import _ +import glance_store.location +from glance_store.openstack.common import excutils +from glance_store.openstack.common import jsonutils +from glance_store.openstack.common import processutils +from glance_store.openstack.common import units LOG = logging.getLogger(__name__) @@ -54,7 +54,7 @@ _FILESYSTEM_CONFIGS = [ "contain a valid JSON dict."))] -class StoreLocation(glance.store.location.StoreLocation): +class StoreLocation(glance_store.location.StoreLocation): """Class describing a Filesystem URI.""" def process_specs(self): @@ -113,7 +113,7 @@ class ChunkedFile(object): self.fp = None -class Store(glance.store.driver.Store): +class Store(glance_store.driver.Store): OPTIONS = _FILESYSTEM_CONFIGS READ_CHUNKSIZE = 64 * units.Ki @@ -281,7 +281,7 @@ class Store(glance.store.driver.Store): with open(metadata_file, 'r') as fptr: metadata = jsonutils.load(fptr) - glance.store.check_location_metadata(metadata) + glance_store.check_location_metadata(metadata) return metadata except exceptions.BackendException as bee: LOG.error(_('The JSON in the metadata file %(file)s could not ' @@ -303,13 +303,13 @@ class Store(glance.store.driver.Store): def get(self, location, offset=0, chunk_size=None, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file, and returns a tuple of generator (for reading the image file) and image_size - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() - :raises `glance.store.exceptions.NotFound` if image does not exist + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() + :raises `glance_store.exceptions.NotFound` if image does not exist """ filepath, filesize = self._resolve_location(location) msg = _("Found image at %s. Returning in ChunkedFile.") % filepath @@ -320,12 +320,12 @@ class Store(glance.store.driver.Store): def get_size(self, location, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file and returns the image size - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() - :raises `glance.store.exceptions.NotFound` if image does not exist + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() + :raises `glance_store.exceptions.NotFound` if image does not exist :rtype int """ filepath, filesize = self._resolve_location(location) @@ -335,11 +335,11 @@ class Store(glance.store.driver.Store): def delete(self, location, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file to delete - :location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() + :location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() :raises NotFound if image does not exist :raises Forbidden if cannot delete because of permissions @@ -417,7 +417,7 @@ class Store(glance.store.driver.Store): :retval tuple of URL in backing store, bytes written, checksum and a dictionary with storage system specific information - :raises `glance.store.exceptions.Duplicate` if the image already + :raises `glance_store.exceptions.Duplicate` if the image already existed :note By default, the backend writes the image data to a file diff --git a/glance/store/_drivers/gridfs.py b/glance_store/_drivers/gridfs.py similarity index 86% rename from glance/store/_drivers/gridfs.py rename to glance_store/_drivers/gridfs.py index 3f7a1b50..69dadd4f 100644 --- a/glance/store/_drivers/gridfs.py +++ b/glance_store/_drivers/gridfs.py @@ -21,11 +21,11 @@ import urlparse from oslo.config import cfg -import glance.store.driver -from glance.store import exceptions -from glance.store.i18n import _ -import glance.store.location -from glance.store.openstack.common import excutils +import glance_store.driver +from glance_store import exceptions +from glance_store.i18n import _ +import glance_store.location +from glance_store.openstack.common import excutils try: import gridfs @@ -48,7 +48,7 @@ _GRIDFS_OPTS = [ ] -class StoreLocation(glance.store.location.StoreLocation): +class StoreLocation(glance_store.location.StoreLocation): """ Class describing an gridfs URI: @@ -77,7 +77,7 @@ class StoreLocation(glance.store.location.StoreLocation): self.specs["image_id"] = parsed.netloc -class Store(glance.store.driver.Store): +class Store(glance_store.driver.Store): """GridFS adapter""" OPTIONS = _GRIDFS_OPTS @@ -119,25 +119,25 @@ class Store(glance.store.driver.Store): def get(self, location, offset=0, chunk_size=None, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file, and returns a tuple of generator (for reading the image file) and image_size - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() - :raises `glance.store.exceptions.NotFound` if image does not exist + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() + :raises `glance_store.exceptions.NotFound` if image does not exist """ image = self._get_file(location) return (image, image.length) def get_size(self, location, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file, and returns the image_size (or 0 if unavailable) - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() """ try: key = self._get_file(location) @@ -147,7 +147,7 @@ class Store(glance.store.driver.Store): def _get_file(self, location): store_location = location - if isinstance(location, glance.store.location.Location): + if isinstance(location, glance_store.location.Location): store_location = location.store_location try: @@ -171,7 +171,7 @@ class Store(glance.store.driver.Store): :retval tuple of URL in backing store, bytes written, checksum and a dictionary with storage system specific information - :raises `glance.store.exceptions.Duplicate` if the image already + :raises `glance_store.exceptions.Duplicate` if the image already existed """ loc = StoreLocation({'image_id': image_id}) @@ -201,11 +201,11 @@ class Store(glance.store.driver.Store): def delete(self, location, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file to delete - :location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() + :location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() :raises NotFound if image does not exist """ diff --git a/glance/store/_drivers/http.py b/glance_store/_drivers/http.py similarity index 90% rename from glance/store/_drivers/http.py rename to glance_store/_drivers/http.py index ee976ad0..e391c513 100644 --- a/glance/store/_drivers/http.py +++ b/glance_store/_drivers/http.py @@ -18,10 +18,10 @@ import logging import socket import urlparse -import glance.store.driver -from glance.store import exceptions -from glance.store.i18n import _ -import glance.store.location +import glance_store.driver +from glance_store import exceptions +from glance_store.i18n import _ +import glance_store.location LOG = logging.getLogger(__name__) @@ -29,7 +29,7 @@ LOG = logging.getLogger(__name__) MAX_REDIRECTS = 5 -class StoreLocation(glance.store.location.StoreLocation): +class StoreLocation(glance_store.location.StoreLocation): """Class describing an HTTP(S) URI""" @@ -106,25 +106,25 @@ def http_response_iterator(conn, response, size): conn.close() -class Store(glance.store.driver.Store): +class Store(glance_store.driver.Store): """An implementation of the HTTP(S) Backend Adapter""" def get(self, location, offset=0, chunk_size=None, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file, and returns a tuple of generator (for reading the image file) and image_size - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() """ conn, resp, content_length = self._query(location, 'GET') cs = chunk_size or self.READ_CHUNKSIZE iterator = http_response_iterator(conn, resp, cs) - class ResponseIndexable(glance.store.Indexable): + class ResponseIndexable(glance_store.Indexable): def another(self): try: return self.wrapped.next() @@ -138,11 +138,11 @@ class Store(glance.store.driver.Store): def get_size(self, location, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file, and returns the size - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() """ try: size = self._query(location, 'HEAD')[2] @@ -189,7 +189,7 @@ class Store(glance.store.driver.Store): dict(url=loc.path, status=resp.status)) LOG.info(reason) raise exceptions.BadStoreUri(message=reason) - location_class = glance.store.location.Location + location_class = glance_store.location.Location new_loc = location_class(location.store_name, location.store_location.__class__, uri=location_header, diff --git a/glance/store/_drivers/rbd.py b/glance_store/_drivers/rbd.py similarity index 93% rename from glance/store/_drivers/rbd.py rename to glance_store/_drivers/rbd.py index 68b6dee3..e4cb990f 100644 --- a/glance/store/_drivers/rbd.py +++ b/glance_store/_drivers/rbd.py @@ -25,12 +25,12 @@ import urllib from oslo.config import cfg -from glance.store.common import utils -from glance.store import driver -from glance.store import exceptions -from glance.store import i18n -from glance.store.i18n import _ -from glance.store import location +from glance_store.common import utils +from glance_store import driver +from glance_store import exceptions +from glance_store import i18n +from glance_store.i18n import _ +from glance_store import location try: import rados @@ -206,13 +206,13 @@ class Store(driver.Store): def get(self, location, offset=0, chunk_size=None, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file, and returns a tuple of generator (for reading the image file) and image_size - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() - :raises `glance.store.exceptions.NotFound` if image does not exist + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() + :raises `glance_store.exceptions.NotFound` if image does not exist """ loc = location.store_location return (ImageIterator(loc.image, self), @@ -220,12 +220,12 @@ class Store(driver.Store): def get_size(self, location, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file, and returns the size - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() - :raises `glance.store.exceptions.NotFound` if image does not exist + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() + :raises `glance_store.exceptions.NotFound` if image does not exist """ loc = location.store_location with rados.Rados(conffile=self.conf_file, @@ -250,7 +250,7 @@ class Store(driver.Store): :param image_name Image's name - :retval `glance.store.rbd.StoreLocation` object + :retval `glance_store.rbd.StoreLocation` object """ librbd = rbd.RBD() if hasattr(rbd, 'RBD_FEATURE_LAYERING'): @@ -318,7 +318,7 @@ class Store(driver.Store): :retval tuple of URL in backing store, bytes written, checksum and a dictionary with storage system specific information - :raises `glance.store.exceptions.Duplicate` if the image already + :raises `glance_store.exceptions.Duplicate` if the image already existed """ checksum = hashlib.md5() @@ -385,11 +385,11 @@ class Store(driver.Store): def delete(self, location, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file to delete. - :location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() + :location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() :raises NotFound if image does not exist; InUseByStore if image is in use or snapshot unprotect failed diff --git a/glance/store/_drivers/s3.py b/glance_store/_drivers/s3.py similarity index 93% rename from glance/store/_drivers/s3.py rename to glance_store/_drivers/s3.py index af429a80..8c3a4dfc 100644 --- a/glance/store/_drivers/s3.py +++ b/glance_store/_drivers/s3.py @@ -24,13 +24,13 @@ import urlparse from oslo.config import cfg -import glance.store -from glance.store.common import utils -import glance.store.driver -from glance.store import exceptions -from glance.store.i18n import _ -import glance.store.location -from glance.store.openstack.common import units +import glance_store +from glance_store.common import utils +import glance_store.driver +from glance_store import exceptions +from glance_store.i18n import _ +import glance_store.location +from glance_store.openstack.common import units LOG = logging.getLogger(__name__) @@ -57,7 +57,7 @@ _S3_OPTS = [ ] -class StoreLocation(glance.store.location.StoreLocation): +class StoreLocation(glance_store.location.StoreLocation): """ Class describing an S3 URI. An S3 URI can look like any of @@ -208,7 +208,7 @@ class ChunkedFile(object): self.fp = None -class Store(glance.store.driver.Store): +class Store(glance_store.driver.Store): """An implementation of the s3 adapter.""" OPTIONS = _S3_OPTS @@ -262,19 +262,19 @@ class Store(glance.store.driver.Store): def get(self, location, offset=0, chunk_size=None, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file, and returns a tuple of generator (for reading the image file) and image_size - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() - :raises `glance.store.exceptions.NotFound` if image does not exist + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() + :raises `glance_store.exceptions.NotFound` if image does not exist """ key = self._retrieve_key(location) cs = chunk_size or self.READ_CHUNKSIZE key.BufferSize = cs - class ChunkedIndexable(glance.store.Indexable): + class ChunkedIndexable(glance_store.Indexable): def another(self): return (self.wrapped.fp.read(cs) if self.wrapped.fp else None) @@ -283,12 +283,12 @@ class Store(glance.store.driver.Store): def get_size(self, location, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file, and returns the image_size (or 0 if unavailable) - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() """ try: key = self._retrieve_key(location) @@ -333,7 +333,7 @@ class Store(glance.store.driver.Store): :retval tuple of URL in backing store, bytes written, checksum and a dictionary with storage system specific information - :raises `glance.store.exceptions.Duplicate` if the image already + :raises `glance_store.exceptions.Duplicate` if the image already existed S3 writes the image data using the scheme: @@ -430,11 +430,11 @@ class Store(glance.store.driver.Store): def delete(self, location, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file to delete - :location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() + :location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() :raises NotFound if image does not exist """ @@ -470,7 +470,7 @@ def get_bucket(conn, bucket_id): :param conn: The ``boto.s3.connection.S3Connection`` :param bucket_id: ID of the bucket to fetch - :raises ``glance.store.exceptions.NotFound`` if bucket is not found. + :raises ``glance_store.exceptions.NotFound`` if bucket is not found. """ bucket = conn.get_bucket(bucket_id) @@ -519,14 +519,14 @@ def create_bucket_if_missing(bucket, s3_conn): except S3ResponseError as e: msg = (_("Failed to add bucket to S3.\n" "Got error from S3: %(e)s") % {'e': e}) - raise glance.store.BackendException(msg) + raise glance_store.BackendException(msg) else: msg = (_("The bucket %(bucket)s does not exist in " "S3. Please set the " "s3_store_create_bucket_on_put option " "to add bucket to S3 automatically.") % {'bucket': bucket}) - raise glance.store.BackendException(msg) + raise glance_store.BackendException(msg) def get_key(bucket, obj): @@ -535,7 +535,7 @@ def get_key(bucket, obj): :param bucket: The ``boto.s3.Bucket`` :param obj: Object to get the key for - :raises ``glance.store.exceptions.NotFound`` if key is not found. + :raises ``glance_store.exceptions.NotFound`` if key is not found. """ key = bucket.get_key(obj) diff --git a/glance/store/_drivers/sheepdog.py b/glance_store/_drivers/sheepdog.py similarity index 88% rename from glance/store/_drivers/sheepdog.py rename to glance_store/_drivers/sheepdog.py index a240b531..4c6a3702 100644 --- a/glance/store/_drivers/sheepdog.py +++ b/glance_store/_drivers/sheepdog.py @@ -20,14 +20,14 @@ import logging from oslo.config import cfg -import glance.store -import glance.store.driver -from glance.store import exceptions -from glance.store.i18n import _ -import glance.store.location -from glance.store.openstack.common import excutils -from glance.store.openstack.common import processutils -from glance.store.openstack.common import units +import glance_store +import glance_store.driver +from glance_store import exceptions +from glance_store.i18n import _ +import glance_store.location +from glance_store.openstack.common import excutils +from glance_store.openstack.common import processutils +from glance_store.openstack.common import units LOG = logging.getLogger(__name__) @@ -76,7 +76,7 @@ class SheepdogImage: cmd, process_input=data, shell=True)[0] except processutils.ProcessExecutionError as exc: LOG.error(exc) - raise glance.store.BackendException(exc) + raise glance_store.BackendException(exc) def get_size(self): """ @@ -134,7 +134,7 @@ class SheepdogImage: return True -class StoreLocation(glance.store.location.StoreLocation): +class StoreLocation(glance_store.location.StoreLocation): """ Class describing a Sheepdog URI. This is of the form: @@ -175,7 +175,7 @@ class ImageIterator(object): raise StopIteration() -class Store(glance.store.driver.Store): +class Store(glance_store.driver.Store): """Sheepdog backend adapter.""" EXAMPLE_URL = "sheepdog://image" @@ -214,13 +214,13 @@ class Store(glance.store.driver.Store): def get(self, location, offset=0, chunk_size=None, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file, and returns a generator for reading the image file - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() - :raises `glance.store.exceptions.NotFound` if image does not exist + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() + :raises `glance_store.exceptions.NotFound` if image does not exist """ loc = location.store_location @@ -233,12 +233,12 @@ class Store(glance.store.driver.Store): def get_size(self, location, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file and returns the image size - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() - :raises `glance.store.exceptions.NotFound` if image does not exist + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() + :raises `glance_store.exceptions.NotFound` if image does not exist :rtype int """ @@ -261,7 +261,7 @@ class Store(glance.store.driver.Store): :param image_size: The size of the image data to write, in bytes :retval tuple of URL in backing store, bytes written, and checksum - :raises `glance.store.exceptions.Duplicate` if the image already + :raises `glance_store.exceptions.Duplicate` if the image already existed """ @@ -294,11 +294,11 @@ class Store(glance.store.driver.Store): def delete(self, location, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file to delete - :location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() + :location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() :raises NotFound if image does not exist """ diff --git a/glance/store/_drivers/swift/__init__.py b/glance_store/_drivers/swift/__init__.py similarity index 85% rename from glance/store/_drivers/swift/__init__.py rename to glance_store/_drivers/swift/__init__.py index 891b61e7..d9c1ce55 100644 --- a/glance/store/_drivers/swift/__init__.py +++ b/glance_store/_drivers/swift/__init__.py @@ -13,5 +13,5 @@ # License for the specific language governing permissions and limitations # under the License. -from glance.store._drivers.swift import utils # noqa -from glance.store._drivers.swift.store import * # noqa +from glance_store._drivers.swift import utils # noqa +from glance_store._drivers.swift.store import * # noqa diff --git a/glance/store/_drivers/swift/store.py b/glance_store/_drivers/swift/store.py similarity index 98% rename from glance/store/_drivers/swift/store.py rename to glance_store/_drivers/swift/store.py index 0fce94e3..d99829d9 100644 --- a/glance/store/_drivers/swift/store.py +++ b/glance_store/_drivers/swift/store.py @@ -25,14 +25,14 @@ import six.moves.urllib.parse as urlparse import swiftclient import urllib -import glance.store -from glance.store._drivers.swift import utils as sutils -from glance.store.common import auth -from glance.store import driver -from glance.store import exceptions -from glance.store import i18n -from glance.store import location -from glance.store.openstack.common import excutils +import glance_store +from glance_store._drivers.swift import utils as sutils +from glance_store.common import auth +from glance_store import driver +from glance_store import exceptions +from glance_store import i18n +from glance_store import location +from glance_store.openstack.common import excutils _ = i18n._ LOG = logging.getLogger(__name__) @@ -406,7 +406,7 @@ class BaseStore(driver.Store): (resp_headers, resp_body) = self._get_object(location, connection, context=context) - class ResponseIndexable(glance.store.Indexable): + class ResponseIndexable(glance_store.Indexable): def another(self): try: return self.wrapped.next() @@ -577,7 +577,7 @@ class BaseStore(driver.Store): msg = (_(u"Failed to add object to Swift.\n" "Got error from Swift: %s") % unicode(e)) LOG.error(msg) - raise glance.store.BackendException(msg) + raise glance_store.BackendException(msg) def delete(self, location, connection=None, context=None): location = location.store_location @@ -641,14 +641,14 @@ class BaseStore(driver.Store): except swiftclient.ClientException as e: msg = (_("Failed to add container to Swift.\n" "Got error from Swift: %(e)s") % {'e': e}) - raise glance.store.BackendException(msg) + raise glance_store.BackendException(msg) else: msg = (_("The container %(container)s does not exist in " "Swift. Please set the " "swift_store_create_container_on_put option" "to add container to Swift automatically.") % {'container': container}) - raise glance.store.BackendException(msg) + raise glance_store.BackendException(msg) else: raise diff --git a/glance/store/_drivers/swift/utils.py b/glance_store/_drivers/swift/utils.py similarity index 98% rename from glance/store/_drivers/swift/utils.py rename to glance_store/_drivers/swift/utils.py index 77c7a98b..97c1b127 100644 --- a/glance/store/_drivers/swift/utils.py +++ b/glance_store/_drivers/swift/utils.py @@ -22,8 +22,8 @@ except ImportError: from oslo.config import cfg -from glance.store import exceptions -from glance.store import i18n +from glance_store import exceptions +from glance_store import i18n swift_opts = [ cfg.StrOpt('default_swift_reference', diff --git a/glance/store/_drivers/vmware_datastore.py b/glance_store/_drivers/vmware_datastore.py similarity index 95% rename from glance/store/_drivers/vmware_datastore.py rename to glance_store/_drivers/vmware_datastore.py index 1d472f80..0e07107d 100644 --- a/glance/store/_drivers/vmware_datastore.py +++ b/glance_store/_drivers/vmware_datastore.py @@ -25,11 +25,11 @@ from oslo.config import cfg from oslo.vmware import api import six.moves.urllib.parse as urlparse -import glance.store -from glance.store import exceptions -from glance.store.i18n import _ -from glance.store import location -from glance.store.openstack.common import excutils +import glance_store +from glance_store import exceptions +from glance_store.i18n import _ +from glance_store import location +from glance_store.openstack.common import excutils LOG = logging.getLogger(__name__) @@ -202,7 +202,7 @@ class StoreLocation(location.StoreLocation): #raise exceptions.BadStoreUri(reason) -class Store(glance.store.Store): +class Store(glance_store.Store): """An implementation of the VMware datastore adapter.""" OPTIONS = _VMWARE_OPTS @@ -317,12 +317,12 @@ class Store(glance.store.Store): return (loc.get_uri(), image_file.size, checksum.hexdigest(), {}) def get(self, location, offset=0, chunk_size=None, context=None): - """Takes a `glance.store.location.Location` object that indicates + """Takes a `glance_store.location.Location` object that indicates where to find the image file, and returns a tuple of generator (for reading the image file) and image_size - :param location: `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() + :param location: `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() """ cookie = self._build_vim_cookie_header( self._session.vim.client.options.transport.cookiejar) @@ -331,7 +331,7 @@ class Store(glance.store.Store): headers={'Cookie': cookie}) iterator = http_response_iterator(conn, resp, self.CHUNKSIZE) - class ResponseIndexable(glance.store.Indexable): + class ResponseIndexable(glance_store.Indexable): def another(self): try: @@ -342,11 +342,11 @@ class Store(glance.store.Store): return (ResponseIndexable(iterator, content_length), content_length) def get_size(self, location, context=None): - """Takes a `glance.store.location.Location` object that indicates + """Takes a `glance_store.location.Location` object that indicates where to find the image file, and returns the size - :param location: `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() + :param location: `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() """ cookie = self._build_vim_cookie_header( self._session.vim.client.options.transport.cookiejar) @@ -354,11 +354,11 @@ class Store(glance.store.Store): return self._query(location, 'HEAD', headers={'Cookie': cookie})[2] def delete(self, location, context=None): - """Takes a `glance.store.location.Location` object that indicates + """Takes a `glance_store.location.Location` object that indicates where to find the image file to delete - :location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() + :location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() :raises NotFound if image does not exist """ file_path = '[%s] %s' % ( @@ -413,7 +413,7 @@ class Store(glance.store.Store): % {'path': loc.path, 'status': resp.status}) LOG.info(reason) raise exceptions.BadStoreUri(message=reason) - location_class = glance.store.location.Location + location_class = glance_store.location.Location new_loc = location_class(location.store_name, location.store_location.__class__, uri=location_header, diff --git a/glance/store/backend.py b/glance_store/backend.py similarity index 98% rename from glance/store/backend.py rename to glance_store/backend.py index d41202c2..4ab4d39d 100644 --- a/glance/store/backend.py +++ b/glance_store/backend.py @@ -19,9 +19,9 @@ import sys from oslo.config import cfg from stevedore import driver -from glance.store import exceptions -from glance.store.i18n import _ -from glance.store import location +from glance_store import exceptions +from glance_store.i18n import _ +from glance_store import location LOG = logging.getLogger(__name__) @@ -127,7 +127,7 @@ def _load_store(conf, store_entry): store_cls = None try: LOG.debug("Attempting to import store %s", store_entry) - mgr = driver.DriverManager('glance.store.drivers', + mgr = driver.DriverManager('glance_store.drivers', store_entry, invoke_args=[conf], invoke_on_load=True) diff --git a/glance/store/common/__init__.py b/glance_store/common/__init__.py similarity index 100% rename from glance/store/common/__init__.py rename to glance_store/common/__init__.py diff --git a/glance/store/common/auth.py b/glance_store/common/auth.py similarity index 99% rename from glance/store/common/auth.py rename to glance_store/common/auth.py index dc78cec1..2dffd156 100644 --- a/glance/store/common/auth.py +++ b/glance_store/common/auth.py @@ -33,7 +33,7 @@ import logging import six.moves.urllib.parse as urlparse -from glance.store.openstack.common import jsonutils +from glance_store.openstack.common import jsonutils LOG = logging.getLogger(__name__) diff --git a/glance/store/common/config.py b/glance_store/common/config.py similarity index 100% rename from glance/store/common/config.py rename to glance_store/common/config.py diff --git a/glance/store/common/utils.py b/glance_store/common/utils.py similarity index 100% rename from glance/store/common/utils.py rename to glance_store/common/utils.py diff --git a/glance/store/driver.py b/glance_store/driver.py similarity index 84% rename from glance/store/driver.py rename to glance_store/driver.py index c59038b8..1ff20ef7 100644 --- a/glance/store/driver.py +++ b/glance_store/driver.py @@ -20,10 +20,10 @@ import logging from oslo.config import cfg -from glance.store import exceptions -from glance.store.i18n import _ -from glance.store.openstack.common import importutils -from glance.store.openstack.common import strutils +from glance_store import exceptions +from glance_store.i18n import _ +from glance_store.openstack.common import importutils +from glance_store.openstack.common import strutils LOG = logging.getLogger(__name__) @@ -113,24 +113,24 @@ class Store(object): def get(self, location, offset=0, chunk_size=None, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file, and returns a tuple of generator (for reading the image file) and image_size - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() :raises `glance.exceptions.NotFound` if image does not exist """ raise NotImplementedError def get_size(self, location, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file, and returns the size - :param location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() - :raises `glance.store.exceptions.NotFound` if image does not exist + :param location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() + :raises `glance_store.exceptions.NotFound` if image does not exist """ raise NotImplementedError @@ -154,19 +154,19 @@ class Store(object): :retval tuple of URL in backing store, bytes written, checksum and a dictionary with storage system specific information - :raises `glance.store.exceptions.Duplicate` if the image already + :raises `glance_store.exceptions.Duplicate` if the image already existed """ raise NotImplementedError def delete(self, location, context=None): """ - Takes a `glance.store.location.Location` object that indicates + Takes a `glance_store.location.Location` object that indicates where to find the image file to delete - :location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() - :raises `glance.store.exceptions.NotFound` if image does not exist + :location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() + :raises `glance_store.exceptions.NotFound` if image does not exist """ raise NotImplementedError @@ -176,8 +176,8 @@ class Store(object): Sets the read and write access control list for an image in the backend store. - :location `glance.store.location.Location` object, supplied - from glance.store.location.get_location_from_uri() + :location `glance_store.location.Location` object, supplied + from glance_store.location.get_location_from_uri() :public A boolean indicating whether the image should be public. :read_tenants A list of tenant strings which should be granted read access for an image. diff --git a/glance/store/exceptions.py b/glance_store/exceptions.py similarity index 99% rename from glance/store/exceptions.py rename to glance_store/exceptions.py index 901b70f7..02d68dfb 100644 --- a/glance/store/exceptions.py +++ b/glance_store/exceptions.py @@ -15,7 +15,7 @@ """Glance Store exception subclasses""" -from glance.store.i18n import _ +from glance_store.i18n import _ class BackendException(Exception): diff --git a/glance/store/i18n.py b/glance_store/i18n.py similarity index 94% rename from glance/store/i18n.py rename to glance_store/i18n.py index 8785f5ce..756ceba3 100644 --- a/glance/store/i18n.py +++ b/glance_store/i18n.py @@ -15,7 +15,7 @@ from oslo import i18n -_translators = i18n.TranslatorFactory(domain='glance.store') +_translators = i18n.TranslatorFactory(domain='glance_store') # The primary translation function using the well-known name "_" _ = _translators.primary diff --git a/glance.store/locale/de/LC_MESSAGES/glance.store-log-error.po b/glance_store/locale/de/LC_MESSAGES/glance.store-log-error.po similarity index 78% rename from glance.store/locale/de/LC_MESSAGES/glance.store-log-error.po rename to glance_store/locale/de/LC_MESSAGES/glance.store-log-error.po index a2f1ddff..ea99b996 100644 --- a/glance.store/locale/de/LC_MESSAGES/glance.store-log-error.po +++ b/glance_store/locale/de/LC_MESSAGES/glance.store-log-error.po @@ -1,13 +1,13 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # # Translators: # Andreas Jaeger , 2014 msgid "" msgstr "" -"Project-Id-Version: glance.store\n" +"Project-Id-Version: glance_store\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: 2014-07-16 18:34+0000\n" @@ -21,12 +21,12 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: glance/store/openstack/common/excutils.py:76 +#: glance_store/openstack/common/excutils.py:76 #, python-format msgid "Original exception being dropped: %s" msgstr "Ursprüngliche Ausnahme wird gelöscht: %s" -#: glance/store/openstack/common/excutils.py:105 +#: glance_store/openstack/common/excutils.py:105 #, python-format msgid "Unexpected exception occurred %d time(s)... retrying." msgstr "Unerwartete Ausnahme %d mal(e) aufgetreten... Neuversuch." diff --git a/glance.store/locale/en_AU/LC_MESSAGES/glance.store-log-error.po b/glance_store/locale/en_AU/LC_MESSAGES/glance.store-log-error.po similarity index 77% rename from glance.store/locale/en_AU/LC_MESSAGES/glance.store-log-error.po rename to glance_store/locale/en_AU/LC_MESSAGES/glance.store-log-error.po index 6ac2d965..b4bab219 100644 --- a/glance.store/locale/en_AU/LC_MESSAGES/glance.store-log-error.po +++ b/glance_store/locale/en_AU/LC_MESSAGES/glance.store-log-error.po @@ -1,12 +1,12 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # # Translators: msgid "" msgstr "" -"Project-Id-Version: glance.store\n" +"Project-Id-Version: glance_store\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: 2014-07-16 18:34+0000\n" @@ -20,12 +20,12 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: glance/store/openstack/common/excutils.py:76 +#: glance_store/openstack/common/excutils.py:76 #, python-format msgid "Original exception being dropped: %s" msgstr "Original exception being dropped: %s" -#: glance/store/openstack/common/excutils.py:105 +#: glance_store/openstack/common/excutils.py:105 #, python-format msgid "Unexpected exception occurred %d time(s)... retrying." msgstr "Unexpected exception occurred %d time(s)... retrying." diff --git a/glance.store/locale/en_GB/LC_MESSAGES/glance.store-log-critical.po b/glance_store/locale/en_GB/LC_MESSAGES/glance.store-log-critical.po similarity index 95% rename from glance.store/locale/en_GB/LC_MESSAGES/glance.store-log-critical.po rename to glance_store/locale/en_GB/LC_MESSAGES/glance.store-log-critical.po index ac6a1b55..a33ed2fc 100644 --- a/glance.store/locale/en_GB/LC_MESSAGES/glance.store-log-critical.po +++ b/glance_store/locale/en_GB/LC_MESSAGES/glance.store-log-critical.po @@ -6,7 +6,7 @@ # Andi Chandler , 2014 msgid "" msgstr "" -"Project-Id-Version: glance.store\n" +"Project-Id-Version: glance_store\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: 2014-07-25 23:07+0000\n" diff --git a/glance.store/locale/en_GB/LC_MESSAGES/glance.store-log-error.po b/glance_store/locale/en_GB/LC_MESSAGES/glance.store-log-error.po similarity index 77% rename from glance.store/locale/en_GB/LC_MESSAGES/glance.store-log-error.po rename to glance_store/locale/en_GB/LC_MESSAGES/glance.store-log-error.po index e4800443..22261322 100644 --- a/glance.store/locale/en_GB/LC_MESSAGES/glance.store-log-error.po +++ b/glance_store/locale/en_GB/LC_MESSAGES/glance.store-log-error.po @@ -1,12 +1,12 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # # Translators: msgid "" msgstr "" -"Project-Id-Version: glance.store\n" +"Project-Id-Version: glance_store\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: 2014-07-16 18:34+0000\n" @@ -20,12 +20,12 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: glance/store/openstack/common/excutils.py:76 +#: glance_store/openstack/common/excutils.py:76 #, python-format msgid "Original exception being dropped: %s" msgstr "Original exception being dropped: %s" -#: glance/store/openstack/common/excutils.py:105 +#: glance_store/openstack/common/excutils.py:105 #, python-format msgid "Unexpected exception occurred %d time(s)... retrying." msgstr "Unexpected exception occurred %d time(s)... retrying." diff --git a/glance.store/locale/es/LC_MESSAGES/glance.store-log-error.po b/glance_store/locale/es/LC_MESSAGES/glance.store-log-error.po similarity index 77% rename from glance.store/locale/es/LC_MESSAGES/glance.store-log-error.po rename to glance_store/locale/es/LC_MESSAGES/glance.store-log-error.po index 23055439..8604ee4e 100644 --- a/glance.store/locale/es/LC_MESSAGES/glance.store-log-error.po +++ b/glance_store/locale/es/LC_MESSAGES/glance.store-log-error.po @@ -1,12 +1,12 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # # Translators: msgid "" msgstr "" -"Project-Id-Version: glance.store\n" +"Project-Id-Version: glance_store\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: 2014-07-16 18:33+0000\n" @@ -20,12 +20,12 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: glance/store/openstack/common/excutils.py:76 +#: glance_store/openstack/common/excutils.py:76 #, python-format msgid "Original exception being dropped: %s" msgstr "Se está descartando excepción original: %s" -#: glance/store/openstack/common/excutils.py:105 +#: glance_store/openstack/common/excutils.py:105 #, python-format msgid "Unexpected exception occurred %d time(s)... retrying." msgstr "La excepción inesperada ha ocurrido %d vez(veces)... reintentando." diff --git a/glance.store/locale/fr/LC_MESSAGES/glance.store-log-error.po b/glance_store/locale/fr/LC_MESSAGES/glance.store-log-error.po similarity index 77% rename from glance.store/locale/fr/LC_MESSAGES/glance.store-log-error.po rename to glance_store/locale/fr/LC_MESSAGES/glance.store-log-error.po index dac87fbe..8f5a0599 100644 --- a/glance.store/locale/fr/LC_MESSAGES/glance.store-log-error.po +++ b/glance_store/locale/fr/LC_MESSAGES/glance.store-log-error.po @@ -1,12 +1,12 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # # Translators: msgid "" msgstr "" -"Project-Id-Version: glance.store\n" +"Project-Id-Version: glance_store\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: 2014-07-16 18:34+0000\n" @@ -20,12 +20,12 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: glance/store/openstack/common/excutils.py:76 +#: glance_store/openstack/common/excutils.py:76 #, python-format msgid "Original exception being dropped: %s" msgstr "Exception d'origine en cours de suppression : %s" -#: glance/store/openstack/common/excutils.py:105 +#: glance_store/openstack/common/excutils.py:105 #, python-format msgid "Unexpected exception occurred %d time(s)... retrying." msgstr "Exception inattendue survenue %d fois... Nouvel essai." diff --git a/glance.store/locale/glance.store-log-critical.pot b/glance_store/locale/glance.store-log-critical.pot similarity index 75% rename from glance.store/locale/glance.store-log-critical.pot rename to glance_store/locale/glance.store-log-critical.pot index 2293776f..9f9e8a17 100644 --- a/glance.store/locale/glance.store-log-critical.pot +++ b/glance_store/locale/glance.store-log-critical.pot @@ -1,13 +1,13 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # FIRST AUTHOR , 2014. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: glance.store 7f610d0\n" +"Project-Id-Version: glance_store 7f610d0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/glance.store/locale/glance.store-log-error.pot b/glance_store/locale/glance.store-log-error.pot similarity index 71% rename from glance.store/locale/glance.store-log-error.pot rename to glance_store/locale/glance.store-log-error.pot index eafd7189..a3476c9b 100644 --- a/glance.store/locale/glance.store-log-error.pot +++ b/glance_store/locale/glance.store-log-error.pot @@ -1,13 +1,13 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # FIRST AUTHOR , 2014. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: glance.store 7f610d0\n" +"Project-Id-Version: glance_store 7f610d0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -18,12 +18,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 1.3\n" -#: glance/store/openstack/common/excutils.py:76 +#: glance_store/openstack/common/excutils.py:76 #, python-format msgid "Original exception being dropped: %s" msgstr "" -#: glance/store/openstack/common/excutils.py:105 +#: glance_store/openstack/common/excutils.py:105 #, python-format msgid "Unexpected exception occurred %d time(s)... retrying." msgstr "" diff --git a/glance.store/locale/glance.store-log-info.pot b/glance_store/locale/glance.store-log-info.pot similarity index 75% rename from glance.store/locale/glance.store-log-info.pot rename to glance_store/locale/glance.store-log-info.pot index 2293776f..9f9e8a17 100644 --- a/glance.store/locale/glance.store-log-info.pot +++ b/glance_store/locale/glance.store-log-info.pot @@ -1,13 +1,13 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # FIRST AUTHOR , 2014. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: glance.store 7f610d0\n" +"Project-Id-Version: glance_store 7f610d0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/glance.store/locale/glance.store-log-warning.pot b/glance_store/locale/glance.store-log-warning.pot similarity index 75% rename from glance.store/locale/glance.store-log-warning.pot rename to glance_store/locale/glance.store-log-warning.pot index 2293776f..9f9e8a17 100644 --- a/glance.store/locale/glance.store-log-warning.pot +++ b/glance_store/locale/glance.store-log-warning.pot @@ -1,13 +1,13 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # FIRST AUTHOR , 2014. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: glance.store 7f610d0\n" +"Project-Id-Version: glance_store 7f610d0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/glance.store/locale/glance.store.pot b/glance_store/locale/glance.store.pot similarity index 71% rename from glance.store/locale/glance.store.pot rename to glance_store/locale/glance.store.pot index d5f69311..755a985c 100644 --- a/glance.store/locale/glance.store.pot +++ b/glance_store/locale/glance.store.pot @@ -1,13 +1,13 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # FIRST AUTHOR , 2014. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: glance.store 0.0.1a1.1.ga360e0e\n" +"Project-Id-Version: glance_store 0.0.1a1.1.ga360e0e\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-08-05 06:00+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -18,425 +18,425 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 1.3\n" -#: glance/store/backend.py:36 +#: glance_store/backend.py:36 msgid "List of stores enabled" msgstr "" -#: glance/store/backend.py:39 +#: glance_store/backend.py:39 msgid "" "Default scheme to use to store image data. The scheme must be registered " "by one of the stores defined by the 'stores' config option." msgstr "" -#: glance/store/backend.py:194 +#: glance_store/backend.py:194 #, python-format msgid "Store for scheme %s not found" msgstr "" -#: glance/store/backend.py:276 +#: glance_store/backend.py:276 #, python-format msgid "Failed to delete image %s in store from URI" msgstr "" -#: glance/store/backend.py:282 +#: glance_store/backend.py:282 #, python-format msgid "Failed to delete image %(image_id)s from store (%(exc_type)s)" msgstr "" -#: glance/store/backend.py:305 +#: glance_store/backend.py:305 #, python-format msgid "" "The image metadata key %(key)s has an invalid type of %(type)s. Only " "dict, list, and unicode are supported." msgstr "" -#: glance/store/backend.py:329 +#: glance_store/backend.py:329 #, python-format msgid "" "The storage driver %(driver)s returned invalid metadata %(metadata)s. " "This must be a dictionary type" msgstr "" -#: glance/store/backend.py:337 +#: glance_store/backend.py:337 #, python-format msgid "" "A bad metadata structure was returned from the %(driver)s storage driver:" " %(metadata)s. %(e)s." msgstr "" -#: glance/store/backend.py:371 +#: glance_store/backend.py:371 msgid "Skipping store.set_acls... not implemented." msgstr "" -#: glance/store/driver.py:38 +#: glance_store/driver.py:38 #, python-format msgid "Caught '%(exception)s' exception." msgstr "" -#: glance/store/driver.py:77 +#: glance_store/driver.py:77 #, python-format msgid "Failed to configure store correctly: %s Disabling add method." msgstr "" -#: glance/store/exceptions.py:46 +#: glance_store/exceptions.py:46 #, python-format msgid "Missing required credential: %(required)s" msgstr "" -#: glance/store/exceptions.py:50 +#: glance_store/exceptions.py:50 #, python-format msgid "" "Incorrect auth strategy, expected \"%(expected)s\" but received " "\"%(received)s\"" msgstr "" -#: glance/store/exceptions.py:55 +#: glance_store/exceptions.py:55 #, python-format msgid "Image %(image)s not found" msgstr "" -#: glance/store/exceptions.py:59 +#: glance_store/exceptions.py:59 #, python-format msgid "Unknown scheme '%(scheme)s' found in URI" msgstr "" -#: glance/store/exceptions.py:63 +#: glance_store/exceptions.py:63 msgid "The Store URI was malformed: %(uri)" msgstr "" -#: glance/store/exceptions.py:67 +#: glance_store/exceptions.py:67 #, python-format msgid "Image %(image)s already exists" msgstr "" -#: glance/store/exceptions.py:71 +#: glance_store/exceptions.py:71 msgid "An object with the same identifier is currently being operated on." msgstr "" -#: glance/store/exceptions.py:76 +#: glance_store/exceptions.py:76 msgid "There is not enough disk space on the image storage media." msgstr "" -#: glance/store/exceptions.py:80 +#: glance_store/exceptions.py:80 #, python-format msgid "" "The size of the data %(image_size)s will exceed the limit. %(remaining)s " "bytes remaining." msgstr "" -#: glance/store/exceptions.py:85 +#: glance_store/exceptions.py:85 msgid "Permission to write image storage media denied." msgstr "" -#: glance/store/exceptions.py:89 +#: glance_store/exceptions.py:89 #, python-format msgid "Connect error/bad request to Auth service at URL %(url)s." msgstr "" -#: glance/store/exceptions.py:93 +#: glance_store/exceptions.py:93 #, python-format msgid "Auth service at URL %(url)s not found." msgstr "" -#: glance/store/exceptions.py:97 +#: glance_store/exceptions.py:97 msgid "Authorization failed." msgstr "" -#: glance/store/exceptions.py:101 +#: glance_store/exceptions.py:101 msgid "You are not authenticated." msgstr "" -#: glance/store/exceptions.py:105 glance/store/exceptions.py:109 +#: glance_store/exceptions.py:105 glance_store/exceptions.py:109 msgid "You are not authorized to complete this action." msgstr "" -#: glance/store/exceptions.py:113 +#: glance_store/exceptions.py:113 #, python-format msgid "Image %(image_id)s is protected and cannot be deleted." msgstr "" -#: glance/store/exceptions.py:117 +#: glance_store/exceptions.py:117 msgid "Data supplied was not valid." msgstr "" -#: glance/store/exceptions.py:121 +#: glance_store/exceptions.py:121 #, python-format msgid "Store %(store_name)s could not be configured correctly. Reason: %(reason)s" msgstr "" -#: glance/store/exceptions.py:126 +#: glance_store/exceptions.py:126 #, python-format msgid "Driver %(driver_name)s could not be loaded." msgstr "" -#: glance/store/exceptions.py:130 +#: glance_store/exceptions.py:130 #, python-format msgid "" "Driver %(driver_name)s could not be configured correctly. Reason: " "%(reason)s" msgstr "" -#: glance/store/exceptions.py:135 +#: glance_store/exceptions.py:135 msgid "Deleting images from this store is not supported." msgstr "" -#: glance/store/exceptions.py:139 +#: glance_store/exceptions.py:139 msgid "Getting images from this store is not supported." msgstr "" -#: glance/store/exceptions.py:143 +#: glance_store/exceptions.py:143 msgid "Adding images to this store is not supported." msgstr "" -#: glance/store/exceptions.py:147 +#: glance_store/exceptions.py:147 msgid "Configuration for store failed. Adding images to this store is disabled." msgstr "" -#: glance/store/exceptions.py:152 +#: glance_store/exceptions.py:152 #, python-format msgid "Maximum redirects (%(redirects)s) was exceeded." msgstr "" -#: glance/store/exceptions.py:156 +#: glance_store/exceptions.py:156 msgid "Received invalid HTTP redirect." msgstr "" -#: glance/store/exceptions.py:160 +#: glance_store/exceptions.py:160 msgid "Response from Keystone does not contain a Glance endpoint." msgstr "" -#: glance/store/exceptions.py:164 +#: glance_store/exceptions.py:164 #, python-format msgid "" "Multiple 'image' service matches for region %(region)s. This generally " "means that a region is required and you have not supplied one." msgstr "" -#: glance/store/exceptions.py:170 +#: glance_store/exceptions.py:170 #, python-format msgid "Server worker creation failed: %(reason)s." msgstr "" -#: glance/store/exceptions.py:174 +#: glance_store/exceptions.py:174 #, python-format msgid "Unable to load schema: %(reason)s" msgstr "" -#: glance/store/exceptions.py:178 +#: glance_store/exceptions.py:178 #, python-format msgid "Provided object does not match schema '%(schema)s': %(reason)s" msgstr "" -#: glance/store/exceptions.py:183 +#: glance_store/exceptions.py:183 #, python-format msgid "Provided header feature is unsupported: %(feature)s" msgstr "" -#: glance/store/exceptions.py:187 +#: glance_store/exceptions.py:187 msgid "" "The image cannot be deleted because it is in use through the backend " "store outside of Glance." msgstr "" -#: glance/store/exceptions.py:192 +#: glance_store/exceptions.py:192 msgid "No image data could be found" msgstr "" -#: glance/store/exceptions.py:196 +#: glance_store/exceptions.py:196 #, python-format msgid "Invalid value '%(value)s' for parameter '%(param)s': %(extra_msg)s" msgstr "" -#: glance/store/exceptions.py:201 +#: glance_store/exceptions.py:201 #, python-format msgid "" "Image status transition from %(cur_status)s to %(new_status)s is not " "allowed" msgstr "" -#: glance/store/common/auth.py:185 glance/store/common/auth.py:225 +#: glance_store/common/auth.py:185 glance_store/common/auth.py:225 #, python-format msgid "Unexpected response: %s" msgstr "" -#: glance/store/common/auth.py:253 +#: glance_store/common/auth.py:253 #, python-format msgid "Unknown auth strategy '%s'" msgstr "" -#: glance/store/common/auth.py:274 +#: glance_store/common/auth.py:274 #, python-format msgid "Encountered service with no \"type\": %s" msgstr "" -#: glance/store/common/config.py:34 +#: glance_store/common/config.py:34 msgid "" "Partial name of a pipeline in your paste configuration file with the " "service name removed. For example, if your paste section name is " "[pipeline:glance-api-keystone] use the value \"keystone\"" msgstr "" -#: glance/store/common/config.py:40 +#: glance_store/common/config.py:40 msgid "Name of the paste configuration file." msgstr "" -#: glance/store/common/config.py:45 +#: glance_store/common/config.py:45 msgid "Supported values for the 'container_format' image attribute" msgstr "" -#: glance/store/common/config.py:52 +#: glance_store/common/config.py:52 msgid "Supported values for the 'disk_format' image attribute" msgstr "" -#: glance/store/common/config.py:60 +#: glance_store/common/config.py:60 msgid "Time in hours for which a task lives after, either succeeding or failing" msgstr "" -#: glance/store/common/config.py:67 +#: glance_store/common/config.py:67 msgid "" "Whether to allow users to specify image properties beyond what the image " "schema provides" msgstr "" -#: glance/store/common/config.py:70 +#: glance_store/common/config.py:70 msgid "" "Maximum number of image members per image. Negative values evaluate to " "unlimited." msgstr "" -#: glance/store/common/config.py:73 +#: glance_store/common/config.py:73 msgid "" "Maximum number of properties allowed on an image. Negative values " "evaluate to unlimited." msgstr "" -#: glance/store/common/config.py:76 +#: glance_store/common/config.py:76 msgid "" "Maximum number of tags allowed on an image. Negative values evaluate to " "unlimited." msgstr "" -#: glance/store/common/config.py:79 +#: glance_store/common/config.py:79 msgid "" "Maximum number of locations allowed on an image. Negative values evaluate" " to unlimited." msgstr "" -#: glance/store/common/config.py:82 +#: glance_store/common/config.py:82 msgid "Python module path of data access API" msgstr "" -#: glance/store/common/config.py:84 +#: glance_store/common/config.py:84 msgid "" "Default value for the number of items returned by a request if not " "specified explicitly in the request" msgstr "" -#: glance/store/common/config.py:87 +#: glance_store/common/config.py:87 msgid "Maximum permissible number of items that could be returned by a request" msgstr "" -#: glance/store/common/config.py:90 +#: glance_store/common/config.py:90 msgid "" "Whether to include the backend image storage location in image " "properties. Revealing storage location can be a security risk, so use " "this setting with caution!" msgstr "" -#: glance/store/common/config.py:95 +#: glance_store/common/config.py:95 msgid "" "Whether to include the backend image locations in image properties. " "Revealing storage location can be a security risk, so use this setting " "with caution! The overrides show_image_direct_url." msgstr "" -#: glance/store/common/config.py:100 +#: glance_store/common/config.py:100 msgid "" "Maximum size of image a user can upload in bytes. Defaults to " "1099511627776 bytes (1 TB)." msgstr "" -#: glance/store/common/config.py:103 +#: glance_store/common/config.py:103 msgid "" "Set a system wide quota for every user. This value is the total number " "of bytes that a user can use across all storage systems. A value of 0 " "means unlimited." msgstr "" -#: glance/store/common/config.py:107 +#: glance_store/common/config.py:107 msgid "Deploy the v1 OpenStack Images API." msgstr "" -#: glance/store/common/config.py:109 +#: glance_store/common/config.py:109 msgid "Deploy the v2 OpenStack Images API." msgstr "" -#: glance/store/common/config.py:111 +#: glance_store/common/config.py:111 msgid "The hostname/IP of the pydev process listening for debug connections" msgstr "" -#: glance/store/common/config.py:114 +#: glance_store/common/config.py:114 msgid "The port on which a pydev process is listening for connections." msgstr "" -#: glance/store/common/config.py:117 +#: glance_store/common/config.py:117 msgid "" "Key used for encrypting sensitive metadata while talking to the registry " "or database." msgstr "" -#: glance/store/common/config.py:203 +#: glance_store/common/config.py:203 #, python-format msgid "Loading %(app_name)s from %(conf_file)s" msgstr "" -#: glance/store/common/config.py:214 +#: glance_store/common/config.py:214 #, python-format msgid "" "Unable to load %(app_name)s from configuration file %(conf_file)s.\n" "Got: %(e)r" msgstr "" -#: glance/store/common/utils.py:84 +#: glance_store/common/utils.py:84 #, python-format msgid "Error: cooperative_iter exception %s" msgstr "" -#: glance/store/openstack/common/gettextutils.py:320 +#: glance_store/openstack/common/gettextutils.py:320 msgid "Message objects do not support addition." msgstr "" -#: glance/store/openstack/common/gettextutils.py:330 +#: glance_store/openstack/common/gettextutils.py:330 msgid "" "Message objects do not support str() because they may contain non-ascii " "characters. Please use unicode() or translate() instead." msgstr "" -#: glance/store/openstack/common/log.py:275 +#: glance_store/openstack/common/log.py:275 #, python-format msgid "Deprecated: %s" msgstr "" -#: glance/store/openstack/common/log.py:384 +#: glance_store/openstack/common/log.py:384 #, python-format msgid "Error loading logging config %(log_config)s: %(err_msg)s" msgstr "" -#: glance/store/openstack/common/log.py:434 +#: glance_store/openstack/common/log.py:434 #, python-format msgid "syslog facility must be one of: %s" msgstr "" -#: glance/store/openstack/common/log.py:677 +#: glance_store/openstack/common/log.py:677 #, python-format msgid "Fatal call to deprecated config: %(msg)s" msgstr "" -#: glance/store/openstack/common/processutils.py:59 +#: glance_store/openstack/common/processutils.py:59 msgid "Unexpected error while running command." msgstr "" -#: glance/store/openstack/common/processutils.py:62 +#: glance_store/openstack/common/processutils.py:62 #, python-format msgid "" "%(description)s\n" @@ -446,34 +446,34 @@ msgid "" "Stderr: %(stderr)r" msgstr "" -#: glance/store/openstack/common/processutils.py:143 +#: glance_store/openstack/common/processutils.py:143 #, python-format msgid "Got unknown keyword args to utils.execute: %r" msgstr "" -#: glance/store/openstack/common/processutils.py:149 +#: glance_store/openstack/common/processutils.py:149 msgid "Command requested root, but did not specify a root helper." msgstr "" -#: glance/store/openstack/common/processutils.py:246 +#: glance_store/openstack/common/processutils.py:246 msgid "Environment not supported over SSH" msgstr "" -#: glance/store/openstack/common/processutils.py:250 +#: glance_store/openstack/common/processutils.py:250 msgid "process_input not supported over SSH" msgstr "" -#: glance/store/openstack/common/strutils.py:114 +#: glance_store/openstack/common/strutils.py:114 #, python-format msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s" msgstr "" -#: glance/store/openstack/common/strutils.py:219 +#: glance_store/openstack/common/strutils.py:219 #, python-format msgid "Invalid unit system: \"%s\"" msgstr "" -#: glance/store/openstack/common/strutils.py:228 +#: glance_store/openstack/common/strutils.py:228 #, python-format msgid "Invalid string format: %s" msgstr "" diff --git a/glance.store/locale/it/LC_MESSAGES/glance.store-log-error.po b/glance_store/locale/it/LC_MESSAGES/glance.store-log-error.po similarity index 77% rename from glance.store/locale/it/LC_MESSAGES/glance.store-log-error.po rename to glance_store/locale/it/LC_MESSAGES/glance.store-log-error.po index 8cd7eaa1..cd9780cf 100644 --- a/glance.store/locale/it/LC_MESSAGES/glance.store-log-error.po +++ b/glance_store/locale/it/LC_MESSAGES/glance.store-log-error.po @@ -1,12 +1,12 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # # Translators: msgid "" msgstr "" -"Project-Id-Version: glance.store\n" +"Project-Id-Version: glance_store\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: 2014-07-16 18:33+0000\n" @@ -20,12 +20,12 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: glance/store/openstack/common/excutils.py:76 +#: glance_store/openstack/common/excutils.py:76 #, python-format msgid "Original exception being dropped: %s" msgstr "Eccezione originale in corso di eliminazione: %s" -#: glance/store/openstack/common/excutils.py:105 +#: glance_store/openstack/common/excutils.py:105 #, python-format msgid "Unexpected exception occurred %d time(s)... retrying." msgstr "Un errore inatteso si è verificato %d volte... ritento." diff --git a/glance.store/locale/ja/LC_MESSAGES/glance.store-log-error.po b/glance_store/locale/ja/LC_MESSAGES/glance.store-log-error.po similarity index 77% rename from glance.store/locale/ja/LC_MESSAGES/glance.store-log-error.po rename to glance_store/locale/ja/LC_MESSAGES/glance.store-log-error.po index 3f2f1631..b20cf4cf 100644 --- a/glance.store/locale/ja/LC_MESSAGES/glance.store-log-error.po +++ b/glance_store/locale/ja/LC_MESSAGES/glance.store-log-error.po @@ -1,12 +1,12 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # # Translators: msgid "" msgstr "" -"Project-Id-Version: glance.store\n" +"Project-Id-Version: glance_store\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: 2014-07-16 18:34+0000\n" @@ -20,12 +20,12 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: glance/store/openstack/common/excutils.py:76 +#: glance_store/openstack/common/excutils.py:76 #, python-format msgid "Original exception being dropped: %s" msgstr "除去される元の例外: %s" -#: glance/store/openstack/common/excutils.py:105 +#: glance_store/openstack/common/excutils.py:105 #, python-format msgid "Unexpected exception occurred %d time(s)... retrying." msgstr "予期せぬ例外が、%d回()発生しました。再試行中。" diff --git a/glance.store/locale/ko_KR/LC_MESSAGES/glance.store-log-error.po b/glance_store/locale/ko_KR/LC_MESSAGES/glance.store-log-error.po similarity index 77% rename from glance.store/locale/ko_KR/LC_MESSAGES/glance.store-log-error.po rename to glance_store/locale/ko_KR/LC_MESSAGES/glance.store-log-error.po index e75e9ec3..07b7605d 100644 --- a/glance.store/locale/ko_KR/LC_MESSAGES/glance.store-log-error.po +++ b/glance_store/locale/ko_KR/LC_MESSAGES/glance.store-log-error.po @@ -1,12 +1,12 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # # Translators: msgid "" msgstr "" -"Project-Id-Version: glance.store\n" +"Project-Id-Version: glance_store\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: 2014-07-16 18:34+0000\n" @@ -20,12 +20,12 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: glance/store/openstack/common/excutils.py:76 +#: glance_store/openstack/common/excutils.py:76 #, python-format msgid "Original exception being dropped: %s" msgstr "기존 예외가 삭제됨: %s" -#: glance/store/openstack/common/excutils.py:105 +#: glance_store/openstack/common/excutils.py:105 #, python-format msgid "Unexpected exception occurred %d time(s)... retrying." msgstr "예기치 않은 예외 %d 번 발생하였습니다... 다시 시도중." diff --git a/glance.store/locale/pt_BR/LC_MESSAGES/glance.store-log-error.po b/glance_store/locale/pt_BR/LC_MESSAGES/glance.store-log-error.po similarity index 77% rename from glance.store/locale/pt_BR/LC_MESSAGES/glance.store-log-error.po rename to glance_store/locale/pt_BR/LC_MESSAGES/glance.store-log-error.po index a44d5fd5..d2db80a3 100644 --- a/glance.store/locale/pt_BR/LC_MESSAGES/glance.store-log-error.po +++ b/glance_store/locale/pt_BR/LC_MESSAGES/glance.store-log-error.po @@ -1,12 +1,12 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # # Translators: msgid "" msgstr "" -"Project-Id-Version: glance.store\n" +"Project-Id-Version: glance_store\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: 2014-07-16 18:34+0000\n" @@ -20,12 +20,12 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: glance/store/openstack/common/excutils.py:76 +#: glance_store/openstack/common/excutils.py:76 #, python-format msgid "Original exception being dropped: %s" msgstr "Exceção original sendo descartada: %s" -#: glance/store/openstack/common/excutils.py:105 +#: glance_store/openstack/common/excutils.py:105 #, python-format msgid "Unexpected exception occurred %d time(s)... retrying." msgstr "Exceção não esperada ocorreu %d vez(es)... tentando novamente." diff --git a/glance.store/locale/vi_VN/LC_MESSAGES/glance.store-log-error.po b/glance_store/locale/vi_VN/LC_MESSAGES/glance.store-log-error.po similarity index 78% rename from glance.store/locale/vi_VN/LC_MESSAGES/glance.store-log-error.po rename to glance_store/locale/vi_VN/LC_MESSAGES/glance.store-log-error.po index 39537c87..76a819ec 100644 --- a/glance.store/locale/vi_VN/LC_MESSAGES/glance.store-log-error.po +++ b/glance_store/locale/vi_VN/LC_MESSAGES/glance.store-log-error.po @@ -1,12 +1,12 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # # Translators: msgid "" msgstr "" -"Project-Id-Version: glance.store\n" +"Project-Id-Version: glance_store\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: 2014-07-16 18:34+0000\n" @@ -20,12 +20,12 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: glance/store/openstack/common/excutils.py:76 +#: glance_store/openstack/common/excutils.py:76 #, python-format msgid "Original exception being dropped: %s" msgstr "Ngoại lệ ban đầu được giảm xuống: %s" -#: glance/store/openstack/common/excutils.py:105 +#: glance_store/openstack/common/excutils.py:105 #, python-format msgid "Unexpected exception occurred %d time(s)... retrying." msgstr "Ngoại lệ bất ngờ xảy ra %d thời gian(s) ... thử lại" diff --git a/glance.store/locale/zh_CN/LC_MESSAGES/glance.store-log-error.po b/glance_store/locale/zh_CN/LC_MESSAGES/glance.store-log-error.po similarity index 77% rename from glance.store/locale/zh_CN/LC_MESSAGES/glance.store-log-error.po rename to glance_store/locale/zh_CN/LC_MESSAGES/glance.store-log-error.po index 61eb3879..f8df0c03 100644 --- a/glance.store/locale/zh_CN/LC_MESSAGES/glance.store-log-error.po +++ b/glance_store/locale/zh_CN/LC_MESSAGES/glance.store-log-error.po @@ -1,12 +1,12 @@ -# Translations template for glance.store. +# Translations template for glance_store. # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the glance.store +# This file is distributed under the same license as the glance_store # project. # # Translators: msgid "" msgstr "" -"Project-Id-Version: glance.store\n" +"Project-Id-Version: glance_store\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2014-07-29 06:00+0000\n" "PO-Revision-Date: 2014-07-16 18:34+0000\n" @@ -20,12 +20,12 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: glance/store/openstack/common/excutils.py:76 +#: glance_store/openstack/common/excutils.py:76 #, python-format msgid "Original exception being dropped: %s" msgstr "正在删除原始异常:%s" -#: glance/store/openstack/common/excutils.py:105 +#: glance_store/openstack/common/excutils.py:105 #, python-format msgid "Unexpected exception occurred %d time(s)... retrying." msgstr "意外的异常已发生 %d 次...正在重试。" diff --git a/glance/store/location.py b/glance_store/location.py similarity index 99% rename from glance/store/location.py rename to glance_store/location.py index 720e0b5f..61ab9b2a 100644 --- a/glance/store/location.py +++ b/glance_store/location.py @@ -40,7 +40,7 @@ credentials and is **not** user-facing. import logging import urlparse -from glance.store import exceptions +from glance_store import exceptions LOG = logging.getLogger(__name__) diff --git a/glance/store/openstack/__init__.py b/glance_store/openstack/__init__.py similarity index 100% rename from glance/store/openstack/__init__.py rename to glance_store/openstack/__init__.py diff --git a/glance/store/openstack/common/__init__.py b/glance_store/openstack/common/__init__.py similarity index 100% rename from glance/store/openstack/common/__init__.py rename to glance_store/openstack/common/__init__.py diff --git a/glance/store/openstack/common/context.py b/glance_store/openstack/common/context.py similarity index 100% rename from glance/store/openstack/common/context.py rename to glance_store/openstack/common/context.py diff --git a/glance/store/openstack/common/excutils.py b/glance_store/openstack/common/excutils.py similarity index 98% rename from glance/store/openstack/common/excutils.py rename to glance_store/openstack/common/excutils.py index ebf5d68a..e00ed0ce 100644 --- a/glance/store/openstack/common/excutils.py +++ b/glance_store/openstack/common/excutils.py @@ -24,7 +24,7 @@ import traceback import six -from glance.store.openstack.common.gettextutils import _LE +from glance_store.openstack.common.gettextutils import _LE class save_and_reraise_exception(object): diff --git a/glance/store/openstack/common/fileutils.py b/glance_store/openstack/common/fileutils.py similarity index 97% rename from glance/store/openstack/common/fileutils.py rename to glance_store/openstack/common/fileutils.py index 233c1e73..3d4abbea 100644 --- a/glance/store/openstack/common/fileutils.py +++ b/glance_store/openstack/common/fileutils.py @@ -18,8 +18,8 @@ import errno import os import tempfile -from glance.store.openstack.common import excutils -from glance.store.openstack.common import log as logging +from glance_store.openstack.common import excutils +from glance_store.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/glance/store/openstack/common/gettextutils.py b/glance_store/openstack/common/gettextutils.py similarity index 98% rename from glance/store/openstack/common/gettextutils.py rename to glance_store/openstack/common/gettextutils.py index b193de7e..efb3075a 100644 --- a/glance/store/openstack/common/gettextutils.py +++ b/glance_store/openstack/common/gettextutils.py @@ -19,7 +19,7 @@ gettext for openstack-common modules. Usual usage in an openstack.common module: - from glance.store.openstack.common.gettextutils import _ + from glance_store.openstack.common.gettextutils import _ """ import copy @@ -120,7 +120,7 @@ class TranslatorFactory(object): # module within each application. # Create the global translation functions. -_translators = TranslatorFactory('glance.store') +_translators = TranslatorFactory('glance_store') # The primary translation function using the well-known name "_" _ = _translators.primary @@ -150,7 +150,7 @@ def enable_lazy(): # FIXME(dhellmann): This function will be removed in oslo.i18n, # because the TranslatorFactory makes it superfluous. global _, _LI, _LW, _LE, _LC, USE_LAZY - tf = TranslatorFactory('glance.store', lazy=True) + tf = TranslatorFactory('glance_store', lazy=True) _ = tf.primary _LI = tf.log_info _LW = tf.log_warning @@ -201,7 +201,7 @@ class Message(six.text_type): """ def __new__(cls, msgid, msgtext=None, params=None, - domain='glance.store', *args): + domain='glance_store', *args): """Create a new Message object. In order for translation to work gettext requires a message ID, this diff --git a/glance/store/openstack/common/importutils.py b/glance_store/openstack/common/importutils.py similarity index 98% rename from glance/store/openstack/common/importutils.py rename to glance_store/openstack/common/importutils.py index 2f71815e..9c47d2ba 100644 --- a/glance/store/openstack/common/importutils.py +++ b/glance_store/openstack/common/importutils.py @@ -59,7 +59,7 @@ def import_module(import_str): def import_versioned_module(version, submodule=None): - module = 'glance.store.v%s' % version + module = 'glance_store.v%s' % version if submodule: module = '.'.join((module, submodule)) return import_module(module) diff --git a/glance/store/openstack/common/jsonutils.py b/glance_store/openstack/common/jsonutils.py similarity index 96% rename from glance/store/openstack/common/jsonutils.py rename to glance_store/openstack/common/jsonutils.py index ff611bc2..887a6caf 100644 --- a/glance/store/openstack/common/jsonutils.py +++ b/glance_store/openstack/common/jsonutils.py @@ -51,10 +51,10 @@ else: import six import six.moves.xmlrpc_client as xmlrpclib -from glance.store.openstack.common import gettextutils -from glance.store.openstack.common import importutils -from glance.store.openstack.common import strutils -from glance.store.openstack.common import timeutils +from glance_store.openstack.common import gettextutils +from glance_store.openstack.common import importutils +from glance_store.openstack.common import strutils +from glance_store.openstack.common import timeutils netaddr = importutils.try_import("netaddr") diff --git a/glance/store/openstack/common/local.py b/glance_store/openstack/common/local.py similarity index 100% rename from glance/store/openstack/common/local.py rename to glance_store/openstack/common/local.py diff --git a/glance/store/openstack/common/log.py b/glance_store/openstack/common/log.py similarity index 98% rename from glance/store/openstack/common/log.py rename to glance_store/openstack/common/log.py index 9073f73b..7954c5ea 100644 --- a/glance/store/openstack/common/log.py +++ b/glance_store/openstack/common/log.py @@ -40,13 +40,13 @@ from oslo.config import cfg import six from six import moves -from glance.store.openstack.common.gettextutils import _ -from glance.store.openstack.common import importutils -from glance.store.openstack.common import jsonutils -from glance.store.openstack.common import local +from glance_store.openstack.common.gettextutils import _ +from glance_store.openstack.common import importutils +from glance_store.openstack.common import jsonutils +from glance_store.openstack.common import local # NOTE(flaper87): Pls, remove when graduating this module # from the incubator. -from glance.store.openstack.common.strutils import mask_password # noqa +from glance_store.openstack.common.strutils import mask_password # noqa _DEFAULT_LOG_DATE_FORMAT = "%Y-%m-%d %H:%M:%S" @@ -490,7 +490,7 @@ def _setup_logging_from_conf(project, version): if CONF.publish_errors: try: handler = importutils.import_object( - "glance.store.openstack.common.log_handler.PublishErrorsHandler", + "glance_store.openstack.common.log_handler.PublishErrorsHandler", logging.ERROR) except ImportError: handler = importutils.import_object( diff --git a/glance/store/openstack/common/processutils.py b/glance_store/openstack/common/processutils.py similarity index 98% rename from glance/store/openstack/common/processutils.py rename to glance_store/openstack/common/processutils.py index aded5018..fa9f72c0 100644 --- a/glance/store/openstack/common/processutils.py +++ b/glance_store/openstack/common/processutils.py @@ -29,8 +29,8 @@ from eventlet.green import subprocess from eventlet import greenthread import six -from glance.store.openstack.common.gettextutils import _ -from glance.store.openstack.common import strutils +from glance_store.openstack.common.gettextutils import _ +from glance_store.openstack.common import strutils LOG = logging.getLogger(__name__) diff --git a/glance/store/openstack/common/strutils.py b/glance_store/openstack/common/strutils.py similarity index 99% rename from glance/store/openstack/common/strutils.py rename to glance_store/openstack/common/strutils.py index 11b25f50..dddb6acc 100644 --- a/glance/store/openstack/common/strutils.py +++ b/glance_store/openstack/common/strutils.py @@ -24,7 +24,7 @@ import unicodedata import six -from glance.store.openstack.common.gettextutils import _ +from glance_store.openstack.common.gettextutils import _ UNIT_PREFIX_EXPONENT = { diff --git a/glance/store/openstack/common/timeutils.py b/glance_store/openstack/common/timeutils.py similarity index 100% rename from glance/store/openstack/common/timeutils.py rename to glance_store/openstack/common/timeutils.py diff --git a/glance/store/openstack/common/units.py b/glance_store/openstack/common/units.py similarity index 100% rename from glance/store/openstack/common/units.py rename to glance_store/openstack/common/units.py diff --git a/glance/store/tests/__init__.py b/glance_store/tests/__init__.py similarity index 100% rename from glance/store/tests/__init__.py rename to glance_store/tests/__init__.py diff --git a/glance/store/tests/base.py b/glance_store/tests/base.py similarity index 95% rename from glance/store/tests/base.py rename to glance_store/tests/base.py index 7ce3acac..867efe92 100644 --- a/glance/store/tests/base.py +++ b/glance_store/tests/base.py @@ -21,8 +21,8 @@ import fixtures from oslo.config import cfg from oslotest import base -import glance.store as store -from glance.store import location +import glance_store as store +from glance_store import location class StoreBaseTest(base.BaseTestCase): @@ -47,7 +47,7 @@ class StoreBaseTest(base.BaseTestCase): self.addCleanup(self.conf.reset) def copy_data_file(self, file_name, dst_dir): - src_file_name = os.path.join('glance/store/tests/etc', file_name) + src_file_name = os.path.join('glance_store/tests/etc', file_name) shutil.copy(src_file_name, dst_dir) dst_file_name = os.path.join(dst_dir, file_name) return dst_file_name diff --git a/glance/store/tests/etc/glance-swift.conf b/glance_store/tests/etc/glance-swift.conf similarity index 100% rename from glance/store/tests/etc/glance-swift.conf rename to glance_store/tests/etc/glance-swift.conf diff --git a/glance/store/tests/fakes.py b/glance_store/tests/fakes.py similarity index 95% rename from glance/store/tests/fakes.py rename to glance_store/tests/fakes.py index 4d8a1d4e..8464ac0e 100644 --- a/glance/store/tests/fakes.py +++ b/glance_store/tests/fakes.py @@ -13,7 +13,7 @@ # License for the specific language governing permissions and limitations # under the License. -from glance.store import exceptions +from glance_store import exceptions class UnconfigurableStore(base.Store): diff --git a/glance/store/tests/utils.py b/glance_store/tests/utils.py similarity index 100% rename from glance/store/tests/utils.py rename to glance_store/tests/utils.py diff --git a/setup.cfg b/setup.cfg index ee479386..2f008fab 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [metadata] -name = glance.store +name = glance_store summary = OpenStack Image Service Store Library description-file = README.rst @@ -20,19 +20,18 @@ classifier = [files] packages = - glance -namespace_packages = - glance + glance_store [entry_points] -glance.store.drivers = - file = glance.store._drivers.filesystem:Store - http = glance.store._drivers.http:Store - swift = glance.store._drivers.swift:Store - vmware = glance.store._drivers.vmware_datastore:Store +glance_store.drivers = + file = glance_store._drivers.filesystem:Store + http = glance_store._drivers.http:Store + swift = glance_store._drivers.swift:Store + vmware = glance_store._drivers.vmware_datastore:Store + + # TESTS ONLY + no_conf = glance_store.tests.fakes:UnconfigurableStore -# TESTS ONLY - no_conf = glance.store.tests.fakes:UnconfigurableStore [build_sphinx] source-dir = doc/source build-dir = doc/build @@ -42,15 +41,15 @@ all_files = 1 upload-dir = doc/build/html [compile_catalog] -directory = glance.store/locale -domain = glance.store +directory = glance_store/locale +domain = glance_store [update_catalog] -domain = glance.store -output_dir = glance.store/locale -input_file = glance.store/locale/glance.store.pot +domain = glance_store +output_dir = glance_store/locale +input_file = glance_store/locale/glance_store.pot [extract_messages] keywords = _ gettext ngettext l_ lazy_gettext mapping_file = babel.cfg -output_file = glance.store/locale/glance.store.pot +output_file = glance_store/locale/glance_store.pot diff --git a/tests/unit/test_cinder_store.py b/tests/unit/test_cinder_store.py index 9341abee..0612e216 100644 --- a/tests/unit/test_cinder_store.py +++ b/tests/unit/test_cinder_store.py @@ -16,10 +16,10 @@ import mock -from glance.store._drivers import cinder -from glance.store import exceptions -from glance.store.location import get_location_from_uri -from glance.store.tests import base +from glance_store._drivers import cinder +from glance_store import exceptions +from glance_store.location import get_location_from_uri +from glance_store.tests import base class FakeObject(object): diff --git a/tests/unit/test_filesystem_store.py b/tests/unit/test_filesystem_store.py index 2c9af708..897bb02f 100644 --- a/tests/unit/test_filesystem_store.py +++ b/tests/unit/test_filesystem_store.py @@ -27,12 +27,12 @@ import uuid import fixtures import six -from glance.store._drivers.filesystem import ChunkedFile -from glance.store._drivers.filesystem import Store -from glance.store import exceptions -from glance.store.location import get_location_from_uri -from glance.store.openstack.common import units -from glance.store.tests import base +from glance_store._drivers.filesystem import ChunkedFile +from glance_store._drivers.filesystem import Store +from glance_store import exceptions +from glance_store.location import get_location_from_uri +from glance_store.openstack.common import units +from glance_store.tests import base KB = 1024 diff --git a/tests/unit/test_gridfs_store.py b/tests/unit/test_gridfs_store.py index f8d51716..d9aa9970 100644 --- a/tests/unit/test_gridfs_store.py +++ b/tests/unit/test_gridfs_store.py @@ -17,8 +17,8 @@ import StringIO import mock -from glance.store._drivers import gridfs as gfs -from glance.store.tests import base +from glance_store._drivers import gridfs as gfs +from glance_store.tests import base try: import gridfs diff --git a/tests/unit/test_http_store.py b/tests/unit/test_http_store.py index 06275e5d..2acfebda 100644 --- a/tests/unit/test_http_store.py +++ b/tests/unit/test_http_store.py @@ -15,13 +15,13 @@ import mock -from glance.store._drivers import http -from glance.store import delete_from_backend -from glance.store import exceptions -from glance.store.location import get_location_from_uri -from glance.store import safe_delete_from_backend -from glance.store.tests import base -from glance.store.tests import utils +from glance_store._drivers import http +from glance_store import delete_from_backend +from glance_store import exceptions +from glance_store.location import get_location_from_uri +from glance_store import safe_delete_from_backend +from glance_store.tests import base +from glance_store.tests import utils class TestHttpStore(base.StoreBaseTest): diff --git a/tests/unit/test_rbd_store.py b/tests/unit/test_rbd_store.py index d65bb92d..0dbc2b40 100644 --- a/tests/unit/test_rbd_store.py +++ b/tests/unit/test_rbd_store.py @@ -17,10 +17,10 @@ import StringIO import mock -from glance.store._drivers import rbd as rbd_store -from glance.store import exceptions -from glance.store.location import Location -from glance.store.tests import base +from glance_store._drivers import rbd as rbd_store +from glance_store import exceptions +from glance_store.location import Location +from glance_store.tests import base class MockRados(object): diff --git a/tests/unit/test_s3_store.py b/tests/unit/test_s3_store.py index ae2018a4..1c150b3a 100644 --- a/tests/unit/test_s3_store.py +++ b/tests/unit/test_s3_store.py @@ -22,13 +22,13 @@ import uuid import boto.s3.connection import mock -from glance.store import exceptions -from glance.store.openstack.common import units +from glance_store import exceptions +from glance_store.openstack.common import units -from glance.store._drivers import s3 -from glance.store.exceptions import UnsupportedBackend -from glance.store.location import get_location_from_uri -from glance.store.tests import base +from glance_store._drivers import s3 +from glance_store.exceptions import UnsupportedBackend +from glance_store.location import get_location_from_uri +from glance_store.tests import base FAKE_UUID = str(uuid.uuid4()) diff --git a/tests/unit/test_sheepdog_store.py b/tests/unit/test_sheepdog_store.py index fd21ea3c..5b08de85 100644 --- a/tests/unit/test_sheepdog_store.py +++ b/tests/unit/test_sheepdog_store.py @@ -17,9 +17,9 @@ import StringIO import mock -from glance.store._drivers import sheepdog -from glance.store.openstack.common import processutils -from glance.store.tests import base +from glance_store._drivers import sheepdog +from glance_store.openstack.common import processutils +from glance_store.tests import base class TestSheepdogStore(base.StoreBaseTest): diff --git a/tests/unit/test_store_base.py b/tests/unit/test_store_base.py index 10392624..4fcaf119 100644 --- a/tests/unit/test_store_base.py +++ b/tests/unit/test_store_base.py @@ -13,10 +13,10 @@ # License for the specific language governing permissions and limitations # under the License. -from glance import store -from glance.store import driver -from glance.store.openstack.common.gettextutils import _ -from glance.store.tests import base +import glance_store as store +from glance_store import driver +from glance_store.openstack.common.gettextutils import _ +from glance_store.tests import base class TestStoreBase(base.StoreBaseTest): diff --git a/tests/unit/test_swift_store.py b/tests/unit/test_swift_store.py index 50cdad3d..225c78fd 100644 --- a/tests/unit/test_swift_store.py +++ b/tests/unit/test_swift_store.py @@ -29,16 +29,16 @@ import six import stubout import swiftclient -from glance.store._drivers.swift import store as swift -from glance.store._drivers.swift import utils as sutils -from glance.store import backend -from glance.store import BackendException -from glance.store.common import auth -from glance.store import exceptions -from glance.store.location import get_location_from_uri -from glance.store.openstack.common import context -from glance.store.openstack.common import units -from glance.store.tests import base +from glance_store._drivers.swift import store as swift +from glance_store._drivers.swift import utils as sutils +from glance_store import backend +from glance_store import BackendException +from glance_store.common import auth +from glance_store import exceptions +from glance_store.location import get_location_from_uri +from glance_store.openstack.common import context +from glance_store.openstack.common import units +from glance_store.tests import base CONF = cfg.CONF diff --git a/tests/unit/test_vmware_store.py b/tests/unit/test_vmware_store.py index 1c5e671a..e23d59f7 100644 --- a/tests/unit/test_vmware_store.py +++ b/tests/unit/test_vmware_store.py @@ -21,13 +21,13 @@ import uuid import mock import six -import glance.store._drivers.vmware_datastore as vm_store -from glance.store import backend -from glance.store import exceptions -from glance.store.location import get_location_from_uri -from glance.store.openstack.common import units -from glance.store.tests import base -from glance.store.tests import utils +import glance_store._drivers.vmware_datastore as vm_store +from glance_store import backend +from glance_store import exceptions +from glance_store.location import get_location_from_uri +from glance_store.openstack.common import units +from glance_store.tests import base +from glance_store.tests import utils FAKE_UUID = str(uuid.uuid4()) diff --git a/tox.ini b/tox.ini index 9f032352..0437bf5e 100644 --- a/tox.ini +++ b/tox.ini @@ -36,4 +36,4 @@ commands = {posargs} # H404 multi line docstring should start with a summary ignore = E711,E712,F821,F841,H301,H402,H404 builtins = _ -exclude = .venv,.git,.tox,dist,doc,etc,*glance/store/locale*,*openstack/common*,*lib/python*,*egg,build +exclude = .venv,.git,.tox,dist,doc,etc,*glance_store/locale*,*openstack/common*,*lib/python*,*egg,build