Browse code

bug-fix: 'bytes' type in python3 cause command fail

'str' type in python2 is 'bytes' type in python3,
when use python3, we will get a prefix 'b':

sudo ip netns exec b'qrouter-39cc2b45-a27c-49c5-94a6-26443a49ac63' ip
neigh
--------------------------------------------------------------------------
*** Failed to run 'sudo ip netns exec
b'qrouter-39cc2b45-a27c-49c5-94a6-26443a49ac63' ip neigh': Command 'sudo
ip netns exec b'qrouter-39cc2b45-a27c-49c5-94a6-26443a49ac63' ip neigh'
returned non-zero exit status 1.

The message above is raised by running tools/worlddump.py with python3.

Change-Id: Ic254af86fa27729839f00c0ad4a5bbbc9e545a09

LuyaoZhong authored on 2020/02/19 17:16:03
Showing 1 changed files
1 1
old mode 100644
2 2
new mode 100755
... ...
@@ -174,7 +174,7 @@ def network_dump():
174 174
         _dump_cmd("ip %s" % cmd)
175 175
     for netns_ in _netns_list():
176 176
         for cmd in ip_cmds:
177
-            args = {'netns': netns_, 'cmd': cmd}
177
+            args = {'netns': bytes.decode(netns_), 'cmd': cmd}
178 178
             _dump_cmd('sudo ip netns exec %(netns)s ip %(cmd)s' % args)
179 179
 
180 180
 
... ...
@@ -195,7 +195,7 @@ def ovs_dump():
195 195
     _dump_cmd("sudo ovs-vsctl show")
196 196
     for ofctl_cmd in ofctl_cmds:
197 197
         for bridge in bridges:
198
-            args = {'vers': vers, 'cmd': ofctl_cmd, 'bridge': bridge}
198
+            args = {'vers': vers, 'cmd': ofctl_cmd, 'bridge': bytes.decode(bridge)}
199 199
             _dump_cmd("sudo ovs-ofctl --protocols=%(vers)s %(cmd)s %(bridge)s" % args)
200 200
 
201 201