[ovs-dev] [PATCH] bugtool: Fix for Python3
Timothy Redaelli
tredaelli at redhat.com
Wed Mar 18 15:22:43 UTC 2020
Currently ovs-bugtool tool doesn't start on Python3.
This commit fixes ovs-bugtool to make it works on Python.3
Reported-at: https://bugzilla.redhat.com/1809241
Reported-by: Flavio Leitner <fbl at sysclose.org>
Signed-off-by: Timothy Redaelli <tredaelli at redhat.com>
---
utilities/bugtool/ovs-bugtool.in | 27 +++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)
diff --git a/utilities/bugtool/ovs-bugtool.in b/utilities/bugtool/ovs-bugtool.in
index e55bfc2ed..7021305c4 100755
--- a/utilities/bugtool/ovs-bugtool.in
+++ b/utilities/bugtool/ovs-bugtool.in
@@ -33,8 +33,7 @@
# or func_output().
#
-import StringIO
-import commands
+from io import StringIO
import fcntl
import getopt
import hashlib
@@ -48,7 +47,7 @@ import warnings
import zipfile
from select import select
from signal import SIGTERM
-from subprocess import PIPE, Popen
+from subprocess import PIPE, Popen, check_output
from xml.dom.minidom import getDOMImplementation, parse
@@ -704,7 +703,7 @@ exclude those logs from the archive.
# permit the user to filter out data
# We cannot use iteritems, since we modify 'data' as we pass through
- for (k, v) in sorted(data.items()):
+ for (k, v) in data.items():
cap = v['cap']
if 'filename' in v:
key = k[0]
@@ -782,7 +781,7 @@ def dump_scsi_hosts(cap):
def module_info(cap):
- output = StringIO.StringIO()
+ output = StringIO()
modules = open(PROC_MODULES, 'r')
procs = []
@@ -806,7 +805,7 @@ def multipathd_topology(cap):
def dp_list():
- output = StringIO.StringIO()
+ output = StringIO()
procs = [ProcOutput([OVS_DPCTL, 'dump-dps'],
caps[CAP_NETWORK_STATUS][MAX_TIME], output)]
@@ -828,7 +827,7 @@ def collect_ovsdb():
if os.path.isfile(OPENVSWITCH_COMPACT_DB):
os.unlink(OPENVSWITCH_COMPACT_DB)
- output = StringIO.StringIO()
+ output = StringIO()
max_time = 5
procs = [ProcOutput(['ovsdb-tool', 'compact',
OPENVSWITCH_CONF_DB, OPENVSWITCH_COMPACT_DB],
@@ -871,7 +870,7 @@ def fd_usage(cap):
def dump_rdac_groups(cap):
- output = StringIO.StringIO()
+ output = StringIO()
procs = [ProcOutput([MPPUTIL, '-a'], caps[cap][MAX_TIME], output)]
run_procs([procs])
@@ -1095,7 +1094,7 @@ def make_inventory(inventory, subdir):
s.setAttribute('date', time.strftime('%c'))
s.setAttribute('hostname', platform.node())
s.setAttribute('uname', ' '.join(platform.uname()))
- s.setAttribute('uptime', commands.getoutput(UPTIME))
+ s.setAttribute('uptime', check_output(UPTIME).decode())
document.getElementsByTagName(INVENTORY_XML_ROOT)[0].appendChild(s)
map(lambda k_v: inventory_entry(document, subdir, k_v[0], k_v[1]),
@@ -1301,7 +1300,7 @@ class ProcOutput(object):
line = self.proc.stdout.readline()
else:
line = self.proc.stdout.read(self.bufsize)
- if line == '':
+ if line == b'':
# process exited
self.proc.stdout.close()
self.status = self.proc.wait()
@@ -1311,7 +1310,7 @@ class ProcOutput(object):
if self.filter:
line = self.filter(line, self.filter_state)
if self.inst:
- self.inst.write(line)
+ self.inst.write(line.decode())
def run_procs(procs):
@@ -1391,13 +1390,13 @@ def get_free_disk_space(path):
return s.f_frsize * s.f_bfree
-class StringIOmtime(StringIO.StringIO):
+class StringIOmtime(StringIO):
def __init__(self, buf=''):
- StringIO.StringIO.__init__(self, buf)
+ StringIO.__init__(self, buf)
self.mtime = time.time()
def write(self, s):
- StringIO.StringIO.write(self, s)
+ StringIO.write(self, s)
self.mtime = time.time()
--
2.25.1
More information about the dev
mailing list