Merge "Fix: Volume backup restore output"

This commit is contained in:
Zuul 2025-01-07 18:35:53 +00:00 committed by Gerrit Code Review
commit eb0dbd5c33
5 changed files with 82 additions and 24 deletions

View File

@ -364,16 +364,28 @@ class TestBackupRestore(volume_fakes.TestVolume):
attrs={'volume_id': volume.id},
)
columns = (
"id",
"volume_id",
"volume_name",
)
data = (
backup.id,
volume.id,
volume.name,
)
def setUp(self):
super().setUp()
self.volume_sdk_client.find_backup.return_value = self.backup
self.volume_sdk_client.find_volume.return_value = self.volume
self.volume_sdk_client.restore_backup.return_value = (
volume_fakes.create_one_volume(
{'id': self.volume['id']},
)
)
self.volume_sdk_client.restore_backup.return_value = {
'id': self.backup['id'],
'volume_id': self.volume['id'],
'volume_name': self.volume['name'],
}
# Get the command object to mock
self.cmd = volume_backup.RestoreVolumeBackup(self.app, None)
@ -389,13 +401,15 @@ class TestBackupRestore(volume_fakes.TestVolume):
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
columns, data = self.cmd.take_action(parsed_args)
self.volume_sdk_client.restore_backup.assert_called_with(
self.backup.id,
volume_id=None,
name=None,
)
self.assertIsNotNone(result)
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
def test_backup_restore_with_volume(self):
self.volume_sdk_client.find_volume.side_effect = (
@ -411,13 +425,15 @@ class TestBackupRestore(volume_fakes.TestVolume):
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
columns, data = self.cmd.take_action(parsed_args)
self.volume_sdk_client.restore_backup.assert_called_with(
self.backup.id,
volume_id=None,
name=self.backup.volume_id,
)
self.assertIsNotNone(result)
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
def test_backup_restore_with_volume_force(self):
arglist = [
@ -432,13 +448,15 @@ class TestBackupRestore(volume_fakes.TestVolume):
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
columns, data = self.cmd.take_action(parsed_args)
self.volume_sdk_client.restore_backup.assert_called_with(
self.backup.id,
volume_id=self.volume.id,
name=None,
)
self.assertIsNotNone(result)
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
def test_backup_restore_with_volume_existing(self):
arglist = [

View File

@ -462,16 +462,28 @@ class TestBackupRestore(volume_fakes.TestVolume):
attrs={'volume_id': volume.id},
)
columns = (
"id",
"volume_id",
"volume_name",
)
data = (
backup.id,
volume.id,
volume.name,
)
def setUp(self):
super().setUp()
self.volume_sdk_client.find_backup.return_value = self.backup
self.volume_sdk_client.find_volume.return_value = self.volume
self.volume_sdk_client.restore_backup.return_value = (
volume_fakes.create_one_volume(
{'id': self.volume['id']},
)
)
self.volume_sdk_client.restore_backup.return_value = {
'id': self.backup['id'],
'volume_id': self.volume['id'],
'volume_name': self.volume['name'],
}
# Get the command object to mock
self.cmd = volume_backup.RestoreVolumeBackup(self.app, None)
@ -487,13 +499,15 @@ class TestBackupRestore(volume_fakes.TestVolume):
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
columns, data = self.cmd.take_action(parsed_args)
self.volume_sdk_client.restore_backup.assert_called_with(
self.backup.id,
volume_id=None,
name=None,
)
self.assertIsNotNone(result)
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
def test_backup_restore_with_volume(self):
self.volume_sdk_client.find_volume.side_effect = (
@ -509,13 +523,15 @@ class TestBackupRestore(volume_fakes.TestVolume):
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
columns, data = self.cmd.take_action(parsed_args)
self.volume_sdk_client.restore_backup.assert_called_with(
self.backup.id,
volume_id=None,
name=self.backup.volume_id,
)
self.assertIsNotNone(result)
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
def test_backup_restore_with_volume_force(self):
arglist = [
@ -530,13 +546,15 @@ class TestBackupRestore(volume_fakes.TestVolume):
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
columns, data = self.cmd.take_action(parsed_args)
self.volume_sdk_client.restore_backup.assert_called_with(
self.backup.id,
volume_id=self.volume.id,
name=None,
)
self.assertIsNotNone(result)
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
def test_backup_restore_with_volume_existing(self):
arglist = [

View File

@ -359,6 +359,12 @@ class RestoreVolumeBackup(command.ShowOne):
ignore_missing=False,
)
columns = (
'id',
'volume_id',
'volume_name',
)
volume_name = None
volume_id = None
try:
@ -378,12 +384,15 @@ class RestoreVolumeBackup(command.ShowOne):
)
raise exceptions.CommandError(msg % parsed_args.volume)
return volume_client.restore_backup(
restore = volume_client.restore_backup(
backup.id,
volume_id=volume_id,
name=volume_name,
)
data = utils.get_dict_properties(restore, columns)
return (columns, data)
class SetVolumeBackup(command.Command):
_description = _("Set volume backup properties")

View File

@ -412,6 +412,12 @@ class RestoreVolumeBackup(command.ShowOne):
def take_action(self, parsed_args):
volume_client = self.app.client_manager.sdk_connection.volume
columns = (
'id',
'volume_id',
'volume_name',
)
backup = volume_client.find_backup(
parsed_args.backup,
ignore_missing=False,
@ -436,12 +442,15 @@ class RestoreVolumeBackup(command.ShowOne):
)
raise exceptions.CommandError(msg % parsed_args.volume)
return volume_client.restore_backup(
restore = volume_client.restore_backup(
backup.id,
volume_id=volume_id,
name=volume_name,
)
data = utils.get_dict_properties(restore, columns)
return (columns, data)
class SetVolumeBackup(command.Command):
_description = _("Set volume backup properties")

View File

@ -0,0 +1,4 @@
---
fixes:
- |
Fixed the output of ``volume backup restore`` command.