summaryrefslogtreecommitdiffstats
path: root/ldap/admin/src/scripts/81changelog.pl
blob: f0fff1bbcec4f2bd3742f5f6acce5fc8f5728377 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use Mozilla::LDAP::Conn;

# Cleanup local changelog db
# If changelog db exists, run db_checkpoint to flush the transaction logs.
# Then, remove the local region files and transaction logs.
sub runinst {
    my ($inf, $inst, $dseldif, $conn) = @_;

    my @errs;

    my $config = "cn=changelog5,cn=config";
    my $config_entry = $conn->search($config, "base", "(cn=*)");
    if (!$config_entry) {
        # cn=changelog5 does not exist; not a master.
        return ();
    }
    # First, check if the server is up or down.
    my $changelogdir = $config_entry->getValues('nsslapd-changelogdir');

    # Run db_checkpoint
    system("/usr/bin/db_checkpoint -h $changelogdir -1");

    # Remove old db region files and transaction logs
    system("rm $changelogdir/__db.*");
    system("rm $changelogdir/log.*");
    system("rm $changelogdir/guardian");

    return ();
}