示例#1
0
    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)
示例#2
0
    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))
示例#3
0
    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)
示例#4
0
    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))
示例#5
0
    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))
示例#6
0
    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))
示例#7
0
    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))
示例#8
0
    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))
示例#9
0
    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))
示例#10
0
    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))
示例#11
0
    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))