def test_process_raw_data_old_timestamp(self): deployment = self.mox.CreateMockAnything() when = '2013-1-25T13:38:23.123' dict = { '_context_timestamp': when, } args = ('monitor.info', dict) json_args = json.dumps(args) old_info_handler = views.HANDLERS['monitor.info'] views.HANDLERS['monitor.info'] = lambda key, mess: {'host': 'api'} raw_values = { 'deployment': deployment, 'when': utils.decimal_utc(datetime.datetime.strptime(when, "%Y-%m-%dT%H:%M:%S.%f")), 'host': 'api', 'routing_key': 'monitor.info', 'json': json_args } raw = self.mox.CreateMockAnything() views.STACKDB.create_rawdata(**raw_values).AndReturn(raw) views.STACKDB.save(raw) self.mox.StubOutWithMock(views, "aggregate_lifecycle") views.aggregate_lifecycle(raw) self.mox.StubOutWithMock(views, "aggregate_usage") views.aggregate_usage(raw, dict) self.mox.ReplayAll() views.process_raw_data(deployment, args, json_args) self.mox.VerifyAll() views.HANDLERS['monitor.info'] = old_info_handler
def test_aggregate_lifecycle_start(self): event_name = 'compute.instance.create' event = '%s.start' % event_name when = datetime.datetime.utcnow() raw = utils.create_raw(self.mox, when, event, state='building') views.STACKDB.find_lifecycles(instance=INSTANCE_ID_1).AndReturn([]) lifecycle = self.mox.CreateMockAnything() lifecycle.instance = INSTANCE_ID_1 views.STACKDB.create_lifecycle(instance=INSTANCE_ID_1)\ .AndReturn(lifecycle) views.STACKDB.save(lifecycle) views.STACKDB.find_timings(name=event_name, lifecycle=lifecycle)\ .AndReturn([]) timing = utils.create_timing(self.mox, event_name, lifecycle) views.STACKDB.create_timing(lifecycle=lifecycle, name=event_name)\ .AndReturn(timing) views.STACKDB.save(timing) self.mox.ReplayAll() views.aggregate_lifecycle(raw) self.assertEqual(lifecycle.last_raw, raw) self.assertEqual(lifecycle.last_state, 'building') self.assertEqual(lifecycle.last_task_state, '') self.assertEqual(timing.name, event_name) self.assertEqual(timing.lifecycle, lifecycle) self.assertEqual(timing.start_raw, raw) self.assertEqual(timing.start_when, when) self.mox.VerifyAll()
def test_aggregate_lifecycle_end(self): event_name = 'compute.instance.create' start_event = '%s.end' % event_name end_event = '%s.end' % event_name start_when = datetime.datetime.utcnow() end_when = datetime.datetime.utcnow() start_raw = utils.create_raw(self.mox, start_when, start_event, state='building') end_raw = utils.create_raw(self.mox, end_when, end_event, old_task='build') lifecycle = utils.create_lifecycle(self.mox, INSTANCE_ID_1, 'active', '', start_raw) views.STACKDB.find_lifecycles(instance=INSTANCE_ID_1)\ .AndReturn([lifecycle]) views.STACKDB.save(lifecycle) timing = utils.create_timing(self.mox, event_name, lifecycle, start_raw=start_raw, start_when=start_when) views.STACKDB.find_timings(name=event_name, lifecycle=lifecycle)\ .AndReturn([timing]) self.mox.StubOutWithMock(views, "update_kpi") views.update_kpi(timing, end_raw) views.STACKDB.save(timing) self.mox.ReplayAll() views.aggregate_lifecycle(end_raw) self.assertEqual(lifecycle.last_raw, end_raw) self.assertEqual(lifecycle.last_state, 'active') self.assertEqual(lifecycle.last_task_state, 'build') self.assertEqual(timing.name, event_name) self.assertEqual(timing.lifecycle, lifecycle) self.assertEqual(timing.start_raw, start_raw) self.assertEqual(timing.start_when, start_when) self.assertEqual(timing.end_raw, end_raw) self.assertEqual(timing.end_when, end_when) self.assertEqual(timing.diff, end_when - start_when) self.mox.VerifyAll()
def test_aggregate_lifecycle_end(self): event_name = 'compute.instance.create' start_event = '%s.end' % event_name end_event = '%s.end' % event_name start_when = datetime.datetime.utcnow() end_when = datetime.datetime.utcnow() start_raw = utils.create_raw(self.mox, start_when, start_event, state='building') end_raw = utils.create_raw(self.mox, end_when, end_event, old_task='build') lifecycle = utils.create_lifecycle(self.mox, INSTANCE_ID_1, 'active', '', start_raw) views.STACKDB.find_lifecycles(instance=INSTANCE_ID_1)\ .AndReturn([lifecycle]) views.STACKDB.save(lifecycle) timing = utils.create_timing(self.mox, event_name, lifecycle, start_raw=start_raw, start_when=start_when) views.STACKDB.find_timings(name=event_name, lifecycle=lifecycle)\ .AndReturn([timing]) self.mox.StubOutWithMock(views, "update_kpi") views.update_kpi(timing, end_raw) views.STACKDB.save(timing) self.mox.ReplayAll() views.aggregate_lifecycle(end_raw) self.assertEqual(lifecycle.last_raw, end_raw) self.assertEqual(lifecycle.last_state, 'active') self.assertEqual(lifecycle.last_task_state, 'build') self.assertEqual(timing.name, event_name) self.assertEqual(timing.lifecycle, lifecycle) self.assertEqual(timing.start_raw, start_raw) self.assertEqual(timing.start_when, start_when) self.assertEqual(timing.end_raw, end_raw) self.assertEqual(timing.end_when, end_when) self.assertEqual(timing.diff, end_when-start_when) self.mox.VerifyAll()
def test_aggregate_lifecycle_update(self): event = 'compute.instance.update' when = datetime.datetime.utcnow() raw = utils.create_raw(self.mox, when, event, old_task='reboot') views.STACKDB.find_lifecycles(instance=INSTANCE_ID_1).AndReturn([]) lifecycle = self.mox.CreateMockAnything() lifecycle.instance = INSTANCE_ID_1 views.STACKDB.create_lifecycle(instance=INSTANCE_ID_1).AndReturn(lifecycle) views.STACKDB.save(lifecycle) self.mox.StubOutWithMock(views, "start_kpi_tracking") views.start_kpi_tracking(lifecycle, raw) self.mox.ReplayAll() views.aggregate_lifecycle(raw) self.assertEqual(lifecycle.last_raw, raw) self.assertEqual(lifecycle.last_state, 'active') self.assertEqual(lifecycle.last_task_state, 'reboot') self.mox.VerifyAll()
def test_aggregate_lifecycle_no_instance(self): raw = self.mox.CreateMockAnything() raw.instance = None self.mox.ReplayAll() views.aggregate_lifecycle(raw) self.mox.VerifyAll()