Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
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
/