Merge "Remove all references to sheepdog"
This commit is contained in:
commit
2d21685ee4
@ -46,9 +46,8 @@ operators to enable multiple stores support.
|
|||||||
* ``enabled_backends`` must be set as a key:value pair where key
|
* ``enabled_backends`` must be set as a key:value pair where key
|
||||||
represents the identifier for the store and value will be the type
|
represents the identifier for the store and value will be the type
|
||||||
of the store. Valid values are one of ``file``, ``http``, ``rbd``,
|
of the store. Valid values are one of ``file``, ``http``, ``rbd``,
|
||||||
``swift``, ``cinder``, ``sheepdog`` or ``vmware``. In order to have
|
``swift``, ``cinder`` or ``vmware``. In order to have multiple stores
|
||||||
multiple stores operator can specify multiple key:value separated by
|
operator can specify multiple key:value separated by comma.
|
||||||
comma.
|
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
The store identifier prefix ``os_glance_`` is reserved. If you
|
The store identifier prefix ``os_glance_`` is reserved. If you
|
||||||
|
@ -401,15 +401,15 @@ stores disk images. These configuration options are specified in the
|
|||||||
|
|
||||||
Sets the storage backend to use by default when storing images in Glance.
|
Sets the storage backend to use by default when storing images in Glance.
|
||||||
Available options for this option are (``file``, ``swift``, ``rbd``,
|
Available options for this option are (``file``, ``swift``, ``rbd``,
|
||||||
``sheepdog``, ``cinder`` or ``vsphere``). In order to select a default store
|
``cinder`` or ``vsphere``). In order to select a default store it must also
|
||||||
it must also be listed in the ``stores`` list described below.
|
be listed in the ``stores`` list described below.
|
||||||
|
|
||||||
``stores=STORES``
|
``stores=STORES``
|
||||||
Optional. Default: ``file, http``
|
Optional. Default: ``file, http``
|
||||||
|
|
||||||
A comma separated list of enabled glance stores. Some available options for
|
A comma separated list of enabled glance stores. Some available options for
|
||||||
this option are (``filesystem``, ``http``, ``rbd``, ``swift``,
|
this option are (``filesystem``, ``http``, ``rbd``, ``swift``, ``cinder``,
|
||||||
``sheepdog``, ``cinder``, ``vmware``)
|
``vmware``)
|
||||||
|
|
||||||
Configuring the Filesystem Storage Backend
|
Configuring the Filesystem Storage Backend
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -909,37 +909,6 @@ using a pool called ``images``, run::
|
|||||||
ceph-authtool --gen-key --name client.glance --cap mon 'allow r' --cap osd 'allow rwx pool=images' /etc/glance/rbd.keyring
|
ceph-authtool --gen-key --name client.glance --cap mon 'allow r' --cap osd 'allow rwx pool=images' /etc/glance/rbd.keyring
|
||||||
ceph auth add client.glance -i /etc/glance/rbd.keyring
|
ceph auth add client.glance -i /etc/glance/rbd.keyring
|
||||||
|
|
||||||
Configuring the Sheepdog Storage Backend
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
``sheepdog_store_address=ADDR``
|
|
||||||
Optional. Default: ``localhost``
|
|
||||||
|
|
||||||
Can only be specified in configuration files.
|
|
||||||
|
|
||||||
`This option is specific to the Sheepdog storage backend.`
|
|
||||||
|
|
||||||
Sets the IP address of the sheep daemon
|
|
||||||
|
|
||||||
``sheepdog_store_port=PORT``
|
|
||||||
Optional. Default: ``7000``
|
|
||||||
|
|
||||||
Can only be specified in configuration files.
|
|
||||||
|
|
||||||
`This option is specific to the Sheepdog storage backend.`
|
|
||||||
|
|
||||||
Sets the IP port of the sheep daemon
|
|
||||||
|
|
||||||
``sheepdog_store_chunk_size=SIZE_IN_MB``
|
|
||||||
Optional. Default: ``64``
|
|
||||||
|
|
||||||
Can only be specified in configuration files.
|
|
||||||
|
|
||||||
`This option is specific to the Sheepdog storage backend.`
|
|
||||||
|
|
||||||
Images will be chunked into objects of this size (in megabytes).
|
|
||||||
For best performance, this should be a power of two.
|
|
||||||
|
|
||||||
Configuring the Cinder Storage Backend
|
Configuring the Cinder Storage Backend
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
@ -502,7 +502,7 @@ The list of metadata headers that Glance accepts are listed below.
|
|||||||
* ``x-image-meta-store``
|
* ``x-image-meta-store``
|
||||||
|
|
||||||
This header is optional. Valid values are one of ``file``, ``rbd``,
|
This header is optional. Valid values are one of ``file``, ``rbd``,
|
||||||
``swift``, ``cinder``, ``sheepdog`` or ``vsphere``.
|
``swift``, ``cinder`` or ``vsphere``.
|
||||||
|
|
||||||
When present, Glance will attempt to store the disk image data in the
|
When present, Glance will attempt to store the disk image data in the
|
||||||
backing store indicated by the value of the header. If the Glance node
|
backing store indicated by the value of the header. If the Glance node
|
||||||
|
@ -5448,7 +5448,6 @@
|
|||||||
# * http
|
# * http
|
||||||
# * rbd
|
# * rbd
|
||||||
# * swift
|
# * swift
|
||||||
# * sheepdog
|
|
||||||
# * cinder
|
# * cinder
|
||||||
# * vmware
|
# * vmware
|
||||||
#
|
#
|
||||||
|
@ -12,17 +12,55 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
import glance_store
|
||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
from oslo_upgradecheck import upgradecheck
|
from oslo_upgradecheck import upgradecheck
|
||||||
|
|
||||||
|
from glance.common import wsgi # noqa
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
|
|
||||||
|
SUCCESS = upgradecheck.Code.SUCCESS
|
||||||
|
FAILURE = upgradecheck.Code.FAILURE
|
||||||
|
|
||||||
|
|
||||||
class Checks(upgradecheck.UpgradeCommands):
|
class Checks(upgradecheck.UpgradeCommands):
|
||||||
"""Programmable upgrade checks."""
|
"""Programmable upgrade checks."""
|
||||||
|
|
||||||
pass
|
def _check_sheepdog_store(self):
|
||||||
|
"""Check that the removed sheepdog backend store is not configured."""
|
||||||
|
glance_store.register_opts(CONF)
|
||||||
|
sheepdog_present = False
|
||||||
|
if 'sheepdog' in getattr(CONF, 'enabled_backends', {}):
|
||||||
|
sheepdog_present = True
|
||||||
|
|
||||||
|
if 'sheepdog' in getattr(CONF.glance_store, 'stores', []):
|
||||||
|
sheepdog_present = True
|
||||||
|
|
||||||
|
if sheepdog_present:
|
||||||
|
return upgradecheck.Result(
|
||||||
|
FAILURE,
|
||||||
|
'The "sheepdog" backend store driver has been removed, but '
|
||||||
|
'current settings have it configured.')
|
||||||
|
|
||||||
|
return upgradecheck.Result(SUCCESS)
|
||||||
|
|
||||||
|
_upgrade_checks = (
|
||||||
|
# Added in Ussuri
|
||||||
|
('Sheepdog Driver Removal', _check_sheepdog_store),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
try:
|
||||||
return upgradecheck.main(CONF, 'glance', Checks())
|
return upgradecheck.main(CONF, 'glance', Checks())
|
||||||
|
except cfg.ConfigDirNotFoundError:
|
||||||
|
return ('ERROR: cannot read the glance configuration directory.\n'
|
||||||
|
'Please re-run using the --config-dir <dirname> option '
|
||||||
|
'with a valid glance configuration directory.')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.exit(main())
|
||||||
|
@ -44,7 +44,6 @@ Possible values:
|
|||||||
* http
|
* http
|
||||||
* rbd
|
* rbd
|
||||||
* swift
|
* swift
|
||||||
* sheepdog
|
|
||||||
* cinder
|
* cinder
|
||||||
* vmware
|
* vmware
|
||||||
|
|
||||||
@ -80,7 +79,6 @@ def init():
|
|||||||
'http': ['http', 'https'],
|
'http': ['http', 'https'],
|
||||||
'rbd': ['rbd'],
|
'rbd': ['rbd'],
|
||||||
'swift': ['swift', 'swift+https', 'swift+http'],
|
'swift': ['swift', 'swift+https', 'swift+http'],
|
||||||
'sheepdog': ['sheepdog'],
|
|
||||||
'cinder': ['cinder'],
|
'cinder': ['cinder'],
|
||||||
'vmware': ['vsphere']}
|
'vmware': ['vsphere']}
|
||||||
_STORE_TO_SCHEME_MAP.clear()
|
_STORE_TO_SCHEME_MAP.clear()
|
||||||
|
@ -40,8 +40,7 @@ class StoreClearingUnitTest(test_utils.BaseTestCase):
|
|||||||
self.addCleanup(setattr, location, 'SCHEME_TO_CLS_MAP', dict())
|
self.addCleanup(setattr, location, 'SCHEME_TO_CLS_MAP', dict())
|
||||||
|
|
||||||
def _create_stores(self, passing_config=True):
|
def _create_stores(self, passing_config=True):
|
||||||
"""Create known stores. Mock out sheepdog's subprocess dependency
|
"""Create known stores.
|
||||||
on collie.
|
|
||||||
|
|
||||||
:param passing_config: making store driver passes basic configurations.
|
:param passing_config: making store driver passes basic configurations.
|
||||||
:returns: the number of how many store drivers been loaded.
|
:returns: the number of how many store drivers been loaded.
|
||||||
@ -66,8 +65,7 @@ class MultiStoreClearingUnitTest(test_utils.BaseTestCase):
|
|||||||
self.addCleanup(setattr, location, 'SCHEME_TO_CLS_MAP', dict())
|
self.addCleanup(setattr, location, 'SCHEME_TO_CLS_MAP', dict())
|
||||||
|
|
||||||
def _create_multi_stores(self, passing_config=True):
|
def _create_multi_stores(self, passing_config=True):
|
||||||
"""Create known stores. Mock out sheepdog's subprocess dependency
|
"""Create known stores.
|
||||||
on collie.
|
|
||||||
|
|
||||||
:param passing_config: making store driver passes basic configurations.
|
:param passing_config: making store driver passes basic configurations.
|
||||||
:returns: the number of how many store drivers been loaded.
|
:returns: the number of how many store drivers been loaded.
|
||||||
|
@ -116,10 +116,6 @@ class TestScriptsUtils(test_utils.BaseTestCase):
|
|||||||
self.assertRaises(urllib.error.URLError,
|
self.assertRaises(urllib.error.URLError,
|
||||||
script_utils.validate_location_uri, location)
|
script_utils.validate_location_uri, location)
|
||||||
|
|
||||||
location = 'sheepdog://'
|
|
||||||
self.assertRaises(urllib.error.URLError,
|
|
||||||
script_utils.validate_location_uri, location)
|
|
||||||
|
|
||||||
location = 'rbd://'
|
location = 'rbd://'
|
||||||
self.assertRaises(urllib.error.URLError,
|
self.assertRaises(urllib.error.URLError,
|
||||||
script_utils.validate_location_uri, location)
|
script_utils.validate_location_uri, location)
|
||||||
|
@ -154,7 +154,7 @@ class TestStoreTypeStrategyModule(base.IsolatedUnitTest):
|
|||||||
"""Test routines in glance.common.location_strategy.store_type"""
|
"""Test routines in glance.common.location_strategy.store_type"""
|
||||||
|
|
||||||
def test_get_ordered_locations(self):
|
def test_get_ordered_locations(self):
|
||||||
self.config(store_type_preference=[' rbd', 'sheepdog ', ' file',
|
self.config(store_type_preference=[' rbd', ' file',
|
||||||
'swift ', ' http ', 'vmware'],
|
'swift ', ' http ', 'vmware'],
|
||||||
group='store_type_location_strategy')
|
group='store_type_location_strategy')
|
||||||
locs = [{'url': 'file://image0', 'metadata': {'idx': 3}},
|
locs = [{'url': 'file://image0', 'metadata': {'idx': 3}},
|
||||||
@ -164,15 +164,14 @@ class TestStoreTypeStrategyModule(base.IsolatedUnitTest):
|
|||||||
{'url': 'cinder://image5', 'metadata': {'idx': 9}},
|
{'url': 'cinder://image5', 'metadata': {'idx': 9}},
|
||||||
{'url': 'file://image6', 'metadata': {'idx': 5}},
|
{'url': 'file://image6', 'metadata': {'idx': 5}},
|
||||||
{'url': 'rbd://image7', 'metadata': {'idx': 1}},
|
{'url': 'rbd://image7', 'metadata': {'idx': 1}},
|
||||||
{'url': 'vsphere://image9', 'metadata': {'idx': 8}},
|
{'url': 'vsphere://image8', 'metadata': {'idx': 8}}]
|
||||||
{'url': 'sheepdog://image8', 'metadata': {'idx': 2}}]
|
|
||||||
ordered_locs = store_type.get_ordered_locations(copy.deepcopy(locs))
|
ordered_locs = store_type.get_ordered_locations(copy.deepcopy(locs))
|
||||||
locs.sort(key=lambda loc: loc['metadata']['idx'])
|
locs.sort(key=lambda loc: loc['metadata']['idx'])
|
||||||
# The result will ordered by preferred store type order.
|
# The result will ordered by preferred store type order.
|
||||||
self.assertEqual(locs, ordered_locs)
|
self.assertEqual(locs, ordered_locs)
|
||||||
|
|
||||||
def test_get_ordered_locations_with_invalid_store_name(self):
|
def test_get_ordered_locations_with_invalid_store_name(self):
|
||||||
self.config(store_type_preference=[' rbd', 'sheepdog ', 'invalid',
|
self.config(store_type_preference=[' rbd', 'invalid',
|
||||||
'swift ', ' http '],
|
'swift ', ' http '],
|
||||||
group='store_type_location_strategy')
|
group='store_type_location_strategy')
|
||||||
locs = [{'url': 'file://image0', 'metadata': {'idx': 4}},
|
locs = [{'url': 'file://image0', 'metadata': {'idx': 4}},
|
||||||
@ -181,8 +180,7 @@ class TestStoreTypeStrategyModule(base.IsolatedUnitTest):
|
|||||||
{'url': 'swift://image4', 'metadata': {'idx': 3}},
|
{'url': 'swift://image4', 'metadata': {'idx': 3}},
|
||||||
{'url': 'cinder://image5', 'metadata': {'idx': 6}},
|
{'url': 'cinder://image5', 'metadata': {'idx': 6}},
|
||||||
{'url': 'file://image6', 'metadata': {'idx': 7}},
|
{'url': 'file://image6', 'metadata': {'idx': 7}},
|
||||||
{'url': 'rbd://image7', 'metadata': {'idx': 1}},
|
{'url': 'rbd://image7', 'metadata': {'idx': 1}}]
|
||||||
{'url': 'sheepdog://image8', 'metadata': {'idx': 2}}]
|
|
||||||
ordered_locs = store_type.get_ordered_locations(copy.deepcopy(locs))
|
ordered_locs = store_type.get_ordered_locations(copy.deepcopy(locs))
|
||||||
locs.sort(key=lambda loc: loc['metadata']['idx'])
|
locs.sort(key=lambda loc: loc['metadata']['idx'])
|
||||||
# The result will ordered by preferred store type order.
|
# The result will ordered by preferred store type order.
|
||||||
|
7
releasenotes/notes/drop-sheepdog-b55aae84807d31d9.yaml
Normal file
7
releasenotes/notes/drop-sheepdog-b55aae84807d31d9.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
The ``sheepdog`` storage backend driver was deprecated in the Train release
|
||||||
|
and has now been removed. Any deployments still using Sheepdog storage
|
||||||
|
will need to migrate to a different backend storage prior to upgrading to
|
||||||
|
this release.
|
Loading…
Reference in New Issue
Block a user