/usr/lib/oar/oarnotify is in oar-server 2.5.4-2+deb8u1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | #!/usr/bin/perl
# $Id$
# notify Almighty
use strict;
use warnings;
use Data::Dumper;
use OAR::Conf qw(init_conf dump_conf get_conf is_conf);
use Getopt::Long;
use OAR::Version;
use OAR::Tools;
use OAR::IO;
my $Old_umask = sprintf("%lo",umask());
umask(oct("022"));
init_conf($ENV{OARCONFFILE});
my $remote_host = get_conf("SERVER_HOSTNAME");
my $remote_port = get_conf("SERVER_PORT");
Getopt::Long::Configure("gnu_getopt");
my $Version;
my @Enable_queue;
my @Disable_queue;
my @Add_queue;
my @Remove_queue;
my $Enable_all;
my $Disable_all;
my $List_queues;
my $sos;
GetOptions ("version|V" => \$Version,
"enable-queue|e=s" => \@Enable_queue,
"disable-queue|d=s" => \@Disable_queue,
"Enable-all-queues|E" => \$Enable_all,
"Disable-all-queues|D" => \$Disable_all,
"add-queue=s" => \@Add_queue,
"remove-queue=s" => \@Remove_queue,
"list-queues|l" => \$List_queues,
"help|h" => \$sos
) or exit(1);
# Display command help
sub usage {
print <<EOS;
Usage: $0 [-h] [-V] [-e str] [-d str] [-E] [-D] [--add-queue str] [--remove-queue]
[-l] [tag_to_Almighty]
Send a tag to Almighty and manage queues
Options:
-e, --enable-queue active an existing queue
-d, --disable-queue inactive an existing queue
-E, --Enable-all-queues active all queues
-D, --Disable-all-queues inactive all queues
--add-queue add a new queue; syntax is name,priority,scheduler
(ex: "name,3,oar-sched-gantt-with-timesharing")
--remove-queue remove an existing queue
-l, --list-queues list all queues and there status
-h, --help show this help screen
-V, --version print OAR version number
EOS
exit(1);
}
if (defined($sos)){
usage();
exit(0);
}
if (defined($Version)){
print("OAR version : ".OAR::Version::get_version()."\n");
exit(0);
}
my $base = OAR::IO::connect();
foreach my $q (@Add_queue){
my ($queue,$priority,$scheduler) = split(',',$q);
if (defined($queue)){
$priority = 0 if (!defined($priority));
$scheduler = "oar_sched_gantt_with_timesharing" if (!defined($scheduler));
print("Add queue $queue with the priority $priority and the scheduler $scheduler.\n");
OAR::IO::create_a_queue($base,$queue,$scheduler,$priority);
}
}
foreach my $q (@Remove_queue){
print("Remove queue $q.\n");
OAR::IO::delete_a_queue($base,$q);
}
foreach my $q (@Enable_queue){
print("Enable queue $q.\n");
OAR::IO::start_a_queue($base,$q);
}
foreach my $q (@Disable_queue){
print("Disable queue $q.\n");
OAR::IO::stop_a_queue($base,$q);
}
if (defined($Enable_all)){
OAR::IO::start_all_queues($base);
print("Enable all queues.\n");
}
if (defined($Disable_all)){
OAR::IO::stop_all_queues($base);
print("Disable all queues.\n");
}
if (defined($List_queues)){
my %queues = OAR::IO::get_all_queue_informations($base);
foreach my $q (keys(%queues)){
print("$q\n");
print("\tpriority = $queues{$q}->{priority}\n");
print("\tscheduler = $queues{$q}->{scheduler_policy}\n");
print("\tstate = $queues{$q}->{state}\n");
}
}
OAR::IO::disconnect($base);
my $tag = "Term";
if (defined($ARGV[0])){
$tag = $ARGV[0];
}
#print("tag = $tag\n");
OAR::Tools::notify_tcp_socket($remote_host,$remote_port,"$tag");
exit(0);
|