def _assertEqualsVolumeOrderResult( self, correct_order, limit=None, sort_key="created_at", sort_dir="asc", filters=None, project_id=None, match_keys=["id", "display_name", "volume_metadata", "created_at"], ): """"Verifies that volumes are returned in the correct order.""" if project_id: result = db.volume_get_all_by_project( self.ctxt, project_id, None, limit, sort_key, sort_dir, filters=filters ) else: result = db.volume_get_all(self.ctxt, None, limit, sort_key, sort_dir, filters=filters) self.assertEqual(len(correct_order), len(result)) for vol1, vol2 in zip(result, correct_order): for key in match_keys: val1 = vol1.get(key) val2 = vol2.get(key) # metadata is a dict, compare the 'key' and 'value' of each if key == "volume_metadata": self.assertEqual(len(val1), len(val2)) val1_dict = dict((x.key, x.value) for x in val1) val2_dict = dict((x.key, x.value) for x in val2) self.assertDictMatch(val1_dict, val2_dict) else: self.assertEqual(val1, val2)
def get_all_by_project( cls, context, project_id, marker, limit, sort_keys=None, sort_dirs=None, filters=None, offset=None ): volumes = db.volume_get_all_by_project( context, project_id, marker, limit, sort_keys=sort_keys, sort_dirs=sort_dirs, filters=filters, offset=offset ) expected_attrs = ["admin_metadata", "metadata"] return base.obj_make_list(context, cls(context), objects.Volume, volumes, expected_attrs=expected_attrs)
def test_volume_get_all_by_project(self): volumes = [] for i in xrange(3): volumes.append([db.volume_create(self.ctxt, {"project_id": "p%d" % i}) for j in xrange(3)]) for i in xrange(3): self._assertEqualListsOfObjects( volumes[i], db.volume_get_all_by_project(self.ctxt, "p%d" % i, None, None, "host", None) )
def get_all_by_project(cls, context, project_id, marker, limit, sort_keys=None, sort_dirs=None, filters=None, offset=None): volumes = db.volume_get_all_by_project(context, project_id, marker, limit, sort_keys=sort_keys, sort_dirs=sort_dirs, filters=filters, offset=offset) expected_attrs = cls._get_expected_attrs(context) return base.obj_make_list(context, cls(context), objects.Volume, volumes, expected_attrs=expected_attrs)
def test_volume_get_all_by_project(self): volumes = [] for i in xrange(3): volumes.append([db.volume_create(self.ctxt, { 'project_id': 'p%d' % i}) for j in xrange(3)]) for i in xrange(3): self._assertEqualListsOfObjects(volumes[i], db.volume_get_all_by_project( self.ctxt, 'p%d' % i, None, None, 'host', None))