Bug 17669: Incorporate the changes in cleanup_database
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Tue, 13 Dec 2016 15:44:26 +0000 (16:44 +0100)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 21 Apr 2017 17:55:25 +0000 (13:55 -0400)
Two command line options are added:
[1] -temp-uploads to indicate that you want to purge these uploads,
[2] -temp-uploads-override DAYS to (optionally) tell that you want to
    override the corresponding pref value.

Test plan:
[1] Check the modified usage statement.
[2] If needed, backup your temporary uploads :)
    In case you do not have one, add a temporary one with Tools/Upload.
    Note: Do not choose an upload category.
[3] Set pref to 0, and run cleanup_database with only --temp-uploads.
    No files should be deleted.
[4] Check number of "old" temp uploads. Set pref to nonzero value.
    Verify that the oldest are gone (depending on the value chosen).
[5] Set pref to 0 again.
    If all uploads are gone now, add a new one with Tools/Upload.
    Run cleanup_database with --temp-uploads --temp-uploads-override -1
    All temporary files are gone.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Mirko Tietgen <mirko@abunchofthings.net>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
misc/cronjobs/cleanup_database.pl

index 52028f2..f67a934 100755 (executable)
@@ -40,10 +40,11 @@ use C4::Search::History;
 use Getopt::Long;
 use C4::Log;
 use C4::Accounts;
+use Koha::UploadedFiles;
 
 sub usage {
     print STDERR <<USAGE;
-Usage: $0 [-h|--help] [--sessions] [--sessdays DAYS] [-v|--verbose] [--zebraqueue DAYS] [-m|--mail] [--merged] [--import DAYS] [--logs DAYS] [--searchhistory DAYS] [--restrictions DAYS] [--all-restrictions] [--fees DAYS]
+Usage: $0 [-h|--help] [--sessions] [--sessdays DAYS] [-v|--verbose] [--zebraqueue DAYS] [-m|--mail] [--merged] [--import DAYS] [--logs DAYS] [--searchhistory DAYS] [--restrictions DAYS] [--all-restrictions] [--fees DAYS] [--temp-uploads] [--temp-uploads-override DAYS]
 
    -h --help          prints this help message, and exits, ignoring all
                       other options
@@ -80,6 +81,8 @@ Usage: $0 [-h|--help] [--sessions] [--sessdays DAYS] [-v|--verbose] [--zebraqueu
    --del-exp-selfreg  Delete expired self registration accounts
    --del-unv-selfreg  DAYS  Delete unverified self registrations older than DAYS
    --unique-holidays DAYS  Delete all unique holidays older than DAYS
+   --temp-uploads     Delete temporary uploads.
+   --temp-uploads-override DAYS Override the corresponding preference value.
 USAGE
     exit $_[0];
 }
@@ -102,6 +105,8 @@ my $pExpSelfReg;
 my $pUnvSelfReg;
 my $fees_days;
 my $special_holidays_days;
+my $temp_uploads;
+my $override_temp_uploads;
 
 GetOptions(
     'h|help'            => \$help,
@@ -122,6 +127,8 @@ GetOptions(
     'del-exp-selfreg'   => \$pExpSelfReg,
     'del-unv-selfreg'   => \$pUnvSelfReg,
     'unique-holidays:i' => \$special_holidays_days,
+    'temp-uploads'      => \$temp_uploads,
+    'temp-uploads-override:i' => \$override_temp_uploads,
 ) || usage(1);
 
 # Use default values
@@ -153,6 +160,7 @@ unless ( $sessions
     || $pExpSelfReg
     || $pUnvSelfReg
     || $special_holidays_days
+    || $temp_uploads
 ) {
     print "You did not specify any cleanup work for the script to do.\n\n";
     usage(1);
@@ -302,6 +310,16 @@ if ($special_holidays_days) {
     DeleteSpecialHolidays( abs($special_holidays_days) );
 }
 
+if( $temp_uploads ) {
+    # Delete temporary uploads, governed by a pref.
+    # If the pref is empty, nothing happens (unless you override).
+    print "Purging temporary uploads.\n" if $verbose;
+    Koha::UploadedFiles->delete_temporary({
+        override_pref => $override_temp_uploads,
+    });
+    print "Done purging temporary uploads.\n" if $verbose;
+}
+
 exit(0);
 
 sub RemoveOldSessions {