From ff3515d2a2ed338a0db6648d9de52c0f30e2b411 Mon Sep 17 00:00:00 2001 From: vgilc Date: Mon, 8 Oct 2012 08:33:33 +0000 Subject: [PATCH] 2012-10-08 Vanessa Gil * util/tool_api.pl: Added: validate events using API. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7048 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f --- pandora_server/ChangeLog | 4 + pandora_server/util/tool_api.pl | 207 +++++++++++++++++++------------- 2 files changed, 125 insertions(+), 86 deletions(-) diff --git a/pandora_server/ChangeLog b/pandora_server/ChangeLog index 72e6d370db..fde3a960b2 100644 --- a/pandora_server/ChangeLog +++ b/pandora_server/ChangeLog @@ -1,3 +1,7 @@ +2012-10-08 Vanessa Gil + + * util/tool_api.pl: Added: validate events using API. + 2012-10-04 Junichi Satoh * lib/PandoraFMS/Core.pm: Fixed unexpected execution with monthly diff --git a/pandora_server/util/tool_api.pl b/pandora_server/util/tool_api.pl index 0cfade3447..bff2a51183 100644 --- a/pandora_server/util/tool_api.pl +++ b/pandora_server/util/tool_api.pl @@ -24,13 +24,24 @@ tool_api_main(); ############################################################################## sub help_screen{ - print "Usage: perl $0 -p -u -name -group -type [-agent ] [-user ] [-status ] [-am ] [-alert ] [-criticity ] [-comment ] [-tag ] [-source ] [-extra ] [-c_instructions ] [-w_instructions ] [-u_instructions ] [-owner ] \n\n"; + print "CREATE EVENT:\n\n"; + print "Usage: perl $0 -p -u -create_event -name -group -type [-agent ] [-user ] [-status ] [-am ] [-alert ] [-criticity ] [-comment ] [-tag ] [-source ] [-extra ] [-c_instructions ] [-w_instructions ] [-u_instructions ] [-owner ] \n\n"; print "Call syntax create_event: \n\t"; print ": Credentials of API and database separated by comma (required). In this order\n\t\t"; print ",,\n\n"; print "EXAMPLE: \n\t"; - print "perl tool_api.pl -p http://localhost/pandora_console/include/api.php -u 1234,admin,pandora -name \"Event name\" -group 2 -type \"system\" -agent 2 -user \"admin\" -status 0 -am 0 -alert 9 -criticity 3 -comment \"User comments\" -tag \"tags\" -source \"Pandora\" -extra 3 -c_instructions \"Critical instructions\" -w_instructions \"Warning instructions\" -u_instructions \"Unknown instructions\" -owner \"other\" "; + print "perl tool_api.pl -p http://localhost/pandora_console/include/api.php -u 1234,admin,pandora -create_event -name \"Event name\" -group 2 -type \"system\" -agent 2 -user \"admin\" -status 0 -am 0 -alert 9 -criticity 3 -comment \"User comments\" -tag \"tags\" -source \"Pandora\" -extra 3 -c_instructions \"Critical instructions\" -w_instructions \"Warning instructions\" -u_instructions \"Unknown instructions\" -owner \"other\" "; + print "\n\n\n"; + + print "VALIDATE EVENT\n\n"; + print "Usage: perl $0 -p -u -validate_event -id \n\n"; + print "Call syntax validate_event: \n\t"; + print ": Credentials of API and database separated by comma (required). In this order\n\t\t"; + print ",,\n\n"; + + print "EXAMPLE: \n\t"; + print "perl tool_api.pl -p http://localhost/pandora_console/include/api.php -u 1234,admin,pandora -validate_event -id 234"; print "\n\n\n"; exit; } @@ -44,10 +55,13 @@ sub tool_api_init () { print "This program is Free Software, licensed under the terms of GPL License v2\n"; print "You can download latest versions and documentation at http://www.pandorafms.org\n\n"; - # Load config file from command line - help_screen () if ($#ARGV < 0); + if ($#ARGV < 0) { + help_screen(); + } - help_screen () if (($ARGV[0] eq '-h') || ($ARGV[0] eq '-help')); + if (($ARGV[0] eq '-h') || ($ARGV[0] eq '-help')) { + help_screen(); + } } @@ -83,11 +97,14 @@ sub tool_api_main () { my $warning_instructions = ''; my $unknown_instructions = ''; my $owner_user = ''; - + my $id_event; + my $option = $ARGV[4]; + my $call_api; + #~ help or api path (required) if ($ARGV[0] eq '-h') { print "HELP!\n"; - help_screen (); + help_screen(); } elsif ($ARGV[0] ne '-p') { print "[ERROR] Missing API path! Read help info:\n\n"; help_screen (); @@ -102,7 +119,7 @@ sub tool_api_main () { if ($#db_info < 2) { print "[ERROR] Invalid database credentials! Read help info:\n\n"; - help_screen (); + help_screen(); } else { $api_pass = $db_info[0]; $db_user = $db_info[1]; @@ -113,81 +130,96 @@ sub tool_api_main () { help_screen (); } - #~ event name (required) - if ($ARGV[4] ne '-name') { - print "[ERROR] Missing event name! Read help info:\n\n"; - help_screen (); - } else { - $event_name = $ARGV[5]; - } - - #~ id group (required) - if ($ARGV[6] ne '-group') { - print "[ERROR] Missing event group! Read help info:\n\n"; - help_screen (); - } else { - $id_group = $ARGV[7]; - $data_event = $id_group; - } - - #~ id group (required) - if ($ARGV[8] ne '-type') { - print "[ERROR] Missing event type! Read help info:\n\n"; - help_screen (); - } else { - $event_type = $ARGV[9]; - $data_event .= ",".$event_type; - } + if ($ARGV[4] eq '-create_event') { + #~ event name (required) + if ($ARGV[5] ne '-name') { + print "[ERROR] Missing event name! Read help info:\n\n"; + help_screen (); + } else { + $event_name = $ARGV[6]; + } + + #~ id group (required) + if ($ARGV[7] ne '-group') { + print "[ERROR] Missing event group! Read help info:\n\n"; + help_screen (); + } else { + $id_group = $ARGV[8]; + $data_event = $id_group; + } + + #~ id group (required) + if ($ARGV[9] ne '-type') { + print "[ERROR] Missing event type! Read help info:\n\n"; + help_screen (); + } else { + $event_type = $ARGV[10]; + $data_event .= ",".$event_type; + } - my $i = 0; - foreach (@ARGV) { - my $line = $_; - if ($line eq '-agent') { - $id_agent = $ARGV[$i+1]; + my $i = 0; + foreach (@ARGV) { + my $line = $_; + if ($line eq '-agent') { + $id_agent = $ARGV[$i+1]; + } + if ($line eq '-user') { + $id_user = $ARGV[$i+1]; + } + if ($line eq '-status') { + $status = $ARGV[$i+1]; + } + if ($line eq '-am') { + $id_agent_module = $ARGV[$i+1]; + } + if ($line eq '-alert') { + $id_alert_am = $ARGV[$i+1]; + } + if ($line eq '-criticity') { + $criticity = $ARGV[$i+1]; + } + if ($line eq '-comment') { + $user_comment = $ARGV[$i+1]; + } + if ($line eq '-tag') { + $tags = $ARGV[$i+1]; + } + if ($line eq '-source') { + $source = $ARGV[$i+1]; + } + if ($line eq '-extra') { + $id_extra = $ARGV[$i+1]; + } + if ($line eq '-c_instructions') { + $critical_instructions = $ARGV[$i+1]; + } + if ($line eq '-w_instructions') { + $warning_instructions = $ARGV[$i+1]; + } + if ($line eq '-u_instructions') { + $unknown_instructions = $ARGV[$i+1]; + } + if ($line eq '-owner') { + $owner_user = $ARGV[$i+1]; + } + $i++; } - if ($line eq '-user') { - $id_user = $ARGV[$i+1]; - } - if ($line eq '-status') { - $status = $ARGV[$i+1]; - } - if ($line eq '-am') { - $id_agent_module = $ARGV[$i+1]; - } - if ($line eq '-alert') { - $id_alert_am = $ARGV[$i+1]; - } - if ($line eq '-criticity') { - $criticity = $ARGV[$i+1]; - } - if ($line eq '-comment') { - $user_comment = $ARGV[$i+1]; - } - if ($line eq '-tag') { - $tags = $ARGV[$i+1]; - } - if ($line eq '-source') { - $source = $ARGV[$i+1]; - } - if ($line eq '-extra') { - $id_extra = $ARGV[$i+1]; - } - if ($line eq '-c_instructions') { - $critical_instructions = $ARGV[$i+1]; - } - if ($line eq '-w_instructions') { - $warning_instructions = $ARGV[$i+1]; - } - if ($line eq '-u_instructions') { - $unknown_instructions = $ARGV[$i+1]; - } - if ($line eq '-owner') { - $owner_user = $ARGV[$i+1]; - } - $i++; - } - $data_event .= ",".$id_agent.",".$id_user.",".$status.",".$id_agent_module.",".$id_alert_am.",".$criticity.",".$user_comment.",".$tags.",".$source.",".$id_extra.",".$critical_instructions.",".$warning_instructions.",".$unknown_instructions.",".$owner_user; + $data_event .= ",".$id_agent.",".$id_user.",".$status.",".$id_agent_module.",".$id_alert_am.",".$criticity.",".$user_comment.",".$tags.",".$source.",".$id_extra.",".$critical_instructions.",".$warning_instructions.",".$unknown_instructions.",".$owner_user; + $call_api = $api_path.'?op=set&op2=create_event&id='.$event_name.'&other='.$data_event.'&other_mode=url_encode_separator_,&apipass='.$api_pass.'&user='.$db_user.'&pass='.$db_pass; + + } elsif ($ARGV[4] eq '-validate_event') { + #~ id event(required) + if ($ARGV[5] ne '-id') { + print "[ERROR] Missing id event! Read help info:\n\n"; + help_screen (); + } else { + $id_event = $ARGV[6]; + } + + $call_api = $api_path.'?op=set&op2=validate_event_by_id&id='.$id_event.'&apipass='.$api_pass.'&user='.$db_user.'&pass='.$db_pass; + } + my @args = @ARGV; my $ltotal=$#args; @@ -197,14 +229,17 @@ sub tool_api_main () { exit; } else { - my $call_api = $api_path.'?op=set&op2=create_event&id='.$event_name.'&other='.$data_event.'&other_mode=url_encode_separator_,&apipass='.$api_pass.'&user='.$db_user.'&pass='.$db_pass; my $content = get($call_api); - if ($content == undef) { - print "[ERROR] Not respond or bad syntax. Read help info:\n\n"; - help_screen(); - } else { - print "Event ID: $content"; + if ($option eq '-create_event') { + if ($content eq undef) { + print "[ERROR] Not respond or bad syntax. Read help info:\n\n"; + help_screen(); + } else { + print "Event ID: $content"; + } + } elsif ($option eq '-validate_event') { + print "[RESULT] $content"; } }