From: Todd Lyons Date: Mon, 21 Oct 2013 21:00:40 +0000 (-0700) Subject: New Utilities for management X-Git-Url: https://git.exim.org/buildfarm-server.git/commitdiff_plain/17334f100bb3112b477a60b8bf8d7afdf4ab9b70 New Utilities for management --- diff --git a/list_buildsystems.pl b/list_buildsystems.pl new file mode 100755 index 0000000..4fa64d1 --- /dev/null +++ b/list_buildsystems.pl @@ -0,0 +1,38 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use DBI; +use Data::Dumper; + +use vars qw($dbhost $dbname $dbuser $dbpass $dbport +); +require "$ENV{BFConfDir}/BuildFarmWeb.pl"; + +die "no dbname" unless $dbname; +die "no dbuser" unless $dbuser; + +my $dsn="dbi:Pg:dbname=$dbname"; +$dsn .= ";host=$dbhost" if $dbhost; +$dsn .= ";port=$dbport" if $dbport; + +my $db = DBI->connect($dsn,$dbuser,$dbpass); + +die $DBI::errstr unless $db; + +my $sth = $db->prepare(q[ + SELECT name, status, operating_system, os_version, sys_owner, owner_email + FROM buildsystems AS b + ORDER BY name ASC + ]); +$sth->execute(); + +my $format = "%-10s %-10s %-18s %-20s %-18s %-s\n"; +printf $format, "SysName", "Status", "Owner", "Email", "Distro", "Version"; +while (my $row = $sth->fetchrow_hashref) +{ + printf $format, $row->{name}, $row->{status}, $row->{sys_owner}, + $row->{owner_email}, $row->{operating_system}, + $row->{os_version}; +} +$db->disconnect(); diff --git a/rename_system.pl b/rename_system.pl new file mode 100755 index 0000000..4a61c77 --- /dev/null +++ b/rename_system.pl @@ -0,0 +1,47 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use DBI; +use Data::Dumper; + +die "Must pass current and new sysnames\n" unless scalar @ARGV == 2; + +use vars qw($dbhost $dbname $dbuser $dbpass $dbport +); +require "$ENV{BFConfDir}/BuildFarmWeb.pl"; + +die "no dbname" unless $dbname; +die "no dbuser" unless $dbuser; + +my $dsn="dbi:Pg:dbname=$dbname"; +$dsn .= ";host=$dbhost" if $dbhost; +$dsn .= ";port=$dbport" if $dbport; + +my $db = DBI->connect($dsn,$dbuser,$dbpass); + +die $DBI::errstr unless $db; + +my $sth_up = $db->prepare(q[ + UPDATE buildsystems AS b + SET name = ? + WHERE name = ? + ]); +$sth_up->execute($ARGV[1],$ARGV[0]); + +my $sth = $db->prepare(q[ + SELECT name, status, operating_system, os_version, sys_owner, owner_email + FROM buildsystems AS b + ORDER BY name ASC + ]); +$sth->execute(); + +my $format = "%-10s %-10s %-18s %-20s %-18s %-s\n"; +printf $format, "SysName", "Status", "Owner", "Email", "Distro", "Version"; +while (my $row = $sth->fetchrow_hashref) +{ + printf $format, $row->{name}, $row->{status}, $row->{sys_owner}, + $row->{owner_email}, $row->{operating_system}, + $row->{os_version}; +} +$db->disconnect(); diff --git a/set_system_status.pl b/set_system_status.pl new file mode 100755 index 0000000..7912135 --- /dev/null +++ b/set_system_status.pl @@ -0,0 +1,47 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use DBI; +use Data::Dumper; + +die "Must pass sysname and status\n" unless scalar @ARGV == 2; + +use vars qw($dbhost $dbname $dbuser $dbpass $dbport +); +require "$ENV{BFConfDir}/BuildFarmWeb.pl"; + +die "no dbname" unless $dbname; +die "no dbuser" unless $dbuser; + +my $dsn="dbi:Pg:dbname=$dbname"; +$dsn .= ";host=$dbhost" if $dbhost; +$dsn .= ";port=$dbport" if $dbport; + +my $db = DBI->connect($dsn,$dbuser,$dbpass); + +die $DBI::errstr unless $db; + +my $sth_up = $db->prepare(q[ + UPDATE buildsystems AS b + SET status = ? + WHERE name = ? + ]); +$sth_up->execute($ARGV[1],$ARGV[0]); + +my $sth = $db->prepare(q[ + SELECT name, status, operating_system, os_version, sys_owner, owner_email + FROM buildsystems AS b + ORDER BY name ASC + ]); +$sth->execute(); + +my $format = "%-10s %-10s %-18s %-20s %-18s %-s\n"; +printf $format, "SysName", "Status", "Owner", "Email", "Distro", "Version"; +while (my $row = $sth->fetchrow_hashref) +{ + printf $format, $row->{name}, $row->{status}, $row->{sys_owner}, + $row->{owner_email}, $row->{operating_system}, + $row->{os_version}; +} +$db->disconnect();