Fix wait_for with newer versions of psutil. (#26455)

* Add support for newer psutil versions.
* Fix psutil install in wait_for integration test.
* Fix test requirements for wait_for elapsed.
This commit is contained in:
Matt Clay 2017-07-05 19:00:13 -07:00 committed by GitHub
parent 2a041d10d2
commit 895e6c5d06
2 changed files with 23 additions and 16 deletions

View file

@ -243,14 +243,23 @@ class TCPConnectionInfo(object):
def get_active_connections_count(self):
active_connections = 0
for p in psutil.process_iter():
connections = p.get_connections(kind='inet')
if hasattr(p, 'get_connections'):
connections = p.get_connections(kind='inet')
else:
connections = p.connections(kind='inet')
for conn in connections:
if conn.status not in self.module.params['active_connection_states']:
continue
(local_ip, local_port) = conn.local_address
if hasattr(conn, 'local_address'):
(local_ip, local_port) = conn.local_address
else:
(local_ip, local_port) = conn.laddr
if self.port != local_port:
continue
(remote_ip, remote_port) = conn.remote_address
if hasattr(conn, 'remote_address'):
(remote_ip, remote_port) = conn.remote_address
else:
(remote_ip, remote_port) = conn.raddr
if (conn.family, remote_ip) in self.exclude_ips:
continue
if any((

View file

@ -30,8 +30,8 @@
that:
- waitfor|success
- "waitfor.path == '/tmp/wait_for_file'"
- waitfor.elapsed <= 10
- waitfor.elapsed > 0
- waitfor.elapsed >= 5
- waitfor.elapsed <= 15
- name: setup create a file after 10s
shell: sleep 10 && touch /tmp/wait_for_file
@ -48,8 +48,8 @@
that:
- waitfor|success
- "waitfor.path == '/tmp/wait_for_file'"
- waitfor.elapsed <= 10
- waitfor.elapsed > 0
- waitfor.elapsed >= 5
- waitfor.elapsed <= 15
- name: setup write keyword to file after 10s
shell: rm -f /tmp/wait_for_keyword && sleep 10 && echo completed > /tmp/wait_for_keyword
@ -67,8 +67,8 @@
that:
- waitfor|success
- "waitfor.search_regex == 'completed'"
- waitfor.elapsed <= 10
- waitfor.elapsed > 0
- waitfor.elapsed >= 5
- waitfor.elapsed <= 15
- name: test wait for port timeout
wait_for:
@ -114,22 +114,20 @@
- not waitfor|changed
- "waitfor.port == {{ http_port }}"
# TODO: fix drain test for freebsd and macOS, ubuntu-py3
- name: setup install psutil
package:
name: python-psutil
when: ansible_system == "Linux" and not (ansible_distribution == "Ubuntu" and ansible_distribution_version == "16.04")
- name: install psutil using pip (non-Linux only)
pip:
name: psutil
when: ansible_system != 'Linux'
- name: test wait for port drained
wait_for:
port: "{{ http_port }}"
state: drained
register: waitfor
when: ansible_system == "Linux" and not (ansible_distribution == "Ubuntu" and ansible_distribution_version == "16.04")
- name: verify test wait for port
assert:
that:
- waitfor|success
- not waitfor|changed
- "waitfor.port == {{ http_port }}"
when: ansible_system == "Linux" and not (ansible_distribution == "Ubuntu" and ansible_distribution_version == "16.04")