projects
/
gruntmaster-daemon.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add perlcritic test and make code comply
[gruntmaster-daemon.git]
/
lib
/
Gruntmaster
/
Daemon.pm
diff --git
a/lib/Gruntmaster/Daemon.pm
b/lib/Gruntmaster/Daemon.pm
index 15f6410af68e779a182d4da4318df198472d6ba0..64f82312df71b5edde5d6e4dde3c0003e76be960 100644
(file)
--- a/
lib/Gruntmaster/Daemon.pm
+++ b/
lib/Gruntmaster/Daemon.pm
@@
-7,8
+7,7
@@
use warnings;
our $VERSION = '5999.000_004';
use Gruntmaster::Daemon::Constants qw/ERR/;
our $VERSION = '5999.000_004';
use Gruntmaster::Daemon::Constants qw/ERR/;
-use Gruntmaster::Daemon::Format qw/prepare_files/;
-use Gruntmaster::Data;
+use Gruntmaster::Daemon::Format qw/prepare_files stopvms/;
use File::Basename qw/fileparse/;
use File::Temp qw/tempdir/;
use File::Basename qw/fileparse/;
use File::Temp qw/tempdir/;
@@
-17,7
+16,6
@@
use Sys::Hostname qw/hostname/;
use Time::HiRes qw/time/;
use Try::Tiny;
use Log::Log4perl qw/get_logger/;
use Time::HiRes qw/time/;
use Try::Tiny;
use Log::Log4perl qw/get_logger/;
-use LWP::UserAgent;
use constant PAGE_SIZE => 10;
use constant FORMAT_EXTENSION => {
use constant PAGE_SIZE => 10;
use constant FORMAT_EXTENSION => {
@@
-35,15
+33,14
@@
use constant FORMAT_EXTENSION => {
##################################################
##################################################
+sub purge;
+
my $db;
my $db;
-my $ua = LWP::UserAgent->new;
-my @purge_hosts = exists $ENV{PURGE_HOSTS} ? split ' ', $ENV{PURGE_HOSTS} : ();
sub safe_can_nodie {
my ($type, $sub, $name) = @_;
sub safe_can_nodie {
my ($type, $sub, $name) = @_;
- return unless $name =~ /^\w+$/;
- no strict 'refs';
+ return unless $name =~ /^\w+$/s;
my $pkg = __PACKAGE__ . "::${type}::${name}";
eval "require $pkg" or get_logger->warn("Error while requiring $pkg: $@");
$pkg->can($sub);
my $pkg = __PACKAGE__ . "::${type}::${name}";
eval "require $pkg" or get_logger->warn("Error while requiring $pkg: $@");
$pkg->can($sub);
@@
-55,14
+52,6
@@
sub safe_can {
safe_can_nodie @_ or get_logger->logdie("No such \l$type: '$name'");
}
safe_can_nodie @_ or get_logger->logdie("No such \l$type: '$name'");
}
-sub purge {
- get_logger->trace("Purging $_[0]");
- for my $host (@purge_hosts) {
- my $req = HTTP::Request->new(PURGE => "http://$host$_[0]");
- $ua->request($req)
- }
-}
-
sub process{
my ($job, $jobr) = @_;
sub process{
my ($job, $jobr) = @_;
@@
-97,7
+86,7
@@
sub process{
prepare_files $meta;
chomp $errors;
prepare_files $meta;
chomp $errors;
- my ($files, $generator, $runner, $judge, $testcnt) = map { $meta->{$_} or die "Required parameter missing: $_"} qw/files generator runner judge testcnt/;
+ my ($files, $generator, $runner, $judge, $testcnt) = map { $meta->{$_} or die "Required parameter missing: $_
\n
"} qw/files generator runner judge testcnt/;
$generator = safe_can Generator => generate => $generator;
$runner = safe_can Runner => run => $runner;
$generator = safe_can Generator => generate => $generator;
$runner = safe_can Runner => run => $runner;
@@
-132,13
+121,14
@@
sub process{
$meta->{$_} = $results{$_} for keys %results;
$meta->{results} = \@full_results
} catch {
$meta->{$_} = $results{$_} for keys %results;
$meta->{results} = \@full_results
} catch {
- s
,(.*) at .*,$1,
;
+ s
/(.*) at .*/$1/s
;
chomp;
$meta->{result} = -1;
$meta->{result_text} = $_;
};
chomp;
$meta->{result} = -1;
$meta->{result_text} = $_;
};
+ stopvms;
- get_logger->info(
"Job result: "
. $meta->{result_text});
+ get_logger->info(
'Job result: '
. $meta->{result_text});
return unless $jobr;
$jobr->update({
result => $meta->{result},
return unless $jobr;
$jobr->update({
result => $meta->{result},
@@
-155,13
+145,11
@@
sub process{
job => $jobr->id,
solved => $solved});
job => $jobr->id,
solved => $solved});
- my $log = $jobr->contest ? 'ct/' . $jobr->contest->id . '/log' : 'log';
- my $page = int (($job + PAGE_SIZE - 1) / PAGE_SIZE);
-
- purge "/$log/$job";
- purge "/$log/";
- purge "/$log/st";
- purge "/$log/page/$_" for $page - 1, $page, $page + 1;
+ purge '/log/';
+ purge "/log/$job";
+ purge '/st/' . $jobr->contest if $jobr->contest;
+ purge '/us/';
+ purge '/us/' . $jobr->owner;
}
sub got_job{
}
sub got_job{
@@
-181,6
+169,8
@@
sub got_job{
}
sub run{
}
sub run{
+ warn "No GRUNTMASTER_VM environment variable. Running without a VM is a security risk.\n" unless $ENV{GRUNTMASTER_VM};
+ require Gruntmaster::Data;
$db = Gruntmaster::Data->connect('dbi:Pg:');
Log::Log4perl->init('/etc/gruntmasterd/gruntmasterd-log.conf');
get_logger->info("gruntmasterd $VERSION started");
$db = Gruntmaster::Data->connect('dbi:Pg:');
Log::Log4perl->init('/etc/gruntmasterd/gruntmasterd-log.conf');
get_logger->info("gruntmasterd $VERSION started");
This page took
0.012016 seconds
and
4
git commands to generate.