Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit078483f

Browse files
author
vshepard
committed
Remove usage of not standard nc in remote_ops.py is_port_free
1 parent79bc692 commit078483f

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

‎testgres/operations/remote_ops.py‎

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
importlogging
1111
importtyping
1212
importcopy
13+
importsocket
1314

1415
from ..exceptionsimportExecUtilException
1516
from ..exceptionsimportInvalidOperationException
@@ -681,22 +682,31 @@ def get_process_children(self, pid):
681682
defis_port_free(self,number:int)->bool:
682683
asserttype(number)==int# noqa: E721
683684

684-
cmd= ["nc","-w","5","-z","-v","localhost",str(number)]
685+
# grep -q returns 0 if a listening socket on that port is found
686+
port_hex=format(number,'04X')
685687

686-
exit_status,output,error=self.exec_command(cmd=cmd,encoding=get_default_encoding(),ignore_errors=True,verbose=True)
688+
# Search /proc/net/tcp and tcp6 for any entry with this port
689+
cmd= ['/bin/bash','-lc',
690+
f"grep -q ':{port_hex} ' /proc/net/tcp /proc/net/tcp6"]
687691

688-
asserttype(output)==str# noqa: E721
689-
asserttype(error)==str# noqa: E721
692+
exit_status,output,error=self.exec_command(
693+
cmd=cmd,
694+
encoding=get_default_encoding(),
695+
ignore_errors=True,
696+
verbose=True
697+
)
690698

699+
# grep exit 0 -> port is busy
691700
ifexit_status==0:
692-
return__class__._is_port_free__process_0(error)
701+
returnFalse
693702

703+
# grep exit 1 -> port is free
694704
ifexit_status==1:
695-
return__class__._is_port_free__process_1(error)
696-
697-
errMsg="nc returns an unknown result code: {0}".format(exit_status)
705+
returnTrue
698706

699-
RaiseError.CommandExecutionError(
707+
# any other code is an unexpected error
708+
errMsg=f"grep returned unexpected exit code:{exit_status}"
709+
raiseRaiseError.CommandExecutionError(
700710
cmd=cmd,
701711
exit_code=exit_status,
702712
message=errMsg,
@@ -746,12 +756,7 @@ def _is_port_free__process_0(error: str) -> bool:
746756
@staticmethod
747757
def_is_port_free__process_1(error:str)->bool:
748758
asserttype(error)==str# noqa: E721
749-
#
750-
# Example of error text:
751-
# "nc: connect to localhost (127.0.0.1) port 1024 (tcp) failed: Connection refused\n"
752-
#
753759
# May be here is needed to check error message?
754-
#
755760
returnTrue
756761

757762
@staticmethod

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp