We claim to be using Python 2 at the moment: however, we rely on crypt.mksalt(), which was introduced in Python 3 and has only been backported to Python 2 in RHEL and Fedora, so the script will only work on those operating systems. We could move to Python 3, but the CI nodes are running on a CentOS 7 machine, where it can't be installed without pulling in third-party repositories and dealing with awkward naming; moreover, Ansible itself is still tied to Python 2, so we would be requiring both to be available. Perl to the rescue! The script ends up being only marginally more verbose and obscure as a result, the indentation is significantly better, and it should finally run on pretty much any platform. Signed-off-by: Andrea Bolognani <abologna@xxxxxxxxxx> --- guests/lcitool | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/guests/lcitool b/guests/lcitool index 5b2efb9..568e52c 100755 --- a/guests/lcitool +++ b/guests/lcitool @@ -18,11 +18,11 @@ die() { hash_file() { PASS_FILE="$1" - python2 -c " -import crypt -password = open('$PASS_FILE', 'r').read().strip() -print(crypt.crypt(password, - crypt.mksalt(crypt.METHOD_SHA512)))" + perl -le ' + my @chars = ("A".."Z", "a".."z", "0".."9"); + my $salt; $salt .= $chars[rand @chars] for 1..16; + open(my $handle, "'"$PASS_FILE"'"); my $pass = <$handle>; chomp $pass; + print crypt("$pass", "\$6\$$salt\$");' } # yaml_var FILE VAR -- 2.17.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list