From fda3960aa43ddd038bf3d0e655e8fe5420cb19a5 Mon Sep 17 00:00:00 2001 From: vgilc Date: Mon, 31 Mar 2014 15:00:16 +0000 Subject: [PATCH] 2014-03-31 Vanessa Gil * pandoradb.oracle.sql pandoradb.postgreSQL.sql pandoradb.sql extras/pandoradb_migrate_5.0_to_5.1.mysql.sql extras/pandoradb_migrate_5.0_to_5.1.oracle.sql extras/pandoradb_migrate_5.0_to_5.1.postgreSQL.sql godmode/snmpconsole/snmp_alert.php: Add more actions to snmp alerts. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@9685 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f --- pandora_console/ChangeLog | 11 ++ .../pandoradb_migrate_5.0.x_to_5.1.mysql.sql | 20 ++ .../pandoradb_migrate_5.0.x_to_5.1.oracle.sql | 19 ++ ...doradb_migrate_5.0.x_to_5.1.postgreSQL.sql | 21 ++- .../godmode/snmpconsole/snmp_alert.php | 172 +++++++++++++++--- pandora_console/pandoradb.oracle.sql | 19 ++ pandora_console/pandoradb.postgreSQL.sql | 18 ++ pandora_console/pandoradb.sql | 20 ++ 8 files changed, 269 insertions(+), 31 deletions(-) diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog index 263d7a46f8..9f9dd21c6b 100644 --- a/pandora_console/ChangeLog +++ b/pandora_console/ChangeLog @@ -1,3 +1,14 @@ +2014-03-31 Vanessa Gil + + * pandoradb.oracle.sql + pandoradb.postgreSQL.sql + pandoradb.sql + extras/pandoradb_migrate_5.0_to_5.1.mysql.sql + extras/pandoradb_migrate_5.0_to_5.1.oracle.sql + extras/pandoradb_migrate_5.0_to_5.1.postgreSQL.sql + godmode/snmpconsole/snmp_alert.php: Add more actions + to snmp alerts. + 2014-03-31 Miguel de Dios * godmode/servers/plugin.php: fixed the plugins server without diff --git a/pandora_console/extras/pandoradb_migrate_5.0.x_to_5.1.mysql.sql b/pandora_console/extras/pandoradb_migrate_5.0.x_to_5.1.mysql.sql index 9daf54ffc5..754f2382dd 100644 --- a/pandora_console/extras/pandoradb_migrate_5.0.x_to_5.1.mysql.sql +++ b/pandora_console/extras/pandoradb_migrate_5.0.x_to_5.1.mysql.sql @@ -108,3 +108,23 @@ ALTER TABLE `talert_snmp` ADD COLUMN `order_17` int(10) unsigned NOT NULL defaul ALTER TABLE `talert_snmp` ADD COLUMN `order_18` int(10) unsigned NOT NULL default 18; ALTER TABLE `talert_snmp` ADD COLUMN `order_19` int(10) unsigned NOT NULL default 19; ALTER TABLE `talert_snmp` ADD COLUMN `order_20` int(10) unsigned NOT NULL default 20; + +-- --------------------------------------------------------------------- +-- Table `talert_snmp_action` +-- --------------------------------------------------------------------- +CREATE TABLE IF NOT EXISTS `talert_snmp_action` ( + `id` int(10) unsigned NOT NULL auto_increment, + `id_alert_snmp` int(10) unsigned NOT NULL default '0', + `alert_type` int(2) unsigned NOT NULL default '0', + `al_field1` text NOT NULL, + `al_field2` text NOT NULL, + `al_field3` text NOT NULL, + `al_field4` text NOT NULL, + `al_field5` text NOT NULL, + `al_field6` text NOT NULL, + `al_field7` text NOT NULL, + `al_field8` text NOT NULL, + `al_field9` text NOT NULL, + `al_field10` text NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/pandora_console/extras/pandoradb_migrate_5.0.x_to_5.1.oracle.sql b/pandora_console/extras/pandoradb_migrate_5.0.x_to_5.1.oracle.sql index cc2c58876c..ae9685b663 100644 --- a/pandora_console/extras/pandoradb_migrate_5.0.x_to_5.1.oracle.sql +++ b/pandora_console/extras/pandoradb_migrate_5.0.x_to_5.1.oracle.sql @@ -98,3 +98,22 @@ ALTER TABLE talert_snmp ADD (order_17 NUMBER(10, 0) default 17 NOT NULL); ALTER TABLE talert_snmp ADD (order_18 NUMBER(10, 0) default 18 NOT NULL); ALTER TABLE talert_snmp ADD (order_19 NUMBER(10, 0) default 19 NOT NULL); ALTER TABLE talert_snmp ADD (order_20 NUMBER(10, 0) default 20 NOT NULL); + +-- --------------------------------------------------------------------- +-- Table talert_snmp_action +-- --------------------------------------------------------------------- +CREATE TABLE talert_snmp_action ( + id NUMBER(10, 0) NOT NULL PRIMARY KEY, + id_alert_snmp NUMBER(10, 0) NOT NULL default 0, + alert_type NUMBER(2, 0) NOT NULL default 0, + al_field1 CLOB default '' NOT NULL, + al_field2 CLOB default '' NOT NULL, + al_field3 CLOB default '' NOT NULL, + al_field4 CLOB default '' NOT NULL, + al_field5 CLOB default '' NOT NULL, + al_field6 CLOB default '' NOT NULL, + al_field7 CLOB default '' NOT NULL, + al_field8 CLOB default '' NOT NULL, + al_field9 CLOB default '' NOT NULL, + al_field10 CLOB default '' NOT NULL +); diff --git a/pandora_console/extras/pandoradb_migrate_5.0.x_to_5.1.postgreSQL.sql b/pandora_console/extras/pandoradb_migrate_5.0.x_to_5.1.postgreSQL.sql index 4316938277..4d5d4be9f1 100644 --- a/pandora_console/extras/pandoradb_migrate_5.0.x_to_5.1.postgreSQL.sql +++ b/pandora_console/extras/pandoradb_migrate_5.0.x_to_5.1.postgreSQL.sql @@ -70,4 +70,23 @@ ALTER TABLE "tnetwork_map" ADD COLUMN "l2_network" SMALLINT NOT NULL default 0; -- --------------------------------------------------------------------- -- Table `tlayout_data` -- --------------------------------------------------------------------- -ALTER TABLE "tlayout_data" ADD COLUMN "id_group" INTEGER NOT NULL default 0; \ No newline at end of file +ALTER TABLE "tlayout_data" ADD COLUMN "id_group" INTEGER NOT NULL default 0; + +-- --------------------------------------------------------------------- +-- Table talert_snmp_action +-- --------------------------------------------------------------------- +CREATE TABLE "talert_snmp_action" ( + "id" SERIAL NOT NULL PRIMARY KEY, + "id_alert_snmp" INTEGER default 0, + "alert_type" INTEGER default 0, + "al_field1" TEXT default '', + "al_field2" TEXT default '', + "al_field3" TEXT default '', + "al_field4" TEXT default '', + "al_field5" TEXT default '', + "al_field6" TEXT default '', + "al_field7" TEXT default '', + "al_field8" TEXT default '', + "al_field9" TEXT default '', + "al_field10" TEXT default '' +); diff --git a/pandora_console/godmode/snmpconsole/snmp_alert.php b/pandora_console/godmode/snmpconsole/snmp_alert.php index 41151f7e8b..15172f14ab 100644 --- a/pandora_console/godmode/snmpconsole/snmp_alert.php +++ b/pandora_console/godmode/snmpconsole/snmp_alert.php @@ -41,6 +41,32 @@ $save_alert = (bool)get_parameter('save_alert', false); $modify_alert = (bool)get_parameter('modify_alert', false); $delete_alert = (bool)get_parameter('delete_alert', false); $multiple_delete = (bool)get_parameter('multiple_delete', false); +$add_action = get_parameter('addbutton', ''); +$delete_action = get_parameter('delete_action', 0); + +if ($add_action == "Add") { + $values['id_alert_snmp'] = get_parameter('id_alert_snmp'); + $values['alert_type'] = get_parameter('alert_type'); + $values['al_field1'] = get_parameter('field1_value'); + $values['al_field2'] = get_parameter('field2_value'); + $values['al_field3'] = get_parameter('field3_value'); + $values['al_field4'] = get_parameter('field4_value'); + $values['al_field5'] = get_parameter('field5_value'); + $values['al_field6'] = get_parameter('field6_value'); + $values['al_field7'] = get_parameter('field7_value'); + $values['al_field8'] = get_parameter('field8_value'); + $values['al_field9'] = get_parameter('field9_value'); + $values['al_field10'] = get_parameter('field10_value'); + + $result = db_process_sql_insert('talert_snmp_action', $values); +} + +if ($delete_action) { + + $action_id = get_parameter('action_id'); + + $result = db_process_sql_delete('talert_snmp_action', array('id'=>$action_id)); +} if ($update_alert || $modify_alert) { ui_print_page_header(__('SNMP Console')." » ".__('Update alert'), @@ -722,22 +748,12 @@ if ($create_alert || $update_alert) { // Hidden div with help hint to fill with javascript html_print_div(array('id' => 'help_snmp_alert_hint', 'content' => ui_print_help_icon ("snmp_alert_field1", true), 'hidden' => true)); -/* for ($i = 1; $i <= 10; $i++) { echo ''.html_print_image('images/spinner.gif',true); echo '' . html_print_image('images/spinner.gif',true); html_print_input_hidden('field'.$i.'_value', isset($al['al_field'.$i]) ? $al['al_field'.$i] : ''); echo ''; } -*/ - for ($i = 1; $i <= 10; $i++) { - echo ''; - //echo ''.html_print_image('images/spinner.gif',true).''; - //echo '' . html_print_image('images/spinner.gif',true).''; - //html_print_input_hidden('field'.$i.'_value', isset($al['al_field'.$i]) ? $al['al_field'.$i] : ''); - //echo ''; - echo ''; - } // Max / Min alerts echo '' . __('Min. number of alerts').''; @@ -777,16 +793,6 @@ if ($create_alert || $update_alert) { // Alert type (e-mail, event etc.) echo ''.__('Alert action').''; - $fields = array (); - $result = db_get_all_rows_in_table ('talert_actions', "name"); - if ($result === false) { - $result = array (); - } - - foreach ($result as $row) { - $fields[$row["id"]] = $row["name"]; - } - switch ($config['dbtype']) { case "mysql": case "postgresql": @@ -961,7 +967,7 @@ else { $table->align[7] = 'center'; $table->head[8] = __('Action'); - $table->size[8] = "80px"; + $table->size[8] = "90px"; $table->align[8] = 'center'; $table->head[9] = html_print_checkbox ("all_delete_box", "1", false, true); @@ -977,9 +983,24 @@ else { "sec2=godmode/snmpconsole/snmp_alert&" . "id_alert_snmp=" . $row["id_as"] ."&" . "update_alert=1"; - - $data[1] = '' . + $data[1] = ''; + $data[1] .= ''; + $data[1] .= '' . alerts_get_alert_action_name ($row["id_alert"]) . ''; + $other_actions = db_get_all_rows_filter('talert_snmp_action', array('id_alert_snmp'=>$row['id_as'])); + $data[1] .= ''; + + if ($other_actions != false) { + foreach ($other_actions as $action) { + $data[1] .= ''; + $data[1] .= ''; + $data[1] .= ''; + $data[1] .= ''; + } + } + $data[1] .= '
'. alerts_get_alert_action_name ($action["alert_type"]).' ' . + html_print_image("images/cross.png", true, array("border" => '0', "alt" => __('Delete'))) . '
'; + $data[2] = $row["agent"]; $data[3] = $row["oid"]; $data[4] = $row["custom_oid"]; @@ -999,9 +1020,13 @@ else { 'update_alert=1&'. 'id_alert_snmp='.$row["id_as"].'">' . html_print_image("images/config.png", true, array("border" => '0', "alt" => __('Update'))) . '' . - '  ' . + '' . + html_print_image('images/add.png', true, array('title' => __("Add action"))) . + '' . + '' . html_print_image("images/cross.png", true, array("border" => '0', "alt" => __('Delete'))) . ''; - + + $data[9] = html_print_checkbox_extended("delete_ids[]", $row['id_as'], false, false, false, 'class="chk_delete"', true); @@ -1011,6 +1036,74 @@ else { $table->rowclass[$idx] = get_priority_class ($row["priority"]); } + # DIALOG ADD MORE ACTIONS + echo ''; + # END DIALOG ADD MORE ACTIONS + + if (!empty ($table->data)) { echo '
'; html_print_table ($table); @@ -1040,6 +1133,7 @@ else { unset ($table); } + ?> diff --git a/pandora_console/pandoradb.oracle.sql b/pandora_console/pandoradb.oracle.sql index 7e5afd596e..b8d277e87d 100644 --- a/pandora_console/pandoradb.oracle.sql +++ b/pandora_console/pandoradb.oracle.sql @@ -1881,3 +1881,22 @@ CREATE SEQUENCE tupdate_journal_s INCREMENT BY 1 START WITH 1; CREATE OR REPLACE TRIGGER tupdate_journal_inc BEFORE INSERT ON tupdate_journal REFERENCING NEW AS NEW FOR EACH ROW BEGIN SELECT tupdate_journal_s.nextval INTO :NEW.ID FROM dual; END;; CREATE OR REPLACE TRIGGER tupdate_journal_update AFTER UPDATE OF ID ON tupdate FOR EACH ROW BEGIN UPDATE tupdate_journal SET ID = :NEW.ID WHERE ID = :OLD.ID; END;; + +-- --------------------------------------------------------------------- +-- Table talert_snmp_action +-- --------------------------------------------------------------------- +CREATE TABLE talert_snmp_action ( + id NUMBER(10, 0) NOT NULL PRIMARY KEY, + id_alert_snmp NUMBER(10, 0) NOT NULL default 0, + alert_type NUMBER(2, 0) NOT NULL default 0, + al_field1 CLOB default '' NOT NULL, + al_field2 CLOB default '' NOT NULL, + al_field3 CLOB default '' NOT NULL, + al_field4 CLOB default '' NOT NULL, + al_field5 CLOB default '' NOT NULL, + al_field6 CLOB default '' NOT NULL, + al_field7 CLOB default '' NOT NULL, + al_field8 CLOB default '' NOT NULL, + al_field9 CLOB default '' NOT NULL, + al_field10 CLOB default '' NOT NULL +); diff --git a/pandora_console/pandoradb.postgreSQL.sql b/pandora_console/pandoradb.postgreSQL.sql index 1f8d8da458..ed9e8c71e7 100644 --- a/pandora_console/pandoradb.postgreSQL.sql +++ b/pandora_console/pandoradb.postgreSQL.sql @@ -1643,3 +1643,21 @@ CREATE TABLE "tupdate_journal" ( "id_update" INTEGER default 0 REFERENCES "tupdate"("id") ON UPDATE CASCADE ON DELETE CASCADE ); +-- --------------------------------------------------------------------- +-- Table talert_snmp_action +-- --------------------------------------------------------------------- +CREATE TABLE "talert_snmp_action" ( + "id" SERIAL NOT NULL PRIMARY KEY, + "id_alert_snmp" INTEGER default 0, + "alert_type" INTEGER default 0, + "al_field1" TEXT default '', + "al_field2" TEXT default '', + "al_field3" TEXT default '', + "al_field4" TEXT default '', + "al_field5" TEXT default '', + "al_field6" TEXT default '', + "al_field7" TEXT default '', + "al_field8" TEXT default '', + "al_field9" TEXT default '', + "al_field10" TEXT default '' +); diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql index 3d5fbc657b..5893093bef 100644 --- a/pandora_console/pandoradb.sql +++ b/pandora_console/pandoradb.sql @@ -1736,3 +1736,23 @@ CREATE TABLE `tupdate_journal` ( id_update int(11) unsigned NOT NULL default 0, PRIMARY KEY (`id`), FOREIGN KEY (`id_update`) REFERENCES tupdate(`id`) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- --------------------------------------------------------------------- +-- Table `talert_snmp_action` +-- --------------------------------------------------------------------- +CREATE TABLE IF NOT EXISTS `talert_snmp_action` ( + `id` int(10) unsigned NOT NULL auto_increment, + `id_alert_snmp` int(10) unsigned NOT NULL default '0', + `alert_type` int(2) unsigned NOT NULL default '0', + `al_field1` text NOT NULL, + `al_field2` text NOT NULL, + `al_field3` text NOT NULL, + `al_field4` text NOT NULL, + `al_field5` text NOT NULL, + `al_field6` text NOT NULL, + `al_field7` text NOT NULL, + `al_field8` text NOT NULL, + `al_field9` text NOT NULL, + `al_field10` text NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8;