def statistic_instance_error(self, req, tenant_id, start=None, end=None): """ list all error instance include deleted, then statistic for operations. """ success, error = self._statistic_instance_operation(req, tenant_id, start, end) error = list_filter.filter_instance_error(req, error) error = list_sort.sort_instance_error(req, error) ret = {"ErrorInstanceOperation": len(error), "FaultList": error} if start is not None: ret.update(start=start) if end is not None: ret.update(end=end) return ret
def test_sort_instance_error(self): def generate_instance_error(**kwargs): instance_error = { "tenant_id": "abcd", "name": "test", "uuid": "d39ead1a-9d68-4e44-9cbd-d42b86030d34", "code": 500, "created": "2013-01-01 00:00:00", "message": "NoValidHost" } instance_error.update(**kwargs) return instance_error instance_error1 = generate_instance_error(tenant_id="ownerA", name="sg1", code=404, message="Not Found.") instance_error2 = generate_instance_error(tenant_id="admin", name="ubuntu", uuid="40f7f068-8274-4167-" "943c-1d19b1efc307", code=500, created="2013-02-03 " "10:00:00") instance_error3 = generate_instance_error(tenant_id="opt", name="sg2", uuid="f8d4690c-71cc-4fe9-" "a347-950effa1ad25", created="2013-02-03 " "09:00:00", message="") instance_errors = [instance_error1, instance_error2, instance_error3] req = webob.Request.blank( '/sort?umbrella_sort_key=tenantid') result = list_sort.sort_instance_error(req, instance_errors) expected = [instance_error2, instance_error3, instance_error1] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=name') result = list_sort.sort_instance_error(req, instance_errors) expected = [instance_error1, instance_error3, instance_error2] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=uuid') result = list_sort.sort_instance_error(req, instance_errors) expected = [instance_error2, instance_error1, instance_error3] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=code') result = list_sort.sort_instance_error(req, instance_errors) expected = [instance_error1, instance_error2, instance_error3] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=created') result = list_sort.sort_instance_error(req, instance_errors) expected = [instance_error1, instance_error3, instance_error2] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=message') result = list_sort.sort_instance_error(req, instance_errors) expected = [instance_error3, instance_error1, instance_error2] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=message&umbrella_sort_dir=desc') result = list_sort.sort_instance_error(req, instance_errors) expected = [instance_error2, instance_error1, instance_error3] self.assertEqual(result, expected)
def test_sort_quotas(self): def generate_quotas(**kwargs): return { u'ecus': { u'limit': 50, u'reserved': 0, u'in_use': 1 }, u'gigabytes': { u'limit': 1000, u'reserved': 0, u'in_use': 0 }, u'private_floating_ips': { u'limit': 10, u'reserved': 0, u'in_use': 1 }, u'ram': { u'limit': 51200, u'reserved': 0, u'in_use': 1 }, u'floating_ips': { u'limit': 10, u'reserved': 0, u'in_use': 2 }, u'instances': { u'limit': 10, u'reserved': 0, u'in_use': 1 }, u'key_pairs': { u'limit': 100, u'reserved': 0, u'in_use': 0 }, 'tenant_id': u'dc32392af0ae4a098fb7235760077fa6', 'tenant_name': u'admin', u'cores': { u'limit': 20, u'reserved': 0, u'in_use': 1 }, u'security_groups': { u'limit': 10, u'reserved': 0, u'in_use': 0 } } quotas1 = generate_quotas() quotas2 = generate_quotas(tenant_id='abcd', tenant_name='Project_test') quotas3 = generate_quotas(tenant_id='test', tenant_name='Project_abcd') quotas = [quotas1, quotas2, quotas3] req = webob.Request.blank( '/sort?umbrella_sort_key=tenantid') result = list_sort.sort_instance_error(req, quotas) expected = [quotas1, quotas3, quotas2] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=tenant_name') result = list_sort.sort_instance_error(req, quotas) expected = [quotas3, quotas2, quotas1] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=tenantid&umbrella_sort_dir=desc') result = list_sort.sort_instance_error(req, quotas) expected = [quotas2, quotas3, quotas1] self.assertEqual(result, expected)