From: "Mkrtchyan, Tigran" <tigran.mkrtchyan@desy.de>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: linux-nfs <linux-nfs@vger.kernel.org>
Subject: Re: pynfs python 3 flag day
Date: Tue, 10 Mar 2020 18:18:30 +0100 (CET) [thread overview]
Message-ID: <883213303.4100093.1583860710686.JavaMail.zimbra@desy.de> (raw)
In-Reply-To: <20200227135925.GA11561@fieldses.org>
Hi Bruce,
works for me! Thanks for the effort.
Tigran.
----- Original Message -----
> From: "J. Bruce Fields" <bfields@fieldses.org>
> To: "linux-nfs" <linux-nfs@vger.kernel.org>
> Sent: Thursday, February 27, 2020 2:59:25 PM
> Subject: Re: pynfs python 3 flag day
> I've pushed the python 3 changes to the master branch, so pynfs now
> *only* works with python 3:
>
> git://linux-nfs.org/~bfields/pynfs.git
>
> This works for me, but, as I've said, some of the functionality that I
> don't use is probably broken. Apologies--let me know if you run across
> anything.
>
> The last hold-up was the gssapi code. But it turns out pynfs gssapi has
> been broken for a while. So, I'm still working on it, but I couldn't
> see any reason to hold back the python 3 changes for it.
>
> --b.
>
>
> J. Bruce Fields (21):
> st_delegations: don't reimplement join()
> Fix module imports for python 3
> python 3 has no long type
> python3: exception scope
> python3: open results file in binary mode
> python3: / no longer does integer division
> showresults: remove unnecessary import code
> python3: StandardError no longer defined
> python3: the socket structure has changed
> python3: machinename should be bytes, not string
> python 3 map returns iterator not list
> python3: sort works differently
> python3: make "path" commandline argument a byte array
> python3: RPCClient.ipaddress should be bytes
> python3: tag should be bytes
> NFS4Client.create_obj() should expect bytes
> python3: need binary array instead of t.code string
> python3: make a lot of strings byte arrays
> python3 has no xrange()
> python3: loop over dict while removing entries
> use_obj: expect bytes, not string
>
> nfs4.0/TODO | 2 +-
> nfs4.0/lib/rpc/rpc.py | 35 ++--
> nfs4.0/lib/rpc/rpcsec/base.py | 2 +-
> nfs4.0/lib/rpc/rpcsec/sec_auth_sys.py | 7 +-
> nfs4.0/nfs4lib.py | 70 ++++----
> nfs4.0/servertests/environment.py | 121 ++++++-------
> nfs4.0/servertests/st_acl.py | 8 +-
> nfs4.0/servertests/st_close.py | 74 ++++----
> nfs4.0/servertests/st_commit.py | 6 +-
> nfs4.0/servertests/st_compound.py | 2 +-
> nfs4.0/servertests/st_create.py | 38 ++--
> nfs4.0/servertests/st_delegation.py | 159 ++++++++---------
> nfs4.0/servertests/st_fslocations.py | 2 +-
> nfs4.0/servertests/st_link.py | 40 ++---
> nfs4.0/servertests/st_lock.py | 262 ++++++++++++++--------------
> nfs4.0/servertests/st_lockt.py | 30 ++--
> nfs4.0/servertests/st_locku.py | 78 ++++-----
> nfs4.0/servertests/st_lookup.py | 68 ++++----
> nfs4.0/servertests/st_lookupp.py | 4 +-
> nfs4.0/servertests/st_nverify.py | 2 +-
> nfs4.0/servertests/st_open.py | 184 +++++++++----------
> nfs4.0/servertests/st_openconfirm.py | 16 +-
> nfs4.0/servertests/st_opendowngrade.py | 44 ++---
> nfs4.0/servertests/st_putfh.py | 8 +-
> nfs4.0/servertests/st_read.py | 36 ++--
> nfs4.0/servertests/st_readdir.py | 48 ++---
> nfs4.0/servertests/st_reboot.py | 92 +++++-----
> nfs4.0/servertests/st_releaselockowner.py | 6 +-
> nfs4.0/servertests/st_remove.py | 78 ++++-----
> nfs4.0/servertests/st_rename.py | 209 +++++++++++-----------
> nfs4.0/servertests/st_renew.py | 4 +-
> nfs4.0/servertests/st_replay.py | 66 +++----
> nfs4.0/servertests/st_secinfo.py | 16 +-
> nfs4.0/servertests/st_setattr.py | 122 ++++++-------
> nfs4.0/servertests/st_setclientid.py | 74 ++++----
> nfs4.0/servertests/st_setclientidconfirm.py | 12 +-
> nfs4.0/servertests/st_spoof.py | 8 +-
> nfs4.0/servertests/st_verify.py | 2 +-
> nfs4.0/servertests/st_write.py | 94 +++++-----
> nfs4.0/testserver.py | 22 ++-
> nfs4.1/client41tests/environment.py | 10 +-
> nfs4.1/nfs4client.py | 16 +-
> nfs4.1/nfs4commoncode.py | 4 +-
> nfs4.1/nfs4lib.py | 44 ++---
> nfs4.1/nfs4server.py | 4 +-
> nfs4.1/server41tests/environment.py | 103 +++++------
> nfs4.1/server41tests/st_compound.py | 4 +-
> nfs4.1/server41tests/st_create_session.py | 24 +--
> nfs4.1/server41tests/st_current_stateid.py | 12 +-
> nfs4.1/server41tests/st_debug.py | 2 +-
> nfs4.1/server41tests/st_delegation.py | 24 +--
> nfs4.1/server41tests/st_destroy_clientid.py | 6 +-
> nfs4.1/server41tests/st_destroy_session.py | 2 +-
> nfs4.1/server41tests/st_exchange_id.py | 16 +-
> nfs4.1/server41tests/st_open.py | 24 +--
> nfs4.1/server41tests/st_putfh.py | 2 +-
> nfs4.1/server41tests/st_reboot.py | 24 +--
> nfs4.1/server41tests/st_reclaim_complete.py | 6 +-
> nfs4.1/server41tests/st_rename.py | 92 +++++-----
> nfs4.1/server41tests/st_secinfo.py | 6 +-
> nfs4.1/server41tests/st_secinfo_no_name.py | 2 +-
> nfs4.1/server41tests/st_sequence.py | 32 ++--
> nfs4.1/server41tests/st_sparse.py | 2 +-
> nfs4.1/testmod.py | 14 +-
> nfs4.1/testserver.py | 13 +-
> rpc/rpc.py | 30 ++--
> rpc/rpclib.py | 12 +-
> rpc/security.py | 10 +-
> showresults.py | 19 +-
> 69 files changed, 1357 insertions(+), 1353 deletions(-)
>
> On Fri, Feb 14, 2020 at 03:45:44PM -0500, bfields wrote:
>> I'm hearing more noise about deprecating Python 2, so decided I can't
>> keep ignoring Python 3.
>>
>> Getting pynfs working on Python 3 is a bigger project than I expected.
>> Keeping it working under Python 2 looks like another project. So, I'm
>> planning a flag day after which pynfs will require Python 3.
>>
>> That isn't the way I'd prefer to do it, but there's only so much time I
>> want to spend on this.
>>
>> I've mostly got the 4.0 server tests working under python 3. I hope a
>> few more days will be enough to get the 4.1 tests working as well.
>>
>> When I switch over, I'm afraid a few things will be left broken: any
>> tests that I don't personally run may still have minor python 3 bugs,
>> and I haven't touched the python server code that's used for client
>> testing.
>>
>> If you stumble across something broken, and you can give me a simple
>> reproducer, feel free to share it with me and I'll take a look.
>>
>> But for anything complicated, I'll probably need patches.
>>
>> Again, I apologize for any extra work that creates for anyone, but for
>> now this seems like the best compromise to keep things mostly working
>> without it becoming a bigger time sink for me.
>>
>> Work so far is in the "python3" branch at
>>
>> git://linux-nfs.org/~bfields/pynfs.git
>>
>> The history will probably be cleaned up an rewritten before it's done.
>> I'm hoping that'll be in the next week.
>>
>> It's mostly just a matter of separating out unicode strings and byte
>> arrays. Protocol data is all the latter (even if the protocol prefers
>> some field to be UTF8, pynfs still needs to be able to handle non-UTF8).
>> But some things have to be unicode strings.
>>
> > --b.
prev parent reply other threads:[~2020-03-10 17:18 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-14 20:45 pynfs python 3 flag day J. Bruce Fields
2020-02-27 13:59 ` J. Bruce Fields
2020-03-10 17:18 ` Mkrtchyan, Tigran [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=883213303.4100093.1583860710686.JavaMail.zimbra@desy.de \
--to=tigran.mkrtchyan@desy.de \
--cc=bfields@fieldses.org \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.