Ejemplo n.º 1
0
    def test_resize_revert_workflow_start_late(self):
        launched_str = '2012-12-21 06:34:50.123'
        launched = utils.str_time_to_unix(launched_str)
        values = {
            'instance': INSTANCE_ID_1,
            'request_id': REQUEST_ID_1,
            'instance_type_id': '1',
            'launched_at': launched,
        }
        InstanceUsage(**values).save()
        resize_launched_str = '2012-12-22 06:34:50.123'
        resize_launched = utils.str_time_to_unix(resize_launched_str)
        values = {
            'instance': INSTANCE_ID_1,
            'request_id': REQUEST_ID_2,
            'instance_type_id': '2',
            'launched_at': resize_launched,
        }
        InstanceUsage(**values).save()

        started_str = '2012-12-22 06:34:50.123'
        started_time = utils.str_time_to_unix(started_str)
        end_str = '2012-12-22 06:36:50.123'
        end_time = utils.str_time_to_unix(end_str)
        start_json = test_utils\
                     .make_resize_revert_start_json(request_id=REQUEST_ID_3)
        end_json = test_utils\
                   .make_resize_revert_end_json(launched_at=end_str,
                                                request_id=REQUEST_ID_3)
        start_raw = create_raw(self.deployment,
                               started_time,
                               views.INSTANCE_EVENT['resize_revert_start'],
                               request_id=REQUEST_ID_3,
                               json=start_json)
        end_raw = create_raw(self.deployment,
                             started_time,
                             views.INSTANCE_EVENT['resize_revert_end'],
                             request_id=REQUEST_ID_3,
                             json=end_json)

        views.aggregate_usage(end_raw)
        views.aggregate_usage(start_raw)

        usages = InstanceUsage.objects.all().order_by('id')
        self.assertEqual(len(usages), 3)
        usage_before_resize = usages[0]
        usage_after_resize = usages[1]
        usage_after_revert = usages[2]
        self.assertOnUsage(usage_before_resize, INSTANCE_ID_1, '1', launched,
                           REQUEST_ID_1)
        self.assertOnUsage(usage_after_resize, INSTANCE_ID_1, '2',
                           resize_launched, REQUEST_ID_2)
        self.assertOnUsage(usage_after_revert, INSTANCE_ID_1, '1', end_time,
                           REQUEST_ID_3)
Ejemplo n.º 2
0
    def test_resize_revert_workflow_start_late(self):
        launched_str = '2012-12-21 06:34:50.123'
        launched = utils.str_time_to_unix(launched_str)
        values = {
            'instance': INSTANCE_ID_1,
            'request_id': REQUEST_ID_1,
            'instance_type_id': '1',
            'launched_at': launched,
            }
        InstanceUsage(**values).save()
        resize_launched_str = '2012-12-22 06:34:50.123'
        resize_launched = utils.str_time_to_unix(resize_launched_str)
        values = {
            'instance': INSTANCE_ID_1,
            'request_id': REQUEST_ID_2,
            'instance_type_id': '2',
            'launched_at': resize_launched,
            }
        InstanceUsage(**values).save()

        started_str = '2012-12-22 06:34:50.123'
        started_time = utils.str_time_to_unix(started_str)
        end_str = '2012-12-22 06:36:50.123'
        end_time = utils.str_time_to_unix(end_str)
        start_json = test_utils\
                     .make_resize_revert_start_json(request_id=REQUEST_ID_3)
        end_json = test_utils\
                   .make_resize_revert_end_json(launched_at=end_str,
                                                request_id=REQUEST_ID_3)
        start_raw = create_raw(self.deployment, started_time,
                               views.INSTANCE_EVENT['resize_revert_start'],
                               request_id=REQUEST_ID_3, json=start_json)
        end_raw = create_raw(self.deployment, started_time,
                             views.INSTANCE_EVENT['resize_revert_end'],
                             request_id=REQUEST_ID_3, json=end_json)

        views.aggregate_usage(end_raw)
        views.aggregate_usage(start_raw)

        usages = InstanceUsage.objects.all().order_by('id')
        self.assertEqual(len(usages), 3)
        usage_before_resize = usages[0]
        usage_after_resize = usages[1]
        usage_after_revert = usages[2]
        self.assertOnUsage(usage_before_resize, INSTANCE_ID_1, '1', launched,
                           REQUEST_ID_1)
        self.assertOnUsage(usage_after_resize, INSTANCE_ID_1, '2',
                           resize_launched, REQUEST_ID_2)
        self.assertOnUsage(usage_after_revert, INSTANCE_ID_1, '1', end_time,
                           REQUEST_ID_3)
Ejemplo n.º 3
0
    def test_create_workflow_start_late(self):
        created_str = '2012-12-21 06:30:50.123'
        created = utils.str_time_to_unix(created_str)
        launched_str = '2012-12-21 06:34:50.123'
        launched = utils.str_time_to_unix(launched_str)
        create_start_json = test_utils.make_create_start_json()
        create_end_json = test_utils.make_create_end_json(launched_str)
        create_start_raw = create_raw(self.deployment, created,
                                      views.INSTANCE_EVENT['create_start'],
                                      json=create_start_json)
        create_end_raw = create_raw(self.deployment, launched,
                                    views.INSTANCE_EVENT['create_end'],
                                    json=create_end_json)

        views.aggregate_usage(create_end_raw)
        views.aggregate_usage(create_start_raw)

        usages = InstanceUsage.objects.all()
        self.assertEqual(len(usages), 1)
        usage = usages[0]
        self.assertOnUsage(usage, INSTANCE_ID_1, '1', launched, REQUEST_ID_1)
Ejemplo n.º 4
0
    def test_create_workflow_start_late(self):
        created_str = '2012-12-21 06:30:50.123'
        created = utils.str_time_to_unix(created_str)
        launched_str = '2012-12-21 06:34:50.123'
        launched = utils.str_time_to_unix(launched_str)
        create_start_json = test_utils.make_create_start_json()
        create_end_json = test_utils.make_create_end_json(launched_str)
        create_start_raw = create_raw(self.deployment,
                                      created,
                                      views.INSTANCE_EVENT['create_start'],
                                      json=create_start_json)
        create_end_raw = create_raw(self.deployment,
                                    launched,
                                    views.INSTANCE_EVENT['create_end'],
                                    json=create_end_json)

        views.aggregate_usage(create_end_raw)
        views.aggregate_usage(create_start_raw)

        usages = InstanceUsage.objects.all()
        self.assertEqual(len(usages), 1)
        usage = usages[0]
        self.assertOnUsage(usage, INSTANCE_ID_1, '1', launched, REQUEST_ID_1)
Ejemplo n.º 5
0
    def test_resize_workflow_out_of_order(self):
        launched_str = '2012-12-21 06:34:50.123'
        launched = utils.str_time_to_unix(launched_str)
        values = {
            'instance': INSTANCE_ID_1,
            'request_id': REQUEST_ID_1,
            'instance_type_id': '1',
            'launched_at': launched,
        }
        InstanceUsage(**values).save()

        started_str = '2012-12-22 06:34:50.123'
        started_time = utils.str_time_to_unix(started_str)
        pre_end_str = '2012-12-22 06:36:50.123'
        prep_end_time = utils.str_time_to_unix(pre_end_str)
        finish_str = '2012-12-22 06:38:50.123'
        finish_time = utils.str_time_to_unix(finish_str)
        prep_start_json = test_utils\
        .make_resize_prep_start_json(request_id=REQUEST_ID_2)
        prep_end_json = test_utils\
                        .make_resize_prep_end_json(new_instance_type_id='2',
                                                   request_id=REQUEST_ID_2)
        finish_json = test_utils\
                      .make_resize_finish_json(launched_at=finish_str,
                                               request_id=REQUEST_ID_2)
        prep_start_raw = create_raw(self.deployment,
                                    started_time,
                                    views.INSTANCE_EVENT['resize_prep_start'],
                                    request_id=REQUEST_ID_2,
                                    json=prep_start_json)
        prep_end_raw = create_raw(self.deployment,
                                  prep_end_time,
                                  views.INSTANCE_EVENT['resize_prep_end'],
                                  request_id=REQUEST_ID_2,
                                  json=prep_end_json)
        finish_raw = create_raw(self.deployment,
                                finish_time,
                                views.INSTANCE_EVENT['resize_finish_end'],
                                request_id=REQUEST_ID_2,
                                json=finish_json)

        # Resize Started, notification on time
        views.aggregate_usage(prep_start_raw)
        # Received finish_end, prep_end late
        views.aggregate_usage(finish_raw)
        # Finally receive the late prep_end
        views.aggregate_usage(prep_end_raw)

        usages = InstanceUsage.objects.all().order_by('id')
        self.assertEqual(len(usages), 2)
        usage_before = usages[0]
        usage_after = usages[1]
        self.assertOnUsage(usage_before, INSTANCE_ID_1, '1', launched,
                           REQUEST_ID_1)
        self.assertOnUsage(usage_after, INSTANCE_ID_1, '2', finish_time,
                           REQUEST_ID_2)
Ejemplo n.º 6
0
    def test_resize_workflow_out_of_order(self):
        launched_str = '2012-12-21 06:34:50.123'
        launched = utils.str_time_to_unix(launched_str)
        values = {
            'instance': INSTANCE_ID_1,
            'request_id': REQUEST_ID_1,
            'instance_type_id': '1',
            'launched_at': launched,
            }
        InstanceUsage(**values).save()

        started_str = '2012-12-22 06:34:50.123'
        started_time = utils.str_time_to_unix(started_str)
        pre_end_str = '2012-12-22 06:36:50.123'
        prep_end_time = utils.str_time_to_unix(pre_end_str)
        finish_str = '2012-12-22 06:38:50.123'
        finish_time = utils.str_time_to_unix(finish_str)
        prep_start_json = test_utils\
        .make_resize_prep_start_json(request_id=REQUEST_ID_2)
        prep_end_json = test_utils\
                        .make_resize_prep_end_json(new_instance_type_id='2',
                                                   request_id=REQUEST_ID_2)
        finish_json = test_utils\
                      .make_resize_finish_json(launched_at=finish_str,
                                               request_id=REQUEST_ID_2)
        prep_start_raw = create_raw(self.deployment, started_time,
                                    views.INSTANCE_EVENT['resize_prep_start'],
                                    request_id=REQUEST_ID_2,
                                    json=prep_start_json)
        prep_end_raw = create_raw(self.deployment, prep_end_time,
                                  views.INSTANCE_EVENT['resize_prep_end'],
                                  request_id=REQUEST_ID_2,
                                  json=prep_end_json)
        finish_raw = create_raw(self.deployment, finish_time,
                                views.INSTANCE_EVENT['resize_finish_end'],
                                request_id=REQUEST_ID_2,
                                json=finish_json)

        # Resize Started, notification on time
        views.aggregate_usage(prep_start_raw)
        # Received finish_end, prep_end late
        views.aggregate_usage(finish_raw)
        # Finally receive the late prep_end
        views.aggregate_usage(prep_end_raw)

        usages = InstanceUsage.objects.all().order_by('id')
        self.assertEqual(len(usages), 2)
        usage_before = usages[0]
        usage_after = usages[1]
        self.assertOnUsage(usage_before, INSTANCE_ID_1, '1', launched,
                           REQUEST_ID_1)
        self.assertOnUsage(usage_after, INSTANCE_ID_1, '2', finish_time,
                           REQUEST_ID_2)