2014-05-03 Junichi Satoh <junichi@rworks.jp>
* util/pandora_manage.pl: Added new CLI functions to manage special days. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@9845 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
f84185038e
commit
639be297cc
|
@ -1,3 +1,8 @@
|
|||
2014-05-03 Junichi Satoh <junichi@rworks.jp>
|
||||
|
||||
* util/pandora_manage.pl: Added new CLI functions to manage special
|
||||
days.
|
||||
|
||||
2014-04-27 Junichi Satoh <junichi@rworks.jp>
|
||||
|
||||
* util/recon_scripts/snmp-recon.pl: Added support for FreeBSD.
|
||||
|
|
|
@ -19,6 +19,7 @@ use HTML::Entities; # Encode or decode strings with HTML entities
|
|||
use File::Basename;
|
||||
use JSON qw(encode_json);
|
||||
use MIME::Base64;
|
||||
use Encode qw(decode);
|
||||
|
||||
# Default lib dir for RPM and DEB packages
|
||||
use lib '/usr/lib/perl5';
|
||||
|
@ -124,6 +125,10 @@ sub help_screen{
|
|||
help_screen_line('--delete_alert_template', '<template_name>', 'Delete alert template');
|
||||
help_screen_line('--update_alert_template', "<template_name> <field_to_change> \n\t <new_value>", 'Update a field of an alert template');
|
||||
help_screen_line('--validate_all_alerts', '', 'Validate all the alerts');
|
||||
help_screen_line('--create_special_day', "<special_day> <same_day> <description> <group>", 'Create special day');
|
||||
help_screen_line('--delete_special_day', '<special_day>', 'Delete special day');
|
||||
help_screen_line('--update_special_day', "<special_day> <field_to_change> <new_value>", 'Update a field of a special day');
|
||||
|
||||
print "\nUSERS:\n\n" unless $param ne '';
|
||||
help_screen_line('--create_user', '<user_name> <user_password> <is_admin> [<comments>]', 'Create user');
|
||||
help_screen_line('--delete_user', '<user_name>', 'Delete user');
|
||||
|
@ -584,6 +589,59 @@ sub pandora_get_planned_downtime_id ($$) {
|
|||
return defined ($downtime_id) ? $downtime_id : -1;
|
||||
}
|
||||
|
||||
##########################################################################
|
||||
## Create a special day from hash
|
||||
##########################################################################
|
||||
sub pandora_create_special_day_from_hash ($$$) {
|
||||
my ($pa_config, $parameters, $dbh) = @_;
|
||||
|
||||
logger($pa_config, "Creating special_day '$parameters->{'date'}'", 10);
|
||||
|
||||
my $template_id = db_process_insert($dbh, 'id', 'talert_special_days', $parameters);
|
||||
|
||||
return $template_id;
|
||||
}
|
||||
|
||||
##########################################################################
|
||||
## Update a special day from hash
|
||||
##########################################################################
|
||||
sub pandora_update_special_day_from_hash ($$$$) {
|
||||
my ($parameters, $where_column, $where_value, $dbh) = @_;
|
||||
|
||||
my $special_day_id = db_process_update($dbh, 'talert_special_days', $parameters, $where_column, $where_value);
|
||||
return $special_day_id;
|
||||
}
|
||||
|
||||
##########################################################################
|
||||
## SUB get_special_day_id(id)
|
||||
## Return the special day id, given "special_day"
|
||||
##########################################################################
|
||||
sub pandora_get_special_day_id ($$) {
|
||||
my ($dbh, $special_day) = @_;
|
||||
|
||||
my $special_day_id = get_db_value ($dbh, "SELECT id FROM talert_special_days WHERE date = ?", safe_input($special_day));
|
||||
|
||||
return defined ($special_day_id) ? $special_day_id : -1;
|
||||
}
|
||||
|
||||
##########################################################################
|
||||
## Delete a special day.
|
||||
##########################################################################
|
||||
sub pandora_delete_special_day ($$) {
|
||||
my ($dbh, $date) = @_;
|
||||
|
||||
# Delete the special_day
|
||||
my $return = db_do ($dbh, 'DELETE FROM talert_special_days WHERE date = ?', safe_input($date));
|
||||
|
||||
if($return eq '0E0') {
|
||||
return -1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
# PRINT HELP AND CHECK ERRORS FUNCTIONS
|
||||
|
@ -3353,6 +3411,118 @@ sub pandora_get_network_component_id($$) {
|
|||
return defined ($nc_id) ? $nc_id : -1;
|
||||
}
|
||||
|
||||
##############################################################################
|
||||
# Create special day
|
||||
# Related option: --create_special_day
|
||||
##############################################################################
|
||||
|
||||
sub cli_create_special_day() {
|
||||
my ($special_day, $same_day, $description, $group_name) = @ARGV[2..5];
|
||||
my $special_day_exists = pandora_get_special_day_id ($dbh, $special_day);
|
||||
non_exist_check($special_day_exists,'special day',$special_day);
|
||||
|
||||
my $group_id = 0;
|
||||
|
||||
# If group name is not defined, we assign group All (0)
|
||||
if(defined($group_name)) {
|
||||
$group_id = get_group_id($dbh, decode('UTF-8', $group_name));
|
||||
exist_check($group_id,'group',$group_name);
|
||||
}
|
||||
else {
|
||||
$group_name = 'All';
|
||||
}
|
||||
|
||||
if ($special_day !~ /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/) {
|
||||
print_log "[ERROR] '$special_day' is invalid date format.\n\n";
|
||||
$param = '--create_special_day';
|
||||
help_screen ();
|
||||
exit 1;
|
||||
}
|
||||
if ($same_day !~ /monday|tuesday|wednesday|thursday|friday|saturday|sunday/) {
|
||||
print_log "[ERROR] '$same_day' is invalid day.\n\n";
|
||||
$param = '--create_special_day';
|
||||
help_screen ();
|
||||
exit 1;
|
||||
}
|
||||
|
||||
my %parameters;
|
||||
|
||||
$parameters{'date'} = $special_day;
|
||||
$parameters{'same_day'} = $same_day;
|
||||
$parameters{'description'} = decode('UTF-8', $description);
|
||||
$parameters{'id_group'} = $group_id;
|
||||
|
||||
pandora_create_special_day_from_hash ($conf, \%parameters, $dbh);
|
||||
}
|
||||
|
||||
##############################################################################
|
||||
# Update a special day.
|
||||
# Related option: --update_special_day
|
||||
##############################################################################
|
||||
|
||||
sub cli_update_special_day() {
|
||||
my ($special_day,$field,$new_value) = @ARGV[2..4];
|
||||
|
||||
my $special_day_id = pandora_get_special_day_id ($dbh, $special_day);
|
||||
exist_check($special_day_id,'special day',$special_day);
|
||||
|
||||
if($field eq 'date') {
|
||||
if ($new_value !~ /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/) {
|
||||
print_log "[ERROR] '$new_value' is invalid date format.\n\n";
|
||||
$param = '--update_special_day';
|
||||
help_screen ();
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
elsif($field eq 'same_day') {
|
||||
if ($new_value !~ /monday|tuesday|wednesday|thursday|friday|saturday|sunday/) {
|
||||
print_log "[ERROR] '$new_value' is invalid day.\n\n";
|
||||
$param = '--update_special_day';
|
||||
help_screen ();
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
elsif($field eq 'description') {
|
||||
$new_value = decode('UTF-8', $new_value);
|
||||
}
|
||||
elsif($field eq 'group') {
|
||||
my $group_id = 0;
|
||||
|
||||
$group_id = get_group_id($dbh, decode('UTF-8', $new_value));
|
||||
exist_check($group_id,'group',$new_value);
|
||||
|
||||
$new_value = $group_id;
|
||||
$field = 'id_group';
|
||||
}
|
||||
else {
|
||||
print_log "[ERROR] Field '$field' doesnt exist\n\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
print_log "[INFO] Updating field '$field' in special day '$special_day'\n\n";
|
||||
|
||||
my $update;
|
||||
|
||||
$update->{$field} = $new_value;
|
||||
|
||||
pandora_update_special_day_from_hash ($update, 'id', $special_day_id, $dbh);
|
||||
}
|
||||
|
||||
##############################################################################
|
||||
# Delete a special_day.
|
||||
# Related option: --delete_special_day
|
||||
##############################################################################
|
||||
|
||||
sub cli_delete_special_day() {
|
||||
my $special_day = @ARGV[2];
|
||||
|
||||
print_log "[INFO] Deleting special day '$special_day' \n\n";
|
||||
|
||||
my $result = pandora_delete_special_day($dbh,$special_day);
|
||||
exist_check($result,'special day',$special_day);
|
||||
}
|
||||
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
# MAIN
|
||||
|
@ -3659,6 +3829,18 @@ sub pandora_manage_main ($$$) {
|
|||
param_check($ltotal, 3);
|
||||
cli_delete_modules_to_graph();
|
||||
}
|
||||
elsif ($param eq '--create_special_day') {
|
||||
param_check($ltotal, 4);
|
||||
cli_create_special_day();
|
||||
}
|
||||
elsif ($param eq '--update_special_day') {
|
||||
param_check($ltotal, 3);
|
||||
cli_update_special_day();
|
||||
}
|
||||
elsif ($param eq '--delete_special_day') {
|
||||
param_check($ltotal, 1);
|
||||
cli_delete_special_day();
|
||||
}
|
||||
else {
|
||||
print_log "[ERROR] Invalid option '$param'.\n\n";
|
||||
$param = '';
|
||||
|
|
Loading…
Reference in New Issue