Blame | Last modification | View Log | RSS feed
CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_BUILDAPI"IS/*------------------------------|| Last Modified: Jeremy Tweddle|| Modified Date: 14/Dec/2007|| Body Version: 3.1------------------------------*//*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_product_component (npvid IN NUMBER,sosname IN VARCHAR2,sorigfilepath IN VARCHAR2,sfilename IN VARCHAR2,sdestfilepath IN VARCHAR2,nbytesize IN NUMBER,scrccksum IN VARCHAR2)ISnosid NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/-- OS Name Requirements --IF (sosname IS NULL)THENraise_application_error (-20000, 'OsName cannot be NULL.');END IF;-- File Requirements --IF (NOT sfilename IS NULL)THENIF (nbytesize IS NULL)THENraise_application_error (-20000, 'Byte Size cannot be NULL.');ELSIF (scrccksum IS NULL)THENraise_application_error (-20000, 'CRC CKSUM cannot be NULL.');END IF;END IF;-- Folder Requirements ---- No requirements for now./*-------------------------------------------------------*/-- Get OsIdnosid := get_osid (sosname);-- Insert component entryINSERT INTO product_components(pv_id, os_id, file_path, file_name, destination_path,byte_size, crc_cksum)VALUES (npvid, nosid, sorigfilepath, sfilename, sdestfilepath,nbytesize, scrccksum);EXCEPTIONWHEN DUP_VAL_ON_INDEXTHENraise_application_error (-20000,'Cannot have duplicate product components.');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE remove_all_product_components (npvid IN NUMBER,sosname IN VARCHAR2)ISnosid NUMBER;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/-- Get OsIdnosid := get_osid (sosname);-- Delete component entryDELETE FROM product_components pcWHERE pc.pv_id = npvid AND pc.os_id = nosid;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION get_osid (sosname IN VARCHAR2)RETURN NUMBERIScode NUMBER;BEGIN-- Get Platform Code --SELECT pf.codeINTO codeFROM platforms pfWHERE UPPER (pf.NAME) = UPPER (sosname);RETURN code;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error(-20000,'Platform '|| sosname|| ' is not valid. It needs to be added to PLATFORMS table in Release Manager.');RAISE;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_build_service (sdatabaseserver IN VARCHAR2,swebserver IN VARCHAR2,smailserver IN VARCHAR2,smailsender IN VARCHAR2,sdiskspace IN VARCHAR2,ssbommanagement IN VARCHAR2)ISBEGINUPDATE build_service_configSET config = sdatabaseserverWHERE service = 'DATABASE SERVER';UPDATE build_service_configSET config = swebserverWHERE service = 'WEB SERVER';UPDATE build_service_configSET config = smailserverWHERE service = 'MAIL SERVER';UPDATE build_service_configSET config = smailsenderWHERE service = 'BUILD FAILURE MAIL SENDER';UPDATE build_service_configSET config = sdiskspaceWHERE service = 'DPKG_ARCHIVE DISK SPACE USED';UPDATE build_service_configSET config = ssbommanagementWHERE service = 'SBOM MANAGEMENT';END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2)ISgbe_id NUMBER;BEGIN-- Get GBE_IDSELECT seq_gbe_id.NEXTVALINTO gbe_idFROM DUAL;INSERT INTO gbe_machtype(gbe_id, gbe_value)VALUES (gbe_id, sgbevalue);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER)ISBEGINDELETE FROM gbe_machtypeWHERE gbe_id = ngbe_id;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2)ISBEGINUPDATE gbe_machtypeSET gbe_value = sgbevalueWHERE gbe_id = ngbe_id;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_daemon (sdaemonhostname IN VARCHAR2,nrtagid IN NUMBER,ngbeid IN NUMBER,sgbebuildfilter IN VARCHAR2)ISnrecordnumber NUMBER;nrconid NUMBER;BEGIN-- Get RCON_IDSELECT seq_rcon_id.NEXTVALINTO nrconidFROM DUAL;SELECT COUNT (*)INTO nrecordnumberFROM release_configWHERE rtag_id = nrtagid;IF nrecordnumber = 0THENINSERT INTO release_config(rcon_id, rtag_id, daemon_hostname, daemon_mode,gbe_id, gbe_buildfilter)VALUES (nrconid, nrtagid, sdaemonhostname, 'M',ngbeid, sgbebuildfilter);ELSEINSERT INTO release_config(rcon_id, rtag_id, daemon_hostname, daemon_mode,gbe_id, gbe_buildfilter)VALUES (nrconid, nrtagid, sdaemonhostname, 'S',ngbeid, sgbebuildfilter);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE delete_daemon (srconidlist IN VARCHAR2)ISBEGIN-- Entries in the daemon_action_log, run_level and abt_action_log tables must be deleted first.DELETE FROM daemon_action_logWHERE rcon_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (srconidlist) AS relmgr_number_tab_t)FROM DUAL));DELETE FROM run_levelWHERE rcon_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (srconidlist) AS relmgr_number_tab_t)FROM DUAL));DELETE FROM abt_action_logWHERE rcon_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (srconidlist) AS relmgr_number_tab_t)FROM DUAL));-- Once entries in daemon_action_log, run_level and abt_action_log are removed, the daemon is deleted.DELETE FROM release_configWHERE rcon_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (srconidlist) AS relmgr_number_tab_t)FROM DUAL));END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_daemon (sdaemonhostname IN VARCHAR2,nrconid IN NUMBER,ngbeid IN NUMBER,sgbebuildfilter IN VARCHAR2)ISBEGINUPDATE release_configSET daemon_hostname = sdaemonhostname,gbe_id = ngbeid,gbe_buildfilter = sgbebuildfilterWHERE rcon_id = nrconid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE insert_schedule_info (dschedulepause IN DATE,dscheduleresume IN DATE,crepeat IN VARCHAR2,cindefinitepause IN VARCHAR2)ISnscheduledid NUMBER;BEGIN-- Get Next Available Scheduled IdSELECT seq_scheduled_id.NEXTVALINTO nscheduledidFROM DUAL;INSERT INTO run_level_scheduleVALUES (nscheduledid, dschedulepause, dscheduleresume, crepeat,cindefinitepause);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE delete_schedule (nscheduleid IN NUMBER)ISBEGINDELETE FROM run_level_scheduleWHERE scheduled_id = nscheduleid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_infinite_pauseISnscheduledid NUMBER;BEGIN-- Get Next Available Scheduled IdSELECT seq_scheduled_id.NEXTVALINTO nscheduledidFROM DUAL;INSERT INTO run_level_scheduleVALUES (nscheduledid, NULL, NULL, NULL, 'P');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_resumeISBEGINDELETE FROM run_level_scheduleWHERE indefinite_pause = 'P';END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE delete_out_of_date_scheduleISBEGINDELETE FROM run_level_scheduleWHERE scheduled_resume < ora_sysdatetime AND repeat = 0;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_daemon_resume (nrconid IN NUMBER)ISBEGINUPDATE run_levelSET PAUSE = NULLWHERE rcon_id = nrconid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_daemon_pause (nrconid IN NUMBER)ISBEGINUPDATE run_levelSET PAUSE = 1WHERE rcon_id = nrconid;END;/*-------------------------------------------------------------------------------------------------------*/END pk_buildapi;/ALTER PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI"COMPILE BODYPLSQL_OPTIMIZE_LEVEL= 2PLSQL_CODE_TYPE= INTERPRETEDPLSQL_DEBUG= TRUEREUSE SETTINGS TIMESTAMP '2008-05-02 10:57:20'/