projects
/
gruntmaster-daemon.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
6d590c6
)
Support getting infiles/okfiles from the filesystem
author
Marius Gavrilescu
<marius@ieval.ro>
Mon, 10 Feb 2014 09:23:17 +0000
(11:23 +0200)
committer
Marius Gavrilescu
<marius@ieval.ro>
Mon, 10 Feb 2014 09:23:17 +0000
(11:23 +0200)
lib/Gruntmaster/Daemon.pm
patch
|
blob
|
blame
|
history
lib/Gruntmaster/Daemon/Generator/File.pm
patch
|
blob
|
blame
|
history
lib/Gruntmaster/Daemon/Runner/File.pm
patch
|
blob
|
blame
|
history
selinux/gruntmasterd.fc
patch
|
blob
|
blame
|
history
selinux/gruntmasterd.te
patch
|
blob
|
blame
|
history
diff --git
a/lib/Gruntmaster/Daemon.pm
b/lib/Gruntmaster/Daemon.pm
index 7166a4238a5d4809ed0b2cf49d1584af48242fae..9a02adb4ca6ecc77ce843c63384082535284ec70 100644
(file)
--- a/
lib/Gruntmaster/Daemon.pm
+++ b/
lib/Gruntmaster/Daemon.pm
@@
-63,6
+63,7
@@
sub process{
my %files = exists $meta->{files} ? %{$meta->{files}} : ();
$meta = {
%$meta,
my %files = exists $meta->{files} ? %{$meta->{files}} : ();
$meta = {
%$meta,
+ problem => $_,
(defined problem_generator() ? (generator => problem_generator) : ()),
(defined problem_runner() ? (runner => problem_runner) : ()),
(defined problem_judge() ? (judge => problem_judge) : ()),
(defined problem_generator() ? (generator => problem_generator) : ()),
(defined problem_runner() ? (runner => problem_runner) : ()),
(defined problem_judge() ? (judge => problem_judge) : ()),
diff --git
a/lib/Gruntmaster/Daemon/Generator/File.pm
b/lib/Gruntmaster/Daemon/Generator/File.pm
index 601ea9968b6cb2ab70b2635016d17e33fde6b7da..fb1dc5e8d900ac2b32550a81abd7768b61aa0185 100644
(file)
--- a/
lib/Gruntmaster/Daemon/Generator/File.pm
+++ b/
lib/Gruntmaster/Daemon/Generator/File.pm
@@
-4,6
+4,7
@@
use 5.014000;
use strict;
use warnings;
use strict;
use warnings;
+use File::Copy qw/copy/;
use File::Slurp qw/write_file/;
use Log::Log4perl qw/get_logger/;
use File::Slurp qw/write_file/;
use Log::Log4perl qw/get_logger/;
@@
-14,7
+15,11
@@
our $VERSION = "5999.000_001";
sub generate{
my ($test, $meta) = @_;
get_logger->trace("Generating test $test ...");
sub generate{
my ($test, $meta) = @_;
get_logger->trace("Generating test $test ...");
- write_file 'input', $meta->{infile}[$test - 1]
+ if (exists $meta->{infile}) {
+ write_file 'input', $meta->{infile}[$test - 1]
+ } else {
+ copy "/var/lib/gruntmasterd/pb/$meta->{problem}/$test.in", 'input'
+ }
}
1;
}
1;
diff --git
a/lib/Gruntmaster/Daemon/Runner/File.pm
b/lib/Gruntmaster/Daemon/Runner/File.pm
index 6fc66c2b00631dc6b6207bbd22b9042f90f4d50a..34ea04d80558fb13b7d7d13f41a401c2a0c14d0d 100644
(file)
--- a/
lib/Gruntmaster/Daemon/Runner/File.pm
+++ b/
lib/Gruntmaster/Daemon/Runner/File.pm
@@
-17,7
+17,12
@@
sub run{
get_logger->trace("Running on test $test...");
$meta->{files}{prog}{run}->($meta->{files}{prog}{name}, fds => [qw/0 input 1 >output/], map {defined $meta->{$_} ? ($_ => $meta->{$_}) : () } qw/timeout olimit mlimit/);
my $out = slurp 'output';
get_logger->trace("Running on test $test...");
$meta->{files}{prog}{run}->($meta->{files}{prog}{name}, fds => [qw/0 input 1 >output/], map {defined $meta->{$_} ? ($_ => $meta->{$_}) : () } qw/timeout olimit mlimit/);
my $out = slurp 'output';
- my $ok = $meta->{okfile}[$test - 1];
+ my $ok;
+ if (exists $meta->{okfile}) {
+ $ok = $meta->{okfile}[$test - 1]
+ } else {
+ $ok = slurp "/var/lib/gruntmasterd/pb/$meta->{problem}/$test.ok"
+ }
$out =~ s/^\s+//;
$ok =~ s/^\s+//;
$out =~ s/^\s+//;
$ok =~ s/^\s+//;
diff --git
a/selinux/gruntmasterd.fc
b/selinux/gruntmasterd.fc
index f011981f7486e815024e4daa6d1d6ff68e811f39..f867ea4595935294ce031f96cf2b28c40496c371 100644
(file)
--- a/
selinux/gruntmasterd.fc
+++ b/
selinux/gruntmasterd.fc
@@
-3,4
+3,5
@@
/usr/(local/)?bin/gruntmaster-exec gen_context(system_u:object_r:gruntmaster_job_exec_t, s0)
/usr/(local/)?bin/gruntmaster-paged gen_context(system_u:object_r:gruntmaster_paged_exec_t, s0)
/etc/gruntmasterd(/.*)? gen_context(system_u:object_r:gruntmasterd_etc_t, s0)
/usr/(local/)?bin/gruntmaster-exec gen_context(system_u:object_r:gruntmaster_job_exec_t, s0)
/usr/(local/)?bin/gruntmaster-paged gen_context(system_u:object_r:gruntmaster_paged_exec_t, s0)
/etc/gruntmasterd(/.*)? gen_context(system_u:object_r:gruntmasterd_etc_t, s0)
+/var/lib/gruntmasterd(/.*)? gen_context(system_u:object_r:gruntmasterd_var_lib_t, s0)
/var/log/gruntmasterd gen_context(system_u:object_r:gruntmasterd_log_t, s0)
/var/log/gruntmasterd gen_context(system_u:object_r:gruntmasterd_log_t, s0)
diff --git
a/selinux/gruntmasterd.te
b/selinux/gruntmasterd.te
index ed878dae812ee0a9dc8016f435be89d130a320bb..9bcba33fd3c9a8b48c72bfea46ede7af3c9bcf21 100644
(file)
--- a/
selinux/gruntmasterd.te
+++ b/
selinux/gruntmasterd.te
@@
-26,6
+26,7
@@
type gruntmasterd_etc_t;
type gruntmasterd_exec_t;
type gruntmasterd_log_t;
type gruntmasterd_tmp_t;
type gruntmasterd_exec_t;
type gruntmasterd_log_t;
type gruntmasterd_tmp_t;
+type gruntmasterd_var_lib_t;
type gruntmaster_job_t;
type gruntmaster_job_exec_t;
type gruntmaster_compile_t;
type gruntmaster_job_t;
type gruntmaster_job_exec_t;
type gruntmaster_compile_t;
@@
-54,6
+55,7
@@
type_transition gruntmasterd_t gruntmaster_job_exec_t : process gruntmaster_job_
type_transition gruntmasterd_t tmp_t : dir gruntmasterd_tmp_t;
files_type(gruntmasterd_tmp_t)
files_type(gruntmasterd_etc_t)
type_transition gruntmasterd_t tmp_t : dir gruntmasterd_tmp_t;
files_type(gruntmasterd_tmp_t)
files_type(gruntmasterd_etc_t)
+files_type(gruntmasterd_var_lib_t)
# Daemon permissions
allow gruntmasterd_t { gruntmaster_compile_t gruntmaster_job_t } : process { sigkill siginh rlimitinh transition };
# Daemon permissions
allow gruntmasterd_t { gruntmaster_compile_t gruntmaster_job_t } : process { sigkill siginh rlimitinh transition };
@@
-71,6
+73,7
@@
allow gruntmasterd_t tmp_t : dir { getattr write search add_name };
gruntmaster_read(bin_t)
gruntmaster_read(gruntmaster_compile_exec_t)
gruntmaster_read(gruntmasterd_etc_t)
gruntmaster_read(bin_t)
gruntmaster_read(gruntmaster_compile_exec_t)
gruntmaster_read(gruntmasterd_etc_t)
+gruntmaster_read(gruntmasterd_var_lib_t)
gruntmaster_read(gruntmaster_job_exec_t)
gruntmaster_read(httpd_sys_content_t)
gruntmaster_read(lib_t)
gruntmaster_read(gruntmaster_job_exec_t)
gruntmaster_read(httpd_sys_content_t)
gruntmaster_read(lib_t)
This page took
0.014209 seconds
and
4
git commands to generate.