[dpdk-dev] [dpdk-stable] [PATCH] usertools: add telemetry python3 compatibility
Thomas Monjalon
thomas at monjalon.net
Sun Jan 19 22:48:14 CET 2020
+Cc Robin, known Python expert :)
16/01/2020 18:24, Ciara Power:
> 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: stable at dpdk.org
>
> Signed-off-by: Ciara Power <ciara.power at 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:
>
More information about the dev
mailing list