Merge pull request #325 from dw/dmw

Dmw
pull/318/head
dw 6 years ago committed by GitHub
commit 9fd135b02c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -593,8 +593,8 @@ class Connection(ansible.plugins.connection.ConnectionBase):
try: try:
return self.call_async(func, *args, **kwargs).get().unpickle() return self.call_async(func, *args, **kwargs).get().unpickle()
finally: finally:
LOG.debug('Call took %d ms: %s%r', 1000 * (time.time() - t0), LOG.debug('Call took %d ms: %r', 1000 * (time.time() - t0),
func.__name__, args) mitogen.parent.CallSpec(func, args, kwargs))
def create_fork_child(self): def create_fork_child(self):
""" """

@ -4,7 +4,7 @@ coverage==4.5.1
Django==1.6.11 # Last version supporting 2.6. Django==1.6.11 # Last version supporting 2.6.
mock==2.0.0 mock==2.0.0
pytz==2012d # Last 2.6-compat version. pytz==2012d # Last 2.6-compat version.
paramiko==2.3.1 # Last 2.6-compat version. paramiko==2.3.2 # Last 2.6-compat version.
pytest-catchlog==1.2.2 pytest-catchlog==1.2.2
pytest==3.1.2 pytest==3.1.2
PyYAML==3.11; python_version < '2.7' PyYAML==3.11; python_version < '2.7'

@ -57,11 +57,9 @@ write files.
Installation Installation
------------ ------------
1. Thoroughly review the :ref:`noteworthy_differences` and :ref:`changelog`. 1. Thoroughly review :ref:`noteworthy_differences` and :ref:`changelog`.
2. Verify Ansible 2.3-2.6.1 and Python 2.6, 2.7 or 3.6 are listed in ``ansible 2. Download and extract |mitogen_url|.
--version`` output. 3. Modify ``ansible.cfg``:
3. Download and extract |mitogen_url| from PyPI.
4. Modify ``ansible.cfg``:
.. parsed-literal:: .. parsed-literal::
@ -74,12 +72,16 @@ Installation
per-run basis. Like ``mitogen_linear``, the ``mitogen_free`` strategy exists per-run basis. Like ``mitogen_linear``, the ``mitogen_free`` strategy exists
to mimic the ``free`` strategy. to mimic the ``free`` strategy.
5. If targets have a restrictive ``sudoers`` file, add a rule like: 4. If targets have a restrictive ``sudoers`` file, add a rule like:
:: ::
deploy = (ALL) NOPASSWD:/usr/bin/python -c* deploy = (ALL) NOPASSWD:/usr/bin/python -c*
5. Subscribe to the `mitogen-announce mailing list
<https://www.freelists.org/list/mitogen-announce>`_ in order to stay up to
date with new releases and important bug fixes.
Demo Demo
~~~~ ~~~~
@ -123,6 +125,10 @@ Testimonials
Noteworthy Differences Noteworthy Differences
---------------------- ----------------------
* Ansible 2.3-2.5 are supported along with Python 2.6, 2.7 or 3.6. Verify your
installation is running one of these versions by checking ``ansible
--version`` output.
* The Ansible ``raw`` action executes as a regular Mitogen connection, * The Ansible ``raw`` action executes as a regular Mitogen connection,
precluding its use for installing Python on a target. This will be addressed precluding its use for installing Python on a target. This will be addressed
soon. soon.

@ -15,6 +15,16 @@ Release Notes
</style> </style>
.. comment
v0.2.3 (2018-07-??)
-------------------
* `#315 <https://github.com/dw/mitogen/pull/315>`_: Mitogen for Ansible is
supported under Ansible 2.6. Contributed by `Dan Quackenbush
<https://github.com/danquack>`_.
v0.2.2 (2018-07-??) v0.2.2 (2018-07-??)
------------------- -------------------
@ -31,6 +41,12 @@ Mitogen for Ansible
network device connections, however it should still be possible to use device network device connections, however it should still be possible to use device
connections while Mitogen is active. connections while Mitogen is active.
* `#300 <https://github.com/dw/mitogen/issues/300>`_: an exception could appear
on OS X during shutdown due to scheduling pending Kevent filter changes for
file descriptors that have already been closed before the IO loop resumes. As
a temporary workaround, Mitogen does not make use of Kevent's bulk change
feature.
* `#301 <https://github.com/dw/mitogen/pull/301>`_: variables like ``$HOME`` in * `#301 <https://github.com/dw/mitogen/pull/301>`_: variables like ``$HOME`` in
the ``remote_tmp`` setting are evaluated correctly. the ``remote_tmp`` setting are evaluated correctly.
@ -42,10 +58,6 @@ Mitogen for Ansible
process environment cleanup, caused by the change in v0.2.1 to run local process environment cleanup, caused by the change in v0.2.1 to run local
tasks with the correct environment. tasks with the correct environment.
* `#315 <https://github.com/dw/mitogen/pull/315>`_: Mitogen for Ansible is
supported under Ansible 2.6. Contributed by `Dan Quackenbush
<https://github.com/danquack>`_.
* `#317 <https://github.com/dw/mitogen/issues/317>`_: respect the verbosity * `#317 <https://github.com/dw/mitogen/issues/317>`_: respect the verbosity
setting when writing to to Ansible's ``log_path`` log file, if it is enabled. setting when writing to to Ansible's ``log_path`` log file, if it is enabled.
Child log filtering was also incorrect, causing the master to needlessly wake Child log filtering was also incorrect, causing the master to needlessly wake

@ -531,7 +531,15 @@ class KqueuePoller(mitogen.core.Poller):
def _control(self, fd, filters, flags): def _control(self, fd, filters, flags):
mitogen.core._vv and IOLOG.debug( mitogen.core._vv and IOLOG.debug(
'%r._control(%r, %r, %r)', self, fd, filters, flags) '%r._control(%r, %r, %r)', self, fd, filters, flags)
self._changelist.append(select.kevent(fd, filters, flags)) # TODO: at shutdown it is currently possible for KQ_EV_ADD/KQ_EV_DEL
# pairs to be pending after the associated file descriptor has already
# been closed. Fixing this requires maintaining extra state, or perhaps
# making fd closure the poller's responsibility. In the meantime,
# simply apply changes immediately.
# self._changelist.append(select.kevent(fd, filters, flags))
changelist = [select.kevent(fd, filters, flags)]
events, _ = mitogen.core.io_op(self._kqueue.control, changelist, 0, 0)
assert not events
def start_receive(self, fd, data=None): def start_receive(self, fd, data=None):
mitogen.core._vv and IOLOG.debug('%r.start_receive(%r, %r)', mitogen.core._vv and IOLOG.debug('%r.start_receive(%r, %r)',

Loading…
Cancel
Save