Rem drv:
Rem
Rem $Header: notification_data_upgrade.sql 08-sep-2005.02:27:11 neearora Exp $
Rem
Rem notification_data_upgrade.sql
Rem
Rem Copyright (c) 2005, Oracle. All rights reserved.
Rem
Rem NAME
Rem notification_data_upgrade.sql -
Rem
Rem DESCRIPTION
Rem
Rem
Rem NOTES
Rem
Rem
Rem MODIFIED (MM/DD/YY)
Rem neearora 09/08/05 - Bug 4597635. added is_renderable while fetching
Rem the cursor
Rem dcawley 08/15/05 - Add RCA queue
Rem dcawley 08/11/05 - Migrate rules with % for metric
Rem chyu 07/26/05 - modifying the migrate header position
Rem chyu 07/18/05 - updating the new rep manager header
Rem rpinnama 05/12/05 - Move common init to v102010/notification_init
Rem dcawley 02/16/05 - Migrate rule data
Rem dcawley 02/11/05 - dcawley_user_model_mig_to_10_2
Rem dcawley 02/09/05 - Created
Rem
-- Perform v102010 notif init
@@&&EM_SQL_ROOT/core/v102010/notification_init.sql
Rem
Rem Add the RCA queue
Rem
INSERT INTO MGMT_NOTIFY_QUEUES (QNAME, OMS_ID, WINDOWS)
VALUES ('RCA1', 0, 0);
COMMIT;
Rem
Rem Migrate the rules to the new version of the notification tables
Rem
DECLARE
l_metrics MGMT_PREFERENCES.CURSOR_TYPE;
l_keys MGMT_PREFERENCES.CURSOR_TYPE;
l_metric_column VARCHAR2(64);
l_column_label VARCHAR2(64);
l_column_nlsid VARCHAR2(64);
l_metric VARCHAR2(64);
l_metric_label VARCHAR2(64);
l_metric_nlsid VARCHAR2(64);
l_key_column VARCHAR2(512);
l_is_renderable mgmt_metrics.is_renderable%TYPE;
BEGIN
FOR rule IN (SELECT * FROM MGMT_NOTIFY_RULES_10_1)
LOOP
-- Insert rule into new table
INSERT INTO MGMT_NOTIFY_RULES (rule_name, owner, description, public_rule)
VALUES (rule.rule_name, rule.owner, rule.description, rule.public_rule);
FOR config IN (SELECT * FROM MGMT_NOTIFY_RULE_CONFIGS_10_1
WHERE rule_name = rule.rule_name and owner = rule.owner)
LOOP
-- Check to see if this is a configuation for all metric
IF config.metric_name = '%' and config.metric_column = '%'
THEN
-- Get the list of metrics. The keys can be ignored because once
-- a key is specified the metric list is expanded so there will
-- be one row per metric so the ELSE part of this IF statement
-- will be executed for each row
MGMT_PREFERENCES.GET_METRICS_FOR_RULE(config.target_type, NULL,
l_metrics, l_keys);
LOOP
FETCH l_metrics INTO l_metric_column, l_column_label, l_column_nlsid,
l_metric, l_metric_label, l_metric_nlsid,
l_key_column, l_is_renderable;
EXIT WHEN l_metrics%NOTFOUND;
INSERT INTO MGMT_NOTIFY_RULE_CONFIGS
(rule_name, owner, target_type,
target_name, metric_name, metric_column,
key_value, want_clears, want_warnings,
want_critical_alerts, want_target_up,
want_target_down, want_target_unreachable_start,
want_target_unreachable_end,
want_target_metric_err_start, want_target_metric_err_end,
want_target_blackout_start, want_target_blackout_end)
VALUES
(config.rule_name, config.owner, config.target_type,
config.target_name, l_metric, l_metric_column,
config.key_value, rule.want_clears, rule.want_warnings,
rule.want_critical_alerts, rule.want_target_up,
rule.want_target_down, rule.want_target_unreachable_start,
rule.want_target_unreachable_end,
rule.want_target_metric_err_start, rule.want_target_metric_err_end,
rule.want_target_blackout_start, rule.want_target_blackout_end);
END LOOP;
ELSE
INSERT INTO MGMT_NOTIFY_RULE_CONFIGS
(rule_name, owner, target_type,
target_name, metric_name, metric_column,
key_value, want_clears, want_warnings,
want_critical_alerts, want_target_up,
want_target_down, want_target_unreachable_start,
want_target_unreachable_end,
want_target_metric_err_start, want_target_metric_err_end,
want_target_blackout_start, want_target_blackout_end)
VALUES
(config.rule_name, config.owner, config.target_type,
config.target_name, config.metric_name, config.metric_column,
config.key_value, rule.want_clears, rule.want_warnings,
rule.want_critical_alerts, rule.want_target_up,
rule.want_target_down, rule.want_target_unreachable_start,
rule.want_target_unreachable_end,
rule.want_target_metric_err_start, rule.want_target_metric_err_end,
rule.want_target_blackout_start, rule.want_target_blackout_end);
END IF;
END LOOP;
COMMIT;
END LOOP;
-- Drop the old tables
EXECUTE IMMEDIATE 'DROP TABLE MGMT_NOTIFY_RULE_CONFIGS_10_1';
EXECUTE IMMEDIATE 'DROP TABLE MGMT_NOTIFY_RULES_10_1';
-- Recreate the foreign key for the notifyee table
EXECUTE IMMEDIATE 'ALTER TABLE MGMT_NOTIFY_NOTIFYEES ADD CONSTRAINT MGMT_NOTIFY_NOTIFYEES_FK_RULE FOREIGN KEY (rule_name, owner) REFERENCES MGMT_NOTIFY_RULES (rule_name, owner) ON DELETE CASCADE';
END;
/
COMMIT;