use PMG::pmgcfg;
use PMG::AtomicFile;
+my $sa_custom_config_fn = "/etc/mail/spamassassin/custom.cf";
+
sub dump_table {
my ($dbh, $table, $ofh, $seq, $seqcol) = @_;
my $extra_cfgs = [];
- push @$extra_cfgs, '/etc/mail/spamassassin/custom.cf';
+ push @$extra_cfgs, $sa_custom_config_fn;
#push @$extra_cfgs, '/etc/postfix/tls_policy';
unlink "$dirname/config/etc/pmg/cluster.conf"; # never restore cluster config
rmtree "$dirname/config/etc/pmg/master";
- # backup old config to /etc/pmg.oldremove current config
- rmtree "/etc/pmg";
- mkdir "/etc/pmg";
+ # remove current config, but keep directory for INotify
+ rmtree("/etc/pmg", { keep_root => 1 });
# copy files
system("cp -a $dirname/config/etc/pmg/* /etc/pmg/") == 0 ||
die "unable to restore system configuration: ERROR";
+ if (-f "$dirname/config/${sa_custom_config_fn}") {
+ my $data = PVE::Tools::file_get_contents(
+ "$dirname/config/${sa_custom_config_fn}", 1024*1024);
+ PVE::Tools::file_set_contents($sa_custom_config_fn, $data);
+ }
+
my $cfg = PMG::Config->new();
my $ruledb = PMG::RuleDB->new();
my $rulecache = PMG::RuleCache->new($ruledb);
print "Create new database\n";
my $dbh = PMG::DBTools::create_ruledb($dbname);
- my $ruledb = PMG::RuleDB->new($dbh);
- PMG::DBTools::init_ruledb($ruledb);
system("cat $dirname/$dbfn|psql $dbname >/dev/null 2>&1") == 0 ||
die "unable to restore rule database: ERROR";
PMG::DBTools::postgres_admin_cmd('psql', { input => 'analyze;' }, $dbname);
print "Analyzing/Upgrading existing Databases...";
+ my $ruledb = PMG::RuleDB->new($dbh);
PMG::DBTools::upgradedb($ruledb);
print "done\n";