1c1baad33cd9a4c7f13bd60a596ba201e2a413ae
[buildfarm-server.git] / scripts / delete_host.pl
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5 use DBI;
6 use Data::Dumper;
7
8 die "Must pass one and only one sysname to delete\n"
9   unless scalar @ARGV == 1;
10
11 use vars qw($dbhost $dbname $dbuser $dbpass $dbport
12 );
13 require "$ENV{BFConfDir}/BuildFarmWeb.pl";
14
15 die "no dbname" unless $dbname;
16 die "no dbuser" unless $dbuser;
17
18 my $dsn="dbi:Pg:dbname=$dbname";
19 $dsn .= ";host=$dbhost" if $dbhost;
20 $dsn .= ";port=$dbport" if $dbport;
21
22 my $db = DBI->connect($dsn,$dbuser,$dbpass);
23
24 die $DBI::errstr unless $db;
25
26 my @tables = qw/alerts buildsystems build_status build_status_log
27                 build_status_recent_500 dashboard_mat latest_snapshot
28                 nrecent_failures personality/;
29 my $sth;
30 for my $loop (0 .. (scalar @tables - 1) ) {
31   my $field = ($tables[$loop] eq 'personality') ? 'name' :
32               ($tables[$loop] eq 'buildsystems') ? 'name':
33               'sysname';
34   printf "Deleting from %s with field %s\n", $tables[$loop], $field;
35   $sth = $db->prepare("
36        DELETE FROM $tables[$loop]
37        WHERE $field = ?
38       ");
39   $sth->execute($ARGV[0]);
40 }
41 $db->disconnect();