Update _usage_from_backup() method with versionedobjects

The versionedobjects for cinder backup is already
there, somehow the _usage_from_backup() method in
cinder/volume/utils.py is not changed accordingly.
The patch updates the method for this.

Partial-Implements: blueprint cinder-objects
Change-Id: If4ffeabf0d9b6c34cc1a675185019aeb5504ee4d
This commit is contained in:
XinXiaohui 2016-04-06 14:28:22 +08:00
parent 281ddeb03f
commit 002c247957
2 changed files with 31 additions and 25 deletions

View File

@ -27,6 +27,7 @@ from oslo_config import cfg
from cinder import context from cinder import context
from cinder import exception from cinder import exception
from cinder import test from cinder import test
from cinder.tests.unit import fake_backup
from cinder.tests.unit import fake_constants as fake from cinder.tests.unit import fake_constants as fake
from cinder.tests.unit import fake_snapshot from cinder.tests.unit import fake_snapshot
from cinder.tests.unit import fake_volume from cinder.tests.unit import fake_volume
@ -289,31 +290,36 @@ class NotifyUsageTestCase(test.TestCase):
def test_usage_from_backup(self): def test_usage_from_backup(self):
raw_backup = { raw_backup = {
'project_id': '12b0330ec2584a', 'project_id': fake.project_id,
'user_id': '158cba1b8c2bb6008e', 'user_id': fake.user_id,
'availability_zone': 'nova', 'availability_zone': 'nova',
'id': 'fake_id', 'id': fake.backup_id,
'host': 'fake_host', 'host': 'fake_host',
'display_name': 'test_backup', 'display_name': 'test_backup',
'created_at': '2014-12-11T10:10:00', 'created_at': datetime.datetime(2015, 1, 1, 1, 1, 1),
'status': 'available', 'status': 'available',
'volume_id': 'fake_volume_id', 'volume_id': fake.volume_id,
'size': 1, 'size': 1,
'service_metadata': None, 'service_metadata': None,
'service': 'cinder.backup.drivers.swift', 'service': 'cinder.backup.drivers.swift',
'fail_reason': None, 'fail_reason': None,
'parent_id': 'fake_parent_id', 'parent_id': fake.backup2_id,
'num_dependent_backups': 0, 'num_dependent_backups': 0,
'snapshot_id': None, 'snapshot_id': None,
} }
ctxt = context.get_admin_context()
backup_obj = fake_backup.fake_backup_obj(ctxt, **raw_backup)
# Make it easier to find out differences between raw and expected. # Make it easier to find out differences between raw and expected.
expected_backup = raw_backup.copy() expected_backup = raw_backup.copy()
expected_backup['tenant_id'] = expected_backup.pop('project_id') expected_backup['tenant_id'] = expected_backup.pop('project_id')
expected_backup['backup_id'] = expected_backup.pop('id') expected_backup['backup_id'] = expected_backup.pop('id')
expected_backup['created_at'] = (
six.text_type(expected_backup['created_at']) + '+00:00')
usage_info = volume_utils._usage_from_backup(raw_backup) usage_info = volume_utils._usage_from_backup(backup_obj)
self.assertEqual(expected_backup, usage_info) self.assertDictMatch(expected_backup, usage_info)
class LVMVolumeDriverTestCase(test.TestCase): class LVMVolumeDriverTestCase(test.TestCase):

View File

@ -91,24 +91,24 @@ def _usage_from_volume(context, volume_ref, **kw):
return usage_info return usage_info
def _usage_from_backup(backup_ref, **kw): def _usage_from_backup(backup, **kw):
num_dependent_backups = backup_ref['num_dependent_backups'] num_dependent_backups = backup.num_dependent_backups
usage_info = dict(tenant_id=backup_ref['project_id'], usage_info = dict(tenant_id=backup.project_id,
user_id=backup_ref['user_id'], user_id=backup.user_id,
availability_zone=backup_ref['availability_zone'], availability_zone=backup.availability_zone,
backup_id=backup_ref['id'], backup_id=backup.id,
host=backup_ref['host'], host=backup.host,
display_name=backup_ref['display_name'], display_name=backup.display_name,
created_at=str(backup_ref['created_at']), created_at=str(backup.created_at),
status=backup_ref['status'], status=backup.status,
volume_id=backup_ref['volume_id'], volume_id=backup.volume_id,
size=backup_ref['size'], size=backup.size,
service_metadata=backup_ref['service_metadata'], service_metadata=backup.service_metadata,
service=backup_ref['service'], service=backup.service,
fail_reason=backup_ref['fail_reason'], fail_reason=backup.fail_reason,
parent_id=backup_ref['parent_id'], parent_id=backup.parent_id,
num_dependent_backups=num_dependent_backups, num_dependent_backups=num_dependent_backups,
snapshot_id=backup_ref['snapshot_id'], snapshot_id=backup.snapshot_id,
) )
usage_info.update(kw) usage_info.update(kw)