From: Michal Rakowski Date: Mon, 7 Dec 2020 15:26:25 +0000 (+0100) Subject: regress: Extend console-delete-object-test to validate filters X-Git-Tag: Release-11.3.2~795 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58f7812ed7586576b1c0b5f48e9590640fc41809;p=thirdparty%2Fbacula.git regress: Extend console-delete-object-test to validate filters --- diff --git a/regress/tests/console-delete-object-test b/regress/tests/console-delete-object-test index 6d39c242b..8071f2282 100755 --- a/regress/tests/console-delete-object-test +++ b/regress/tests/console-delete-object-test @@ -104,5 +104,100 @@ if [ ${objects_lines} -ne ${db_objs_expected} ]; then print_debug "Wrong PostgreSQL object cound found: ${objects_lines}, expected: ${db_objs_expected}" fi +# Purge objects and run job once more to have all objects generated by the test plugin back in db +cat <${cwd}/tmp/bconcmds +@$out ${cwd}/tmp/log7.out +purge volume=TestVolume001 +@$out ${cwd}/tmp/log8.out +run job=TestPluginTest storage=File1 yes +wait +messages +@$out ${cwd}/tmp/log9.out +list objects +quit +END_OF_DATA + +run_bconsole + +# Delete objects by 'category' filter +db_objects=`cat ${cwd}/tmp/log9.out | grep 'Database' | wc -l` +vm_objects=`cat ${cwd}/tmp/log9.out | grep 'Virtual Machine' | wc -l` + +cat <${cwd}/tmp/bconcmds +@$out ${cwd}/tmp/log10.out +delete object category=Database +yes +@$out ${cwd}/tmp/log11.out +list objects +@$out ${cwd}/tmp/log12.out +delete object category="Virtual Machine" +yes +@$out ${cwd}/tmp/log13.out +list objects +quit +END_OF_DATA + +run_bconsole + +objects_lines=`cat ${cwd}/tmp/log11.out | grep 'Database' | wc -l` +if [ ${objects_lines} -ne 0 ]; then + estat=1 + print_debug "Not all VMWare objects deleted with 'Database' filter. Objects left: ${objects_lines}" +fi + +objects_lines=`cat ${cwd}/tmp/log13.out | grep 'Virtual Machine' | wc -l` +if [ ${objects_lines} -ne 0 ]; then + estat=1 + print_debug "Not all VMWare objects deleted with 'Virtual Machine' filter. Objects left: ${objects_lines}" +fi + +# Run job once more to have all objects generated by the test plugin back in db +cat <${cwd}/tmp/bconcmds +@$out ${cwd}/tmp/log14.out +run job=TestPluginTest storage=File1 yes +wait +messages +@$out ${cwd}/tmp/log15.out +llist objects +quit +END_OF_DATA + +run_bconsole + +db_objects=`cat ${cwd}/tmp/log15.out | grep 'objectcategory: Database' | wc -l` +obj_name_everything=`cat ${cwd}/tmp/log15.out | grep 'objectname: everything' | wc -l` + +# Try to use two filters at once +cat <${cwd}/tmp/bconcmds +@$out ${cwd}/tmp/log16.out +delete object category=Database uuid=1234-abc-testplugin +@$out ${cwd}/tmp/log17.out +llist objects +@$out ${cwd}/tmp/log18.out +delete object category=Database name=everything +yes +@$out ${cwd}/tmp/log19.out +llist objects +quit +END_OF_DATA + +run_bconsole + +# No db obj should be deleted (there is no db with '1234-abc-testplugin' uuid +objects_lines=`cat ${cwd}/tmp/log17.out | grep 'objectcategory: Database' | wc -l` +if [ ${objects_lines} -ne ${db_objects} ]; then + estat=1 + print_debug "Database objects should not be deleted at all, expected: ${db_objects}, have: ${objects_lines}" + exit 1 +fi + +# 2 'everything' objs should be deleted +objects_lines=`cat ${cwd}/tmp/log19.out | grep 'objectname: everything' | wc -l` +if [ ${objects_lines} -ne 0 ]; then + estat=1 + print_debug "Not all 'everything' objects deleted with 'name' and 'category' filters. Objects left: ${objects_lines}" +fi + + stop_bacula end_test