diff options
author | Abhijeet Kasurde <akasurde@redhat.com> | 2020-07-23 06:56:47 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-22 18:26:47 -0700 |
commit | 18dd73c14740b37fcc21cc3e3e4a91fbb217fc32 (patch) | |
tree | c2ca7612eea30ddec367e77a073b1b109c85f075 /lib | |
parent | 61f8f8ce7f701a1d9d248679152bdcc98e2dddd5 (diff) | |
download | ansible-18dd73c14740b37fcc21cc3e3e4a91fbb217fc32.tar.gz |
[2.10] basic: use PollSelector implementation (#70800)
Some platform such as ESXi does not implement EpollSelector,
which is selected by DefaultSelector. Use PollSelector.
This works perfectly with a platform like VMware ESXi.
Fixes: #70238
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit 8cccede0d435c799385828ce55521c910dc69b13)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ansible/module_utils/basic.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/ansible/module_utils/basic.py b/lib/ansible/module_utils/basic.py index db90dafd13..dcc838a024 100644 --- a/lib/ansible/module_utils/basic.py +++ b/lib/ansible/module_utils/basic.py @@ -2603,7 +2603,13 @@ class AnsibleModule(object): stdout = b'' stderr = b'' - selector = selectors.DefaultSelector() + try: + selector = selectors.DefaultSelector() + except OSError: + # Failed to detect default selector for the given platform + # Select PollSelector which is supported by major platforms + selector = selectors.PollSelector() + selector.register(cmd.stdout, selectors.EVENT_READ) selector.register(cmd.stderr, selectors.EVENT_READ) if os.name == 'posix': |