Index: client/common_lib/utils.py |
diff --git a/client/common_lib/utils.py b/client/common_lib/utils.py |
index 8a34ef17a02856ded4fcd3be9dd341718f8eb5d3..a117cec4acaad7e7a330d155af846f080ed46818 100644 |
--- a/client/common_lib/utils.py |
+++ b/client/common_lib/utils.py |
@@ -202,44 +202,6 @@ def open_write_close(filename, data): |
f.close() |
-def matrix_to_string(matrix, header=None): |
- """ |
- Return a pretty, aligned string representation of a nxm matrix. |
- |
- This representation can be used to print any tabular data, such as |
- database results. It works by scanning the lengths of each element |
- in each column, and determining the format string dynamically. |
- |
- @param matrix: Matrix representation (list with n rows of m elements). |
- @param header: Optional tuple with header elements to be displayed. |
- """ |
- lengths = [] |
- for row in matrix: |
- for column in row: |
- i = row.index(column) |
- cl = len(column) |
- try: |
- ml = lengths[i] |
- if cl > ml: |
- lengths[i] = cl |
- except IndexError: |
- lengths.append(cl) |
- |
- lengths = tuple(lengths) |
- format_string = "" |
- for length in lengths: |
- format_string += "%-" + str(length) + "s " |
- format_string += "\n" |
- |
- matrix_str = "" |
- if header: |
- matrix_str += format_string % header |
- for row in matrix: |
- matrix_str += format_string % tuple(row) |
- |
- return matrix_str |
- |
- |
def read_keyval(path): |
""" |
Read a key-value pair format file into a dictionary, and return it. |
@@ -1268,35 +1230,3 @@ def args_to_dict(args): |
logging.warning("args_to_dict: argument '%s' doesn't match " |
"'%s' pattern. Ignored." % (arg, arg_re.pattern)) |
return dict |
- |
- |
-def get_unused_port(): |
- """ |
- Finds a semi-random available port. A race condition is still |
- possible after the port number is returned, if another process |
- happens to bind it. |
- |
- Returns: |
- A port number that is unused on both TCP and UDP. |
- """ |
- |
- def try_bind(port, socket_type, socket_proto): |
- s = socket.socket(socket.AF_INET, socket_type, socket_proto) |
- try: |
- try: |
- s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) |
- s.bind(('', port)) |
- return s.getsockname()[1] |
- except socket.error: |
- return None |
- finally: |
- s.close() |
- |
- # On the 2.6 kernel, calling try_bind() on UDP socket returns the |
- # same port over and over. So always try TCP first. |
- while True: |
- # Ask the OS for an unused port. |
- port = try_bind(0, socket.SOCK_STREAM, socket.IPPROTO_TCP) |
- # Check if this port is unused on the other protocol. |
- if port and try_bind(port, socket.SOCK_DGRAM, socket.IPPROTO_UDP): |
- return port |