Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)