On Thu, Nov 5, 2020 at 4:48 AM Ilya Maximets <[email protected]> wrote: > > On 4/10/20 12:03 AM, William Tu wrote: > > On Wed, Mar 25, 2020 at 05:33:51PM -0700, William Tu wrote: > >> On Thu, Mar 19, 2020 at 12:20:19PM -0700, William Tu wrote: > >>> On Thu, Mar 19, 2020 at 12:05 PM Timothy Redaelli <[email protected]> > >>> wrote: > >>>> > >>>> Currently ovs-bugtool tool doesn't start on Python 3. > >>>> This commit fixes ovs-bugtool to make it works on Python 3. > >>>> > >>>> Replaced StringIO.StringIO with io.BytesIO since the script is > >>>> processing binary data. > >>>> > >>>> Reported-at: https://bugzilla.redhat.com/1809241 > >>>> Reported-by: Flavio Leitner <[email protected]> > >>>> Signed-off-by: Timothy Redaelli <[email protected]> > >>>> --- > >>>> Changes since v1: > >>>> * Converted StringIO to BytesIO > >>>> * Fix some other string/bytes conversion > >>>> --- > >>> > >>> Thanks for sending out v2. Hit an error below: > >>> ~/ovs# python3 > >>> Python 3.5.2 (default, Oct 8 2019, 13:06:37) > >>> > >>> ~/ovs# ./utilities/bugtool/ovs-bugtool -y -s --output=tar.gz > >>> --outfile=/tmp/t.tgz > >>> Traceback (most recent call last): > >>> File "./utilities/bugtool/ovs-bugtool", line 1405, in <module> > >>> sys.exit(main()) > >>> File "./utilities/bugtool/ovs-bugtool", line 717, in main > >>> collect_data() > >>> File "./utilities/bugtool/ovs-bugtool", line 388, in collect_data > >>> v['output'] = BytesIOmtime(s) > >>> File "./utilities/bugtool/ovs-bugtool", line 1395, in __init__ > >>> BytesIO.__init__(self, buf) > >>> TypeError: a bytes-like object is required, not 'str' > >>> > >>> I think sometimes 's' is bytes type, sometimes 's' is a str type... > >>> William > >> > >> Hi Timothy, > >> > >> How about adding this to your patch? > >> I tested it and works ok. > >> > >> diff --git a/utilities/bugtool/ovs-bugtool.in > >> b/utilities/bugtool/ovs-bugtool.in > >> index c26c2be7a4eb..47f3c4629f70 100755 > >> --- a/utilities/bugtool/ovs-bugtool.in > >> +++ b/utilities/bugtool/ovs-bugtool.in > >> @@ -385,7 +385,10 @@ def collect_data(): > >> except Exception as e: > >> s = str(e).encode() > >> if check_space(cap, k, len(s)): > >> - v['output'] = BytesIOmtime(s) > >> + if isinstance(s, str): > >> + v['output'] = BytesIOmtime(s.encode()) > >> + else: > >> + v['output'] = BytesIOmtime(s) > >> > >> > >> def main(argv=None): > >> > > I applied to master with the diff above. > > Thanks! > > William > > Looks like this patch didn't make it to branch-2.13, but it needed there since > we do not support python2 staring from 2.13. > I'll backport it. > > Best regards, Ilya Maximets.
Thanks! William _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
