예제 #1
0
    def test_number_of_workers(self):
        """Ensure the default number of workers matches num cpus."""
        def pid():
            i = 1
            while True:
                i += 1
                yield i

        with mock.patch.object(os, 'fork') as mock_fork:
            mock_fork.side_effect = pid
            server = wsgi.Server()
            server.configure = mock.Mock()
            fake_application = "fake-application"
            server.start(fake_application, None)
            self.assertEqual(processutils.get_worker_count(),
                             len(server.children))
예제 #2
0
    def test_http_keepalive(self, mock_configure_socket):
        self.config(http_keepalive=False)
        self.config(workers=None)

        server = wsgi.Server(threads=1)
        server.sock = 'fake_socket'
        # mocking eventlet.wsgi server method to check it is called with
        # configured 'http_keepalive' value.
        with mock.patch.object(eventlet.wsgi, 'server') as mock_server:
            fake_application = "fake-application"
            server.start(fake_application, 0)
            server.wait()
            mock_server.assert_called_once_with('fake_socket',
                                                fake_application,
                                                log=server._logger,
                                                debug=False,
                                                custom_pool=server.pool,
                                                keepalive=False,
                                                socket_timeout=900)
예제 #3
0
def main():
    try:
        config.parse_args()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glare')

        if cfg.CONF.profiler.enabled:
            _notifier = osprofiler.notifier.create(
                "Messaging", oslo_messaging, {}, notification.get_transport(),
                "glare", "artifacts", cfg.CONF.bind_host)
            osprofiler.notifier.set(_notifier)
        else:
            osprofiler.web.disable()

        server = wsgi.Server(initialize_glance_store=True)
        server.start(config.load_paste_app('glare-api'), default_port=9494)
        server.wait()
    except KNOWN_EXCEPTIONS as e:
        fail(e)
예제 #4
0
파일: api.py 프로젝트: i-newton/glare
def main():
    try:
        config.parse_args()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glare')
        notification.set_defaults()

        if CONF.profiler.enabled:
            initializer.init_from_conf(
                conf=CONF,
                context={},
                project="glare",
                service="api",
                host=CONF.bind_host
            )

        server = wsgi.Server(initialize_glance_store=True)
        server.start(config.load_paste_app('glare-api'), default_port=9494)
        server.wait()
    except KNOWN_EXCEPTIONS as e:
        fail(e)
예제 #5
0
 def test_correct_configure_socket(self):
     mock_socket = mock.Mock()
     self.useFixture(
         fixtures.MonkeyPatch('glare.common.wsgi.ssl.wrap_socket',
                              mock_socket))
     self.useFixture(
         fixtures.MonkeyPatch('glare.common.wsgi.eventlet.listen',
                              lambda *x, **y: mock_socket))
     server = wsgi.Server()
     server.default_port = 1234
     server.configure_socket()
     self.assertIn(
         mock.call.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1),
         mock_socket.mock_calls)
     self.assertIn(
         mock.call.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1),
         mock_socket.mock_calls)
     if hasattr(socket, 'TCP_KEEPIDLE'):
         self.assertIn(
             mock.call().setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE,
                                    wsgi.CONF.tcp_keepidle),
             mock_socket.mock_calls)
예제 #6
0
 def test_create_pool(self):
     """Ensure the wsgi thread pool is an eventlet.greenpool.GreenPool."""
     actual = wsgi.Server(threads=1).create_pool()
     self.assertIsInstance(actual, eventlet.greenpool.GreenPool)