From b2d0a83414903bccb2d20514818ef12668b0bad6 Mon Sep 17 00:00:00 2001 From: Jule Anger Date: Wed, 15 Feb 2023 16:12:13 +0100 Subject: [PATCH 01/15] VERSION: Bump version up to Samba 4.18.0rc4... and re-enable GIT_SNAPSHOT. Signed-off-by: Jule Anger --- VERSION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 82827931d07..fba1465b13e 100644 --- a/VERSION +++ b/VERSION @@ -87,7 +87,7 @@ SAMBA_VERSION_PRE_RELEASE= # e.g. SAMBA_VERSION_RC_RELEASE=1 # # -> "3.0.0rc1" # ######################################################## -SAMBA_VERSION_RC_RELEASE=3 +SAMBA_VERSION_RC_RELEASE=4 ######################################################## # To mark SVN snapshots this should be set to 'yes' # @@ -99,7 +99,7 @@ SAMBA_VERSION_RC_RELEASE=3 # e.g. SAMBA_VERSION_IS_SVN_SNAPSHOT=yes # # -> "3.0.0-SVN-build-199" # ######################################################## -SAMBA_VERSION_IS_GIT_SNAPSHOT=no +SAMBA_VERSION_IS_GIT_SNAPSHOT=yes ######################################################## # This is for specifying a release nickname # -- 2.39.2 From 5dfda5b9d26b82b6b5954e5401690fa874125f76 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 8 Feb 2023 08:29:33 +0100 Subject: [PATCH 02/15] testprogs: Use random usernames for kinit tests This avoids that subsequent tests because users already exist and cleanup didn't work. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15308 Signed-off-by: Andreas Schneider Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett (cherry picked from commit 93c7bbf4d2db73116e5de564b428d6d30504bd5c) --- testprogs/blackbox/test_kinit_heimdal.sh | 46 ++++++++++++------------ testprogs/blackbox/test_kinit_mit.sh | 38 ++++++++++---------- 2 files changed, 44 insertions(+), 40 deletions(-) diff --git a/testprogs/blackbox/test_kinit_heimdal.sh b/testprogs/blackbox/test_kinit_heimdal.sh index 8e507e3ad93..c7d3cfa87bc 100755 --- a/testprogs/blackbox/test_kinit_heimdal.sh +++ b/testprogs/blackbox/test_kinit_heimdal.sh @@ -47,6 +47,8 @@ ldbsearch=$(system_or_builddir_binary ldbsearch "${BINDIR}") enctype="-e $ENCTYPE" unc="//$SERVER/tmp" +TEST_USER="$(mktemp -u kinittestuserXXXXXX)" + ADMIN_LDBMODIFY_CONFIG="-H ldap://$SERVER -U$USERNAME%$PASSWORD" export ADMIN_LDBMODIFY_CONFIG @@ -77,25 +79,25 @@ testit "check time with kerberos ccache" $VALGRIND $PYTHON $samba_tool time $SER USERPASS=testPass@12% echo $USERPASS >$PREFIX/tmpuserpassfile -testit "add user with kerberos ccache" $VALGRIND $PYTHON $samba_tool user create nettestuser $USERPASS $CONFIGURATION -k yes "$@" || failed=$(expr $failed + 1) +testit "add user with kerberos ccache" $VALGRIND $PYTHON $samba_tool user create ${TEST_USER} $USERPASS $CONFIGURATION -k yes "$@" || failed=$(expr $failed + 1) echo "Getting defaultNamingContext" BASEDN=$($ldbsearch $options --basedn='' -H ldap://$SERVER --scope=base DUMMY=x defaultNamingContext | grep defaultNamingContext | awk '{print $2}') cat >$PREFIX/tmpldbmodify <$PREFIX/tmpuserpassfile rm -f $KRB5CCNAME_PATH -testit "kinit with user password (after rpc password change)" $samba4kinit $enctype --password-file=$PREFIX/tmpuserpassfile --request-pac nettestuser@$REALM || failed=$(expr $failed + 1) +testit "kinit with user password (after rpc password change)" $samba4kinit $enctype --password-file=$PREFIX/tmpuserpassfile --request-pac ${TEST_USER}@$REALM || failed=$(expr $failed + 1) test_smbclient "Test login with user kerberos ccache" 'ls' "$unc" --use-krb5-ccache=$KRB5CCNAME || failed=$(expr $failed + 1) @@ -129,7 +131,7 @@ testit "kinit with password (windows style) using UPN" $samba4kinit $enctype --r test_smbclient "Test login with user kerberos ccache from windows UPN" 'ls' "$unc" --use-krb5-ccache=$KRB5CCNAME || failed=$(expr $failed + 1) cat >$PREFIX/tmpldbmodify <$PREFIX/tmpuserpassfile @@ -173,10 +175,10 @@ send ${NEWUSERPASS}\n expect Success EOF -testit "set user password with kpasswd" $texpect $PREFIX/tmpkpasswdscript $samba4kpasswd --cache=$ADMIN_KRB5CCNAME nettestuser@$REALM || failed=$(expr $failed + 1) +testit "set user password with kpasswd" $texpect $PREFIX/tmpkpasswdscript $samba4kpasswd --cache=$ADMIN_KRB5CCNAME ${TEST_USER}@$REALM || failed=$(expr $failed + 1) rm -f $KRB5CCNAME_PATH -testit "kinit with user password (after kpasswd set)" $samba4kinit $enctype --password-file=$PREFIX/tmpuserpassfile --request-pac nettestuser@$REALM || failed=$(expr $failed + 1) +testit "kinit with user password (after kpasswd set)" $samba4kinit $enctype --password-file=$PREFIX/tmpuserpassfile --request-pac ${TEST_USER}@$REALM || failed=$(expr $failed + 1) test_smbclient "Test login with user kerberos ccache (after kpasswd set)" 'ls' "$unc" --use-krb5-ccache=$KRB5CCNAME || failed=$(expr $failed + 1) @@ -191,14 +193,14 @@ send ${NEWUSERPASS}\n expect Success EOF -testit "set user password with kpasswd and servicePrincipalName" $texpect $PREFIX/tmpkpasswdscript $samba4kpasswd --cache=$PREFIX/tmpccache host/nettestuser@$REALM || failed=$(expr $failed + 1) +testit "set user password with kpasswd and servicePrincipalName" $texpect $PREFIX/tmpkpasswdscript $samba4kpasswd --cache=$PREFIX/tmpccache host/${TEST_USER}@$REALM || failed=$(expr $failed + 1) -testit "kinit with user password (after set with kpasswd and spn)" $samba4kinit $enctype --password-file=$PREFIX/tmpuserpassfile --request-pac nettestuser@$REALM || failed=$(expr $failed + 1) +testit "kinit with user password (after set with kpasswd and spn)" $samba4kinit $enctype --password-file=$PREFIX/tmpuserpassfile --request-pac ${TEST_USER}@$REALM || failed=$(expr $failed + 1) test_smbclient "Test login with user kerberos ccache (after set with kpasswd and spn)" 'ls' "$unc" --use-krb5-ccache=$KRB5CCNAME || failed=$(expr $failed + 1) cat >$PREFIX/tmpldbmodify <$PREFIX/tmppasswordchange <$PREFIX/tmpuserpassfile -testit "kinit with user password (after password change forced by expiration)" $samba4kinit $enctype --password-file=$PREFIX/tmpuserpassfile --request-pac nettestuser@$REALM || failed=$(expr $failed + 1) +testit "kinit with user password (after password change forced by expiration)" $samba4kinit $enctype --password-file=$PREFIX/tmpuserpassfile --request-pac ${TEST_USER}@$REALM || failed=$(expr $failed + 1) test_smbclient "Test login with user kerberos ccache" 'ls' "$unc" --use-krb5-ccache=$KRB5CCNAME || failed=$(expr $failed + 1) @@ -238,10 +240,10 @@ export KRB5CCNAME rm -rf $KRB5CCNAME_PATH lowerrealm=$(echo $REALM | tr '[A-Z]' '[a-z]') -test_smbclient "Test login with user kerberos lowercase realm" 'ls' "$unc" --use-kerberos=required -Unettestuser@$lowerrealm%$NEWUSERPASS || failed=$(expr $failed + 1) -test_smbclient "Test login with user kerberos lowercase realm 2" 'ls' "$unc" --use-kerberos=required -Unettestuser@$REALM%$NEWUSERPASS --realm=$lowerrealm || failed=$(expr $failed + 1) +test_smbclient "Test login with user kerberos lowercase realm" 'ls' "$unc" --use-kerberos=required -U${TEST_USER}@$lowerrealm%$NEWUSERPASS || failed=$(expr $failed + 1) +test_smbclient "Test login with user kerberos lowercase realm 2" 'ls' "$unc" --use-kerberos=required -U${TEST_USER}@$REALM%$NEWUSERPASS --realm=$lowerrealm || failed=$(expr $failed + 1) -testit "del user with kerberos ccache" $VALGRIND $PYTHON $samba_tool user delete nettestuser $CONFIGURATION -k yes "$@" || failed=$(expr $failed + 1) +testit "del user with kerberos ccache" $VALGRIND $PYTHON $samba_tool user delete ${TEST_USER} $CONFIGURATION -k yes "$@" || failed=$(expr $failed + 1) rm -f $KRB5CCNAME_PATH testit "kinit with machineaccountccache script" $PYTHON $machineaccountccache $CONFIGURATION $KRB5CCNAME || failed=$(expr $failed + 1) diff --git a/testprogs/blackbox/test_kinit_mit.sh b/testprogs/blackbox/test_kinit_mit.sh index 99111f60de7..ba349e59076 100755 --- a/testprogs/blackbox/test_kinit_mit.sh +++ b/testprogs/blackbox/test_kinit_mit.sh @@ -55,6 +55,8 @@ test_smbclient() return $status } +TEST_USER="$(mktemp -u kinittestuserXXXXXX)" + ADMIN_LDBMODIFY_CONFIG="-H ldap://$SERVER -U$USERNAME%$PASSWORD" export ADMIN_LDBMODIFY_CONFIG @@ -105,25 +107,25 @@ testit "check time with kerberos ccache" $VALGRIND $PYTHON $samba_tool time $SER USERPASS="testPass@12%" -testit "add user with kerberos ccache" $VALGRIND $PYTHON $samba_tool user create nettestuser $USERPASS $CONFIGURATION --use-krb5-ccache="${KRB5CCNAME}" "$@" || failed=$(expr $failed + 1) +testit "add user with kerberos ccache" $VALGRIND $PYTHON $samba_tool user create ${TEST_USER} $USERPASS $CONFIGURATION --use-krb5-ccache="${KRB5CCNAME}" "$@" || failed=$(expr $failed + 1) echo "Getting defaultNamingContext" BASEDN=$($ldbsearch $options --basedn='' -H ldap://$SERVER --scope=base DUMMY=x defaultNamingContext | grep defaultNamingContext | awk '{print $2}') cat >$PREFIX/tmpldbmodify <$PREFIX/tmpkinituserpassscript <$PREFIX/tmpldbmodify <$PREFIX/tmpldbmodify < Date: Wed, 8 Feb 2023 08:30:38 +0100 Subject: [PATCH 03/15] testprogs: Use random usernames for export keytab tests This avoids that subsequent tests because users already exist and cleanup didn't work. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15308 Signed-off-by: Andreas Schneider Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett (cherry picked from commit 5595765d4e5918abe8d68423a8036f99675e64e7) --- .../blackbox/test_export_keytab_heimdal.sh | 17 +++++++++-------- testprogs/blackbox/test_export_keytab_mit.sh | 4 ++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/testprogs/blackbox/test_export_keytab_heimdal.sh b/testprogs/blackbox/test_export_keytab_heimdal.sh index 7c0d92b7cc7..156c714b519 100755 --- a/testprogs/blackbox/test_export_keytab_heimdal.sh +++ b/testprogs/blackbox/test_export_keytab_heimdal.sh @@ -59,10 +59,11 @@ test_keytab() return 0 } +TEST_USER="$(mktemp -u keytabtestuserXXXXXX)" USERPASS=testPaSS@01% unc="//$SERVER/tmp" -testit "create user locally" $VALGRIND $PYTHON $newuser nettestuser $USERPASS "$@" || failed=$(expr $failed + 1) +testit "create user locally" $VALGRIND $PYTHON $newuser ${TEST_USER} $USERPASS "$@" || failed=$(expr $failed + 1) testit "dump keytab from domain" $VALGRIND $PYTHON $samba_tool domain exportkeytab $PREFIX/tmpkeytab "$@" || failed=$(expr $failed + 1) test_keytab "read keytab from domain" "$PREFIX/tmpkeytab" "$SERVER\\\$" 3 @@ -76,11 +77,11 @@ testit "dump keytab from domain for cifs principal (2nd time)" $VALGRIND $PYTHON $samba_tool domain exportkeytab $PREFIX/tmpkeytab-server --principal=cifs/$SERVER_FQDN "$@" || failed=$(expr $failed + 1) test_keytab "read keytab from domain for cifs principal (2nd time)" "$PREFIX/tmpkeytab-server" "cifs/$SERVER_FQDN" 3 -testit "dump keytab from domain for user principal" $VALGRIND $PYTHON $samba_tool domain exportkeytab $PREFIX/tmpkeytab-2 --principal=nettestuser "$@" || failed=$(expr $failed + 1) -test_keytab "dump keytab from domain for user principal" "$PREFIX/tmpkeytab-2" "nettestuser@$REALM" 3 +testit "dump keytab from domain for user principal" $VALGRIND $PYTHON $samba_tool domain exportkeytab $PREFIX/tmpkeytab-2 --principal=${TEST_USER} "$@" || failed=$(expr $failed + 1) +test_keytab "dump keytab from domain for user principal" "$PREFIX/tmpkeytab-2" "${TEST_USER}@$REALM" 3 testit "dump keytab from domain for user principal (2nd time)" $VALGRIND $PYTHON -$samba_tool domain exportkeytab $PREFIX/tmpkeytab-2 --principal=nettestuser@$REALM "$@" || failed=$(expr $failed + 1) -test_keytab "dump keytab from domain for user principal (2nd time)" "$PREFIX/tmpkeytab-2" "nettestuser@$REALM" 3 +$samba_tool domain exportkeytab $PREFIX/tmpkeytab-2 --principal=${TEST_USER}@$REALM "$@" || failed=$(expr $failed + 1) +test_keytab "dump keytab from domain for user principal (2nd time)" "$PREFIX/tmpkeytab-2" "${TEST_USER}@$REALM" 3 testit "dump keytab from domain for user principal with SPN as UPN" $VALGRIND $PYTHON $samba_tool domain exportkeytab $PREFIX/tmpkeytab-3 --principal=http/testupnspn.$DNSDOMAIN "$@" || failed=$(expr $failed + 1) @@ -90,11 +91,11 @@ KRB5CCNAME="$PREFIX/tmpuserccache" samba4kinit="$samba4kinit_binary -c $KRB5CCNAME" export KRB5CCNAME -testit "kinit with keytab as user" $VALGRIND $samba4kinit --keytab=$PREFIX/tmpkeytab --request-pac nettestuser@$REALM || failed=$(expr $failed + 1) +testit "kinit with keytab as user" $VALGRIND $samba4kinit --keytab=$PREFIX/tmpkeytab --request-pac ${TEST_USER}@$REALM || failed=$(expr $failed + 1) test_smbclient "Test login with user kerberos ccache" 'ls' "$unc" --use-krb5-ccache=$KRB5CCNAME || failed=$(expr $failed + 1) -testit "kinit with keytab as user (2)" $VALGRIND $samba4kinit --keytab=$PREFIX/tmpkeytab-2 --request-pac nettestuser@$REALM || failed=$(expr $failed + 1) +testit "kinit with keytab as user (2)" $VALGRIND $samba4kinit --keytab=$PREFIX/tmpkeytab-2 --request-pac ${TEST_USER}@$REALM || failed=$(expr $failed + 1) test_smbclient "Test login with user kerberos ccache as user (2)" 'ls' "$unc" --use-krb5-ccache=$KRB5CCNAME || failed=$(expr $failed + 1) @@ -113,7 +114,7 @@ KRB5CCNAME="$PREFIX/tmpadminccache" samba4kinit="$samba4kinit_binary -c $KRB5CCNAME" export KRB5CCNAME -testit "del user" $VALGRIND $PYTHON $samba_tool user delete nettestuser -k yes "$@" || failed=$(expr $failed + 1) +testit "del user" $VALGRIND $PYTHON $samba_tool user delete ${TEST_USER} -k yes "$@" || failed=$(expr $failed + 1) rm -f $PREFIX/tmpadminccache $PREFIX/tmpuserccache $PREFIX/tmpkeytab $PREFIX/tmpkeytab-2 $PREFIX/tmpkeytab-2 $PREFIX/tmpkeytab-server $PREFIX/tmpspnupnccache exit $failed diff --git a/testprogs/blackbox/test_export_keytab_mit.sh b/testprogs/blackbox/test_export_keytab_mit.sh index b800a17f962..541f800ed5c 100755 --- a/testprogs/blackbox/test_export_keytab_mit.sh +++ b/testprogs/blackbox/test_export_keytab_mit.sh @@ -76,7 +76,7 @@ test_keytab() return 0 } -TEST_USER=nettestuser +TEST_USER="$(mktemp -u keytabtestuserXXXXXX)" TEST_PASSWORD=testPaSS@01% EXPECTED_NKEYS=3 @@ -129,7 +129,7 @@ echo "$samba_kinit -k -t $PREFIX/tmpkeytab-server cifs/$SERVER_FQDN" testit "kinit with SPN from keytab" $VALGRIND $samba_kinit -k -t $PREFIX/tmpkeytab-server cifs/$SERVER_FQDN || failed=$(expr $failed + 1) # cleanup -testit "delete user $TEST_USER" $VALGRIND $PYTHON $samba_tool user delete nettestuser --use-krb5-ccache="${KRB5CCNAME}" "$@" || failed=$(expr $failed + 1) +testit "delete user $TEST_USER" $VALGRIND $PYTHON $samba_tool user delete "${TEST_USER}" --use-krb5-ccache="${KRB5CCNAME}" "$@" || failed=$(expr $failed + 1) $samba_kdestroy rm -f $PREFIX/tmpadminccache $PREFIX/tmpuserccache $PREFIX/tmpkeytab $PREFIX/tmpkeytab-2 $PREFIX/tmpkeytab-server -- 2.39.2 From a1d24a3b77b99723b025ca5518241274d5dce853 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 8 Feb 2023 08:30:56 +0100 Subject: [PATCH 04/15] testprogs: Use random user names for kpasswd tests This avoids that subsequent tests because users already exist and cleanup didn't work. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15308 Signed-off-by: Andreas Schneider Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett (cherry picked from commit a3b80b656f16049772005bd7b00451aaa5df2dd6) --- testprogs/blackbox/test_kpasswd_mit.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testprogs/blackbox/test_kpasswd_mit.sh b/testprogs/blackbox/test_kpasswd_mit.sh index 785a8afac68..e6c31f6731c 100755 --- a/testprogs/blackbox/test_kpasswd_mit.sh +++ b/testprogs/blackbox/test_kpasswd_mit.sh @@ -55,7 +55,7 @@ export CONFIG testit "reset password policies beside of minimum password age of 0 days" \ $VALGRIND $PYTHON $samba_tool domain passwordsettings set $CONFIG --complexity=default --history-length=default --min-pwd-length=default --min-pwd-age=0 --max-pwd-age=default || failed=$(expr $failed + 1) -TEST_USERNAME="samson" +TEST_USERNAME="$(mktemp -u samson-XXXXXX)" TEST_PASSWORD="testPaSS@00%" TEST_PASSWORD_NEW="testPaSS@01%" TEST_PASSWORD_SHORT="secret" -- 2.39.2 From 3d97456f5ab78d69a3757c1871f4b2ca9bd73f75 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 8 Feb 2023 15:33:00 +0100 Subject: [PATCH 05/15] python:tests: Correctly escape $ in user_edit.sh BUG: https://bugzilla.samba.org/show_bug.cgi?id=15308 Signed-off-by: Andreas Schneider Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett (cherry picked from commit a78c38e1f114858bd72738c752d27ef4b4358488) --- python/samba/tests/samba_tool/user_edit.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/samba/tests/samba_tool/user_edit.sh b/python/samba/tests/samba_tool/user_edit.sh index 81a62bb269c..b4989092b8b 100755 --- a/python/samba/tests/samba_tool/user_edit.sh +++ b/python/samba/tests/samba_tool/user_edit.sh @@ -61,7 +61,7 @@ add_attribute_base64() #!/usr/bin/env bash user_ldif="\$1" -grep -v '^$' \$user_ldif > \${user_ldif}.tmp +grep -v '^\$' \$user_ldif > \${user_ldif}.tmp echo "displayName:: $display_name_b64" >> \${user_ldif}.tmp mv \${user_ldif}.tmp \$user_ldif @@ -101,7 +101,7 @@ add_attribute_base64_control() #!/usr/bin/env bash user_ldif="\$1" -grep -v '^$' \$user_ldif > \${user_ldif}.tmp +grep -v '^\$' \$user_ldif > \${user_ldif}.tmp echo "displayName:: $display_name_con_b64" >> \${user_ldif}.tmp mv \${user_ldif}.tmp \$user_ldif -- 2.39.2 From 97a2a04ba0a8ce3b0977c2aab5e740aaa8288acc Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 8 Feb 2023 10:20:21 +0100 Subject: [PATCH 06/15] python:tests: Use a random username for user_edit.sh tests BUG: https://bugzilla.samba.org/show_bug.cgi?id=15308 Signed-off-by: Andreas Schneider Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett (cherry picked from commit 0bcdba952ec887139517841b8882bd6e10c00267) --- python/samba/tests/samba_tool/user_edit.sh | 26 ++++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/python/samba/tests/samba_tool/user_edit.sh b/python/samba/tests/samba_tool/user_edit.sh index b4989092b8b..342899f3f0f 100755 --- a/python/samba/tests/samba_tool/user_edit.sh +++ b/python/samba/tests/samba_tool/user_edit.sh @@ -31,10 +31,12 @@ display_name_con_b64="dGVzdCAHIHN0cmluZwo=" tmpeditor=$(mktemp --suffix .sh -p ${SELFTEST_TMPDIR} samba-tool-editor-XXXXXXXX) chmod +x $tmpeditor +TEST_USER="$(mktemp -u sambatoolXXXXXX)" + create_test_user() { $PYTHON ${STpath}/source4/scripting/bin/samba-tool \ - user create sambatool1 --random-password \ + user create ${TEST_USER} --random-password \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -49,7 +51,7 @@ $SED -i -e 's/userAccountControl: 512/userAccountControl: 514/' $user_ldif EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool \ - user edit sambatool1 --editor=$tmpeditor \ + user edit ${TEST_USER} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -68,13 +70,13 @@ mv \${user_ldif}.tmp \$user_ldif EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool user edit \ - sambatool1 --editor=$tmpeditor \ + ${TEST_USER} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } get_attribute_base64() { - $samba_ldbsearch '(sAMAccountName=sambatool1)' displayName \ + $samba_ldbsearch "(sAMAccountName=${TEST_USER})" displayName \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -89,7 +91,7 @@ grep -v '^displayName' \$user_ldif >> \${user_ldif}.tmp mv \${user_ldif}.tmp \$user_ldif EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool user edit \ - sambatool1 --editor=$tmpeditor \ + ${TEST_USER} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -107,14 +109,14 @@ echo "displayName:: $display_name_con_b64" >> \${user_ldif}.tmp mv \${user_ldif}.tmp \$user_ldif EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool user edit \ - sambatool1 --editor=$tmpeditor \ + ${TEST_USER} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } get_attribute_base64_control() { $PYTHON ${STpath}/source4/scripting/bin/samba-tool user show \ - sambatool1 --attributes=displayName \ + ${TEST_USER} --attributes=displayName \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -122,7 +124,7 @@ get_attribute_force_no_base64() { # LDB_FLAG_FORCE_NO_BASE64_LDIF should be used here. $PYTHON ${STpath}/source4/scripting/bin/samba-tool user show \ - sambatool1 --attributes=displayName \ + ${TEST_USER} --attributes=displayName \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -138,7 +140,7 @@ sed -i -e 's/displayName:: $display_name_con_b64/displayName: $display_name/' \ \$user_ldif EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool user edit \ - sambatool1 --editor=$tmpeditor \ + ${TEST_USER} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -157,21 +159,21 @@ sed -i -e 's/displayName: $display_name/displayName: $display_name_new/' \ EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool user edit \ - sambatool1 --editor=$tmpeditor \ + ${TEST_USER} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } get_changed_attribute_force_no_base64() { $PYTHON ${STpath}/source4/scripting/bin/samba-tool user show \ - sambatool1 --attributes=displayName \ + ${TEST_USER} --attributes=displayName \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } delete_user() { $PYTHON ${STpath}/source4/scripting/bin/samba-tool \ - user delete sambatool1 \ + user delete ${TEST_USER} \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } -- 2.39.2 From 59ab8934e9db9fdde5c2d81cb9bca75af371c84d Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 8 Feb 2023 18:40:04 +0100 Subject: [PATCH 07/15] python:tests: Correctly escape $ in contact_edit.sh BUG: https://bugzilla.samba.org/show_bug.cgi?id=15308 Signed-off-by: Andreas Schneider Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett (cherry picked from commit af1324e3be28773e0b8cc827c669812e4c257989) --- python/samba/tests/samba_tool/contact_edit.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/samba/tests/samba_tool/contact_edit.sh b/python/samba/tests/samba_tool/contact_edit.sh index 3c14ac8de26..a1863846bc2 100755 --- a/python/samba/tests/samba_tool/contact_edit.sh +++ b/python/samba/tests/samba_tool/contact_edit.sh @@ -46,7 +46,7 @@ add_attribute_base64() #!/usr/bin/env bash contact_ldif="\$1" -grep -v '^$' \$contact_ldif > \${contact_ldif}.tmp +grep -v '^\$' \$contact_ldif > \${contact_ldif}.tmp echo "displayName:: $display_name_b64" >> \${contact_ldif}.tmp mv \${contact_ldif}.tmp \$contact_ldif @@ -87,7 +87,7 @@ add_attribute_base64_control() #!/usr/bin/env bash contact_ldif="\$1" -grep -v '^$' \$contact_ldif > \${contact_ldif}.tmp +grep -v '^\$' \$contact_ldif > \${contact_ldif}.tmp echo "displayName:: $display_name_con_b64" >> \${contact_ldif}.tmp mv \${contact_ldif}.tmp \$contact_ldif -- 2.39.2 From 1c401a7adc00b66934b104f6e10867e7ec03fc5a Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 8 Feb 2023 18:41:18 +0100 Subject: [PATCH 08/15] python:tests: Use a random username for contact_edit.sh test BUG: https://bugzilla.samba.org/show_bug.cgi?id=15308 Signed-off-by: Andreas Schneider Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett (cherry picked from commit e846a9df60323a77e8222f27be8d31b326ce8d6a) --- python/samba/tests/samba_tool/contact_edit.sh | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/python/samba/tests/samba_tool/contact_edit.sh b/python/samba/tests/samba_tool/contact_edit.sh index a1863846bc2..d31413dbcd6 100755 --- a/python/samba/tests/samba_tool/contact_edit.sh +++ b/python/samba/tests/samba_tool/contact_edit.sh @@ -28,13 +28,15 @@ display_name_new="Renamed Bjoern" # echo -e "test \a string" | base64 display_name_con_b64="dGVzdCAHIHN0cmluZwo=" +TEST_USER="$(mktemp -u testcontactXXXXXX)" + tmpeditor=$(mktemp --suffix .sh -p $SELFTEST_TMPDIR samba-tool-editor-XXXXXXXX) chmod +x $tmpeditor create_test_contact() { $PYTHON ${STpath}/source4/scripting/bin/samba-tool \ - contact create testcontact1 \ + contact create ${TEST_USER} \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -53,13 +55,13 @@ mv \${contact_ldif}.tmp \$contact_ldif EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool contact edit \ - testcontact1 --editor=$tmpeditor \ + ${TEST_USER} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } get_attribute_base64() { - $samba_ldbsearch '(&(objectClass=contact)(name=testcontact1))' \ + $samba_ldbsearch "(&(objectClass=contact)(name=${TEST_USER}))" \ displayName \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -75,7 +77,7 @@ grep -v '^displayName' \$contact_ldif >> \${contact_ldif}.tmp mv \${contact_ldif}.tmp \$contact_ldif EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool contact edit \ - testcontact1 --editor=$tmpeditor \ + ${TEST_USER} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -93,14 +95,14 @@ echo "displayName:: $display_name_con_b64" >> \${contact_ldif}.tmp mv \${contact_ldif}.tmp \$contact_ldif EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool contact edit \ - testcontact1 --editor=$tmpeditor \ + ${TEST_USER} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } get_attribute_base64_control() { $PYTHON ${STpath}/source4/scripting/bin/samba-tool contact show \ - testcontact1 --attributes=displayName \ + ${TEST_USER} --attributes=displayName \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -108,7 +110,7 @@ get_attribute_force_no_base64() { # LDB_FLAG_FORCE_NO_BASE64_LDIF should be used here. $PYTHON ${STpath}/source4/scripting/bin/samba-tool contact show \ - testcontact1 --attributes=displayName \ + ${TEST_USER} --attributes=displayName \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -124,7 +126,7 @@ sed -i -e 's/displayName:: $display_name_con_b64/displayName: $display_name/' \ \$contact_ldif EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool contact edit \ - testcontact1 --editor=$tmpeditor \ + ${TEST_USER} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -143,21 +145,21 @@ sed -i -e 's/displayName: $display_name/displayName: $display_name_new/' \ EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool contact edit \ - testcontact1 --editor=$tmpeditor \ + ${TEST_USER} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } get_changed_attribute_force_no_base64() { $PYTHON ${STpath}/source4/scripting/bin/samba-tool contact show \ - testcontact1 --attributes=displayName \ + ${TEST_USER} --attributes=displayName \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } delete_contact() { $PYTHON ${STpath}/source4/scripting/bin/samba-tool \ - contact delete testcontact1 \ + contact delete ${TEST_USER} \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } -- 2.39.2 From f226f1e095c564c1d2e36fa1b3f21c1694cd5651 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 8 Feb 2023 21:37:06 +0100 Subject: [PATCH 09/15] python:tests: Correctly escape $ in computer_edit.sh BUG: https://bugzilla.samba.org/show_bug.cgi?id=15308 Signed-off-by: Andreas Schneider Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett (cherry picked from commit 8ff1ccc6d6d8804be55f5549910aa11c6a9a7664) --- python/samba/tests/samba_tool/computer_edit.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/samba/tests/samba_tool/computer_edit.sh b/python/samba/tests/samba_tool/computer_edit.sh index 500a00d9a34..1fd4b3f5c7e 100755 --- a/python/samba/tests/samba_tool/computer_edit.sh +++ b/python/samba/tests/samba_tool/computer_edit.sh @@ -60,7 +60,7 @@ add_attribute_base64() #!/usr/bin/env bash computer_ldif="\$1" -grep -v '^$' \$computer_ldif > \${computer_ldif}.tmp +grep -v '^\$' \$computer_ldif > \${computer_ldif}.tmp echo "displayName:: $display_name_b64" >> \${computer_ldif}.tmp mv \${computer_ldif}.tmp \$computer_ldif @@ -100,7 +100,7 @@ add_attribute_base64_control() #!/usr/bin/env bash computer_ldif="\$1" -grep -v '^$' \$computer_ldif > \${computer_ldif}.tmp +grep -v '^\$' \$computer_ldif > \${computer_ldif}.tmp echo "displayName:: $display_name_con_b64" >> \${computer_ldif}.tmp mv \${computer_ldif}.tmp \$computer_ldif -- 2.39.2 From 8fe8ce693bede9e9385f16f94387fe5f4df5c4b4 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 8 Feb 2023 21:40:25 +0100 Subject: [PATCH 10/15] python:tests: Use a random machine name for computer_edit.sh test BUG: https://bugzilla.samba.org/show_bug.cgi?id=15308 Signed-off-by: Andreas Schneider Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett (cherry picked from commit ae315397a653ec2249b89e246eb46589d4542f75) --- .../samba/tests/samba_tool/computer_edit.sh | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/python/samba/tests/samba_tool/computer_edit.sh b/python/samba/tests/samba_tool/computer_edit.sh index 1fd4b3f5c7e..da32760de35 100755 --- a/python/samba/tests/samba_tool/computer_edit.sh +++ b/python/samba/tests/samba_tool/computer_edit.sh @@ -29,10 +29,12 @@ display_name_con_b64="dGVzdCAHIHN0cmluZwo=" tmpeditor=$(mktemp --suffix .sh -p $SELFTEST_TMPDIR samba-tool-editor-XXXXXXXX) chmod +x $tmpeditor +TEST_MACHINE="$(mktemp -u testmachineXXXXXX)" + create_test_computer() { $PYTHON ${STpath}/source4/scripting/bin/samba-tool \ - computer create testmachine1 \ + computer create ${TEST_MACHINE} \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -48,7 +50,7 @@ $SED -i -e 's/userAccountControl: 4098/userAccountControl: 4096/' $computer_ldif EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool \ - computer edit testmachine1 --editor=$tmpeditor \ + computer edit ${TEST_MACHINE} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -67,13 +69,13 @@ mv \${computer_ldif}.tmp \$computer_ldif EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool computer edit \ - testmachine1 --editor=$tmpeditor \ + ${TEST_MACHINE} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } get_attribute_base64() { - ${ldbsearch} '(sAMAccountName=testmachine1$)' displayName \ + ${ldbsearch} "(sAMAccountName=${TEST_MACHINE}\$)" displayName \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -88,7 +90,7 @@ grep -v '^displayName' \$computer_ldif >> \${computer_ldif}.tmp mv \${computer_ldif}.tmp \$computer_ldif EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool computer edit \ - testmachine1 --editor=$tmpeditor \ + ${TEST_MACHINE} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -106,14 +108,14 @@ echo "displayName:: $display_name_con_b64" >> \${computer_ldif}.tmp mv \${computer_ldif}.tmp \$computer_ldif EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool computer edit \ - testmachine1 --editor=$tmpeditor \ + ${TEST_MACHINE} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } get_attribute_base64_control() { $PYTHON ${STpath}/source4/scripting/bin/samba-tool computer show \ - testmachine1 --attributes=displayName \ + ${TEST_MACHINE} --attributes=displayName \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -121,7 +123,7 @@ get_attribute_force_no_base64() { # LDB_FLAG_FORCE_NO_BASE64_LDIF should be used here. $PYTHON ${STpath}/source4/scripting/bin/samba-tool computer show \ - testmachine1 --attributes=displayName \ + ${TEST_MACHINE} --attributes=displayName \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -137,7 +139,7 @@ sed -i -e 's/displayName:: $display_name_con_b64/displayName: $display_name/' \ \$computer_ldif EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool computer edit \ - testmachine1 --editor=$tmpeditor \ + ${TEST_MACHINE} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } @@ -156,21 +158,21 @@ sed -i -e 's/displayName: $display_name/displayName: $display_name_new/' \ EOF $PYTHON ${STpath}/source4/scripting/bin/samba-tool computer edit \ - testmachine1 --editor=$tmpeditor \ + ${TEST_MACHINE} --editor=$tmpeditor \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } get_changed_attribute_force_no_base64() { $PYTHON ${STpath}/source4/scripting/bin/samba-tool computer show \ - testmachine1 --attributes=displayName \ + ${TEST_MACHINE} --attributes=displayName \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } delete_computer() { $PYTHON ${STpath}/source4/scripting/bin/samba-tool \ - computer delete testmachine1 \ + computer delete ${TEST_MACHINE} \ -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD" } -- 2.39.2 From 5fff53a31e9f5b4132daaaa3e2b9ce7b97903905 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 8 Feb 2023 10:17:05 +0100 Subject: [PATCH 11/15] python:tests: Make sure we do not run into issues with already existing users UNEXPECTED(failure): samba.tests.samba_tool.user.samba.tests.samba_tool.user.UserCmdTestCase.test_getpwent(ad_dc_ntvfs:local) REASON: Exception: Exception: Traceback (most recent call last): File "/builddir/build/BUILD/samba-4.18.0rc2/bin/python/samba/tests/samba_tool/user.py", line 1044, in test_getpwent self.assertCmdSuccess(result, out, err) File "/builddir/build/BUILD/samba-4.18.0rc2/bin/python/samba/tests/samba_tool/base.py", line 97, in assertCmdSuccess self.assertIsNone(exit, msg=msg.replace("\n]\n", "\n] \n")) AssertionError: -1 is not None : exit[-1] stdout[] stderr[ERROR(ldb): Failed to add user 'mockbuild': - LDAP error 68 LDAP_ENTRY_ALREADY_EXISTS - <00002071: samldb: samAccountName 'mockbuild' already in use!> <> ]: UNEXPECTED(failure): samba.tests.samba_tool.user.samba.tests.samba_tool.user.UserCmdTestCase.test_list(ad_dc_ntvfs:local) REASON: Exception: Exception: Traceback (most recent call last): File "/builddir/build/BUILD/samba-4.18.0rc2/bin/python/samba/tests/samba_tool/user.py", line 69, in setUp self.assertCmdSuccess(result, out, err) File "/builddir/build/BUILD/samba-4.18.0rc2/bin/python/samba/tests/samba_tool/base.py", line 97, in assertCmdSuccess self.assertIsNone(exit, msg=msg.replace("\n]\n", "\n] \n")) AssertionError: -1 is not None : exit[-1] stdout[] stderr[ERROR(ldb): Failed to add user 'sambatool1': - LDAP error 68 LDAP_ENTRY_ALREADY_EXISTS - <00002071: samldb: samAccountNa me 'sambatool1' already in use!> <> BUG: https://bugzilla.samba.org/show_bug.cgi?id=15308 Signed-off-by: Andreas Schneider Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett (cherry picked from commit af27b1d37573d165983933d3789a18b12fad0272) --- python/samba/tests/samba_tool/user.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/python/samba/tests/samba_tool/user.py b/python/samba/tests/samba_tool/user.py index 700cb89c968..ffae45dd529 100644 --- a/python/samba/tests/samba_tool/user.py +++ b/python/samba/tests/samba_tool/user.py @@ -62,6 +62,11 @@ class UserCmdTestCase(SambaToolCmdTest): self.users.append(self._randomUnixUser({"name": "unixuser3"})) self.users.append(self._randomUnixUser({"name": "unixuser4"})) + # Make sure users don't exist + for user in self.users: + if self._find_user(user["name"]): + self.runsubcmd("user", "delete", user["name"]) + # setup the 12 users and ensure they are correct for user in self.users: (result, out, err) = user["createUserFn"](user) @@ -999,6 +1004,10 @@ sAMAccountName: %s "gecos": gecos, "loginShell": u[6], }) + + # Remove user if it already exists + if self._find_user(u[0]): + self.runsubcmd("user", "delete", u[0]) # check if --rfc2307-from-nss sets the same values as we got from pwd.getpwuid() (result, out, err) = self.runsubcmd("user", "create", user["name"], user["password"], "--surname=%s" % user["surname"], @@ -1023,6 +1032,10 @@ sAMAccountName: %s # # get a user with all random posix attributes user = self._randomPosixUser({"name": u[0]}) + + # Remove user if it already exists + if self._find_user(u[0]): + self.runsubcmd("user", "delete", u[0]) # create a user with posix attributes from nss but override all of them with the # random ones just obtained (result, out, err) = self.runsubcmd("user", "create", user["name"], user["password"], -- 2.39.2 From 05636f4f55e971e185e89f08dfa4ca24ac98e8bf Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 8 Feb 2023 11:16:12 +0100 Subject: [PATCH 12/15] python:tests: Fix domain_backup test with Python 3.11 Traceback (most recent call last): File "bin/python/samba/tests/domain_backup.py", line 615, in test_backup_restore_with_conf self._test_backup_restore_with_conf() File "bin/python/samba/tests/domain_backup.py", line 244, in _test_backup_restore_with_conf self.restore_backup(backup_file, ["--configfile=" + smbconf]) File "bin/python/samba/tests/domain_backup.py", line 421, in restore_backup self.run_cmd(args) File "bin/python/samba/tests/domain_backup.py", line 384, in run_cmd self.cleanup_tempdir() File "bin/python/samba/tests/domain_backup.py", line 370, in cleanup_tempdir shutil.rmtree(filepath) File "/usr/lib64/python3.11/shutil.py", line 732, in rmtree _rmtree_safe_fd(fd, path, onerror) File "/usr/lib64/python3.11/shutil.py", line 635, in _rmtree_safe_fd onerror(os.scandir, path, sys.exc_info()) File "/usr/lib64/python3.11/shutil.py", line 631, in _rmtree_safe_fd with os.scandir(topfd) as scandir_it: ^^^^^^^^^^^^^^^^^ NotADirectoryError: [Errno 20] Not a directory: 'st/tmp/tmp7usvex3t/samba-backup-2023-02-08T10-13-18.461113.tar.bz2' BUG: https://bugzilla.samba.org/show_bug.cgi?id=15308 Signed-off-by: Andreas Schneider Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett (cherry picked from commit 804fb07259b87e80993b1916935b626906e04580) --- python/samba/tests/domain_backup.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python/samba/tests/domain_backup.py b/python/samba/tests/domain_backup.py index b890a1030b7..2feef28bcb4 100644 --- a/python/samba/tests/domain_backup.py +++ b/python/samba/tests/domain_backup.py @@ -367,7 +367,10 @@ class DomainBackupBase(BlackboxTestCase): def cleanup_tempdir(self): for filename in os.listdir(self.tempdir): filepath = os.path.join(self.tempdir, filename) - shutil.rmtree(filepath) + if os.path.isfile(filepath): + os.remove(filepath) + elif os.path.isdir(filepath): + shutil.rmtree(filepath) def run_cmd(self, args): """Executes a samba-tool backup/restore command""" -- 2.39.2 From 23d7dd4d85d07bedd5631671b4004ccf476ef45d Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 8 Feb 2023 12:21:10 +0100 Subject: [PATCH 13/15] python:tests: Tell dns.resolver to not read /etc/resolv.conf We explicitly set the nameserver in the next line. Also the file /etc/resolv.conf might not exist on the system (e.g in Fedora mockbuild). BUG: https://bugzilla.samba.org/show_bug.cgi?id=15308 Signed-off-by: Andreas Schneider Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett (cherry picked from commit c4dba61e3691a1fd15eb63ee69224457102bf961) --- python/samba/tests/blackbox/netads_dns.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/python/samba/tests/blackbox/netads_dns.py b/python/samba/tests/blackbox/netads_dns.py index 0a491504537..e9f945eaef9 100644 --- a/python/samba/tests/blackbox/netads_dns.py +++ b/python/samba/tests/blackbox/netads_dns.py @@ -30,7 +30,9 @@ class NetAdsDnsTests(BlackboxTestCase): def setUp(self): super(NetAdsDnsTests, self).setUp() nameserver = os.environ["DC_SERVER_IP"] - self.resolver = dns.resolver.Resolver() + # filename=None will disable reading /etc/resolv.conf. The file might + # not exist e.g. on build or CI systems. + self.resolver = dns.resolver.Resolver(filename=None) self.resolver.nameservers = [nameserver] def parse_output(self, output): -- 2.39.2 From bf1676b37ea43cd9bdd2eaa8902f5ef66473d240 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 9 Feb 2023 18:32:59 +0100 Subject: [PATCH 14/15] python:tests: Add missing result checks for samba_tool.gpo tests BUG: https://bugzilla.samba.org/show_bug.cgi?id=15308 Signed-off-by: Andreas Schneider Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett (cherry picked from commit 69442ae1072eb6dc4c9903122d613c1756ca57c7) --- python/samba/tests/samba_tool/gpo.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/python/samba/tests/samba_tool/gpo.py b/python/samba/tests/samba_tool/gpo.py index 78ed5d493af..723c8f055cd 100644 --- a/python/samba/tests/samba_tool/gpo.py +++ b/python/samba/tests/samba_tool/gpo.py @@ -183,6 +183,9 @@ class GpoCmdTestCase(SambaToolCmdTest): os.environ["PASSWORD"]), "--restore-metadata") + self.assertCmdSuccess(result, out, err, + "Ensure gpo restore successful") + gpo_guid = "{%s}" % out.split("{")[1].split("}")[0] (result, out, err) = self.runsubcmd("gpo", "backup", gpo_guid, @@ -237,6 +240,9 @@ class GpoCmdTestCase(SambaToolCmdTest): os.environ["PASSWORD"]), "--restore-metadata") + self.assertCmdSuccess(result, out, err, + "Ensure gpo restore successful") + gpo_guid = "{%s}" % out.split("{")[1].split("}")[0] gpo_guid1 = gpo_guid @@ -259,6 +265,9 @@ class GpoCmdTestCase(SambaToolCmdTest): os.environ["PASSWORD"]), "--restore-metadata") + self.assertCmdSuccess(result, out, err, + "Ensure gpo restore successful") + gpo_guid = "{%s}" % out.split("{")[1].split("}")[0] gpo_guid2 = gpo_guid @@ -322,6 +331,9 @@ class GpoCmdTestCase(SambaToolCmdTest): os.environ["PASSWORD"]), "--restore-metadata") + self.assertCmdSuccess(result, out, err, + "Ensure gpo restore successful") + gpo_guid = "{%s}" % out.split("{")[1].split("}")[0] gpo_guid1 = gpo_guid @@ -342,6 +354,9 @@ class GpoCmdTestCase(SambaToolCmdTest): os.environ["PASSWORD"]), "--restore-metadata") + self.assertCmdSuccess(result, out, err, + "Ensure gpo restore successful") + gpo_guid = "{%s}" % out.split("{")[1].split("}")[0] gpo_guid2 = gpo_guid -- 2.39.2 From c6c2b101cb4afa49bd45768a1f52b6f7accddb11 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 8 Feb 2023 15:44:43 +0100 Subject: [PATCH 15/15] python:tests: Make sure we delete the OU for movetest UNEXPECTED(failure): samba.tests.samba_tool.group.samba.tests.samba_tool.group.GroupCmdTestCase.test_move(ad_dc_default:local) REASON: Exception: Exception: Traceback (most recent call last): File "python/samba/tests/samba_tool/group.py", line 341, in test_move self.assertCmdSuccess(result, out, err) File "python/samba/tests/samba_tool/base.py", line 97, in assertCmdSuccess self.assertIsNone(exit, msg=msg.replace("\n]\n", "\n] \n")) AssertionError: -1 is not None : exit[-1] stdout[] stderr[ERROR(ldb): Failed to add ou "OU=movetest,DC=addom,DC=samba,DC=example,DC=com" - Entry OU=movetest,DC=addom,DC=samba,DC=example,DC=com already exists BUG: https://bugzilla.samba.org/show_bug.cgi?id=15308 Signed-off-by: Andreas Schneider Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett (cherry picked from commit a4307072d6ea5ddef5b37aa361e9e9f16f7254e7) --- python/samba/tests/samba_tool/group.py | 8 +++----- python/samba/tests/samba_tool/user.py | 8 +++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/python/samba/tests/samba_tool/group.py b/python/samba/tests/samba_tool/group.py index 2542411d74a..3019b7596d2 100644 --- a/python/samba/tests/samba_tool/group.py +++ b/python/samba/tests/samba_tool/group.py @@ -336,7 +336,9 @@ class GroupCmdTestCase(SambaToolCmdTest): def test_move(self): - full_ou_dn = str(self.samdb.normalize_dn_in_domain("OU=movetest")) + full_ou_dn = str(self.samdb.normalize_dn_in_domain("OU=movetest_grp")) + self.addCleanup(self.samdb.delete, full_ou_dn, ["tree_delete:1"]) + (result, out, err) = self.runsubcmd("ou", "add", full_ou_dn) self.assertCmdSuccess(result, out, err) self.assertEqual(err, "", "There shouldn't be any error message") @@ -363,10 +365,6 @@ class GroupCmdTestCase(SambaToolCmdTest): self.assertIn('Moved group "%s" into "%s"' % (group["name"], new_dn), out) - (result, out, err) = self.runsubcmd("ou", "delete", full_ou_dn) - self.assertCmdSuccess(result, out, err, - "Failed to delete ou '%s'" % full_ou_dn) - def test_show(self): """Assert that we can show a group correctly.""" (result, out, err) = self.runsubcmd("group", "show", "Domain Users", diff --git a/python/samba/tests/samba_tool/user.py b/python/samba/tests/samba_tool/user.py index ffae45dd529..9b6d19b11cb 100644 --- a/python/samba/tests/samba_tool/user.py +++ b/python/samba/tests/samba_tool/user.py @@ -708,7 +708,9 @@ sAMAccountName: %s self.assertGreater(pwd_expires_time, pwd_last_set_time) def test_move(self): - full_ou_dn = str(self.samdb.normalize_dn_in_domain("OU=movetest")) + full_ou_dn = str(self.samdb.normalize_dn_in_domain("OU=movetest_usr")) + self.addCleanup(self.samdb.delete, full_ou_dn, ["tree_delete:1"]) + (result, out, err) = self.runsubcmd("ou", "add", full_ou_dn) self.assertCmdSuccess(result, out, err) self.assertEqual(err, "", "There shouldn't be any error message") @@ -735,10 +737,6 @@ sAMAccountName: %s self.assertIn('Moved user "%s" into "%s"' % (user["name"], new_dn), out) - (result, out, err) = self.runsubcmd("ou", "delete", full_ou_dn) - self.assertCmdSuccess(result, out, err, - "Failed to delete ou '%s'" % full_ou_dn) - def test_rename_surname_initials_givenname(self): """rename the existing surname and given name and add missing initials, then remove them, for all users""" -- 2.39.2