mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2024-12-26 13:29:05 +01:00
Update scripts
This commit is contained in:
parent
e27a3fda79
commit
90ae832c2e
71
jobTag.pl
71
jobTag.pl
@ -41,13 +41,20 @@ my $dbh = DBI->connect(
|
|||||||
"DBI:SQLite:dbname=$database", "", "", \%attr)
|
"DBI:SQLite:dbname=$database", "", "", \%attr)
|
||||||
or die "Could not connect to database: $DBI::errstr";
|
or die "Could not connect to database: $DBI::errstr";
|
||||||
|
|
||||||
my $sth_query_job = $dbh->prepare(qq{
|
my $sth_select_tagged_jobs = $dbh->prepare(qq{
|
||||||
SELECT j.*
|
SELECT j.*
|
||||||
FROM jobtag jt, job j, tag t
|
FROM job j
|
||||||
WHERE jt.tag_id=t.tag_id
|
JOIN jobtag jt ON j.id = jt.job_id
|
||||||
AND t.name=?
|
JOIN tag t ON jt.tag_id = t.id
|
||||||
AND j.id=jt.job_id
|
WHERE t.name = ?
|
||||||
GROUP BY j.id
|
});
|
||||||
|
|
||||||
|
my $sth_select_job_tags = $dbh->prepare(qq{
|
||||||
|
SELECT t.*
|
||||||
|
FROM tag t
|
||||||
|
JOIN jobtag jt ON t.id = jt.tag_id
|
||||||
|
JOIN job j ON jt.job_id = j.id
|
||||||
|
WHERE j.job_id = ?
|
||||||
});
|
});
|
||||||
|
|
||||||
my $sth_select_job = $dbh->prepare(qq{
|
my $sth_select_job = $dbh->prepare(qq{
|
||||||
@ -72,17 +79,63 @@ my $sth_job_add_tag = $dbh->prepare(qq{
|
|||||||
VALUES(?,?)
|
VALUES(?,?)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
my $sth_job_has_tag = $dbh->prepare(qq{
|
||||||
|
SELECT id FROM job
|
||||||
|
WHERE job_id=? AND tag_id=?
|
||||||
|
});
|
||||||
|
|
||||||
my $CMD = $ARGV[0];
|
my $CMD = $ARGV[0];
|
||||||
|
my $JOB_ID = $ARGV[1];
|
||||||
|
my $TAG_NAME = $ARGV[2];
|
||||||
|
|
||||||
|
my ($jid, $tid);
|
||||||
|
|
||||||
|
# check if job exists
|
||||||
|
my @row = $dbh->selectrow_array($sth_select_job, undef, $JOB_ID);
|
||||||
|
|
||||||
|
if ( @row ) {
|
||||||
|
$jid = $row[0];
|
||||||
|
} else {
|
||||||
|
die "Job does not exist: $JOB_ID!\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
# check if tag already exists
|
||||||
|
@row = $dbh->selectrow_array($sth_select_tag, undef, $TAG_NAME);
|
||||||
|
|
||||||
|
if ( @row ) {
|
||||||
|
$tid = $row[0];
|
||||||
|
} else {
|
||||||
|
print "Insert new tag: $TAG_NAME!\n";
|
||||||
|
|
||||||
|
$sth_insert_tag->execute('pathologic', $TAG_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
if ( $CMD eq 'ADD' ) {
|
if ( $CMD eq 'ADD' ) {
|
||||||
# body...
|
@row = $dbh->selectrow_array($sth_job_has_tag, undef, $jid, $tid);
|
||||||
|
if ( @row ) {
|
||||||
|
die "Job already tagged!\n";
|
||||||
|
} else {
|
||||||
|
print "Adding tag $TAG_NAME to job $JOB_ID!\n";
|
||||||
|
$sth_job_add_tag($jid, $tid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
elsif ( $CMD eq 'RM' ) {
|
elsif ( $CMD eq 'RM' ) {
|
||||||
# elsif...
|
# elsif...
|
||||||
}
|
}
|
||||||
elsif ( $CMD eq 'LS' ) {
|
elsif ( $CMD eq 'LST' ) {
|
||||||
|
$sth_select_job_tags->execute;
|
||||||
|
my ($id, $type, $name);
|
||||||
|
|
||||||
|
while(($id,$type,$name) = $sth->fetchrow()){
|
||||||
|
print("$id, $type, $name\n");
|
||||||
|
}
|
||||||
|
$sth_select_job_tags->finish();
|
||||||
|
}
|
||||||
|
elsif ( $CMD eq 'LSJ' ) {
|
||||||
# elsif...
|
# elsif...
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# else...
|
die "Unknown command: $CMD!\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$dbh->disconnect();
|
||||||
|
@ -31,42 +31,9 @@ use utf8;
|
|||||||
use File::Slurp;
|
use File::Slurp;
|
||||||
use Data::Dumper;
|
use Data::Dumper;
|
||||||
use JSON::MaybeXS qw(encode_json decode_json);
|
use JSON::MaybeXS qw(encode_json decode_json);
|
||||||
use DBI;
|
|
||||||
|
|
||||||
my $database = $ARGV[0];
|
my $basedir = $ARGV[0];
|
||||||
my $basedir = $ARGV[1];
|
my $basedir = './data';
|
||||||
|
|
||||||
my %attr = (
|
|
||||||
PrintError => 1,
|
|
||||||
RaiseError => 1
|
|
||||||
);
|
|
||||||
|
|
||||||
my $dbh = DBI->connect(
|
|
||||||
"DBI:SQLite:dbname=$database", "", "", \%attr)
|
|
||||||
or die "Could not connect to database: $DBI::errstr";
|
|
||||||
|
|
||||||
my $sth_select_job = $dbh->prepare(qq{
|
|
||||||
SELECT id, user_id, job_id, cluster_id,
|
|
||||||
start_time, stop_time, duration, num_nodes,
|
|
||||||
has_profile
|
|
||||||
FROM job
|
|
||||||
WHERE job_id=?
|
|
||||||
});
|
|
||||||
|
|
||||||
my $sth_update_job = $dbh->prepare(qq{
|
|
||||||
UPDATE job
|
|
||||||
SET has_profile = ?,
|
|
||||||
mem_used_max = ?,
|
|
||||||
flops_any_avg = ?,
|
|
||||||
mem_bw_avg = ?
|
|
||||||
WHERE id=?;
|
|
||||||
});
|
|
||||||
|
|
||||||
my $sth_select_tag = $dbh->prepare(qq{
|
|
||||||
SELECT id
|
|
||||||
FROM tag
|
|
||||||
WHERE tag_name=?
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
my ($TS, $TE);
|
my ($TS, $TE);
|
||||||
@ -81,16 +48,19 @@ $TS = time();
|
|||||||
while ( <$fh> ) {
|
while ( <$fh> ) {
|
||||||
|
|
||||||
my $line = $_;
|
my $line = $_;
|
||||||
my ($jobID, $path1, $path2) = split ' ', $line;
|
my ($jobID, $system) = split '.', $line;
|
||||||
$counter++;
|
$counter++;
|
||||||
|
|
||||||
my $json = read_file($jobDirectory.'/data.json');
|
# my $json = read_file($jobDirectory.'/data.json');
|
||||||
my $data = decode_json $json;
|
# my $data = decode_json $json;
|
||||||
$json = read_file($jobDirectory.'/meta.json');
|
my $json = read_file($jobDirectory.'/meta.json');
|
||||||
my $meta = decode_json $json;
|
my $meta = decode_json $json;
|
||||||
|
|
||||||
my @flopsAny = $data->{flops_any}->{series};
|
my $footprint = $meta->{statistics};
|
||||||
my @memBw = $data->{mem_bw}->{series};
|
|
||||||
|
if ( $footprint->{flops_any}->{max} < 2.0 and $footprint->{mem_bw}->{max} < 2.0 ){
|
||||||
|
print $fhn $jobID;
|
||||||
|
}
|
||||||
|
|
||||||
if ( $counter == 20 ) {
|
if ( $counter == 20 ) {
|
||||||
$TE = time();
|
$TE = time();
|
||||||
@ -100,6 +70,5 @@ while ( <$fh> ) {
|
|||||||
$TS = $TE;
|
$TS = $TE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$dbh->disconnect;
|
|
||||||
close $fh;
|
close $fh;
|
||||||
close $fhn;
|
close $fhn;
|
||||||
|
Loading…
Reference in New Issue
Block a user