| 221 |
vnguyen |
1 |
CREATE PACKAGE BODY "RELEASE_MANAGER"."PK_BUILDAPI"
|
|
|
2 |
IS
|
|
|
3 |
/*
|
|
|
4 |
------------------------------
|
|
|
5 |
|| Last Modified: Jeremy Tweddle
|
|
|
6 |
|| Modified Date: 14/Dec/2007
|
|
|
7 |
|| Body Version: 3.1
|
|
|
8 |
------------------------------
|
|
|
9 |
*/
|
|
|
10 |
|
|
|
11 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
12 |
PROCEDURE add_product_component (
|
|
|
13 |
npvid IN NUMBER,
|
|
|
14 |
sosname IN VARCHAR2,
|
|
|
15 |
sorigfilepath IN VARCHAR2,
|
|
|
16 |
sfilename IN VARCHAR2,
|
|
|
17 |
sdestfilepath IN VARCHAR2,
|
|
|
18 |
nbytesize IN NUMBER,
|
|
|
19 |
scrccksum IN VARCHAR2
|
|
|
20 |
)
|
|
|
21 |
IS
|
|
|
22 |
nosid NUMBER;
|
|
|
23 |
BEGIN
|
|
|
24 |
/*--------------- Business Rules Here -------------------*/
|
|
|
25 |
-- OS Name Requirements --
|
|
|
26 |
IF (sosname IS NULL)
|
|
|
27 |
THEN
|
|
|
28 |
raise_application_error (-20000, 'OsName cannot be NULL.');
|
|
|
29 |
END IF;
|
|
|
30 |
|
|
|
31 |
-- File Requirements --
|
|
|
32 |
IF (NOT sfilename IS NULL)
|
|
|
33 |
THEN
|
|
|
34 |
IF (nbytesize IS NULL)
|
|
|
35 |
THEN
|
|
|
36 |
raise_application_error (-20000, 'Byte Size cannot be NULL.');
|
|
|
37 |
ELSIF (scrccksum IS NULL)
|
|
|
38 |
THEN
|
|
|
39 |
raise_application_error (-20000, 'CRC CKSUM cannot be NULL.');
|
|
|
40 |
END IF;
|
|
|
41 |
END IF;
|
|
|
42 |
|
|
|
43 |
-- Folder Requirements --
|
|
|
44 |
-- No requirements for now.
|
|
|
45 |
|
|
|
46 |
/*-------------------------------------------------------*/
|
|
|
47 |
|
|
|
48 |
-- Get OsId
|
|
|
49 |
nosid := get_osid (sosname);
|
|
|
50 |
|
|
|
51 |
-- Insert component entry
|
|
|
52 |
INSERT INTO product_components
|
|
|
53 |
(pv_id, os_id, file_path, file_name, destination_path,
|
|
|
54 |
byte_size, crc_cksum
|
|
|
55 |
)
|
|
|
56 |
VALUES (npvid, nosid, sorigfilepath, sfilename, sdestfilepath,
|
|
|
57 |
nbytesize, scrccksum
|
|
|
58 |
);
|
|
|
59 |
EXCEPTION
|
|
|
60 |
WHEN DUP_VAL_ON_INDEX
|
|
|
61 |
THEN
|
|
|
62 |
raise_application_error (-20000,
|
|
|
63 |
'Cannot have duplicate product components.'
|
|
|
64 |
);
|
|
|
65 |
END;
|
|
|
66 |
|
|
|
67 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
68 |
PROCEDURE remove_all_product_components (
|
|
|
69 |
npvid IN NUMBER,
|
|
|
70 |
sosname IN VARCHAR2
|
|
|
71 |
)
|
|
|
72 |
IS
|
|
|
73 |
nosid NUMBER;
|
|
|
74 |
BEGIN
|
|
|
75 |
/*--------------- Business Rules Here -------------------*/
|
|
|
76 |
/*-------------------------------------------------------*/
|
|
|
77 |
|
|
|
78 |
-- Get OsId
|
|
|
79 |
nosid := get_osid (sosname);
|
|
|
80 |
|
|
|
81 |
-- Delete component entry
|
|
|
82 |
DELETE FROM product_components pc
|
|
|
83 |
WHERE pc.pv_id = npvid AND pc.os_id = nosid;
|
|
|
84 |
END;
|
|
|
85 |
|
|
|
86 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
87 |
FUNCTION get_osid (sosname IN VARCHAR2)
|
|
|
88 |
RETURN NUMBER
|
|
|
89 |
IS
|
|
|
90 |
code NUMBER;
|
|
|
91 |
BEGIN
|
|
|
92 |
-- Get Platform Code --
|
|
|
93 |
SELECT pf.code
|
|
|
94 |
INTO code
|
|
|
95 |
FROM platforms pf
|
|
|
96 |
WHERE UPPER (pf.NAME) = UPPER (sosname);
|
|
|
97 |
|
|
|
98 |
RETURN code;
|
|
|
99 |
EXCEPTION
|
|
|
100 |
WHEN NO_DATA_FOUND
|
|
|
101 |
THEN
|
|
|
102 |
raise_application_error
|
|
|
103 |
(-20000,
|
|
|
104 |
'Platform '
|
|
|
105 |
|| sosname
|
|
|
106 |
|| ' is not valid. It needs to be added to PLATFORMS table in Release Manager.'
|
|
|
107 |
);
|
|
|
108 |
RAISE;
|
|
|
109 |
END;
|
|
|
110 |
|
|
|
111 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
112 |
PROCEDURE update_build_service (
|
|
|
113 |
sdatabaseserver IN VARCHAR2,
|
|
|
114 |
swebserver IN VARCHAR2,
|
|
|
115 |
smailserver IN VARCHAR2,
|
|
|
116 |
smailsender IN VARCHAR2,
|
|
|
117 |
sdiskspace IN VARCHAR2,
|
|
|
118 |
ssbommanagement IN VARCHAR2
|
|
|
119 |
)
|
|
|
120 |
IS
|
|
|
121 |
BEGIN
|
|
|
122 |
UPDATE build_service_config
|
|
|
123 |
SET config = sdatabaseserver
|
|
|
124 |
WHERE service = 'DATABASE SERVER';
|
|
|
125 |
|
|
|
126 |
UPDATE build_service_config
|
|
|
127 |
SET config = swebserver
|
|
|
128 |
WHERE service = 'WEB SERVER';
|
|
|
129 |
|
|
|
130 |
UPDATE build_service_config
|
|
|
131 |
SET config = smailserver
|
|
|
132 |
WHERE service = 'MAIL SERVER';
|
|
|
133 |
|
|
|
134 |
UPDATE build_service_config
|
|
|
135 |
SET config = smailsender
|
|
|
136 |
WHERE service = 'BUILD FAILURE MAIL SENDER';
|
|
|
137 |
|
|
|
138 |
UPDATE build_service_config
|
|
|
139 |
SET config = sdiskspace
|
|
|
140 |
WHERE service = 'DPKG_ARCHIVE DISK SPACE USED';
|
|
|
141 |
|
|
|
142 |
UPDATE build_service_config
|
|
|
143 |
SET config = ssbommanagement
|
|
|
144 |
WHERE service = 'SBOM MANAGEMENT';
|
|
|
145 |
END;
|
|
|
146 |
|
|
|
147 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
148 |
PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2)
|
|
|
149 |
IS
|
|
|
150 |
gbe_id NUMBER;
|
|
|
151 |
BEGIN
|
|
|
152 |
-- Get GBE_ID
|
|
|
153 |
SELECT seq_gbe_id.NEXTVAL
|
|
|
154 |
INTO gbe_id
|
|
|
155 |
FROM DUAL;
|
|
|
156 |
|
|
|
157 |
INSERT INTO gbe_machtype
|
|
|
158 |
(gbe_id, gbe_value
|
|
|
159 |
)
|
|
|
160 |
VALUES (gbe_id, sgbevalue
|
|
|
161 |
);
|
|
|
162 |
END;
|
|
|
163 |
|
|
|
164 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
165 |
PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER)
|
|
|
166 |
IS
|
|
|
167 |
BEGIN
|
|
|
168 |
DELETE FROM gbe_machtype
|
|
|
169 |
WHERE gbe_id = ngbe_id;
|
|
|
170 |
END;
|
|
|
171 |
|
|
|
172 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
173 |
PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2)
|
|
|
174 |
IS
|
|
|
175 |
BEGIN
|
|
|
176 |
UPDATE gbe_machtype
|
|
|
177 |
SET gbe_value = sgbevalue
|
|
|
178 |
WHERE gbe_id = ngbe_id;
|
|
|
179 |
END;
|
|
|
180 |
|
|
|
181 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
182 |
PROCEDURE add_daemon (
|
|
|
183 |
sdaemonhostname IN VARCHAR2,
|
|
|
184 |
nrtagid IN NUMBER,
|
|
|
185 |
ngbeid IN NUMBER,
|
|
|
186 |
sgbebuildfilter IN VARCHAR2
|
|
|
187 |
)
|
|
|
188 |
IS
|
|
|
189 |
nrecordnumber NUMBER;
|
|
|
190 |
nrconid NUMBER;
|
|
|
191 |
BEGIN
|
|
|
192 |
-- Get RCON_ID
|
|
|
193 |
SELECT seq_rcon_id.NEXTVAL
|
|
|
194 |
INTO nrconid
|
|
|
195 |
FROM DUAL;
|
|
|
196 |
|
|
|
197 |
SELECT COUNT (*)
|
|
|
198 |
INTO nrecordnumber
|
|
|
199 |
FROM release_config
|
|
|
200 |
WHERE rtag_id = nrtagid;
|
|
|
201 |
|
|
|
202 |
IF nrecordnumber = 0
|
|
|
203 |
THEN
|
|
|
204 |
INSERT INTO release_config
|
|
|
205 |
(rcon_id, rtag_id, daemon_hostname, daemon_mode,
|
|
|
206 |
gbe_id, gbe_buildfilter
|
|
|
207 |
)
|
|
|
208 |
VALUES (nrconid, nrtagid, sdaemonhostname, 'M',
|
|
|
209 |
ngbeid, sgbebuildfilter
|
|
|
210 |
);
|
|
|
211 |
ELSE
|
|
|
212 |
INSERT INTO release_config
|
|
|
213 |
(rcon_id, rtag_id, daemon_hostname, daemon_mode,
|
|
|
214 |
gbe_id, gbe_buildfilter
|
|
|
215 |
)
|
|
|
216 |
VALUES (nrconid, nrtagid, sdaemonhostname, 'S',
|
|
|
217 |
ngbeid, sgbebuildfilter
|
|
|
218 |
);
|
|
|
219 |
END IF;
|
|
|
220 |
END;
|
|
|
221 |
|
|
|
222 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
223 |
PROCEDURE delete_daemon (srconidlist IN VARCHAR2)
|
|
|
224 |
IS
|
|
|
225 |
BEGIN
|
|
|
226 |
-- Entries in the daemon_action_log, run_level and abt_action_log tables must be deleted first.
|
|
|
227 |
DELETE FROM daemon_action_log
|
|
|
228 |
WHERE rcon_id IN (
|
|
|
229 |
SELECT *
|
|
|
230 |
FROM THE
|
|
|
231 |
(SELECT CAST
|
|
|
232 |
(in_list_number (srconidlist) AS relmgr_number_tab_t
|
|
|
233 |
)
|
|
|
234 |
FROM DUAL
|
|
|
235 |
));
|
|
|
236 |
|
|
|
237 |
DELETE FROM run_level
|
|
|
238 |
WHERE rcon_id IN (
|
|
|
239 |
SELECT *
|
|
|
240 |
FROM THE
|
|
|
241 |
(SELECT CAST
|
|
|
242 |
(in_list_number (srconidlist) AS relmgr_number_tab_t
|
|
|
243 |
)
|
|
|
244 |
FROM DUAL
|
|
|
245 |
));
|
|
|
246 |
|
|
|
247 |
DELETE FROM abt_action_log
|
|
|
248 |
WHERE rcon_id IN (
|
|
|
249 |
SELECT *
|
|
|
250 |
FROM THE
|
|
|
251 |
(SELECT CAST
|
|
|
252 |
(in_list_number (srconidlist) AS relmgr_number_tab_t
|
|
|
253 |
)
|
|
|
254 |
FROM DUAL
|
|
|
255 |
));
|
|
|
256 |
|
|
|
257 |
-- Once entries in daemon_action_log, run_level and abt_action_log are removed, the daemon is deleted.
|
|
|
258 |
DELETE FROM release_config
|
|
|
259 |
WHERE rcon_id IN (
|
|
|
260 |
SELECT *
|
|
|
261 |
FROM THE
|
|
|
262 |
(SELECT CAST
|
|
|
263 |
(in_list_number (srconidlist) AS relmgr_number_tab_t
|
|
|
264 |
)
|
|
|
265 |
FROM DUAL
|
|
|
266 |
));
|
|
|
267 |
END;
|
|
|
268 |
|
|
|
269 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
270 |
PROCEDURE update_daemon (
|
|
|
271 |
sdaemonhostname IN VARCHAR2,
|
|
|
272 |
nrconid IN NUMBER,
|
|
|
273 |
ngbeid IN NUMBER,
|
|
|
274 |
sgbebuildfilter IN VARCHAR2
|
|
|
275 |
)
|
|
|
276 |
IS
|
|
|
277 |
BEGIN
|
|
|
278 |
UPDATE release_config
|
|
|
279 |
SET daemon_hostname = sdaemonhostname,
|
|
|
280 |
gbe_id = ngbeid,
|
|
|
281 |
gbe_buildfilter = sgbebuildfilter
|
|
|
282 |
WHERE rcon_id = nrconid;
|
|
|
283 |
END;
|
|
|
284 |
|
|
|
285 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
286 |
PROCEDURE insert_schedule_info (
|
|
|
287 |
dschedulepause IN DATE,
|
|
|
288 |
dscheduleresume IN DATE,
|
|
|
289 |
crepeat IN VARCHAR2,
|
|
|
290 |
cindefinitepause IN VARCHAR2
|
|
|
291 |
)
|
|
|
292 |
IS
|
|
|
293 |
nscheduledid NUMBER;
|
|
|
294 |
BEGIN
|
|
|
295 |
-- Get Next Available Scheduled Id
|
|
|
296 |
SELECT seq_scheduled_id.NEXTVAL
|
|
|
297 |
INTO nscheduledid
|
|
|
298 |
FROM DUAL;
|
|
|
299 |
|
|
|
300 |
INSERT INTO run_level_schedule
|
|
|
301 |
VALUES (nscheduledid, dschedulepause, dscheduleresume, crepeat,
|
|
|
302 |
cindefinitepause);
|
|
|
303 |
END;
|
|
|
304 |
|
|
|
305 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
306 |
PROCEDURE delete_schedule (nscheduleid IN NUMBER)
|
|
|
307 |
IS
|
|
|
308 |
BEGIN
|
|
|
309 |
DELETE FROM run_level_schedule
|
|
|
310 |
WHERE scheduled_id = nscheduleid;
|
|
|
311 |
END;
|
|
|
312 |
|
|
|
313 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
314 |
PROCEDURE set_infinite_pause
|
|
|
315 |
IS
|
|
|
316 |
nscheduledid NUMBER;
|
|
|
317 |
BEGIN
|
|
|
318 |
-- Get Next Available Scheduled Id
|
|
|
319 |
SELECT seq_scheduled_id.NEXTVAL
|
|
|
320 |
INTO nscheduledid
|
|
|
321 |
FROM DUAL;
|
|
|
322 |
|
|
|
323 |
INSERT INTO run_level_schedule
|
|
|
324 |
VALUES (nscheduledid, NULL, NULL, NULL, 'P');
|
|
|
325 |
END;
|
|
|
326 |
|
|
|
327 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
328 |
PROCEDURE set_resume
|
|
|
329 |
IS
|
|
|
330 |
BEGIN
|
|
|
331 |
DELETE FROM run_level_schedule
|
|
|
332 |
WHERE indefinite_pause = 'P';
|
|
|
333 |
END;
|
|
|
334 |
|
|
|
335 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
336 |
PROCEDURE delete_out_of_date_schedule
|
|
|
337 |
IS
|
|
|
338 |
BEGIN
|
|
|
339 |
DELETE FROM run_level_schedule
|
|
|
340 |
WHERE scheduled_resume < ora_sysdatetime AND repeat = 0;
|
|
|
341 |
END;
|
|
|
342 |
|
|
|
343 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
344 |
PROCEDURE set_daemon_resume (nrconid IN NUMBER)
|
|
|
345 |
IS
|
|
|
346 |
BEGIN
|
|
|
347 |
UPDATE run_level
|
|
|
348 |
SET PAUSE = NULL
|
|
|
349 |
WHERE rcon_id = nrconid;
|
|
|
350 |
END;
|
|
|
351 |
|
|
|
352 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
353 |
PROCEDURE set_daemon_pause (nrconid IN NUMBER)
|
|
|
354 |
IS
|
|
|
355 |
BEGIN
|
|
|
356 |
UPDATE run_level
|
|
|
357 |
SET PAUSE = 1
|
|
|
358 |
WHERE rcon_id = nrconid;
|
|
|
359 |
END;
|
|
|
360 |
/*-------------------------------------------------------------------------------------------------------*/
|
|
|
361 |
END pk_buildapi;
|
|
|
362 |
/
|
|
|
363 |
ALTER PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI"
|
|
|
364 |
COMPILE BODY
|
|
|
365 |
PLSQL_OPTIMIZE_LEVEL= 2
|
|
|
366 |
PLSQL_CODE_TYPE= INTERPRETED
|
|
|
367 |
PLSQL_DEBUG= TRUE
|
|
|
368 |
REUSE SETTINGS TIMESTAMP '2008-05-02 10:57:20'
|
|
|
369 |
/
|