Example #1
0
    def test_queryprocessor_2(self, query_mock):
        comm = comm_mock.comm_factory({})
        store = traced_mock.store_factory()

        qp = minemeld.traced.queryprocessor.QueryProcessor(comm, store)

        self.assertEqual(comm.rpc_server_channels[0]['name'],
                         minemeld.traced.queryprocessor.QUERY_QUEUE)
        self.assertEqual(comm.rpc_server_channels[0]['allowed_methods'],
                         ['query', 'kill_query'])

        qp.query('uuid-test-1', "test query")
        self.assertEqual(len(traced_mock.MOCK_QUERIES), 1)

        qp.query('uuid-test-2', "bad")
        self.assertEqual(len(traced_mock.MOCK_QUERIES), 2)

        gevent.sleep(0)

        traced_mock.MOCK_QUERIES[0].finish_event.set()
        traced_mock.MOCK_QUERIES[1].finish_event.set()

        gevent.sleep(0)

        qp.stop()
        gevent.sleep(0)
        gevent.sleep(0)

        self.assertEqual(traced_mock.MOCK_QUERIES[0].get(), None)
        self.assertRaises(RuntimeError, traced_mock.MOCK_QUERIES[1].get)
        self.assertNotIn('uuid-test-1', store.release_alls)
        self.assertIn('uuid-test-2', store.release_alls)
Example #2
0
    def test_queryprocessor_5(self, query_mock):
        comm = comm_mock.comm_factory({})
        store = traced_mock.store_factory()

        qp = minemeld.traced.queryprocessor.QueryProcessor(
            comm, store, {'max_concurrency': 2})

        qp.query('uuid-test-1', "test query")
        gevent.sleep(0)

        qp.query('uuid-test-2', "test query")
        gevent.sleep(0)

        self.assertRaises(RuntimeError, qp.query, 'uuid-test-3', "test query")
        gevent.sleep(0)

        traced_mock.MOCK_QUERIES[0].finish_event.set()
        gevent.sleep(0.2)
        self.assertEqual(len(qp.queries), 1)

        self.assertEqual(qp.query('uuid-test-4', "test query"), 'OK')
        gevent.sleep(0)

        qp.stop()
        gevent.sleep(0)
    def test_queryprocessor_5(self, query_mock):
        comm = comm_mock.comm_factory({})
        store = traced_mock.store_factory()

        qp = minemeld.traced.queryprocessor.QueryProcessor(comm, store, {'max_concurrency': 2})

        qp.query('uuid-test-1', "test query")
        gevent.sleep(0)

        qp.query('uuid-test-2', "test query")
        gevent.sleep(0)

        self.assertRaises(
            RuntimeError,
            qp.query,
            'uuid-test-3', "test query"
        )
        gevent.sleep(0)

        traced_mock.MOCK_QUERIES[0].finish_event.set()
        gevent.sleep(0.2)
        self.assertEqual(len(qp.queries), 1)

        self.assertEqual(
            qp.query('uuid-test-4', "test query"),
            'OK'
        )
        gevent.sleep(0)

        qp.stop()
        gevent.sleep(0)
    def test_queryprocessor_4(self, query_mock):
        comm = comm_mock.comm_factory({})
        store = traced_mock.store_factory()

        qp = minemeld.traced.queryprocessor.QueryProcessor(comm, store)

        self.assertEqual(
            comm.rpc_server_channels[0]['name'],
            minemeld.traced.queryprocessor.QUERY_QUEUE
        )
        self.assertEqual(
            comm.rpc_server_channels[0]['allowed_methods'],
            ['query', 'kill_query']
        )

        qp.stop()
        gevent.sleep(0)

        self.assertRaises(
            RuntimeError,
            qp.query,
            'test-uuid-1', "test"
        )
        self.assertRaises(
            RuntimeError,
            qp.kill_query,
            'test-uuid-1'
        )
    def test_queryprocessor_3(self, query_mock):
        comm = comm_mock.comm_factory({})
        store = traced_mock.store_factory()

        qp = minemeld.traced.queryprocessor.QueryProcessor(comm, store)

        self.assertEqual(
            comm.rpc_server_channels[0]['name'],
            minemeld.traced.queryprocessor.QUERY_QUEUE
        )
        self.assertEqual(
            comm.rpc_server_channels[0]['allowed_methods'],
            ['query', 'kill_query']
        )

        qp.query('uuid-test-1', "test query")
        gevent.sleep(0)

        qp.kill_query('uuid-test-1')
        gevent.sleep(0)

        self.assertIsInstance(
            traced_mock.MOCK_QUERIES[0].get(),
            greenlet.GreenletExit
        )
        self.assertEqual(
            len(qp.queries),
            0
        )
        self.assertIn('uuid-test-1', store.release_alls)

        qp.stop()
        gevent.sleep(0)
Example #6
0
    def test_queryprocessor_4(self, query_mock):
        comm = comm_mock.comm_factory({})
        store = traced_mock.store_factory()

        qp = minemeld.traced.queryprocessor.QueryProcessor(comm, store)

        self.assertEqual(comm.rpc_server_channels[0]['name'],
                         minemeld.traced.queryprocessor.QUERY_QUEUE)
        self.assertEqual(comm.rpc_server_channels[0]['allowed_methods'],
                         ['query', 'kill_query'])

        qp.stop()
        gevent.sleep(0)

        self.assertRaises(RuntimeError, qp.query, 'test-uuid-1', "test")
        self.assertRaises(RuntimeError, qp.kill_query, 'test-uuid-1')
    def test_writer(self):
        config = {}
        comm = comm_mock.comm_factory(config)
        store = traced_mock.store_factory()

        writer = minemeld.traced.writer.Writer(comm, store, 'TESTTOPIC')
        self.assertEqual(comm.sub_channels[0]['topic'], 'TESTTOPIC')
        self.assertEqual(comm.sub_channels[0]['allowed_methods'], ['log'])

        writer.log(0, log='testlog')
        self.assertEqual(store.writes[0]['timestamp'], 0)
        self.assertEqual(store.writes[0]['log'], ujson.dumps({'log': 'testlog'}))

        writer.stop()
        writer.log(0, log='testlog')
        self.assertEqual(len(store.writes), 1)

        writer.stop()  # just for coverage
    def test_queryprocessor_2(self, query_mock):
        comm = comm_mock.comm_factory({})
        store = traced_mock.store_factory()

        qp = minemeld.traced.queryprocessor.QueryProcessor(comm, store)

        self.assertEqual(
            comm.rpc_server_channels[0]['name'],
            minemeld.traced.queryprocessor.QUERY_QUEUE
        )
        self.assertEqual(
            comm.rpc_server_channels[0]['allowed_methods'],
            ['query', 'kill_query']
        )

        qp.query('uuid-test-1', "test query")
        self.assertEqual(len(traced_mock.MOCK_QUERIES), 1)

        qp.query('uuid-test-2', "bad")
        self.assertEqual(len(traced_mock.MOCK_QUERIES), 2)

        gevent.sleep(0)

        traced_mock.MOCK_QUERIES[0].finish_event.set()
        traced_mock.MOCK_QUERIES[1].finish_event.set()

        gevent.sleep(0)

        qp.stop()
        gevent.sleep(0)
        gevent.sleep(0)

        self.assertEqual(traced_mock.MOCK_QUERIES[0].get(), None)
        self.assertRaises(
            RuntimeError,
            traced_mock.MOCK_QUERIES[1].get
        )
        self.assertNotIn('uuid-test-1', store.release_alls)
        self.assertIn('uuid-test-2', store.release_alls)
Example #9
0
    def test_queryprocessor_3(self, query_mock):
        comm = comm_mock.comm_factory({})
        store = traced_mock.store_factory()

        qp = minemeld.traced.queryprocessor.QueryProcessor(comm, store)

        self.assertEqual(comm.rpc_server_channels[0]['name'],
                         minemeld.traced.queryprocessor.QUERY_QUEUE)
        self.assertEqual(comm.rpc_server_channels[0]['allowed_methods'],
                         ['query', 'kill_query'])

        qp.query('uuid-test-1', "test query")
        gevent.sleep(0)

        qp.kill_query('uuid-test-1')
        gevent.sleep(0)

        self.assertIsInstance(traced_mock.MOCK_QUERIES[0].get(),
                              greenlet.GreenletExit)
        self.assertEqual(len(qp.queries), 0)
        self.assertIn('uuid-test-1', store.release_alls)

        qp.stop()
        gevent.sleep(0)