Drop swift check for volume backup
Skipped object-store check, because Cinder also supporting other drivers not related to swift Change-Id: I7349b0bf37b3d296f59f4ee3547dd98a142e1ec7
This commit is contained in:
parent
4913b61713
commit
213ff35355
|
@ -16,7 +16,6 @@ from openstack.block_storage.v2 import snapshot as _snapshot
|
|||
from openstack.block_storage.v2 import stats as _stats
|
||||
from openstack.block_storage.v2 import type as _type
|
||||
from openstack.block_storage.v2 import volume as _volume
|
||||
from openstack import exceptions
|
||||
from openstack import resource
|
||||
|
||||
|
||||
|
@ -231,10 +230,6 @@ class Proxy(_base_proxy.BaseBlockStorageProxy):
|
|||
|
||||
:returns: A generator of backup objects.
|
||||
"""
|
||||
if not self._connection.has_service('object-store'):
|
||||
raise exceptions.SDKException(
|
||||
'Object-store service is required for block-store backups'
|
||||
)
|
||||
base_path = '/backups/detail' if details else None
|
||||
return self._list(_backup.Backup, base_path=base_path, **query)
|
||||
|
||||
|
@ -248,10 +243,6 @@ class Proxy(_base_proxy.BaseBlockStorageProxy):
|
|||
:returns: Backup instance
|
||||
:rtype: :class:`~openstack.block_storage.v2.backup.Backup`
|
||||
"""
|
||||
if not self._connection.has_service('object-store'):
|
||||
raise exceptions.SDKException(
|
||||
'Object-store service is required for block-store backups'
|
||||
)
|
||||
return self._get(_backup.Backup, backup)
|
||||
|
||||
def create_backup(self, **attrs):
|
||||
|
@ -264,10 +255,6 @@ class Proxy(_base_proxy.BaseBlockStorageProxy):
|
|||
:returns: The results of Backup creation
|
||||
:rtype: :class:`~openstack.block_storage.v2.backup.Backup`
|
||||
"""
|
||||
if not self._connection.has_service('object-store'):
|
||||
raise exceptions.SDKException(
|
||||
'Object-store service is required for block-store backups'
|
||||
)
|
||||
return self._create(_backup.Backup, **attrs)
|
||||
|
||||
def delete_backup(self, backup, ignore_missing=True):
|
||||
|
@ -283,10 +270,6 @@ class Proxy(_base_proxy.BaseBlockStorageProxy):
|
|||
|
||||
:returns: ``None``
|
||||
"""
|
||||
if not self._connection.has_service('object-store'):
|
||||
raise exceptions.SDKException(
|
||||
'Object-store service is required for block-store backups'
|
||||
)
|
||||
self._delete(_backup.Backup, backup,
|
||||
ignore_missing=ignore_missing)
|
||||
|
||||
|
@ -301,10 +284,6 @@ class Proxy(_base_proxy.BaseBlockStorageProxy):
|
|||
:returns: Updated backup instance
|
||||
:rtype: :class:`~openstack.block_storage.v2.backup.Backup`
|
||||
"""
|
||||
if not self._connection.has_service('object-store'):
|
||||
raise exceptions.SDKException(
|
||||
'Object-store service is required for block-store backups'
|
||||
)
|
||||
backup = self._get_resource(_backup.Backup, backup)
|
||||
return backup.restore(self, volume_id=volume_id, name=name)
|
||||
|
||||
|
|
|
@ -290,10 +290,6 @@ class Proxy(_base_proxy.BaseBlockStorageProxy):
|
|||
|
||||
:returns: A generator of backup objects.
|
||||
"""
|
||||
if not self._connection.has_service('object-store'):
|
||||
raise exceptions.SDKException(
|
||||
'Object-store service is required for block-store backups'
|
||||
)
|
||||
base_path = '/backups/detail' if details else None
|
||||
return self._list(_backup.Backup, base_path=base_path, **query)
|
||||
|
||||
|
@ -307,10 +303,6 @@ class Proxy(_base_proxy.BaseBlockStorageProxy):
|
|||
:returns: Backup instance
|
||||
:rtype: :class:`~openstack.block_storage.v3.backup.Backup`
|
||||
"""
|
||||
if not self._connection.has_service('object-store'):
|
||||
raise exceptions.SDKException(
|
||||
'Object-store service is required for block-store backups'
|
||||
)
|
||||
return self._get(_backup.Backup, backup)
|
||||
|
||||
def find_backup(self, name_or_id, ignore_missing=True, **attrs):
|
||||
|
@ -325,10 +317,6 @@ class Proxy(_base_proxy.BaseBlockStorageProxy):
|
|||
:raises: :class:`~openstack.exceptions.ResourceNotFound`
|
||||
when no resource can be found.
|
||||
"""
|
||||
if not self._connection.has_service('object-store'):
|
||||
raise exceptions.SDKException(
|
||||
'Object-store service is required for block-store backups'
|
||||
)
|
||||
return self._find(_backup.Backup, name_or_id,
|
||||
ignore_missing=ignore_missing)
|
||||
|
||||
|
@ -342,10 +330,6 @@ class Proxy(_base_proxy.BaseBlockStorageProxy):
|
|||
:returns: The results of Backup creation
|
||||
:rtype: :class:`~openstack.block_storage.v3.backup.Backup`
|
||||
"""
|
||||
if not self._connection.has_service('object-store'):
|
||||
raise exceptions.SDKException(
|
||||
'Object-store service is required for block-store backups'
|
||||
)
|
||||
return self._create(_backup.Backup, **attrs)
|
||||
|
||||
def delete_backup(self, backup, ignore_missing=True):
|
||||
|
@ -361,10 +345,6 @@ class Proxy(_base_proxy.BaseBlockStorageProxy):
|
|||
|
||||
:returns: ``None``
|
||||
"""
|
||||
if not self._connection.has_service('object-store'):
|
||||
raise exceptions.SDKException(
|
||||
'Object-store service is required for block-store backups'
|
||||
)
|
||||
self._delete(_backup.Backup, backup,
|
||||
ignore_missing=ignore_missing)
|
||||
|
||||
|
@ -379,10 +359,6 @@ class Proxy(_base_proxy.BaseBlockStorageProxy):
|
|||
:returns: Updated backup instance
|
||||
:rtype: :class:`~openstack.block_storage.v3.backup.Backup`
|
||||
"""
|
||||
if not self._connection.has_service('object-store'):
|
||||
raise exceptions.SDKException(
|
||||
'Object-store service is required for block-store backups'
|
||||
)
|
||||
backup = self._get_resource(_backup.Backup, backup)
|
||||
return backup.restore(self, volume_id=volume_id, name=name)
|
||||
|
||||
|
@ -437,29 +413,26 @@ class Proxy(_base_proxy.BaseBlockStorageProxy):
|
|||
def _service_cleanup(self, dry_run=True, client_status_queue=None,
|
||||
identified_resources=None,
|
||||
filters=None, resource_evaluation_fn=None):
|
||||
if self._connection.has_service('object-store'):
|
||||
# Volume backups require object-store to be available, even for
|
||||
# listing
|
||||
backups = []
|
||||
for obj in self.backups(details=False):
|
||||
need_delete = self._service_cleanup_del_res(
|
||||
self.delete_backup,
|
||||
obj,
|
||||
dry_run=dry_run,
|
||||
client_status_queue=client_status_queue,
|
||||
identified_resources=identified_resources,
|
||||
filters=filters,
|
||||
resource_evaluation_fn=resource_evaluation_fn)
|
||||
if not dry_run and need_delete:
|
||||
backups.append(obj)
|
||||
backups = []
|
||||
for obj in self.backups(details=False):
|
||||
need_delete = self._service_cleanup_del_res(
|
||||
self.delete_backup,
|
||||
obj,
|
||||
dry_run=dry_run,
|
||||
client_status_queue=client_status_queue,
|
||||
identified_resources=identified_resources,
|
||||
filters=filters,
|
||||
resource_evaluation_fn=resource_evaluation_fn)
|
||||
if not dry_run and need_delete:
|
||||
backups.append(obj)
|
||||
|
||||
# Before deleting snapshots need to wait for backups to be deleted
|
||||
for obj in backups:
|
||||
try:
|
||||
self.wait_for_delete(obj)
|
||||
except exceptions.SDKException:
|
||||
# Well, did our best, still try further
|
||||
pass
|
||||
# Before deleting snapshots need to wait for backups to be deleted
|
||||
for obj in backups:
|
||||
try:
|
||||
self.wait_for_delete(obj)
|
||||
except exceptions.SDKException:
|
||||
# Well, did our best, still try further
|
||||
pass
|
||||
|
||||
snapshots = []
|
||||
for obj in self.snapshots(details=False):
|
||||
|
|
|
@ -17,7 +17,6 @@ from openstack.block_storage.v2 import snapshot
|
|||
from openstack.block_storage.v2 import stats
|
||||
from openstack.block_storage.v2 import type
|
||||
from openstack.block_storage.v2 import volume
|
||||
from openstack import exceptions
|
||||
from openstack.tests.unit import test_proxy_base
|
||||
|
||||
|
||||
|
@ -150,16 +149,3 @@ class TestVolumeProxy(test_proxy_base.TestProxyBase):
|
|||
expected_args=[self.proxy],
|
||||
expected_kwargs={'volume_id': 'vol_id', 'name': 'name'}
|
||||
)
|
||||
|
||||
def test_backup_no_swift(self):
|
||||
"""Ensure proxy method raises exception if swift is not available
|
||||
"""
|
||||
# NOTE: mock has_service
|
||||
self.proxy._connection = mock.Mock()
|
||||
self.proxy._connection.has_service = mock.Mock(return_value=False)
|
||||
self.assertRaises(
|
||||
exceptions.SDKException,
|
||||
self.proxy.restore_backup,
|
||||
'backup',
|
||||
'volume_id',
|
||||
'name')
|
||||
|
|
|
@ -17,7 +17,6 @@ from openstack.block_storage.v3 import snapshot
|
|||
from openstack.block_storage.v3 import stats
|
||||
from openstack.block_storage.v3 import type
|
||||
from openstack.block_storage.v3 import volume
|
||||
from openstack import exceptions
|
||||
from openstack.tests.unit import test_proxy_base
|
||||
|
||||
|
||||
|
@ -169,16 +168,3 @@ class TestVolumeProxy(test_proxy_base.TestProxyBase):
|
|||
expected_args=[self.proxy],
|
||||
expected_kwargs={'volume_id': 'vol_id', 'name': 'name'}
|
||||
)
|
||||
|
||||
def test_backup_no_swift(self):
|
||||
"""Ensure proxy method raises exception if swift is not available
|
||||
"""
|
||||
# NOTE: mock has_service
|
||||
self.proxy._connection = mock.Mock()
|
||||
self.proxy._connection.has_service = mock.Mock(return_value=False)
|
||||
self.assertRaises(
|
||||
exceptions.SDKException,
|
||||
self.proxy.restore_backup,
|
||||
'backup',
|
||||
'volume_id',
|
||||
'name')
|
||||
|
|
Loading…
Reference in New Issue