From 7c4a2970808094c3f66a0d4216d2dc02a5c57ec4 Mon Sep 17 00:00:00 2001 From: Shachar Snapiri Date: Thu, 13 Dec 2018 10:18:23 +0200 Subject: [PATCH] Fix exception in df-db under Python3 Exception is thrown when running df-db dump with Python3 Change-Id: I8b5b7715a429150f1e12277e066d24c8ea0039a3 Closes-Bug: #1808295 --- dragonflow/db/drivers/etcd_db_driver.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/dragonflow/db/drivers/etcd_db_driver.py b/dragonflow/db/drivers/etcd_db_driver.py index 9d159e917..8e625733f 100644 --- a/dragonflow/db/drivers/etcd_db_driver.py +++ b/dragonflow/db/drivers/etcd_db_driver.py @@ -15,6 +15,7 @@ from socket import timeout as SocketTimeout import etcd3gw as etcd from oslo_log import log +import six import urllib3 from urllib3 import connection from urllib3 import exceptions @@ -114,7 +115,10 @@ class EtcdDbDriver(db_api.DbApi): return key def get_key(self, table, key, topic=None): - return self._get_key(self._make_key(table, key), key) + key = self._get_key(self._make_key(table, key), key) + if not six.PY2: + key = key.decode("utf-8") + return key def _get_key(self, table_key, key): value = self.client.get(table_key) @@ -147,8 +151,11 @@ class EtcdDbDriver(db_api.DbApi): directory = self.client.get_prefix(self._make_key(table)) table_name_size = len(table) + 2 for entry in directory: - key = entry[1]["key"] - res.append(key[table_name_size:]) + _key = entry[1]["key"] + key = _key[table_name_size:] + if not six.PY2: + key = key.decode("utf-8") + res.append(key) return res def _allocate_unique_key(self, table):