summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xserver/scireserver.pl44
1 files changed, 30 insertions, 14 deletions
diff --git a/server/scireserver.pl b/server/scireserver.pl
index 9329f5c..8e49ee7 100755
--- a/server/scireserver.pl
+++ b/server/scireserver.pl
@@ -7,6 +7,8 @@ use warnings;
use DBI;
use Data::Dumper;
use Digest::MD5 qw(md5 md5_hex );
+use File::Path;
+use XML::Dumper;
$| = 1;
@@ -198,21 +200,23 @@ sub identify_client {
}
sub get_jobs {
- my $status_id = shift;
+
+ #FIXME expand jobs for $client_id
+
my $query = <<'EndOfQuery';
SELECT jobs.jobid
- FROM jobs NATURAL JOIN jobs_clients NATURAL JOIN job_conditions NATURAL JOIN job_history
+ FROM jobs NATURAL JOIN jobs_clients NATURAL JOIN job_conditions
WHERE jobs_clients.clientid = ?
AND jobs.jobid = jobs_clients.jobid
AND (job_conditions.deploy_time < now())
- AND (job_conditions.expiration_time > now())
- AND (SELECT statusid FROM job_history WHERE jobid=jobs.jobid ORDER BY eventtime DESC LIMIT 1)=?
+ AND ((job_conditions.expiration_time > now()) OR (job_conditions.expiration_time IS NULL))
ORDER BY jobs.priority,jobs.created
EndOfQuery
+ #FIXME ADD JOB DEPENDENCIES TO THIS QUERY.
debug("Query is $query");
- $sth = $dbh->prepare($query);
- $sth->execute($client_id, $status_id);
+ my $sth = $dbh->prepare($query);
+ $sth->execute($client_id);
my $jobs_ref = $sth->fetchall_arrayref();
# Don't ask me...ask the guys in #perl :P
my @jobs = map { @$_ } @$jobs_ref;
@@ -224,19 +228,31 @@ sub get_job {
#Validate your inputs!
my $query = 'SELECT * FROM jobs LEFT JOIN job_conditions on (jobs.jobid) WHERE jobs.jobid = ?';
debug("Query is $query");
- #my $sth = $dbh->prepare($query);
- #$sth->execute($jobid);
- #my $job = $sth->fetchrow_hashref();
- #my $scriptid = $job{'script'};
+# my $sth = $dbh->prepare($query);
+# $sth->execute($jobid);
+# my $job = $sth->fetchrow_hashref();
+# my $scriptid = $job->{'script'};
$query = 'SELECT * FROM scripts WHERE scriptid=?';
debug("Query is $query");
- #$sth = $dbh->prepare($query);
- #$sth->execute($scriptid);
- #$job{'script'} = $sth->fetchrow_hashref();
+# $sth = $dbh->prepare($query);
+# $sth->execute($scriptid);
+# $job->{'script'} = $sth->fetchrow_hashref();
+# debug(Dumper($job));
#Write the job w/ all data to a jobfile with the following path /JOBDIR/CLIENT_ID/queue/JOBID.job
- my $filename = "$conf{job_dir}/$client_id/queue/$jobid.job";
+ my $path = "$conf{job_dir}/$client_id/queue";
+ my $filename = "$path/$jobid.job";
+# unless (-d $path) {
+# print "WARNING! $path does not exist...creating\n";
+# mkpath( $path, {verbose => 1, mode => 0660})
+# or die("Couldn't make $path w/ perms 0660: $!");
+# }
+# open(FH, ">$filename") or die("Couldn't open $filename: $!");
+# my $xml = pl2xml( $job );
+# print FH $xml."\n";
+# close(FH) or die("Couldn't close $filename : $!");
+ debug("OK $filename\n");
return "OK $filename\n";
}