- 25 Sep, 2015 15 commits
-
-
James Cammarata committed
-
Brian Coca committed
-
Brian Coca committed
-
James Cammarata committed
-
Also strip UnsafeProxy off of low level srings and objects to ensure they don't cause issues later down the road Fixes #12513
James Cammarata committed -
James Cammarata committed
-
Toshio Kuratomi committed
-
Brian Coca committed
-
Toshio Kuratomi committed
-
Toshio Kuratomi committed
-
Typo in shell command in example
James Cammarata committed -
Marius Gedminas committed
-
Python 3: make test_variable_manager_precedence pass
James Cammarata committed -
Fixes #12501
James Cammarata committed -
Due to the way we're now calculating delegate_to, if that value is based on a loop variable ('item') we need to calculate all of the possible delegated_to variables for that loop. Fixes #12499
James Cammarata committed
-
- 24 Sep, 2015 15 commits
-
-
There doesn't appear to be anything that actually uses tmp_path in the connection plugins so we don't need to pass that in to exec_command. That change also means that we don't need to pass tmp_path around in many places in the action plugins any more. there may be more cleanup that can be done there as well (the action plugin's public run() method takes tmp as a keyword arg but that may not be necessary). As a sideeffect of this patch, some potential problems with chmod and the patch, assemble, copy, and template modules has been fixed (those modules called _remote_chmod() with the wrong order for their parameters. Removing the tmp parameter fixed them.)
Toshio Kuratomi committed -
And update portions of code to expect the proper error. Fixes #12512
James Cammarata committed -
It's not available on older versions of paramiko such as shipped in RHEL6
Toshio Kuratomi committed -
Fixes #12477
James Cammarata committed -
The process is already gone, so there's not going to be any new data showing up on its stderr; we only want to make sure that we haven't missed something that was already written. So polling once is enough.
Abhijit Menon-Sen committed -
This change is motivated by an ssh oddity: when ControlPersist is enabled, the first (i.e. master) connection goes into the background; we see EOF on its stdout and the process exits, but we never see EOF on its stderr. So if we ran a command like this: ANSIBLE_SSH_PIPELINING=1 ansible -T 30 -vvv somehost -u someuser -m command -a whoami We would first do select([stdout,stderr], timeout) and read the command module output, then select([stdout,stderr], timeout) again and read EOF on stdout, then select([stderr], timeout) AGAIN (though the process has exited), and select() would wait for the full timeout before returning rfd=[], and then we would exit. The use of a very short timeout in the code masked the underlying problem (that we don't see EOF on stderr). It's always preferable to call select() with a long timeout so that the process doesn't use any CPU until one of the events it's interested in happens (and then select will return independent of elapsed time). (A long timeout value means "if nothing happens, sleep for up to <x>"; omitting the timeout value means "if nothing happens, sleep forever"; specifying a zero timeout means "don't sleep at all", i.e. poll for events and return immediately.) This commit uses a long timeout, but explicitly detects the condition where we've seen EOF on stdout and the process has exited, but we have not seen EOF on stderr. If and only if that happens, it reruns select() with a short timeout (in practice it could just exit at that point, but I chose to be extra cautious). As a result, we end up calling select() far less often, and use less CPU while waiting, but don't sleep for a long time waiting for something that will never happen. Note that we don't omit the timeout to select() altogether because if we're waiting for an escalation prompt, we DO want to give up with an error after some time. We also don't set exceptfds, because we're not actually acting on any notifications of exceptional conditions.
Abhijit Menon-Sen committed -
The value was useless -- unused by the callers and always hardcoded to the empty string.
Toshio Kuratomi committed -
Add Weekday (0-6) as a number and add weeknumber (00-52)
James Cammarata committed -
Toshio Kuratomi committed
-
Gerben Geijteman committed
-
Marius Gedminas committed
-
Marius Gedminas committed
-
Also, on Python 3 the stock object.__hash__ raises an error ("unhashable type"), and we have code that uses Host instances as dict keys.
Marius Gedminas committed -
Marius Gedminas committed
-
On Python 2, shlex.split() raises if you pass it a unicode object with non-ASCII characters in it. The Ansible codebase copes by explicitly converting the string using to_bytes() before passing it to shlex.split(). On Python 3, shlex.split() raises ('bytes' object has no attribute 'read') if you pass a bytes object. Oops. This commit introduces a new wrapper function, shlex_split, that transparently performs the to_bytes/to_unicode conversions only on Python 2. Currently I've only converted one call site (the one that was causing a unit test to fail on Python 3). If this approach is deemed suitable, I'll convert them all.
Marius Gedminas committed
-
- 23 Sep, 2015 10 commits
-
-
Fixes #12488
Toshio Kuratomi committed -
fixes #12495
Brian Coca committed -
Brian Coca committed
-
Fix typo in checking select results
James Cammarata committed -
We used to display input chunks earlier anyway, so this isn't making things more verbose.
Abhijit Menon-Sen committed -
It's possible for more than one fd to be set, so 'elif' is obviously not the right thing to use.
Abhijit Menon-Sen committed -
James Cammarata committed
-
Toshio Kuratomi committed
-
James Cammarata committed
-
Fix one more failing test on Python 3
Toshio Kuratomi committed
-