diff --git a/doc/source/architecture.rst b/doc/source/architecture.rst index 0b72a3cd..835635fd 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 764eb9bb..f63083f3 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 e03cc564..3b412225 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 c424b7fe..e02f13b9 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 7e6d24ec..fb40de2c 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 5d5a95b1..6565aada 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 5b22a25e..ed12b9a2 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 b466ef5d..45509d31 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 66fa175b..49efd70d 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 428a87e7..aacbe011 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 27059bda..ce3984c9 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 d6965adf..641002a2 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 00000000..f093f7d6 --- /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.