]> andersk Git - moira.git/blame_incremental - server/queries2.c
Changes from dtanner.
[moira.git] / server / queries2.c
... / ...
CommitLineData
1/* $Id$
2 *
3 * This file defines the query dispatch table
4 *
5 * Copyright (C) 1987-1998 by the Massachusetts Institute of Technology.
6 * For copying and distribution information, please see the file
7 * <mit-copyright.h>.
8 */
9
10#include <mit-copyright.h>
11#include "mr_server.h"
12#include "query.h"
13
14#include "mr_et.h"
15
16/* VALOBJS
17 * These are commonly used validation objects, defined here so that they
18 * can be shared.
19 */
20
21static struct valobj VOuser0[] = {
22 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
23};
24
25static struct valobj VOmach0[] = {
26 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
27};
28
29static struct valobj VOclu0[] = {
30 {V_ID, 0, CLUSTERS_TABLE, "name", "clu_id", MR_CLUSTER},
31};
32
33static struct valobj VOsnet0[] = {
34 {V_ID, 0, SUBNET_TABLE, "name", "snet_id", MR_SUBNET},
35};
36
37static struct valobj VOlist0[] = {
38 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
39};
40
41static struct valobj VOfilesys0[] = {
42 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
43};
44
45static struct valobj VOcon0[] = {
46 {V_ID, 0, CONTAINERS_TABLE, "name", "cnt_id", MR_CONTAINER},
47};
48
49static struct valobj VOnum0[] = {
50 {V_NUM, 0},
51};
52
53/* Validations
54 * Commonly used validation records defined here so that they may
55 * be shared.
56 */
57
58static struct validate VDmach = { VOmach0, 1 };
59
60static struct validate VDfix_modby = {
61 0,
62 0,
63 0,
64 0,
65 0,
66 0,
67 0,
68 0,
69 followup_fix_modby,
70};
71
72/* Query data */
73
74static char *galo2_fields[] = {
75 "login", "unix_uid", "shell", "last", "first", "middle",
76};
77
78static char *galo_fields[] = {
79 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
80};
81
82static char *gual2_fields[] = {
83 "login",
84 "login", "unix_uid", "shell", "last", "first", "middle", "status",
85 "clearid", "class", "comments", "signature", "secure",
86 "modtime", "modby", "modwith",
87};
88
89static char *gual_fields[] = {
90 "login",
91 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
92 "status", "clearid", "class", "comments", "signature", "secure",
93 "modtime", "modby", "modwith",
94};
95
96static char *gubl2_fields[] = {
97 "login",
98 "login", "unix_uid", "shell", "last", "first", "middle", "status",
99 "clearid", "class", "modtime", "modby", "modwith",
100};
101
102static char *gubl_fields[] = {
103 "login",
104 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
105 "status", "clearid", "class", "modtime", "modby", "modwith",
106};
107
108static struct validate gubl_validate =
109{
110 0,
111 0,
112 0,
113 0,
114 0,
115 0,
116 access_login,
117 0,
118 followup_fix_modby,
119};
120
121static char *guau2_fields[] = {
122 "unix_uid",
123 "login", "unix_uid", "shell", "last", "first", "middle", "status",
124 "clearid", "class", "comments", "signature", "secure",
125 "modtime", "modby", "modwith",
126};
127
128static char *guau_fields[] = {
129 "unix_uid",
130 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
131 "status", "clearid", "class", "comments", "signature", "secure",
132 "modtime", "modby", "modwith",
133};
134
135static char *guan2_fields[] = {
136 "first", "last",
137 "login", "unix_uid", "shell", "last", "first", "middle", "status",
138 "clearid", "class", "comments", "signature", "secure",
139 "modtime", "modby", "modwith",
140};
141
142static char *guan_fields[] = {
143 "first", "last",
144 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
145 "status", "clearid", "class", "comments", "signature", "secure",
146 "modtime", "modby", "modwith",
147};
148
149static struct validate guan_validate =
150{
151 0,
152 0,
153 0,
154 0,
155 0,
156 0,
157 0,
158 0,
159 followup_fix_modby,
160};
161
162static char *guac2_fields[] = {
163 "class",
164 "login", "unix_uid", "shell", "last", "first", "middle", "status",
165 "clearid", "class", "comments", "signature", "secure",
166 "modtime", "modby", "modwith",
167};
168
169static char *guac_fields[] = {
170 "class",
171 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
172 "status", "clearid", "class", "comments", "signature", "secure",
173 "modtime", "modby", "modwith",
174};
175
176static char *guam2_fields[] = {
177 "clearid",
178 "login", "unix_uid", "shell", "last", "first", "middle", "status",
179 "clearid", "class", "comments", "signature", "secure",
180 "modtime", "modby", "modwith",
181};
182
183static char *guam_fields[] = {
184 "clearid",
185 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
186 "status", "clearid", "class", "comments", "signature", "secure",
187 "modtime", "modby", "modwith",
188};
189
190static char *gubu2_fields[] = {
191 "unix_uid",
192 "login", "unix_uid", "shell", "last", "first", "middle", "status",
193 "clearid", "class", "modtime", "modby", "modwith",
194};
195
196static char *gubu_fields[] = {
197 "unix_uid",
198 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
199 "status", "clearid", "class", "modtime", "modby", "modwith",
200};
201
202static struct validate gubu_validate =
203{
204 VOnum0,
205 1,
206 0,
207 0,
208 0,
209 0,
210 access_login,
211 0,
212 followup_fix_modby,
213};
214
215static char *gubn2_fields[] = {
216 "first", "last",
217 "login", "unix_uid", "shell", "last", "first", "middle", "status",
218 "clearid", "class", "modtime", "modby", "modwith",
219};
220
221static char *gubn_fields[] = {
222 "first", "last",
223 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
224 "status", "clearid", "class", "modtime", "modby", "modwith",
225};
226
227static struct validate gubn_validate =
228{
229 0,
230 0,
231 0,
232 0,
233 0,
234 0,
235 0,
236 0,
237 followup_fix_modby,
238};
239
240static char *gubc2_fields[] = {
241 "class",
242 "login", "unix_uid", "shell", "last", "first", "middle", "status",
243 "clearid", "class", "modtime", "modby", "modwith",
244};
245
246static char *gubc_fields[] = {
247 "class",
248 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
249 "status", "clearid", "class", "modtime", "modby", "modwith",
250};
251
252static char *gubm2_fields[] = {
253 "clearid",
254 "login", "unix_uid", "shell", "last", "first", "middle", "status",
255 "clearid", "class", "modtime", "modby", "modwith",
256};
257
258static char *gubm_fields[] = {
259 "clearid",
260 "login", "unix_uid", "shell", "winconsoleshell", "last", "first",
261 "middle", "status", "clearid", "class", "modtime", "modby", "modwith",
262};
263
264static char *auac2_fields[] = {
265 "login", "unix_uid", "shell", "last", "first", "middle", "status",
266 "clearid", "class", "comments", "signature", "secure",
267};
268
269static char *auac_fields[] = {
270 "login", "unix_uid", "shell", "winconsoleshell", "last", "first",
271 "middle", "status", "clearid", "class", "comments", "signature", "secure",
272};
273
274static struct valobj auac2_valobj[] = {
275 {V_CHAR, 0, USERS_TABLE, "login"},
276 {V_NUM, 1},
277 {V_CHAR, 2, USERS_TABLE, "shell"},
278 {V_CHAR, 3, USERS_TABLE, "last"},
279 {V_CHAR, 4, USERS_TABLE, "first"},
280 {V_CHAR, 5, USERS_TABLE, "middle"},
281 {V_NUM, 6},
282 {V_CHAR, 7, USERS_TABLE, "clearid"},
283 {V_TYPE, 8, 0, "class", 0, MR_BAD_CLASS},
284 {V_ID, 9, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
285 {V_NUM, 11},
286};
287
288static struct valobj auac_valobj[] = {
289 {V_CHAR, 0, USERS_TABLE, "login"},
290 {V_NUM, 1},
291 {V_CHAR, 2, USERS_TABLE, "shell"},
292 {V_CHAR, 3, USERS_TABLE, "winconsoleshell"},
293 {V_CHAR, 4, USERS_TABLE, "last"},
294 {V_CHAR, 5, USERS_TABLE, "first"},
295 {V_CHAR, 6, USERS_TABLE, "middle"},
296 {V_NUM, 7},
297 {V_CHAR, 8, USERS_TABLE, "clearid"},
298 {V_TYPE, 9, 0, "class", 0, MR_BAD_CLASS},
299 {V_ID, 10, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
300 {V_NUM, 12},
301};
302
303static struct validate auac2_validate = {
304 auac2_valobj,
305 11,
306 "login",
307 "login = '%s'",
308 1,
309 "users_id",
310 0,
311 setup_ausr,
312 followup_ausr,
313};
314
315static struct validate auac_validate = {
316 auac_valobj,
317 12,
318 "login",
319 "login = '%s'",
320 1,
321 "users_id",
322 0,
323 setup_ausr,
324 followup_ausr,
325};
326
327static struct validate ausr2_validate = {
328 auac2_valobj,
329 9,
330 "login",
331 "login = '%s'",
332 1,
333 "users_id",
334 0,
335 setup_ausr,
336 followup_ausr,
337};
338
339static struct validate ausr_validate = {
340 auac_valobj,
341 10,
342 "login",
343 "login = '%s'",
344 1,
345 "users_id",
346 0,
347 setup_ausr,
348 followup_ausr,
349};
350
351static char *rusr_fields[] = {
352 "unix_uid", "login", "pobox_type"
353};
354
355static struct valobj rusr_valobj[] = {
356 {V_NUM, 0},
357 {V_CHAR, 1, USERS_TABLE, "login"},
358};
359
360static struct validate rusr_validate = {
361 rusr_valobj,
362 2,
363 0,
364 0,
365 0,
366 0,
367 0,
368 register_user,
369 0,
370};
371
372static char *uuac2_fields[] = {
373 "login",
374 "newlogin", "unix_uid", "shell", "last", "first", "middle", "status",
375 "clearid", "class", "comments", "signature", "secure",
376};
377
378static char *uuac_fields[] = {
379 "login",
380 "newlogin", "unix_uid", "shell", "winconsoleshell", "last", "first",
381 "middle", "status", "clearid", "class", "comments", "signature", "secure",
382};
383
384static struct valobj uuac2_valobj[] = {
385 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
386 {V_RENAME, 1, USERS_TABLE, "login", "users_id", MR_NOT_UNIQUE},
387 {V_NUM, 2},
388 {V_CHAR, 3, USERS_TABLE, "shell"},
389 {V_CHAR, 4, USERS_TABLE, "first"},
390 {V_CHAR, 5, USERS_TABLE, "last"},
391 {V_CHAR, 6, USERS_TABLE, "middle"},
392 {V_NUM, 7},
393 {V_CHAR, 8, USERS_TABLE, "clearid"},
394 {V_TYPE, 9, 0, "class", 0, MR_BAD_CLASS},
395 {V_ID, 10, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
396 {V_NUM, 12},
397};
398
399static struct valobj uuac_valobj[] = {
400 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
401 {V_RENAME, 1, USERS_TABLE, "login", "users_id", MR_NOT_UNIQUE},
402 {V_NUM, 2},
403 {V_CHAR, 3, USERS_TABLE, "shell"},
404 {V_CHAR, 4, USERS_TABLE, "winconsoleshell"},
405 {V_CHAR, 5, USERS_TABLE, "first"},
406 {V_CHAR, 6, USERS_TABLE, "last"},
407 {V_CHAR, 7, USERS_TABLE, "middle"},
408 {V_NUM, 8},
409 {V_CHAR, 9, USERS_TABLE, "clearid"},
410 {V_TYPE, 10, 0, "class", 0, MR_BAD_CLASS},
411 {V_ID, 11, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
412 {V_NUM, 13},
413};
414
415static struct validate uuac2_validate = {
416 uuac2_valobj,
417 12,
418 0,
419 0,
420 0,
421 "users_id",
422 0,
423 setup_ausr,
424 set_modtime_by_id,
425};
426
427static struct validate uuac_validate = {
428 uuac_valobj,
429 13,
430 0,
431 0,
432 0,
433 "users_id",
434 0,
435 setup_ausr,
436 set_modtime_by_id,
437};
438
439static struct validate uusr2_validate = {
440 uuac2_valobj,
441 10,
442 0,
443 0,
444 0,
445 "users_id",
446 0,
447 setup_ausr,
448 set_modtime_by_id,
449};
450
451static struct validate uusr_validate = {
452 uuac_valobj,
453 11,
454 0,
455 0,
456 0,
457 "users_id",
458 0,
459 setup_ausr,
460 set_modtime_by_id,
461};
462
463static char *uush_fields[] = {
464 "login",
465 "shell",
466};
467
468static struct valobj uush_valobj[] = {
469 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
470 {V_CHAR, 1, USERS_TABLE, "shell"},
471};
472
473static struct validate uush_validate = {
474 uush_valobj,
475 2,
476 0,
477 0,
478 0,
479 "users_id",
480 access_user,
481 0,
482 set_finger_modtime,
483};
484
485static char *uuws_fields[] = {
486 "login",
487 "winconsoleshell",
488};
489
490static struct valobj uuws_valobj[] = {
491 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
492 {V_CHAR, 1, USERS_TABLE, "winconsoleshell"},
493};
494
495static struct validate uuws_validate = {
496 uuws_valobj,
497 2,
498 0,
499 0,
500 0,
501 "users_id",
502 access_user,
503 0,
504 set_finger_modtime,
505};
506
507static char *uust_fields[] = {
508 "login",
509 "status",
510};
511
512static char *uuss_fields[] = {
513 "login",
514 "secure",
515};
516
517static struct valobj uust_valobj[] = {
518 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
519 {V_NUM, 1},
520 {V_NUM, 2},
521};
522
523static struct validate uust_validate = {
524 uust_valobj,
525 2,
526 0,
527 0,
528 0,
529 "users_id",
530 0,
531 0,
532 set_modtime_by_id,
533};
534
535static char *dusr_fields[] = {
536 "login",
537};
538
539static struct validate dusr_validate = {
540 VOuser0,
541 1,
542 0,
543 0,
544 0,
545 0,
546 0,
547 setup_dusr,
548 0,
549};
550
551static char *aurv_fields[] = {
552 "login", "reservation",
553};
554
555static struct validate aurv_validate = {
556 VOuser0,
557 1,
558 0,
559 0,
560 0,
561 "users_id",
562 0,
563 0,
564 do_user_reservation,
565};
566
567static char *gurv_fields[] = {
568 "login",
569 "reservation",
570};
571
572static struct validate gurv_validate = {
573 VOuser0,
574 1,
575 0,
576 0,
577 0,
578 0,
579 0,
580 0,
581 get_user_reservations,
582};
583
584static char *gubr_fields[] = {
585 "reservation",
586 "login",
587};
588
589static struct validate gubr_validate = {
590 0,
591 0,
592 0,
593 0,
594 0,
595 0,
596 0,
597 0,
598 get_user_by_reservation,
599};
600
601static char *gkum_fields[] = { "login", "kerberos",
602 "login", "kerberos" };
603
604static char *akum_fields[] = { "login", "kerberos" };
605
606static struct valobj akum_valobj[] =
607{
608 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
609 {V_ID, 1, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
610};
611
612static struct validate akum_validate =
613{
614 akum_valobj,
615 2,
616 "users_id",
617 "users_id = %d or string_id = %d",
618 2,
619 "users_id",
620 access_user,
621 0,
622 0,
623};
624
625static struct validate dkum_validate =
626{
627 akum_valobj,
628 2,
629 "users_id",
630 "users_id = %d and string_id = %d",
631 2,
632 "users_id",
633 access_user,
634 0,
635 0,
636};
637
638static char *gfbl_fields[] = {
639 "login",
640 "login", "fullname", "nickname", "home_addr",
641 "home_phone", "office_addr", "office_phone", "department",
642 "affiliation", "modtime", "modby", "modwith",
643};
644
645static struct validate gfbl_validate = {
646 VOuser0,
647 1,
648 0,
649 0,
650 0,
651 0,
652 access_user,
653 0,
654 followup_fix_modby,
655};
656
657static char *ufbl_fields[] = {
658 "login",
659 "fullname", "nickname", "home_addr",
660 "home_phone", "office_addr", "office_phone", "department",
661 "affiliation",
662};
663
664static struct valobj ufbl_valobj[] = {
665 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
666 {V_LEN, 1, USERS_TABLE, "fullname"},
667 {V_LEN, 2, USERS_TABLE, "nickname"},
668 {V_LEN, 3, USERS_TABLE, "home_addr"},
669 {V_LEN, 4, USERS_TABLE, "home_phone"},
670 {V_LEN, 5, USERS_TABLE, "office_addr"},
671 {V_LEN, 6, USERS_TABLE, "office_phone"},
672 {V_LEN, 7, USERS_TABLE, "department"},
673 {V_LEN, 8, USERS_TABLE, "affiliation"},
674};
675
676static struct validate ufbl_validate = {
677 ufbl_valobj,
678 9,
679 0,
680 0,
681 0,
682 0,
683 access_user,
684 0,
685 set_finger_modtime,
686};
687
688static char *gpob_fields[] = {
689 "login",
690 "login", "type", "box", "address", "modtime", "modby", "modwith",
691};
692
693static struct validate gpob_validate = {
694 VOuser0,
695 1,
696 "potype",
697 "potype != 'NONE' and users_id = %d",
698 1,
699 0,
700 access_user,
701 0,
702 followup_gpob,
703};
704
705static char *gpox_fields[] = {
706 "login", "type", "box",
707};
708
709static struct validate gpox_validate = {
710 0,
711 0,
712 0,
713 0,
714 0,
715 0,
716 0,
717 0,
718 followup_gpob,
719};
720
721static char *spob_fields[] = {
722 "login", "type", "box",
723};
724
725static struct valobj spob_valobj[] = {
726 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
727 {V_TYPE, 1, 0, "pobox", 0, MR_TYPE},
728};
729
730static struct validate spob_validate = /* SET_POBOX */
731{
732 spob_valobj,
733 2,
734 0,
735 0,
736 0,
737 0,
738 access_spob,
739 0,
740 set_pobox,
741};
742
743static struct validate spop_validate = /* SET_POBOX_POP */
744{
745 VOuser0,
746 1,
747 0,
748 0,
749 0,
750 0,
751 access_user,
752 0,
753 set_pobox_pop,
754};
755
756static struct validate dpob_validate = /* DELETE_POBOX */
757{
758 VOuser0,
759 1,
760 0,
761 0,
762 0,
763 0,
764 access_user,
765 setup_dpob,
766 set_pobox_modtime,
767};
768
769static char *gmac_fields[] = {
770 "name",
771 "name", "type", "modtime", "modby", "modwith",
772};
773
774static char *ghst2_fields[] = {
775 "name", "address", "location", "network",
776 "name", "vendor", "model", "os", "location", "contact", "use",
777 "status", "status_change", "network", "address", "ace_type",
778 "ace_name", "admin_comment", "ops_comment", "created", "creator",
779 "inuse", "modtime", "modby", "modwith",
780};
781
782static char *ghbh2_fields[] = {
783 "hwaddr",
784 "name", "vendor", "model", "os", "location", "contact", "use",
785 "status", "status_change", "network", "address", "ace_type",
786 "ace_name", "admin_comment", "ops_comment", "created", "creator",
787 "inuse", "modtime", "modby", "modwith",
788};
789
790static char *ghst_fields[] = {
791 "name", "address", "location", "network",
792 "name", "vendor", "model", "os", "location", "contact", "billing_contact",
793 "use", "status", "status_change", "network", "address", "ace_type",
794 "ace_name", "admin_comment", "ops_comment", "created", "creator",
795 "inuse", "modtime", "modby", "modwith",
796};
797
798static char *ghbh_fields[] = {
799 "hwaddr",
800 "name", "vendor", "model", "os", "location", "contact", "billing_contact",
801 "use", "status", "status_change", "network", "address", "ace_type",
802 "ace_name", "admin_comment", "ops_comment", "created", "creator",
803 "inuse", "modtime", "modby", "modwith",
804};
805
806static struct validate ghst_validate = {
807 0,
808 0,
809 0,
810 0,
811 0,
812 0,
813 access_host,
814 0,
815 followup_ghst,
816};
817
818static char *ghha_fields[] = {
819 "name",
820 "hwaddr",
821};
822
823static char *ahst2_fields[] = {
824 "name", "vendor", "model", "os", "location", "contact", "use",
825 "status", "subnet", "address", "ace_type", "ace_name",
826 "admin_comment", "ops_comment",
827};
828
829static struct valobj ahst2_valobj[] = {
830 {V_CHAR, 0, MACHINE_TABLE, "name"},
831 {V_CHAR, 1, MACHINE_TABLE, "vendor"},
832 {V_CHAR, 2, MACHINE_TABLE, "model"},
833 {V_CHAR, 3, MACHINE_TABLE, "os"},
834 {V_CHAR, 4, MACHINE_TABLE, "location"},
835 {V_CHAR, 5, MACHINE_TABLE, "contact"},
836 {V_NUM, 6},
837 {V_NUM, 7},
838 {V_ID, 8, SUBNET_TABLE, "name", "snet_id", MR_SUBNET},
839 {V_TYPE, 10, 0, "ace_type", 0, MR_ACE},
840 {V_TYPEDATA, 11, 0, 0, 0, MR_ACE},
841 {V_ID, 12, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
842 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
843};
844
845static struct validate ahst2_validate = {
846 ahst2_valobj,
847 13,
848 "name",
849 "name = UPPER('%s')",
850 1,
851 "mach_id",
852 access_host,
853 setup_ahst,
854 set_uppercase_modtime,
855};
856
857static char *ahst_fields[] = {
858 "name", "vendor", "model", "os", "location", "contact", "billing_contact",
859 "use", "status", "subnet", "address", "ace_type", "ace_name",
860 "admin_comment", "ops_comment",
861};
862
863static struct valobj ahst_valobj[] = {
864 {V_CHAR, 0, MACHINE_TABLE, "name"},
865 {V_CHAR, 1, MACHINE_TABLE, "vendor"},
866 {V_CHAR, 2, MACHINE_TABLE, "model"},
867 {V_CHAR, 3, MACHINE_TABLE, "os"},
868 {V_CHAR, 4, MACHINE_TABLE, "location"},
869 {V_CHAR, 5, MACHINE_TABLE, "contact"},
870 {V_CHAR, 6, MACHINE_TABLE, "billing_contact"},
871 {V_NUM, 7},
872 {V_NUM, 8},
873 {V_ID, 9, SUBNET_TABLE, "name", "snet_id", MR_SUBNET},
874 {V_TYPE, 11, 0, "ace_type", 0, MR_ACE},
875 {V_TYPEDATA, 12, 0, 0, 0, MR_ACE},
876 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
877 {V_ID, 14, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
878};
879
880static struct validate ahst_validate = {
881 ahst_valobj,
882 14,
883 "name",
884 "name = UPPER('%s')",
885 1,
886 "mach_id",
887 access_host,
888 setup_ahst,
889 set_uppercase_modtime,
890};
891
892static char *uhst2_fields[] = {
893 "name",
894 "newname", "vendor", "model", "os", "location", "contact", "use",
895 "status", "subnet", "address", "ace_type", "ace_name",
896 "admin_comment", "ops_comment",
897};
898
899static struct valobj uhst2_valobj[] = {
900 {V_CHAR, 0, MACHINE_TABLE, "name"},
901 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
902 {V_RENAME, 1, MACHINE_TABLE, "name", "mach_id", MR_NOT_UNIQUE},
903 {V_CHAR, 2, MACHINE_TABLE, "vendor"},
904 {V_CHAR, 3, MACHINE_TABLE, "model"},
905 {V_CHAR, 4, MACHINE_TABLE, "os"},
906 {V_CHAR, 5, MACHINE_TABLE, "location"},
907 {V_CHAR, 6, MACHINE_TABLE, "contact"},
908 {V_NUM, 7},
909 {V_NUM, 8},
910 {V_ID, 9, SUBNET_TABLE, "name", "snet_id", MR_SUBNET},
911 {V_TYPE, 11, 0, "ace_type", 0, MR_ACE},
912 {V_TYPEDATA, 12, 0, 0, 0, MR_ACE},
913 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
914 {V_ID, 14, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
915};
916
917static struct validate uhst2_validate = {
918 uhst2_valobj,
919 15,
920 0,
921 0,
922 0,
923 "mach_id",
924 access_host,
925 setup_ahst,
926 set_modtime_by_id,
927};
928
929static char *uhst_fields[] = {
930 "name",
931 "newname", "vendor", "model", "os", "location", "contact", "billing_contact",
932 "use", "status", "subnet", "address", "ace_type", "ace_name",
933 "admin_comment", "ops_comment",
934};
935
936static struct valobj uhst_valobj[] = {
937 {V_CHAR, 0, MACHINE_TABLE, "name"},
938 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
939 {V_RENAME, 1, MACHINE_TABLE, "name", "mach_id", MR_NOT_UNIQUE},
940 {V_CHAR, 2, MACHINE_TABLE, "vendor"},
941 {V_CHAR, 3, MACHINE_TABLE, "model"},
942 {V_CHAR, 4, MACHINE_TABLE, "os"},
943 {V_CHAR, 5, MACHINE_TABLE, "location"},
944 {V_CHAR, 6, MACHINE_TABLE, "contact"},
945 {V_CHAR, 7, MACHINE_TABLE, "billing_contact"},
946 {V_NUM, 8},
947 {V_NUM, 9},
948 {V_ID, 10, SUBNET_TABLE, "name", "snet_id", MR_SUBNET},
949 {V_TYPE, 12, 0, "ace_type", 0, MR_ACE},
950 {V_TYPEDATA, 13, 0, 0, 0, MR_ACE},
951 {V_ID, 14, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
952 {V_ID, 15, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
953};
954
955static struct validate uhst_validate = {
956 uhst_valobj,
957 16,
958 0,
959 0,
960 0,
961 "mach_id",
962 access_host,
963 setup_ahst,
964 set_modtime_by_id,
965};
966
967static char *uhha_fields[] = {
968 "name",
969 "hwaddr"
970};
971
972static struct valobj uhha_valobj[] = {
973 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
974 {V_CHAR, 1, MACHINE_TABLE, "hwaddr"},
975};
976
977static struct validate uhha_validate = {
978 uhha_valobj,
979 2,
980 0,
981 0,
982 0,
983 "mach_id",
984 0,
985 setup_uhha,
986 set_modtime_by_id,
987};
988
989static char *dhst_fields[] = {
990 "name",
991};
992
993static struct validate dhst_validate = {
994 VOmach0,
995 1,
996 0,
997 0,
998 0,
999 0,
1000 0,
1001 setup_dmac,
1002 0,
1003};
1004
1005static char *ghal_fields[] = {
1006 "alias", "canonical_hostname",
1007 "alias", "canonical_hostname"
1008};
1009
1010static struct validate ghal_validate = {
1011 0,
1012 0,
1013 0,
1014 0,
1015 0,
1016 0,
1017 access_ahal,
1018 0,
1019 0,
1020};
1021
1022static struct valobj ahal_valobj[] = {
1023 {V_CHAR, 0, HOSTALIAS_TABLE, "name"},
1024 {V_ID, 1, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
1025};
1026
1027static struct validate ahal_validate = {
1028 ahal_valobj,
1029 2,
1030 "name",
1031 "name = UPPER('%s')",
1032 1,
1033 "mach_id",
1034 access_ahal,
1035 setup_ahal,
1036 0,
1037};
1038
1039static struct valobj dhal_valobj[] = {
1040 {V_ID, 1, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
1041};
1042
1043static struct validate dhal_validate = {
1044 dhal_valobj,
1045 1,
1046 "name",
1047 "name = UPPER('%s') AND mach_id = %d",
1048 2,
1049 "mach_id",
1050 access_ahal,
1051 0,
1052 0,
1053};
1054
1055static char *gsnt_fields[] = {
1056 "name",
1057 "name", "description", "address", "mask", "low", "high", "prefix",
1058 "ace_type", "ace_name", "modtime", "modby", "modwith"
1059};
1060
1061static struct validate gsnt_validate = {
1062 0,
1063 0,
1064 0,
1065 0,
1066 0,
1067 0,
1068 access_snt,
1069 0,
1070 followup_gsnt,
1071};
1072
1073static char *asnt_fields[] = {
1074 "name", "description", "address", "mask", "low", "high", "prefix",
1075 "ace_type", "ace_name",
1076};
1077
1078static struct valobj asnt_valobj[] = {
1079 {V_CHAR, 0, SUBNET_TABLE, "name"},
1080 {V_LEN, 1, SUBNET_TABLE, "description"},
1081 {V_NUM, 2},
1082 {V_NUM, 3},
1083 {V_NUM, 4},
1084 {V_NUM, 5},
1085 {V_LEN, 6, SUBNET_TABLE, "prefix"},
1086 {V_TYPE, 7, 0, "ace_type", 0, MR_ACE},
1087 {V_TYPEDATA, 8, 0, 0, 0, MR_ACE},
1088};
1089
1090static struct validate asnt_validate =
1091{
1092 asnt_valobj,
1093 9,
1094 "name",
1095 "name = UPPER('%s')",
1096 1,
1097 "snet_id",
1098 0,
1099 prefetch_value,
1100 set_uppercase_modtime,
1101};
1102
1103static char *usnt_fields[] = {
1104 "name",
1105 "newname", "description", "address", "mask", "low", "high", "prefix",
1106 "ace_type", "ace_name",
1107};
1108
1109static struct valobj usnt_valobj[] = {
1110 {V_ID, 0, SUBNET_TABLE, "name", "snet_id", MR_NO_MATCH},
1111 {V_RENAME, 1, SUBNET_TABLE, "name", "snet_id", MR_NOT_UNIQUE},
1112 {V_LEN, 2, SUBNET_TABLE, "description"},
1113 {V_NUM, 3},
1114 {V_NUM, 4},
1115 {V_NUM, 5},
1116 {V_NUM, 6},
1117 {V_LEN, 7, SUBNET_TABLE, "prefix"},
1118 {V_TYPE, 8, 0, "ace_type", 0, MR_ACE},
1119 {V_TYPEDATA, 9, 0, 0, 0, MR_ACE},
1120};
1121
1122static struct validate usnt_validate =
1123{
1124 usnt_valobj,
1125 10,
1126 "name",
1127 "snet_id = %d",
1128 1,
1129 "snet_id",
1130 0,
1131 0,
1132 set_modtime_by_id,
1133};
1134
1135static char *dsnt_fields[] = {
1136 "name",
1137};
1138
1139static struct validate dsnt_validate = {
1140 VOsnet0,
1141 1,
1142 0,
1143 0,
1144 0,
1145 0,
1146 0,
1147 setup_dsnt,
1148 0,
1149};
1150
1151static char *gclu_fields[] = {
1152 "name",
1153 "name", "description", "location", "modtime", "modby", "modwith",
1154};
1155
1156static char *aclu_fields[] = {
1157 "name", "description", "location",
1158};
1159
1160static struct valobj aclu_valobj[] = {
1161 {V_CHAR, 0, CLUSTERS_TABLE, "name"},
1162 {V_LEN, 1, CLUSTERS_TABLE, "description"},
1163 {V_LEN, 2, CLUSTERS_TABLE, "location"},
1164};
1165
1166static struct validate aclu_validate =
1167{
1168 aclu_valobj,
1169 3,
1170 "name",
1171 "name = '%s'",
1172 1,
1173 "clu_id",
1174 0,
1175 prefetch_value,
1176 set_modtime,
1177};
1178
1179static char *uclu_fields[] = {
1180 "name",
1181 "newname", "description", "location",
1182};
1183
1184static struct valobj uclu_valobj[] = {
1185 {V_ID, 0, CLUSTERS_TABLE, "name", "clu_id", MR_CLUSTER},
1186 {V_RENAME, 1, CLUSTERS_TABLE, "name", "clu_id", MR_NOT_UNIQUE},
1187 {V_LEN, 2, CLUSTERS_TABLE, "description"},
1188 {V_LEN, 3, CLUSTERS_TABLE, "location"},
1189};
1190
1191static struct validate uclu_validate = {
1192 uclu_valobj,
1193 4,
1194 0,
1195 0,
1196 0,
1197 "clu_id",
1198 0,
1199 0,
1200 set_modtime_by_id,
1201};
1202
1203static char *dclu_fields[] = {
1204 "name",
1205};
1206
1207static struct validate dclu_validate = {
1208 VOclu0,
1209 1,
1210 0,
1211 0,
1212 0,
1213 0,
1214 0,
1215 setup_dclu,
1216 0,
1217};
1218
1219static char *gmcm_fields[] = {
1220 "machine", "cluster",
1221 "machine", "cluster",
1222};
1223
1224static struct valobj amtc_valobj[] = /* ADD_MACHINE_TO_CLUSTER */
1225{ /* DELETE_MACHINE_FROM_CLUSTER */
1226 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
1227 {V_ID, 1, CLUSTERS_TABLE, "name", "clu_id", MR_CLUSTER},
1228};
1229
1230static struct validate amtc_validate = /* for amtc and dmfc */
1231{
1232 amtc_valobj,
1233 2,
1234 "mach_id",
1235 "mach_id = %d and clu_id = %d",
1236 2,
1237 0,
1238 0,
1239 0,
1240 set_mach_modtime_by_id,
1241};
1242
1243static char *gcld_fields[] = {
1244 "cluster", "serv_label",
1245 "cluster", "serv_label", "serv_cluster",
1246};
1247
1248static char *acld_fields[] = {
1249 "cluster", "serv_label", "serv_cluster",
1250};
1251
1252static struct valobj acld_valobj[] =
1253{
1254 {V_ID, 0, CLUSTERS_TABLE, "name", "clu_id", MR_CLUSTER},
1255 {V_CHAR, 1, SVC_TABLE, "serv_label"},
1256 {V_CHAR, 2, SVC_TABLE, "serv_cluster"}
1257};
1258
1259static struct validate acld_validate =
1260{
1261 acld_valobj,
1262 3,
1263 "clu_id",
1264 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1265 3,
1266 0,
1267 0,
1268 0,
1269 set_cluster_modtime_by_id,
1270};
1271
1272static struct validate dcld_validate =
1273{
1274 VOclu0,
1275 1,
1276 "clu_id",
1277 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1278 3,
1279 0,
1280 0,
1281 0,
1282 set_cluster_modtime_by_id,
1283};
1284
1285static char *glin2_fields[] = {
1286 "name",
1287 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1288 "ace_type", "ace_name", "description", "modtime", "modby", "modwith",
1289};
1290
1291static char *glin3_fields[] = {
1292 "name",
1293 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1294 "nfsgroup", "ace_type", "ace_name", "description", "modtime", "modby",
1295 "modwith",
1296};
1297
1298static char *glin_fields[] = {
1299 "name",
1300 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1301 "nfsgroup", "ace_type", "ace_name", "memace_type", "memace_name",
1302 "description", "modtime", "modby", "modwith",
1303};
1304
1305static struct validate glin_validate = {
1306 0,
1307 0,
1308 0,
1309 0,
1310 0,
1311 0,
1312 access_vis_list_by_name,
1313 0,
1314 followup_glin,
1315};
1316
1317static char *alis2_fields[] = {
1318 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1319 "ace_type", "ace_name", "description",
1320};
1321
1322static struct valobj alis2_valobj[] = {
1323 {V_CHAR, 0, LIST_TABLE, "name"},
1324 {V_NUM, 1},
1325 {V_NUM, 2},
1326 {V_NUM, 3},
1327 {V_NUM, 4},
1328 {V_NUM, 5},
1329 {V_NUM, 6},
1330 {V_TYPE, 7, 0, "ace_type", 0, MR_ACE},
1331 {V_TYPEDATA, 8, 0, 0, "list_id", MR_ACE},
1332 {V_LEN, 9, LIST_TABLE, "description"},
1333};
1334
1335static struct validate alis2_validate = {
1336 alis2_valobj,
1337 10,
1338 "name",
1339 "name = '%s'",
1340 1,
1341 "list_id",
1342 0,
1343 setup_alis,
1344 set_modtime,
1345};
1346
1347static char *alis3_fields[] = {
1348 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1349 "nfsgroup", "ace_type", "ace_name", "description",
1350};
1351
1352static struct valobj alis3_valobj[] = {
1353 {V_CHAR, 0, LIST_TABLE, "name"},
1354 {V_NUM, 1},
1355 {V_NUM, 2},
1356 {V_NUM, 3},
1357 {V_NUM, 4},
1358 {V_NUM, 5},
1359 {V_NUM, 6},
1360 {V_NUM, 7},
1361 {V_TYPE, 8, 0, "ace_type", 0, MR_ACE},
1362 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
1363 {V_LEN, 10, LIST_TABLE, "description"},
1364};
1365
1366static struct validate alis3_validate = {
1367 alis3_valobj,
1368 11,
1369 "name",
1370 "name = '%s'",
1371 1,
1372 "list_id",
1373 0,
1374 setup_alis,
1375 set_modtime,
1376};
1377
1378static char *alis_fields[] = {
1379 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1380 "nfsgroup", "ace_type", "ace_name", "memace_type", "memace_name",
1381 "description",
1382};
1383
1384static struct valobj alis_valobj[] = {
1385 {V_CHAR, 0, LIST_TABLE, "name"},
1386 {V_NUM, 1},
1387 {V_NUM, 2},
1388 {V_NUM, 3},
1389 {V_NUM, 4},
1390 {V_NUM, 5},
1391 {V_NUM, 6},
1392 {V_NUM, 7},
1393 {V_TYPE, 8, 0, "ace_type", 0, MR_ACE},
1394 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
1395 {V_TYPE, 10, 0, "ace_type", 0, MR_ACE},
1396 {V_TYPEDATA, 11, 0, 0, "list_id", MR_ACE},
1397 {V_LEN, 12, LIST_TABLE, "description"},
1398};
1399
1400static struct validate alis_validate = {
1401 alis_valobj,
1402 13,
1403 "name",
1404 "name = '%s'",
1405 1,
1406 "list_id",
1407 0,
1408 setup_alis,
1409 set_modtime,
1410};
1411
1412static char *ulis2_fields[] = {
1413 "name",
1414 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1415 "ace_type", "ace_name", "description",
1416};
1417
1418static struct valobj ulis2_valobj[] = {
1419 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
1420 {V_RENAME, 1, LIST_TABLE, "name", "list_id", MR_NOT_UNIQUE},
1421 {V_NUM, 2},
1422 {V_NUM, 3},
1423 {V_NUM, 4},
1424 {V_NUM, 5},
1425 {V_NUM, 6},
1426 {V_NUM, 7},
1427 {V_TYPE, 8, 0, "ace_type", 0, MR_ACE},
1428 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
1429 {V_LEN, 10, LIST_TABLE, "description"},
1430};
1431
1432static struct validate ulis2_validate = {
1433 ulis2_valobj,
1434 11,
1435 "name",
1436 "list_id = %d",
1437 1,
1438 "list_id",
1439 access_list,
1440 setup_alis,
1441 set_modtime_by_id,
1442};
1443
1444static char *ulis3_fields[] = {
1445 "name",
1446 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1447 "nfsgroup", "ace_type", "ace_name", "description",
1448};
1449
1450static struct valobj ulis3_valobj[] = {
1451 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
1452 {V_RENAME, 1, LIST_TABLE, "name", "list_id", MR_NOT_UNIQUE},
1453 {V_NUM, 2},
1454 {V_NUM, 3},
1455 {V_NUM, 4},
1456 {V_NUM, 5},
1457 {V_NUM, 6},
1458 {V_NUM, 7},
1459 {V_NUM, 8},
1460 {V_TYPE, 9, 0, "ace_type", 0, MR_ACE},
1461 {V_TYPEDATA, 10, 0, 0, "list_id", MR_ACE},
1462 {V_LEN, 11, LIST_TABLE, "description"},
1463};
1464
1465static struct validate ulis3_validate = {
1466 ulis3_valobj,
1467 12,
1468 "name",
1469 "list_id = %d",
1470 1,
1471 "list_id",
1472 access_list,
1473 setup_alis,
1474 set_modtime_by_id,
1475};
1476
1477static char *ulis_fields[] = {
1478 "name",
1479 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1480 "nfsgroup", "ace_type", "ace_name", "memace_type", "memace_name",
1481 "description",
1482};
1483
1484static struct valobj ulis_valobj[] = {
1485 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
1486 {V_RENAME, 1, LIST_TABLE, "name", "list_id", MR_NOT_UNIQUE},
1487 {V_NUM, 2},
1488 {V_NUM, 3},
1489 {V_NUM, 4},
1490 {V_NUM, 5},
1491 {V_NUM, 6},
1492 {V_NUM, 7},
1493 {V_NUM, 8},
1494 {V_TYPE, 9, 0, "ace_type", 0, MR_ACE},
1495 {V_TYPEDATA, 10, 0, 0, "list_id", MR_ACE},
1496 {V_TYPE, 11, 0, "ace_type", 0, MR_ACE},
1497 {V_TYPEDATA, 12, 0, 0, "list_id", MR_ACE},
1498 {V_LEN, 13, LIST_TABLE, "description"},
1499};
1500
1501static struct validate ulis_validate = {
1502 ulis_valobj,
1503 14,
1504 "name",
1505 "list_id = %d",
1506 1,
1507 "list_id",
1508 access_list,
1509 setup_alis,
1510 set_modtime_by_id,
1511};
1512
1513static char *dlis_fields[] = {
1514 "name",
1515};
1516
1517static struct validate dlis_validate = {
1518 VOlist0,
1519 1,
1520 "name",
1521 "list_id = %d",
1522 1,
1523 0,
1524 access_list,
1525 setup_dlis,
1526 0,
1527};
1528
1529static char *amtl_fields[] = {
1530 "list_name", "member_type", "member_name",
1531};
1532
1533static char *atml_fields[] = {
1534 "list_name", "member_type", "member_name", "tag",
1535};
1536
1537static struct valobj amtl_valobj[] = {
1538 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
1539 {V_TYPE, 1, 0, "member", 0, MR_TYPE},
1540 {V_TYPEDATA, 2, 0, 0, 0, MR_NO_MATCH},
1541 {V_ID, 3, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
1542};
1543
1544static struct validate amtl_validate =
1545{
1546 amtl_valobj,
1547 3,
1548 0,
1549 0,
1550 0,
1551 0,
1552 access_list,
1553 0,
1554 add_member_to_list,
1555};
1556
1557static struct validate atml_validate =
1558{
1559 amtl_valobj,
1560 4,
1561 0,
1562 0,
1563 0,
1564 0,
1565 access_list,
1566 0,
1567 add_member_to_list,
1568};
1569
1570static struct validate tmol_validate =
1571{
1572 amtl_valobj,
1573 4,
1574 0,
1575 0,
1576 0,
1577 0,
1578 access_list,
1579 0,
1580 tag_member_of_list,
1581};
1582
1583static struct validate dmfl_validate =
1584{
1585 amtl_valobj,
1586 3,
1587 0,
1588 0,
1589 0,
1590 0,
1591 access_list,
1592 0,
1593 delete_member_from_list,
1594};
1595
1596static char *gaus_fields[] = {
1597 "ace_type", "ace_name",
1598 "use_type", "use_name",
1599};
1600
1601static struct valobj gaus_valobj[] = {
1602 {V_TYPE, 0, 0, "gaus", 0, MR_TYPE},
1603 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1604};
1605
1606static struct validate gaus_validate = {
1607 gaus_valobj,
1608 2,
1609 0,
1610 0,
1611 0,
1612 0,
1613 access_member,
1614 0,
1615 get_ace_use,
1616};
1617
1618static char *ghbo_fields[] = {
1619 "ace_type", "ace_name",
1620 "name",
1621};
1622
1623static struct valobj ghbo_valobj[] = {
1624 {V_TYPE, 0, 0, "gaus", 0, MR_TYPE},
1625 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1626};
1627
1628static struct validate ghbo_validate = {
1629 ghbo_valobj,
1630 2,
1631 0,
1632 0,
1633 0,
1634 0,
1635 access_member,
1636 0,
1637 get_host_by_owner,
1638};
1639
1640static char *qgli_fields[] = {
1641 "active", "publicflg", "hidden", "maillist", "grouplist",
1642 "list",
1643};
1644
1645static struct valobj qgli_valobj[] = {
1646 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1647 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1648 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1649 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1650 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1651};
1652
1653static struct validate qgli_validate = {
1654 qgli_valobj,
1655 5,
1656 0,
1657 0,
1658 0,
1659 0,
1660 access_qgli,
1661 0,
1662 qualified_get_lists,
1663};
1664
1665static char *gmol_fields[] = {
1666 "list_name",
1667 "member_type", "member_name",
1668};
1669
1670static char *gtml_fields[] = {
1671 "list_name",
1672 "member_type", "member_name", "tag",
1673};
1674
1675static struct validate gmol_validate = {
1676 VOlist0,
1677 1,
1678 0,
1679 0,
1680 0,
1681 0,
1682 access_visible_list,
1683 0,
1684 get_members_of_list,
1685};
1686
1687static char *glom_fields[] = {
1688 "member_type", "member_name",
1689 "list_name", "active", "publicflg", "hidden", "maillist", "grouplist",
1690};
1691
1692static struct valobj glom_valobj[] = {
1693 {V_TYPE, 0, 0, "rmember", 0, MR_TYPE},
1694 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1695};
1696
1697static struct validate glom_validate = {
1698 glom_valobj,
1699 2,
1700 0,
1701 0,
1702 0,
1703 0,
1704 access_member,
1705 0,
1706 get_lists_of_member,
1707};
1708
1709static char *cmol_fields[] = {
1710 "list_name",
1711 "count",
1712};
1713
1714static struct validate cmol_validate = {
1715 VOlist0,
1716 1,
1717 0,
1718 0,
1719 0,
1720 0,
1721 access_visible_list,
1722 0,
1723 count_members_of_list,
1724};
1725
1726static char *gsin_fields[] = {
1727 "service",
1728 "service", "update_int", "target_file", "script", "dfgen", "dfcheck",
1729 "type", "enable", "inprogress", "harderror", "errmsg",
1730 "ace_type", "ace_name", "modtime", "modby", "modwith",
1731};
1732
1733static struct validate gsin_validate =
1734{
1735 0,
1736 0,
1737 0,
1738 0,
1739 0,
1740 0,
1741 access_service,
1742 0,
1743 followup_gsin,
1744};
1745
1746static char *qgsv_fields[] = {
1747 "enable", "inprogress", "harderror",
1748 "service",
1749};
1750
1751static struct valobj qgsv_valobj[] = {
1752 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1753 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1754 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1755};
1756
1757static struct validate qgsv_validate = {
1758 qgsv_valobj,
1759 3,
1760 0,
1761 0,
1762 0,
1763 0,
1764 0,
1765 0,
1766 qualified_get_server,
1767};
1768
1769static char *asin_fields[] = {
1770 "service", "update_int", "target_file", "script", "type", "enable",
1771 "ace_type", "ace_name",
1772};
1773
1774static struct valobj asin_valobj[] = {
1775 {V_CHAR, 0, SERVERS_TABLE, "name"},
1776 {V_NUM, 1},
1777 {V_LEN, 2, SERVERS_TABLE, "target_file"},
1778 {V_LEN, 3, SERVERS_TABLE, "script"},
1779 {V_TYPE, 4, 0, "service", 0, MR_TYPE},
1780 {V_NUM, 5},
1781 {V_TYPE, 6, 0, "ace_type", 0, MR_ACE},
1782 {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
1783};
1784
1785static struct validate asin_validate = /* for asin, usin */
1786{
1787 asin_valobj,
1788 8,
1789 "name",
1790 "name = UPPER('%s')",
1791 1,
1792 0,
1793 0,
1794 0,
1795 set_uppercase_modtime,
1796};
1797
1798static struct validate rsve_validate = {
1799 asin_valobj,
1800 1,
1801 "name",
1802 "name = UPPER('%s')",
1803 1,
1804 0,
1805 access_service,
1806 0,
1807 set_uppercase_modtime,
1808};
1809
1810static char *ssif_fields[] = {
1811 "service", "dfgen", "dfcheck", "inprogress", "harderror", "errmsg",
1812};
1813
1814static struct valobj ssif_valobj[] = {
1815 {V_NAME, 0, SERVERS_TABLE, "name", 0, MR_SERVICE},
1816 {V_NUM, 1},
1817 {V_NUM, 2},
1818 {V_NUM, 3},
1819 {V_NUM, 4},
1820 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
1821};
1822
1823static struct validate ssif_validate = {
1824 ssif_valobj,
1825 6,
1826 "name",
1827 "name = UPPER('%s')",
1828 1,
1829 0,
1830 0,
1831 0,
1832 0,
1833};
1834
1835static char *dsin_fields[] = {
1836 "service",
1837};
1838
1839static struct validate dsin_validate = {
1840 asin_valobj,
1841 1,
1842 "name",
1843 "name = UPPER('%s')",
1844 1,
1845 0,
1846 0,
1847 setup_dsin,
1848 0,
1849};
1850
1851static char *gshi_fields[] = {
1852 "service", "machine",
1853 "service", "machine", "enable", "override", "success", "inprogress",
1854 "hosterror", "hosterrormsg", "ltt", "lts", "value1", "value2",
1855 "value3", "modtime", "modby", "modwith",
1856};
1857
1858static struct validate gshi_validate = {
1859 0,
1860 0,
1861 0,
1862 0,
1863 0,
1864 0,
1865 access_service,
1866 0,
1867 followup_fix_modby,
1868};
1869
1870static char *qgsh_fields[] = {
1871 "service", "enable", "override", "success", "inprogress", "hosterror",
1872 "service", "machine",
1873};
1874
1875static struct valobj qgsh_valobj[] = {
1876 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1877 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1878 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1879 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1880 {V_TYPE, 5, 0, "boolean", 0, MR_TYPE},
1881};
1882
1883static struct validate qgsh_validate = {
1884 qgsh_valobj,
1885 5,
1886 0,
1887 0,
1888 0,
1889 0,
1890 0,
1891 0,
1892 qualified_get_serverhost,
1893};
1894
1895static char *ashi_fields[] = {
1896 "service", "machine", "enable", "value1", "value2", "value3",
1897};
1898
1899static struct valobj ashi_valobj[] = {
1900 {V_NAME, 0, SERVERS_TABLE, "name", 0, MR_SERVICE},
1901 {V_ID, 1, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
1902 {V_NUM, 2},
1903 {V_NUM, 3},
1904 {V_NUM, 4},
1905 {V_LEN, 5, SERVERHOSTS_TABLE, "value3"},
1906};
1907
1908static struct validate ashi_validate = /* ashi & ushi */
1909{
1910 ashi_valobj,
1911 6,
1912 "service",
1913 "service = UPPER('%s') AND mach_id = %d",
1914 2,
1915 0,
1916 access_service,
1917 0,
1918 set_serverhost_modtime,
1919};
1920
1921static struct validate rshe_validate =
1922{
1923 ashi_valobj,
1924 2,
1925 "service",
1926 "service = UPPER('%s') AND mach_id = %d",
1927 2,
1928 0,
1929 access_service,
1930 0,
1931 set_serverhost_modtime,
1932};
1933
1934static struct validate ssho_validate =
1935{
1936 ashi_valobj,
1937 2,
1938 "service",
1939 "service = UPPER('%s') AND mach_id = %d",
1940 2,
1941 0,
1942 access_service,
1943 0,
1944 trigger_dcm,
1945};
1946
1947static char *sshi_fields[] = {
1948 "service", "machine", "override", "success", "inprogress",
1949 "hosterror", "errmsg", "ltt", "lts",
1950};
1951
1952static struct valobj sshi_valobj[] = {
1953 {V_NAME, 0, SERVERS_TABLE, "name", 0, MR_SERVICE},
1954 {V_ID, 1, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
1955 {V_NUM, 2},
1956 {V_NUM, 3},
1957 {V_NUM, 4},
1958 {V_NUM, 5},
1959 {V_LEN, 6, SERVERHOSTS_TABLE, "hosterrmsg"},
1960 {V_NUM, 7},
1961 {V_NUM, 8},
1962};
1963
1964static struct validate sshi_validate =
1965{
1966 sshi_valobj,
1967 9,
1968 0,
1969 0,
1970 0,
1971 0,
1972 0,
1973 0,
1974 0,
1975};
1976
1977static char *dshi_fields[] = {
1978 "service", "machine",
1979};
1980
1981static struct validate dshi_validate =
1982{
1983 ashi_valobj,
1984 2,
1985 "service",
1986 "service = UPPER('%s') AND mach_id = %d",
1987 2,
1988 0,
1989 access_service,
1990 setup_dshi,
1991 0,
1992};
1993
1994static char *gslo_fields[] = {
1995 "server",
1996 "server", "machine",
1997};
1998
1999static char *gfsl_fields[] = {
2000 "label",
2001 "label", "type", "machine", "name", "mount", "access", "comments",
2002 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
2003};
2004
2005static struct validate gfsl_validate = {
2006 0,
2007 0,
2008 0,
2009 0,
2010 0,
2011 0,
2012 access_filesys,
2013 0,
2014 followup_fix_modby,
2015};
2016
2017static char *gfsm_fields[] = {
2018 "machine",
2019 "label", "type", "machine", "name", "mount", "access", "comments",
2020 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
2021};
2022
2023static struct validate gfsm_validate = {
2024 VOmach0,
2025 1,
2026 0,
2027 0,
2028 0,
2029 0,
2030 0,
2031 0,
2032 followup_fix_modby,
2033};
2034
2035static char *gfsn_fields[] = {
2036 "machine", "partition",
2037 "label", "type", "machine", "name", "mount", "access", "comments",
2038 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
2039};
2040
2041static struct validate gfsn_validate = {
2042 VOmach0,
2043 1,
2044 0,
2045 0,
2046 0,
2047 0,
2048 0,
2049 0,
2050 followup_fix_modby,
2051};
2052
2053static char *gfsp_fields[] = {
2054 "path",
2055 "label", "type", "machine", "name", "mount", "access", "comments",
2056 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
2057};
2058
2059static char *gfsg_fields[] = {
2060 "list",
2061 "label", "type", "machine", "name", "mount", "access", "comments",
2062 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
2063};
2064
2065static struct validate gfsg_validate = {
2066 VOlist0,
2067 1,
2068 0,
2069 0,
2070 0,
2071 0,
2072 access_list,
2073 0,
2074 followup_fix_modby,
2075};
2076
2077static char *afil_fields[] = {
2078 "label", "type", "machine", "name", "mount", "access", "comments",
2079 "owner", "owners", "create", "lockertype",
2080};
2081
2082static struct valobj afil_valobj[] = {
2083 {V_CHAR, 0, FILESYS_TABLE, "label"},
2084 {V_TYPE, 1, 0, "filesys", 0, MR_FSTYPE},
2085 {V_ID, 2, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2086 {V_CHAR, 3, FILESYS_TABLE, "name"},
2087 {V_LEN, 4, FILESYS_TABLE, "mount"},
2088 {V_LEN, 5, FILESYS_TABLE, "rwaccess"},
2089 {V_LEN, 6, FILESYS_TABLE, "comments"},
2090 {V_ID, 7, USERS_TABLE, "login", "users_id", MR_USER},
2091 {V_ID, 8, LIST_TABLE, "name", "list_id", MR_LIST},
2092 {V_NUM, 9},
2093 {V_TYPE, 10, 0, "lockertype", 0, MR_TYPE},
2094};
2095
2096static struct validate afil_validate = {
2097 afil_valobj,
2098 11,
2099 "label",
2100 "label = '%s'",
2101 1,
2102 "filsys_id",
2103 0,
2104 setup_afil,
2105 set_filesys_modtime,
2106};
2107
2108static char *ufil_fields[] = {
2109 "label", "newlabel", "type", "machine", "name", "mount", "access",
2110 "comments", "owner", "owners", "create", "lockertype",
2111};
2112
2113static struct valobj ufil_valobj[] = {
2114 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
2115 {V_RENAME, 1, FILESYS_TABLE, "label", "filsys_id", MR_NOT_UNIQUE},
2116 {V_TYPE, 2, 0, "filesys", 0, MR_FSTYPE},
2117 {V_ID, 3, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2118 {V_CHAR, 4, FILESYS_TABLE, "name"},
2119 {V_LEN, 5, FILESYS_TABLE, "mount"},
2120 {V_LEN, 6, FILESYS_TABLE, "rwaccess"},
2121 {V_LEN, 7, FILESYS_TABLE, "comments"},
2122 {V_ID, 8, USERS_TABLE, "login", "users_id", MR_USER},
2123 {V_ID, 9, LIST_TABLE, "name", "list_id", MR_LIST},
2124 {V_NUM, 10},
2125 {V_TYPE, 11, 0, "lockertype", 0, MR_TYPE},
2126};
2127
2128static struct validate ufil_validate = {
2129 ufil_valobj,
2130 12,
2131 "label",
2132 "filsys_id = %d",
2133 1,
2134 "filsys_id",
2135 0,
2136 setup_ufil,
2137 set_filesys_modtime,
2138};
2139
2140static char *dfil_fields[] = {
2141 "label",
2142};
2143
2144static struct validate dfil_validate = {
2145 VOfilesys0,
2146 1,
2147 "label",
2148 "filsys_id = %d",
2149 1,
2150 0,
2151 0,
2152 setup_dfil,
2153 0,
2154};
2155
2156static char *gfgm_fields[] = {
2157 "fsgroup", "filesys", "sortkey"
2158};
2159
2160static struct validate gfgm_validate = {
2161 VOfilesys0,
2162 1,
2163 0,
2164 0,
2165 0,
2166 0,
2167 0,
2168 0,
2169 0,
2170};
2171
2172static struct valobj aftg_valobj[] = {
2173 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
2174 {V_ID, 1, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
2175};
2176
2177static struct validate aftg_validate = {
2178 aftg_valobj,
2179 2,
2180 "group_id",
2181 "group_id = %d and filsys_id = %d",
2182 2,
2183 0,
2184 0,
2185 0,
2186 0,
2187};
2188
2189static char *ganf_fields[] = {
2190 "machine", "dir", "device", "status", "allocated", "size",
2191 "modtime", "modby", "modwith",
2192};
2193
2194static char *gnfp_fields[] = {
2195 "machine", "dir",
2196 "machine", "dir", "device", "status", "allocated", "size",
2197 "modtime", "modby", "modwith",
2198};
2199
2200static struct validate gnfp_validate = {
2201 VOmach0,
2202 1,
2203 0,
2204 0,
2205 0,
2206 0,
2207 0,
2208 0,
2209 followup_fix_modby,
2210};
2211
2212static struct valobj anfp_valobj[] = {
2213 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2214 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
2215 {V_LEN, 2, NFSPHYS_TABLE, "device"},
2216 {V_NUM, 3},
2217 {V_NUM, 4},
2218 {V_NUM, 5},
2219};
2220
2221static struct validate anfp_validate = {
2222 anfp_valobj,
2223 6,
2224 "dir",
2225 "mach_id = %d and dir = '%s'",
2226 2,
2227 "nfsphys_id",
2228 0,
2229 prefetch_value,
2230 set_nfsphys_modtime,
2231};
2232
2233static struct validate unfp_validate = {
2234 anfp_valobj,
2235 6,
2236 "dir",
2237 "mach_id = %d and dir = '%s'",
2238 2,
2239 "nfsphys_id",
2240 0,
2241 0,
2242 set_nfsphys_modtime,
2243};
2244
2245static char *ajnf_fields[] = {
2246 "machine", "dir", "adjustment",
2247};
2248
2249static struct valobj ajnf_valobj[] = {
2250 {V_ID, 0, MACHINE_TABLE, NAME, "mach_id", MR_MACHINE},
2251 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
2252 {V_NUM, 2},
2253};
2254
2255static struct validate ajnf_validate = {
2256 ajnf_valobj,
2257 3,
2258 "dir",
2259 "mach_id = %d and dir = '%s'",
2260 2,
2261 "nfsphys_id",
2262 0,
2263 0,
2264 set_nfsphys_modtime,
2265};
2266
2267static char *dnfp_fields[] = {
2268 "machine", "dir",
2269};
2270
2271static struct validate dnfp_validate = {
2272 anfp_valobj,
2273 2,
2274 "dir",
2275 "mach_id = %d and dir = '%s'",
2276 2,
2277 "nfsphys_id",
2278 0,
2279 setup_dnfp,
2280 set_nfsphys_modtime,
2281};
2282
2283static char *gqot_fields[] = {
2284 "filesys", "type", "name",
2285 "filesys", "type", "name", "quota", "dir", "machine",
2286 "modtime", "modby", "modwith",
2287};
2288
2289static struct valobj gqot_valobj[] = {
2290 {V_TYPE, 1, 0, "quota_type", 0, MR_TYPE},
2291 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2292};
2293
2294static struct validate gqot_validate = {
2295 gqot_valobj,
2296 2,
2297 0,
2298 0,
2299 0,
2300 0,
2301 0,
2302 0,
2303 followup_gqot,
2304};
2305
2306static char *gqbf_fields[] = {
2307 "filesys",
2308 "filesys", "type", "name", "quota", "dir", "machine",
2309 "modtime", "modby", "modwith",
2310};
2311
2312static struct validate gqbf_validate = {
2313 0,
2314 0,
2315 0,
2316 0,
2317 0,
2318 0,
2319 access_filesys,
2320 0,
2321 followup_gqot,
2322};
2323
2324static char *aqot_fields[] = {
2325 "filesys", "type", "name", "quota",
2326};
2327
2328static struct valobj aqot_valobj[] = {
2329 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
2330 {V_TYPE, 1, 0, "quota_type", 0, MR_TYPE},
2331 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2332 {V_NUM, 3},
2333};
2334
2335static struct validate aqot_validate = {
2336 aqot_valobj,
2337 4,
2338 "filsys_id",
2339 "filsys_id = %d and type = '%s' and entity_id = %d",
2340 3,
2341 0,
2342 0,
2343 prefetch_filesys,
2344 followup_aqot,
2345};
2346
2347static struct validate uqot_validate = {
2348 aqot_valobj,
2349 4,
2350 "filsys_id",
2351 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2352 3,
2353 0,
2354 0,
2355 setup_dqot,
2356 followup_aqot,
2357};
2358
2359static struct validate dqot_validate = {
2360 aqot_valobj,
2361 3,
2362 "filsys_id",
2363 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2364 3,
2365 0,
2366 0,
2367 setup_dqot,
2368 followup_dqot,
2369};
2370
2371static char *gnfq_fields[] = {
2372 "filesys", "login",
2373 "filesys", "login", "quota", "dir", "machine",
2374 "modtime", "modby", "modwith",
2375};
2376
2377static struct validate gnfq_validate = {
2378 0,
2379 0,
2380 0,
2381 0,
2382 0,
2383 0,
2384 access_filesys,
2385 0,
2386 followup_gqot,
2387};
2388
2389static char *gnqp_fields[] = {
2390 "machine", "dir",
2391 "filesys", "login", "quota", "dir", "machine",
2392 "modtime", "modby", "modwith",
2393};
2394
2395static char *anfq_fields[] = {
2396 "filesys", "login", "quota",
2397};
2398
2399static struct valobj anfq_valobj[] = {
2400 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
2401 {V_ID, 1, USERS_TABLE, "login", "users_id", MR_USER},
2402 {V_NUM, 2},
2403};
2404
2405static struct validate anfq_validate = {
2406 anfq_valobj,
2407 3,
2408 "filsys_id",
2409 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2410 2,
2411 0, /* object ? */
2412 0,
2413 prefetch_filesys,
2414 followup_aqot,
2415};
2416
2417static struct validate unfq_validate = {
2418 anfq_valobj,
2419 3,
2420 "filsys_id",
2421 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2422 2,
2423 0,
2424 0,
2425 setup_dqot,
2426 followup_aqot,
2427};
2428
2429static struct validate dnfq_validate = {
2430 anfq_valobj,
2431 3,
2432 "filsys_id",
2433 "filsys_id = %d AND entity_id = %d",
2434 2,
2435 0,
2436 0,
2437 setup_dqot,
2438 followup_dqot,
2439};
2440
2441static char *gzcl2_fields[] = {
2442 "class",
2443 "class", "xmt_type", "xmt_name", "sub_type", "sub_name",
2444 "iws_type", "iws_name", "iui_type", "iui_name",
2445 "modtime", "modby", "modwith",
2446};
2447
2448static char *gzcl_fields[] = {
2449 "class",
2450 "class", "xmt_type", "xmt_name", "sub_type", "sub_name",
2451 "iws_type", "iws_name", "iui_type", "iui_name", "owner_type",
2452 "owner_id", "modtime", "modby", "modwith",
2453};
2454
2455static struct validate gzcl_validate = {
2456 0,
2457 0,
2458 0,
2459 0,
2460 0,
2461 0,
2462 access_zephyr,
2463 0,
2464 followup_gzcl,
2465};
2466
2467static char *azcl2_fields[] = {
2468 "class", "xmt_type", "xmt_name", "sub_type", "sub_name",
2469 "iws_type", "iws_name", "iui_type", "iui_name",
2470};
2471
2472static struct valobj azcl2_valobj[] = {
2473 {V_CHAR, 0, ZEPHYR_TABLE, "class"},
2474 {V_TYPE, 1, 0, "zace_type", 0, MR_ACE},
2475 {V_TYPEDATA, 2, 0, 0, "list_id", MR_ACE},
2476 {V_TYPE, 3, 0, "zace_type", 0, MR_ACE},
2477 {V_TYPEDATA, 4, 0, 0, "list_id", MR_ACE},
2478 {V_TYPE, 5, 0, "zace_type", 0, MR_ACE},
2479 {V_TYPEDATA, 6, 0, 0, "list_id", MR_ACE},
2480 {V_TYPE, 7, 0, "zace_type", 0, MR_ACE},
2481 {V_TYPEDATA, 8, 0, 0, "list_id", MR_ACE},
2482};
2483
2484static struct validate azcl2_validate = {
2485 azcl2_valobj,
2486 9,
2487 "class",
2488 "class = '%s'",
2489 1,
2490 0,
2491 0,
2492 0,
2493 set_zephyr_modtime,
2494};
2495
2496static char *azcl_fields[] = {
2497 "class", "xmt_type", "xmt_name", "sub_type", "sub_name",
2498 "iws_type", "iws_name", "iui_type", "iui_name", "owner_type",
2499 "owner_id",
2500};
2501
2502static struct valobj azcl_valobj[] = {
2503 {V_CHAR, 0, ZEPHYR_TABLE, "class"},
2504 {V_TYPE, 1, 0, "zace_type", 0, MR_ACE},
2505 {V_TYPEDATA, 2, 0, 0, "list_id", MR_ACE},
2506 {V_TYPE, 3, 0, "zace_type", 0, MR_ACE},
2507 {V_TYPEDATA, 4, 0, 0, "list_id", MR_ACE},
2508 {V_TYPE, 5, 0, "zace_type", 0, MR_ACE},
2509 {V_TYPEDATA, 6, 0, 0, "list_id", MR_ACE},
2510 {V_TYPE, 7, 0, "zace_type", 0, MR_ACE},
2511 {V_TYPEDATA, 8, 0, 0, "list_id", MR_ACE},
2512 {V_TYPE, 9, 0, "ace_type", 0, MR_ACE},
2513 {V_TYPEDATA, 10, 0, 0, "list_id", MR_ACE},
2514};
2515
2516static struct validate azcl_validate = {
2517 azcl_valobj,
2518 11,
2519 "class",
2520 "class = '%s'",
2521 1,
2522 0,
2523 0,
2524 0,
2525 set_zephyr_modtime,
2526};
2527
2528static char *uzcl2_fields[] = {
2529 "class", "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
2530 "iws_type", "iws_name", "iui_type", "iui_name",
2531};
2532
2533static struct valobj uzcl2_valobj[] = {
2534 {V_NAME, 0, ZEPHYR_TABLE, "class", 0, MR_BAD_CLASS},
2535 {V_RENAME, 1, ZEPHYR_TABLE, "class", 0, MR_NOT_UNIQUE},
2536 {V_TYPE, 2, 0, "zace_type", 0, MR_ACE},
2537 {V_TYPEDATA, 3, 0, 0, "list_id", MR_ACE},
2538 {V_TYPE, 4, 0, "zace_type", 0, MR_ACE},
2539 {V_TYPEDATA, 5, 0, 0, "list_id", MR_ACE},
2540 {V_TYPE, 6, 0, "zace_type", 0, MR_ACE},
2541 {V_TYPEDATA, 7, 0, 0, "list_id", MR_ACE},
2542 {V_TYPE, 8, 0, "zace_type", 0, MR_ACE},
2543 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
2544};
2545
2546static struct validate uzcl2_validate = {
2547 uzcl2_valobj,
2548 10,
2549 "class",
2550 "class = '%s'",
2551 1,
2552 0,
2553 access_zephyr,
2554 0,
2555 set_zephyr_modtime,
2556};
2557
2558static char *uzcl_fields[] = {
2559 "class", "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
2560 "iws_type", "iws_name", "iui_type", "iui_name", "owner_type", "owner_id",
2561};
2562
2563static struct valobj uzcl_valobj[] = {
2564 {V_NAME, 0, ZEPHYR_TABLE, "class", 0, MR_BAD_CLASS},
2565 {V_RENAME, 1, ZEPHYR_TABLE, "class", 0, MR_NOT_UNIQUE},
2566 {V_TYPE, 2, 0, "zace_type", 0, MR_ACE},
2567 {V_TYPEDATA, 3, 0, 0, "list_id", MR_ACE},
2568 {V_TYPE, 4, 0, "zace_type", 0, MR_ACE},
2569 {V_TYPEDATA, 5, 0, 0, "list_id", MR_ACE},
2570 {V_TYPE, 6, 0, "zace_type", 0, MR_ACE},
2571 {V_TYPEDATA, 7, 0, 0, "list_id", MR_ACE},
2572 {V_TYPE, 8, 0, "zace_type", 0, MR_ACE},
2573 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
2574 {V_TYPE, 10, 0, "ace_type", 0, MR_ACE},
2575 {V_TYPEDATA, 11, 0, 0, "list_id", MR_ACE},
2576};
2577
2578static struct validate uzcl_validate = {
2579 uzcl_valobj,
2580 12,
2581 "class",
2582 "class = '%s'",
2583 1,
2584 0,
2585 access_zephyr,
2586 0,
2587 set_zephyr_modtime,
2588};
2589
2590static struct validate dzcl_validate = {
2591 0,
2592 0,
2593 "class",
2594 "class = '%s'",
2595 1,
2596 0,
2597 0,
2598 0,
2599 0,
2600};
2601
2602static char *gsha_fields[] = {
2603 "machine",
2604 "machine", "ace_type", "ace_name", "modtime", "modby", "modwith",
2605};
2606
2607static struct validate gsha_validate =
2608{
2609 0,
2610 0,
2611 0,
2612 0,
2613 0,
2614 0,
2615 0,
2616 0,
2617 followup_gsha,
2618};
2619
2620static char *asha_fields[] = {
2621 "machine", "ace_type", "ace_name",
2622};
2623
2624static struct valobj asha_valobj[] = {
2625 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2626 {V_TYPE, 1, 0, "ace_type", 0, MR_ACE},
2627 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2628};
2629
2630static struct validate asha_validate =
2631{
2632 asha_valobj,
2633 3,
2634 "mach_id",
2635 "mach_id = %d",
2636 1,
2637 "mach_id",
2638 0,
2639 0,
2640 set_modtime_by_id,
2641};
2642
2643static char *gacl_fields[] = {
2644 "machine", "target",
2645 "machine", "target", "kind", "list",
2646};
2647
2648static char *aacl_fields[] = {
2649 "machine", "target", "kind", "list",
2650};
2651
2652static char *dacl_fields[] = {
2653 "machine", "target",
2654};
2655
2656static struct valobj aacl_valobj[] = {
2657 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2658 {V_CHAR, 1, ACL_TABLE, "target"},
2659 {V_TYPE, 2, 0, "acl_kind", 0, MR_TYPE},
2660 {V_ID, 3, LIST_TABLE, "name", "list_id", MR_LIST},
2661};
2662
2663static struct validate gacl_validate =
2664{
2665 aacl_valobj,
2666 1,
2667 NULL,
2668 NULL,
2669 0,
2670 "mach_id",
2671 /* access_acl */ 0,
2672 0,
2673 0,
2674};
2675
2676static struct validate aacl_validate =
2677{
2678 aacl_valobj,
2679 4,
2680 "mach_id",
2681 "mach_id = %d AND target = '%s'",
2682 2,
2683 "mach_id",
2684 /* access_acl */ 0,
2685 0,
2686 0,
2687};
2688
2689static char *gsvc_fields[] = {
2690 "service", "protocol",
2691 "service", "protocol", "port", "description", "modtime", "modby", "modwith",
2692};
2693
2694static char *asvc_fields[] = {
2695 "service", "protocol", "port", "description",
2696};
2697
2698static char *dsvc_fields[] = {
2699 "service", "protocol",
2700};
2701
2702static struct valobj asvc_valobj[] = {
2703 {V_CHAR, 0, SERVICES_TABLE, "name"},
2704 {V_CHAR, 1, SERVICES_TABLE, "protocol"},
2705 {V_NUM, 2},
2706 {V_CHAR, 3, SERVICES_TABLE, "description"},
2707};
2708
2709static struct validate asvc_validate = {
2710 asvc_valobj,
2711 4,
2712 "name",
2713 "name = '%s' AND protocol = '%s'",
2714 2,
2715 0,
2716 0,
2717 0,
2718 set_service_modtime,
2719};
2720
2721static struct validate dsvc_validate = {
2722 asvc_valobj,
2723 2,
2724 "name",
2725 "name = '%s' AND protocol = '%s'",
2726 2,
2727 0,
2728 0,
2729 0,
2730 0,
2731};
2732
2733static char *gprn_fields[] = {
2734 "name",
2735 "name", "type", "hwtype", "duplexname", "hostname",
2736 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
2737 "banner", "location", "contact", "modtime", "modby", "modwith"
2738};
2739
2740static char *gpbd_fields[] = {
2741 "duplexname",
2742 "name", "type", "hwtype", "duplexname", "hostname",
2743 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
2744 "banner", "location", "contact", "modtime", "modby", "modwith"
2745};
2746
2747static char *gpbe_fields[] = {
2748 "hwaddr",
2749 "name", "type", "hwtype", "duplexname", "hostname",
2750 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
2751 "banner", "location", "contact", "modtime", "modby", "modwith"
2752};
2753
2754static char *gpbh_fields[] = {
2755 "hostname",
2756 "name", "type", "hwtype", "duplexname", "hostname",
2757 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
2758 "banner", "location", "contact", "modtime", "modby", "modwith"
2759};
2760
2761static char *gpbr_fields[] = {
2762 "rm",
2763 "name", "type", "hwtype", "duplexname", "hostname",
2764 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
2765 "banner", "location", "contact", "modtime", "modby", "modwith"
2766};
2767
2768static char *gpbl_fields[] = {
2769 "location",
2770 "name", "type", "hwtype", "duplexname", "hostname",
2771 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
2772 "banner", "location", "contact", "modtime", "modby", "modwith"
2773};
2774
2775static char *gpbc_fields[] = {
2776 "contact",
2777 "name", "type", "hwtype", "duplexname", "hostname",
2778 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
2779 "banner", "location", "contact", "modtime", "modby", "modwith"
2780};
2781
2782static char *aprn_fields[] = {
2783 "printer", "type", "hwtype", "duplexname", "hostname",
2784 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
2785 "banner", "location", "contact",
2786};
2787
2788static struct valobj aprn_valobj[] = {
2789 {V_CHAR, 0, PRINTERS_TABLE, "name"},
2790 {V_TYPE, 1, 0, "printertype", 0, MR_TYPE},
2791 {V_TYPE, 2, 0, "printerhwtype", 0, MR_TYPE},
2792 {V_CHAR, 3, PRINTERS_TABLE, "duplexname"},
2793 {V_ID, 4, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2794 {V_ID, 5, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2795 {V_ID, 6, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2796 {V_CHAR, 7, PRINTERS_TABLE, "rp"},
2797 {V_ID, 8, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2798 {V_NUM, 9},
2799 {V_NUM, 10},
2800 {V_ID, 11, LIST_TABLE, "name", "list_id", MR_LIST},
2801 {V_ID, 12, LIST_TABLE, "name", "list_id", MR_LIST},
2802 {V_NUM, 13},
2803 {V_CHAR, 14, PRINTERS_TABLE, "location"},
2804 {V_CHAR, 15, PRINTERS_TABLE, "contact"},
2805};
2806
2807static struct validate aprn_validate = {
2808 aprn_valobj,
2809 16,
2810 "name",
2811 "name = '%s'",
2812 1,
2813 0,
2814 access_printer,
2815 setup_aprn,
2816 set_modtime,
2817};
2818
2819static char *uprn_fields[] = {
2820 "printer",
2821 "printer", "type", "hwtype", "duplexname", "hostname",
2822 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
2823 "banner", "location", "contact",
2824};
2825
2826static struct valobj uprn_valobj[] = {
2827 {V_CHAR, 0, PRINTERS_TABLE, "name"},
2828 {V_CHAR, 1, PRINTERS_TABLE, "name"},
2829 {V_TYPE, 2, 0, "printertype", 0, MR_TYPE},
2830 {V_TYPE, 3, 0, "printerhwtype", 0, MR_TYPE},
2831 {V_CHAR, 4, PRINTERS_TABLE, "duplexname"},
2832 {V_ID, 5, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2833 {V_ID, 6, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2834 {V_ID, 7, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2835 {V_CHAR, 8, PRINTERS_TABLE, "rp"},
2836 {V_ID, 9, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2837 {V_NUM, 10},
2838 {V_NUM, 11},
2839 {V_ID, 12, LIST_TABLE, "name", "list_id", MR_LIST},
2840 {V_ID, 13, LIST_TABLE, "name", "list_id", MR_LIST},
2841 {V_NUM, 14},
2842 {V_CHAR, 15, PRINTERS_TABLE, "location"},
2843 {V_CHAR, 16, PRINTERS_TABLE, "contact"},
2844};
2845
2846static struct validate uprn_validate = {
2847 uprn_valobj,
2848 16,
2849 "name",
2850 "name = '%s'",
2851 1,
2852 0,
2853 access_printer,
2854 setup_aprn,
2855 set_modtime,
2856};
2857
2858static struct validate dprn_validate = {
2859 0,
2860 0,
2861 "name",
2862 "name = '%s'",
2863 1,
2864 0,
2865 access_printer,
2866 0,
2867 0,
2868};
2869
2870static char *gpsv_fields[] = {
2871 "host",
2872 "host", "kind", "printer_types", "owner_type", "owner_name",
2873 "lpc_acl", "modtime", "modby", "modwith"
2874};
2875
2876static struct valobj gpsv_valobj[] = {
2877 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2878};
2879
2880static struct validate gpsv_validate = {
2881 gpsv_valobj,
2882 1,
2883 0,
2884 0,
2885 0,
2886 0,
2887 0,
2888 0,
2889 followup_gpsv,
2890};
2891
2892static char *apsv_fields[] = {
2893 "host", "kind", "printer_types", "owner_type", "owner_name", "lpc_acl"
2894};
2895
2896static struct valobj apsv_valobj[] = {
2897 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2898 {V_TYPE, 1, 0, "lpd_kind", 0, MR_TYPE},
2899 {V_ID, 2, STRINGS_TABLE, "string", "string_id", MR_STRING},
2900 {V_TYPE, 3, 0, "ace_type", 0, MR_ACE},
2901 {V_TYPEDATA, 4, 0, 0, 0, MR_ACE},
2902 {V_ID, 5, LIST_TABLE, "name", "list_id", MR_LIST},
2903};
2904
2905static struct validate apsv_validate = {
2906 apsv_valobj,
2907 6,
2908 "mach_id",
2909 "mach_id = %d",
2910 1,
2911 "mach_id",
2912 0,
2913 0,
2914 set_modtime_by_id,
2915};
2916
2917static char *dpsv_fields[] = {
2918 "host",
2919};
2920
2921static struct validate dpsv_validate = {
2922 gpsv_valobj,
2923 1,
2924 "mach_id",
2925 "mach_id = %d",
2926 1,
2927 0,
2928 0,
2929 setup_dpsv,
2930 0,
2931};
2932
2933static char *gali_fields[] = {
2934 "name", "type", "trans",
2935 "name", "type", "trans",
2936};
2937
2938static char *aali_fields[] = {
2939 "name", "type", "trans",
2940};
2941
2942static struct valobj aali_valobj[] = {
2943 {V_CHAR, 0, ALIAS_TABLE, "name"},
2944 {V_TYPE, 1, 0, "alias", 0, MR_TYPE},
2945 {V_CHAR, 2, ALIAS_TABLE, "trans"},
2946};
2947
2948static struct validate aali_validate = {
2949 aali_valobj,
2950 3,
2951 "trans",
2952 "name = '%s' and type = '%s' and trans = '%s'",
2953 3,
2954 0,
2955 0,
2956 0,
2957 0,
2958};
2959
2960static struct validate dali_validate = /* DELETE_ALIAS */
2961{
2962 0,
2963 0,
2964 "trans",
2965 "name = '%s' and type = '%s' and trans = '%s'",
2966 3,
2967 0,
2968 0,
2969 0,
2970 0,
2971};
2972
2973static char *gval_fields[] = {
2974 "name", "value",
2975};
2976
2977static struct valobj gval_valobj[] = {
2978 {V_NAME, 0, NUMVALUES_TABLE, "name", 0, MR_NO_MATCH},
2979};
2980
2981static struct validate gval_validate = {
2982 gval_valobj,
2983 1,
2984 0,
2985 0,
2986 0,
2987 0,
2988 0,
2989 0,
2990 0,
2991};
2992
2993static char *aval_fields[] = {
2994 "name", "value",
2995};
2996
2997static struct valobj aval_valobj[] = {
2998 {V_CHAR, 0, NUMVALUES_TABLE, "name"},
2999 {V_NUM, 1},
3000};
3001
3002static struct validate aval_validate = /* for aval, uval, and dval */
3003{
3004 aval_valobj,
3005 2,
3006 "name",
3007 "name = '%s'",
3008 1,
3009 0,
3010 0,
3011 0,
3012 0,
3013};
3014
3015static char *dval_fields[] = {
3016 "name",
3017};
3018
3019static char *gats_fields[] = {
3020 "table_name", "appends", "updates", "deletes",
3021 "modtime", "modby", "modwith",
3022};
3023
3024static char *_sdl_fields[] = {
3025 "level",
3026};
3027
3028static struct validate _sdl_validate =
3029{
3030 VOnum0,
3031 1,
3032 NULL,
3033 NULL,
3034 0,
3035 0,
3036 0,
3037 0,
3038 _sdl_followup,
3039};
3040
3041static char *gusl_fields[] = {
3042 "login", "domain_sid",
3043 "login", "sid", "created",
3044};
3045
3046static struct validate gusl_validate =
3047{
3048 VOuser0,
3049 1,
3050 NULL,
3051 NULL,
3052 0,
3053 0,
3054 0,
3055 0,
3056 0,
3057};
3058
3059static char *glsn_fields[] = {
3060 "name", "domain_sid",
3061 "name", "sid", "created",
3062};
3063
3064static struct validate glsn_validate =
3065{
3066 VOlist0,
3067 1,
3068 NULL,
3069 NULL,
3070 0,
3071 0,
3072 0,
3073 0,
3074 0,
3075};
3076
3077static char *ausl_fields[] = {
3078 "login", "sid",
3079};
3080
3081static struct validate ausl_validate =
3082{
3083 VOuser0,
3084 1,
3085 "sid",
3086 "users_id = %d AND sid = '%s'",
3087 2,
3088 0,
3089 0,
3090 0,
3091 0,
3092};
3093
3094static char *alsn_fields[] = {
3095 "name", "sid",
3096};
3097
3098static struct validate alsn_validate =
3099{
3100 VOlist0,
3101 1,
3102 "sid",
3103 "list_id = %d AND sid = '%s'",
3104 2,
3105 0,
3106 0,
3107 0,
3108 0,
3109};
3110
3111static char *gdds_fields[] = {
3112 "sid",
3113};
3114
3115static char *gcon_fields[] = {
3116 "name",
3117 "name", "description", "location", "contact",
3118 "ace_type", "ace_name", "memace_type", "memace_name", "modtime", "modby", "modwith",
3119};
3120
3121static struct validate gcon_validate = {
3122 0,
3123 0,
3124 0,
3125 0,
3126 0,
3127 0,
3128 0,
3129 0,
3130 followup_gcon,
3131};
3132
3133static char *acon_fields[] = {
3134 "name", "description", "location", "contact",
3135 "ace_type", "ace_name", "memace_type", "memace_name",
3136};
3137
3138static struct valobj acon_valobj[] = {
3139 {V_CHAR, 0, CONTAINERS_TABLE, "name"},
3140 {V_LEN, 1, CONTAINERS_TABLE, "description"},
3141 {V_CHAR, 2, CONTAINERS_TABLE, "location"},
3142 {V_CHAR, 3, CONTAINERS_TABLE, "contact"},
3143 {V_TYPE, 4, 0, "ace_type", 0, MR_ACE},
3144 {V_TYPEDATA, 5, 0, 0, 0, MR_ACE},
3145 {V_TYPE, 6, 0, "ace_type", 0, MR_ACE},
3146 {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
3147};
3148
3149static struct validate acon_validate =
3150{
3151 acon_valobj,
3152 8,
3153 "name",
3154 "name = '%s'",
3155 1,
3156 "cnt_id",
3157 0,
3158 prefetch_value,
3159 set_modtime,
3160};
3161
3162static char *ucon_fields[] = {
3163 "name",
3164 "newname", "description", "location", "contact",
3165 "ace_type", "ace_name", "memace_type", "memace_name",
3166};
3167
3168static struct valobj ucon_valobj[] = {
3169 {V_ID, 0, CONTAINERS_TABLE, "name", "cnt_id", MR_CONTAINER},
3170 {V_RENAME, 1, CONTAINERS_TABLE, "name", "cnt_id", MR_NOT_UNIQUE},
3171 {V_LEN, 2, CONTAINERS_TABLE, "description"},
3172 {V_CHAR, 3, CONTAINERS_TABLE, "location"},
3173 {V_CHAR, 4, CONTAINERS_TABLE, "contact"},
3174 {V_TYPE, 5, 0, "ace_type", 0, MR_ACE},
3175 {V_TYPEDATA, 6, 0, 0, 0, MR_ACE},
3176 {V_TYPE, 7, 0, "ace_type", 0, MR_ACE},
3177 {V_TYPEDATA, 8, 0, 0, 0, MR_ACE},
3178};
3179
3180static struct validate ucon_validate =
3181{
3182 ucon_valobj,
3183 9,
3184 0,
3185 0,
3186 0,
3187 0,
3188 access_container,
3189 0,
3190 update_container,
3191};
3192
3193static char *dcon_fields[] = {
3194 "name",
3195};
3196
3197static struct validate dcon_validate =
3198{
3199 VOcon0,
3200 1,
3201 0,
3202 0,
3203 0,
3204 0,
3205 0,
3206 setup_dcon,
3207 0,
3208};
3209
3210static char *amcn_fields[] = {
3211 "machine", "container",
3212};
3213
3214static struct valobj amcn_valobj[] = /* ADD_MACHINE_TO_CONTAINER */
3215{ /* DELETE_MACHINE_FROM_CONTAINER */
3216 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
3217 {V_ID, 1, CONTAINERS_TABLE, "name", "cnt_id", MR_CONTAINER},
3218};
3219
3220static struct validate amcn_validate = /* for amtn and dmfn */
3221{
3222 amcn_valobj,
3223 2,
3224 "mach_id",
3225 "mach_id = %d",
3226 1,
3227 0,
3228 access_container,
3229 0,
3230 set_mach_modtime_by_id,
3231};
3232
3233static struct validate dmcn_validate = /* for amtn and dmfn */
3234{
3235 amcn_valobj,
3236 2,
3237 "mach_id",
3238 "mach_id = %d and cnt_id = %d",
3239 2,
3240 0,
3241 access_container,
3242 0,
3243 set_mach_modtime_by_id,
3244};
3245
3246static char *gmnm_fields[] = {
3247 "machine",
3248 "machine", "container",
3249};
3250
3251static char *gmoc_fields[] = {
3252 "container",
3253 "isrecursive",
3254 "machine",
3255 "container",
3256};
3257
3258static struct validate gmoc_validate =
3259{
3260 VOcon0,
3261 1,
3262 0,
3263 0,
3264 0,
3265 0,
3266 0,
3267 0,
3268 get_machines_of_container,
3269};
3270
3271static char *gsoc_fields[] = {
3272 "container",
3273 "isrecursive",
3274 "subcontainer",
3275};
3276
3277static struct validate gsoc_validate =
3278{
3279 VOcon0,
3280 1,
3281 0,
3282 0,
3283 0,
3284 0,
3285 0,
3286 0,
3287 get_subcontainers_of_container,
3288};
3289
3290static char *gtlc_fields[] = {
3291 "name",
3292};
3293
3294
3295/* Generalized Query Definitions */
3296
3297/* Multiple versions of the same query MUST be listed in ascending
3298 * order.
3299 */
3300
3301/* Note: For any query which uses prefetch_value, the vcnt should be
3302 * one less than the number of %-format specifiers in the tlist.
3303 */
3304
3305struct query Queries[] = {
3306 {
3307 /* Q_GALO - GET_ALL_LOGINS, v2 */
3308 "get_all_logins",
3309 "galo",
3310 2,
3311 RETRIEVE,
3312 "u",
3313 USERS_TABLE,
3314 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
3315 galo2_fields,
3316 6,
3317 "u.users_id != 0",
3318 0,
3319 "u.login",
3320 0,
3321 },
3322
3323 {
3324 /* Q_GALO - GET_ALL_LOGINS, v3 */
3325 "get_all_logins",
3326 "galo",
3327 3,
3328 RETRIEVE,
3329 "u",
3330 USERS_TABLE,
3331 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle FROM users u",
3332 galo_fields,
3333 7,
3334 "u.users_id != 0",
3335 0,
3336 "u.login",
3337 0,
3338 },
3339
3340 {
3341 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS, v2 */
3342 "get_all_active_logins",
3343 "gaal",
3344 2,
3345 RETRIEVE,
3346 "u",
3347 USERS_TABLE,
3348 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
3349 galo2_fields,
3350 6,
3351 "u.status = 1",
3352 0,
3353 "u.login",
3354 0,
3355 },
3356
3357 {
3358 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS, v3 */
3359 "get_all_active_logins",
3360 "gaal",
3361 3,
3362 RETRIEVE,
3363 "u",
3364 USERS_TABLE,
3365 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle FROM users u",
3366 galo_fields,
3367 7,
3368 "u.status = 1",
3369 0,
3370 "u.login",
3371 0,
3372 },
3373
3374 {
3375 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN, v2 */
3376 "get_user_account_by_login",
3377 "gual",
3378 2,
3379 RETRIEVE,
3380 "u",
3381 USERS_TABLE,
3382 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3383 gual2_fields,
3384 15,
3385 "u.login LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
3386 1,
3387 "u.login",
3388 &gubl_validate,
3389 },
3390
3391 {
3392 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN, v3 */
3393 "get_user_account_by_login",
3394 "gual",
3395 3,
3396 RETRIEVE,
3397 "u",
3398 USERS_TABLE,
3399 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3400 gual_fields,
3401 16,
3402 "u.login LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
3403 1,
3404 "u.login",
3405 &gubl_validate,
3406 },
3407
3408 {
3409 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID, v2 */
3410 "get_user_account_by_uid",
3411 "guau",
3412 2,
3413 RETRIEVE,
3414 "u",
3415 USERS_TABLE,
3416 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3417 guau2_fields,
3418 15,
3419 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
3420 1,
3421 "u.login",
3422 &gubu_validate,
3423 },
3424
3425 {
3426 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID, v3 */
3427 "get_user_account_by_uid",
3428 "guau",
3429 3,
3430 RETRIEVE,
3431 "u",
3432 USERS_TABLE,
3433 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3434 guau_fields,
3435 16,
3436 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
3437 1,
3438 "u.login",
3439 &gubu_validate,
3440 },
3441
3442 {
3443 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME, v2 */
3444 "get_user_account_by_name",
3445 "guan",
3446 2,
3447 RETRIEVE,
3448 "u",
3449 USERS_TABLE,
3450 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3451 guan2_fields,
3452 15,
3453 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0 and u.comments = str.string_id",
3454 2,
3455 "u.login",
3456 &guan_validate,
3457 },
3458
3459 {
3460 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME, v3 */
3461 "get_user_account_by_name",
3462 "guan",
3463 3,
3464 RETRIEVE,
3465 "u",
3466 USERS_TABLE,
3467 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3468 guan_fields,
3469 16,
3470 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0 and u.comments = str.string_id",
3471 2,
3472 "u.login",
3473 &guan_validate,
3474 },
3475
3476 {
3477 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS, v2 */
3478 "get_user_account_by_class",
3479 "guac",
3480 2,
3481 RETRIEVE,
3482 "u",
3483 USERS_TABLE,
3484 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3485 guac2_fields,
3486 15,
3487 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
3488 1,
3489 "u.login",
3490 &VDfix_modby,
3491 },
3492
3493 {
3494 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS, v3 */
3495 "get_user_account_by_class",
3496 "guac",
3497 3,
3498 RETRIEVE,
3499 "u",
3500 USERS_TABLE,
3501 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3502 guac_fields,
3503 16,
3504 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
3505 1,
3506 "u.login",
3507 &VDfix_modby,
3508 },
3509
3510 {
3511 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID, v2 */
3512 "get_user_account_by_id",
3513 "guai",
3514 2,
3515 RETRIEVE,
3516 "u",
3517 USERS_TABLE,
3518 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3519 guam2_fields,
3520 15,
3521 "u.clearid LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
3522 1,
3523 "u.login",
3524 &VDfix_modby,
3525 },
3526
3527 {
3528 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID, v3 */
3529 "get_user_account_by_id",
3530 "guai",
3531 3,
3532 RETRIEVE,
3533 "u",
3534 USERS_TABLE,
3535 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3536 guam_fields,
3537 16,
3538 "u.clearid LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
3539 1,
3540 "u.login",
3541 &VDfix_modby,
3542 },
3543
3544 {
3545 /* Q_GUBL - GET_USER_BY_LOGIN, v2 */
3546 "get_user_by_login",
3547 "gubl",
3548 2,
3549 RETRIEVE,
3550 "u",
3551 USERS_TABLE,
3552 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3553 gubl2_fields,
3554 12,
3555 "u.login LIKE '%s' AND u.users_id != 0",
3556 1,
3557 "u.login",
3558 &gubl_validate,
3559 },
3560
3561 {
3562 /* Q_GUBL - GET_USER_BY_LOGIN, v3 */
3563 "get_user_by_login",
3564 "gubl",
3565 3,
3566 RETRIEVE,
3567 "u",
3568 USERS_TABLE,
3569 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3570 gubl_fields,
3571 13,
3572 "u.login LIKE '%s' AND u.users_id != 0",
3573 1,
3574 "u.login",
3575 &gubl_validate,
3576 },
3577
3578 {
3579 /* Q_GUBU - GET_USER_BY_UID, v2 */
3580 "get_user_by_uid",
3581 "gubu",
3582 2,
3583 RETRIEVE,
3584 "u",
3585 USERS_TABLE,
3586 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3587 gubu2_fields,
3588 12,
3589 "u.unix_uid = %s AND u.users_id != 0",
3590 1,
3591 "u.login",
3592 &gubu_validate,
3593 },
3594
3595 {
3596 /* Q_GUBU - GET_USER_BY_UID, v3 */
3597 "get_user_by_uid",
3598 "gubu",
3599 3,
3600 RETRIEVE,
3601 "u",
3602 USERS_TABLE,
3603 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3604 gubu_fields,
3605 13,
3606 "u.unix_uid = %s AND u.users_id != 0",
3607 1,
3608 "u.login",
3609 &gubu_validate,
3610 },
3611
3612 {
3613 /* Q_GUBN - GET_USER_BY_NAME, v2 */
3614 "get_user_by_name",
3615 "gubn",
3616 2,
3617 RETRIEVE,
3618 "u",
3619 USERS_TABLE,
3620 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3621 gubn2_fields,
3622 12,
3623 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0",
3624 2,
3625 "u.login",
3626 &gubn_validate,
3627 },
3628
3629 {
3630 /* Q_GUBN - GET_USER_BY_NAME, v3 */
3631 "get_user_by_name",
3632 "gubn",
3633 3,
3634 RETRIEVE,
3635 "u",
3636 USERS_TABLE,
3637 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3638 gubn_fields,
3639 13,
3640 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0",
3641 2,
3642 "u.login",
3643 &gubn_validate,
3644 },
3645
3646 {
3647 /* Q_GUBC - GET_USER_BY_CLASS, v2 */
3648 "get_user_by_class",
3649 "gubc",
3650 2,
3651 RETRIEVE,
3652 "u",
3653 USERS_TABLE,
3654 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3655 gubc2_fields,
3656 12,
3657 "u.type = UPPER('%s') AND u.users_id != 0",
3658 1,
3659 "u.login",
3660 &VDfix_modby,
3661 },
3662
3663 {
3664 /* Q_GUBC - GET_USER_BY_CLASS, v3 */
3665 "get_user_by_class",
3666 "gubc",
3667 3,
3668 RETRIEVE,
3669 "u",
3670 USERS_TABLE,
3671 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3672 gubc_fields,
3673 13,
3674 "u.type = UPPER('%s') AND u.users_id != 0",
3675 1,
3676 "u.login",
3677 &VDfix_modby,
3678 },
3679
3680 {
3681 /* Q_GUBM - GET_USER_BY_MITID, v2 */
3682 "get_user_by_mitid",
3683 "gubm",
3684 2,
3685 RETRIEVE,
3686 "u",
3687 USERS_TABLE,
3688 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3689 gubm2_fields,
3690 12,
3691 "u.clearid LIKE '%s' AND u.users_id != 0",
3692 1,
3693 "u.login",
3694 &VDfix_modby,
3695 },
3696
3697 {
3698 /* Q_GUBM - GET_USER_BY_MITID, v3 */
3699 "get_user_by_mitid",
3700 "gubm",
3701 3,
3702 RETRIEVE,
3703 "u",
3704 USERS_TABLE,
3705 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3706 gubm_fields,
3707 13,
3708 "u.clearid LIKE '%s' AND u.users_id != 0",
3709 1,
3710 "u.login",
3711 &VDfix_modby,
3712 },
3713
3714 {
3715 /* Q_AUAC - ADD_USER_ACCOUNT, v2 */ /* uses prefetch_value() for users_id */
3716 "add_user_account",
3717 "auac",
3718 2,
3719 APPEND,
3720 "u",
3721 USERS_TABLE,
3722 /* We set signature to "NVL(CHR(0), '%s')", which is to say, "CHR(0)",
3723 * but using up one argv element.
3724 */
3725 "INTO users (login, unix_uid, shell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s, NVL('%s', CHR(0)), '%s', %d, NVL(CHR(0), '%s'), %s, %s)",
3726 auac2_fields,
3727 12,
3728 NULL,
3729 0,
3730 NULL,
3731 &auac2_validate,
3732 },
3733
3734 {
3735 /* Q_AUAC - ADD_USER_ACCOUNT, v3 */ /* uses prefetch_value() for users_id */
3736 "add_user_account",
3737 "auac",
3738 3,
3739 APPEND,
3740 "u",
3741 USERS_TABLE,
3742 /* We set signature to "NVL(CHR(0), '%s')", which is to say, "CHR(0)",
3743 * but using up one argv element.
3744 */
3745 "INTO users (login, unix_uid, shell, winconsoleshell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s, NVL('%s', CHR(0)), '%s', %d, NVL(CHR(0), '%s'), %s, %s)",
3746 auac_fields,
3747 13,
3748 NULL,
3749 0,
3750 NULL,
3751 &auac_validate,
3752 },
3753
3754 {
3755 /* Q_AUSR - ADD_USER, v2 */ /* uses prefetch_value() for users_id */
3756 "add_user",
3757 "ausr",
3758 2,
3759 APPEND,
3760 "u",
3761 USERS_TABLE,
3762 "INTO users (login, unix_uid, shell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s, NVL('%s', CHR(0)), '%s', 0, CHR(0), 0, %s)",
3763 auac2_fields,
3764 9,
3765 0,
3766 0,
3767 NULL,
3768 &ausr2_validate,
3769 },
3770
3771 {
3772 /* Q_AUSR - ADD_USER, v3 */ /* uses prefetch_value() for users_id */
3773 "add_user",
3774 "ausr",
3775 3,
3776 APPEND,
3777 "u",
3778 USERS_TABLE,
3779 "INTO users (login, unix_uid, shell, winconsoleshell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s, NVL('%s', CHR(0)), '%s', 0, CHR(0), 0, %s)",
3780 auac_fields,
3781 10,
3782 0,
3783 0,
3784 NULL,
3785 &ausr_validate,
3786 },
3787
3788 {
3789 /* Q_RUSR - REGISTER_USER */
3790 "register_user",
3791 "rusr",
3792 2,
3793 APPEND,
3794 0,
3795 0,
3796 0,
3797 rusr_fields,
3798 3,
3799 0,
3800 0,
3801 NULL,
3802 &rusr_validate,
3803 },
3804
3805 {
3806 /* Q_UUAC - UPDATE_USER_ACCOUNT, v2 */
3807 "update_user_account",
3808 "uuac",
3809 2,
3810 UPDATE,
3811 "u",
3812 USERS_TABLE,
3813 /* See comment in auac about signature. */
3814 "users SET login = '%s', unix_uid = %s, shell = '%s', last = NVL('%s', CHR(0)), first = NVL('%s', CHR(0)), middle = NVL('%s', CHR(0)), status = %s, clearid = NVL('%s', CHR(0)), type = '%s', comments = %d, signature = NVL(CHR(0), '%s'), secure = %s",
3815 uuac2_fields,
3816 12,
3817 "users_id = %d",
3818 1,
3819 NULL,
3820 &uuac2_validate,
3821 },
3822
3823 {
3824 /* Q_UUAC - UPDATE_USER_ACCOUNT, v3 */
3825 "update_user_account",
3826 "uuac",
3827 3,
3828 UPDATE,
3829 "u",
3830 USERS_TABLE,
3831 /* See comment in auac about signature. */
3832 "users SET login = '%s', unix_uid = %s, shell = '%s', winconsoleshell = '%s', last = NVL('%s', CHR(0)), first = NVL('%s', CHR(0)), middle = NVL('%s', CHR(0)), status = %s, clearid = NVL('%s', CHR(0)), type = '%s', comments = %d, signature = NVL(CHR(0), '%s'), secure = %s",
3833 uuac_fields,
3834 13,
3835 "users_id = %d",
3836 1,
3837 NULL,
3838 &uuac_validate,
3839 },
3840
3841 {
3842 /* Q_UUSR - UPDATE_USER, v2 */
3843 "update_user",
3844 "uusr",
3845 2,
3846 UPDATE,
3847 "u",
3848 USERS_TABLE,
3849 "users SET login = '%s', unix_uid = %s, shell = '%s', last = NVL('%s', CHR(0)), first = NVL('%s', CHR(0)), middle = NVL('%s', CHR(0)), status = %s, clearid = NVL('%s', CHR(0)), type = '%s'",
3850 uuac2_fields,
3851 9,
3852 "users_id = %d",
3853 1,
3854 NULL,
3855 &uusr2_validate,
3856 },
3857
3858 {
3859 /* Q_UUSR - UPDATE_USER, v3 */
3860 "update_user",
3861 "uusr",
3862 3,
3863 UPDATE,
3864 "u",
3865 USERS_TABLE,
3866 "users SET login = '%s', unix_uid = %s, shell = '%s', winconsoleshell = '%s', last = NVL('%s', CHR(0)), first = NVL('%s', CHR(0)), middle = NVL('%s', CHR(0)), status = %s, clearid = NVL('%s', CHR(0)), type = '%s'",
3867 uuac_fields,
3868 10,
3869 "users_id = %d",
3870 1,
3871 NULL,
3872 &uusr_validate,
3873 },
3874
3875 {
3876 /* Q_UUSH - UPDATE_USER_SHELL */
3877 "update_user_shell",
3878 "uush",
3879 2,
3880 UPDATE,
3881 "u",
3882 USERS_TABLE,
3883 "users SET shell = '%s'",
3884 uush_fields,
3885 1,
3886 "users_id = %d",
3887 1,
3888 NULL,
3889 &uush_validate,
3890 },
3891
3892 {
3893 /* Q_UUWS - UPDATE_USER_WINDOWS_SHELL */
3894 "update_user_windows_shell",
3895 "uuws",
3896 2,
3897 UPDATE,
3898 "u",
3899 USERS_TABLE,
3900 "users SET winconsoleshell = '%s'",
3901 uuws_fields,
3902 1,
3903 "users_id = %d",
3904 1,
3905 NULL,
3906 &uuws_validate,
3907 },
3908
3909 {
3910 /* Q_UUST - UPDATE_USER_STATUS */
3911 "update_user_status",
3912 "uust",
3913 2,
3914 UPDATE,
3915 "u",
3916 USERS_TABLE,
3917 "users SET status = %s",
3918 uust_fields,
3919 1,
3920 "users_id = %d",
3921 1,
3922 NULL,
3923 &uust_validate,
3924 },
3925
3926 {
3927 /* Q_UUSS - UPDATE_USER_SECURITY_STATUS */
3928 "update_user_security_status",
3929 "uuss",
3930 2,
3931 UPDATE,
3932 "u",
3933 USERS_TABLE,
3934 "users SET secure = %s",
3935 uuss_fields,
3936 1,
3937 "users_id = %d",
3938 1,
3939 NULL,
3940 &uust_validate,
3941 },
3942
3943 {
3944 /* Q_DUSR - DELETE_USER */
3945 "delete_user",
3946 "dusr",
3947 2,
3948 DELETE,
3949 "u",
3950 USERS_TABLE,
3951 NULL,
3952 dusr_fields,
3953 0,
3954 "users_id = %d",
3955 1,
3956 NULL,
3957 &dusr_validate,
3958 },
3959
3960 {
3961 /* Q_AURV - ADD_USER_RESERVATION */
3962 "add_user_reservation",
3963 "aurv",
3964 2,
3965 UPDATE,
3966 0,
3967 USERS_TABLE,
3968 0,
3969 aurv_fields,
3970 2,
3971 0,
3972 0,
3973 NULL,
3974 &aurv_validate,
3975 },
3976
3977 {
3978 /* Q_GURV - GET_USER_RESERVATIONS */
3979 "get_user_reservations",
3980 "gurv",
3981 2,
3982 RETRIEVE,
3983 0,
3984 USERS_TABLE,
3985 0,
3986 gurv_fields,
3987 2,
3988 0,
3989 1,
3990 NULL,
3991 &gurv_validate,
3992 },
3993
3994 {
3995 /* Q_GUBR - GET_USER_BY_RESERVATION */
3996 "get_user_by_reservation",
3997 "gubr",
3998 2,
3999 RETRIEVE,
4000 0,
4001 USERS_TABLE,
4002 0,
4003 gubr_fields,
4004 1,
4005 0,
4006 1,
4007 NULL,
4008 &gubr_validate,
4009 },
4010
4011 {
4012 /* Q_DURV - DELETE_USER_RESERVATION */
4013 "delete_user_reservation",
4014 "durv",
4015 2,
4016 UPDATE,
4017 0,
4018 USERS_TABLE,
4019 0,
4020 aurv_fields,
4021 2,
4022 0,
4023 0,
4024 NULL,
4025 &aurv_validate,
4026 },
4027
4028 {
4029 /* Q_GKUM - GET_KERBEROS_USER_MAP */
4030 "get_kerberos_user_map",
4031 "gkum",
4032 2,
4033 RETRIEVE,
4034 "k",
4035 KRBMAP_TABLE,
4036 "u.login, str.string FROM krbmap km, users u, strings str",
4037 gkum_fields,
4038 2,
4039 "u.login LIKE '%s' AND str.string LIKE '%s' AND km.users_id = u.users_id AND km.string_id = str.string_id",
4040 2,
4041 "u.login, str.string",
4042 NULL,
4043 },
4044
4045 {
4046 /* Q_AKUM - ADD_KERBEROS_USER_MAP */
4047 "add_kerberos_user_map",
4048 "akum",
4049 2,
4050 APPEND,
4051 "k",
4052 KRBMAP_TABLE,
4053 "INTO krbmap (users_id, string_id) VALUES (%d, %d)",
4054 akum_fields,
4055 2,
4056 0,
4057 0,
4058 NULL,
4059 &akum_validate,
4060 },
4061
4062 {
4063 /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
4064 "delete_kerberos_user_map",
4065 "dkum",
4066 2,
4067 DELETE,
4068 "k",
4069 KRBMAP_TABLE,
4070 0,
4071 akum_fields,
4072 0,
4073 "users_id = %d AND string_id = %d",
4074 2,
4075 NULL,
4076 &dkum_validate,
4077 },
4078
4079 {
4080 /* Q_GFBL - GET_FINGER_BY_LOGIN */
4081 "get_finger_by_login",
4082 "gfbl",
4083 2,
4084 RETRIEVE,
4085 "u",
4086 USERS_TABLE,
4087 "login, fullname, nickname, home_addr, home_phone, office_addr, office_phone, department, affiliation, TO_CHAR(fmodtime, 'DD-mon-YYYY HH24:MI:SS'), fmodby, fmodwith FROM users",
4088 gfbl_fields,
4089 12,
4090 "users_id = %d",
4091 1,
4092 "login",
4093 &gfbl_validate,
4094 },
4095
4096 {
4097 /* Q_UFBL - UPDATE_FINGER_BY_LOGIN */
4098 "update_finger_by_login",
4099 "ufbl",
4100 2,
4101 UPDATE,
4102 "u",
4103 USERS_TABLE,
4104 "users SET fullname= NVL('%s', CHR(0)), nickname= NVL('%s', CHR(0)), home_addr= NVL('%s', CHR(0)), home_phone= NVL('%s', CHR(0)), office_addr= NVL('%s', CHR(0)), office_phone= NVL('%s', CHR(0)), department= NVL('%s', CHR(0)), affiliation= NVL('%s', CHR(0))",
4105 ufbl_fields,
4106 8,
4107 "users_id = %d",
4108 1,
4109 NULL,
4110 &ufbl_validate,
4111 },
4112
4113 {
4114 /* Q_GPOB - GET_POBOX */
4115 "get_pobox",
4116 "gpob",
4117 2,
4118 RETRIEVE,
4119 "u",
4120 USERS_TABLE,
4121 "login, potype, users_id, CHR(0), TO_CHAR(pmodtime, 'DD-mon-YYYY HH24:MI:SS'), pmodby, pmodwith FROM users",
4122 gpob_fields,
4123 7,
4124 "users_id = %d",
4125 1,
4126 "login",
4127 &gpob_validate,
4128 },
4129
4130 {
4131 /* Q_GAPO - GET_ALL_POBOXES */
4132 "get_all_poboxes",
4133 "gapo",
4134 2,
4135 RETRIEVE,
4136 "u",
4137 USERS_TABLE,
4138 "login, potype, pop_id || ':' || box_id FROM users",
4139 gpox_fields,
4140 3,
4141 "potype != 'NONE'",
4142 0,
4143 "login",
4144 &gpox_validate,
4145 },
4146
4147 {
4148 /* Q_GPOP - GET_POBOXES_POP */
4149 "get_poboxes_pop",
4150 "gpop",
4151 2,
4152 RETRIEVE,
4153 "u",
4154 USERS_TABLE,
4155 "login, potype, users_id FROM users",
4156 gpox_fields,
4157 3,
4158 "potype = 'POP'",
4159 0,
4160 "login",
4161 &gpox_validate
4162 },
4163
4164 {
4165 /* Q_GPOF - GET_POBOXES_SMTP */
4166 "get_poboxes_smtp",
4167 "gpos",
4168 2,
4169 RETRIEVE,
4170 "u",
4171 USERS_TABLE,
4172 "login, potype, users_id FROM users",
4173 gpox_fields,
4174 3,
4175 "potype = 'SMTP'",
4176 0,
4177 "login",
4178 &gpox_validate
4179 },
4180
4181 {
4182 /* Q_SPOB - SET_POBOX */
4183 "set_pobox",
4184 "spob",
4185 2,
4186 UPDATE,
4187 0,
4188 USERS_TABLE,
4189 0,
4190 spob_fields,
4191 3,
4192 NULL,
4193 0,
4194 NULL,
4195 &spob_validate,
4196 },
4197
4198 {
4199 /* Q_SPOP - SET_POBOX_POP */
4200 "set_pobox_pop",
4201 "spop",
4202 2,
4203 UPDATE,
4204 0,
4205 USERS_TABLE,
4206 0,
4207 spob_fields,
4208 1,
4209 NULL,
4210 0,
4211 NULL,
4212 &spop_validate,
4213 },
4214
4215 {
4216 /* Q_DPOB - DELETE_POBOX */
4217 "delete_pobox",
4218 "dpob",
4219 2,
4220 UPDATE,
4221 "u",
4222 USERS_TABLE,
4223 "users SET potype = 'NONE'",
4224 spob_fields,
4225 0,
4226 "users_id = %d",
4227 1,
4228 NULL,
4229 &dpob_validate,
4230 },
4231
4232 {
4233 /* Q_GHST - GET_HOST, v2 */
4234 "get_host",
4235 "ghst",
4236 2,
4237 RETRIEVE,
4238 "m",
4239 MACHINE_TABLE,
4240 "m.name, m.vendor, m.model, m.os, m.location, m.contact, m.use, m.status, TO_CHAR(m.statuschange, 'DD-mon-YYYY HH24:MI:SS'), s.name, m.address, m.owner_type, m.owner_id, m.acomment, m.ocomment, TO_CHAR(m.created, 'DD-mon-YYYY HH24:MI:SS'), m.creator, TO_CHAR(m.inuse, 'DD-mon-YYYY HH24:MI:SS'), TO_CHAR(m.modtime, 'DD-mon-YYYY HH24:MI:SS'), m.modby, m.modwith FROM machine m, subnet s",
4241 ghst2_fields,
4242 21,
4243 "m.name LIKE UPPER('%s') AND m.address LIKE '%s' AND m.location LIKE UPPER('%s') AND s.name LIKE UPPER('%s') AND m.mach_id != 0 AND s.snet_id = m.snet_id",
4244 4,
4245 "m.name",
4246 &ghst_validate,
4247 },
4248
4249 {
4250 /* Q_GHST - GET_HOST, v6 */
4251 "get_host",
4252 "ghst",
4253 6,
4254 RETRIEVE,
4255 "m",
4256 MACHINE_TABLE,
4257 "m.name, m.vendor, m.model, m.os, m.location, m.contact, m.billing_contact, m.use, m.status, TO_CHAR(m.statuschange, 'DD-mon-YYYY HH24:MI:SS'), s.name, m.address, m.owner_type, m.owner_id, m.acomment, m.ocomment, TO_CHAR(m.created, 'DD-mon-YYYY HH24:MI:SS'), m.creator, TO_CHAR(m.inuse, 'DD-mon-YYYY HH24:MI:SS'), TO_CHAR(m.modtime, 'DD-mon-YYYY HH24:MI:SS'), m.modby, m.modwith FROM machine m, subnet s",
4258 ghst_fields,
4259 22,
4260 "m.name LIKE UPPER('%s') AND m.address LIKE '%s' AND m.location LIKE UPPER('%s') AND s.name LIKE UPPER('%s') AND m.mach_id != 0 AND s.snet_id = m.snet_id",
4261 4,
4262 "m.name",
4263 &ghst_validate,
4264 },
4265
4266 {
4267 /* Q_GHBH - GET_HOST_BY_HWADDR, v2 */
4268 "get_host_by_hwaddr",
4269 "ghbh",
4270 2,
4271 RETRIEVE,
4272 "m",
4273 MACHINE_TABLE,
4274 "m.name, m.vendor, m.model, m.os, m.location, m.contact, m.use, m.status, TO_CHAR(m.statuschange, 'DD-mon-YYYY HH24:MI:SS'), s.name, m.address, m.owner_type, m.owner_id, m.acomment, m.ocomment, TO_CHAR(m.created, 'DD-mon-YYYY HH24:MI:SS'), m.creator, TO_CHAR(m.inuse, 'DD-mon-YYYY HH24:MI:SS'), TO_CHAR(m.modtime, 'DD-mon-YYYY HH24:MI:SS'), m.modby, m.modwith FROM machine m, subnet s",
4275 ghbh2_fields,
4276 21,
4277 "m.hwaddr LIKE LOWER('%s') AND m.mach_id != 0 AND s.snet_id = m.snet_id",
4278 1,
4279 "m.name",
4280 &ghst_validate,
4281 },
4282
4283 {
4284 /* Q_GHBH - GET_HOST_BY_HWADDR, v6 */
4285 "get_host_by_hwaddr",
4286 "ghbh",
4287 6,
4288 RETRIEVE,
4289 "m",
4290 MACHINE_TABLE,
4291 "m.name, m.vendor, m.model, m.os, m.location, m.contact, m.billing_contact, m.use, m.status, TO_CHAR(m.statuschange, 'DD-mon-YYYY HH24:MI:SS'), s.name, m.address, m.owner_type, m.owner_id, m.acomment, m.ocomment, TO_CHAR(m.created, 'DD-mon-YYYY HH24:MI:SS'), m.creator, TO_CHAR(m.inuse, 'DD-mon-YYYY HH24:MI:SS'), TO_CHAR(m.modtime, 'DD-mon-YYYY HH24:MI:SS'), m.modby, m.modwith FROM machine m, subnet s",
4292 ghbh_fields,
4293 22,
4294 "m.hwaddr LIKE LOWER('%s') AND m.mach_id != 0 AND s.snet_id = m.snet_id",
4295 1,
4296 "m.name",
4297 &ghst_validate,
4298 },
4299
4300 {
4301 /* Q_GHHA - GET_HOST_HWADDR */
4302 "get_host_hwaddr",
4303 "ghha",
4304 2,
4305 RETRIEVE,
4306 "m",
4307 MACHINE_TABLE,
4308 "m.hwaddr FROM machine m",
4309 ghha_fields,
4310 1,
4311 "m.name LIKE UPPER('%s')",
4312 1,
4313 NULL,
4314 NULL,
4315 },
4316
4317 {
4318 /* Q_AHST - ADD_HOST, v2 */ /* uses prefetch_value() for mach_id */
4319 "add_host",
4320 "ahst",
4321 2,
4322 APPEND,
4323 "m",
4324 MACHINE_TABLE,
4325 "INTO machine (name, vendor, model, os, location, contact, use, status, statuschange, snet_id, address, owner_type, owner_id, acomment, ocomment, created, inuse, mach_id, creator) VALUES (UPPER('%s'), NVL(UPPER('%s'), CHR(0)), NVL(UPPER('%s'), CHR(0)), NVL(UPPER('%s'), CHR(0)), NVL(UPPER('%s'), CHR(0)), NVL('%s', CHR(0)), %s, %s, SYSDATE, %d, '%s', '%s', %d, %d, %d, SYSDATE, SYSDATE, %s, %s)",
4326 ahst2_fields,
4327 14,
4328 0,
4329 0,
4330 NULL,
4331 &ahst2_validate,
4332 },
4333
4334 {
4335 /* Q_AHST - ADD_HOST, v6 */ /* uses prefetch_value() for mach_id */
4336 "add_host",
4337 "ahst",
4338 6,
4339 APPEND,
4340 "m",
4341 MACHINE_TABLE,
4342 "INTO machine (name, vendor, model, os, location, contact, billing_contact, use, status, statuschange, snet_id, address, owner_type, owner_id, acomment, ocomment, created, inuse, mach_id, creator) VALUES (UPPER('%s'), NVL(UPPER('%s'), CHR(0)), NVL(UPPER('%s'), CHR(0)), NVL(UPPER('%s'), CHR(0)), NVL(UPPER('%s'), CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s, %s, SYSDATE, %d, '%s', '%s', %d, %d, %d, SYSDATE, SYSDATE, %s, %s)",
4343 ahst_fields,
4344 15,
4345 0,
4346 0,
4347 NULL,
4348 &ahst_validate,
4349 },
4350
4351 {
4352 /* Q_UHST - UPDATE_HOST, v2 */
4353 "update_host",
4354 "uhst",
4355 2,
4356 UPDATE,
4357 "m",
4358 MACHINE_TABLE,
4359 "machine SET name = NVL(UPPER('%s'), CHR(0)), vendor = NVL(UPPER('%s'), CHR(0)), model = NVL(UPPER('%s'), CHR(0)), os = NVL(UPPER('%s'), CHR(0)), location = NVL(UPPER('%s'), CHR(0)), contact = NVL('%s', CHR(0)), use = %s, status = %s, snet_id = %d, address = '%s', owner_type = '%s', owner_id = %d, acomment = %d, ocomment = %d",
4360 uhst2_fields,
4361 14,
4362 "mach_id = %d",
4363 1,
4364 NULL,
4365 &uhst2_validate,
4366 },
4367
4368 {
4369 /* Q_UHST - UPDATE_HOST, v6 */
4370 "update_host",
4371 "uhst",
4372 6,
4373 UPDATE,
4374 "m",
4375 MACHINE_TABLE,
4376 "machine SET name = NVL(UPPER('%s'), CHR(0)), vendor = NVL(UPPER('%s'), CHR(0)), model = NVL(UPPER('%s'), CHR(0)), os = NVL(UPPER('%s'), CHR(0)), location = NVL(UPPER('%s'), CHR(0)), contact = NVL('%s', CHR(0)), billing_contact = NVL('%s', CHR(0)), use = %s, status = %s, snet_id = %d, address = '%s', owner_type = '%s', owner_id = %d, acomment = %d, ocomment = %d",
4377 uhst_fields,
4378 15,
4379 "mach_id = %d",
4380 1,
4381 NULL,
4382 &uhst_validate,
4383 },
4384
4385 {
4386 /* Q_UHHA - UPDATE_HOST_HWADDR */
4387 "update_host_hwaddr",
4388 "uhha",
4389 2,
4390 UPDATE,
4391 "m",
4392 MACHINE_TABLE,
4393 "machine SET hwaddr = NVL('%s', CHR(0))",
4394 uhha_fields,
4395 1,
4396 "mach_id = %d",
4397 1,
4398 NULL,
4399 &uhha_validate,
4400 },
4401
4402 {
4403 /* Q_DHST - DELETE_HOST */
4404 "delete_host",
4405 "dhst",
4406 2,
4407 DELETE,
4408 "m",
4409 MACHINE_TABLE,
4410 NULL,
4411 dhst_fields,
4412 0,
4413 "mach_id = %d",
4414 1,
4415 NULL,
4416 &dhst_validate,
4417 },
4418
4419 {
4420 /* Q_GMAC - GET_MACHINE */
4421 "get_machine",
4422 "gmac",
4423 2,
4424 RETRIEVE,
4425 "m",
4426 MACHINE_TABLE,
4427 "name, vendor, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM machine",
4428 gmac_fields,
4429 5,
4430 "name LIKE UPPER('%s') AND mach_id != 0",
4431 1,
4432 "name",
4433 &VDfix_modby,
4434 },
4435
4436 {
4437 /* Q_GHAL - GET_HOSTALIAS */
4438 "get_hostalias",
4439 "ghal",
4440 2,
4441 RETRIEVE,
4442 "a",
4443 HOSTALIAS_TABLE,
4444 "a.name, m.name FROM hostalias a, machine m",
4445 ghal_fields,
4446 2,
4447 "m.mach_id = a.mach_id and a.name LIKE UPPER('%s') AND m.name LIKE UPPER('%s')",
4448 2,
4449 "a.name",
4450 &ghal_validate,
4451 },
4452
4453 {
4454 /* Q_AHAL - ADD_HOSTALIAS */
4455 "add_hostalias",
4456 "ahal",
4457 2,
4458 APPEND,
4459 "a",
4460 HOSTALIAS_TABLE,
4461 "INTO hostalias (name, mach_id) VALUES (UPPER('%s'), %d)",
4462 ghal_fields,
4463 2,
4464 0,
4465 0,
4466 NULL,
4467 &ahal_validate,
4468 },
4469
4470 {
4471 /* Q_DHAL - DELETE_HOSTALIAS */
4472 "delete_hostalias",
4473 "dhal",
4474 2,
4475 DELETE,
4476 "a",
4477 HOSTALIAS_TABLE,
4478 NULL,
4479 ghal_fields,
4480 0,
4481 "name = UPPER('%s') AND mach_id = %d",
4482 2,
4483 NULL,
4484 &dhal_validate,
4485 },
4486
4487 {
4488 /* Q_GSNT - GET_SUBNET */
4489 "get_subnet",
4490 "gsnt",
4491 2,
4492 RETRIEVE,
4493 "s",
4494 SUBNET_TABLE,
4495 "name, description, saddr, mask, low, high, prefix, owner_type, owner_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM subnet",
4496 gsnt_fields,
4497 12,
4498 "name LIKE UPPER('%s')",
4499 1,
4500 "name",
4501 &gsnt_validate,
4502 },
4503
4504 {
4505 /* Q_ASNT - ADD_SUBNET */
4506 "add_subnet",
4507 "asnt",
4508 2,
4509 APPEND,
4510 "s",
4511 SUBNET_TABLE,
4512 "INTO subnet (name, description, saddr, mask, low, high, prefix, owner_type, owner_id, snet_id) VALUES (UPPER('%s'), NVL('%s', CHR(0)), %s, %s, %s, %s, NVL('%s', CHR(0)), '%s', %d, %s)",
4513 asnt_fields,
4514 9,
4515 0,
4516 0,
4517 NULL,
4518 &asnt_validate,
4519 },
4520
4521 {
4522 /* Q_USNT - UPDATE_SUBNET */
4523 "update_subnet",
4524 "usnt",
4525 2,
4526 UPDATE,
4527 "s",
4528 SUBNET_TABLE,
4529 "subnet SET name = UPPER('%s'), description = NVL('%s', CHR(0)), saddr = %s, mask = %s, low = %s, high = %s, prefix = NVL('%s', CHR(0)), owner_type = '%s', owner_id = %d",
4530 usnt_fields,
4531 9,
4532 "snet_id = %d",
4533 1,
4534 NULL,
4535 &usnt_validate,
4536 },
4537
4538 {
4539 /* Q_DSNT - DELETE_SUBNET */
4540 "delete_subnet",
4541 "dsnt",
4542 2,
4543 DELETE,
4544 "s",
4545 SUBNET_TABLE,
4546 NULL,
4547 dsnt_fields,
4548 0,
4549 "snet_id = %d",
4550 1,
4551 NULL,
4552 &dsnt_validate,
4553 },
4554
4555 {
4556 /* Q_GCLU - GET_CLUSTER */
4557 "get_cluster",
4558 "gclu",
4559 2,
4560 RETRIEVE,
4561 "c",
4562 CLUSTERS_TABLE,
4563 "name, description, location, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM clusters",
4564 gclu_fields,
4565 6,
4566 "name LIKE '%s' AND clu_id != 0",
4567 1,
4568 "name",
4569 &VDfix_modby,
4570 },
4571
4572 {
4573 /* Q_ACLU - ADD_CLUSTER */ /* uses prefetch_value() for clu_id */
4574 "add_cluster",
4575 "aclu",
4576 2,
4577 APPEND,
4578 "c",
4579 CLUSTERS_TABLE,
4580 "INTO clusters (name, description, location, clu_id) VALUES ('%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s)",
4581 aclu_fields,
4582 3,
4583 0,
4584 0,
4585 NULL,
4586 &aclu_validate,
4587 },
4588
4589 {
4590 /* Q_UCLU - UPDATE_CLUSTER */
4591 "update_cluster",
4592 "uclu",
4593 2,
4594 UPDATE,
4595 "c",
4596 CLUSTERS_TABLE,
4597 "clusters SET name = '%s', description = NVL('%s', CHR(0)), location = NVL('%s', CHR(0))",
4598 uclu_fields,
4599 3,
4600 "clu_id = %d",
4601 1,
4602 NULL,
4603 &uclu_validate,
4604 },
4605
4606 {
4607 /* Q_DCLU - DELETE_CLUSTER */
4608 "delete_cluster",
4609 "dclu",
4610 2,
4611 DELETE,
4612 "c",
4613 CLUSTERS_TABLE,
4614 NULL,
4615 dclu_fields,
4616 0,
4617 "clu_id = %d",
4618 1,
4619 NULL,
4620 &dclu_validate,
4621 },
4622
4623 {
4624 /* Q_GMCM - GET_MACHINE_TO_CLUSTER_MAP */
4625 "get_machine_to_cluster_map",
4626 "gmcm",
4627 2,
4628 RETRIEVE,
4629 "mcm",
4630 MCMAP_TABLE,
4631 "m.name, c.name FROM machine m, clusters c, mcmap mcm",
4632 gmcm_fields,
4633 2,
4634 "m.name LIKE UPPER('%s') AND c.name LIKE '%s' AND mcm.clu_id = c.clu_id AND mcm.mach_id = m.mach_id",
4635 2,
4636 "m.name",
4637 NULL,
4638 },
4639
4640 {
4641 /* Q_AMTC - ADD_MACHINE_TO_CLUSTER */
4642 "add_machine_to_cluster",
4643 "amtc",
4644 2,
4645 APPEND,
4646 "mcm",
4647 MCMAP_TABLE,
4648 "INTO mcmap (mach_id, clu_id) VALUES (%d, %d)",
4649 gmcm_fields,
4650 2,
4651 0,
4652 0,
4653 NULL,
4654 &amtc_validate,
4655 },
4656
4657 {
4658 /* Q_DMFC - DELETE_MACHINE_FROM_CLUSTER */
4659 "delete_machine_from_cluster",
4660 "dmfc",
4661 2,
4662 DELETE,
4663 "mcm",
4664 MCMAP_TABLE,
4665 0,
4666 gmcm_fields,
4667 0,
4668 "mach_id = %d AND clu_id = %d",
4669 2,
4670 NULL,
4671 &amtc_validate,
4672 },
4673
4674 {
4675 /* Q_GCLD - GET_CLUSTER_DATA */
4676 "get_cluster_data",
4677 "gcld",
4678 2,
4679 RETRIEVE,
4680 "svc",
4681 SVC_TABLE,
4682 "c.name, svc.serv_label, svc.serv_cluster FROM svc svc, clusters c",
4683 gcld_fields,
4684 3,
4685 "c.clu_id = svc.clu_id AND c.name LIKE '%s' AND svc.serv_label LIKE '%s'",
4686 2,
4687 "c.name, svc.serv_label",
4688 NULL,
4689 },
4690
4691 {
4692 /* Q_ACLD - ADD_CLUSTER_DATA */
4693 "add_cluster_data",
4694 "acld",
4695 2,
4696 APPEND,
4697 "svc",
4698 SVC_TABLE,
4699 "INTO svc (clu_id, serv_label, serv_cluster) VALUES (%d, '%s', '%s')",
4700 acld_fields,
4701 3,
4702 NULL,
4703 0,
4704 NULL,
4705 &acld_validate,
4706 },
4707
4708 {
4709 /* Q_DCLD - DELETE_CLUSTER_DATA */
4710 "delete_cluster_data",
4711 "dcld",
4712 2,
4713 DELETE,
4714 "svc",
4715 SVC_TABLE,
4716 NULL,
4717 acld_fields,
4718 0,
4719 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
4720 3,
4721 NULL,
4722 &dcld_validate,
4723 },
4724
4725 {
4726 /* Q_GLIN - GET_LIST_INFO, v2 */
4727 "get_list_info",
4728 "glin",
4729 2,
4730 RETRIEVE,
4731 "l",
4732 LIST_TABLE,
4733 "name, active, publicflg, hidden, maillist, grouplist, gid, acl_type, acl_id, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM list",
4734 glin2_fields,
4735 13,
4736 "name LIKE '%s'",
4737 1,
4738 "name",
4739 &glin_validate,
4740 },
4741
4742 {
4743 /* Q_GLIN - GET_LIST_INFO, v3 */
4744 "get_list_info",
4745 "glin",
4746 3,
4747 RETRIEVE,
4748 "l",
4749 LIST_TABLE,
4750 "name, active, publicflg, hidden, maillist, grouplist, gid, nfsgroup, acl_type, acl_id, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM list",
4751 glin3_fields,
4752 14,
4753 "name LIKE '%s'",
4754 1,
4755 "name",
4756 &glin_validate,
4757 },
4758
4759 {
4760 /* Q_GLIN - GET_LIST_INFO, v4 */
4761 "get_list_info",
4762 "glin",
4763 4,
4764 RETRIEVE,
4765 "l",
4766 LIST_TABLE,
4767 "name, active, publicflg, hidden, maillist, grouplist, gid, nfsgroup, acl_type, acl_id, memacl_type, memacl_id, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM list",
4768 glin_fields,
4769 16,
4770 "name LIKE '%s'",
4771 1,
4772 "name",
4773 &glin_validate,
4774 },
4775
4776 {
4777 /* Q_EXLN - EXPAND_LIST_NAMES */
4778 "expand_list_names",
4779 "exln",
4780 2,
4781 RETRIEVE,
4782 "l",
4783 LIST_TABLE,
4784 "name FROM list",
4785 glin_fields,
4786 1,
4787 "name LIKE '%s' AND list_id != 0",
4788 1,
4789 "name",
4790 NULL,
4791 },
4792
4793 {
4794 /* Q_ALIS - ADD_LIST, v2 */ /* uses prefetch_value() for list_id */
4795 "add_list",
4796 "alis",
4797 2,
4798 APPEND,
4799 "l",
4800 LIST_TABLE,
4801 "INTO list (name, active, publicflg, hidden, maillist, grouplist, gid, acl_type, acl_id, description, list_id) VALUES ('%s', %s, %s, %s, %s, %s, %s, '%s', %d, NVL('%s', CHR(0)), %s)",
4802 alis2_fields,
4803 10,
4804 0,
4805 0,
4806 NULL,
4807 &alis2_validate,
4808 },
4809
4810 {
4811 /* Q_ALIS - ADD_LIST, v3 */ /* uses prefetch_value() for list_id */
4812 "add_list",
4813 "alis",
4814 3,
4815 APPEND,
4816 "l",
4817 LIST_TABLE,
4818 "INTO list (name, active, publicflg, hidden, maillist, grouplist, gid, nfsgroup, acl_type, acl_id, description, list_id) VALUES ('%s', %s, %s, %s, %s, %s, %s, %s, '%s', %d, NVL('%s', CHR(0)), %s)",
4819 alis3_fields,
4820 11,
4821 0,
4822 0,
4823 NULL,
4824 &alis3_validate,
4825 },
4826
4827 {
4828 /* Q_ALIS - ADD_LIST, v4 */ /* uses prefetch_value() for list_id */
4829 "add_list",
4830 "alis",
4831 4,
4832 APPEND,
4833 "l",
4834 LIST_TABLE,
4835 "INTO list (name, active, publicflg, hidden, maillist, grouplist, gid, nfsgroup, acl_type, acl_id, memacl_type, memacl_id, description, list_id) VALUES ('%s', %s, %s, %s, %s, %s, %s, %s, '%s', %d, '%s', %d, NVL('%s', CHR(0)), %s)",
4836 alis_fields,
4837 13,
4838 0,
4839 0,
4840 NULL,
4841 &alis_validate,
4842 },
4843
4844 {
4845 /* Q_ULIS - UPDATE_LIST, v2 */
4846 "update_list",
4847 "ulis",
4848 2,
4849 UPDATE,
4850 "l",
4851 LIST_TABLE,
4852 "list SET name = '%s', active = %s, publicflg = %s, hidden = %s, maillist = %s, grouplist = %s, gid = %s, acl_type = '%s', acl_id = %d, description = NVL('%s', CHR(0))",
4853 ulis2_fields,
4854 10,
4855 "list_id = %d",
4856 1,
4857 NULL,
4858 &ulis2_validate,
4859 },
4860
4861 {
4862 /* Q_ULIS - UPDATE_LIST, v3 */
4863 "update_list",
4864 "ulis",
4865 3,
4866 UPDATE,
4867 "l",
4868 LIST_TABLE,
4869 "list SET name = '%s', active = %s, publicflg = %s, hidden = %s, maillist = %s, grouplist = %s, gid = %s, nfsgroup = %s, acl_type = '%s', acl_id = %d, description = NVL('%s', CHR(0))",
4870 ulis3_fields,
4871 11,
4872 "list_id = %d",
4873 1,
4874 NULL,
4875 &ulis3_validate,
4876 },
4877
4878 {
4879 /* Q_ULIS, UPDATE_LIST, v4 */
4880 "update_list",
4881 "ulis",
4882 4,
4883 UPDATE,
4884 "l",
4885 LIST_TABLE,
4886 "list SET name = '%s', active = %s, publicflg = %s, hidden = %s, maillist = %s, grouplist = %s, gid = %s, nfsgroup = %s, acl_type = '%s', acl_id = %d, memacl_type = '%s', memacl_id = %d, description = NVL('%s', CHR(0))",
4887 ulis_fields,
4888 13,
4889 "list_id = %d",
4890 1,
4891 NULL,
4892 &ulis_validate,
4893 },
4894
4895 {
4896 /* Q_DLIS - DELETE_LIST */
4897 "delete_list",
4898 "dlis",
4899 2,
4900 DELETE,
4901 "l",
4902 LIST_TABLE,
4903 NULL,
4904 dlis_fields,
4905 0,
4906 "list_id = %d",
4907 1,
4908 NULL,
4909 &dlis_validate,
4910 },
4911
4912 {
4913 /* Q_AMTL - ADD_MEMBER_TO_LIST */
4914 "add_member_to_list",
4915 "amtl",
4916 2,
4917 APPEND,
4918 0,
4919 IMEMBERS_TABLE,
4920 0,
4921 amtl_fields,
4922 3,
4923 NULL,
4924 0,
4925 NULL,
4926 &amtl_validate,
4927 },
4928
4929 {
4930 /* Q_ATML - ADD_TAGGED_MEMBER_TO_LIST */
4931 "add_tagged_member_to_list",
4932 "atml",
4933 2,
4934 APPEND,
4935 0,
4936 IMEMBERS_TABLE,
4937 0,
4938 atml_fields,
4939 4,
4940 NULL,
4941 0,
4942 NULL,
4943 &atml_validate,
4944 },
4945
4946 {
4947 /* Q_TMOL - TAG_MEMBER_OF_LIST */
4948 "tag_member_of_list",
4949 "tmol",
4950 2,
4951 UPDATE,
4952 0,
4953 IMEMBERS_TABLE,
4954 0,
4955 atml_fields,
4956 1,
4957 0,
4958 3,
4959 NULL,
4960 &tmol_validate,
4961 },
4962
4963 {
4964 /* Q_DMFL - DELETE_MEMBER_FROM_LIST */
4965 "delete_member_from_list",
4966 "dmfl",
4967 2,
4968 DELETE,
4969 0,
4970 IMEMBERS_TABLE,
4971 NULL,
4972 amtl_fields,
4973 0,
4974 0,
4975 3,
4976 NULL,
4977 &dmfl_validate,
4978 },
4979
4980 {
4981 /* Q_GAUS - GET_ACE_USE */
4982 "get_ace_use",
4983 "gaus",
4984 2,
4985 RETRIEVE,
4986 0,
4987 0,
4988 0,
4989 gaus_fields,
4990 2,
4991 0,
4992 2,
4993 NULL,
4994 &gaus_validate,
4995 },
4996
4997 {
4998 /* Q_GHBO - GET_HOST_BY_OWNER */
4999 "get_host_by_owner",
5000 "ghbo",
5001 2,
5002 RETRIEVE,
5003 0,
5004 0,
5005 0,
5006 ghbo_fields,
5007 1,
5008 0,
5009 2,
5010 NULL,
5011 &ghbo_validate,
5012 },
5013
5014 {
5015 /* Q_QGLI - QUALIFIED_GET_LISTS */
5016 "qualified_get_lists",
5017 "qgli",
5018 2,
5019 RETRIEVE,
5020 0,
5021 LIST_TABLE,
5022 0,
5023 qgli_fields,
5024 1,
5025 0,
5026 5,
5027 NULL,
5028 &qgli_validate,
5029 },
5030
5031 {
5032 /* Q_GMOL - GET_MEMBERS_OF_LIST */
5033 "get_members_of_list",
5034 "gmol",
5035 2,
5036 RETRIEVE,
5037 NULL,
5038 IMEMBERS_TABLE,
5039 NULL,
5040 gmol_fields,
5041 2,
5042 NULL,
5043 1,
5044 NULL,
5045 &gmol_validate,
5046 },
5047
5048 {
5049 /* Q_GEML - GET_END_MEMBERS_OF_LIST */
5050 "get_end_members_of_list",
5051 "geml",
5052 2,
5053 RETRIEVE,
5054 NULL,
5055 IMEMBERS_TABLE,
5056 NULL,
5057 gmol_fields,
5058 2,
5059 NULL,
5060 1,
5061 NULL,
5062 &gmol_validate,
5063 },
5064
5065 {
5066 /* Q_GTML - GET_TAGGED_MEMBERS_OF_LIST */
5067 "get_tagged_members_of_list",
5068 "gtml",
5069 2,
5070 RETRIEVE,
5071 NULL,
5072 IMEMBERS_TABLE,
5073 NULL,
5074 gtml_fields,
5075 3,
5076 NULL,
5077 1,
5078 NULL,
5079 &gmol_validate,
5080 },
5081
5082 {
5083 /* Q_GLOM - GET_LISTS_OF_MEMBER */
5084 "get_lists_of_member",
5085 "glom",
5086 2,
5087 RETRIEVE,
5088 0,
5089 IMEMBERS_TABLE,
5090 0,
5091 glom_fields,
5092 6,
5093 0,
5094 2,
5095 NULL,
5096 &glom_validate,
5097 },
5098
5099 {
5100 /* Q_CMOL - COUNT_MEMBERS_OF_LIST */
5101 "count_members_of_list",
5102 "cmol",
5103 2,
5104 RETRIEVE,
5105 0,
5106 IMEMBERS_TABLE,
5107 0,
5108 cmol_fields,
5109 1,
5110 0,
5111 1,
5112 NULL,
5113 &cmol_validate,
5114 },
5115
5116 {
5117 /* Q_GSIN - GET_SERVER_INFO */
5118 "get_server_info",
5119 "gsin",
5120 2,
5121 RETRIEVE,
5122 "s",
5123 SERVERS_TABLE,
5124 "name, update_int, target_file, script, dfgen, dfcheck, type, enable, inprogress, harderror, errmsg, acl_type, acl_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM servers",
5125 gsin_fields,
5126 16,
5127 "name LIKE UPPER('%s')",
5128 1,
5129 "name",
5130 &gsin_validate,
5131 },
5132
5133 {
5134 /* Q_QGSV - QUALIFIED_GET_SERVER */
5135 "qualified_get_server",
5136 "qgsv",
5137 2,
5138 RETRIEVE,
5139 0,
5140 SERVERS_TABLE,
5141 0,
5142 qgsv_fields,
5143 1,
5144 0,
5145 3,
5146 NULL,
5147 &qgsv_validate,
5148 },
5149
5150 {
5151 /* Q_ASIN - ADD_SERVER_INFO */
5152 "add_server_info",
5153 "asin",
5154 2,
5155 APPEND,
5156 "s",
5157 SERVERS_TABLE,
5158 "INTO servers (name, update_int, target_file, script, type, enable, acl_type, acl_id) VALUES (UPPER('%s'), %s, '%s', '%s', '%s', %s, '%s', %d)",
5159 asin_fields,
5160 8,
5161 NULL,
5162 0,
5163 NULL,
5164 &asin_validate,
5165 },
5166
5167 {
5168 /* Q_USIN - UPDATE_SERVER_INFO */
5169 "update_server_info",
5170 "usin",
5171 2,
5172 UPDATE,
5173 "s",
5174 SERVERS_TABLE,
5175 "servers SET update_int = %s, target_file = '%s', script = '%s', type = '%s', enable = %s, acl_type = '%s', acl_id = %d",
5176 asin_fields,
5177 7,
5178 "name = UPPER('%s')",
5179 1,
5180 NULL,
5181 &asin_validate,
5182 },
5183
5184 {
5185 /* Q_RSVE - RESET_SERVER_ERROR */
5186 "reset_server_error",
5187 "rsve",
5188 2,
5189 UPDATE,
5190 "s",
5191 SERVERS_TABLE,
5192 "servers SET harderror = 0, dfcheck = dfgen",
5193 dsin_fields,
5194 0,
5195 "name = UPPER('%s')",
5196 1,
5197 NULL,
5198 &rsve_validate,
5199 },
5200
5201 {
5202 /* Q_SSIF - SET_SERVER_INTERNAL_FLAGS */
5203 "set_server_internal_flags",
5204 "ssif",
5205 2,
5206 UPDATE,
5207 "s",
5208 SERVERS_TABLE,
5209 "servers SET dfgen = %s, dfcheck = %s, inprogress = %s, harderror = %s, errmsg = NVL('%s', CHR(0))",
5210 ssif_fields,
5211 5,
5212 "name = UPPER('%s')",
5213 1,
5214 NULL,
5215 &ssif_validate,
5216 },
5217
5218 {
5219 /* Q_DSIN - DELETE_SERVER_INFO */
5220 "delete_server_info",
5221 "dsin",
5222 2,
5223 DELETE,
5224 "s",
5225 SERVERS_TABLE,
5226 NULL,
5227 dsin_fields,
5228 0,
5229 "name = UPPER('%s')",
5230 1,
5231 NULL,
5232 &dsin_validate,
5233 },
5234
5235 {
5236 /* Q_GSHI - GET_SERVER_HOST_INFO */
5237 "get_server_host_info",
5238 "gshi",
5239 2,
5240 RETRIEVE,
5241 "sh",
5242 SERVERHOSTS_TABLE,
5243 "sh.service, m.name, sh.enable, sh.override, sh.success, sh.inprogress, sh.hosterror, sh.hosterrmsg, sh.ltt, sh.lts, sh.value1, sh.value2, sh.value3, TO_CHAR(sh.modtime, 'DD-mon-YYYY HH24:MI:SS'), sh.modby, sh.modwith FROM serverhosts sh, machine m",
5244 gshi_fields,
5245 16,
5246 "sh.service LIKE UPPER('%s') AND m.name LIKE UPPER('%s') AND m.mach_id = sh.mach_id",
5247 2,
5248 "sh.service, m.name",
5249 &gshi_validate,
5250 },
5251
5252 {
5253 /* Q_QGSH - QUALIFIED_GET_SERVER_HOST */
5254 "qualified_get_server_host",
5255 "qgsh",
5256 2,
5257 RETRIEVE,
5258 0,
5259 SERVERHOSTS_TABLE,
5260 0,
5261 qgsh_fields,
5262 2,
5263 0,
5264 6,
5265 NULL,
5266 &qgsh_validate,
5267 },
5268
5269 {
5270 /* Q_ASHI - ADD_SERVER_HOST_INFO */
5271 "add_server_host_info",
5272 "ashi",
5273 2,
5274 APPEND,
5275 "sh",
5276 SERVERHOSTS_TABLE,
5277 "INTO serverhosts (service, mach_id, enable, value1, value2, value3) VALUES (UPPER('%s'), %d, %s, %s, %s, NVL('%s', CHR(0)))",
5278 ashi_fields,
5279 6,
5280 NULL,
5281 0,
5282 NULL,
5283 &ashi_validate,
5284 },
5285
5286 {
5287 /* Q_USHI - UPDATE_SERVER_HOST_INFO */
5288 "update_server_host_info",
5289 "ushi",
5290 2,
5291 UPDATE,
5292 "sh",
5293 SERVERHOSTS_TABLE,
5294 "serverhosts SET enable = %s, value1 = %s, value2 = %s, value3 = NVL('%s', CHR(0))",
5295 ashi_fields,
5296 4,
5297 "service = UPPER('%s') AND mach_id = %d",
5298 2,
5299 NULL,
5300 &ashi_validate,
5301 },
5302
5303 {
5304 /* Q_RSHE - RESET_SERVER_HOST_ERROR */
5305 "reset_server_host_error",
5306 "rshe",
5307 2,
5308 UPDATE,
5309 "sh",
5310 SERVERHOSTS_TABLE,
5311 "serverhosts SET hosterror = 0",
5312 dshi_fields,
5313 0,
5314 "service = UPPER('%s') AND mach_id = %d",
5315 2,
5316 NULL,
5317 &rshe_validate,
5318 },
5319
5320 {
5321 /* Q_SSHO - SET_SERVER_HOST_OVERRIDE */
5322 "set_server_host_override",
5323 "ssho",
5324 2,
5325 UPDATE,
5326 "sh",
5327 SERVERHOSTS_TABLE,
5328 "serverhosts SET override = 1",
5329 dshi_fields,
5330 0,
5331 "service = UPPER('%s') AND mach_id = %d",
5332 2,
5333 NULL,
5334 &ssho_validate,
5335 },
5336
5337 {
5338 /* Q_SSHI - SET_SERVER_HOST_INTERNAL */
5339 "set_server_host_internal",
5340 "sshi",
5341 2,
5342 UPDATE,
5343 "s",
5344 SERVERHOSTS_TABLE,
5345 "serverhosts SET override = %s, success = %s, inprogress = %s, hosterror = %s, hosterrmsg = NVL('%s', CHR(0)), ltt = %s, lts = %s",
5346 sshi_fields,
5347 7,
5348 "service = UPPER('%s') AND mach_id = %d",
5349 2,
5350 NULL,
5351 &sshi_validate,
5352 },
5353
5354 {
5355 /* Q_DSHI - DELETE_SERVER_HOST_INFO */
5356 "delete_server_host_info",
5357 "dshi",
5358 2,
5359 DELETE,
5360 "sh",
5361 SERVERHOSTS_TABLE,
5362 NULL,
5363 dshi_fields,
5364 0,
5365 "service = UPPER('%s') AND mach_id = %d",
5366 2,
5367 NULL,
5368 &dshi_validate,
5369 },
5370
5371 {
5372 /* Q_GSLO - GET_SERVER_LOCATIONS */
5373 "get_server_locations",
5374 "gslo",
5375 2,
5376 RETRIEVE,
5377 "sh",
5378 SERVERHOSTS_TABLE,
5379 "sh.service, m.name FROM serverhosts sh, machine m",
5380 gslo_fields,
5381 2,
5382 "sh.service LIKE UPPER('%s') AND sh.mach_id = m.mach_id",
5383 1,
5384 "sh.service, m.name",
5385 NULL,
5386 },
5387
5388 {
5389 /* Q_GFSL - GET_FILESYS_BY_LABEL */
5390 "get_filesys_by_label",
5391 "gfsl",
5392 2,
5393 RETRIEVE,
5394 "fs",
5395 FILESYS_TABLE,
5396 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
5397 gfsl_fields,
5398 14,
5399 "fs.label LIKE '%s' AND fs.mach_id = m.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
5400 1,
5401 "fs.label",
5402 &gfsl_validate,
5403 },
5404
5405 {
5406 /* Q_GFSM - GET_FILESYS_BY_MACHINE */
5407 "get_filesys_by_machine",
5408 "gfsm",
5409 2,
5410 RETRIEVE,
5411 "fs",
5412 FILESYS_TABLE,
5413 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
5414 gfsm_fields,
5415 14,
5416 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
5417 1,
5418 "fs.label",
5419 &gfsm_validate,
5420 },
5421
5422 {
5423 /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
5424 "get_filesys_by_nfsphys",
5425 "gfsn",
5426 2,
5427 RETRIEVE,
5428 "fs",
5429 FILESYS_TABLE,
5430 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l, nfsphys np",
5431 gfsn_fields,
5432 14,
5433 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id AND np.nfsphys_id = fs.phys_id AND np.dir LIKE '%s'",
5434 2,
5435 "fs.label",
5436 &gfsn_validate,
5437 },
5438
5439 {
5440 /* Q_GFSG - GET_FILESYS_BY_GROUP */
5441 "get_filesys_by_group",
5442 "gfsg",
5443 2,
5444 RETRIEVE,
5445 "fs",
5446 FILESYS_TABLE,
5447 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
5448 gfsg_fields,
5449 14,
5450 "fs.owners = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
5451 1,
5452 "fs.label",
5453 &gfsg_validate,
5454 },
5455
5456 {
5457 /* Q_GFSP - GET_FILESYS_BY_PATH */
5458 "get_filesys_by_path",
5459 "gfsp",
5460 2,
5461 RETRIEVE,
5462 "fs",
5463 FILESYS_TABLE,
5464 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
5465 gfsp_fields,
5466 14,
5467 "fs.name LIKE '%s' AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = list_id",
5468 1,
5469 "fs.label",
5470 &VDfix_modby,
5471 },
5472
5473 {
5474 /* Q_AFIL - ADD_FILESYS */ /* uses prefetch_value() for filsys_id */
5475 "add_filesys",
5476 "afil",
5477 2,
5478 APPEND,
5479 "fs",
5480 FILESYS_TABLE,
5481 "INTO filesys (label, type, mach_id, name, mount, rwaccess, comments, owner, owners, createflg, lockertype, filsys_id) VALUES ('%s', '%s', %d, NVL('%s', CHR(0)), NVL('%s', CHR(0)), '%s', NVL('%s', CHR(0)), %d, %d, %s, '%s', %s)",
5482 afil_fields,
5483 11,
5484 0,
5485 0,
5486 NULL,
5487 &afil_validate,
5488 },
5489
5490 {
5491 /* Q_UFIL - UPDATE_FILESYS */
5492 "update_filesys",
5493 "ufil",
5494 2,
5495 UPDATE,
5496 "fs",
5497 FILESYS_TABLE,
5498 "filesys SET label = '%s', type = '%s', mach_id = %d, name = NVL('%s', CHR(0)), mount = NVL('%s', CHR(0)), rwaccess = '%s', comments = NVL('%s', CHR(0)), owner = %d, owners = %d, createflg = %s, lockertype = '%s'",
5499 ufil_fields,
5500 11,
5501 "filsys_id = %d",
5502 1,
5503 NULL,
5504 &ufil_validate,
5505 },
5506
5507 {
5508 /* Q_DFIL - DELETE_FILESYS */
5509 "delete_filesys",
5510 "dfil",
5511 2,
5512 DELETE,
5513 "fs",
5514 FILESYS_TABLE,
5515 NULL,
5516 dfil_fields,
5517 0,
5518 "filsys_id = %d",
5519 1,
5520 NULL,
5521 &dfil_validate,
5522 },
5523
5524 {
5525 /* Q_GFGM - GET_FSGROUP_MEMBERS */
5526 "get_fsgroup_members",
5527 "gfgm",
5528 2,
5529 RETRIEVE,
5530 "fg",
5531 FSGROUP_TABLE,
5532 "fs.label, fg.key FROM fsgroup fg, filesys fs",
5533 gfgm_fields,
5534 2,
5535 "fg.group_id = %d AND fs.filsys_id = fg.filsys_id",
5536 1,
5537 "fs.label, fg.key",
5538 &gfgm_validate,
5539 },
5540
5541 {
5542 /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
5543 "add_filesys_to_fsgroup",
5544 "aftg",
5545 2,
5546 APPEND,
5547 "fg",
5548 FSGROUP_TABLE,
5549 "INTO fsgroup (group_id, filsys_id, key) VALUES (%d, %d, '%s')",
5550 gfgm_fields,
5551 3,
5552 NULL,
5553 0,
5554 NULL,
5555 &aftg_validate,
5556 },
5557
5558 {
5559 /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
5560 "remove_filesys_from_fsgroup",
5561 "rffg",
5562 2,
5563 DELETE,
5564 "fg",
5565 FSGROUP_TABLE,
5566 NULL,
5567 gfgm_fields,
5568 0,
5569 "group_id = %d AND filsys_id = %d",
5570 2,
5571 NULL,
5572 &aftg_validate,
5573 },
5574
5575 {
5576 /* Q_GANF - GET_ALL_NFSPHYS */
5577 "get_all_nfsphys",
5578 "ganf",
5579 2,
5580 RETRIEVE,
5581 "np",
5582 NFSPHYS_TABLE,
5583 "m.name, np.dir, np.device, np.status, np.allocated, np.partsize, TO_CHAR(np.modtime, 'DD-mon-YYYY HH24:MI:SS'), np.modby, np.modwith FROM nfsphys np, machine m",
5584 ganf_fields,
5585 9,
5586 "m.mach_id = np.mach_id",
5587 0,
5588 "m.name, np.dir",
5589 &VDfix_modby,
5590 },
5591
5592 {
5593 /* Q_GNFP - GET_NFSPHYS */
5594 "get_nfsphys",
5595 "gnfp",
5596 2,
5597 RETRIEVE,
5598 "np",
5599 NFSPHYS_TABLE,
5600 "m.name, np.dir, np.device, np.status, np.allocated, np.partsize, TO_CHAR(np.modtime, 'DD-mon-YYYY HH24:MI:SS'), np.modby, np.modwith FROM nfsphys np, machine m",
5601 gnfp_fields,
5602 9,
5603 "np.mach_id = %d AND np.dir LIKE '%s' AND m.mach_id = np.mach_id",
5604 2,
5605 "m.name, np.dir",
5606 &gnfp_validate,
5607 },
5608
5609 {
5610 /* Q_ANFP - ADD_NFSPHYS */ /* uses prefetch_value() for nfsphys_id */
5611 "add_nfsphys",
5612 "anfp",
5613 2,
5614 APPEND,
5615 "np",
5616 NFSPHYS_TABLE,
5617 "INTO nfsphys (mach_id, dir, device, status, allocated, partsize, nfsphys_id) VALUES (%d, '%s', NVL('%s', CHR(0)), %s, %s, %s, %s)",
5618 ganf_fields,
5619 6,
5620 0,
5621 0,
5622 NULL,
5623 &anfp_validate,
5624 },
5625
5626 {
5627 /* Q_UNFP - UPDATE_NFSPHYS */
5628 "update_nfsphys",
5629 "unfp",
5630 2,
5631 UPDATE,
5632 "np",
5633 NFSPHYS_TABLE,
5634 "nfsphys SET device = NVL('%s', CHR(0)), status = %s, allocated = %s, partsize = %s",
5635 ganf_fields,
5636 4,
5637 "mach_id = %d AND dir = '%s'",
5638 2,
5639 NULL,
5640 &unfp_validate,
5641 },
5642
5643 {
5644 /* Q_AJNF - ADJUST_NFSPHYS_ALLOCATION */
5645 "adjust_nfsphys_allocation",
5646 "ajnf",
5647 2,
5648 UPDATE,
5649 "np",
5650 NFSPHYS_TABLE,
5651 "nfsphys SET allocated = allocated + %s",
5652 ajnf_fields,
5653 1,
5654 "mach_id = %d AND dir = '%s'",
5655 2,
5656 NULL,
5657 &ajnf_validate,
5658 },
5659
5660 {
5661 /* Q_DNFP - DELETE_NFSPHYS */
5662 "delete_nfsphys",
5663 "dnfp",
5664 2,
5665 DELETE,
5666 "np",
5667 NFSPHYS_TABLE,
5668 NULL,
5669 dnfp_fields,
5670 0,
5671 "mach_id = %d AND dir = '%s'",
5672 2,
5673 NULL,
5674 &dnfp_validate,
5675 },
5676
5677 {
5678 /* Q_GQOT - GET_QUOTA */
5679 "get_quota",
5680 "gqot",
5681 2,
5682 RETRIEVE,
5683 "q",
5684 QUOTA_TABLE,
5685 "fs.label, q.type, q.entity_id, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, machine m",
5686 gqot_fields,
5687 9,
5688 "fs.label LIKE '%s' AND q.type = '%s' AND q.entity_id = %d AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
5689 3,
5690 NULL,
5691 &gqot_validate,
5692 },
5693
5694 {
5695 /* Q_GQBF - GET_QUOTA_BY_FILESYS */
5696 "get_quota_by_filesys",
5697 "gqbf",
5698 2,
5699 RETRIEVE,
5700 "q",
5701 QUOTA_TABLE,
5702 "fs.label, q.type, q.entity_id, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, machine m",
5703 gqbf_fields,
5704 9,
5705 "fs.label LIKE '%s' AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
5706 1,
5707 "fs.label, q.type",
5708 &gqbf_validate,
5709 },
5710
5711 {
5712 /* Q_AQOT - ADD_QUOTA */ /* prefetch_filsys() gets last 1 value */
5713 "add_quota",
5714 "aqot",
5715 2,
5716 APPEND,
5717 0,
5718 QUOTA_TABLE,
5719 "INTO quota (filsys_id, type, entity_id, quota, phys_id) VALUES ('%s', %d, %d, %s, %s)",
5720 aqot_fields,
5721 4,
5722 NULL,
5723 0,
5724 NULL,
5725 &aqot_validate,
5726 },
5727
5728 {
5729 /* Q_UQOT - UPDATE_QUOTA */
5730 "update_quota",
5731 "uqot",
5732 2,
5733 UPDATE,
5734 0,
5735 QUOTA_TABLE,
5736 "quota SET quota = %s",
5737 aqot_fields,
5738 1,
5739 0,
5740 3,
5741 NULL,
5742 &uqot_validate,
5743 },
5744
5745 {
5746 /* Q_DQOT - DELETE_QUOTA */
5747 "delete_quota",
5748 "dqot",
5749 2,
5750 DELETE,
5751 0,
5752 QUOTA_TABLE,
5753 NULL,
5754 aqot_fields,
5755 0,
5756 0,
5757 3,
5758 NULL,
5759 &dqot_validate,
5760 },
5761
5762 {
5763 /* Q_GNFQ - GET_NFS_QUOTAS */
5764 "get_nfs_quota",
5765 "gnfq",
5766 2,
5767 RETRIEVE,
5768 "q",
5769 QUOTA_TABLE,
5770 "fs.label, u.login, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, users u, machine m",
5771 gnfq_fields,
5772 8,
5773 "fs.label LIKE '%s' AND q.type = 'USER' AND q.entity_id = u.users_id AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id AND u.login = '%s'",
5774 2,
5775 "fs.label, u.login",
5776 &gnfq_validate,
5777 },
5778
5779 {
5780 /* Q_GNQP - GET_NFS_QUOTAS_BY_PARTITION */
5781 "get_nfs_quotas_by_partition",
5782 "gnqp",
5783 2,
5784 RETRIEVE,
5785 "q",
5786 QUOTA_TABLE,
5787 "fs.label, u.login, q.quota, np.dir, m.name FROM quota q, filesys fs, users u, nfsphys np, machine m",
5788 gnqp_fields,
5789 5,
5790 "np.mach_id = %d AND np.dir LIKE '%s' AND q.phys_id = np.nfsphys_id AND fs.filsys_id = q.filsys_id AND q.type = 'USER' AND u.users_id = q.entity_id AND m.mach_id = np.mach_id",
5791 2,
5792 "fs.label",
5793 NULL,
5794 },
5795
5796 {
5797 /* Q_ANFQ - ADD_NFS_QUOTA */ /* prefetch_filsys() gets last 1 value */
5798 "add_nfs_quota",
5799 "anfq",
5800 2,
5801 APPEND,
5802 0,
5803 QUOTA_TABLE,
5804 "INTO quota (type, filsys_id, entity_id, quota, phys_id ) VALUES ('USER', %d, %d, %s, %s)",
5805 anfq_fields,
5806 3,
5807 NULL,
5808 0,
5809 NULL,
5810 &anfq_validate,
5811 },
5812
5813 {
5814 /* Q_UNFQ - UPDATE_NFS_QUOTA */
5815 "update_nfs_quota",
5816 "unfq",
5817 2,
5818 UPDATE,
5819 0,
5820 QUOTA_TABLE,
5821 "quota SET quota = %s",
5822 anfq_fields,
5823 1,
5824 0,
5825 2,
5826 NULL,
5827 &unfq_validate,
5828 },
5829
5830 {
5831 /* Q_DNFQ - DELETE_NFS_QUOTA */
5832 "delete_nfs_quota",
5833 "dnfq",
5834 2,
5835 DELETE,
5836 0,
5837 QUOTA_TABLE,
5838 NULL,
5839 anfq_fields,
5840 0,
5841 0,
5842 2,
5843 NULL,
5844 &dnfq_validate,
5845 },
5846
5847 {
5848 /* Q_GZCL - GET_ZEPHYR_CLASS, v2 */
5849 "get_zephyr_class",
5850 "gzcl",
5851 2,
5852 RETRIEVE,
5853 "z",
5854 ZEPHYR_TABLE,
5855 "class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM zephyr",
5856 gzcl2_fields,
5857 12,
5858 "class LIKE '%s'",
5859 1,
5860 "class",
5861 &gzcl_validate,
5862 },
5863
5864 {
5865 /* Q_GZCL - GET_ZEPHYR_CLASS, v5 */
5866 "get_zephyr_class",
5867 "gzcl",
5868 5,
5869 RETRIEVE,
5870 "z",
5871 ZEPHYR_TABLE,
5872 "class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id, owner_type, owner_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM zephyr",
5873 gzcl_fields,
5874 14,
5875 "class LIKE '%s'",
5876 1,
5877 "class",
5878 &gzcl_validate,
5879 },
5880
5881 {
5882 /* Q_AZCL - ADD_ZEPHYR_CLASS, v2 */
5883 "add_zephyr_class",
5884 "azcl",
5885 2,
5886 APPEND,
5887 "z",
5888 ZEPHYR_TABLE,
5889 "INTO zephyr (class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id) VALUES ('%s', '%s', %d, '%s', %d, '%s', %d, '%s', %d)",
5890 azcl2_fields,
5891 9,
5892 0,
5893 0,
5894 NULL,
5895 &azcl2_validate,
5896 },
5897
5898 {
5899 /* Q_AZCL - ADD_ZEPHYR_CLASS, v5 */
5900 "add_zephyr_class",
5901 "azcl",
5902 5,
5903 APPEND,
5904 "z",
5905 ZEPHYR_TABLE,
5906 "INTO zephyr (class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id, owner_type, owner_id) VALUES ('%s', '%s', %d, '%s', %d, '%s', %d, '%s', %d, '%s', %d)",
5907 azcl_fields,
5908 11,
5909 0,
5910 0,
5911 NULL,
5912 &azcl_validate,
5913 },
5914
5915 {
5916 /* Q_UZCL - UPDATE_ZEPHYR_CLASS, v2 */
5917 "update_zephyr_class",
5918 "uzcl",
5919 2,
5920 UPDATE,
5921 "z",
5922 ZEPHYR_TABLE,
5923 "zephyr SET class = '%s', xmt_type = '%s', xmt_id = %d, sub_type = '%s', sub_id = %d, iws_type = '%s', iws_id = %d, iui_type = '%s', iui_id = %d",
5924 uzcl2_fields,
5925 9,
5926 "class = '%s'",
5927 1,
5928 NULL,
5929 &uzcl2_validate,
5930 },
5931
5932 {
5933 /* Q_UZCL - UPDATE_ZEPHYR_CLASS, v5 */
5934 "update_zephyr_class",
5935 "uzcl",
5936 5,
5937 UPDATE,
5938 "z",
5939 ZEPHYR_TABLE,
5940 "zephyr SET class = '%s', xmt_type = '%s', xmt_id = %d, sub_type = '%s', sub_id = %d, iws_type = '%s', iws_id = %d, iui_type = '%s', iui_id = %d, owner_type = '%s', owner_id = %d",
5941 uzcl_fields,
5942 11,
5943 "class = '%s'",
5944 1,
5945 NULL,
5946 &uzcl_validate,
5947 },
5948
5949 {
5950 /* Q_DZCL - DELETE_ZEPHYR_CLASS */
5951 "delete_zephyr_class",
5952 "dzcl",
5953 2,
5954 DELETE,
5955 "z",
5956 ZEPHYR_TABLE,
5957 0,
5958 uzcl_fields,
5959 0,
5960 "class = '%s'",
5961 1,
5962 NULL,
5963 &dzcl_validate,
5964 },
5965
5966 {
5967 /* Q_GSHA - GET_SERVER_HOST_ACCESS */
5968 "get_server_host_access",
5969 "gsha",
5970 2,
5971 RETRIEVE,
5972 "ha",
5973 HOSTACCESS_TABLE,
5974 "m.name, ha.acl_type, ha.acl_id, TO_CHAR(ha.modtime, 'DD-mon-YYYY HH24:MI:SS'), ha.modby, ha.modwith FROM hostaccess ha, machine m",
5975 gsha_fields,
5976 6,
5977 "m.name LIKE UPPER('%s') AND ha.mach_id = m.mach_id",
5978 1,
5979 "m.name",
5980 &gsha_validate,
5981 },
5982
5983 {
5984 /* Q_ASHA - ADD_SERVER_HOST_ACCESS */
5985 "add_server_host_access",
5986 "asha",
5987 2,
5988 APPEND,
5989 "ha",
5990 HOSTACCESS_TABLE,
5991 "INTO hostaccess (mach_id, acl_type, acl_id) VALUES (%d, '%s', %d)",
5992 asha_fields,
5993 3,
5994 0,
5995 0,
5996 NULL,
5997 &asha_validate,
5998 },
5999
6000 {
6001 /* Q_USHA - UPDATE_SERVER_HOST_ACCESS */
6002 "update_server_host_access",
6003 "usha",
6004 2,
6005 UPDATE,
6006 "ha",
6007 HOSTACCESS_TABLE,
6008 "hostaccess SET acl_type = '%s', acl_id = %d",
6009 asha_fields,
6010 2,
6011 "mach_id = %d",
6012 1,
6013 NULL,
6014 &asha_validate,
6015 },
6016
6017 {
6018 /* Q_DSHA - DELETE_SERVER_HOST_ACCESS */
6019 "delete_server_host_access",
6020 "dsha",
6021 2,
6022 DELETE,
6023 "ha",
6024 HOSTACCESS_TABLE,
6025 0,
6026 asha_fields,
6027 0,
6028 "mach_id = %d",
6029 1,
6030 NULL,
6031 &VDmach,
6032 },
6033
6034 {
6035 /* Q_GACL - GET_ACL */
6036 "get_acl",
6037 "gacl",
6038 2,
6039 RETRIEVE,
6040 "ac",
6041 ACL_TABLE,
6042 "m.name, ac.target, ac.kind, l.name FROM acl ac, machine m, list l",
6043 gacl_fields,
6044 4,
6045 "m.mach_id = %d AND m.mach_id = ac.mach_id AND ac.target LIKE '%s' AND l.list_id = ac.list_id",
6046 2,
6047 "m.name, ac.target, ac.kind",
6048 &gacl_validate,
6049 },
6050
6051 {
6052 /* Q_AACL - ADD_ACL */
6053 "add_acl",
6054 "aacl",
6055 2,
6056 APPEND,
6057 "ac",
6058 ACL_TABLE,
6059 "INTO acl (mach_id, target, kind, list_id) VALUES (%d, '%s', '%s', %d)",
6060 aacl_fields,
6061 4,
6062 0,
6063 0,
6064 NULL,
6065 &aacl_validate,
6066 },
6067
6068 {
6069 /* Q_DACL - DELETE_ACL */
6070 "delete_acl",
6071 "dacl",
6072 2,
6073 DELETE,
6074 "ac",
6075 ACL_TABLE,
6076 0,
6077 dacl_fields,
6078 0,
6079 "mach_id = %d AND target = '%s'",
6080 2,
6081 NULL,
6082 &gacl_validate,
6083 },
6084
6085 {
6086 /* Q_GSVC - GET_SERVICE */
6087 "get_service",
6088 "gsvc",
6089 2,
6090 RETRIEVE,
6091 "ss",
6092 SERVICES_TABLE,
6093 "name, protocol, port, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM services",
6094 gsvc_fields,
6095 7,
6096 "name LIKE '%s' AND protocol LIKE '%s'",
6097 2,
6098 "name",
6099 &VDfix_modby,
6100 },
6101
6102 {
6103 /* Q_ASVC - ADD_SERVICE */
6104 "add_service",
6105 "asvc",
6106 2,
6107 APPEND,
6108 "ss",
6109 SERVICES_TABLE,
6110 "INTO services (name, protocol, port, description) VALUES ('%s', '%s', %s, NVL('%s', CHR(0)))",
6111 asvc_fields,
6112 4,
6113 NULL,
6114 0,
6115 NULL,
6116 &asvc_validate,
6117 },
6118
6119 {
6120 /* Q_DSVC - DELETE_SERVICE */
6121 "delete_service",
6122 "dsvc",
6123 2,
6124 DELETE,
6125 "ss",
6126 SERVICES_TABLE,
6127 0,
6128 dsvc_fields,
6129 0,
6130 "name = '%s' AND protocol = '%s'",
6131 2,
6132 NULL,
6133 &dsvc_validate,
6134 },
6135
6136 {
6137 /* Q_GPRN - GET_PRINTER */
6138 "get_printer",
6139 "gprn",
6140 2,
6141 RETRIEVE,
6142 "pr",
6143 PRINTERS_TABLE,
6144 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
6145 gprn_fields,
6146 19,
6147 "pr.name LIKE '%s' AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
6148 1,
6149 "pr.name",
6150 &VDfix_modby,
6151 },
6152
6153 {
6154 /* Q_GPBD - GET_PRINTER_BY_DUPLEXNAME */
6155 "get_printer_by_duplexname",
6156 "gpbd",
6157 2,
6158 RETRIEVE,
6159 "pr",
6160 PRINTERS_TABLE,
6161 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
6162 gpbd_fields,
6163 19,
6164 "pr.duplexname LIKE '%s' AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
6165 1,
6166 "pr.name",
6167 &VDfix_modby,
6168 },
6169
6170 {
6171 /* Q_GPBE - GET_PRINTER_BY_ETHERNET */
6172 "get_printer_by_ethernet",
6173 "gpbe",
6174 2,
6175 RETRIEVE,
6176 "pr",
6177 PRINTERS_TABLE,
6178 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
6179 gpbd_fields,
6180 19,
6181 "m1.hwaddr LIKE LOWER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
6182 1,
6183 "pr.name",
6184 &VDfix_modby,
6185 },
6186
6187 {
6188 /* Q_GPBH - GET_PRINTER_BY_HOSTNAME */
6189 "get_printer_by_hostname",
6190 "gpbh",
6191 2,
6192 RETRIEVE,
6193 "pr",
6194 PRINTERS_TABLE,
6195 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
6196 gpbh_fields,
6197 19,
6198 "m1.name LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
6199 1,
6200 "pr.name",
6201 &VDfix_modby,
6202 },
6203
6204 {
6205 /* Q_GPBR - GET_PRINTER_BY_RM */
6206 "get_printer_by_rm",
6207 "gpbr",
6208 2,
6209 RETRIEVE,
6210 "pr",
6211 PRINTERS_TABLE,
6212 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
6213 gpbr_fields,
6214 19,
6215 "m3.name LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
6216 1,
6217 "pr.name",
6218 &VDfix_modby,
6219 },
6220
6221 {
6222 /* Q_GPBL - GET_PRINTER_BY_LOCATION */
6223 "get_printer_by_location",
6224 "gpbl",
6225 2,
6226 RETRIEVE,
6227 "pr",
6228 PRINTERS_TABLE,
6229 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
6230 gpbl_fields,
6231 19,
6232 "UPPER(pr.location) LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
6233 1,
6234 "pr.name",
6235 &VDfix_modby,
6236 },
6237
6238 {
6239 /* Q_GPBC - GET_PRINTER_BY_CONTACT */
6240 "get_printer_by_contact",
6241 "gpbc",
6242 2,
6243 RETRIEVE,
6244 "pr",
6245 PRINTERS_TABLE,
6246 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
6247 gpbc_fields,
6248 19,
6249 "UPPER(pr.contact) LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
6250 1,
6251 "pr.name",
6252 &VDfix_modby,
6253 },
6254
6255 {
6256 /* Q_APRN - ADD_PRINTER */
6257 "add_printer",
6258 "aprn",
6259 2,
6260 APPEND,
6261 "pr",
6262 PRINTERS_TABLE,
6263 "INTO printers (name, type, hwtype, duplexname, mach_id, loghost, rm, rp, rq, ka, pc, ac, lpc_acl, banner, location, contact) VALUES ('%s', '%s', '%s', NVL('%s', CHR(0)), %d, %d, %d, NVL('%s', CHR(0)), %d, %s, %s, %d, %d, %s, NVL('%s', CHR(0)), NVL('%s', CHR(0)))",
6264 aprn_fields,
6265 16,
6266 0,
6267 0,
6268 NULL,
6269 &aprn_validate,
6270 },
6271
6272 {
6273 /* Q_UPRN - UPDATE_PRINTER */
6274 "update_printer",
6275 "uprn",
6276 2,
6277 UPDATE,
6278 "pr",
6279 PRINTERS_TABLE,
6280 "printers SET name = '%s', type = '%s', hwtype = '%s', duplexname = NVL('%s', CHR(0)), mach_id = %d, loghost = %d, rm = %d, rp = NVL('%s', CHR(0)), rq = %d, ka = %d, pc = %d, ac = %d, lpc_acl = %d, banner = %d, location = NVL('%s', CHR(0)), contact = NVL('%s', CHR(0))",
6281 uprn_fields,
6282 16,
6283 0,
6284 0,
6285 NULL,
6286 &uprn_validate,
6287 },
6288
6289 {
6290 /* Q_DPRN - DELETE_PRINTER */
6291 "delete_printer",
6292 "dprn",
6293 2,
6294 DELETE,
6295 "pr",
6296 PRINTERS_TABLE,
6297 0,
6298 aprn_fields,
6299 0,
6300 "name = '%s'",
6301 1,
6302 NULL,
6303 &dprn_validate,
6304 },
6305
6306 {
6307 /* Q_GPSV - GET_PRINT_SERVER */
6308 "get_print_server",
6309 "gpsv",
6310 2,
6311 RETRIEVE,
6312 "ps",
6313 PRINTSERVERS_TABLE,
6314 "m.name, ps.kind, s.string, ps.owner_type, ps.owner_id, l.name, TO_CHAR(ps.modtime, 'DD-mon-YYYY HH24:MI:SS'), ps.modby, ps.modwith FROM printservers ps, machine m, strings s, list l",
6315 gpsv_fields,
6316 9,
6317 "ps.mach_id = %d AND m.mach_id = ps.mach_id AND s.string_id = ps.printer_types AND l.list_id = ps.lpc_acl",
6318 1,
6319 NULL,
6320 &gpsv_validate,
6321 },
6322
6323 {
6324 /* Q_APSV - ADD_PRINT_SERVER */
6325 "add_print_server",
6326 "apsv",
6327 2,
6328 APPEND,
6329 "ps",
6330 PRINTSERVERS_TABLE,
6331 "INTO printservers (mach_id, kind, printer_types, owner_type, owner_id, lpc_acl) VALUES (%d, '%s', %d, '%s', %d, %d)",
6332 apsv_fields,
6333 6,
6334 0,
6335 0,
6336 NULL,
6337 &apsv_validate,
6338 },
6339
6340 {
6341 /* Q_UPSV - UPDATE_PRINT_SERVER */
6342 "update_print_server",
6343 "upsv",
6344 2,
6345 UPDATE,
6346 "ps",
6347 PRINTSERVERS_TABLE,
6348 "printservers SET kind = '%s', printer_types = %d, owner_type = '%s', owner_id = %d, lpc_acl = %d",
6349 apsv_fields,
6350 5,
6351 "mach_id = %d",
6352 1,
6353 NULL,
6354 &apsv_validate,
6355 },
6356
6357 {
6358 /* Q_DPSV - DELETE_PRINT_SERVER */
6359 "delete_print_server",
6360 "dpsv",
6361 2,
6362 DELETE,
6363 "ps",
6364 PRINTSERVERS_TABLE,
6365 0,
6366 dpsv_fields,
6367 0,
6368 "mach_id = %d",
6369 1,
6370 NULL,
6371 &dpsv_validate,
6372 },
6373
6374 {
6375 /* Q_GALI - GET_ALIAS */
6376 "get_alias",
6377 "gali",
6378 2,
6379 RETRIEVE,
6380 "a",
6381 ALIAS_TABLE,
6382 "name, type, trans FROM alias",
6383 gali_fields,
6384 3,
6385 "name LIKE '%s' AND type LIKE '%s' AND trans LIKE '%s'",
6386 3,
6387 "type, name, trans",
6388 NULL,
6389 },
6390
6391 {
6392 /* Q_AALI - ADD_ALIAS */
6393 "add_alias",
6394 "aali",
6395 2,
6396 APPEND,
6397 "a",
6398 ALIAS_TABLE,
6399 "INTO alias (name, type, trans) VALUES ('%s', '%s', '%s')",
6400 aali_fields,
6401 3,
6402 NULL,
6403 0,
6404 NULL,
6405 &aali_validate,
6406 },
6407
6408 {
6409 /* Q_DALI - DELETE_ALIAS */
6410 "delete_alias",
6411 "dali",
6412 2,
6413 DELETE,
6414 "a",
6415 ALIAS_TABLE,
6416 NULL,
6417 aali_fields,
6418 0,
6419 "name = '%s' AND type = '%s' AND trans = '%s'",
6420 3,
6421 NULL,
6422 &dali_validate,
6423 },
6424
6425 {
6426 /* Q_GVAL - GET_VALUE */
6427 "get_value",
6428 "gval",
6429 2,
6430 RETRIEVE,
6431 "val",
6432 NUMVALUES_TABLE,
6433 "value FROM numvalues",
6434 gval_fields,
6435 1,
6436 "name = '%s'",
6437 1,
6438 NULL,
6439 &gval_validate,
6440 },
6441
6442 {
6443 /* Q_AVAL - ADD_VALUE */
6444 "add_value",
6445 "aval",
6446 2,
6447 APPEND,
6448 "val",
6449 NUMVALUES_TABLE,
6450 "INTO numvalues (name, value) VALUES ('%s', %s)",
6451 aval_fields,
6452 2,
6453 NULL,
6454 0,
6455 NULL,
6456 &aval_validate,
6457 },
6458
6459 {
6460 /* Q_UVAL - UPDATE_VALUE */
6461 "update_value",
6462 "uval",
6463 2,
6464 UPDATE,
6465 "val",
6466 NUMVALUES_TABLE,
6467 "numvalues SET value = %s",
6468 aval_fields,
6469 1,
6470 "name = '%s'",
6471 1,
6472 NULL,
6473 &aval_validate,
6474 },
6475
6476 {
6477 /* Q_DVAL - DELETE_VALUE */
6478 "delete_value",
6479 "dval",
6480 2,
6481 DELETE,
6482 "val",
6483 NUMVALUES_TABLE,
6484 NULL,
6485 dval_fields,
6486 0,
6487 "name = '%s'",
6488 1,
6489 NULL,
6490 &aval_validate,
6491 },
6492
6493 {
6494 /* Q_GATS - GET_ALL_TABLE_STATS */
6495 "get_all_table_stats",
6496 "gats",
6497 2,
6498 RETRIEVE,
6499 "tbs",
6500 TBLSTATS_TABLE,
6501 "table_name, appends, updates, deletes, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS') FROM tblstats",
6502 gats_fields,
6503 5,
6504 NULL,
6505 0,
6506 "table_name",
6507 0,
6508 },
6509
6510 {
6511 /* Q__SDL - _SET_DEBUG_LEVEL */
6512 "_set_debug_level",
6513 "_sdl",
6514 2,
6515 UPDATE,
6516 NULL,
6517 0,
6518 NULL,
6519 _sdl_fields,
6520 1,
6521 NULL,
6522 0,
6523 NULL,
6524 &_sdl_validate,
6525 },
6526
6527 {
6528 /* Q_GUSL - GET_USER_SIDS_BY_LOGIN, v4 */
6529 "get_user_sids_by_login",
6530 "gusl",
6531 4,
6532 RETRIEVE,
6533 "s",
6534 USERSIDS_TABLE,
6535 "u.login, us.sid, TO_CHAR(us.created, 'YYYY-MM-DD HH24:MI:SS') FROM users u, usersids us",
6536 gusl_fields,
6537 3,
6538 "us.users_id = %d AND u.users_id = us.users_id AND SUBSTR(us.sid, 1, LENGTH(us.sid)-8) = '%s'",
6539 2,
6540 NULL,
6541 &gusl_validate,
6542 },
6543
6544 {
6545 /* Q_AUSL - ADD_USER_SID_BY_LOGIN, v4 */
6546 "add_user_sid_by_login",
6547 "ausl",
6548 4,
6549 APPEND,
6550 "s",
6551 USERSIDS_TABLE,
6552 "INTO usersids (users_id, sid) VALUES (%d, '%s')",
6553 ausl_fields,
6554 2,
6555 NULL,
6556 0,
6557 NULL,
6558 &ausl_validate,
6559 },
6560
6561 {
6562 /* Q_GLSN - GET_LIST_SIDS_BY_NAME, v4 */
6563 "get_list_sids_by_name",
6564 "glsn",
6565 4,
6566 RETRIEVE,
6567 "s",
6568 LISTSIDS_TABLE,
6569 "l.name, ls.sid, TO_CHAR(ls.created, 'YYYY-MM-DD HH24:MI:SS') FROM list l, listsids ls",
6570 glsn_fields,
6571 3,
6572 "ls.list_id = %d AND l.list_id = ls.list_id AND SUBSTR(ls.sid, 1, LENGTH(ls.sid)-8) = '%s'",
6573 2,
6574 NULL,
6575 &glsn_validate,
6576 },
6577
6578 {
6579 /* Q_ALSN - ADD_LIST_SID_BY_NAME, v4 */
6580 "add_list_sid_by_name",
6581 "alsn",
6582 4,
6583 APPEND,
6584 "s",
6585 LISTSIDS_TABLE,
6586 "INTO listsids (list_id, sid) VALUES (%d, '%s')",
6587 alsn_fields,
6588 2,
6589 NULL,
6590 0,
6591 NULL,
6592 &alsn_validate,
6593 },
6594
6595 {
6596 /* Q_GDDS - GET_DISTINCT_DOMAIN_SIDS, v4 */
6597 "get_distinct_domain_sids",
6598 "gdds",
6599 4,
6600 RETRIEVE,
6601 "s",
6602 USERSIDS_TABLE,
6603 "DISTINCT SUBSTR(sid, 1, LENGTH(sid)-8) FROM usersids",
6604 gdds_fields,
6605 1,
6606 NULL,
6607 0,
6608 NULL,
6609 NULL,
6610 },
6611
6612 {
6613 /* Q_GCON - GET_CONTAINER, v7 */
6614 "get_container",
6615 "gcon",
6616 7,
6617 RETRIEVE,
6618 "c",
6619 CONTAINERS_TABLE,
6620 "name, description, location, contact, acl_type, acl_id, memacl_type, memacl_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM containers",
6621 gcon_fields,
6622 11,
6623 "name = '%s' AND cnt_id != 0",
6624 1,
6625 NULL,
6626 &gcon_validate,
6627 },
6628
6629 {
6630 /* Q_ACON - ADD_CONTAINER, v7 */ /* uses prefetch_value() for cnt_id */
6631 "add_container",
6632 "acon",
6633 7,
6634 APPEND,
6635 "c",
6636 CONTAINERS_TABLE,
6637 "INTO containers (name, description, location, contact, acl_type, acl_id, memacl_type, memacl_id, cnt_id) VALUES ('%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), '%s', %d, '%s', %d, %s)",
6638 acon_fields,
6639 8,
6640 0,
6641 0,
6642 NULL,
6643 &acon_validate,
6644 },
6645
6646 {
6647 /* Q_UCON - UPDATE_CONTAINER, v7 */
6648 "update_container",
6649 "ucon",
6650 7,
6651 UPDATE,
6652 0,
6653 CONTAINERS_TABLE,
6654 0,
6655 ucon_fields,
6656 8,
6657 0,
6658 1,
6659 NULL,
6660 &ucon_validate,
6661 },
6662
6663 {
6664 /* Q_DCON - DELETE_CONTAINER, v7 */
6665 "delete_container",
6666 "dcon",
6667 7,
6668 DELETE,
6669 "c",
6670 CONTAINERS_TABLE,
6671 NULL,
6672 dcon_fields,
6673 0,
6674 "cnt_id = %d",
6675 1,
6676 NULL,
6677 &dcon_validate,
6678 },
6679
6680 {
6681 /* Q_AMCN - ADD_MACHINE_TO_CONTAINER, v7 */
6682 "add_machine_to_container",
6683 "amcn",
6684 7,
6685 APPEND,
6686 "mcn",
6687 MCNTMAP_TABLE,
6688 "INTO mcntmap (mach_id, cnt_id) VALUES (%d, %d)",
6689 amcn_fields,
6690 2,
6691 0,
6692 0,
6693 NULL,
6694 &amcn_validate,
6695 },
6696
6697 {
6698 /* Q_DMCN - DELETE_MACHINE_FROM_CONTAINER, v7 */
6699 "delete_machine_from_container",
6700 "dmcn",
6701 7,
6702 DELETE,
6703 "mcn",
6704 MCNTMAP_TABLE,
6705 0,
6706 amcn_fields,
6707 0,
6708 "mach_id = %d AND cnt_id = %d",
6709 2,
6710 NULL,
6711 &dmcn_validate,
6712 },
6713
6714 {
6715 /* Q_GMNM - GET_MACHINE_TO_CONTAINER_MAP, v7 */
6716 "get_machine_to_container_map",
6717 "gmnm",
6718 7,
6719 RETRIEVE,
6720 "mcn",
6721 MCNTMAP_TABLE,
6722 "m.name, c.name FROM machine m, containers c, mcntmap mcn",
6723 gmnm_fields,
6724 2,
6725 "m.name = UPPER('%s') AND mcn.cnt_id = c.cnt_id AND mcn.mach_id = m.mach_id",
6726 1,
6727 NULL,
6728 NULL,
6729 },
6730
6731 {
6732 /* Q_GMOC - GET_MACHINES_OF_CONTAINER, v7 */
6733 "get_machines_of_container",
6734 "gmoc",
6735 7,
6736 RETRIEVE,
6737 NULL,
6738 MCNTMAP_TABLE,
6739 NULL,
6740 gmoc_fields,
6741 2,
6742 NULL,
6743 2,
6744 NULL,
6745 &gmoc_validate,
6746 },
6747
6748 {
6749 /* Q_GSOC - GET_SUBCONTAINERS_OF_CONTAINER, v7 */
6750 "get_subcontainers_of_container",
6751 "gsoc",
6752 7,
6753 RETRIEVE,
6754 NULL,
6755 CONTAINERS_TABLE,
6756 NULL,
6757 gsoc_fields,
6758 1,
6759 NULL,
6760 2,
6761 NULL,
6762 &gsoc_validate,
6763 },
6764
6765 {
6766 /* Q_GTLC - GET_TOPLEVEL_CONTAINERS, v8 */
6767 "get_toplevel_containers",
6768 "gtlc",
6769 8,
6770 RETRIEVE,
6771 "c",
6772 CONTAINERS_TABLE,
6773 "name FROM containers",
6774 gtlc_fields,
6775 1,
6776 "name NOT LIKE '%%/%%'",
6777 0,
6778 "name",
6779 NULL,
6780 },
6781
6782};
6783
6784int QueryCount = (sizeof(Queries) / sizeof(struct query));
This page took 0.135653 seconds and 5 git commands to generate.