~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to lib/GenTest/Reporter/BackupAndRestore.pm

initial import from internal tree

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package GenTest::Reporter::BackupAndRestore;
 
2
 
 
3
require Exporter;
 
4
@ISA = qw(GenTest::Reporter);
 
5
 
 
6
use strict;
 
7
use GenTest;
 
8
use GenTest::Reporter;
 
9
use GenTest::Constants;
 
10
 
 
11
my $count = 0;
 
12
my $file = '/tmp/rqg_backup';
 
13
 
 
14
sub monitor {
 
15
        my $reporter = shift;
 
16
 
 
17
        return STATUS_OK if $count > 0;
 
18
 
 
19
        my $dsn = $reporter->dsn();
 
20
 
 
21
        my $dbh = DBI->connect($dsn);
 
22
 
 
23
        unlink('/tmp/rqg_backup');
 
24
        say("Executing BACKUP DATABASE.");
 
25
        $dbh->do("BACKUP DATABASE test TO '/tmp/rqg_backup'");
 
26
        $count++;
 
27
 
 
28
        if (defined $dbh->err()) {
 
29
                return STATUS_DATABASE_CORRUPTION;
 
30
        } else {
 
31
                return STATUS_OK;
 
32
        }
 
33
}
 
34
 
 
35
sub report {
 
36
        my $reporter = shift;
 
37
 
 
38
        my $dsn = $reporter->dsn();
 
39
 
 
40
        my $dbh = DBI->connect($dsn);
 
41
 
 
42
        say("Executing RESTORE FROM.");
 
43
        $dbh->do("RESTORE FROM '/tmp/rqg_backup' OVERWRITE");
 
44
 
 
45
        if (defined $dbh->err()) {
 
46
                return STATUS_DATABASE_CORRUPTION;
 
47
        } else {
 
48
                return STATUS_OK;
 
49
        }
 
50
}
 
51
 
 
52
sub type {
 
53
        return REPORTER_TYPE_PERIODIC | REPORTER_TYPE_SUCCESS;
 
54
}
 
55
 
 
56
1;