[libvirt] [jenkins-ci] lcitool: Use default python for creating salty passwords

Andrea Bolognani abologna at redhat.com
Wed Feb 7 13:32:34 UTC 2018


On Tue, 2018-01-30 at 10:57 +0100, Martin Kletzander wrote:
> On my system the crypt module in python2 doesn't have mksalt() function.
> However python3 does and the code is perfectly fine python3 code as well.  So
> let's make it run in the default python version as that has the highest chance
> to work.
> 
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
>  guests/lcitool | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/guests/lcitool b/guests/lcitool
> index ccd0a597785a..24274d800742 100755
> --- a/guests/lcitool
> +++ b/guests/lcitool
> @@ -18,7 +18,7 @@ die() {
>  hash_file() {
>      PASS_FILE="$1"
>  
> -    python2 -c "
> +    python -c "
>  import crypt
>  password = open('$PASS_FILE', 'r').read().strip()
>  print(crypt.crypt(password,

Turns out the crypt.mksalt() function was introduced in Python 3
and backported to Python 2 in Fedora only, which would explain why
the script works on my machine but not yours.

I still don't like removing the Python version: as we discussed in
the past, "python" is widely considered an alias for "python2"
because attempts to switch "python" to "python3" at the OS level
have resulted in nothing but tears. You can still have that as a
local tweak on your system, of course, but I don't think it's
something we want to encourage.

A more reasonable approach would probably be to forfait Python 2
compatibility altogether and just s/2/3/ there. Several distros
already ship with only Python 3 installed by default, and if we
ever decide to rewrite lcitool to be more than a hacky shell
script, we will probably use Python 3 rather than 2 as well.

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list