#!/usr/bin/perl -w
use strict;
use Pod::Usage;
use Getopt::Long;
use FindBin qw($Bin);
use lib "$Bin/../lib";
use MColPro::Util::TimeHelper;
use MColPro::SqlBase;
use MColPro::Exclude;
$|++;
=head1 SYNOPSIS
$exe -c cluster -t table -node node -t 10mins -u user
$exe -c cluster -t table -node node --free
$exe -c cluster -t table -u user
=cut
my ( $cluster, $table, $nodes, $time, $user, $unlock );
my %pod_param = ( -input => __FILE__, -output => \*STDERR );
GetOptions
(
"cluster=s" => \$cluster,
"table=s" => \$table,
"node=s" => \$nodes,
"user=s" => \$user,
"due=i" => \$time,
"free" => \$unlock,
) or Pod::Usage::pod2usage( %pod_param );
die Pod::Usage::pod2usage( %pod_param )
unless $cluster && $table;
$time = MColPro::Util::TimeHelper::rel2sec( $time ) if $time;
$nodes ||= 'ALL';
my $conf = MColPro::SqlBase::conf_check( "$Bin/../config.yaml" );
my $recorder = MColPro::Exclude->new( $conf );
unless ( $unlock )
{
die Pod::Usage::pod2usage( %pod_param ) unless $user;
$recorder->set
(
cluster => $cluster."[$table]",
node => $_,
expire => time + ( $time || 300 ),
user => $user
);
}
else
{
$recorder->delete( [ [ $cluster."[$table]", $_ ] ] );
}