def test_event_get_all_filtered(self): cluster1 = shared.create_cluster(self.ctx, self.profile, name='cluster1') cluster2 = shared.create_cluster(self.ctx, self.profile, name='cluster2') self.create_event(self.ctx, entity=cluster1, action='CLUSTER_CREATE') self.create_event(self.ctx, entity=cluster1, action='CLUSTER_DELETE') self.create_event(self.ctx, entity=cluster2, action='CLUSTER_CREATE') events = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(2, len(events)) # test filter by action filters = {'action': 'CLUSTER_CREATE'} events = db_api.event_get_all_by_cluster(self.ctx, cluster1.id, filters=filters) self.assertEqual(1, len(events)) self.assertEqual('CLUSTER_CREATE', events[0].action) filters = {'action': 'CLUSTER_UPDATE'} events = db_api.event_get_all_by_cluster(self.ctx, cluster1.id, filters=filters) self.assertEqual(0, len(events)) # test filter by oname filters = {'oname': 'cluster1'} events = db_api.event_get_all_by_cluster(self.ctx, cluster1.id, filters=filters) self.assertEqual(2, len(events)) self.assertEqual('cluster1', events[0].oname) self.assertEqual('cluster1', events[1].oname) filters = {'oname': 'cluster3'} events = db_api.event_get_all_by_cluster(self.ctx, cluster1.id, filters=filters) self.assertEqual(0, len(events)) # test filter by otype filters = {'otype': 'CLUSTER'} events = db_api.event_get_all_by_cluster(self.ctx, cluster2.id, filters=filters) self.assertEqual(1, len(events)) self.assertEqual('CLUSTER', events[0].otype) filters = {'otype': 'NODE'} events = db_api.event_get_all_by_cluster(self.ctx, cluster2.id, filters=filters) self.assertEqual(0, len(events)) # test limit and marker events_all = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) marker = events_all[0].id expected = events_all[1].id events = db_api.event_get_all_by_cluster(self.ctx, cluster1.id, limit=1, marker=marker) self.assertEqual(1, len(events)) self.assertEqual(expected, events[0].id)
def test_event_get_all_by_cluster_diff_project(self): cluster1 = shared.create_cluster(self.ctx, self.profile) cluster2 = shared.create_cluster(self.ctx, self.profile) self.create_event(self.ctx, entity=cluster1) self.create_event(self.ctx, entity=cluster2) new_ctx = utils.dummy_context(project='a-different-project') events = db_api.event_get_all_by_cluster(new_ctx, cluster1.id) self.assertEqual(0, len(events)) events = db_api.event_get_all_by_cluster(new_ctx, cluster1.id, project_safe=False) self.assertEqual(1, len(events))
def test_event_get_all_by_cluster(self): cluster1 = shared.create_cluster(self.ctx, self.profile) cluster2 = shared.create_cluster(self.ctx, self.profile) node1_1 = shared.create_node(self.ctx, cluster1, self.profile) node1_2 = shared.create_node(self.ctx, cluster1, self.profile) node2_1 = shared.create_node(self.ctx, cluster2, self.profile) node_orphan = shared.create_node(self.ctx, None, self.profile) # 1 event for cluster 1 self.create_event(self.ctx, entity=cluster1) events = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(1, len(events)) events = db_api.event_get_all_by_cluster(self.ctx, cluster2.id) self.assertEqual(0, len(events)) # two more events for cluster 1, with one for an orphan node self.create_event(self.ctx, entity=node1_1) self.create_event(self.ctx, entity=node1_2) self.create_event(self.ctx, entity=node_orphan) events = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(3, len(events)) events = db_api.event_get_all_by_cluster(self.ctx, cluster2.id) self.assertEqual(0, len(events)) # one more events for cluster 2, with one for an orphan node self.create_event(self.ctx, entity=cluster2) self.create_event(self.ctx, entity=node_orphan) events = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(3, len(events)) events = db_api.event_get_all_by_cluster(self.ctx, cluster2.id) self.assertEqual(1, len(events)) # two more events for cluster 2, with one for an orphan node self.create_event(self.ctx, entity=node2_1) self.create_event(self.ctx, entity=node2_1) self.create_event(self.ctx, entity=node_orphan) events = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(3, len(events)) events = db_api.event_get_all_by_cluster(self.ctx, cluster2.id) self.assertEqual(3, len(events)) # two more events for cluster 1, with one for an orphan node self.create_event(self.ctx, entity=cluster1) self.create_event(self.ctx, entity=node1_1) self.create_event(self.ctx, entity=node_orphan) events = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(5, len(events)) events = db_api.event_get_all_by_cluster(self.ctx, cluster2.id) self.assertEqual(3, len(events))
def test_event_get_all_by_cluster_admin_context(self): cluster1 = shared.create_cluster(self.ctx, self.profile) self.create_event(self.ctx, entity=cluster1) self.create_event(self.ctx, entity=cluster1) admin_ctx = utils.dummy_context(project='a-different-project', is_admin=True) events = db_api.event_get_all_by_cluster(admin_ctx, cluster1.id, project_safe=True) self.assertEqual(0, len(events)) events = db_api.event_get_all_by_cluster(admin_ctx, cluster1.id, project_safe=False) self.assertEqual(2, len(events))
def test_event_purge(self): cluster1 = shared.create_cluster(self.ctx, self.profile) node1_1 = shared.create_node(self.ctx, cluster1, self.profile) node1_2 = shared.create_node(self.ctx, cluster1, self.profile) self.create_event(self.ctx, entity=cluster1, status='start') self.create_event(self.ctx, entity=cluster1, status='end') self.create_event(self.ctx, entity=node1_1, status='start') self.create_event(self.ctx, entity=node1_1, status='end') timestamp = tu.utcnow() self.create_event(self.ctx, timestamp=timestamp, entity=node1_2, status='start') res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(5, len(res)) db_api.event_purge(project=None, granularity='days', age=5) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(1, len(res))
def test_event_get_all_by_cluster_admin_context(self): cluster1 = shared.create_cluster(self.ctx, self.profile) self.create_event(self.ctx, entity=cluster1) self.create_event(self.ctx, entity=cluster1) admin_ctx = utils.dummy_context(project='a-different-project', is_admin=True) events = db_api.event_get_all_by_cluster(admin_ctx, cluster1.id, project_safe=True) self.assertEqual(2, len(events))
def test_event_prune(self): cluster1 = shared.create_cluster(self.ctx, self.profile) cluster2 = shared.create_cluster(self.ctx, self.profile) node1_1 = shared.create_node(self.ctx, cluster1, self.profile) node_orphan = shared.create_node(self.ctx, None, self.profile) # prune 1: cluste events self.create_event(self.ctx, entity=cluster1) self.create_event(self.ctx, entity=cluster1) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(2, len(res)) db_api.event_prune(self.ctx, cluster1.id) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(0, len(res)) # prune 2: Node level events account to cluster self.create_event(self.ctx, entity=node1_1) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(1, len(res)) db_api.event_prune(self.ctx, cluster1.id) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(0, len(res)) # prune 3: Events related to orphan nodes # no impact here and no error given self.create_event(self.ctx, entity=node_orphan) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(0, len(res)) db_api.event_prune(self.ctx, cluster1.id) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(0, len(res)) # prune 4: Another cluster # no impact here and no error given self.create_event(self.ctx, entity=cluster2) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(0, len(res)) db_api.event_prune(self.ctx, cluster1.id) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(0, len(res))
def test_event_prune(self): cluster1 = shared.create_cluster(self.ctx, self.profile) cluster2 = shared.create_cluster(self.ctx, self.profile) node1_1 = shared.create_node(self.ctx, cluster1, self.profile) node_orphan = shared.create_node(self.ctx, None, self.profile) # prune 1: cluster events self.create_event(self.ctx, entity=cluster1) self.create_event(self.ctx, entity=cluster1) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(2, len(res)) db_api.event_prune(self.ctx, cluster1.id) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(0, len(res)) # prune 2: Node level events account to cluster self.create_event(self.ctx, entity=node1_1) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(1, len(res)) db_api.event_prune(self.ctx, cluster1.id) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(0, len(res)) # prune 3: Events related to orphan nodes # no impact here and no error given self.create_event(self.ctx, entity=node_orphan) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(0, len(res)) db_api.event_prune(self.ctx, cluster1.id) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(0, len(res)) # prune 4: Another cluster # no impact here and no error given self.create_event(self.ctx, entity=cluster2) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(0, len(res)) db_api.event_prune(self.ctx, cluster1.id) res = db_api.event_get_all_by_cluster(self.ctx, cluster1.id) self.assertEqual(0, len(res))