Fix: incremental volume backup

The incremental volume backup stopped working after we moved from
cinderclient to SDK[1]. This happened because SDK accepts the
``is_incremental`` parameter[2] rather than the ``incremental`` parameter
which is actually passed in the API request and was previously a valid
parameter for cinderclient.

This patch fixes the issue by passing the ``is_incremental`` field instead
of ``incremental`` from the OSC side which adds the ``incremental`` parameter
in the API request.

Request body after the fix:

'{"backup": {"name": null, "description": null, "volume_id": "<vol-id>",
"force": false, "container": null, "incremental": true}}'

[1] https://review.opendev.org/c/openstack/python-openstackclient/+/889748
[2] 10e5e20fc0/openstack/block_storage/v2/backup.py (L126-L134)

Closes-Bug: #2070080
Change-Id: I89bd3d2751267ec39f4dbd664b7873ab87a9ac6c
This commit is contained in:
Rajat Dhasmana 2024-07-01 21:04:45 +05:30
parent ca81b1acf0
commit 205bac3caf
3 changed files with 12 additions and 5 deletions

View File

@ -120,7 +120,7 @@ class TestBackupCreate(TestBackup):
name=self.new_backup.name,
description=self.new_backup.description,
force=True,
incremental=True,
is_incremental=True,
snapshot_id=self.new_backup.snapshot_id,
)
self.assertEqual(self.columns, columns)
@ -150,7 +150,7 @@ class TestBackupCreate(TestBackup):
name=None,
description=None,
force=False,
incremental=False,
is_incremental=False,
metadata={"foo": "bar", "wow": "much-cool"},
)
self.assertEqual(self.columns, columns)
@ -199,7 +199,7 @@ class TestBackupCreate(TestBackup):
name=None,
description=None,
force=False,
incremental=False,
is_incremental=False,
availability_zone="my-az",
)
self.assertEqual(self.columns, columns)
@ -247,7 +247,7 @@ class TestBackupCreate(TestBackup):
name=None,
description=self.new_backup.description,
force=False,
incremental=False,
is_incremental=False,
)
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)

View File

@ -173,7 +173,7 @@ class CreateVolumeBackup(command.ShowOne):
name=parsed_args.name,
description=parsed_args.description,
force=parsed_args.force,
incremental=parsed_args.incremental,
is_incremental=parsed_args.incremental,
**kwargs,
)
data = utils.get_dict_properties(backup, columns)

View File

@ -0,0 +1,7 @@
---
fixes:
- |
Fixed issue with creating incremental volume backup.
Previously, ``incremental`` value was not passed in the
API request which is now included in the backup
create request.