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:
Anton Sidelnikov 2020-12-04 18:47:00 +00:00
parent 4913b61713
commit 213ff35355
4 changed files with 19 additions and 95 deletions

View File

@ -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)

View File

@ -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):

View File

@ -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')

View File

@ -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')