def start_server(root_path=ROOT_PATH, port=PORT): dev_appserver.SetupStubs(get_appid(), login_url=LOGIN_URL, datastore_path='/dev/null', history_path='/dev/null', blobstore_path='/dev/null', clear_datastore=False) server = dev_appserver.CreateServer(ROOT_PATH, LOGIN_URL, port, '/unused/templates/path') server_thread = threading.Thread(target=server.serve_forever) server_thread.setDaemon(True) server_thread.start() return port
def start_server(root_path=ROOT_PATH, port=PORT, app_id=APP_ID): dev_appserver.ApplicationLoggingHandler.InitializeTemplates( 'HEADER', 'SCRIPT', 'MIDDLE', 'FOOTER') dev_appserver.SetupStubs(app_id, login_url=LOGIN_URL, datastore_path='/dev/null', history_path='/dev/null', clear_datastore=False) server = dev_appserver.CreateServer(ROOT_PATH, LOGIN_URL, port, '/unused/templates/path') server_thread = threading.Thread(target=server.serve_forever) server_thread.setDaemon(True) server_thread.start() return port
def run(self): """ Sets up the live server and databases, and then loops over handling http requests. """ if self.connections_override: from django.db import connections # 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 = StaticFilesHandler(_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: options = dev_appserver_main.DEFAULT_ARGS.copy() self.httpd = dev_appserver.CreateServer( ".", '/_ah/login', port, default_partition="dev") except Exception, e: if sys.version_info < (2, 6): error_code = e.args[0].args[0] else: error_code = e.args[0].errno if (index + 1 < len(self.possible_ports) and error_code == 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: exc_type, exc_value, exc_traceback = sys.exc_info() logging.error(str(exc_type) + ': ' + str(exc_value)) logging.debug(''.join(traceback.format_exception( exc_type, exc_value, exc_traceback))) return 1 frontend_port=option_dict.get(ARG_MULTIPROCESS_FRONTEND_PORT, None) if frontend_port is not None: frontend_port = int(frontend_port) http_server = dev_appserver.CreateServer( root_path, login_url, port, sdk_dir=SDK_PATH, serve_address=address, allow_skipped_files=allow_skipped_files, static_caching=static_caching, default_partition=default_partition, frontend_port=frontend_port, interactive_console=interactive_console) signal.signal(signal.SIGTERM, SigTermHandler) dev_process.PrintStartMessage(appinfo.application, address, port) if dev_process.IsInstance(): logging.getLogger().setLevel(logging.INFO) try: try:
logging.error(str(exc_type) + ': ' + str(exc_value)) logging.debug(''.join( traceback.format_exception(exc_type, exc_value, exc_traceback))) return 1 frontend_port = option_dict.get(ARG_MULTIPROCESS_FRONTEND_PORT, None) if frontend_port is not None: frontend_port = int(frontend_port) http_server = dev_appserver.CreateServer( root_path, login_url, port, sdk_dir=SDK_PATH, serve_address=address, allow_skipped_files=allow_skipped_files, static_caching=static_caching, default_partition=default_partition, frontend_port= None, interactive_console=interactive_console, secret_hash = hashlib.sha1(appinfo.application + '/' + \ option_dict['COOKIE_SECRET']).hexdigest()) signal.signal(signal.SIGTERM, SigTermHandler) os.environ['APPNAME'] = appinfo.application dev_appserver.DEFAULT_ENV["APPNAME"] = appinfo.application dev_process.PrintStartMessage(appinfo.application, address, port) if dev_process.IsInstance():
logging.getLogger().setLevel(logging.WARNING) try: dev_appserver.SetupStubs(appinfo.application, **option_dict) except: exc_type, exc_value, exc_traceback = sys.exc_info() logging.error(str(exc_type) + ': ' + str(exc_value)) logging.debug(''.join(traceback.format_exception( exc_type, exc_value, exc_traceback))) return 1 http_server = dev_appserver.CreateServer( root_path, login_url, port, sdk_dir=SDK_PATH, serve_address=address, allow_skipped_files=allow_skipped_files, static_caching=static_caching, default_partition=default_partition, persist_logs=persist_logs) signal.signal(signal.SIGTERM, SigTermHandler) dev_process.PrintStartMessage(appinfo.application, address, port) if dev_process.IsInstance(): logging.getLogger().setLevel(logging.INFO) try: try: http_server.serve_forever()
try: dev_appserver.SetupStubs(appinfo.application, **option_dict) except: exc_type, exc_value, exc_traceback = sys.exc_info() logging.error(str(exc_type) + ': ' + str(exc_value)) logging.debug(''.join( traceback.format_exception(exc_type, exc_value, exc_traceback))) return 1 http_server = dev_appserver.CreateServer( root_path, login_url, port, template_dir, sdk_dir=SDK_PATH, serve_address=address, require_indexes=require_indexes, allow_skipped_files=allow_skipped_files, static_caching=static_caching, default_partition=default_partition) signal.signal(signal.SIGTERM, SigTermHandler) dev_process.PrintStartMessage(appinfo.application, address, port) if dev_process.IsInstance(): logging.getLogger().setLevel(logging.INFO) try: try:
update_check.CheckSupportedVersion() if update_check.AllowedToCheckForUpdates(): update_check.CheckForUpdates() try: dev_appserver.SetupStubs(config.application, **option_dict) except: exc_type, exc_value, exc_traceback = sys.exc_info() logging.error(str(exc_type) + ': ' + str(exc_value)) logging.debug(''.join( traceback.format_exception(exc_type, exc_value, exc_traceback))) return 1 http_server = dev_appserver.CreateServer(root_path, login_url, port, template_dir, serve_address=serve_address, require_indexes=require_indexes) logging.info('Running application %s on port %d: http://%s:%d', config.application, port, serve_address, port) try: try: http_server.serve_forever() except KeyboardInterrupt: logging.info('Server interrupted by user, terminating') except: exc_info = sys.exc_info() info_string = '\n'.join(traceback.format_exception(*exc_info)) logging.error('Error encountered:\n%s\nNow terminating.', info_string)
try: dev_appserver.SetupStubs(appinfo.application, **option_dict) except: exc_type, exc_value, exc_traceback = sys.exc_info() logging.error(str(exc_type) + ': ' + str(exc_value)) logging.debug(''.join( traceback.format_exception(exc_type, exc_value, exc_traceback))) return 1 http_server = dev_appserver.CreateServer( root_path, login_url, port, sdk_dir=SDK_PATH, serve_address=address, require_indexes=require_indexes, allow_skipped_files=allow_skipped_files, static_caching=static_caching, default_partition=default_partition, persist_logs=persist_logs, secret_hash=hashlib.sha1(appinfo.application + '/' + option_dict['COOKIE_SECRET']).hexdigest()) signal.signal(signal.SIGTERM, SigTermHandler) os.environ['APPNAME'] = appinfo.application dev_process.PrintStartMessage(appinfo.application, address, port) if dev_process.IsInstance(): logging.getLogger().setLevel(logging.INFO) try: