Rem drv:
Rem
Rem $Header: emcore/source/oracle/sysman/emdrep/sql/core/latest/template/template_ui_pkgbody.sql /st_emcore_10.2.0.4.2db11.2/1 2008/09/21 22:56:55 paachary Exp $
Rem
Rem template_ui_pkgbody.sql
Rem
Rem Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
Rem
Rem NAME
Rem template_ui_pkgbody.sql -
Rem
Rem DESCRIPTION
Rem
Rem
Rem NOTES
Rem
Rem
Rem MODIFIED (MM/DD/YY)
Rem paachary 07/16/08 - Adding new SDK APIs
Rem paachary 04/11/08 - creating a new package for 10g codeline
Rem paachary 04/11/08 - Created
Rem
CREATE OR REPLACE PACKAGE BODY mgmt_template_ui
AS
-- Public API - modify_purge_policy
-- IN Parameters
-- p_policy_name
-- p_policy_type
-- p_purge_proc_name
-- p_retention_days
-- OUT Parameters
-- none
-- Description
-- This API modifies the purge policy for template/ stds history tables.
PROCEDURE modify_purge_policy( p_policy_name IN VARCHAR2 DEFAULT 'MGMT_TARGET_UPDATE_HISTORY',
p_policy_type IN NUMBER DEFAULT EM_PURGE.G_POLICY_TYPE_SYSTEM,
p_purge_proc_name IN VARCHAR2 DEFAULT 'MGMT_TARGET_UPDATE.PURGE',
p_retention_days IN NUMBER DEFAULT 180,
p_policy_desc IN VARCHAR2 DEFAULT 'Purge policy for target update history.')
IS
l_retention_days NUMBER := p_retention_days;
BEGIN
IF (l_retention_days IS NULL)
THEN
l_retention_days := 180;
END IF;
em_purge.drop_purge_policy(p_policy_name => p_policy_name );
em_purge.add_purge_policy(p_policy_name => p_policy_name,
p_policy_type => p_policy_type,
p_purge_proc_name => p_purge_proc_name,
p_retention_hours => l_retention_days * 24,
p_policy_desc => p_policy_desc,
p_retent_group_name => EM_PURGE.G_RETENTION_GROUP_LVL2_SUMMARY);
END modify_purge_policy;
-- Public API - create_template
-- IN Parameters
-- p_target_type
-- p_source_target_name
-- p_template_name
-- p_description
-- p_is_out_of_box
-- OUT Parameters
-- p_message_array
-- p_return_status - 1 => success
-- 0 => failure
-- Description
-- This API copies all the metric settings of the source target and creates a monitoring std
-- with the name provided.
PROCEDURE create_template( p_target_type IN VARCHAR2,
p_source_target_name IN VARCHAR2,
p_template_name IN VARCHAR2,
p_description IN VARCHAR2 DEFAULT '',
p_is_out_of_box IN NUMBER DEFAULT 0,
p_message_array OUT SMP_EMD_STRING_ARRAY,
p_return_status OUT NUMBER)
IS
l_msg_cntr PLS_INTEGER := 0;
l_is_out_of_box NUMBER := p_is_out_of_box;
BEGIN
IF ( l_is_out_of_box IS NULL )
THEN
l_is_out_of_box := 0;
END IF;
p_message_array := SMP_EMD_STRING_ARRAY();
p_return_status := 0;
IF (p_template_name IS NULL OR
p_template_name = '')
THEN
l_msg_cntr := p_message_array.COUNT;
p_message_array.EXTEND;
l_msg_cntr := l_msg_cntr + 1;
p_message_array(l_msg_cntr) := 'Monitoring Template is invalid. Creation of Monitoring Template is aborted';
p_return_status := 0;
ELSE
IF (l_is_out_of_box IS NULL OR
LENGTH(l_is_out_of_box) = 0 OR
l_is_out_of_box NOT IN (0,1))
THEN
l_msg_cntr := p_message_array.COUNT;
p_message_array.EXTEND;
l_msg_cntr := l_msg_cntr + 1;
p_message_array(l_msg_cntr) := 'Monitoring Template'||q'['s p_is_out_of_box]'||' value is not valid. '||
'The value should be 0 or 1. '||
'Creation of Monitoring Template is aborted';
p_return_status := 0;
ELSE
em_template.create_template( p_target_type => p_target_type,
p_source_target_name => p_source_target_name,
p_template_name => p_template_name,
p_description => p_description,
p_is_out_of_box => l_is_out_of_box,
p_message_array => p_message_array,
p_return_status => p_return_status );
END IF;
END IF;
EXCEPTION
WHEN OTHERS THEN
p_return_status := 0;
l_msg_cntr := p_message_array.COUNT;
p_message_array.EXTEND;
l_msg_cntr := l_msg_cntr + 1;
p_message_array(l_msg_cntr) := 'Exception During Create '||sqlerrm||'.Creation of Monitoring Template aborted.';
END create_template;
-- Public API - apply_template
-- IN Parameters
-- p_target_type
-- p_template_name
-- p_apply_option
-- p_dest_targets_list
-- p_udm_cred_array
-- OUT Parameters
-- p_message_array
-- p_return_status - 1 => success
-- 0 => failure
-- Description
-- This API applies the monitoring std to the list of valid targets from the list of targets
-- specified by the user.
PROCEDURE apply_template( p_template_name IN VARCHAR2,
p_target_type IN VARCHAR2,
p_apply_option IN NUMBER := 2,
p_dest_targets_list IN MGMT_TARGET_ARRAY,
p_udm_cred_array IN UDM_CRED_ARRAY DEFAULT NULL,
p_message_array OUT SMP_EMD_STRING_ARRAY,
p_return_status OUT NUMBER)
IS
l_msg_cntr PLS_INTEGER := 0;
l_std_guid mgmt_templates.template_guid%TYPE;
l_target_type mgmt_templates.target_type%TYPE;
BEGIN
p_message_array := SMP_EMD_STRING_ARRAY();
p_return_status := 0;
BEGIN
l_std_guid := mgmt_template.get_template_guid
( p_target_type => p_target_type,
p_template_name => p_template_name);
em_template.apply_template( p_template_name => p_template_name,
p_target_type => p_target_type,
p_apply_option => p_apply_option,
p_dest_targets_list => p_dest_targets_list,
p_udm_cred_array => p_udm_cred_array,
p_message_array => p_message_array,
p_return_status => p_return_status);
EXCEPTION
WHEN OTHERS THEN
l_msg_cntr := p_message_array.COUNT;
p_message_array.EXTEND;
l_msg_cntr := l_msg_cntr + 1;
p_message_array(l_msg_cntr) := 'Monitoring Template is invalid. '||sqlerrm||
': Apply of template is aborted';
p_return_status := 0;
END;
END apply_template;
-- Public API - delete_monitoring_std
-- IN Parameters
-- p_target_type
-- p_template_name
-- OUT Parameters
-- p_message
-- p_return_status - 1 => success
-- 0 => failure
-- Description
-- This API deletes the specified monitoring std.
PROCEDURE delete_template( p_target_type IN VARCHAR2,
p_template_name IN VARCHAR2,
p_message OUT VARCHAR2,
p_return_status OUT NUMBER)
IS
BEGIN
p_return_status := 1;
mgmt_template.delete_template( p_target_type => p_target_type,
p_template_name => p_template_name);
p_message := 'Monitoring Template '||p_template_name||' deleted successfully';
EXCEPTION
WHEN OTHERS THEN
p_return_status := 0;
p_message := sqlerrm;
END delete_template;
END mgmt_template_ui;
/
show errors;