def _run_wsgi(self, addr, port, wsgi_handler): server_address = (addr, port) httpd = WSGIServer(server_address, WSGIRequestHandler) httpd.set_app(wsgi_handler) #httpd.serve_forever() while not self.stop_requested: httpd.handle_request()
def run(self): self.lock.acquire() pidfile = os.path.join(tempfile.gettempdir(), 'lettuce-django.pid') if os.path.exists(pidfile): pid = int(open(pidfile).read()) try: os.kill(pid, 9) except OSError: pass finally: os.unlink(pidfile) open(pidfile, 'w').write(unicode(os.getpid())) bound = False max_port = 65535 connector = socket.socket(socket.AF_INET, socket.SOCK_STREAM) while not bound or self.port < max_port: try: connector.connect((self.address, self.port)) self.port += 1 except socket.error: bound = True break if bound: try: server_address = (self.address, self.port) httpd = WSGIServer(server_address, MutedRequestHandler) bound = True except WSGIServerException: bound = False if not bound: raise LettuceServerException( "the port %d already being used, could not start " \ "django's builtin server on it" % self.port ) handler = StopabbleHandler(WSGIHandler()) if 'django.contrib.admin' in settings.INSTALLED_APPS: admin_media_path = '' handler = AdminMediaHandler(handler, admin_media_path) print "Preparing to server django's admin site static files..." httpd.set_app(handler) global keep_running while keep_running: call_hook('before', 'handle_request', httpd, self) httpd.handle_request() call_hook('after', 'handle_request', httpd, self) if self.lock.locked(): self.lock.release()
def run(self): self.lock.acquire() pidfile = os.path.join(tempfile.gettempdir(), 'lettuce-django.pid') if os.path.exists(pidfile): pid = int(open(pidfile).read()) try: os.kill(pid, 9) except OSError: pass finally: os.unlink(pidfile) open(pidfile, 'w').write(unicode(os.getpid())) bound = False max_port = 65535 connector = socket.socket(socket.AF_INET, socket.SOCK_STREAM) while not bound or self.port < max_port: try: connector.connect((self.address, self.port)) self.port += 1 except socket.error: bound = True break if bound: try: server_address = (self.address, self.port) httpd = WSGIServer(server_address, MutedRequestHandler) bound = True except WSGIServerException: bound = False if not bound: raise LettuceServerException( "the port %d already being used, could not start " \ "django's builtin server on it" % self.port ) handler = StopabbleHandler(WSGIHandler()) if 'django.contrib.admin' in settings.INSTALLED_APPS: admin_media_path = '' handler = AdminMediaHandler(handler, admin_media_path) print "Preparing to server django's admin site static files..." httpd.set_app(handler) global keep_running while keep_running: call_hook('before', 'handle_request', httpd, self) httpd.handle_request() call_hook('after', 'handle_request', httpd, self) if self.lock.locked(): self.lock.release()
def run(self): self.lock.acquire() pidfile = os.path.join(tempfile.gettempdir(), 'lettuce-django.pid') if os.path.exists(pidfile): pid = int(open(pidfile).read()) try: os.kill(pid, 9) except OSError: pass finally: os.unlink(pidfile) open(pidfile, 'w').write(unicode(os.getpid())) connector = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: s = connector.connect((self.address, self.port)) self.lock.release() os.kill(os.getpid(), 9) except socket.error: pass finally: self.lock.release() try: server_address = (self.address, self.port) httpd = WSGIServer(server_address, MutedRequestHandler) except WSGIServerException: raise LettuceServerException( "the port %d already being used, could not start " \ "django's builtin server on it" % self.port, ) handler = WSGIHandler() if self.should_serve_admin_media(): admin_media_path = '' handler = AdminMediaHandler(handler, admin_media_path) if self.should_serve_static_files(): handler = StaticFilesHandler(handler) httpd.set_app(handler) global keep_running while keep_running: call_hook('before', 'handle_request', httpd, self) httpd.handle_request() call_hook('after', 'handle_request', httpd, self) try: self.lock.release() except ValueError: pass
def run(self): try: handler = AdminMediaHandler(WSGIHandler()) server_address = (config.HOST, config.PORT) httpd = WSGIServer(server_address, SilentWSGIRequestHandler) httpd.set_app(handler) while self.running.isSet(): httpd.handle_request() httpd.server_close() except WSGIServerException, e: pass
def run(self): self.lock.acquire() pidfile = os.path.join(tempfile.gettempdir(), 'lettuce-django.pid') if os.path.exists(pidfile): pid = int(open(pidfile).read()) try: os.kill(pid, 9) except OSError: pass finally: os.unlink(pidfile) open(pidfile, 'w').write(unicode(os.getpid())) bound = False max_port = 65535 while not bound or self.port > max_port: try: server_address = (self.address, self.port) httpd = WSGIServer(server_address, MutedRequestHandler) bound = True except WSGIServerException: self.port += 1 if not bound: raise LettuceServerException( "the port %d already being used, could not start " \ "django's builtin server on it" % self.port ) httpd.set_app(StopabbleHandler(WSGIHandler())) self.lock.release() global keep_running while keep_running: httpd.handle_request()
class LiveServerThread(threading.Thread): """ Thread for running a live http server while the tests are running. """ def __init__(self, host, possible_ports, static_handler, connections_override=None): self.host = host self.port = None self.possible_ports = possible_ports self.is_ready = threading.Event() self.error = None self.static_handler = static_handler self.connections_override = connections_override super(LiveServerThread, self).__init__() def run(self): """ Sets up the live server and databases, and then loops over handling http requests. """ if self.connections_override: # Override this thread's database connections with the ones # provided by the main thread. for alias, conn in self.connections_override.items(): connections[alias] = conn try: # Create the handler for serving static and media files handler = self.static_handler(_MediaFilesHandler(WSGIHandler())) # Go through the list of possible ports, hoping that we can find # one that is free to use for the WSGI server. for index, port in enumerate(self.possible_ports): try: self.httpd = WSGIServer( (self.host, port), QuietWSGIRequestHandler) except socket.error as e: if (index + 1 < len(self.possible_ports) and e.errno == errno.EADDRINUSE): # This port is already in use, so we go on and try with # the next one in the list. continue else: # Either none of the given ports are free or the error # is something else than "Address already in use". So # we let that error bubble up to the main thread. raise else: # A free port was found. self.port = port break self.httpd.set_app(handler) self.is_ready.set() self.httpd.serve_forever() except Exception as e: self.error = e self.is_ready.set() def terminate(self): if hasattr(self, 'httpd'): # Stop the WSGI server self.httpd.shutdown() self.httpd.server_close()
class LiveServerThread(threading.Thread): """ Thread for running a live http server while the tests are running. """ def __init__(self, host, possible_ports, static_handler, connections_override=None): self.host = host self.port = None self.possible_ports = possible_ports self.is_ready = threading.Event() self.error = None self.static_handler = static_handler self.connections_override = connections_override super(LiveServerThread, self).__init__() def run(self): """ Sets up the live server and databases, and then loops over handling http requests. """ if self.connections_override: # Override this thread's database connections with the ones # provided by the main thread. for alias, conn in self.connections_override.items(): connections[alias] = conn try: # Create the handler for serving static and media files handler = self.static_handler(_MediaFilesHandler(WSGIHandler())) # Go through the list of possible ports, hoping that we can find # one that is free to use for the WSGI server. for index, port in enumerate(self.possible_ports): try: self.httpd = WSGIServer( (self.host, port), QuietWSGIRequestHandler) except socket.error as e: if (index + 1 < len(self.possible_ports) and e.errno == errno.EADDRINUSE): # This port is already in use, so we go on and try with # the next one in the list. continue else: # Either none of the given ports are free or the error # is something else than "Address already in use". So # we let that error bubble up to the main thread. raise else: # A free port was found. self.port = port break self.httpd.set_app(handler) self.is_ready.set() self.httpd.serve_forever() except Exception as e: self.error = e self.is_ready.set() def terminate(self): if hasattr(self, 'httpd'): # Stop the WSGI server self.httpd.shutdown() self.httpd.server_close()
def serve(view, host='localhost', port=6789): httpd = WSGIServer((host, port), WSGIRequestHandler) httpd.set_app(WSGIWrapper(view)) httpd.serve_forever()
def run(application, addr, port): httpd = WSGIServer((addr, port), WSGIRequestHandler, ipv6=False) httpd.set_app(application) httpd.serve_forever()
def run(self): self.lock.acquire() pidfile = os.path.join(tempfile.gettempdir(), "lettuce-django.pid") if os.path.exists(pidfile): pid = int(open(pidfile).read()) try: os.kill(pid, 9) except OSError: pass finally: os.unlink(pidfile) open(pidfile, "w").write(unicode(os.getpid())) self.configure_mail_queue() connector = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: s = connector.connect((self.address, self.port)) self.lock.release() os.kill(os.getpid(), 9) except socket.error: pass finally: self.lock.release() try: server_address = (self.address, self.port) httpd = WSGIServer(server_address, MutedRequestHandler) except socket.error: raise LettuceServerException( "the port %d already being used, could not start " "django's builtin server on it" % self.port ) handler = WSGIHandler() if self.should_serve_admin_media(): if not AdminMediaHandler: raise LettuceServerException( "AdminMediaHandler is not available in this version of " "Django. Please set LETTUCE_SERVE_ADMIN_MEDIA = False " "in your Django settings." ) admin_media_path = "" handler = AdminMediaHandler(handler, admin_media_path) if self.should_serve_static_files(): handler = StaticFilesHandler(handler) httpd.set_app(handler) global keep_running while keep_running: call_hook("before", "handle_request", httpd, self) httpd.handle_request() call_hook("after", "handle_request", httpd, self) try: self.lock.release() except ValueError: pass
def serve(view, host='localhost', port=6789): httpd = WSGIServer((host, port), WSGIRequestHandler) httpd.set_app(WSGIWrapper(view)) httpd.serve_forever()
import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings") from colors import add_markup from django.core.servers.basehttp import WSGIServer, WSGIRequestHandler, get_internal_wsgi_application logpath = os.getenv('PYTHON_SERVICE_ARGUMENT') class RequestHandler(WSGIRequestHandler): def log_message(self, format, *args): # Don't bother logging requests for admin images, or the favicon. if (self.path.startswith(self.admin_static_prefix) or self.path == '/favicon.ico'): return msg = "[%s] %s" % (self.log_date_time_string(), format % args) kivymarkup = add_markup(msg, args) with open(logpath, 'a') as fh: fh.write(kivymarkup + '\n') fh.flush() server_address = ('0.0.0.0', 8000) wsgi_handler = get_internal_wsgi_application() httpd = WSGIServer(server_address, RequestHandler) httpd.set_app(wsgi_handler) httpd.serve_forever()
def run(self): self.lock.acquire() pidfile = os.path.join(tempfile.gettempdir(), "lettuce-django.pid") if os.path.exists(pidfile): pid = int(open(pidfile).read()) try: os.kill(pid, 9) except OSError: pass finally: os.unlink(pidfile) open(pidfile, "w").write(unicode(os.getpid())) bound = False max_port = 65535 connector = socket.socket(socket.AF_INET, socket.SOCK_STREAM) while not bound or self.port < max_port: try: connector.connect((self.address, self.port)) self.port += 1 except socket.error: bound = True break if bound: try: server_address = (self.address, self.port) httpd = WSGIServer(server_address, MutedRequestHandler) bound = True except WSGIServerException: bound = False if not bound: raise LettuceServerException( "the port %d already being used, could not start " "django's builtin server on it" % self.port ) handler = WSGIHandler() if self.should_serve_admin_media(): admin_media_path = "" handler = AdminMediaHandler(handler, admin_media_path) if self.should_serve_static_files(): handler = StaticFilesHandler(handler) httpd.set_app(handler) global keep_running while keep_running: call_hook("before", "handle_request", httpd, self) httpd.handle_request() call_hook("after", "handle_request", httpd, self) try: self.lock.release() except ValueError: pass