diff --git a/doc/source/architecture.rst b/doc/source/architecture.rst index 0b72a3cdda..835635fd7f 100644 --- a/doc/source/architecture.rst +++ b/doc/source/architecture.rst @@ -57,7 +57,7 @@ but are not extensively tested upstream. exclusively makes use of each of the storage systems in the Supported Storages block. Within the Supported Storages block, there exist the following storage systems, none of which make use - of anything else: Filesystem, Swift, S3, Ceph, "ellipses", Sheepdog. + of anything else: Filesystem, Swift, Ceph, "ellipses", Sheepdog. A complete list is given by the currently available drivers in glance_store/_drivers. diff --git a/doc/source/configuring.rst b/doc/source/configuring.rst index 764eb9bb8c..f63083f3ed 100644 --- a/doc/source/configuring.rst +++ b/doc/source/configuring.rst @@ -119,9 +119,8 @@ An example usage would be: $ ls /etc/glance/glance-api.d 00-core.conf - 01-s3.conf - 02-swift.conf - 03-ssl.conf + 01-swift.conf + 02-ssl.conf ... etc. The numeric prefixes in the example above are only necessary if a specific @@ -419,7 +418,7 @@ Optional. Default: ``file`` Can only be specified in configuration files. Sets the storage backend to use by default when storing images in Glance. -Available options for this option are (``file``, ``swift``, ``s3``, ``rbd``, +Available options for this option are (``file``, ``swift``, ``rbd``, ``sheepdog``, ``cinder`` or ``vsphere``). In order to select a default store it must also be listed in the ``stores`` list described below. @@ -428,7 +427,7 @@ it must also be listed in the ``stores`` list described below. Optional. Default: ``file, http`` A comma separated list of enabled glance stores. Some available options for -this option are (``filesystem``, ``http``, ``rbd``, ``s3``, ``swift``, +this option are (``filesystem``, ``http``, ``rbd``, ``swift``, ``sheepdog``, ``cinder``, ``vmware_datastore``) Configuring the Filesystem Storage Backend @@ -870,128 +869,6 @@ In the reference, a user can specify the following parameters: `This option can be specified if ``auth_version`` is ``3``. ` -Configuring the S3 Storage Backend -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* ``s3_store_host=URL`` - -Required when using the S3 storage backend. - -Can only be specified in configuration files. - -`This option is specific to the S3 storage backend.` - -Default: s3.amazonaws.com - -Sets the main service URL supplied to S3 when making calls to its storage -system. For more information about the S3 authentication system, please -see the `S3 documentation `_ - -* ``s3_store_access_key=ACCESS_KEY`` - -Required when using the S3 storage backend. - -Can only be specified in configuration files. - -`This option is specific to the S3 storage backend.` - -Sets the access key to authenticate against the ``s3_store_host`` with. - -You should set this to your 20-character Amazon AWS access key. - -* ``s3_store_secret_key=SECRET_KEY`` - -Required when using the S3 storage backend. - -Can only be specified in configuration files. - -`This option is specific to the S3 storage backend.` - -Sets the secret key to authenticate against the -``s3_store_host`` with for the access key ``s3_store_access_key``. - -You should set this to your 40-character Amazon AWS secret key. - -* ``s3_store_bucket=BUCKET`` - -Required when using the S3 storage backend. - -Can only be specified in configuration files. - -`This option is specific to the S3 storage backend.` - -Sets the name of the bucket to use for Glance images in S3. - -Note that the namespace for S3 buckets is **global**, -therefore you must use a name for the bucket that is unique. It -is recommended that you use a combination of your AWS access key, -**lowercased** with "glance". - -For instance if your Amazon AWS access key is: - -``ABCDEFGHIJKLMNOPQRST`` - -then make your bucket value be: - -``abcdefghijklmnopqrstglance`` - -* ``s3_store_create_bucket_on_put`` - -Optional. Default: ``False`` - -Can only be specified in configuration files. - -`This option is specific to the S3 storage backend.` - -If true, Glance will attempt to create the bucket ``s3_store_bucket`` -if it does not exist. - -* ``s3_store_object_buffer_dir=PATH`` - -Optional. Default: ``the platform's default temporary directory`` - -Can only be specified in configuration files. - -`This option is specific to the S3 storage backend.` - -When sending images to S3, what directory should be -used to buffer the chunks? By default the platform's -temporary directory will be used. - -* ``s3_store_large_object_size=SIZE_IN_MB`` - -Optional. Default: ``100`` - -Can only be specified in configuration files. - -`This option is specific to the S3 storage backend.` - -Size, in ``MB``, should S3 start chunking image files -and do a multipart upload in S3. - -* ``s3_store_large_object_chunk_size=SIZE_IN_MB`` - -Optional. Default: ``10`` - -Can only be specified in configuration files. - -`This option is specific to the S3 storage backend.` - -Multipart upload part size, in ``MB``, should S3 use -when uploading parts. The size must be greater than or -equal to 5MB. The default is 10MB. - -* ``s3_store_thread_pools=NUM`` - -Optional. Default: ``10`` - -Can only be specified in configuration files. - -`This option is specific to the S3 storage backend.` - -The number of thread pools to perform a multipart upload -in S3. The default is 10. - Configuring the RBD Storage Backend ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/source/glanceapi.rst b/doc/source/glanceapi.rst index 7bf6dc335a..a33936cf18 100644 --- a/doc/source/glanceapi.rst +++ b/doc/source/glanceapi.rst @@ -496,7 +496,7 @@ The list of metadata headers that Glance accepts are listed below. * ``x-image-meta-store`` - This header is optional. Valid values are one of ``file``, ``s3``, ``rbd``, + This header is optional. Valid values are one of ``file``, ``rbd``, ``swift``, ``cinder``, ``sheepdog`` or ``vsphere``. When present, Glance will attempt to store the disk image data in the diff --git a/doc/source/images/architecture.png b/doc/source/images/architecture.png index c424b7feaf..e02f13b9a9 100644 Binary files a/doc/source/images/architecture.png and b/doc/source/images/architecture.png differ diff --git a/doc/source/images_src/architecture.graphml b/doc/source/images_src/architecture.graphml index 7e6d24ec78..fb40de2c06 100644 --- a/doc/source/images_src/architecture.graphml +++ b/doc/source/images_src/architecture.graphml @@ -1,6 +1,6 @@ - + @@ -20,10 +20,10 @@ - + - Keystone + Keystone @@ -33,7 +33,7 @@ - Folder 2 + Folder 2 @@ -49,7 +49,7 @@ - API + API @@ -68,10 +68,10 @@ - + - Glance + Glance @@ -81,7 +81,7 @@ - Folder 3 + Folder 3 @@ -97,7 +97,7 @@ - REST API + REST API @@ -114,7 +114,7 @@ - Glance DB + Glance DB @@ -134,7 +134,7 @@ - Database + Database Abstraction Layer @@ -153,10 +153,10 @@ Layer - Glance + Glance Domain Controller - Auth + Auth Notifier Policy Quota @@ -180,7 +180,7 @@ DB - AuthZ + AuthZ Middleware @@ -198,7 +198,7 @@ Middleware - Registry + Registry Layer @@ -218,10 +218,10 @@ Layer - + - Glance Store + Glance Store @@ -231,7 +231,7 @@ Layer - Folder 4 + Folder 4 @@ -247,7 +247,7 @@ Layer - Glance Store Drivers + Glance Store Drivers @@ -264,7 +264,7 @@ Layer - AuthN + AuthN @@ -283,10 +283,10 @@ Layer - + - Supported Storages + Supported Storages @@ -296,7 +296,7 @@ Layer - Folder 5 + Folder 5 @@ -309,10 +309,10 @@ Layer - + - Swift + Swift @@ -329,10 +329,10 @@ Layer - + - S3 + Ceph @@ -349,10 +349,10 @@ Layer - + - Ceph + Sheepdog @@ -369,10 +369,10 @@ Layer - + - Sheepdog + ... @@ -387,32 +387,12 @@ Layer - - - - - - ... - - - - - - - - - - - - - - - Filesystem + Filesystem @@ -434,10 +414,10 @@ Layer - + - A client + A client @@ -447,7 +427,7 @@ Layer - Folder 7 + Folder 7 @@ -463,7 +443,7 @@ Layer - AuthN + AuthN @@ -506,7 +486,7 @@ Layer - + @@ -516,17 +496,7 @@ Layer - - - - - - - - - - - + @@ -546,7 +516,7 @@ Layer - + @@ -556,7 +526,7 @@ Layer - + @@ -576,7 +546,7 @@ Layer - + @@ -586,7 +556,7 @@ Layer - + @@ -643,7 +613,7 @@ Layer - + @@ -653,7 +623,7 @@ Layer - + @@ -663,7 +633,7 @@ Layer - + @@ -674,7 +644,6 @@ Layer - diff --git a/glance/common/config.py b/glance/common/config.py index 5d5a95b11a..6565aadae9 100644 --- a/glance/common/config.py +++ b/glance/common/config.py @@ -159,7 +159,7 @@ common_opts = [ 'connections.')), cfg.StrOpt('metadata_encryption_key', secret=True, help=_('AES key for encrypting store \'location\' metadata. ' - 'This includes, if used, Swift or S3 credentials. ' + 'This includes, if used, Swift credentials. ' 'Should be set to a random string of length 16, 24 or ' '32 bytes')), cfg.StrOpt('digest_algorithm', default='sha256', diff --git a/glance/common/location_strategy/store_type.py b/glance/common/location_strategy/store_type.py index 5b22a25e40..ed12b9a296 100644 --- a/glance/common/location_strategy/store_type.py +++ b/glance/common/location_strategy/store_type.py @@ -57,7 +57,6 @@ def init(): mapping = {'filesystem': ['file', 'filesystem'], 'http': ['http', 'https'], 'rbd': ['rbd'], - 's3': ['s3', 's3+http', 's3+https'], 'swift': ['swift', 'swift+https', 'swift+http'], 'sheepdog': ['sheepdog'], 'cinder': ['cinder'], diff --git a/glance/common/store_utils.py b/glance/common/store_utils.py index b466ef5db1..45509d31ef 100644 --- a/glance/common/store_utils.py +++ b/glance/common/store_utils.py @@ -118,7 +118,7 @@ def validate_external_location(uri): """ Validate if URI of external location are supported. - Only over non-local store types are OK, i.e. S3, Swift, + Only over non-local store types are OK, i.e. Swift, HTTP. Note the absence of 'file://' for security reasons, see LP bug #942118, 1400966, 'swift+config://' is also absent for security reasons, see LP bug #1334196. diff --git a/glance/tests/functional/store_utils.py b/glance/tests/functional/store_utils.py index 66fa175b1a..49efd70dcf 100644 --- a/glance/tests/functional/store_utils.py +++ b/glance/tests/functional/store_utils.py @@ -15,7 +15,7 @@ # under the License. """ -Utility methods to set testcases up for Swift and/or S3 tests. +Utility methods to set testcases up for Swift tests. """ from __future__ import print_function diff --git a/glance/tests/unit/common/scripts/test_scripts_utils.py b/glance/tests/unit/common/scripts/test_scripts_utils.py index 428a87e784..aacbe0112f 100644 --- a/glance/tests/unit/common/scripts/test_scripts_utils.py +++ b/glance/tests/unit/common/scripts/test_scripts_utils.py @@ -120,10 +120,6 @@ class TestScriptsUtils(test_utils.BaseTestCase): self.assertRaises(urllib.error.URLError, script_utils.validate_location_uri, location) - location = 's3+https://' - self.assertRaises(urllib.error.URLError, - script_utils.validate_location_uri, location) - location = 'rbd://' self.assertRaises(urllib.error.URLError, script_utils.validate_location_uri, location) diff --git a/glance/tests/unit/common/test_location_strategy.py b/glance/tests/unit/common/test_location_strategy.py index 27059bda42..ce3984c91e 100644 --- a/glance/tests/unit/common/test_location_strategy.py +++ b/glance/tests/unit/common/test_location_strategy.py @@ -158,11 +158,10 @@ class TestStoreTypeStrategyModule(base.IsolatedUnitTest): def test_get_ordered_locations(self): self.config(store_type_preference=[' rbd', 'sheepdog ', ' filesystem', - 'swift ', ' http ', 's3'], + 'swift ', ' http '], group='store_type_location_strategy') locs = [{'url': 'file://image0', 'metadata': {'idx': 3}}, {'url': 'rbd://image1', 'metadata': {'idx': 0}}, - {'url': 's3://image2', 'metadata': {'idx': 7}}, {'url': 'file://image3', 'metadata': {'idx': 4}}, {'url': 'swift://image4', 'metadata': {'idx': 6}}, {'url': 'cinder://image5', 'metadata': {'idx': 8}}, @@ -176,15 +175,14 @@ class TestStoreTypeStrategyModule(base.IsolatedUnitTest): def test_get_ordered_locations_with_invalid_store_name(self): self.config(store_type_preference=[' rbd', 'sheepdog ', 'invalid', - 'swift ', ' http ', 's3'], + 'swift ', ' http '], group='store_type_location_strategy') - locs = [{'url': 'file://image0', 'metadata': {'idx': 5}}, + locs = [{'url': 'file://image0', 'metadata': {'idx': 4}}, {'url': 'rbd://image1', 'metadata': {'idx': 0}}, - {'url': 's3://image2', 'metadata': {'idx': 4}}, - {'url': 'file://image3', 'metadata': {'idx': 6}}, + {'url': 'file://image3', 'metadata': {'idx': 5}}, {'url': 'swift://image4', 'metadata': {'idx': 3}}, - {'url': 'cinder://image5', 'metadata': {'idx': 7}}, - {'url': 'file://image6', 'metadata': {'idx': 8}}, + {'url': 'cinder://image5', 'metadata': {'idx': 6}}, + {'url': 'file://image6', 'metadata': {'idx': 7}}, {'url': 'rbd://image7', 'metadata': {'idx': 1}}, {'url': 'sheepdog://image8', 'metadata': {'idx': 2}}] ordered_locs = store_type.get_ordered_locations(copy.deepcopy(locs)) diff --git a/glance/tests/unit/v2/test_tasks_resource.py b/glance/tests/unit/v2/test_tasks_resource.py index d6965adfca..641002a2e5 100644 --- a/glance/tests/unit/v2/test_tasks_resource.py +++ b/glance/tests/unit/v2/test_tasks_resource.py @@ -371,7 +371,6 @@ class TestTasksController(test_utils.BaseTestCase): wrong_import_from = [ "swift://cloud.foo/myaccount/mycontainer/path", "file:///path", - "s3://accesskey:secretkey@s3.amazonaws.com/bucket/key-id", "cinder://volume-id" ] executor_factory = self.gateway.get_task_executor_factory( diff --git a/releasenotes/notes/remove-s3-driver-639c60b71761eb6f.yaml b/releasenotes/notes/remove-s3-driver-639c60b71761eb6f.yaml new file mode 100644 index 0000000000..f093f7d62e --- /dev/null +++ b/releasenotes/notes/remove-s3-driver-639c60b71761eb6f.yaml @@ -0,0 +1,11 @@ +--- +prelude: > + s3 store driver has been removed. +upgrade: + - The latest release of glance_store library does not + have the support for s3 driver. All code references of + s3 have been removed from the library. As this release + of Glance uses the updated glance_store library, you + will find s3 driver support removed from Glance too. + One such important example is the location strategy + which no longer has s3 support.