| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch consists of the following changes:
* Splitting eventlet.greenio into base, py2 and py3 parts
(eventlet.greenio should be exporing the same public objects). This
change is motivated by the size and the number of conditions present
in the current greenio code
* Connected to the first point: implementing almost completely new
GreenPipe callable utilizing parts of old GreenPipe code but dropping
_fileobject/SocketIO inheritance in favour of io.FileIO and making use
of patched _pyio.open function which wraps raw file-like object in
various readers and writers (they take care of the buffering,
encoding/decoding etc.)
* Implementing (from scratch or updating existing versions)
green versions of the following modules:
* http.* (needed by Python 3's urllib)
* selectors (Python >= 3.4, used in subprocess module)
* urllib.* (needed by various tests and we were already exposing green
urllib)
* Modifying some tests to make tests pass, which includes:
* unicode/bytestring issues
* modifying wsgi_test_conntimeout.py to not pass bufsize and close
arguments to ExplodingSocketFile - on Python 3 it inherits from
SocketIO, which doesn't deal with buffering at all as far as I can
see
* Random cleaning up and reorganizing
* Requiring Python 3.x tests to pass for the whole build to pass
Known issues:
* code repetition
* naming inconsistencies
* possibly breaking some external code using private eventlet.greenio attributes
Closes https://github.com/eventlet/eventlet/issues/108
Affects https://github.com/eventlet/eventlet/issues/6 (I'd call it an
experimental support)
Should help for https://github.com/eventlet/eventlet/issues/145
Should help for https://github.com/eventlet/eventlet/issues/157
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
* pip install misspellings
* git ls-files | grep -v locale | misspellings -f -
Closes GH #194
|
| |
|
|
|
|
|
|
|
| |
Closes #178
Some tests will induce behavior that causes the remote end to close
the connection before all of the data has been written. With small
kernel buffer sizes, this can cause an EPIPE error. Since the test
expects an early close, this can be ignored.
|
| |
|
|
| |
The importlib module must use real thread locks, not eventlet.Semaphore.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
If it's determined that a MySQL test should be skipped during setUp(),
but after the parent setUp() has been called, having created and
started a timer, then tearDown() is never called and the timer never
cancelled, but left to expire during some future, unrelated test.
Move call to parent setUp() to end of child setUp() to insure that the
timer is only created and started after it's been determined that the
test shouldn't be skipped (ie create_db()).
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Some error paths concatenate the output of "type" with a string,
which gives TypeError: cannot concatenate 'str' and 'type' objects,
rather than describing the actual error.
Closes #149 GH
Closes #150 GH
Conflicts:
eventlet/hubs/twistedr.py
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
order in the class constructor so it uses the same order as the actual class
from Python 3.3 and above.
TimeoutExpired from Python 3.3 takes arguments in the following order:
cmd, timeout, output.
See https://github.com/python/cpython/blob/master/Lib/subprocess.py#L388
|
| | |
|
| |
|
|
| |
This restores tests removed in 23beb7d43e
|
| | |
|
| |
|
|
| |
Closes #161 (GH)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes:
* patching more tests to pass
* removing few unit tests which I think are redundant
* repeating SSL socket reads in a loop to read all data (I suspect this is
related to the fact that writelines is used in the server code there and
Python 3 writelines calls write/send repeatedly while on Python 2 it
calls it once; on one hand there's no guarantee that single recv/read
will return all data sent by the server, on the other hand it's quite
suspicious that the number of required reads seems to be connected to
the number of sends on the other side of the connection)
* working through Python 2/Python 3 threading and thread differences; the
lock code I used is the simplest way I could make the tests pass but
will likely need to be modified in order to match the original
This commit includes 6bcb1dc and closes GH #153
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Per HTTP RFC 7231 (http://tools.ietf.org/html/rfc7231#section-6.2)
a client is required to be able to process one or more 100 continue
responses.
-- RFC 7231 --------------------
6.2. Informational 1xx
[snip]
A client MUST be able to parse one or more 1xx responses received
prior to a final response, even if the client does not expect one.
A user agent MAY ignore unexpected 1xx responses.
...
--------------------------------
This patch adds a send_hundred_continue_headers() public API method
to wsgi.input, thus allowing WSGI apps to send more than one 100-
continue response. This does not change existing semantics for the
first 100-continue response sent on read() or readline().
|
| | |
|
| | |
|
| |
|
|
|
| |
Closes #137
Closes #148
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes changes to WSGI, websocket, bytes/str/unicode handling,
SSL, backdoor, greenio and tests.
Some comments and conditionals (PY2/PY3) were added for clarity
GH issues:
Closes #106
Closes #111
Closes #118
Closes #141
Incidentally should also close #135 (reopen if didn't)
cc #6
|
| |
|
|
| |
Closes GH #144
|
| |
|
|
| |
Fixes https://github.com/eventlet/eventlet/issues/123
|
| |
|
|
| |
https://github.com/eventlet/eventlet/pull/125
|
| |
|
|
| |
Signed-off-by: Tushar Gohad <tushar.gohad@intel.com>
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since WSGI is all about a single response to a single
request, in order for servers to process a PUT as a
single HTTP request and at the same time pass **hints**
back to the client (for example, a payload type that the
server can accept, or to inform the client that the server
expects to receive payload metadata at the end of the
payload transfer, etc), "100 Continue" response headers
is pretty much only place to add these hints.
This is consistent with **RFC2616, section 10.1**:
10.1 Informational 1xx
This class of status code indicates a provisional response,
consisting only of the **Status-Line** and **optional
headers**, and is terminated by an empty line.
Openstack Swift has an immediate use case for this feature
where the object server will use an
"Accept-Payload-Footer: 1" like header to hint the proxy
server to send a payload footer after it has finished
transmitting the payload (for sending metadata for an
erasure coded or encrypted payload, enforcing end-to-end
Etag checks, etc).
Addresses eventlet issue/enhancement #126
Signed-off-by: Tushar Gohad <tushar.gohad@intel.com>
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Closes GH-102
Closes GH-103
Closes GH-104
|
| |
|
|
|
|
|
| |
Also:
- PEP-8
- check both EAGAIN/EWOULDBLOCK
- use system implementation of GreenPipe.readinto()
|
| |
|
|
| |
https://github.com/eventlet/eventlet/issues/101
|
| |
|
|
|
|
|
|
|
| |
https://github.com/eventlet/eventlet/pull/64
Also:
- PEP8
- except Exception
- .put() must not catch SystemExit
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- __next__ for iterator interface
- six.next() to get next item
- list(dict.keys())
- popen2.popen4 -> subprocess
- s2b -> b"..." literals
- deprecated assertEquals -> assertEqual
- hub_test test_fork using run_python
- 1L -> 1 long literal
- many PEP-8 fixes
|
| |
|
|
|
|
|
| |
- dict.items().pop() in proc
- str/bytes in backdoor, api_test, ssl_test, test__refcount
- import httplib from six
- PEP-8 fixes
|
| |
|
|
|
| |
For now, pep8 check is only run for some files known to be clean,
we should clean the rest and enable pep8 check for all files then.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Setting this to False provides compatibility with broken clients
which expect response header names in particular case, such as
ETag by AWS Java SDK.
https://github.com/eventlet/eventlet/issues/80
|
| | |
|
| |
|
|
| |
https://github.com/eventlet/eventlet/pull/59
|
| |
|
|
| |
This fixes GitHub issue #54
|