MATCH => " ~ ",
STARTTIME_DAY => " date_trunc('day', Job.StartTime) ",
STARTTIME_HOUR => " date_trunc('hour', Job.StartTime) ",
+ STARTTIME_MONTH => " date_trunc('month', Job.StartTime) ",
STARTTIME_PHOUR=> " date_part('hour', Job.StartTime) ",
STARTTIME_PDAY => " date_part('day', Job.StartTime) ",
+ STARTTIME_PMONTH => " date_part('month', Job.StartTime) ",
},
mysql => {
UNIX_TIMESTAMP => 'UNIX_TIMESTAMP',
MATCH => " REGEXP ",
STARTTIME_DAY => " DATE_FORMAT(StartTime, '%Y-%m-%d') ",
STARTTIME_HOUR => " DATE_FORMAT(StartTime, '%Y-%m-%d %H') ",
+ STARTTIME_MONTH => " DATE_FORMAT(StartTime, '%Y-%m') ",
STARTTIME_PHOUR=> " DATE_FORMAT(StartTime, '%H') ",
STARTTIME_PDAY => " DATE_FORMAT(StartTime, '%d') ",
+ STARTTIME_PMONTH => " DATE_FORMAT(StartTime, '%m') ",
},
);
type => 1,
);
my %opt_p = ( # option with path
+ fileset=> 1,
mtxcmd => 1,
precmd => 1,
device => 1,
$ret{db_filesets} = [sort {lc($a->{fileset}) cmp lc($b->{fileset}) }
values %$filesets] ;
-
}
if ($what{db_jobnames}) {
$ret{db_jobnames} = [sort {lc($a->{jobname}) cmp lc($b->{jobname}) }
values %$jobnames] ;
-
}
if ($what{db_devices}) {
$ret{db_devices} = [sort {lc($a->{name}) cmp lc($b->{name}) }
values %$devices] ;
-
}
return \%ret;
{
my ($self) = @_;
- my $fields = $self->get_form(qw/age level status clients filesets graph gtype type
- db_clients limit db_filesets width height
- qclients qfilesets qjobnames db_jobnames/);
+ my $fields = $self->get_form(qw/age level status clients filesets
+ graph gtype type
+ db_clients limit db_filesets width height
+ qclients qfilesets qjobnames db_jobnames/);
my $url = CGI::url(-full => 0,
$ach->{drives} =
[ map { { name => $_, index => $i++ } } @{$ach->{drive_name}} ] ;
- my $b = new Bconsole(pref => $self->{info});
+ my $b = $self->get_bconsole();
+
my @storages = $b->list_storage() ;
$ach->{devices} = [ map { { name => $_ } } @storages ];
my ($self) = @_;
my $arg = $self->get_form('ach', 'mtxcmd', 'device', 'precmd');
- my $b = new Bconsole(pref => $self->{info});
+ my $b = $self->get_bconsole();
my @storages = $b->list_storage() ;
unless ($arg->{ach}) {
my ($self) = @_;
my $arg = $self->get_form('jobid');
- my $b = new Bconsole(pref => $self->{info});
-
if ($arg->{jobid}) {
+ my $b = $self->get_bconsole();
my $ret = $b->send_cmd("delete jobid=\"$arg->{jobid}\"");
+
$self->display({
content => $b->send_cmd("delete jobid=\"$arg->{jobid}\""),
title => "Delete a job ",
return $self->error("Bad autochanger name");
}
- my $b = new Bconsole(pref => $self->{info});
+ my $b = $self->get_bconsole();
print "<pre>" . $b->update_slots($ach) . "</pre>";
}
pool => 'Scratch',
slots => $slots) ;
print "</pre>";
+ $b->close();
}
sub purge
my @volume = CGI::param('media');
+ unless (@volume) {
+ return $self->error("Can't get media selection");
+ }
+
my $b = new Bconsole(pref => $self->{info}, timeout => 60);
$self->display({
title => "Purge media",
name => "purge volume=" . join(' volume=', @volume),
}, "command.tpl");
+ $b->close();
}
sub prune
{
my ($self) = @_;
+ my @volume = CGI::param('media');
+ unless (@volume) {
+ return $self->error("Can't get media selection");
+ }
+
my $b = new Bconsole(pref => $self->{info}, timeout => 60);
- my @volume = CGI::param('media');
$self->display({
content => $b->prune_volume(@volume),
title => "Prune media",
name => "prune volume=" . join(' volume=', @volume),
}, "command.tpl");
+
+ $b->close();
}
sub cancel_job
my $arg = $self->get_form('jobid');
unless ($arg->{jobid}) {
- return $self->error('Bad jobid');
+ return $self->error("Can't get jobid");
}
- my $b = new Bconsole(pref => $self->{info});
+ my $b = $self->get_bconsole();
$self->display({
content => $b->cancel($arg->{jobid}),
title => "Cancel job",
}, "command.tpl");
}
+sub fileset_view
+{
+ # Warning, we display current fileset
+ my ($self) = @_;
+
+ my $arg = $self->get_form('fileset');
+
+ if ($arg->{fileset}) {
+ my $b = $self->get_bconsole();
+ my $ret = $b->get_fileset($arg->{fileset});
+ $self->display({ fileset => $arg->{fileset},
+ %$ret,
+ }, "fileset_view.tpl");
+ } else {
+ $self->error("Can't get fileset name");
+ }
+}
+
sub director_show_sched
{
my ($self) = @_ ;
my $arg = $self->get_form('days');
- my $b = new Bconsole(pref => $self->{info}) ;
-
+ my $b = $self->get_bconsole();
my $ret = $b->director_get_sched( $arg->{days} );
$self->display({
return $self->error("Can't find job name");
}
- my $b = new Bconsole(pref => $self->{info}) ;
+ my $b = $self->get_bconsole();
my $cmd;
if ($what) {
}, "command.tpl");
}
+sub get_bconsole
+{
+ my ($self) = @_;
+ return new Bconsole(pref => $self->{info});
+}
+
sub run_job_select
{
my ($self) = @_;
- $b = new Bconsole(pref => $self->{info});
+ my $b = $self->get_bconsole();
my $joblist = [ map { { name => $_ } } $b->list_job() ];
sub run_job_mod
{
my ($self) = @_;
- $b = new Bconsole(pref => $self->{info});
+ my $b = $self->get_bconsole();
my $job = CGI::param('job') || '';
sub run_job
{
my ($self) = @_;
- $b = new Bconsole(pref => $self->{info});
+ my $b = $self->get_bconsole();
my $jobs = [ map {{ name => $_ }} $b->list_job() ];
sub run_job_now
{
my ($self) = @_;
- $b = new Bconsole(pref => $self->{info});
+ my $b = $self->get_bconsole();
# TODO: check input (don't use pool, level)