projects
/
gruntmaster-daemon.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add some tests with invalid jobs
[gruntmaster-daemon.git]
/
lib
/
Gruntmaster
/
Daemon.pm
diff --git
a/lib/Gruntmaster/Daemon.pm
b/lib/Gruntmaster/Daemon.pm
index 64f82312df71b5edde5d6e4dde3c0003e76be960..1c58550a7e0a8c584c1f25edbce6b75642807577 100644
(file)
--- a/
lib/Gruntmaster/Daemon.pm
+++ b/
lib/Gruntmaster/Daemon.pm
@@
-33,23
+33,15
@@
use constant FORMAT_EXTENSION => {
##################################################
##################################################
-sub purge;
-
my $db;
my $db;
-sub safe_can
_nodie
{
+sub safe_can {
my ($type, $sub, $name) = @_;
my ($type, $sub, $name) = @_;
-
return
unless $name =~ /^\w+$/s;
+
get_logger->logdie("Invalid \l$type: '$name'")
unless $name =~ /^\w+$/s;
my $pkg = __PACKAGE__ . "::${type}::${name}";
eval "require $pkg" or get_logger->warn("Error while requiring $pkg: $@");
my $pkg = __PACKAGE__ . "::${type}::${name}";
eval "require $pkg" or get_logger->warn("Error while requiring $pkg: $@");
- $pkg->can($sub);
-}
-
-sub safe_can {
- my ($type, $sub, $name) = @_;
-
- safe_can_nodie @_ or get_logger->logdie("No such \l$type: '$name'");
+ $pkg->can($sub) or get_logger->logdie("No such \l$type: '$name'");
}
sub process{
}
sub process{
@@
-143,13
+135,7
@@
sub process{
problem => $jobr->problem,
owner => $jobr->owner,
job => $jobr->id,
problem => $jobr->problem,
owner => $jobr->owner,
job => $jobr->id,
- solved => $solved});
-
- purge '/log/';
- purge "/log/$job";
- purge '/st/' . $jobr->contest if $jobr->contest;
- purge '/us/';
- purge '/us/' . $jobr->owner;
+ solved => $solved}) if !$jobr->problem->is_private;
}
sub got_job{
}
sub got_job{
@@
-169,12
+155,13
@@
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;
require Gruntmaster::Data;
- $db = Gruntmaster::Data->connect('dbi:Pg:');
+ $db = Gruntmaster::Data->connect(
$ENV{GRUNTMASTER_DSN} //
'dbi:Pg:');
Log::Log4perl->init('/etc/gruntmasterd/gruntmasterd-log.conf');
get_logger->info("gruntmasterd $VERSION started");
Log::Log4perl->init('/etc/gruntmasterd/gruntmasterd-log.conf');
get_logger->info("gruntmasterd $VERSION started");
- chdir tempdir 'gruntmasterd.XXXX', CLEANUP => 1, TMPDIR => 1;
+ my $dir = tempdir 'gruntmasterd.XXXX', CLEANUP => 1, TMPDIR => 1;
+ chmod 0711, $dir;
+ chdir $dir;
while (1) {
my $job = $db->jobs->search({daemon => undef}, {rows => 1})->first;
got_job $job if defined $job;
while (1) {
my $job = $db->jobs->search({daemon => undef}, {rows => 1})->first;
got_job $job if defined $job;
This page took
0.009963 seconds
and
4
git commands to generate.