The client script for use with the telemetry library did not support python3, as the data being sent over the socket was in string format. Python3 requires the data be explicitly converted to bytes before being sent. Similarily, the received bytes need to be decoded into string format.
Cc: sta...@dpdk.org Signed-off-by: Ciara Power <ciara.po...@intel.com> --- usertools/dpdk-telemetry-client.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/usertools/dpdk-telemetry-client.py b/usertools/dpdk-telemetry-client.py index 290345dcc..71a8a8852 100755 --- a/usertools/dpdk-telemetry-client.py +++ b/usertools/dpdk-telemetry-client.py @@ -65,18 +65,19 @@ def register(self): # Connects a client to DPDK-instance self.socket.recv_fd.settimeout(2) self.socket.send_fd.connect("/var/run/dpdk/rte/telemetry") JSON = (API_REG + self.file_path + "\"}}") - self.socket.send_fd.sendall(JSON) + self.socket.send_fd.sendall(JSON.encode()) + self.socket.recv_fd.listen(1) self.socket.client_fd = self.socket.recv_fd.accept()[0] def unregister(self): # Unregister a given client - self.socket.client_fd.send(API_UNREG + self.file_path + "\"}}") + self.socket.client_fd.send((API_UNREG + self.file_path + "\"}}").encode()) self.socket.client_fd.close() def requestMetrics(self): # Requests metrics for given client - self.socket.client_fd.send(METRICS_REQ) - data = self.socket.client_fd.recv(BUFFER_SIZE) - print("\nResponse: \n", str(data)) + self.socket.client_fd.send(METRICS_REQ.encode()) + data = self.socket.client_fd.recv(BUFFER_SIZE).decode() + print("\nResponse: \n", data) def repeatedlyRequestMetrics(self, sleep_time): # Recursively requests metrics for given client print("\nPlease enter the number of times you'd like to continuously request Metrics:") @@ -88,9 +89,9 @@ def repeatedlyRequestMetrics(self, sleep_time): # Recursively requests metrics f time.sleep(sleep_time) def requestGlobalMetrics(self): #Requests global metrics for given client - self.socket.client_fd.send(GLOBAL_METRICS_REQ) - data = self.socket.client_fd.recv(BUFFER_SIZE) - print("\nResponse: \n", str(data)) + self.socket.client_fd.send(GLOBAL_METRICS_REQ.encode()) + data = self.socket.client_fd.recv(BUFFER_SIZE).decode() + print("\nResponse: \n", data) def interactiveMenu(self, sleep_time): # Creates Interactive menu within the script while self.choice != 4: -- 2.17.1