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