libdsdb3  3.0
 All Data Structures Files Functions Variables Typedefs Enumerations Macros Groups
dbog_dsdb.c
Go to the documentation of this file.
1 /*******************************************************************************
2 *
3 * COPYRIGHT (C) 2010 Battelle Memorial Institute. All Rights Reserved.
4 *
5 ********************************************************************************
6 *
7 * Author:
8 * name: Brian Ermold
9 * phone: (509) 375-2277
10 * email: brian.ermold@pnl.gov
11 *
12 ********************************************************************************
13 *
14 * REPOSITORY INFORMATION:
15 * $Revision: 48761 $
16 * $Author: ermold $
17 * $Date: 2013-10-28 20:35:44 +0000 (Mon, 28 Oct 2013) $
18 *
19 *******************************************************************************/
20 
21 /** @file dbog_dsdb.c
22  * DSDB object group functions.
23  */
24 
25 #include "dbconn.h"
26 
27 /** @privatesection */
28 
29 /*******************************************************************************
30 * Facilities
31 */
32 
33 DBStatus dsdbog_get_facility_location(
34  DBConn *dbconn,
35  const char *site,
36  const char *facility,
37  DBResult **result)
38 {
39  const char *command = "SELECT * FROM get_facility_location($1,$2)";
40  const char *params[2];
41 
42  params[0] = site;
43  params[1] = facility;
44 
45  return(dbconn_query(dbconn, command, 2, params, result));
46 }
47 
48 DBStatus dsdbog_get_site_description(
49  DBConn *dbconn,
50  const char *site,
51  DBResult **result)
52 {
53  const char *command = "SELECT * FROM inquire_sites($1)";
54  const char *params[1];
55 
56  params[0] = site;
57 
58  return(dbconn_query(dbconn, command, 1, params, result));
59 }
60 
61 /*******************************************************************************
62 * Process Config Values
63 */
64 
65 DBStatus dsdbog_define_process_config_key(
66  DBConn *dbconn,
67  const char *key,
68  int *result)
69 {
70  const char *command = "SELECT define_process_config_key($1)";
71  const char *params[1];
72 
73  params[0] = key;
74 
75  return(dbconn_query_int(dbconn, command, 1, params, result));
76 }
77 
78 DBStatus dsdbog_delete_process_config_key(
79  DBConn *dbconn,
80  const char *key,
81  int *result)
82 {
83  const char *command = "SELECT delete_process_config_key($1)";
84  const char *params[1];
85 
86  params[0] = key;
87 
88  return(dbconn_query_bool(dbconn, command, 1, params, result));
89 }
90 
91 DBStatus dsdbog_delete_process_config_value(
92  DBConn *dbconn,
93  const char *proc_type,
94  const char *proc_name,
95  const char *site,
96  const char *facility,
97  const char *key,
98  int *result)
99 {
100  const char *command = "SELECT delete_process_config_value($1,$2,$3,$4,$5)";
101  const char *params[5];
102 
103  params[0] = proc_type;
104  params[1] = proc_name;
105  params[2] = site;
106  params[3] = facility;
107  params[4] = key;
108 
109  return(dbconn_query_bool(dbconn, command, 5, params, result));
110 }
111 
112 DBStatus dsdbog_get_process_config_values(
113  DBConn *dbconn,
114  const char *proc_type,
115  const char *proc_name,
116  const char *site,
117  const char *facility,
118  const char *key,
119  DBResult **result)
120 {
121  const char *command = "SELECT * FROM get_process_config_values($1,$2,$3,$4,$5)";
122  const char *params[5];
123 
124  params[0] = proc_type;
125  params[1] = proc_name;
126  params[2] = site;
127  params[3] = facility;
128  params[4] = key;
129 
130  return(dbconn_query(dbconn, command, 5, params, result));
131 }
132 
133 DBStatus dsdbog_update_process_config_value(
134  DBConn *dbconn,
135  const char *proc_type,
136  const char *proc_name,
137  const char *site,
138  const char *facility,
139  const char *key,
140  const char *value,
141  int *result)
142 {
143  const char *command = "SELECT update_process_config_value($1,$2,$3,$4,$5,$6)";
144  const char *params[6];
145 
146  params[0] = proc_type;
147  params[1] = proc_name;
148  params[2] = site;
149  params[3] = facility;
150  params[4] = key;
151  params[5] = value;
152 
153  return(dbconn_query_int(dbconn, command, 6, params, result));
154 }
155 
156 /*******************************************************************************
157 * Process Families
158 */
159 
160 DBStatus dsdbog_inquire_process_families(
161  DBConn *dbconn,
162  const char *category,
163  const char *class,
164  const char *site,
165  const char *facility,
166  DBResult **result)
167 {
168  const char *command = "SELECT * FROM inquire_process_families($1,$2,$3,$4)";
169  const char *params[4];
170 
171  params[0] = category;
172  params[1] = class;
173  params[2] = site;
174  params[3] = facility;
175 
176  return(dbconn_query(dbconn, command, 4, params, result));
177 }
178 
179 /*******************************************************************************
180 * Family Processes
181 */
182 
183 DBStatus dsdbog_get_family_process(
184  DBConn *dbconn,
185  const char *site,
186  const char *facility,
187  const char *proc_type,
188  const char *proc_name,
189  DBResult **result)
190 {
191  const char *command = "SELECT * FROM get_family_process($1,$2,$3,$4)";
192  const char *params[4];
193 
194  params[0] = site;
195  params[1] = facility;
196  params[2] = proc_type;
197  params[3] = proc_name;
198 
199  return(dbconn_query(dbconn, command, 4, params, result));
200 }
201 
202 DBStatus dsdbog_inquire_family_processes(
203  DBConn *dbconn,
204  const char *category,
205  const char *class,
206  const char *site,
207  const char *facility,
208  const char *proc_type,
209  const char *proc_name,
210  DBResult **result)
211 {
212  const char *command = "SELECT * FROM inquire_family_processes($1,$2,$3,$4,$5,$6)";
213  const char *params[6];
214 
215  params[0] = category;
216  params[1] = class;
217  params[2] = site;
218  params[3] = facility;
219  params[4] = proc_type;
220  params[5] = proc_name;
221 
222  return(dbconn_query(dbconn, command, 6, params, result));
223 }
224 
225 DBStatus dsdbog_get_family_process_location(
226  DBConn *dbconn,
227  const char *site,
228  const char *facility,
229  const char *proc_type,
230  const char *proc_name,
231  DBResult **result)
232 {
233  const char *command = "SELECT * FROM get_family_process_location($1,$2,$3,$4)";
234  const char *params[4];
235 
236  params[0] = site;
237  params[1] = facility;
238  params[2] = proc_type;
239  params[3] = proc_name;
240 
241  return(dbconn_query(dbconn, command, 4, params, result));
242 }
243 
244 /*******************************************************************************
245 * Family Process States
246 */
247 
248 DBStatus dsdbog_delete_family_process_state(
249  DBConn *dbconn,
250  const char *site,
251  const char *facility,
252  const char *proc_type,
253  const char *proc_name,
254  int *result)
255 {
256  const char *command = "SELECT delete_family_process_state($1,$2,$3,$4)";
257  const char *params[4];
258 
259  params[0] = site;
260  params[1] = facility;
261  params[2] = proc_type;
262  params[3] = proc_name;
263 
264  return(dbconn_query_bool(dbconn, command, 4, params, result));
265 }
266 
267 DBStatus dsdbog_get_family_process_state(
268  DBConn *dbconn,
269  const char *site,
270  const char *facility,
271  const char *proc_type,
272  const char *proc_name,
273  DBResult **result)
274 {
275  const char *command = "SELECT * FROM get_family_process_state($1,$2,$3,$4)";
276  const char *params[4];
277 
278  params[0] = site;
279  params[1] = facility;
280  params[2] = proc_type;
281  params[3] = proc_name;
282 
283  return(dbconn_query(dbconn, command, 4, params, result));
284 }
285 
286 DBStatus dsdbog_inquire_family_process_states(
287  DBConn *dbconn,
288  const char *category,
289  const char *class,
290  const char *site,
291  const char *facility,
292  const char *proc_type,
293  const char *proc_name,
294  DBResult **result)
295 {
296  const char *command = "SELECT * FROM inquire_family_process_states($1,$2,$3,$4,$5,$6)";
297  const char *params[6];
298 
299  params[0] = category;
300  params[1] = class;
301  params[2] = site;
302  params[3] = facility;
303  params[4] = proc_type;
304  params[5] = proc_name;
305 
306  return(dbconn_query(dbconn, command, 6, params, result));
307 }
308 
309 DBStatus dsdbog_is_family_process_enabled(
310  DBConn *dbconn,
311  const char *site,
312  const char *facility,
313  const char *proc_type,
314  const char *proc_name,
315  int *result)
316 {
317  const char *command = "SELECT is_family_process_enabled($1,$2,$3,$4)";
318  const char *params[4];
319 
320  params[0] = site;
321  params[1] = facility;
322  params[2] = proc_type;
323  params[3] = proc_name;
324 
325  return(dbconn_query_bool(dbconn, command, 4, params, result));
326 }
327 
328 DBStatus dsdbog_update_family_process_state(
329  DBConn *dbconn,
330  const char *site,
331  const char *facility,
332  const char *proc_type,
333  const char *proc_name,
334  const char *state,
335  const char *description,
336  time_t state_time,
337  int *result)
338 {
339  const char *command = "SELECT update_family_process_state($1,$2,$3,$4,$5,$6,$7)";
340  const char *params[7];
341  char time_string[32];
342 
343  params[0] = site;
344  params[1] = facility;
345  params[2] = proc_type;
346  params[3] = proc_name;
347  params[4] = state;
348  params[5] = description;
349 
350  if (state_time) {
351  params[6] = dbconn_time_to_text(dbconn, state_time, time_string);
352  if (!params[6]) {
353  *result = 0;
354  return(DB_ERROR);
355  }
356  }
357  else {
358  params[6] = (const char *)NULL;
359  }
360 
361  return(dbconn_query_int(dbconn, command, 7, params, result));
362 }
363 
364 /*******************************************************************************
365 * Family Process Statuses
366 */
367 
368 DBStatus dsdbog_delete_family_process_status(
369  DBConn *dbconn,
370  const char *site,
371  const char *facility,
372  const char *proc_type,
373  const char *proc_name,
374  int *result)
375 {
376  const char *command = "SELECT delete_family_process_status($1,$2,$3,$4)";
377  const char *params[4];
378 
379  params[0] = site;
380  params[1] = facility;
381  params[2] = proc_type;
382  params[3] = proc_name;
383 
384  return(dbconn_query_bool(dbconn, command, 4, params, result));
385 }
386 
387 DBStatus dsdbog_get_family_process_status(
388  DBConn *dbconn,
389  const char *site,
390  const char *facility,
391  const char *proc_type,
392  const char *proc_name,
393  DBResult **result)
394 {
395  const char *command = "SELECT * FROM get_family_process_status($1,$2,$3,$4)";
396  const char *params[4];
397 
398  params[0] = site;
399  params[1] = facility;
400  params[2] = proc_type;
401  params[3] = proc_name;
402 
403  return(dbconn_query(dbconn, command, 4, params, result));
404 }
405 
406 DBStatus dsdbog_inquire_family_process_statuses(
407  DBConn *dbconn,
408  const char *category,
409  const char *class,
410  const char *site,
411  const char *facility,
412  const char *proc_type,
413  const char *proc_name,
414  DBResult **result)
415 {
416  const char *command = "SELECT * FROM inquire_family_process_statuses($1,$2,$3,$4,$5,$6)";
417  const char *params[6];
418 
419  params[0] = category;
420  params[1] = class;
421  params[2] = site;
422  params[3] = facility;
423  params[4] = proc_type;
424  params[5] = proc_name;
425 
426  return(dbconn_query(dbconn, command, 6, params, result));
427 }
428 
429 DBStatus dsdbog_update_family_process_started(
430  DBConn *dbconn,
431  const char *site,
432  const char *facility,
433  const char *proc_type,
434  const char *proc_name,
435  time_t started_time,
436  int *result)
437 {
438  const char *command = "SELECT update_family_process_started($1,$2,$3,$4,$5)";
439  const char *params[5];
440  char time_string[32];
441 
442  params[0] = site;
443  params[1] = facility;
444  params[2] = proc_type;
445  params[3] = proc_name;
446 
447  if (started_time) {
448  params[4] = dbconn_time_to_text(dbconn, started_time, time_string);
449  if (!params[4]) {
450  *result = 0;
451  return(DB_ERROR);
452  }
453  }
454  else {
455  params[4] = (const char *)NULL;
456  }
457 
458  return(dbconn_query_int(dbconn, command, 5, params, result));
459 }
460 
461 DBStatus dsdbog_update_family_process_completed(
462  DBConn *dbconn,
463  const char *site,
464  const char *facility,
465  const char *proc_type,
466  const char *proc_name,
467  time_t completed_time,
468  int *result)
469 {
470  const char *command = "SELECT update_family_process_completed($1,$2,$3,$4,$5)";
471  const char *params[5];
472  char time_string[32];
473 
474  params[0] = site;
475  params[1] = facility;
476  params[2] = proc_type;
477  params[3] = proc_name;
478 
479  if (completed_time) {
480  params[4] = dbconn_time_to_text(dbconn, completed_time, time_string);
481  if (!params[4]) {
482  *result = 0;
483  return(DB_ERROR);
484  }
485  }
486  else {
487  params[4] = (const char *)NULL;
488  }
489 
490  return(dbconn_query_int(dbconn, command, 5, params, result));
491 }
492 
493 DBStatus dsdbog_update_family_process_status(
494  DBConn *dbconn,
495  const char *site,
496  const char *facility,
497  const char *proc_type,
498  const char *proc_name,
499  const char *status,
500  const char *description,
501  time_t completed_time,
502  int *result)
503 {
504  const char *command = "SELECT update_family_process_status($1,$2,$3,$4,$5,$6,$7)";
505  const char *params[7];
506  char time_string[32];
507 
508  params[0] = site;
509  params[1] = facility;
510  params[2] = proc_type;
511  params[3] = proc_name;
512  params[4] = status;
513  params[5] = description;
514 
515  if (completed_time) {
516  params[6] = dbconn_time_to_text(dbconn, completed_time, time_string);
517  if (!params[6]) {
518  *result = 0;
519  return(DB_ERROR);
520  }
521  }
522  else {
523  params[6] = (const char *)NULL;
524  }
525 
526  return(dbconn_query_int(dbconn, command, 7, params, result));
527 }
528 
529 /*******************************************************************************
530 * Process Input Datastream Classes
531 */
532 
533 DBStatus dsdbog_get_process_input_ds_classes(
534  DBConn *dbconn,
535  const char *proc_type,
536  const char *proc_name,
537  DBResult **result)
538 {
539  const char *command = "SELECT * FROM get_process_input_ds_classes($1,$2)";
540  const char *params[2];
541 
542  params[0] = proc_type;
543  params[1] = proc_name;
544 
545  return(dbconn_query(dbconn, command, 2, params, result));
546 }
547 
548 DBStatus dsdbog_inquire_process_input_ds_classes(
549  DBConn *dbconn,
550  const char *proc_type,
551  const char *proc_name,
552  const char *dsc_name,
553  const char *dsc_level,
554  DBResult **result)
555 {
556  const char *command = "SELECT * FROM inquire_process_input_ds_classes($1,$2,$3,$4)";
557  const char *params[4];
558 
559  params[0] = proc_type;
560  params[1] = proc_name;
561  params[2] = dsc_name;
562  params[3] = dsc_level;
563 
564  return(dbconn_query(dbconn, command, 4, params, result));
565 }
566 
567 /*******************************************************************************
568 * Process Output Datastream Classes
569 */
570 
571 DBStatus dsdbog_get_process_output_ds_classes(
572  DBConn *dbconn,
573  const char *proc_type,
574  const char *proc_name,
575  DBResult **result)
576 {
577  const char *command = "SELECT * FROM get_process_output_ds_classes($1,$2)";
578  const char *params[2];
579 
580  params[0] = proc_type;
581  params[1] = proc_name;
582 
583  return(dbconn_query(dbconn, command, 2, params, result));
584 }
585 
586 DBStatus dsdbog_inquire_process_output_ds_classes(
587  DBConn *dbconn,
588  const char *proc_type,
589  const char *proc_name,
590  const char *dsc_name,
591  const char *dsc_level,
592  DBResult **result)
593 {
594  const char *command = "SELECT * FROM inquire_process_output_ds_classes($1,$2,$3,$4)";
595  const char *params[4];
596 
597  params[0] = proc_type;
598  params[1] = proc_name;
599  params[2] = dsc_name;
600  params[3] = dsc_level;
601 
602  return(dbconn_query(dbconn, command, 4, params, result));
603 }
604 
605 /*******************************************************************************
606 * Process Output Datastreams
607 */
608 
609 DBStatus dsdbog_delete_process_output_datastream(
610  DBConn *dbconn,
611  const char *proc_type,
612  const char *proc_name,
613  const char *dsc_name,
614  const char *dsc_level,
615  const char *site,
616  const char *facility,
617  int *result)
618 {
619  const char *command = "SELECT delete_process_output_datastream($1,$2,$3,$4,$5,$6)";
620  const char *params[6];
621 
622  params[0] = proc_type;
623  params[1] = proc_name;
624  params[2] = dsc_name;
625  params[3] = dsc_level;
626  params[4] = site;
627  params[5] = facility;
628 
629  return(dbconn_query_bool(dbconn, command, 6, params, result));
630 }
631 
632 DBStatus dsdbog_get_process_output_datastream(
633  DBConn *dbconn,
634  const char *proc_type,
635  const char *proc_name,
636  const char *dsc_name,
637  const char *dsc_level,
638  const char *site,
639  const char *facility,
640  DBResult **result)
641 {
642  const char *command = "SELECT * FROM get_process_output_datastream($1,$2,$3,$4,$5,$6)";
643  const char *params[6];
644 
645  params[0] = proc_type;
646  params[1] = proc_name;
647  params[2] = dsc_name;
648  params[3] = dsc_level;
649  params[4] = site;
650  params[5] = facility;
651 
652  return(dbconn_query(dbconn, command, 6, params, result));
653 }
654 
655 DBStatus dsdbog_inquire_process_output_datastreams(
656  DBConn *dbconn,
657  const char *proc_type,
658  const char *proc_name,
659  const char *dsc_name,
660  const char *dsc_level,
661  const char *site,
662  const char *facility,
663  DBResult **result)
664 {
665  const char *command = "SELECT * FROM inquire_process_output_datastreams($1,$2,$3,$4,$5,$6)";
666  const char *params[6];
667 
668  params[0] = proc_type;
669  params[1] = proc_name;
670  params[2] = dsc_name;
671  params[3] = dsc_level;
672  params[4] = site;
673  params[5] = facility;
674 
675  return(dbconn_query(dbconn, command, 6, params, result));
676 }
677 
678 DBStatus dsdbog_update_process_output_datastream(
679  DBConn *dbconn,
680  const char *proc_type,
681  const char *proc_name,
682  const char *dsc_name,
683  const char *dsc_level,
684  const char *site,
685  const char *facility,
686  const timeval_t *first_time,
687  const timeval_t *last_time,
688  int *result)
689 {
690  const char *command = "SELECT update_process_output_datastream($1,$2,$3,$4,$5,$6,$7,$8)";
691  const char *params[8];
692  char first_string[32];
693  char last_string[32];
694 
695  params[0] = proc_type;
696  params[1] = proc_name;
697  params[2] = dsc_name;
698  params[3] = dsc_level;
699  params[4] = site;
700  params[5] = facility;
701 
702  if (first_time && first_time->tv_sec) {
703  params[6] = dbconn_timeval_to_text(dbconn, first_time, first_string);
704  if (!params[6]) {
705  *result = 0;
706  return(DB_ERROR);
707  }
708  }
709  else {
710  params[6] = (const char *)NULL;
711  }
712 
713  if (last_time && last_time->tv_sec) {
714  params[7] = dbconn_timeval_to_text(dbconn, last_time, last_string);
715  if (!params[7]) {
716  *result = 0;
717  return(DB_ERROR);
718  }
719  }
720  else {
721  params[7] = (const char *)NULL;
722  }
723 
724  return(dbconn_query_int(dbconn, command, 8, params, result));
725 }
726 
727 /*******************************************************************************
728 * Datastream Config Values
729 */
730 
731 DBStatus dsdbog_define_datastream_config_key(
732  DBConn *dbconn,
733  const char *key,
734  int *result)
735 {
736  const char *command = "SELECT define_datastream_config_key($1)";
737  const char *params[1];
738 
739  params[0] = key;
740 
741  return(dbconn_query_int(dbconn, command, 1, params, result));
742 }
743 
744 DBStatus dsdbog_delete_datastream_config_key(
745  DBConn *dbconn,
746  const char *key,
747  int *result)
748 {
749  const char *command = "SELECT delete_datastream_config_key($1)";
750  const char *params[1];
751 
752  params[0] = key;
753 
754  return(dbconn_query_bool(dbconn, command, 1, params, result));
755 }
756 
757 DBStatus dsdbog_delete_datastream_config_value(
758  DBConn *dbconn,
759  const char *dsc_name,
760  const char *dsc_level,
761  const char *site,
762  const char *facility,
763  const char *key,
764  int *result)
765 {
766  const char *command = "SELECT delete_datastream_config_value($1,$2,$3,$4,$5)";
767  const char *params[5];
768 
769  params[0] = dsc_name;
770  params[1] = dsc_level;
771  params[2] = site;
772  params[3] = facility;
773  params[4] = key;
774 
775  return(dbconn_query_bool(dbconn, command, 5, params, result));
776 }
777 
778 DBStatus dsdbog_get_datastream_config_values(
779  DBConn *dbconn,
780  const char *dsc_name,
781  const char *dsc_level,
782  const char *site,
783  const char *facility,
784  const char *key,
785  DBResult **result)
786 {
787  const char *command = "SELECT * FROM get_datastream_config_values($1,$2,$3,$4,$5)";
788  const char *params[5];
789 
790  params[0] = dsc_name;
791  params[1] = dsc_level;
792  params[2] = site;
793  params[3] = facility;
794  params[4] = key;
795 
796  return(dbconn_query(dbconn, command, 5, params, result));
797 }
798 
799 DBStatus dsdbog_update_datastream_config_value(
800  DBConn *dbconn,
801  const char *dsc_name,
802  const char *dsc_level,
803  const char *site,
804  const char *facility,
805  const char *key,
806  const char *value,
807  int *result)
808 {
809  const char *command = "SELECT update_process_config_value($1,$2,$3,$4,$5,$6";
810  const char *params[6];
811 
812  params[0] = dsc_name;
813  params[1] = dsc_level;
814  params[2] = site;
815  params[3] = facility;
816  params[4] = key;
817  params[5] = value;
818 
819  return(dbconn_query_int(dbconn, command, 6, params, result));
820 }