mirror of
https://github.com/valitydev/salt.git
synced 2024-11-08 01:18:58 +00:00
Use netstat on sunos: fixups
Make it DRYer, should no longer fail lint.
This commit is contained in:
parent
de884cf7eb
commit
cc62191b8e
@ -920,6 +920,44 @@ def _parse_tcp_line(line):
|
|||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
def _sunos_remotes_on(port, which_end):
|
||||||
|
'''
|
||||||
|
SunOS specific helper function.
|
||||||
|
Returns set of ipv4 host addresses of remote established connections
|
||||||
|
on local or remote tcp port.
|
||||||
|
|
||||||
|
Parses output of shell 'netstat' to get connections
|
||||||
|
|
||||||
|
[root@salt-master ~]# netstat -f inet -n
|
||||||
|
TCP: IPv4
|
||||||
|
Local Address Remote Address Swind Send-Q Rwind Recv-Q State
|
||||||
|
-------------------- -------------------- ----- ------ ----- ------ -----------
|
||||||
|
10.0.0.101.4505 10.0.0.1.45329 1064800 0 1055864 0 ESTABLISHED
|
||||||
|
10.0.0.101.4505 10.0.0.100.50798 1064800 0 1055864 0 ESTABLISHED
|
||||||
|
'''
|
||||||
|
remotes = set()
|
||||||
|
try:
|
||||||
|
data = subprocess.check_output(['netstat', '-f', 'inet', '-n'])
|
||||||
|
except subprocess.CalledProcessError:
|
||||||
|
log.error('Failed netstat')
|
||||||
|
raise
|
||||||
|
|
||||||
|
lines = data.split('\n')
|
||||||
|
for line in lines:
|
||||||
|
if 'ESTABLISHED' not in line:
|
||||||
|
continue
|
||||||
|
chunks = line.split()
|
||||||
|
local_host, local_port = chunks[0].rsplit('.', 1)
|
||||||
|
remote_host, remote_port = chunks[1].rsplit('.', 1)
|
||||||
|
|
||||||
|
if which_end == 'remote_port' and int(remote_port) != port:
|
||||||
|
continue
|
||||||
|
if which_end == 'local_port' and int(local_port) != port:
|
||||||
|
continue
|
||||||
|
remotes.add(remote_host)
|
||||||
|
return remotes
|
||||||
|
|
||||||
|
|
||||||
def remotes_on_local_tcp_port(port):
|
def remotes_on_local_tcp_port(port):
|
||||||
'''
|
'''
|
||||||
Returns set of ipv4 host addresses of remote established connections
|
Returns set of ipv4 host addresses of remote established connections
|
||||||
@ -938,33 +976,7 @@ def remotes_on_local_tcp_port(port):
|
|||||||
remotes = set()
|
remotes = set()
|
||||||
|
|
||||||
if salt.utils.is_sunos():
|
if salt.utils.is_sunos():
|
||||||
'''
|
return _sunos_remotes_on(port, 'local_port')
|
||||||
[root@salt-master ~]# netstat -f inet -n
|
|
||||||
|
|
||||||
TCP: IPv4
|
|
||||||
Local Address Remote Address Swind Send-Q Rwind Recv-Q State
|
|
||||||
-------------------- -------------------- ----- ------ ----- ------ -----------
|
|
||||||
10.0.0.101.4505 10.0.0.1.45329 1064800 0 1055864 0 ESTABLISHED
|
|
||||||
10.0.0.101.4505 10.0.0.100.50798 1064800 0 1055864 0 ESTABLISHED
|
|
||||||
'''
|
|
||||||
try:
|
|
||||||
data = subprocess.check_output(['netstat', '-f', 'inet', '-n'])
|
|
||||||
except subprocess.CalledProcessError as exc:
|
|
||||||
log.error('Failed netstat')
|
|
||||||
raise
|
|
||||||
|
|
||||||
lines = data.split('\n')
|
|
||||||
for line in lines:
|
|
||||||
if 'ESTABLISHED' not in line:
|
|
||||||
continue
|
|
||||||
chunks = line.split()
|
|
||||||
local_host, local_port = chunks[0].rsplit('.', 1)
|
|
||||||
remote_host, remote_port = chunks[1].rsplit('.', 1)
|
|
||||||
|
|
||||||
if int(local_port) != port:
|
|
||||||
continue
|
|
||||||
remotes.add(remote_host)
|
|
||||||
return remotes
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = subprocess.check_output(['lsof', '-i4TCP:{0:d}'.format(port), '-n'])
|
data = subprocess.check_output(['lsof', '-i4TCP:{0:d}'.format(port), '-n'])
|
||||||
@ -1013,33 +1025,7 @@ def remotes_on_remote_tcp_port(port):
|
|||||||
remotes = set()
|
remotes = set()
|
||||||
|
|
||||||
if salt.utils.is_sunos():
|
if salt.utils.is_sunos():
|
||||||
'''
|
return _sunos_remotes_on(port, 'remote_port')
|
||||||
[root@salt-master ~]# netstat -f inet -n
|
|
||||||
|
|
||||||
TCP: IPv4
|
|
||||||
Local Address Remote Address Swind Send-Q Rwind Recv-Q State
|
|
||||||
-------------------- -------------------- ----- ------ ----- ------ -----------
|
|
||||||
10.0.0.101.4505 10.0.0.1.45329 1064800 0 1055864 0 ESTABLISHED
|
|
||||||
10.0.0.101.4505 10.0.0.100.50798 1064800 0 1055864 0 ESTABLISHED
|
|
||||||
'''
|
|
||||||
try:
|
|
||||||
data = subprocess.check_output(['netstat', '-f', 'inet', '-n'])
|
|
||||||
except subprocess.CalledProcessError as exc:
|
|
||||||
log.error('Failed netstat')
|
|
||||||
raise
|
|
||||||
|
|
||||||
lines = data.split('\n')
|
|
||||||
for line in lines:
|
|
||||||
if 'ESTABLISHED' not in line:
|
|
||||||
continue
|
|
||||||
chunks = line.split()
|
|
||||||
local_host, local_port = chunks[0].rsplit('.', 1)
|
|
||||||
remote_host, remote_port = chunks[1].rsplit('.', 1)
|
|
||||||
|
|
||||||
if int(remote_port) != port:
|
|
||||||
continue
|
|
||||||
remotes.add(remote_host)
|
|
||||||
return remotes
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = subprocess.check_output(['lsof', '-i4TCP:{0:d}'.format(port), '-n'])
|
data = subprocess.check_output(['lsof', '-i4TCP:{0:d}'.format(port), '-n'])
|
||||||
|
Loading…
Reference in New Issue
Block a user