diff --git a/mysql/CHANGELOG b/mysql/CHANGELOG index a61dc278f..8cc5b45bb 100644 --- a/mysql/CHANGELOG +++ b/mysql/CHANGELOG @@ -101,3 +101,5 @@ Added confirmation before deleting multiple user, host, database, table and colu Added fields to the Edit User page for setting the maximum concurrent logins and operations per hour for users. Scheduled MySQL backups can now have their success or failure sent via email, via new options on the Backup Database page. When executing SQL or restoring a backup file, the character set can now be selected for the imported data. +---- Changes since 1.700 ---- +When a database is deleted, any cron job for backing it up is also removed. diff --git a/postgresql/CHANGELOG b/postgresql/CHANGELOG index 354ee20cd..7a2cd03cd 100644 --- a/postgresql/CHANGELOG +++ b/postgresql/CHANGELOG @@ -74,3 +74,5 @@ Added greater than / less than selectors to the table data search form. ---- Changes since 1.530 ---- Added an option to the restore form to limit the restore to only certain tables. When creating a new database, a template database to copy from can now be selected. +---- Changes since 1.700 ---- +When a database is deleted, any cron job for backing it up is also removed. diff --git a/postgresql/drop_dbase.cgi b/postgresql/drop_dbase.cgi index 3855735e8..2d9b5487c 100755 --- a/postgresql/drop_dbase.cgi +++ b/postgresql/drop_dbase.cgi @@ -9,6 +9,7 @@ require './postgresql-lib.pl'; if ($in{'confirm'}) { # Drop the database &execute_sql_logged($config{'basedb'}, "drop database \"$in{'db'}\""); + &delete_database_backup_job($in{'db'}); &webmin_log("delete", "db", $in{'db'}); &redirect(""); } diff --git a/postgresql/drop_dbases.cgi b/postgresql/drop_dbases.cgi index 4e116c1d6..440d487e6 100755 --- a/postgresql/drop_dbases.cgi +++ b/postgresql/drop_dbases.cgi @@ -12,6 +12,7 @@ if ($in{'confirm'}) { # Drop the databases foreach $db (@dbs) { &execute_sql_logged($config{'basedb'}, "drop database \"$db\""); + &delete_database_backup_job($db); } &webmin_log("delete", "dbs", scalar(@dbs)); &redirect(""); diff --git a/postgresql/postgresql-lib.pl b/postgresql/postgresql-lib.pl index fe78e5f56..f35a620ed 100755 --- a/postgresql/postgresql-lib.pl +++ b/postgresql/postgresql-lib.pl @@ -1249,5 +1249,21 @@ else { return @rv; } +# delete_database_backup_job(db) +# If there is a backup scheduled for some database, remove it +sub delete_database_backup_job +{ +my ($db) = @_; +&foreign_require("cron"); +my @jobs = &cron::list_cron_jobs(); +my $cmd = "$cron_cmd $db"; +my ($job) = grep { $_->{'command'} eq $cmd } @jobs; +if ($job) { + &lock_file(&cron::cron_file($job)); + &cron::delete_cron_job($job); + &unlock_file(&cron::cron_file($job)); + } +} + 1;