wsgi: push deprecated options one step

+ cosmetic/style changes
This commit is contained in:
Sergey Shepelev 2017-04-28 22:29:36 +03:00
parent 0daf3e9da4
commit ef83055441
1 changed files with 40 additions and 40 deletions

View File

@ -1,5 +1,4 @@
import errno
import functools
import os
import sys
import time
@ -7,8 +6,8 @@ import traceback
import types
import warnings
import eventlet
from eventlet import greenio
from eventlet import greenpool
from eventlet import support
from eventlet.green import BaseHTTPServer
from eventlet.green import socket
@ -341,8 +340,8 @@ class HttpProtocol(BaseHTTPServer.BaseHTTPRequestHandler):
self.wfile = socket._fileobject(conn, "wb", self.wbufsize)
else:
# it's a SSLObject, or a martian
raise NotImplementedError("wsgi.py doesn't support sockets "
"of type %s" % type(conn))
raise NotImplementedError(
'''eventlet.wsgi doesn't support sockets of type {0}'''.format(type(conn)))
def handle_one_request(self):
if self.server.max_http_version:
@ -354,7 +353,7 @@ class HttpProtocol(BaseHTTPServer.BaseHTTPRequestHandler):
try:
self.raw_requestline = self.rfile.readline(self.server.url_length_limit)
if len(self.raw_requestline) == self.server.url_length_limit:
if len(self.raw_requestline) >= self.server.url_length_limit:
self.wfile.write(
b"HTTP/1.0 414 Request URI Too Long\r\n"
b"Connection: close\r\nContent-length: 0\r\n\r\n")
@ -741,7 +740,7 @@ class Server(BaseHTTPServer.HTTPServer):
# The actual request handling takes place in __init__, so we need to
# set minimum_chunk_size before __init__ executes and we don't want to modify
# class variable
sock, address = sock_params
sock, address = sock_params[:2]
proto = new(self.protocol)
if self.minimum_chunk_size is not None:
proto.minimum_chunk_size = self.minimum_chunk_size
@ -752,11 +751,12 @@ class Server(BaseHTTPServer.HTTPServer):
# Expected exceptions are not exceptional
sock.close()
# similar to logging "accepted" in server()
self.log.debug('(%s) timed out %r' % (self.pid, address))
self.log.debug('({0}) timed out {1!r}'.format(self.pid, address))
def log_message(self, message):
warnings.warn('server.log_message is deprecated. Please use server.log.info instead')
self.log.info(message)
raise AttributeError('''\
eventlet.wsgi.server.log_message was deprecated and deleted.
Please use server.log.info instead.''')
try:
@ -865,56 +865,56 @@ def server(sock, site,
:param capitalize_response_headers: Normalize response headers' names to Foo-Bar.
Default is True.
"""
serv = Server(sock, sock.getsockname(),
site, log,
environ=environ,
max_http_version=max_http_version,
protocol=protocol,
minimum_chunk_size=minimum_chunk_size,
log_x_forwarded_for=log_x_forwarded_for,
keepalive=keepalive,
log_output=log_output,
log_format=log_format,
url_length_limit=url_length_limit,
debug=debug,
socket_timeout=socket_timeout,
capitalize_response_headers=capitalize_response_headers,
)
serv = Server(
sock, sock.getsockname(),
site, log,
environ=environ,
max_http_version=max_http_version,
protocol=protocol,
minimum_chunk_size=minimum_chunk_size,
log_x_forwarded_for=log_x_forwarded_for,
keepalive=keepalive,
log_output=log_output,
log_format=log_format,
url_length_limit=url_length_limit,
debug=debug,
socket_timeout=socket_timeout,
capitalize_response_headers=capitalize_response_headers,
)
if server_event is not None:
warnings.warn(
'eventlet.wsgi.Server() server_event kwarg is deprecated and will be removed soon',
DeprecationWarning, stacklevel=2)
server_event.send(serv)
if max_size is None:
max_size = DEFAULT_MAX_SIMULTANEOUS_REQUESTS
if custom_pool is not None:
pool = custom_pool
else:
pool = greenpool.GreenPool(max_size)
pool = eventlet.GreenPool(max_size)
if not (hasattr(pool, 'spawn_n') and hasattr(pool, 'waitall')):
raise AttributeError('''\
eventlet.wsgi.Server pool must provide methods: `spawn_n`, `waitall`.
If unsure, use eventlet.GreenPool.''')
try:
serv.log.info("(%s) wsgi starting up on %s" % (
serv.pid, socket_repr(sock)))
serv.log.info('({0}) wsgi starting up on {1}'.format(serv.pid, socket_repr(sock)))
while is_accepting:
try:
client_socket = sock.accept()
client_socket[0].settimeout(serv.socket_timeout)
serv.log.debug("(%s) accepted %r" % (
serv.pid, client_socket[1]))
try:
pool.spawn_n(serv.process_request, client_socket)
except AttributeError:
warnings.warn("wsgi's pool should be an instance of "
"eventlet.greenpool.GreenPool, is %s. Please convert your"
" call site to use GreenPool instead" % type(pool),
DeprecationWarning, stacklevel=2)
pool.execute_async(serv.process_request, client_socket)
serv.log.debug('({0}) accepted {1!r}'.format(serv.pid, client_socket[1]))
pool.spawn_n(serv.process_request, client_socket)
except ACCEPT_EXCEPTIONS as e:
if support.get_errno(e) not in ACCEPT_ERRNO:
raise
except (KeyboardInterrupt, SystemExit):
serv.log.info("wsgi exiting")
serv.log.info('wsgi exiting')
break
finally:
pool.waitall()
serv.log.info("(%s) wsgi exited, is_accepting=%s" % (
serv.pid, is_accepting))
serv.log.info('({0}) wsgi exited, is_accepting={1}'.format(serv.pid, is_accepting))
try:
# NOTE: It's not clear whether we want this to leave the
# socket open or close it. Use cases like Spawning want