Remove controller blueprint chart
[oom.git] / kubernetes / clamp / charts / mariadb / resources / config / mariadb / docker-entrypoint-initdb.d / bulkload / clds-stored-procedures.sql
1 /* Copyright © 2017 AT&T, Amdocs, Bell Canada
2 *
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *       http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #
17 # CLDS stored procedures
18 #
19
20 USE cldsdb4;
21
22 DROP PROCEDURE IF EXISTS upd_event;
23 DROP PROCEDURE IF EXISTS ins_event;
24 DROP PROCEDURE IF EXISTS del_all_model_instances;
25 DROP PROCEDURE IF EXISTS del_model_instance;
26 DROP PROCEDURE IF EXISTS ins_model_instance;
27 DROP PROCEDURE IF EXISTS set_model;
28 DROP PROCEDURE IF EXISTS get_model;
29 DROP PROCEDURE IF EXISTS get_model_template;
30 DROP PROCEDURE IF EXISTS set_template;
31 DROP PROCEDURE IF EXISTS get_template;
32 DROP PROCEDURE IF EXISTS del_model;
33 DROP PROCEDURE IF EXISTS set_new_tosca_model_version;
34 DROP PROCEDURE IF EXISTS set_tosca_model;
35 DROP PROCEDURE IF EXISTS set_dictionary;
36 DROP PROCEDURE IF EXISTS set_dictionary_elements;
37 DELIMITER //
38 CREATE PROCEDURE get_template
39   (IN v_template_name VARCHAR(80),
40    OUT v_template_id VARCHAR(36),
41    OUT v_template_bpmn_id VARCHAR(36),
42    OUT v_template_bpmn_user_id VARCHAR(80),
43    OUT v_template_bpmn_text MEDIUMTEXT,
44    OUT v_template_image_id VARCHAR(36),
45    OUT v_template_image_user_id VARCHAR(80),
46    OUT v_template_image_text MEDIUMTEXT,
47    OUT v_template_doc_id VARCHAR(36),
48    OUT v_template_doc_user_id VARCHAR(80),
49    OUT v_template_doc_text MEDIUMTEXT)
50 BEGIN
51   SELECT t.template_id,
52                  tb.template_bpmn_id,
53                  tb.user_id,
54                  tb.template_bpmn_text,
55                  ti.template_image_id,
56                  ti.user_id,
57                  ti.template_image_text,
58                  td.template_doc_id,
59                  td.user_id,
60                  td.template_doc_text
61     INTO v_template_id,
62          v_template_bpmn_id,
63          v_template_bpmn_user_id,
64          v_template_bpmn_text,
65          v_template_image_id,
66          v_template_image_user_id,
67          v_template_image_text,
68          v_template_doc_id,
69          v_template_doc_user_id,
70          v_template_doc_text
71     FROM template t,
72          template_bpmn tb,
73                  template_image ti,
74                  template_doc td
75     WHERE t.template_bpmn_id = tb.template_bpmn_id
76           AND t.template_image_id = ti.template_image_id
77           AND t.template_doc_id = td.template_doc_id
78       AND t.template_name = v_template_name;
79 END;
80 CREATE PROCEDURE set_template
81   (IN v_template_name VARCHAR(80),
82    IN v_user_id VARCHAR(80),
83    IN v_template_bpmn_text MEDIUMTEXT,
84    IN v_template_image_text MEDIUMTEXT,
85    IN v_template_doc_text MEDIUMTEXT,
86    OUT v_template_id VARCHAR(36),
87    OUT v_template_bpmn_id VARCHAR(36),
88    OUT v_template_bpmn_user_id VARCHAR(80),
89    OUT v_template_image_id VARCHAR(36),
90    OUT v_template_image_user_id VARCHAR(80),
91    OUT v_template_doc_id VARCHAR(36),
92    OUT v_template_doc_user_id VARCHAR(80))
93 BEGIN
94   DECLARE v_old_template_bpmn_text MEDIUMTEXT;
95   DECLARE v_old_template_image_text MEDIUMTEXT;
96   DECLARE v_old_template_doc_text MEDIUMTEXT;
97   SET v_template_id = NULL;
98   CALL get_template(
99     v_template_name,
100     v_template_id,
101     v_template_bpmn_id,
102     v_template_bpmn_user_id,
103     v_old_template_bpmn_text,
104     v_template_image_id,
105     v_template_image_user_id,
106     v_old_template_image_text,
107     v_template_doc_id,
108     v_template_doc_user_id,
109     v_old_template_doc_text);
110   IF v_template_id IS NULL THEN
111     BEGIN
112           SET v_template_id = UUID();
113       INSERT INTO template
114             (template_id, template_name)
115             VALUES (v_template_id, v_template_name);
116         END;
117   END IF;
118   IF v_template_bpmn_id IS NULL OR v_template_bpmn_text <> v_old_template_bpmn_text THEN
119         SET v_template_bpmn_id = UUID();
120     INSERT INTO template_bpmn
121           (template_bpmn_id, template_id, template_bpmn_text, user_id)
122           VALUES (v_template_bpmn_id, v_template_id, v_template_bpmn_text, v_user_id);
123         SET v_template_bpmn_user_id = v_user_id;
124   END IF;
125   IF v_template_image_id IS NULL OR v_template_image_text <> v_old_template_image_text THEN
126         SET v_template_image_id = UUID();
127     INSERT INTO template_image
128           (template_image_id, template_id, template_image_text, user_id)
129           VALUES (v_template_image_id, v_template_id, v_template_image_text, v_user_id);
130         SET v_template_image_user_id = v_user_id;
131   END IF;
132   IF v_template_doc_id IS NULL OR v_template_doc_text <> v_old_template_doc_text THEN
133         SET v_template_doc_id = UUID();
134     INSERT INTO template_doc
135           (template_doc_id, template_id, template_doc_text, user_id)
136           VALUES (v_template_doc_id, v_template_id, v_template_doc_text, v_user_id);
137         SET v_template_doc_user_id = v_user_id;
138   END IF;
139   UPDATE template
140     SET template_bpmn_id = v_template_bpmn_id,
141             template_image_id = v_template_image_id,
142             template_doc_id = v_template_doc_id
143     WHERE template_id = v_template_id;
144 END;
145 CREATE PROCEDURE get_model
146   (IN v_model_name VARCHAR(80),
147    OUT v_control_name_prefix VARCHAR(80),
148    INOUT v_control_name_uuid VARCHAR(36),
149    OUT v_model_id VARCHAR(36),
150    OUT v_service_type_id VARCHAR(80),
151    OUT v_deployment_id VARCHAR(80),
152    OUT v_deployment_status_url VARCHAR(300),
153    OUT v_template_name VARCHAR(80),
154    OUT v_template_id VARCHAR(36),
155    OUT v_model_prop_id VARCHAR(36),
156    OUT v_model_prop_user_id VARCHAR(80),
157    OUT v_model_prop_text MEDIUMTEXT,
158    OUT v_model_blueprint_id VARCHAR(36),
159    OUT v_model_blueprint_user_id VARCHAR(80),
160    OUT v_model_blueprint_text MEDIUMTEXT,
161    OUT v_event_id VARCHAR(36),
162    OUT v_action_cd VARCHAR(80),
163    OUT v_action_state_cd VARCHAR(80),
164    OUT v_event_process_instance_id VARCHAR(80),
165    OUT v_event_user_id VARCHAR(80))
166 BEGIN
167   SELECT m.control_name_prefix,
168                  m.control_name_uuid,
169                  m.model_id,
170                  m.service_type_id,
171                  m.deployment_id,
172                  m.deployment_status_url,
173                  t.template_name,
174                  m.template_id,
175                  mp.model_prop_id,
176                  mp.user_id,
177                  mp.model_prop_text,
178                  mb.model_blueprint_id,
179                  mb.user_id,
180                  mb.model_blueprint_text,
181                  e.event_id,
182                  e.action_cd,
183                  e.action_state_cd,
184                  e.process_instance_id,
185                  e.user_id
186     INTO v_control_name_prefix,
187          v_control_name_uuid,
188                  v_model_id,
189                  v_service_type_id,
190                  v_deployment_id,
191                  v_deployment_status_url,
192                  v_template_name,
193          v_template_id,
194          v_model_prop_id,
195          v_model_prop_user_id,
196          v_model_prop_text,
197          v_model_blueprint_id,
198          v_model_blueprint_user_id,
199          v_model_blueprint_text,
200          v_event_id,
201          v_action_cd,
202                  v_action_state_cd,
203          v_event_process_instance_id,
204          v_event_user_id
205     FROM model m,
206                  template t,
207                  model_properties mp,
208                  model_blueprint mb,
209                  event e
210     WHERE m.template_id = t.template_id
211           AND m.model_prop_id = mp.model_prop_id
212           AND m.model_blueprint_id = mb.model_blueprint_id
213           AND m.event_id = e.event_id
214       AND (m.model_name = v_model_name
215       OR  m.control_name_uuid = v_control_name_uuid);
216     SELECT model_instance_id,
217            vm_name,
218            location,
219            timestamp
220     FROM model_instance
221     WHERE model_id = v_model_id
222     ORDER BY 2;
223 END;
224 CREATE PROCEDURE get_model_template
225   (IN v_model_name VARCHAR(80),
226    OUT v_control_name_prefix VARCHAR(80),
227    INOUT v_control_name_uuid VARCHAR(36),
228    OUT v_model_id VARCHAR(36),
229    OUT v_service_type_id VARCHAR(80),
230    OUT v_deployment_id VARCHAR(80),
231    OUT v_deployment_status_url VARCHAR(300),
232    OUT v_template_name VARCHAR(80),
233    OUT v_template_id VARCHAR(36),
234    OUT v_model_prop_id VARCHAR(36),
235    OUT v_model_prop_user_id VARCHAR(80),
236    OUT v_model_prop_text MEDIUMTEXT,
237    OUT v_model_blueprint_id VARCHAR(36),
238    OUT v_model_blueprint_user_id VARCHAR(80),
239    OUT v_model_blueprint_text MEDIUMTEXT,
240    OUT v_template_bpmn_id VARCHAR(36),
241    OUT v_template_bpmn_user_id VARCHAR(80),
242    OUT v_template_bpmn_text MEDIUMTEXT,
243    OUT v_template_image_id VARCHAR(36),
244    OUT v_template_image_user_id VARCHAR(80),
245    OUT v_template_image_text MEDIUMTEXT,
246    OUT v_template_doc_id VARCHAR(36),
247    OUT v_template_doc_user_id VARCHAR(80),
248    OUT v_template_doc_text MEDIUMTEXT,
249    OUT v_event_id VARCHAR(36),
250    OUT v_action_cd VARCHAR(80),
251    OUT v_action_state_cd VARCHAR(80),
252    OUT v_event_process_instance_id VARCHAR(80),
253    OUT v_event_user_id VARCHAR(80))
254 BEGIN
255   CALL get_model(
256     v_model_name,
257     v_control_name_prefix,
258     v_control_name_uuid,
259     v_model_id,
260         v_service_type_id,
261         v_deployment_id,
262         v_deployment_status_url,
263     v_template_name,
264     v_template_id,
265     v_model_prop_id,
266     v_model_prop_user_id,
267     v_model_prop_text,
268     v_model_blueprint_id,
269     v_model_blueprint_user_id,
270     v_model_blueprint_text,
271         v_event_id,
272         v_action_cd,
273         v_action_state_cd,
274         v_event_process_instance_id,
275         v_event_user_id);
276   CALL get_template(
277     v_template_name,
278     v_template_id,
279     v_template_bpmn_id,
280     v_template_bpmn_user_id,
281     v_template_bpmn_text,
282     v_template_image_id,
283     v_template_image_user_id,
284     v_template_image_text,
285     v_template_doc_id,
286     v_template_doc_user_id,
287     v_template_doc_text);
288   END;
289 CREATE PROCEDURE set_model
290   (IN v_model_name VARCHAR(80),
291    IN v_template_id VARCHAR(36),
292    IN v_user_id VARCHAR(80),
293    IN v_model_prop_text MEDIUMTEXT,
294    IN v_model_blueprint_text MEDIUMTEXT,
295    IN v_service_type_id VARCHAR(80),
296    IN v_deployment_id VARCHAR(80),
297    IN v_deployment_status_url VARCHAR(300),
298    INOUT v_control_name_prefix VARCHAR(80),
299    INOUT v_control_name_uuid VARCHAR(36),
300    OUT v_model_id VARCHAR(36),
301    OUT v_model_prop_id VARCHAR(36),
302    OUT v_model_prop_user_id VARCHAR(80),
303    OUT v_model_blueprint_id VARCHAR(36),
304    OUT v_model_blueprint_user_id VARCHAR(80),
305    OUT v_event_id VARCHAR(36),
306    OUT v_action_cd VARCHAR(80),
307    OUT v_action_state_cd VARCHAR(80),
308    OUT v_event_process_instance_id VARCHAR(80),
309    OUT v_event_user_id VARCHAR(80))
310 BEGIN
311   DECLARE v_old_template_name VARCHAR(80);
312   DECLARE v_old_template_id VARCHAR(36);
313   DECLARE v_old_control_name_prefix VARCHAR(80);
314   DECLARE v_old_control_name_uuid VARCHAR(36);
315   DECLARE v_old_model_prop_text MEDIUMTEXT;
316   DECLARE v_old_model_blueprint_text MEDIUMTEXT;
317   DECLARE v_old_service_type_id VARCHAR(80);
318   DECLARE v_old_deployment_id VARCHAR(80);
319   DECLARE v_old_deployment_status_url VARCHAR(300);
320   SET v_model_id = NULL;
321   CALL get_model(
322     v_model_name,
323     v_old_control_name_prefix,
324     v_old_control_name_uuid,
325     v_model_id,
326         v_old_service_type_id,
327         v_old_deployment_id,
328         v_old_deployment_status_url,
329     v_old_template_name,
330     v_old_template_id,
331     v_model_prop_id,
332     v_model_prop_user_id,
333     v_old_model_prop_text,
334     v_model_blueprint_id,
335     v_model_blueprint_user_id,
336     v_old_model_blueprint_text,
337         v_event_id,
338         v_action_cd,
339         v_action_state_cd,
340         v_event_process_instance_id,
341         v_event_user_id);
342   IF v_model_id IS NULL THEN
343     BEGIN
344       # UUID can be provided initially but cannot be updated
345           # if not provided (this is expected) then it will be set here
346       IF v_control_name_uuid IS NULL THEN
347             SET v_control_name_uuid = UUID();
348           END IF;
349       SET v_model_id = v_control_name_uuid;
350       INSERT INTO model
351             (model_id, model_name, template_id, control_name_prefix, control_name_uuid, service_type_id, deployment_id, deployment_status_url)
352             VALUES (v_model_id, v_model_name, v_template_id, v_control_name_prefix, v_control_name_uuid, v_service_type_id, v_deployment_id,v_deployment_status_url);
353           # since just created model, insert CREATED event as initial default event
354           SET v_action_cd = 'CREATE';
355           SET v_action_state_cd = 'COMPLETED';
356           SET v_event_user_id = v_user_id;
357       SET v_event_id = UUID();
358       INSERT INTO event
359             (event_id, model_id, action_cd, action_state_cd, user_id)
360             VALUES (v_event_id, v_model_id, v_action_cd, v_action_state_cd, v_event_user_id);
361           UPDATE model
362                 SET event_id = v_event_id
363                 WHERE model_id = v_model_id;
364         END;
365   ELSE
366     BEGIN
367           # use old control_name_prefix if null value is provided
368       IF v_control_name_prefix IS NULL THEN
369              SET v_control_name_prefix = v_old_control_name_prefix;
370           END IF;
371           # UUID can not be updated after initial insert
372           SET v_control_name_uuid = v_old_control_name_uuid;
373         END;
374   END IF;
375   IF v_model_prop_id IS NULL OR v_model_prop_text <> v_old_model_prop_text THEN
376         SET v_model_prop_id = UUID();
377     INSERT INTO model_properties
378           (model_prop_id, model_id, model_prop_text, user_id)
379           VALUES (v_model_prop_id, v_model_id, v_model_prop_text, v_user_id);
380         SET v_model_prop_user_id = v_user_id;
381   END IF;
382   IF v_model_blueprint_id IS NULL OR v_model_blueprint_text <> v_old_model_blueprint_text THEN
383         SET v_model_blueprint_id = UUID();
384     INSERT INTO model_blueprint
385           (model_blueprint_id, model_id, model_blueprint_text, user_id)
386           VALUES (v_model_blueprint_id, v_model_id, v_model_blueprint_text, v_user_id);
387         SET v_model_blueprint_user_id = v_user_id;
388   END IF;
389   UPDATE model
390     SET control_name_prefix = v_control_name_prefix,
391             model_prop_id = v_model_prop_id,
392             model_blueprint_id = v_model_blueprint_id,
393             service_type_id = v_service_type_id,
394             deployment_id = v_deployment_id,
395             deployment_status_url = v_deployment_status_url
396     WHERE model_id = v_model_id;
397 END;
398 CREATE PROCEDURE ins_model_instance
399   (IN v_control_name_uuid VARCHAR(36),
400    IN v_vm_name VARCHAR(250),
401    IN v_location VARCHAR(250),
402    OUT v_model_id VARCHAR(36),
403    OUT v_model_instance_id VARCHAR(36))
404 BEGIN
405    SELECT m.model_id
406     INTO v_model_id
407     FROM model m
408     WHERE m.control_name_uuid = v_control_name_uuid;
409   SET v_model_instance_id = UUID();
410   INSERT INTO model_instance
411         (model_instance_id, model_id, vm_name, location)
412         VALUES (v_model_instance_id, v_model_id, v_vm_name, v_location);
413 END;
414 CREATE PROCEDURE del_model_instance
415   (IN v_control_name_uuid VARCHAR(36),
416    IN v_vm_name VARCHAR(250),
417    OUT v_model_id VARCHAR(36),
418    OUT v_model_instance_id VARCHAR(36))
419 BEGIN
420    SELECT m.model_id, i.model_instance_id
421     INTO v_model_id,
422          v_model_instance_id
423     FROM model m,
424          model_instance i
425     WHERE m.model_id = i.model_id
426      AND  m.control_name_uuid = v_control_name_uuid
427      AND  i.vm_name = v_vm_name;
428   DELETE FROM model_instance
429   WHERE model_instance_id = v_model_instance_id;
430 END;
431 CREATE PROCEDURE del_all_model_instances
432   (IN v_control_name_uuid VARCHAR(36),
433    OUT v_model_id VARCHAR(36))
434 BEGIN
435   SELECT m.model_id
436     INTO v_model_id
437     FROM model m
438     WHERE m.control_name_uuid = v_control_name_uuid;
439   DELETE FROM model_instance
440   WHERE model_id = v_model_id;
441 END;
442 CREATE PROCEDURE ins_event
443   (IN v_model_name VARCHAR(80),
444    IN v_control_name_prefix VARCHAR(80),
445    IN v_control_name_uuid VARCHAR(36),
446    IN v_user_id VARCHAR(80),
447    IN v_action_cd VARCHAR(80),
448    IN v_action_state_cd VARCHAR(80),
449    IN v_process_instance_id VARCHAR(80),
450    OUT v_model_id VARCHAR(36),
451    OUT v_event_id VARCHAR(36))
452 BEGIN
453   DECLARE v_prev_event_id VARCHAR(36);
454   SELECT m.model_id,
455                  m.event_id
456     INTO v_model_id,
457          v_prev_event_id
458     FROM model m
459     WHERE m.model_name = v_model_name
460           OR  m.control_name_uuid = v_control_name_uuid;
461   SET v_event_id = UUID();
462   INSERT INTO event
463         (event_id, model_id, action_cd, action_state_cd, prev_event_id, process_instance_id, user_id)
464         VALUES (v_event_id, v_model_id, v_action_cd, v_action_state_cd, v_prev_event_id, v_process_instance_id, v_user_id);
465   UPDATE model
466         SET event_id = v_event_id
467         WHERE model_id = v_model_id;
468 END;
469 CREATE PROCEDURE upd_event
470   (IN v_event_id VARCHAR(36),
471    IN v_process_instance_id VARCHAR(80))
472 BEGIN
473   UPDATE event
474         SET process_instance_id = v_process_instance_id
475         WHERE event_id = v_event_id;
476 END;
477 CREATE PROCEDURE del_model
478 (IN v_model_name VARCHAR(80))
479 BEGIN
480     DECLARE v_model_id VARCHAR(36);
481     SELECT model_id INTO v_model_id from model where model_name = v_model_name;
482     UPDATE model set event_id = null, model_blueprint_id = null, model_prop_id = null where model_id = v_model_id;
483         DELETE from event where model_id = v_model_id;
484         DELETE from model_blueprint where model_id = v_model_id;
485         DELETE from model_properties where model_id = v_model_id;
486     DELETE from model where model_id = v_model_id;
487 END;
488
489 CREATE PROCEDURE set_new_tosca_model_version
490   (IN v_tosca_model_id VARCHAR(36),
491    IN v_version DOUBLE,
492    IN v_tosca_model_yaml MEDIUMTEXT,
493    IN v_tosca_model_json MEDIUMTEXT,
494    IN v_user_id VARCHAR(80),
495    OUT v_revision_id VARCHAR(36))
496 BEGIN
497   SET v_revision_id = UUID();
498   INSERT INTO tosca_model_revision
499     (tosca_model_revision_id, tosca_model_id, version, tosca_model_yaml, tosca_model_json, user_id)
500     VALUES (v_revision_id, v_tosca_model_id, v_version, v_tosca_model_yaml, v_tosca_model_json, v_user_id);
501 END;
502
503 CREATE PROCEDURE set_tosca_model
504   (IN v_tosca_model_name VARCHAR(80),
505    IN v_policy_type VARCHAR(80),
506    IN v_user_id VARCHAR(80),
507    IN v_tosca_model_yaml MEDIUMTEXT,
508    IN v_tosca_model_json MEDIUMTEXT,
509    IN v_version DOUBLE,
510    OUT v_tosca_model_id VARCHAR(36),
511    OUT v_revision_id VARCHAR(36))
512 BEGIN
513   SET v_tosca_model_id = UUID();
514   INSERT INTO tosca_model
515     (tosca_model_id, tosca_model_name, policy_type, user_id)
516     VALUES (v_tosca_model_id, v_tosca_model_name, v_policy_type, v_user_id);
517   SET v_revision_id = UUID();
518   INSERT INTO tosca_model_revision
519     (tosca_model_revision_id, tosca_model_id, version, tosca_model_yaml, tosca_model_json, user_id)
520     VALUES (v_revision_id, v_tosca_model_id, v_version, v_tosca_model_yaml, v_tosca_model_json, v_user_id);
521 END;
522
523 CREATE PROCEDURE set_dictionary
524   (IN v_dictionary_name VARCHAR(80),
525    IN v_user_id VARCHAR(80),
526    OUT v_dictionary_id VARCHAR(36))
527 BEGIN
528   SET v_dictionary_id = UUID();
529   INSERT INTO dictionary
530     (dictionary_id, dictionary_name, created_by, modified_by)
531     VALUES (v_dictionary_id, v_dictionary_name, v_user_id, v_user_id);
532 END;
533
534 CREATE PROCEDURE set_dictionary_elements
535   (IN v_dictionary_id VARCHAR(36),
536    IN v_dict_element_name VARCHAR(250),
537    IN v_dict_element_short_name VARCHAR(80),
538    IN v_dict_element_description VARCHAR(250),
539    IN v_dict_element_type VARCHAR(80),
540    IN v_user_id VARCHAR(80),
541    OUT v_dict_element_id VARCHAR(36))
542 BEGIN
543   SET v_dict_element_id = UUID();
544   INSERT INTO dictionary_elements
545     (dict_element_id, dictionary_id, dict_element_name, dict_element_short_name, dict_element_description, dict_element_type, created_by, modified_by)
546     VALUES (v_dict_element_id, v_dictionary_id, v_dict_element_name, v_dict_element_short_name, v_dict_element_description, v_dict_element_type, v_user_id, v_user_id);
547 END;
548 //
549 DELIMITER ;