]> git.proxmox.com Git - mirror_ovs.git/commitdiff
ovs-bugtool: Fix Python3 bytes str issue.
authorWilliam Tu <u9012063@gmail.com>
Mon, 13 Jul 2020 20:34:32 +0000 (13:34 -0700)
committerWilliam Tu <u9012063@gmail.com>
Tue, 14 Jul 2020 23:38:43 +0000 (16:38 -0700)
The patch fixes two errors due to type mismatched, when converting
between str and bytes:
  File "/usr/local/sbin/ovs-bugtool", line 649, in main
    cmd_output(CAP_NETWORK_STATUS, [OVS_DPCTL, 'dump-flows', '-m', d])
  File "/usr/local/sbin/ovs-bugtool", line 278, in cmd_output
    label = ' '.join(a)
TypeError: sequence item 3: expected str instance, bytes found

And
  File "/usr/sbin/ovs-bugtool", line 721, in main
    collect_data()
  File "/usr/sbin/ovs-bugtool", line 366, in collect_data
    run_procs(process_lists.values())
  File "/usr/sbin/ovs-bugtool", line 1354, in run_procs
    p.inst.write("\n** timeout **\n")
  File "/usr/sbin/ovs-bugtool", line 1403, in write
    BytesIO.write(self, s)
TypeError: a bytes-like object is required, not 'str'

VMware-BZ: #2602135
Fixed: 9e6c00bca9af ("bugtool: Fix for Python3.")
Acked-by: Yi-Hung Wei <yihung.wei@gmail.com>
Signed-off-by: William Tu <u9012063@gmail.com>
utilities/bugtool/ovs-bugtool.in

index 1a5170d8c78beb7762f938b2ad83ec13de92034d..ddb5bc8dc54ccec6bd0ac0b7460069e7022ff71b 100755 (executable)
@@ -643,7 +643,8 @@ exclude those logs from the archive.
     if os.path.exists(OPENVSWITCH_VSWITCHD_PID):
         cmd_output(CAP_NETWORK_STATUS, [OVS_DPCTL, 'show', '-s'])
         for d in dp_list():
-            cmd_output(CAP_NETWORK_STATUS, [OVS_DPCTL, 'dump-flows', '-m', d])
+            cmd_output(CAP_NETWORK_STATUS, [OVS_DPCTL, 'dump-flows', '-m',
+                                            d.decode()])
 
     cmd_output(CAP_PROCESS_LIST, [PS, 'wwwaxf', '-eo',
                'pid,tty,stat,time,nice,psr,pcpu,pmem,nwchan,wchan:25,args'],
@@ -1351,7 +1352,7 @@ def run_procs(procs):
             if p.running and now > p.timeout:
                 output_ts("'%s' timed out" % p.cmdAsStr())
                 if p.inst:
-                    p.inst.write("\n** timeout **\n")
+                    p.inst.write("\n** timeout **\n".encode())
                 p.timed_out = True
                 p.terminate()