]> andersk Git - moira.git/blame_incremental - server/queries2.c
Oracle and Solaris/POSIX changes
[moira.git] / server / queries2.c
... / ...
CommitLineData
1/* This file defines the query dispatch table for version 2 of the protocol
2 *
3 * $Header$
4 *
5 * Copyright 1987, 1988 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 "query.h"
12#include "mr_et.h"
13
14/* Specialized Support Query Routines */
15
16/* Special Access Check Routines */
17int access_user();
18int access_login();
19int access_list();
20int access_visible_list();
21int access_vis_list_by_name();
22int access_member();
23int access_qgli();
24int access_service();
25int access_filesys();
26int access_host();
27int access_ahal();
28int access_snt();
29
30/* Query Setup Routines */
31int prefetch_value();
32int prefetch_filesys();
33int setup_ausr();
34int setup_dusr();
35int setup_spop();
36int setup_dpob();
37int setup_dmac();
38int setup_dsnet();
39int setup_dclu();
40int setup_alis();
41int setup_dlis();
42int setup_dsin();
43int setup_dshi();
44int setup_afil();
45int setup_ufil();
46int setup_dfil();
47int setup_aftg();
48int setup_dnfp();
49int setup_dqot();
50int setup_sshi();
51int setup_akum();
52int setup_dsnt();
53int setup_ahst();
54int setup_ahal();
55
56/* Query Followup Routines */
57int followup_fix_modby();
58int followup_ausr();
59int followup_gpob();
60int followup_glin();
61int followup_aqot();
62int followup_dqot();
63int followup_gzcl();
64int followup_gsha();
65int followup_gqot();
66int followup_gpce();
67int followup_guax();
68int followup_uuac();
69int followup_gsnt();
70int followup_ghst();
71
72int set_modtime();
73int set_modtime_by_id();
74int set_finger_modtime();
75int set_pobox_modtime();
76int set_uppercase_modtime();
77int set_mach_modtime_by_id();
78int set_cluster_modtime_by_id();
79int set_serverhost_modtime();
80int set_nfsphys_modtime();
81int set_filesys_modtime();
82int set_zephyr_modtime();
83
84/* Special Queries */
85int set_pobox();
86int get_list_info();
87int add_member_to_list();
88int delete_member_from_list();
89int get_ace_use();
90int qualified_get_lists();
91int get_members_of_list();
92int get_end_members_of_list();
93int qualified_get_server();
94int qualified_get_serverhost();
95int trigger_dcm();
96int count_members_of_list();
97int get_lists_of_member();
98int register_user();
99int _sdl_followup();
100int get_hostalias();
101
102
103\f
104/* String compression
105 * These are commonly used strings in the table, defined here so that
106 * they can be shared.
107 */
108
109static char ACE_NAME[] = "ace_name";
110static char ACE_TYPE[] = "ace_type";
111static char ADDRESS[] = "address";
112static char ALIAS[] = "alias";
113static char CLASS[] = "class";
114static char CLU_ID[] = "clu_id";
115static char CLUSTER[] = "cluster";
116static char COMMENTS[] = "comments";
117static char DESC[] = "description";
118static char DEVICE[] = "device";
119static char DIR[] = "dir";
120static char FILESYS[] = "filesys";
121static char FILSYS_ID[] = "filsys_id";
122static char FIRST[] = "firstname";
123static char LABEL[] = "label";
124static char LAST[] = "lastname";
125static char LIST[] = "list";
126static char LIST_ID[] = "list_id";
127static char LOCATION[] = "location";
128static char LOGIN[] = "login";
129static char MACH_ID[] = "mach_id";
130static char MACHINE[] = "machine";
131static char MIDDLE[] = "middle";
132static char MIT_ID[] = "clearid";
133static char MOD1[] = "modtime";
134static char MOD2[] = "modby";
135static char MOD3[] = "modwith";
136static char NAME[] = "name";
137static char QUOTA[] = "quota";
138static char QUOTA_TYPE[] = "quota_type";
139static char SECURE[] = "secure";
140static char SERVICE[] = "service";
141static char SHELL[] = "shell";
142static char SIGNATURE[] = "signature";
143static char SNET_ID[] = "snet_id";
144static char SUBNET[] = "subnet";
145static char STATUS[] = "status";
146static char TYPE[] = "type";
147static char USERS[] = "users";
148static char USERS_ID[] = "users_id";
149static char UID[] = "uid";
150
151
152
153/* VALOBJS
154 * These are commonly used validation objects, defined here so that they
155 * can be shared.
156 */
157
158static struct valobj VOsort0[] = {
159 {V_SORT, 0},
160};
161
162static struct valobj VOwild0[] = {
163 {V_WILD, 0},
164};
165
166static struct valobj VOupwild0[] = {
167 {V_UPWILD, 0},
168};
169
170static struct valobj VOwild0sort[] = {
171 {V_WILD, 0},
172 {V_SORT, 0},
173};
174
175static struct valobj VOupwild0sort[] = {
176 {V_UPWILD, 0},
177 {V_SORT, 0},
178};
179
180static struct valobj VOwild01sort0[] = {
181 {V_WILD, 0},
182 {V_WILD, 1},
183 {V_SORT, 0},
184};
185
186static struct valobj VOwild01sort01[] = {
187 {V_WILD, 0},
188 {V_WILD, 1},
189 {V_SORT, 0},
190 {V_SORT, 1},
191};
192
193static struct valobj VOwild012sort0[] = { /* get_alias */
194 {V_WILD, 0},
195 {V_WILD, 1},
196 {V_WILD, 2},
197 {V_SORT, 0},
198};
199
200static struct valobj VOdate1[] = {
201 {V_DATE, 1, 0, 0, 0, MR_DATE},
202};
203
204static struct valobj VOuser0[] = {
205 {V_ID, 0, USERS, LOGIN, USERS_ID, MR_USER},
206};
207
208static struct valobj VOuser0lock[] = {
209 {V_LOCK, 0, USERS, 0, USERS_ID, MR_DEADLOCK},
210 {V_ID, 0, USERS, LOGIN, USERS_ID, MR_USER},
211};
212
213static struct valobj VOmach0[] = {
214 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
215};
216
217static struct valobj VOclu0[] = {
218 {V_ID, 0, CLUSTER, NAME, CLU_ID, MR_CLUSTER},
219};
220
221static struct valobj VOlist0[] = {
222 {V_ID, 0, LIST, NAME, LIST_ID, MR_LIST},
223};
224
225static struct valobj VOfilsys0[] = {
226 {V_ID, 0, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
227};
228
229static struct valobj VOchar0[] = {
230 {V_CHAR, 0},
231};
232
233static struct valobj VOsort01[] = {
234 {V_SORT, 1},
235 {V_SORT, 0},
236};
237
238static struct valobj VOuser0sort[] = {
239 {V_ID, 0, USERS, LOGIN, USERS_ID, MR_USER},
240 {V_SORT, 0},
241};
242
243static struct valobj VOfilsys0user1[] = {
244 {V_LOCK, 0, FILESYS, 0, FILSYS_ID, MR_DEADLOCK},
245 {V_ID, 0, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
246 {V_ID, 1, USERS, LOGIN, USERS_ID, MR_USER},
247};
248
249
250/* Validations
251 * Commonly used validation records defined here so that they may
252 * be shared.
253 */
254
255static struct validate VDmach = { VOmach0, 1 };
256static struct validate VDsort0= { VOsort0, 1 };
257static struct validate VDwild0= { VOwild0, 1 };
258static struct validate VDupwild0= { VOupwild0, 1 };
259static struct validate VDsort2= { VOsort01,2 };
260static struct validate VDwild2sort2 = { VOwild01sort01,4 };
261static struct validate VDwild3sort1 = { VOwild012sort0,4 };
262static struct validate VDsortf = {
263 VOsort0,
264 1,
265 0,
266 0,
267 0,
268 0,
269 0,
270 0,
271 followup_fix_modby,
272};
273
274static struct validate VDwildsortf = {
275 VOwild0sort,
276 2,
277 0,
278 0,
279 0,
280 0,
281 0,
282 0,
283 followup_fix_modby,
284};
285
286static struct validate VDwild2sortf = {
287 VOwild01sort01,
288 4,
289 0,
290 0,
291 0,
292 0,
293 0,
294 0,
295 followup_fix_modby,
296};
297
298static struct validate VDupwildsortf = {
299 VOupwild0sort,
300 2,
301 0,
302 0,
303 0,
304 0,
305 0,
306 0,
307 followup_fix_modby,
308};
309
310
311\f
312/* Query data */
313
314static char *galo_fields[] = {
315 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE,
316};
317
318static char *gual_fields[] = {
319 LOGIN,
320 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
321 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
322};
323
324static char *gubl_fields[] = {
325 LOGIN,
326 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
327 MIT_ID, CLASS, MOD1, MOD2, MOD3,
328};
329
330static struct validate gubl_validate =
331{
332 VOwild0sort,
333 2,
334 0,
335 0,
336 0,
337 0,
338 access_login,
339 0,
340 followup_guax,
341};
342
343static char *guau_fields[] = {
344 UID,
345 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
346 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
347};
348
349static char *guan_fields[] = {
350 FIRST, LAST,
351 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
352 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
353};
354
355static struct validate guan_validate =
356{
357 VOwild01sort01,
358 4,
359 0,
360 0,
361 0,
362 0,
363 0,
364 0,
365 followup_guax,
366};
367
368static char *guac_fields[] = {
369 CLASS,
370 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
371 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
372};
373
374static char *guam_fields[] = {
375 MIT_ID,
376 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
377 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
378};
379
380static char *gubu_fields[] = {
381 UID,
382 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
383 MIT_ID, CLASS, MOD1, MOD2, MOD3,
384};
385
386static struct validate gubu_validate =
387{
388 VOsort0,
389 1,
390 0,
391 0,
392 0,
393 0,
394 access_login,
395 0,
396 followup_fix_modby,
397};
398
399static char *gubn_fields[] = {
400 FIRST, LAST,
401 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
402 MIT_ID, CLASS, MOD1, MOD2, MOD3,
403};
404
405static struct validate gubn_validate =
406{
407 VOwild01sort0,
408 3,
409 0,
410 0,
411 0,
412 0,
413 0,
414 0,
415 followup_fix_modby,
416};
417
418static char *gubc_fields[] = {
419 CLASS,
420 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
421 MIT_ID, CLASS, MOD1, MOD2, MOD3,
422};
423
424static char *gubm_fields[] = {
425 MIT_ID,
426 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
427 MIT_ID, CLASS, MOD1, MOD2, MOD3,
428};
429
430static char *auac_fields[] = {
431 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
432 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE,
433};
434
435static struct valobj auac_valobj[] = {
436 {V_LOCK, 0, USERS, 0, USERS_ID, MR_DEADLOCK},
437 {V_CHAR, 0},
438 {V_CHAR, 3},
439 {V_CHAR, 4},
440 {V_CHAR, 5},
441 {V_CHAR, 7},
442 {V_TYPE, 8, CLASS, 0, 0, MR_BAD_CLASS},
443 {V_ID, 9, "strings", "string", "string_id", MR_NO_MATCH},
444};
445
446static struct validate auac_validate = {
447 auac_valobj,
448 8,
449 LOGIN,
450 "login = LEFT('%s',SIZE(login))",
451 1,
452 USERS_ID,
453 0,
454 setup_ausr,
455 followup_ausr,
456};
457
458static struct validate ausr_validate = {
459 auac_valobj,
460 7,
461 LOGIN,
462 "login = LEFT('%s',SIZE(login))",
463 1,
464 USERS_ID,
465 0,
466 setup_ausr,
467 followup_ausr,
468};
469
470static char *rusr_fields[] = {
471 UID, LOGIN, "fs_type"
472 };
473
474static struct valobj rusr_valobj[] = {
475 {V_LOCK, 0, USERS, 0, USERS_ID, MR_DEADLOCK},
476 {V_LOCK, 0, LIST, 0, LIST_ID, MR_DEADLOCK},
477 {V_LOCK, 0, FILESYS, 0, FILSYS_ID, MR_DEADLOCK},
478 {V_LOCK, 0, "nfsphys", 0, "nfsphys_id", MR_DEADLOCK},
479};
480
481static struct validate rusr_validate = {
482 rusr_valobj,
483 4,
484 0,
485 0,
486 0,
487 0,
488 0,
489 register_user,
490 0,
491};
492
493static char *uuac_fields[] = {
494 LOGIN,
495 "newlogin", UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
496 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE,
497};
498
499static struct valobj uuac_valobj[] = {
500 {V_LOCK, 0, USERS, 0, USERS_ID, MR_DEADLOCK},
501 {V_ID, 0, USERS, LOGIN, USERS_ID, MR_USER},
502 {V_RENAME, 1, USERS, LOGIN, USERS_ID, MR_NOT_UNIQUE},
503 {V_CHAR, 4},
504 {V_CHAR, 5},
505 {V_CHAR, 6},
506 {V_CHAR, 8},
507 {V_TYPE, 9, CLASS, 0, 0, MR_BAD_CLASS},
508 {V_ID, 10, "strings", "string", "string_id", MR_NO_MATCH},
509};
510
511static struct validate uuac_validate = {
512 uuac_valobj,
513 9,
514 0,
515 0,
516 0,
517 USERS_ID,
518 0,
519 setup_ausr,
520 followup_uuac,
521};
522
523static struct validate uusr_validate = {
524 uuac_valobj,
525 8,
526 0,
527 0,
528 0,
529 USERS_ID,
530 0,
531 setup_ausr,
532 set_modtime_by_id,
533};
534
535static char *uush_fields[] = {
536 LOGIN,
537 SHELL,
538};
539
540static struct validate uush_validate = {
541 VOuser0lock,
542 2,
543 0,
544 0,
545 0,
546 USERS_ID,
547 access_user,
548 0,
549 set_modtime_by_id,
550};
551
552static char *uust_fields[] = {
553 LOGIN,
554 STATUS,
555};
556
557static char *uuss_fields[] = {
558 LOGIN,
559 SECURE,
560};
561
562static struct validate uust_validate = {
563 VOuser0lock,
564 2,
565 0,
566 0,
567 0,
568 USERS_ID,
569 0,
570 0,
571 set_modtime_by_id,
572};
573
574static char *dusr_fields[] = {
575 LOGIN,
576};
577
578static struct validate dusr_validate = {
579 VOuser0lock,
580 2,
581 0,
582 0,
583 0,
584 0,
585 0,
586 setup_dusr,
587 0,
588};
589
590static char *dubu_fields[] = {
591 UID,
592};
593
594static struct valobj dubu_valobj[] = {
595 {V_LOCK, 0, USERS, 0, USERS_ID, MR_DEADLOCK},
596 {V_ID, 0, USERS, UID, USERS_ID, MR_USER}
597};
598
599static struct validate dubu_validate = {
600 dubu_valobj,
601 2,
602 0,
603 0,
604 0,
605 0,
606 0,
607 setup_dusr,
608 0,
609};
610
611static char *gkum_fields[] = { LOGIN, "kerberos",
612 LOGIN, "kerberos" };
613
614static char *akum_fields[] = { LOGIN, "kerberos" };
615
616static struct valobj akum_valobj[] =
617{
618 {V_ID, 0, USERS, LOGIN, USERS_ID, MR_USER},
619 {V_ID, 1, "strings", "string", "string_id", MR_NO_MATCH},
620};
621
622static struct validate akum_validate =
623{
624 akum_valobj,
625 1,
626 USERS_ID,
627 "users_id = %d or string_id = %d",
628 2,
629 USERS_ID,
630 access_user,
631 setup_akum,
632 0,
633};
634
635static struct validate dkum_validate =
636{
637 akum_valobj,
638 2,
639 USERS_ID,
640 "users_id = %d and string_id = %d",
641 2,
642 USERS_ID,
643 access_user,
644 0,
645 0,
646};
647
648static char *gfbl_fields[] = {
649 LOGIN,
650 LOGIN, "fullname", "nickname", "home_addr",
651 "home_phone", "office_addr", "office_phone", "department",
652 "affiliation", MOD1, MOD2, MOD3,
653};
654
655static struct validate gfbl_validate = {
656 VOuser0,
657 1,
658 0,
659 0,
660 0,
661 0,
662 access_user,
663 0,
664 followup_fix_modby,
665};
666
667static char *ufbl_fields[] = {
668 LOGIN,
669 "fullname", "nickname", "home_addr",
670 "home_phone", "office_addr", "office_phone", "department",
671 "affiliation",
672};
673
674static struct validate ufbl_validate = {
675 VOuser0lock,
676 2,
677 0,
678 0,
679 0,
680 0,
681 access_user,
682 0,
683 set_finger_modtime,
684};
685
686static char *gpob_fields[] = {
687 LOGIN,
688 LOGIN, TYPE, "box", MOD1, MOD2, MOD3,
689};
690
691static struct validate gpob_validate = {
692 VOuser0,
693 1,
694 "potype",
695 "potype != 'NONE' and users_id=%d",
696 1,
697 0,
698 access_user,
699 0,
700 followup_gpob,
701};
702
703static char *gpox_fields[] = {
704 LOGIN, TYPE, "box",
705};
706
707static struct validate gpox_validate = {
708 0,
709 0,
710 0,
711 0,
712 0,
713 0,
714 0,
715 0,
716 followup_gpob,
717};
718
719static char *spob_fields[] = {
720 LOGIN, TYPE, "box",
721};
722
723static struct valobj spob_valobj[] = {
724 {V_LOCK, 0, USERS, 0, USERS_ID, MR_DEADLOCK},
725 {V_ID, 0, USERS, LOGIN, USERS_ID, MR_USER},
726 {V_TYPE, 1, "pobox", 0, 0, MR_TYPE},
727};
728
729static struct validate spob_validate = /* SET_POBOX */
730{
731 spob_valobj,
732 3,
733 0,
734 0,
735 0,
736 0,
737 access_user,
738 0,
739 set_pobox,
740};
741
742static struct validate spop_validate = /* SET_POBOX_POP */
743{
744 VOuser0lock,
745 2,
746 0,
747 0,
748 0,
749 0,
750 access_user,
751 setup_spop,
752 set_pobox_modtime,
753};
754
755static struct validate dpob_validate = /* DELETE_POBOX */
756{
757 VOuser0lock,
758 2,
759 0,
760 0,
761 0,
762 0,
763 access_user,
764 setup_dpob,
765 set_pobox_modtime,
766};
767
768static char *gmac_fields[] = {
769 NAME,
770 NAME, TYPE, MOD1, MOD2, MOD3,
771};
772
773static char *ghst_fields[] = {
774 NAME, ADDRESS, "location", "network",
775 NAME, "vendor", "model", "os", "location", "contact", "use", "status", "status_change", "network", ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment", "created", "creator", "inuse", MOD1, MOD2, MOD3,
776};
777
778static struct valobj ghst_valobj[] = {
779 {V_UPWILD, 0},
780 {V_UPWILD, 1},
781 {V_UPWILD, 2},
782 {V_UPWILD, 3},
783 {V_SORT, 0},
784};
785
786static struct validate ghst_validate = {
787 ghst_valobj,
788 5,
789 0,
790 0,
791 0,
792 0,
793 access_host,
794 0,
795 followup_ghst,
796};
797
798static char *ahst_fields[] = {
799 NAME, "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
800};
801
802static struct valobj ahst_valobj[] = {
803 {V_CHAR, 0},
804 {V_CHAR, 1},
805 {V_CHAR, 2},
806 {V_CHAR, 3},
807 {V_CHAR, 4},
808 {V_LOCK, 0, MACHINE, 0, MACH_ID, MR_DEADLOCK},
809 {V_ID, 8, SUBNET, NAME, SNET_ID, MR_SUBNET},
810 {V_TYPE, 10, ACE_TYPE, 0, 0, MR_ACE},
811 {V_TYPEDATA, 11, 0, 0, 0, MR_ACE},
812 {V_ID, 12, "strings", "string", "string_id", MR_NO_MATCH},
813 {V_ID, 13, "strings", "string", "string_id", MR_NO_MATCH},
814};
815
816static struct validate ahst_validate = {
817 ahst_valobj,
818 11,
819 NAME,
820 "name = uppercase(LEFT('%s',SIZE(name)))",
821 1,
822 MACH_ID,
823 access_host,
824 setup_ahst,
825 set_uppercase_modtime,
826};
827
828static char *uhst_fields[] = {
829 NAME,
830 "newname", "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
831};
832
833static struct valobj uhst_valobj[] = {
834 {V_CHAR, 0},
835 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
836 {V_RENAME, 1, MACHINE, NAME, MACH_ID, MR_NOT_UNIQUE},
837 {V_CHAR, 2},
838 {V_CHAR, 3},
839 {V_CHAR, 4},
840 {V_CHAR, 5},
841 {V_LOCK, 0, MACHINE, 0, MACH_ID, MR_DEADLOCK},
842 {V_ID, 9, SUBNET, NAME, SNET_ID, MR_SUBNET},
843 {V_TYPE, 11, ACE_TYPE, 0, 0, MR_ACE},
844 {V_TYPEDATA, 12, 0, 0, 0, MR_ACE},
845 {V_ID, 13, "strings", "string", "string_id", MR_NO_MATCH},
846 {V_ID, 14, "strings", "string", "string_id", MR_NO_MATCH},
847};
848
849static struct validate uhst_validate = {
850 uhst_valobj,
851 13,
852 0,
853 0,
854 0,
855 MACH_ID,
856 access_host,
857 setup_ahst,
858 set_modtime_by_id,
859};
860
861static char *dhst_fields[] = {
862 NAME,
863};
864
865static struct valobj dhst_valobj[] = {
866 {V_LOCK, 0, MACHINE, 0, MACH_ID, MR_DEADLOCK},
867 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
868};
869
870static struct validate dhst_validate = {
871 dhst_valobj,
872 2,
873 0,
874 0,
875 0,
876 0,
877 0,
878 setup_dmac,
879 0,
880};
881
882static char *ghal_fields[] = {
883 ALIAS, "canonical_hostname",
884 ALIAS, "canonical_hostname"
885};
886
887static struct valobj ghal_valobj[] = {
888 {V_UPWILD, 0},
889 {V_UPWILD, 1},
890 {V_SORT, 0},
891};
892
893static struct validate ghal_validate = {
894 ghal_valobj,
895 3,
896 0,
897 0,
898 0,
899 0,
900 access_ahal,
901 0,
902 get_hostalias,
903};
904
905static struct valobj ahal_valobj[] = {
906 {V_CHAR, 0},
907 {V_UPWILD, 0},
908 {V_ID, 1, MACHINE, NAME, MACH_ID, MR_MACHINE},
909};
910
911static struct validate ahal_validate = {
912 ahal_valobj,
913 3,
914 NAME,
915 "name = LEFT('%s',SIZE(name))",
916 1,
917 MACH_ID,
918 access_ahal,
919 setup_ahal,
920 0,
921};
922
923static struct valobj dhal_valobj[] = {
924 {V_UPWILD, 0},
925 {V_LOCK, 0, MACHINE, 0, MACH_ID, MR_DEADLOCK},
926 {V_ID, 1, MACHINE, NAME, MACH_ID, MR_MACHINE},
927};
928
929static struct validate dhal_validate = {
930 dhal_valobj,
931 3,
932 NAME,
933 "name = LEFT('%s',SIZE(name)) AND mach_id = %d",
934 2,
935 MACH_ID,
936 access_ahal,
937 0,
938 0,
939};
940
941static char *gsnt_fields[] = {
942 NAME,
943 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
944 MOD1, MOD2, MOD3
945};
946
947static struct valobj gsnt_valobj[] = {
948 {V_UPWILD, 0},
949 {V_SORT, 0},
950};
951
952static struct validate gsnt_validate = {
953 gsnt_valobj,
954 2,
955 0,
956 0,
957 0,
958 0,
959 access_snt,
960 0,
961 followup_gsnt,
962};
963
964static char *asnt_fields[] = {
965 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
966};
967
968static struct valobj asnt_valobj[] = {
969 {V_LOCK, 0, SUBNET, 0, SNET_ID, MR_DEADLOCK},
970 {V_CHAR, 0},
971 {V_TYPE, 7, ACE_TYPE, 0, 0, MR_ACE},
972 {V_TYPEDATA, 8, 0, 0, 0, MR_ACE},
973};
974
975static struct validate asnt_validate =
976{
977 asnt_valobj,
978 4,
979 NAME,
980 "name = uppercase(LEFT('%s',SIZE(name)))",
981 1,
982 SNET_ID,
983 0,
984 prefetch_value,
985 set_uppercase_modtime,
986};
987
988static char *usnt_fields[] = {
989 NAME,
990 "newname", DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
991};
992
993static struct valobj usnt_valobj[] = {
994 {V_LOCK, 0, SUBNET, 0, SNET_ID, MR_DEADLOCK},
995 {V_ID, 0, SUBNET, NAME, SNET_ID, MR_NO_MATCH},
996 {V_RENAME, 1, SUBNET, NAME, SNET_ID, MR_NOT_UNIQUE},
997 {V_TYPE, 8, ACE_TYPE, 0, 0, MR_ACE},
998 {V_TYPEDATA, 9, 0, 0, 0, MR_ACE},
999};
1000
1001static struct validate usnt_validate =
1002{
1003 usnt_valobj,
1004 5,
1005 NAME,
1006 "snet_id = %d",
1007 1,
1008 SNET_ID,
1009 0,
1010 0,
1011 set_modtime_by_id,
1012};
1013
1014static char *dsnt_fields[] = {
1015 NAME,
1016};
1017
1018static struct valobj dsnt_valobj[] = {
1019 {V_LOCK, 0, SUBNET, 0, SNET_ID, MR_DEADLOCK},
1020 {V_ID, 0, SUBNET, NAME, SNET_ID, MR_SUBNET},
1021};
1022
1023static struct validate dsnt_validate = {
1024 dsnt_valobj,
1025 2,
1026 0,
1027 0,
1028 0,
1029 0,
1030 0,
1031 setup_dsnt,
1032 0,
1033};
1034
1035static char *gclu_fields[] = {
1036 NAME,
1037 NAME, DESC, LOCATION, MOD1, MOD2, MOD3,
1038};
1039
1040static char *aclu_fields[] = {
1041 NAME, DESC, LOCATION,
1042};
1043
1044static struct valobj aclu_valobj[] = {
1045 {V_LOCK, 0, CLUSTER, 0, CLU_ID, MR_DEADLOCK},
1046 {V_CHAR, 0}
1047};
1048
1049static struct validate aclu_validate =
1050{
1051 aclu_valobj,
1052 2,
1053 NAME,
1054 "name = LEFT('%s',SIZE(name))",
1055 1,
1056 CLU_ID,
1057 0,
1058 prefetch_value,
1059 set_modtime,
1060};
1061
1062static char *uclu_fields[] = {
1063 NAME,
1064 "newname", DESC, LOCATION,
1065};
1066
1067static struct valobj uclu_valobj[] = {
1068 {V_LOCK, 0, CLUSTER, 0, CLU_ID, MR_DEADLOCK},
1069 {V_ID, 0, CLUSTER, NAME, CLU_ID, MR_CLUSTER},
1070 {V_RENAME, 1, CLUSTER, NAME, CLU_ID, MR_NOT_UNIQUE},
1071};
1072
1073static struct validate uclu_validate = {
1074 uclu_valobj,
1075 3,
1076 0,
1077 0,
1078 0,
1079 CLU_ID,
1080 0,
1081 0,
1082 set_modtime_by_id,
1083};
1084
1085static char *dclu_fields[] = {
1086 NAME,
1087};
1088
1089static struct validate dclu_validate = {
1090 VOclu0,
1091 1,
1092 0,
1093 0,
1094 0,
1095 0,
1096 0,
1097 setup_dclu,
1098 0,
1099};
1100
1101static char *gmcm_fields[] = {
1102 MACHINE, CLUSTER,
1103 MACHINE, CLUSTER,
1104};
1105
1106static struct valobj gmcm_valobj[] =
1107{
1108 {V_UPWILD, 0},
1109 {V_WILD, 1},
1110 {V_SORT, 0},
1111 {V_SORT, 1},
1112};
1113
1114static struct validate gmcm_validate = { gmcm_valobj, 4 };
1115
1116static struct valobj amtc_valobj[] = /* ADD_MACHINE_TO_CLUSTER */
1117{ /* DELETE_MACHINE_FROM_CLUSTER */
1118 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
1119 {V_ID, 1, CLUSTER, NAME, CLU_ID, MR_CLUSTER},
1120};
1121
1122static struct validate amtc_validate = /* for amtc and dmfc */
1123{
1124 amtc_valobj,
1125 2,
1126 MACH_ID,
1127 "mach_id = %d and clu_id = %d",
1128 2,
1129 0,
1130 0,
1131 0,
1132 set_mach_modtime_by_id,
1133};
1134
1135static char *gcld_fields[] = {
1136 CLUSTER, "serv_label",
1137 CLUSTER, "serv_label", "serv_cluster",
1138};
1139
1140static char *acld_fields[] = {
1141 CLUSTER, "serv_label", "serv_cluster",
1142};
1143
1144static struct valobj acld_valobj[] =
1145{
1146 {V_ID, 0, CLUSTER, NAME, CLU_ID, MR_CLUSTER},
1147 {V_CHAR, 1},
1148 {V_CHAR, 2},
1149};
1150
1151static struct validate acld_validate =
1152{
1153 acld_valobj,
1154 3,
1155 CLU_ID,
1156 "clu_id = %d AND serv_label = '%s' AND serv_cluster = LEFT('%s',SIZE(serv_cluster))",
1157 3,
1158 0,
1159 0,
1160 0,
1161 set_cluster_modtime_by_id,
1162};
1163
1164static struct valobj dcld_valobj[] =
1165{
1166 {V_ID, 0, CLUSTER, NAME, CLU_ID, MR_CLUSTER},
1167 {V_CHAR, 2},
1168};
1169
1170static struct validate dcld_validate =
1171{
1172 dcld_valobj,
1173 2,
1174 CLU_ID,
1175 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1176 3,
1177 0,
1178 0,
1179 0,
1180 set_cluster_modtime_by_id,
1181};
1182
1183static char *gsin_fields[] = {
1184 SERVICE,
1185 SERVICE, "update_int", "target_file", "script", "dfgen", "dfcheck",
1186 TYPE, "enable", "inprogress", "harderror", "errmsg",
1187 ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
1188};
1189
1190static struct valobj gsin_valobj[] =
1191{
1192 { V_UPWILD, 0 },
1193};
1194
1195static struct validate gsin_validate =
1196{
1197 gsin_valobj,
1198 1,
1199 0,
1200 0,
1201 0,
1202 0,
1203 access_service,
1204 0,
1205 followup_glin,
1206};
1207
1208static char *qgsv_fields[] = {
1209 "enable", "inprogress", "harderror",
1210 "service",
1211};
1212
1213static struct valobj qgsv_valobj[] = {
1214 {V_TYPE, 0, "boolean", 0, 0, MR_TYPE},
1215 {V_TYPE, 1, "boolean", 0, 0, MR_TYPE},
1216 {V_TYPE, 2, "boolean", 0, 0, MR_TYPE},
1217};
1218
1219static struct validate qgsv_validate = {
1220 qgsv_valobj,
1221 3,
1222 0,
1223 0,
1224 0,
1225 0,
1226 0,
1227 0,
1228 qualified_get_server,
1229};
1230
1231static char *asin_fields[] = {
1232 SERVICE, "update_int", "target_file", "script", TYPE, "enable",
1233 ACE_TYPE, ACE_NAME,
1234};
1235
1236static struct valobj asin_valobj[] = {
1237 {V_LOCK, 0, MACHINE, 0, MACH_ID, MR_DEADLOCK},
1238 {V_CHAR, 0},
1239 {V_TYPE, 4, "service", 0, 0, MR_TYPE},
1240 {V_TYPE, 6, ACE_TYPE, 0, 0, MR_ACE},
1241 {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
1242};
1243
1244static struct validate asin_validate = /* for asin, usin */
1245{
1246 asin_valobj,
1247 5,
1248 NAME,
1249 "name = uppercase(LEFT('%s',SIZE(name)))",
1250 1,
1251 0,
1252 0,
1253 0,
1254 set_uppercase_modtime,
1255};
1256
1257static struct validate rsve_validate = {
1258 asin_valobj,
1259 1,
1260 NAME,
1261 "name = uppercase('%s')",
1262 1,
1263 0,
1264 access_service,
1265 0,
1266 set_uppercase_modtime,
1267};
1268
1269static char *ssif_fields[] = {
1270 SERVICE, "dfgen", "dfcheck", "inprogress", "harderror", "errmsg",
1271};
1272
1273static struct validate ssif_validate = {
1274 asin_valobj,
1275 1,
1276 NAME,
1277 "name = uppercase('%s')",
1278 1,
1279 0,
1280 0,
1281 0,
1282 0,
1283};
1284
1285static char *dsin_fields[] = {
1286 SERVICE,
1287};
1288
1289static struct validate dsin_validate = {
1290 asin_valobj,
1291 1,
1292 NAME,
1293 "name = uppercase('%s')",
1294 1,
1295 0,
1296 0,
1297 setup_dsin,
1298 0,
1299};
1300
1301static char *gshi_fields[] = {
1302 SERVICE, MACHINE,
1303 SERVICE, MACHINE, "enable", "override", "success", "inprogress",
1304 "hosterror", "hosterrormsg", "ltt", "lts", "value1", "value2",
1305 "value3", MOD1, MOD2, MOD3,
1306};
1307
1308static struct valobj gshi_valobj[] = {
1309 { V_UPWILD, 0 },
1310 { V_UPWILD, 1 },
1311};
1312
1313static struct validate gshi_validate = {
1314 gshi_valobj,
1315 2,
1316 0,
1317 0,
1318 0,
1319 0,
1320 access_service,
1321 0,
1322 followup_fix_modby,
1323};
1324
1325static char *qgsh_fields[] = {
1326 "service", "enable", "override", "success", "inprogress", "hosterror",
1327 "service", MACHINE,
1328};
1329
1330static struct valobj qgsh_valobj[] = {
1331 {V_TYPE, 1, "boolean", 0, 0, MR_TYPE},
1332 {V_TYPE, 2, "boolean", 0, 0, MR_TYPE},
1333 {V_TYPE, 3, "boolean", 0, 0, MR_TYPE},
1334 {V_TYPE, 4, "boolean", 0, 0, MR_TYPE},
1335 {V_TYPE, 5, "boolean", 0, 0, MR_TYPE},
1336};
1337
1338static struct validate qgsh_validate = {
1339 qgsh_valobj,
1340 5,
1341 0,
1342 0,
1343 0,
1344 0,
1345 0,
1346 0,
1347 qualified_get_serverhost,
1348};
1349
1350static char *ashi_fields[] = {
1351 SERVICE, MACHINE, "enable", "value1", "value2", "value3",
1352};
1353
1354static struct valobj ashi_valobj[] = {
1355 {V_LOCK, 0, MACHINE, 0, MACH_ID, MR_DEADLOCK},
1356 {V_NAME, 0, "servers", NAME, 0, MR_SERVICE},
1357 {V_ID, 1, MACHINE, NAME, MACH_ID, MR_MACHINE},
1358};
1359
1360static struct validate ashi_validate = /* ashi & ushi */
1361{
1362 ashi_valobj,
1363 3,
1364 SERVICE,
1365 "service = uppercase(LEFT('%s',SIZE(service))) AND mach_id = %d",
1366 2,
1367 0,
1368 access_service,
1369 0,
1370 set_serverhost_modtime,
1371};
1372
1373static struct validate rshe_validate =
1374{
1375 ashi_valobj,
1376 3,
1377 SERVICE,
1378 "service = uppercase('%s') AND mach_id = %d",
1379 2,
1380 0,
1381 access_service,
1382 0,
1383 set_serverhost_modtime,
1384};
1385
1386static struct validate ssho_validate =
1387{
1388 ashi_valobj,
1389 3,
1390 SERVICE,
1391 "service = uppercase('%s') AND mach_id = %d",
1392 2,
1393 0,
1394 access_service,
1395 0,
1396 trigger_dcm,
1397};
1398
1399static char *sshi_fields[] = {
1400 "service", MACHINE, "override", "success", "inprogress",
1401 "hosterror", "errmsg", "ltt", "lts",
1402};
1403
1404static struct valobj sshi_valobj[] = {
1405 {V_NAME, 0, "servers", NAME, 0, MR_SERVICE},
1406 {V_ID, 1, MACHINE, NAME, MACH_ID, MR_MACHINE}, /** Was this ok to add? */
1407};
1408
1409static struct validate sshi_validate =
1410{
1411 sshi_valobj,
1412 2,
1413 0,
1414 0,
1415 0,
1416 0,
1417 0,
1418 setup_sshi,
1419 0,
1420};
1421
1422static char *dshi_fields[] = {
1423 SERVICE, MACHINE,
1424};
1425
1426static struct validate dshi_validate =
1427{
1428 ashi_valobj,
1429 3,
1430 SERVICE,
1431 "service = uppercase('%s') AND mach_id = %d",
1432 2,
1433 0,
1434 access_service,
1435 setup_dshi,
1436 0,
1437};
1438
1439static char *gsha_fields[] = {
1440 MACHINE,
1441 MACHINE, ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
1442};
1443
1444static struct validate gsha_validate =
1445{
1446 VOupwild0,
1447 1,
1448 0,
1449 0,
1450 0,
1451 0,
1452 0,
1453 0,
1454 followup_gsha,
1455};
1456
1457static char *asha_fields[] = {
1458 MACHINE, ACE_TYPE, ACE_NAME,
1459};
1460
1461static struct valobj asha_valobj[] = {
1462 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
1463 {V_TYPE, 1, ACE_TYPE, 0, 0, MR_ACE},
1464 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
1465};
1466
1467static struct validate asha_validate =
1468{
1469 asha_valobj,
1470 3,
1471 MACH_ID,
1472 "mach_id = %d",
1473 1,
1474 MACH_ID,
1475 0,
1476 0,
1477 set_modtime_by_id,
1478};
1479
1480static char *gslo_fields[] = {
1481 "server",
1482 "server", MACHINE,
1483};
1484
1485static char *gfsl_fields[] = {
1486 LABEL,
1487 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1488 "create", "lockertype", MOD1, MOD2, MOD3,
1489};
1490
1491static char *gfsm_fields[] = {
1492 MACHINE,
1493 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1494 "create", "lockertype", MOD1, MOD2, MOD3,
1495};
1496
1497static struct validate gfsm_validate = {
1498 VOmach0,
1499 1,
1500 0,
1501 0,
1502 0,
1503 0,
1504 0,
1505 0,
1506 followup_fix_modby,
1507};
1508
1509static char *gfsn_fields[] = {
1510 MACHINE, "parition",
1511 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1512 "create", "lockertype", MOD1, MOD2, MOD3,
1513};
1514
1515static struct valobj gfsn_valobj[] =
1516{
1517 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
1518 {V_WILD, 1},
1519};
1520
1521static struct validate gfsn_validate = {
1522 gfsn_valobj,
1523 2,
1524 0,
1525 0,
1526 0,
1527 0,
1528 0,
1529 0,
1530 followup_fix_modby,
1531};
1532
1533static char *gfsp_fields[] = {
1534 "path",
1535 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1536 "create", "lockertype", MOD1, MOD2, MOD3,
1537};
1538
1539static char *gfsg_fields[] = {
1540 LIST,
1541 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1542 "create", "lockertype", MOD1, MOD2, MOD3,
1543};
1544
1545static struct validate gfsg_validate = {
1546 VOlist0,
1547 1,
1548 0,
1549 0,
1550 0,
1551 0,
1552 access_list,
1553 0,
1554 followup_fix_modby,
1555};
1556
1557static char *afil_fields[] = {
1558 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1559 "create", "lockertype",
1560};
1561
1562static struct valobj afil_valobj[] = {
1563 {V_CHAR, 0},
1564 {V_LOCK, 0, FILESYS, 0, FILSYS_ID, MR_DEADLOCK},
1565 {V_TYPE, 1, FILESYS, 0, 0, MR_FSTYPE},
1566 {V_ID, 2, MACHINE, NAME, MACH_ID, MR_MACHINE},
1567 {V_CHAR, 3},
1568 {V_ID, 7, USERS, LOGIN, USERS_ID, MR_USER},
1569 {V_ID, 8, LIST, NAME, LIST_ID, MR_LIST},
1570 {V_TYPE, 10, "lockertype", 0, 0, MR_TYPE}
1571};
1572
1573static struct validate afil_validate = {
1574 afil_valobj,
1575 8,
1576 LABEL,
1577 "label = LEFT('%s',SIZE(label))",
1578 1,
1579 FILSYS_ID,
1580 0,
1581 setup_afil,
1582 set_filesys_modtime,
1583};
1584
1585static char *ufil_fields[] = {
1586 LABEL, "newlabel", TYPE, MACHINE, NAME, "mount", "access", COMMENTS,
1587 "owner", "owners", "create", "lockertype",
1588};
1589
1590static struct valobj ufil_valobj[] = {
1591 {V_LOCK, 0, FILESYS, 0, FILSYS_ID, MR_DEADLOCK},
1592 {V_ID, 0, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
1593 {V_RENAME, 1, FILESYS, LABEL, FILSYS_ID, MR_NOT_UNIQUE},
1594 {V_TYPE, 2, FILESYS, 0, 0, MR_FSTYPE},
1595 {V_ID, 3, MACHINE, NAME, MACH_ID, MR_MACHINE},
1596 {V_CHAR, 4},
1597 {V_ID, 8, USERS, LOGIN, USERS_ID, MR_USER},
1598 {V_ID, 9, LIST, NAME, LIST_ID, MR_LIST},
1599 {V_TYPE, 11, "lockertype", 0, 0, MR_TYPE}
1600};
1601
1602static struct validate ufil_validate = {
1603 ufil_valobj,
1604 9,
1605 LABEL,
1606 "filsys_id = %d",
1607 1,
1608 FILSYS_ID,
1609 0,
1610 setup_ufil,
1611 set_filesys_modtime,
1612};
1613
1614static char *dfil_fields[] = {
1615 LABEL,
1616};
1617
1618static struct valobj dfil_valobj[] = {
1619 {V_LOCK, 0, FILESYS, 0, FILSYS_ID, MR_DEADLOCK},
1620 {V_ID, 0, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
1621};
1622
1623static struct validate dfil_validate = {
1624 dfil_valobj,
1625 2,
1626 "label",
1627 "filsys_id = %d",
1628 1,
1629 0,
1630 0,
1631 setup_dfil,
1632 0,
1633};
1634
1635static char *gfgm_fields[] = {
1636 "fsgroup", FILESYS, "sortkey"
1637 };
1638
1639static struct valobj gfgm_valobj[] = {
1640 {V_ID, 0, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
1641 {V_SORT, 1},
1642 {V_SORT, 0},
1643};
1644
1645static struct validate gfgm_validate = {
1646 gfgm_valobj,
1647 3,
1648 0,
1649 0,
1650 0,
1651 0,
1652 0,
1653 0,
1654 0,
1655};
1656
1657static struct valobj aftg_valobj[] = {
1658 {V_LOCK, 0, FILESYS, 0, FILSYS_ID, MR_DEADLOCK},
1659 {V_ID, 0, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
1660 {V_ID, 1, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
1661};
1662
1663static struct validate aftg_validate = {
1664 aftg_valobj,
1665 3,
1666 "group_id",
1667 "group_id = %d and filsys_id = %d",
1668 2,
1669 0,
1670 0,
1671 0,
1672 0,
1673};
1674
1675static char *ganf_fields[] = {
1676 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
1677};
1678
1679static char *gnfp_fields[] = {
1680 MACHINE, DIR,
1681 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
1682};
1683
1684static struct valobj gnfp_valobj[] = {
1685 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
1686 {V_WILD, 1},
1687};
1688
1689static struct validate gnfp_validate = {
1690 gnfp_valobj,
1691 2,
1692 0,
1693 0,
1694 0,
1695 0,
1696 0,
1697 0,
1698 followup_fix_modby,
1699};
1700
1701static struct valobj anfp_valobj[] = {
1702 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
1703 {V_CHAR, 1},
1704};
1705
1706static struct validate anfp_validate = {
1707 anfp_valobj,
1708 2,
1709 DIR,
1710 "mach_id = %d and dir = LEFT('%s',SIZE(dir))",
1711 2,
1712 "nfsphys_id",
1713 0,
1714 prefetch_value,
1715 set_nfsphys_modtime,
1716};
1717
1718static struct validate unfp_validate = {
1719 anfp_valobj,
1720 2,
1721 DIR,
1722 "mach_id = %d and dir = '%s'",
1723 2,
1724 "nfsphys_id",
1725 0,
1726 0,
1727 set_nfsphys_modtime,
1728};
1729
1730static char *ajnf_fields[] = {
1731 MACHINE, DIR, "adjustment",
1732};
1733
1734static char *dnfp_fields[] = {
1735 MACHINE, DIR,
1736};
1737
1738static struct validate dnfp_validate = {
1739 VOmach0,
1740 1,
1741 DIR,
1742 "mach_id = %d and dir = '%s'",
1743 2,
1744 "nfsphys_id",
1745 0,
1746 setup_dnfp,
1747 set_nfsphys_modtime,
1748};
1749
1750static char *gqot_fields[] = {
1751 FILESYS, TYPE, NAME,
1752 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
1753};
1754
1755static struct valobj gqot_valobj[] = {
1756 {V_WILD, 0},
1757 {V_TYPE, 1, QUOTA_TYPE, 0, 0, MR_TYPE},
1758 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
1759 {V_SORT, 0, 0, 0, 0, 0},
1760};
1761
1762static struct validate gqot_validate = {
1763 gqot_valobj,
1764 4,
1765 0,
1766 0,
1767 0,
1768 0,
1769 0,
1770 0,
1771 followup_gqot,
1772};
1773
1774static char *gqbf_fields[] = {
1775 FILESYS,
1776 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
1777};
1778
1779static struct validate gqbf_validate = {
1780 VOwild0sort,
1781 2,
1782 0,
1783 0,
1784 0,
1785 0,
1786 access_filesys,
1787 0,
1788 followup_gqot,
1789};
1790
1791static char *aqot_fields[] = {
1792 FILESYS, TYPE, NAME, QUOTA,
1793};
1794
1795static struct valobj aqot_valobj[] = {
1796 {V_LOCK, 0, FILESYS, 0, FILSYS_ID, MR_DEADLOCK},
1797 {V_ID, 0, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
1798 {V_TYPE, 1, QUOTA_TYPE, 0, 0, MR_TYPE},
1799 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
1800};
1801
1802static struct validate aqot_validate = {
1803 aqot_valobj,
1804 4,
1805 FILSYS_ID,
1806 "filsys_id = %d and type = '%s' and entity_id = %d",
1807 3,
1808 0,
1809 0,
1810 prefetch_filesys,
1811 followup_aqot,
1812};
1813
1814static struct validate uqot_validate = {
1815 aqot_valobj,
1816 4,
1817 FILSYS_ID,
1818 "filsys_id = %d AND type = '%s' AND entity_id = %d",
1819 3,
1820 0,
1821 0,
1822 setup_dqot,
1823 followup_aqot,
1824};
1825
1826static struct validate dqot_validate = {
1827 aqot_valobj,
1828 4,
1829 FILSYS_ID,
1830 "filsys_id = %d AND type = '%s' AND entity_id = %d",
1831 3,
1832 0,
1833 0,
1834 setup_dqot,
1835 followup_dqot,
1836};
1837
1838static char *gnfq_fields[] = {
1839 FILESYS, LOGIN,
1840 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
1841};
1842
1843static struct validate gnfq_validate = {
1844 VOwild0sort,
1845 2,
1846 0,
1847 0,
1848 0,
1849 0,
1850 access_filesys,
1851 0,
1852 followup_gqot,
1853};
1854
1855static char *gnqp_fields[] = {
1856 MACHINE, DIR,
1857 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
1858};
1859
1860static struct valobj gnqp_valobj[] = {
1861 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
1862 {V_WILD, 1},
1863};
1864
1865static struct validate gnqp_validate = { gnqp_valobj, 2, };
1866
1867static char *anfq_fields[] = {
1868 FILESYS, LOGIN, QUOTA,
1869};
1870
1871static struct validate anfq_validate = {
1872 VOfilsys0user1,
1873 3,
1874 FILSYS_ID,
1875 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
1876 2,
1877 0, /* object ? */
1878 0,
1879 prefetch_filesys,
1880 followup_aqot,
1881};
1882
1883static struct validate unfq_validate = {
1884 VOfilsys0user1,
1885 3,
1886 FILSYS_ID,
1887 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
1888 2,
1889 0,
1890 0,
1891 setup_dqot,
1892 followup_aqot,
1893};
1894
1895static struct validate dnfq_validate = {
1896 VOfilsys0user1,
1897 3,
1898 FILSYS_ID,
1899 "filsys_id = %d AND entity_id = %d",
1900 2,
1901 0,
1902 0,
1903 setup_dqot,
1904 followup_dqot,
1905};
1906
1907static char *glin_fields[] = {
1908 NAME,
1909 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1910 ACE_TYPE, ACE_NAME, DESC, MOD1, MOD2, MOD3,
1911};
1912
1913static struct validate glin_validate = {
1914 0,
1915 0,
1916 0,
1917 0,
1918 0,
1919 0,
1920 access_vis_list_by_name,
1921 0,
1922 get_list_info,
1923};
1924
1925static char *alis_fields[] = {
1926 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1927 ACE_TYPE, ACE_NAME, DESC,
1928};
1929
1930static struct valobj alis_valobj[] = {
1931 {V_LOCK, 0, LIST, 0, LIST_ID, MR_DEADLOCK},
1932 {V_CHAR, 0},
1933 {V_TYPE, 7, ACE_TYPE, 0, 0, MR_ACE},
1934 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
1935};
1936
1937static struct validate alis_validate = {
1938 alis_valobj,
1939 4,
1940 NAME,
1941 "name = LEFT('%s',SIZE(name))",
1942 1,
1943 LIST_ID,
1944 0,
1945 setup_alis,
1946 set_modtime,
1947};
1948
1949static char *ulis_fields[] = {
1950 NAME,
1951 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1952 ACE_TYPE, ACE_NAME, DESC,
1953};
1954
1955static struct valobj ulis_valobj[] = {
1956 {V_LOCK, 0, LIST, 0, LIST_ID, MR_DEADLOCK},
1957 {V_ID, 0, LIST, NAME, LIST_ID, MR_LIST},
1958 {V_RENAME, 1, LIST, NAME, LIST_ID, MR_NOT_UNIQUE},
1959 {V_TYPE, 8, ACE_TYPE, 0, 0, MR_ACE},
1960 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
1961};
1962
1963static struct validate ulis_validate = {
1964 ulis_valobj,
1965 5,
1966 NAME,
1967 "list_id = %d",
1968 1,
1969 LIST_ID,
1970 access_list,
1971 setup_alis,
1972 set_modtime_by_id,
1973};
1974
1975static char *dlis_fields[] = {
1976 NAME,
1977};
1978
1979static struct validate dlis_validate = {
1980 VOlist0,
1981 1,
1982 NAME,
1983 "list_id = %d",
1984 1,
1985 0,
1986 access_list,
1987 setup_dlis,
1988 0,
1989};
1990
1991static char *amtl_fields[] = {
1992 "list_name", "member_type", "member_name",
1993};
1994
1995static struct valobj amtl_valobj[] = {
1996 {V_LOCK, 0, LIST, 0, LIST_ID, MR_DEADLOCK},
1997 {V_ID, 0, LIST, NAME, LIST_ID, MR_LIST},
1998 {V_TYPE, 1, "member", 0, 0, MR_TYPE},
1999 {V_TYPEDATA, 2, 0, 0, 0, MR_NO_MATCH},
2000};
2001
2002static struct validate amtl_validate =
2003{
2004 amtl_valobj,
2005 4,
2006 0,
2007 0,
2008 0,
2009 0,
2010 access_list,
2011 0,
2012 add_member_to_list,
2013};
2014
2015static struct validate dmfl_validate =
2016{
2017 amtl_valobj,
2018 4,
2019 0,
2020 0,
2021 0,
2022 0,
2023 access_list,
2024 0,
2025 delete_member_from_list,
2026};
2027
2028static char *gaus_fields[] = {
2029 ACE_TYPE, ACE_NAME,
2030 "use_type", "use_name",
2031};
2032
2033static struct valobj gaus_valobj[] = {
2034 {V_TYPE, 0, "gaus", 0, 0, MR_TYPE},
2035 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
2036};
2037
2038static struct validate gaus_validate = {
2039 gaus_valobj,
2040 2,
2041 0,
2042 0,
2043 0,
2044 0,
2045 access_member,
2046 0,
2047 get_ace_use,
2048};
2049
2050static char *qgli_fields[] = {
2051 "active", "publicflg", "hidden", "maillist", "grouplist",
2052 "list",
2053};
2054
2055static struct valobj qgli_valobj[] = {
2056 {V_TYPE, 0, "boolean", 0, 0, MR_TYPE},
2057 {V_TYPE, 1, "boolean", 0, 0, MR_TYPE},
2058 {V_TYPE, 2, "boolean", 0, 0, MR_TYPE},
2059 {V_TYPE, 3, "boolean", 0, 0, MR_TYPE},
2060 {V_TYPE, 4, "boolean", 0, 0, MR_TYPE},
2061};
2062
2063static struct validate qgli_validate = {
2064 qgli_valobj,
2065 5,
2066 0,
2067 0,
2068 0,
2069 0,
2070 access_qgli,
2071 0,
2072 qualified_get_lists,
2073};
2074
2075static char *gmol_fields[] = {
2076 "list_name",
2077 "member_type", "member_name",
2078};
2079
2080static struct validate gmol_validate = {
2081 VOlist0,
2082 1,
2083 0,
2084 0,
2085 0,
2086 0,
2087 access_visible_list,
2088 0,
2089 get_members_of_list,
2090};
2091
2092static struct validate geml_validate = {
2093 VOlist0,
2094 1,
2095 0,
2096 0,
2097 0,
2098 0,
2099 access_visible_list,
2100 0,
2101 get_end_members_of_list,
2102};
2103
2104static char *glom_fields[] = {
2105 "member_type", "member_name",
2106 "list_name", "active", "publicflg", "hidden", "maillist", "grouplist",
2107};
2108
2109static struct valobj glom_valobj[] = {
2110 {V_TYPE, 0, "rmember", 0, 0, MR_TYPE},
2111 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
2112 {V_SORT, 0},
2113};
2114
2115static struct validate glom_validate = {
2116 glom_valobj,
2117 3,
2118 0,
2119 0,
2120 0,
2121 0,
2122 access_member,
2123 0,
2124 get_lists_of_member,
2125};
2126
2127static char *cmol_fields[] = {
2128 "list_name",
2129 "count",
2130};
2131
2132static struct validate cmol_validate = {
2133 VOlist0,
2134 1,
2135 0,
2136 0,
2137 0,
2138 0,
2139 access_visible_list,
2140 0,
2141 count_members_of_list,
2142};
2143
2144static char *gzcl_fields[] = {
2145 CLASS,
2146 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2147 "iws_type", "iws_name", "iui_type", "iui_name", MOD1, MOD2, MOD3,
2148};
2149
2150static struct validate gzcl_validate = {
2151 VOwild0sort,
2152 2,
2153 0,
2154 0,
2155 0,
2156 0,
2157 0,
2158 0,
2159 followup_gzcl,
2160};
2161
2162static char *azcl_fields[] = {
2163 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2164 "iws_type", "iws_name", "iui_type", "iui_name",
2165};
2166
2167static struct valobj azcl_valobj[] = {
2168 {V_CHAR, 0},
2169 {V_TYPE, 1, ACE_TYPE, 0, 0, MR_ACE},
2170 {V_TYPEDATA, 2, 0, 0, LIST_ID, MR_ACE},
2171 {V_TYPE, 3, ACE_TYPE, 0, 0, MR_ACE},
2172 {V_TYPEDATA, 4, 0, 0, LIST_ID, MR_ACE},
2173 {V_TYPE, 5, ACE_TYPE, 0, 0, MR_ACE},
2174 {V_TYPEDATA, 6, 0, 0, LIST_ID, MR_ACE},
2175 {V_TYPE, 7, ACE_TYPE, 0, 0, MR_ACE},
2176 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
2177};
2178
2179static struct validate azcl_validate = {
2180 azcl_valobj,
2181 9,
2182 CLASS,
2183 "class = LEFT('%s',SIZE(class))",
2184 1,
2185 0,
2186 0,
2187 0,
2188 set_zephyr_modtime,
2189};
2190
2191static char *uzcl_fields[] = {
2192 CLASS, "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
2193 "iws_type", "iws_name", "iui_type", "iui_name",
2194};
2195
2196static struct valobj uzcl_valobj[] = {
2197 {V_RENAME, 1, "zephyr", CLASS, 0, MR_NOT_UNIQUE},
2198 {V_TYPE, 2, ACE_TYPE, 0, 0, MR_ACE},
2199 {V_TYPEDATA, 3, 0, 0, LIST_ID, MR_ACE},
2200 {V_TYPE, 4, ACE_TYPE, 0, 0, MR_ACE},
2201 {V_TYPEDATA, 5, 0, 0, LIST_ID, MR_ACE},
2202 {V_TYPE, 6, ACE_TYPE, 0, 0, MR_ACE},
2203 {V_TYPEDATA, 7, 0, 0, LIST_ID, MR_ACE},
2204 {V_TYPE, 8, ACE_TYPE, 0, 0, MR_ACE},
2205 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
2206};
2207
2208static struct validate uzcl_validate = {
2209 uzcl_valobj,
2210 9,
2211 CLASS,
2212 "class = '%s'",
2213 1,
2214 0,
2215 0,
2216 0,
2217 set_zephyr_modtime,
2218};
2219
2220static struct validate dzcl_validate = {
2221 0,
2222 0,
2223 CLASS,
2224 "class = '%s'",
2225 1,
2226 0,
2227 0,
2228 0,
2229 0,
2230};
2231
2232static char *gsvc_fields[] = {
2233 SERVICE,
2234 SERVICE, "protocol", "port", DESC, MOD1, MOD2, MOD3,
2235};
2236
2237static char *asvc_fields[] = {
2238 SERVICE, "protocol", "port", DESC,
2239};
2240
2241static struct validate asvc_validate = {
2242 VOchar0,
2243 1,
2244 NAME,
2245 "name = LEFT('%s',SIZE(name))",
2246 1,
2247 0,
2248 0,
2249 0,
2250 set_modtime,
2251};
2252
2253static char *gpce_fields[] = {
2254 "printer",
2255 "printer", "spooling_host", "spool_directory", "rprinter",
2256 "quotaserver", "authenticate", "price", COMMENTS,
2257 MOD1, MOD2, MOD3,
2258};
2259
2260static struct validate gpce_validate = {
2261 VOwild0sort,
2262 2,
2263 0,
2264 0,
2265 0,
2266 0,
2267 0,
2268 0,
2269 followup_gpce,
2270};
2271
2272static char *apce_fields[] = {
2273 "printer", "spooling_host", "spool_directory", "rprinter",
2274 "quotaserver", "authenticate", "price", COMMENTS,
2275 MOD1, MOD2, MOD3,
2276};
2277
2278static struct valobj apce_valobj[] = {
2279 {V_CHAR, 0},
2280 {V_ID, 1, MACHINE, NAME, MACH_ID, MR_MACHINE},
2281 {V_ID, 4, MACHINE, NAME, MACH_ID, MR_MACHINE},
2282};
2283
2284static struct validate apce_validate = {
2285 apce_valobj,
2286 3,
2287 NAME,
2288 "name = LEFT('%s',SIZE(name))",
2289 1,
2290 0,
2291 0,
2292 0,
2293 set_modtime,
2294};
2295
2296static struct validate dpce_validate = {
2297 0,
2298 0,
2299 NAME,
2300 "name = '%s'",
2301 1,
2302 0,
2303 0,
2304 0,
2305 0,
2306};
2307
2308static char *gpcp_fields[] = {
2309 "printer",
2310 "printer", "spooling_host", "spool_directory", "rprinter", COMMENTS,
2311 MOD1, MOD2, MOD3,
2312};
2313
2314static char *gpdm_fields[] = {
2315 NAME,
2316 NAME, "rpcnum", "host", MOD1, MOD2, MOD3,
2317};
2318
2319static char *apdm_fields[] = {
2320 NAME, "rpcnum", "host"
2321 };
2322
2323static struct valobj apdm_valobj[] = {
2324 {V_CHAR, 0},
2325 {V_ID, 2, MACHINE, NAME, MACH_ID, MR_MACHINE},
2326};
2327
2328static struct validate apdm_validate = {
2329 apdm_valobj,
2330 2,
2331 NAME,
2332 "name = LEFT('%s',SIZE(name))",
2333 1,
2334 0,
2335 0,
2336 0,
2337 set_modtime,
2338};
2339
2340static struct validate dpdm_validate = {
2341 0,
2342 0,
2343 NAME,
2344 "name = '%s'",
2345 1,
2346 0,
2347 0,
2348 0,
2349 0,
2350};
2351
2352static char *gali_fields[] = {
2353 NAME, TYPE, "trans",
2354 NAME, TYPE, "trans",
2355};
2356
2357static char *aali_fields[] = {
2358 NAME, TYPE, "trans",
2359};
2360
2361static struct valobj aali_valobj[] = {
2362 {V_CHAR, 0},
2363 {V_TYPE, 1, ALIAS, 0, 0, MR_TYPE},
2364 {V_CHAR, 2},
2365};
2366
2367static struct validate aali_validate = {
2368 aali_valobj,
2369 3,
2370 "trans",
2371 "name = LEFT('%s',SIZE(name)) and type = '%s' and trans = LEFT('%s',SIZE(trans))",
2372 3,
2373 0,
2374 0,
2375 0,
2376 0,
2377};
2378
2379static struct validate dali_validate = /* DELETE_ALIAS */
2380{
2381 0,
2382 0,
2383 "trans",
2384 "name = '%s' and type = '%s' and trans = '%s'",
2385 3,
2386 0,
2387 0,
2388 0,
2389 0,
2390};
2391
2392static char *gval_fields[] = {
2393 NAME, "value",
2394};
2395
2396static struct valobj gval_valobj[] = {
2397 {V_NAME, 0, "numvalues", NAME, 0, MR_NO_MATCH},
2398};
2399
2400static struct validate gval_validate = {
2401 gval_valobj,
2402 1,
2403 0,
2404 0,
2405 0,
2406 0,
2407 0,
2408 0,
2409 0,
2410};
2411
2412static char *aval_fields[] = {
2413 NAME, "value",
2414};
2415
2416static struct validate aval_validate = /* for aval, uval, and dval */
2417{
2418 VOchar0,
2419 1,
2420 NAME,
2421 "name = LEFT('%s',SIZE(name))", /* LEFT() only needed for aval */
2422 1,
2423 0,
2424 0,
2425 0,
2426 0,
2427};
2428
2429static char *dval_fields[] = {
2430 NAME,
2431};
2432
2433static char *gats_fields[] = {
2434 "table_name", "appends", "updates", "deletes", MOD1, MOD2, MOD3,
2435};
2436
2437static char *_sdl_fields[] = {
2438 "level",
2439};
2440
2441static struct validate _sdl_validate =
2442{
2443 0,
2444 0,
2445 (char *)0,
2446 (char *)0,
2447 0,
2448 0,
2449 0,
2450 0,
2451 _sdl_followup,
2452};
2453
2454
2455\f
2456/* Generalized Query Definitions */
2457
2458/* Note: For any query which uses prefetch_value, the vcnt should be
2459 * one less than the number of %-format specifiers in the tlist.
2460 */
2461
2462struct query Queries2[] = {
2463 {
2464 /* Q_GALO - GET_ALL_LOGINS */
2465 "get_all_logins",
2466 "galo",
2467 RETRIEVE,
2468 "u",
2469 USERS,
2470 "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle FROM users u",
2471 galo_fields,
2472 6,
2473 "u.users_id != 0",
2474 0,
2475 &VDsort0,
2476 },
2477
2478 {
2479 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS */
2480 "get_all_active_logins",
2481 "gaal",
2482 RETRIEVE,
2483 "u",
2484 USERS,
2485 "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle FROM users u",
2486 galo_fields,
2487 6,
2488 "u.status = 1",
2489 0,
2490 &VDsort0,
2491 },
2492
2493 {
2494 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN */
2495 "get_user_account_by_login",
2496 "gual",
2497 RETRIEVE,
2498 "u",
2499 USERS,
2500 "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(str.string), CHAR(u.signature), CHAR(u.secure), CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u, strings str",
2501 gual_fields,
2502 15,
2503 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comment = str.string_id",
2504 1,
2505 &gubl_validate,
2506 },
2507
2508 {
2509 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID */
2510 "get_user_account_by_uid",
2511 "guau",
2512 RETRIEVE,
2513 "u",
2514 USERS,
2515 "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(str.string), CHAR(u.signature), CHAR(u.secure), CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u, strings str",
2516 guau_fields,
2517 15,
2518 "u.uid = %s AND u.users_id != 0 AND u.comment = str.string_id",
2519 1,
2520 &gubu_validate,
2521 },
2522
2523 {
2524 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME */
2525 "get_user_account_by_name",
2526 "guan",
2527 RETRIEVE,
2528 "u",
2529 USERS,
2530 "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(str.string), CHAR(u.signature), CHAR(u.secure), CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u, strings str",
2531 guan_fields,
2532 15,
2533 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0 and u.comment = str.string_id",
2534 2,
2535 &guan_validate,
2536 },
2537
2538 {
2539 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS */
2540 "get_user_account_by_class",
2541 "guac",
2542 RETRIEVE,
2543 "u",
2544 USERS,
2545 "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(str.string), CHAR(u.signature), CHAR(u.secure), CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u, strings str",
2546 guac_fields,
2547 15,
2548 "u.type = uppercase('%s') AND u.users_id != 0 AND u.comment = str.string_id",
2549 1,
2550 &VDsortf,
2551 },
2552
2553 {
2554 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID */
2555 "get_user_account_by_id",
2556 "guai",
2557 RETRIEVE,
2558 "u",
2559 USERS,
2560 "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(str.string), CHAR(u.signature), CHAR(u.secure), CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u, strings str",
2561 guam_fields,
2562 15,
2563 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comment = str.string_id",
2564 1,
2565 &VDwildsortf,
2566 },
2567
2568 {
2569 /* Q_GUBL - GET_USER_BY_LOGIN */
2570 "get_user_by_login",
2571 "gubl",
2572 RETRIEVE,
2573 "u",
2574 USERS,
2575 "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u",
2576 gubl_fields,
2577 12,
2578 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2579 1,
2580 &gubl_validate,
2581 },
2582
2583 {
2584 /* Q_GUBU - GET_USER_BY_UID */
2585 "get_user_by_uid",
2586 "gubu",
2587 RETRIEVE,
2588 "u",
2589 USERS,
2590 "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u",
2591 gubu_fields,
2592 12,
2593 "u.uid = %s AND u.users_id != 0",
2594 1,
2595 &gubu_validate,
2596 },
2597
2598 {
2599 /* Q_GUBN - GET_USER_BY_NAME */
2600 "get_user_by_name",
2601 "gubn",
2602 RETRIEVE,
2603 "u",
2604 USERS,
2605 "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u",
2606 gubn_fields,
2607 12,
2608 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2609 2,
2610 &gubn_validate,
2611 },
2612
2613 {
2614 /* Q_GUBC - GET_USER_BY_CLASS */
2615 "get_user_by_class",
2616 "gubc",
2617 RETRIEVE,
2618 "u",
2619 USERS,
2620 "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u",
2621 gubc_fields,
2622 12,
2623 "u.type = uppercase('%s') AND u.users_id != 0",
2624 1,
2625 &VDsortf,
2626 },
2627
2628 {
2629 /* Q_GUBM - GET_USER_BY_MITID */
2630 "get_user_by_mitid",
2631 "gubm",
2632 RETRIEVE,
2633 "u",
2634 USERS,
2635 "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u",
2636 gubm_fields,
2637 12,
2638 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2639 1,
2640 &VDwildsortf,
2641 },
2642
2643 {
2644 /* Q_AUAC - ADD_USER_ACCOUNT */ /* uses prefetch_value() for users_id */
2645 "add_user_account",
2646 "auac",
2647 APPEND,
2648 "u",
2649 USERS,
2650 "INTO users (login, uid, shell, last, first, middle, status, clearid, type, comment, signature, secure, users_id) VALUES ('%s', %s, '%s', '%s', '%s', '%s', %s, '%s', '%s', %d, '%s', %s, %s)",
2651 auac_fields,
2652 12,
2653 (char *)0,
2654 0,
2655 &auac_validate,
2656 },
2657
2658 {
2659 /* Q_AUSR - ADD_USER */ /* uses prefetch_value() for users_id */
2660 "add_user",
2661 "ausr",
2662 APPEND,
2663 "u",
2664 USERS,
2665 "INTO users (login, uid, shell, last, first, middle, status, clearid, type, comment, signature, secure, users_id) VALUES ('%s', %s, '%s', '%s', '%s', '%s', %s, '%s', '%s', 0, '', 0, %s)",
2666 auac_fields,
2667 9,
2668 0,
2669 0,
2670 &ausr_validate,
2671 },
2672
2673 {
2674 /* Q_RUSR - REGISTER_USER */
2675 "register_user",
2676 "rusr",
2677 APPEND,
2678 0,
2679 0,
2680 0,
2681 rusr_fields,
2682 3,
2683 0,
2684 0,
2685 &rusr_validate,
2686 },
2687
2688 {
2689 /* Q_UUAC - UPDATE_USER_ACCOUNT */
2690 "update_user_account",
2691 "uuac",
2692 UPDATE,
2693 "u",
2694 USERS,
2695 "users SET login = '%s', uid = %s, shell = '%s', last = '%s', first = '%s', middle = '%s', status = %s, clearid = '%s', type = '%s', comment = %d, signature = '%s', secure = %s",
2696 uuac_fields,
2697 12,
2698 "users_id = %d",
2699 1,
2700 &uuac_validate,
2701 },
2702
2703 {
2704 /* Q_UUSR - UPDATE_USER */
2705 "update_user",
2706 "uusr",
2707 UPDATE,
2708 "u",
2709 USERS,
2710 "users SET login = '%s', uid = %s, shell = '%s', last = '%s', first = '%s', middle = '%s', status = %s, clearid = '%s', type = '%s'",
2711 uuac_fields,
2712 9,
2713 "users_id = %d",
2714 1,
2715 &uusr_validate,
2716 },
2717
2718 {
2719 /* Q_UUSH - UPDATE_USER_SHELL */
2720 "update_user_shell",
2721 "uush",
2722 UPDATE,
2723 "u",
2724 USERS,
2725 "users SET shell = '%s'",
2726 uush_fields,
2727 1,
2728 "users_id = %d",
2729 1,
2730 &uush_validate,
2731 },
2732
2733 {
2734 /* Q_UUST - UPDATE_USER_STATUS */
2735 "update_user_status",
2736 "uust",
2737 UPDATE,
2738 "u",
2739 USERS,
2740 "users SET status = %s",
2741 uust_fields,
2742 1,
2743 "users_id = %d",
2744 1,
2745 &uust_validate,
2746 },
2747
2748 {
2749 /* Q_UUSS - UPDATE_USER_SECURITY_STATUS */
2750 "update_user_security_status",
2751 "uuss",
2752 UPDATE,
2753 "u",
2754 USERS,
2755 "users SET secure = %s",
2756 uuss_fields,
2757 1,
2758 "users_id = %d",
2759 1,
2760 &uust_validate,
2761 },
2762
2763 {
2764 /* Q_DUSR - DELETE_USER */
2765 "delete_user",
2766 "dusr",
2767 DELETE,
2768 "u",
2769 USERS,
2770 (char *)0,
2771 dusr_fields,
2772 0,
2773 "users_id = %d",
2774 1,
2775 &dusr_validate,
2776 },
2777
2778 {
2779 /* Q_DUBU - DELETE_USER_BY_UID */
2780 "delete_user_by_uid",
2781 "dubu",
2782 DELETE,
2783 "u",
2784 USERS,
2785 (char *)0,
2786 dubu_fields,
2787 0,
2788 "users_id = %d",
2789 1,
2790 &dubu_validate,
2791 },
2792
2793 {
2794 /* Q_GKUM - GET_KERBEROS_USER_MAP */
2795 "get_kerberos_user_map",
2796 "gkum",
2797 RETRIEVE,
2798 "k",
2799 "krbmap",
2800 "CHAR(u.login), CHAR(str.string) FROM krbmap km, users u, strings str",
2801 gkum_fields,
2802 2,
2803 "u.login LIKE '%s' ESCAPE '*' AND str.string LIKE '%s' ESCAPE '*' AND km.users_id = u.users_id AND km.string_id = str.string_id",
2804 2,
2805 &VDwild2sort2,
2806 },
2807
2808 {
2809 /* Q_AKUM - ADD_KERBEROS_USER_MAP */
2810 "add_kerberos_user_map",
2811 "akum",
2812 APPEND,
2813 "k",
2814 "krbmap",
2815 "INTO krbmap (users_id, string_id) VALUES (%d, %d)",
2816 akum_fields,
2817 2,
2818 0,
2819 0,
2820 &akum_validate,
2821 },
2822
2823 {
2824 /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
2825 "delete_kerberos_user_map",
2826 "dkum",
2827 DELETE,
2828 "k",
2829 "krbmap",
2830 0,
2831 akum_fields,
2832 0,
2833 "users_id = %d AND string_id = %d",
2834 2,
2835 &dkum_validate,
2836 },
2837
2838 {
2839 /* Q_GFBL - GET_FINGER_BY_LOGIN */
2840 "get_finger_by_login",
2841 "gfbl",
2842 RETRIEVE,
2843 "u",
2844 USERS,
2845 "CHAR(u.login), u.fullname, u.nickname, u.home_addr, u.home_phone, u.office_addr, u.office_phone, u.department, u.affiliation, CHAR(u.fmodtime), CHAR(u.fmodby), u.fmodwith FROM users u",
2846 gfbl_fields,
2847 12,
2848 "u.users_id = %d",
2849 1,
2850 &gfbl_validate,
2851 },
2852
2853 {
2854 /* Q_UFBL - UPDATE_FINGER_BY_LOGIN */
2855 "update_finger_by_login",
2856 "ufbl",
2857 UPDATE,
2858 "u",
2859 USERS,
2860 "users SET fullname= '%s',nickname= '%s',home_addr= '%s',home_phone= '%s',office_addr= '%s',office_phone= '%s',department= '%s',affiliation= '%s'",
2861 ufbl_fields,
2862 8,
2863 "users_id = %d",
2864 1,
2865 &ufbl_validate,
2866 },
2867
2868 {
2869 /* Q_GPOB - GET_POBOX */
2870 "get_pobox",
2871 "gpob",
2872 RETRIEVE,
2873 "u",
2874 USERS,
2875 "CHAR(u.login), u.potype, CHAR(u.pop_id) + ':' + CHAR(u.box_id), CHAR(u.pmodtime), CHAR(u.pmodby), u.pmodwith FROM users u",
2876 gpob_fields,
2877 6,
2878 "u.users_id = %d",
2879 1,
2880 &gpob_validate,
2881 },
2882
2883 {
2884 /* Q_GAPO - GET_ALL_POBOXES */
2885 "get_all_poboxes",
2886 "gapo",
2887 RETRIEVE,
2888 "u",
2889 USERS,
2890 "CHAR(u.login), u.potype, CHAR(u.pop_id) + ':' + CHAR(u.box_id) FROM users u",
2891 gpox_fields,
2892 3,
2893 "u.potype != 'NONE'",
2894 0,
2895 &gpox_validate,
2896 },
2897
2898 {
2899 /* Q_GPOP - GET_POBOXES_POP */
2900 "get_poboxes_pop",
2901 "gpop",
2902 RETRIEVE,
2903 "u",
2904 USERS,
2905 "CHAR(u.login), u.potype, CHAR(u.pop_id) + ':' + CHAR(u.box_id) FROM users u",
2906 gpox_fields,
2907 3,
2908 "u.potype = 'POP'",
2909 0,
2910 &gpox_validate
2911 },
2912
2913 {
2914 /* Q_GPOF - GET_POBOXES_SMTP */
2915 "get_poboxes_smtp",
2916 "gpos",
2917 RETRIEVE,
2918 "u",
2919 USERS,
2920 "CHAR(u.login), u.potype, CHAR(u.pop_id) + ':' + CHAR(u.box_id) FROM users u",
2921 gpox_fields,
2922 3,
2923 "u.potype = 'SMTP'",
2924 0,
2925 &gpox_validate
2926 },
2927
2928 {
2929 /* Q_SPOB - SET_POBOX */
2930 "set_pobox",
2931 "spob",
2932 UPDATE,
2933 0,
2934 USERS,
2935 0,
2936 spob_fields,
2937 3,
2938 (char *)0,
2939 0,
2940 &spob_validate,
2941 },
2942
2943 {
2944 /* Q_SPOP - SET_POBOX_POP */
2945 "set_pobox_pop",
2946 "spop",
2947 UPDATE,
2948 "u",
2949 USERS,
2950 "users SET potype = 'POP'",
2951 spob_fields,
2952 0,
2953 "users_id = %d",
2954 1,
2955 &spop_validate,
2956 },
2957
2958 {
2959 /* Q_DPOB - DELETE_POBOX */
2960 "delete_pobox",
2961 "dpob",
2962 UPDATE,
2963 "u",
2964 USERS,
2965 "users SET potype = 'NONE'",
2966 spob_fields,
2967 0,
2968 "users_id = %d",
2969 1,
2970 &dpob_validate,
2971 },
2972
2973 {
2974 /* Q_GMAC - GET_MACHINE */
2975 "get_machine",
2976 "gmac",
2977 RETRIEVE,
2978 "m",
2979 MACHINE,
2980 "CHAR(m.name), m.vendor, CHAR(m.modtime), CHAR(m.modby), m.modwith FROM machine m",
2981 gmac_fields,
2982 5,
2983 "m.name LIKE '%s' ESCAPE '*' AND m.mach_id != 0",
2984 1,
2985 &VDupwildsortf,
2986 },
2987
2988 {
2989 /* Q_GHST - GET_HOST */
2990 "get_host",
2991 "ghst",
2992 RETRIEVE,
2993 "m",
2994 MACHINE,
2995 "CHAR(m.name), m.vendor, m.model, m.os, m.location, m.contact, CHAR(m.use), CHAR(m.status), CHAR(m.statuschange), CHAR(s.name), m.address, m.owner_type, CHAR(m.owner_id), CHAR(m.acomment), CHAR(m.ocomment), CHAR(m.created), CHAR(m.creator), CHAR(m.inuse), CHAR(m.modtime), CHAR(m.modby), m.modwith FROM machine m, subnet s",
2996 ghst_fields,
2997 21,
2998 "m.name LIKE '%s' ESCAPE '*' AND m.address LIKE '%s' ESCAPE '*' AND m.location LIKE '%s' ESCAPE '*' AND s.name LIKE '%s' ESCAPE '*' AND m.mach_id != 0 AND s.snet_id = m.snet_id",
2999 4,
3000 &ghst_validate,
3001 },
3002
3003 {
3004 /* Q_AHST - ADD_HOST */ /* uses prefetch_value() for mach_id */
3005 "add_host",
3006 "ahst",
3007 APPEND,
3008 "m",
3009 MACHINE,
3010 "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 (uppercase('%s'),uppercase('%s'),uppercase('%s'),uppercase('%s'),uppercase('%s'),'%s',%s,%s,date('now'),%d,'%s','%s',%d,%d,%d,date('now'),date('now'),%s,%s)",
3011 ahst_fields,
3012 14,
3013 0,
3014 0,
3015 &ahst_validate,
3016 },
3017
3018 {
3019 /* Q_UHST - UPDATE_HOST */
3020 "update_host",
3021 "uhst",
3022 UPDATE,
3023 "m",
3024 MACHINE,
3025 "machine SET name=uppercase('%s'),vendor=uppercase('%s'),model=uppercase('%s'),os=uppercase('%s'),location=uppercase('%s'),contact='%s',use=%s,status=%s,snet_id=%d,address='%s',owner_type='%s',owner_id=%d,acomment=%d,ocomment=%d",
3026 uhst_fields,
3027 14,
3028 "mach_id = %d",
3029 1,
3030 &uhst_validate,
3031 },
3032
3033 {
3034 /* Q_DHST - DELETE_HOST */
3035 "delete_host",
3036 "dhst",
3037 DELETE,
3038 "m",
3039 MACHINE,
3040 (char *)0,
3041 dhst_fields,
3042 0,
3043 "mach_id = %d",
3044 1,
3045 &dhst_validate,
3046 },
3047
3048 {
3049 /* Q_GHAL - GET_HOSTALIAS */
3050 "get_hostalias",
3051 "ghal",
3052 RETRIEVE,
3053 0,
3054 "hostalias",
3055 "CHAR(a.name), CHAR(m.name) FROM hostalias a, machine m",
3056 ghal_fields,
3057 2,
3058 "m.mach_id = a.mach_id and a.name LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*'",
3059 2,
3060 &ghal_validate,
3061 },
3062
3063 {
3064 /* Q_AHAL - ADD_HOSTALIAS */
3065 "add_hostalias",
3066 "ahal",
3067 APPEND,
3068 "a",
3069 "hostalias",
3070 "INTO hostalias (name, mach_id) VALUES (uppercase('%s'),%d)",
3071 ghal_fields,
3072 2,
3073 0,
3074 0,
3075 &ahal_validate,
3076 },
3077
3078 {
3079 /* Q_DHAL - DELETE_HOSTALIAS */
3080 "delete_hostalias",
3081 "dhal",
3082 DELETE,
3083 "a",
3084 "hostalias",
3085 (char *)0,
3086 ghal_fields,
3087 0,
3088 "name = uppercase('%s') AND mach_id = %d",
3089 2,
3090 &dhal_validate,
3091 },
3092
3093 {
3094 /* Q_GSNT - GET_SUBNET */
3095 "get_subnet",
3096 "gsnt",
3097 RETRIEVE,
3098 "s",
3099 SUBNET,
3100 "CHAR(s.name), CHAR(s.description), CHAR(s.saddr), CHAR(s.mask), CHAR(s.low), CHAR(s.high), s.prefix, s.owner_type, CHAR(s.owner_id), CHAR(s.modtime), CHAR(s.modby), s.modwith FROM subnet s",
3101 gsnt_fields,
3102 12,
3103 "s.name LIKE '%s' ESCAPE '*' and s.snet_id != 0",
3104 1,
3105 &gsnt_validate,
3106 },
3107
3108 {
3109 /* Q_ASNT - ADD_SUBNET */
3110 "add_subnet",
3111 "asnt",
3112 APPEND,
3113 "s",
3114 SUBNET,
3115 "INTO subnet (name, description, saddr, mask, low, high, prefix, owner_type, owner_id, snet_id) VALUES (uppercase('%s'), '%s', %s, %s, %s, %s, '%s', '%s', %d, %s)",
3116 asnt_fields,
3117 9,
3118 0,
3119 0,
3120 &asnt_validate,
3121 },
3122
3123 {
3124 /* Q_USNT - UPDATE_SUBNET */
3125 "update_subnet",
3126 "usnt",
3127 UPDATE,
3128 "s",
3129 SUBNET,
3130 "subnet SET name=uppercase('%s'), description='%s', saddr=%s, mask=%s, low=%s, high=%s, prefix='%s', owner_type='%s', owner_id=%d",
3131 usnt_fields,
3132 9,
3133 "snet_id = %d",
3134 1,
3135 &usnt_validate,
3136 },
3137
3138 {
3139 /* Q_DSNT - DELETE_SUBNET */
3140 "delete_subnet",
3141 "dsnt",
3142 DELETE,
3143 "s",
3144 SUBNET,
3145 (char *)0,
3146 dsnt_fields,
3147 0,
3148 "snet_id = %d",
3149 1,
3150 &dsnt_validate,
3151 },
3152
3153 {
3154 /* Q_GCLU - GET_CLUSTER */
3155 "get_cluster",
3156 "gclu",
3157 RETRIEVE,
3158 "c",
3159 CLUSTER,
3160 "CHAR(c.name), c.description, c.location, CHAR(c.modtime), CHAR(c.modby), c.modwith FROM cluster c",
3161 gclu_fields,
3162 6,
3163 "c.name LIKE '%s' ESCAPE '*' AND c.clu_id != 0",
3164 1,
3165 &VDwildsortf,
3166 },
3167
3168 {
3169 /* Q_ACLU - ADD_CLUSTER */ /* uses prefetch_value() for clu_id */
3170 "add_cluster",
3171 "aclu",
3172 APPEND,
3173 "c",
3174 CLUSTER,
3175 "INTO cluster (name, description, location, clu_id) VALUES ('%s','%s','%s',%s)",
3176 aclu_fields,
3177 3,
3178 0,
3179 0,
3180 &aclu_validate,
3181 },
3182
3183 {
3184 /* Q_UCLU - UPDATE_CLUSTER */
3185 "update_cluster",
3186 "uclu",
3187 UPDATE,
3188 "c",
3189 CLUSTER,
3190 "cluster SET name = '%s', description = '%s', location = '%s'",
3191 uclu_fields,
3192 3,
3193 "clu_id = %d",
3194 1,
3195 &uclu_validate,
3196 },
3197
3198 {
3199 /* Q_DCLU - DELETE_CLUSTER */
3200 "delete_cluster",
3201 "dclu",
3202 DELETE,
3203 "c",
3204 CLUSTER,
3205 (char *)0,
3206 dclu_fields,
3207 0,
3208 "clu_id = %d",
3209 1,
3210 &dclu_validate,
3211 },
3212
3213 {
3214 /* Q_GMCM - GET_MACHINE_TO_CLUSTER_MAP */
3215 "get_machine_to_cluster_map",
3216 "gmcm",
3217 RETRIEVE,
3218 "mcm",
3219 "mcmap",
3220 "CHAR(m.name), CHAR(c.name) FROM machine m, cluster c, mcmap mcm",
3221 gmcm_fields,
3222 2,
3223 "m.name LIKE '%s' ESCAPE '*' AND c.name LIKE '%s' ESCAPE '*' AND mcm.clu_id = c.clu_id AND mcm.mach_id = m.mach_id",
3224 2,
3225 &gmcm_validate,
3226 },
3227
3228 {
3229 /* Q_AMTC - ADD_MACHINE_TO_CLUSTER */
3230 "add_machine_to_cluster",
3231 "amtc",
3232 APPEND,
3233 "mcm",
3234 "mcmap",
3235 "INTO mcmap (mach_id, clu_id) VALUES (%d, %d)",
3236 gmcm_fields,
3237 2,
3238 0,
3239 0,
3240 &amtc_validate,
3241 },
3242
3243 {
3244 /* Q_DMFC - DELETE_MACHINE_FROM_CLUSTER */
3245 "delete_machine_from_cluster",
3246 "dmfc",
3247 DELETE,
3248 "mcm",
3249 "mcmap",
3250 0,
3251 gmcm_fields,
3252 0,
3253 "mach_id = %d AND clu_id = %d",
3254 2,
3255 &amtc_validate,
3256 },
3257
3258 {
3259 /* Q_GCLD - GET_CLUSTER_DATA */
3260 "get_cluster_data",
3261 "gcld",
3262 RETRIEVE,
3263 "svc",
3264 "svc",
3265 "CHAR(c.name), CHAR(svc.serv_label), svc.serv_cluster FROM svc svc, cluster c",
3266 gcld_fields,
3267 3,
3268 "c.clu_id = svc.clu_id AND c.name LIKE '%s' ESCAPE '*' AND svc.serv_label LIKE '%s' ESCAPE '*'",
3269 2,
3270 &VDwild2sort2,
3271 },
3272
3273 {
3274 /* Q_ACLD - ADD_CLUSTER_DATA */
3275 "add_cluster_data",
3276 "acld",
3277 APPEND,
3278 "svc",
3279 "svc",
3280 "INTO svc (clu_id, serv_label, serv_cluster) VALUES (%d,'%s','%s')",
3281 acld_fields,
3282 3,
3283 (char *)0,
3284 0,
3285 &acld_validate,
3286 },
3287
3288 {
3289 /* Q_DCLD - DELETE_CLUSTER_DATA */
3290 "delete_cluster_data",
3291 "dcld",
3292 DELETE,
3293 "svc",
3294 "svc",
3295 (char *)0,
3296 acld_fields,
3297 0,
3298 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
3299 3,
3300 &dcld_validate,
3301 },
3302
3303 {
3304 /* Q_GSIN - GET_SERVER_INFO */
3305 "get_server_info",
3306 "gsin",
3307 RETRIEVE,
3308 "s",
3309 "servers",
3310 "CHAR(s.name), CHAR(s.update_int), s.target_file, s.script, CHAR(s.dfgen), CHAR(s.dfcheck), s.type, CHAR(s.enable), CHAR(s.inprogress), CHAR(s.harderror), s.errmsg, s.acl_type, CHAR(s.acl_id), CHAR(s.modtime), CHAR(s.modby), s.modwith FROM servers s",
3311 gsin_fields,
3312 16,
3313 "s.name LIKE '%s' ESCAPE '*'",
3314 1,
3315 &gsin_validate,
3316 },
3317
3318 {
3319 /* Q_QGSV - QUALIFIED_GET_SERVER */
3320 "qualified_get_server",
3321 "qgsv",
3322 RETRIEVE,
3323 0,
3324 "servers",
3325 0,
3326 qgsv_fields,
3327 1,
3328 0,
3329 3,
3330 &qgsv_validate,
3331 },
3332
3333 {
3334 /* Q_ASIN - ADD_SERVER_INFO */
3335 "add_server_info",
3336 "asin",
3337 APPEND,
3338 "s",
3339 "servers",
3340 "INTO servers (name, update_int, target_file, script, type, enable, acl_type, acl_id) VALUES (uppercase('%s'),%s,'%s','%s','%s',%s,'%s',%d)",
3341 asin_fields,
3342 8,
3343 (char *)0,
3344 0,
3345 &asin_validate,
3346 },
3347
3348 {
3349 /* Q_USIN - UPDATE_SERVER_INFO */
3350 "update_server_info",
3351 "usin",
3352 UPDATE,
3353 "s",
3354 "servers",
3355 "servers SET update_int = %s, target_file = '%s', script = '%s', type = '%s', enable = %s, acl_type = '%s', acl_id = %d",
3356 asin_fields,
3357 7,
3358 "name = uppercase('%s')",
3359 1,
3360 &asin_validate,
3361 },
3362
3363 {
3364 /* Q_RSVE - RESET_SERVER_ERROR */
3365 "reset_server_error",
3366 "rsve",
3367 UPDATE,
3368 "s",
3369 "servers",
3370 "servers SET harderror = 0, dfcheck = dfgen",
3371 dsin_fields,
3372 0,
3373 "name = uppercase('%s')",
3374 1,
3375 &rsve_validate,
3376 },
3377
3378 {
3379 /* Q_SSIF - SET_SERVER_INTERNAL_FLAGS */
3380 "set_server_internal_flags",
3381 "ssif",
3382 UPDATE,
3383 "s",
3384 "servers",
3385 "servers SET dfgen = %s, dfcheck = %s, inprogress = %s, harderror = %s, errmsg = '%s'",
3386 ssif_fields,
3387 5,
3388 "name = uppercase('%s')",
3389 1,
3390 &ssif_validate,
3391 },
3392
3393 {
3394 /* Q_DSIN - DELETE_SERVER_INFO */
3395 "delete_server_info",
3396 "dsin",
3397 DELETE,
3398 "s",
3399 "servers",
3400 (char *)0,
3401 dsin_fields,
3402 0,
3403 "name = uppercase('%s')",
3404 1,
3405 &dsin_validate,
3406 },
3407
3408 {
3409 /* Q_GSHI - GET_SERVER_HOST_INFO */
3410 "get_server_host_info",
3411 "gshi",
3412 RETRIEVE,
3413 "sh",
3414 "serverhosts",
3415 "CHAR(sh.service), CHAR(m.name), CHAR(sh.enable), CHAR(sh.override), CHAR(sh.success), CHAR(sh.inprogress), CHAR(sh.hosterror), sh.hosterrmsg, CHAR(sh.ltt), CHAR(sh.lts), CHAR(sh.value1), CHAR(sh.value2), sh.value3, CHAR(sh.modtime), CHAR(sh.modby), sh.modwith FROM serverhosts sh, machine m",
3416 gshi_fields,
3417 16,
3418 "sh.service LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*' AND m.mach_id = sh.mach_id",
3419 2,
3420 &gshi_validate,
3421 },
3422
3423 {
3424 /* Q_QGSH - QUALIFIED_GET_SERVER_HOST */
3425 "qualified_get_server_host",
3426 "qgsh",
3427 RETRIEVE,
3428 0,
3429 "serverhosts",
3430 0,
3431 qgsh_fields,
3432 2,
3433 0,
3434 6,
3435 &qgsh_validate,
3436 },
3437
3438 {
3439 /* Q_ASHI - ADD_SERVER_HOST_INFO */
3440 "add_server_host_info",
3441 "ashi",
3442 APPEND,
3443 "sh",
3444 "serverhosts",
3445 "INTO serverhosts (service, mach_id, enable, value1, value2, value3) VALUES (uppercase('%s'), %d, %s, %s, %s, '%s')",
3446 ashi_fields,
3447 6,
3448 (char *)0,
3449 0,
3450 &ashi_validate,
3451 },
3452
3453 {
3454 /* Q_USHI - UPDATE_SERVER_HOST_INFO */
3455 "update_server_host_info",
3456 "ushi",
3457 UPDATE,
3458 "sh",
3459 "serverhosts",
3460 "serverhosts SET enable = %s, value1 = %s, value2 = %s, value3 = '%s'",
3461 ashi_fields,
3462 4,
3463 "service = uppercase('%s') AND mach_id = %d",
3464 2,
3465 &ashi_validate,
3466 },
3467
3468 {
3469 /* Q_RSHE - RESET_SERVER_HOST_ERROR */
3470 "reset_server_host_error",
3471 "rshe",
3472 UPDATE,
3473 "sh",
3474 "serverhosts",
3475 "serverhosts SET hosterror = 0",
3476 dshi_fields,
3477 0,
3478 "service = uppercase('%s') AND mach_id = %d",
3479 2,
3480 &rshe_validate,
3481 },
3482
3483 {
3484 /* Q_SSHO - SET_SERVER_HOST_OVERRIDE */
3485 "set_server_host_override",
3486 "ssho",
3487 UPDATE,
3488 "sh",
3489 "serverhosts",
3490 "serverhosts SET override = 1",
3491 dshi_fields,
3492 0,
3493 "service = uppercase('%s') AND mach_id = %d",
3494 2,
3495 &ssho_validate,
3496 },
3497
3498 {
3499 /* Q_SSHI - SET_SERVER_HOST_INTERNAL */
3500 "set_server_host_internal",
3501 "sshi",
3502 UPDATE,
3503 "s",
3504 "serverhosts",
3505 "serverhosts SET override = %s, success = %s, inprogress = %s, hosterror = %s, hosterrmsg = '%s', ltt = %s, lts = %s",
3506 sshi_fields,
3507 7,
3508 "service = uppercase('%s') AND mach_id = %d",
3509 2,
3510 &sshi_validate,
3511 },
3512
3513 {
3514 /* Q_DSHI - DELETE_SERVER_HOST_INFO */
3515 "delete_server_host_info",
3516 "dshi",
3517 DELETE,
3518 "sh",
3519 "serverhosts",
3520 (char *)0,
3521 dshi_fields,
3522 0,
3523 "service = uppercase('%s') AND mach_id = %d",
3524 2,
3525 &dshi_validate,
3526 },
3527
3528 {
3529 /* Q_GSHA - GET_SERVER_HOST_ACCESS */
3530 "get_server_host_access",
3531 "gsha",
3532 RETRIEVE,
3533 "ha",
3534 "hostaccess",
3535 "CHAR(m.name), ha.acl_type, CHAR(ha.acl_id), CHAR(ha.modtime), CHAR(ha.modby), ha.modwith FROM hostaccess ha, machine m",
3536 gsha_fields,
3537 6,
3538 "m.name LIKE '%s' ESCAPE '*' AND ha.mach_id = m.mach_id",
3539 1,
3540 &gsha_validate,
3541 },
3542
3543 {
3544 /* Q_ASHA - ADD_SERVER_HOST_ACCESS */
3545 "add_server_host_access",
3546 "asha",
3547 APPEND,
3548 "ha",
3549 "hostaccess",
3550 "INTO hostaccess (mach_id, acl_type, acl_id) VALUES (%d,'%s',%d)",
3551 asha_fields,
3552 3,
3553 0,
3554 0,
3555 &asha_validate,
3556 },
3557
3558 {
3559 /* Q_USHA - UPDATE_SERVER_HOST_ACCESS */
3560 "update_server_host_access",
3561 "usha",
3562 UPDATE,
3563 "ha",
3564 "hostaccess",
3565 "hostaccess SET acl_type = '%s', acl_id = %d",
3566 asha_fields,
3567 2,
3568 "mach_id = %d",
3569 1,
3570 &asha_validate,
3571 },
3572
3573 {
3574 /* Q_DSHA - DELETE_SERVER_HOST_ACCESS */
3575 "delete_server_host_access",
3576 "dsha",
3577 DELETE,
3578 "ha",
3579 "hostaccess",
3580 0,
3581 asha_fields,
3582 0,
3583 "mach_id = %d",
3584 1,
3585 &VDmach,
3586 },
3587
3588 {
3589 /* Q_GSLO - GET_SERVER_LOCATIONS */
3590 "get_server_locations",
3591 "gslo",
3592 RETRIEVE,
3593 "sh",
3594 "serverhosts",
3595 "CHAR(sh.service), CHAR(m.name) FROM serverhosts sh, machine m",
3596 gslo_fields,
3597 2,
3598 "sh.service LIKE '%s' ESCAPE '*' AND sh.mach_id = m.mach_id",
3599 1,
3600 &VDupwild0,
3601 },
3602
3603 {
3604 /* Q_GFSL - GET_FILESYS_BY_LABEL */
3605 "get_filesys_by_label",
3606 "gfsl",
3607 RETRIEVE,
3608 "fs",
3609 FILESYS,
3610 "CHAR(fs.label), fs.type, CHAR(m.name), CHAR(fs.name), fs.mount, fs.access, fs.comments, CHAR(u.login), CHAR(l.name), CHAR(fs.createflg), fs.lockertype, CHAR(fs.modtime), CHAR(fs.modby), fs.modwith FROM filesys fs, machine m, users u, list l",
3611 gfsl_fields,
3612 14,
3613 "fs.label LIKE '%s' ESCAPE '*' AND fs.mach_id = m.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
3614 1,
3615 &VDwildsortf,
3616 },
3617
3618 {
3619 /* Q_GFSM - GET_FILESYS_BY_MACHINE */
3620 "get_filesys_by_machine",
3621 "gfsm",
3622 RETRIEVE,
3623 "fs",
3624 FILESYS,
3625 "CHAR(fs.label), fs.type, CHAR(m.name), CHAR(fs.name), fs.mount, fs.access, fs.comments, CHAR(u.login), CHAR(l.name), CHAR(fs.createflg), fs.lockertype, CHAR(fs.modtime), CHAR(fs.modby), fs.modwith FROM filesys fs, machine m, users u, list l",
3626 gfsm_fields,
3627 14,
3628 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
3629 1,
3630 &gfsm_validate,
3631 },
3632
3633 {
3634 /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
3635 "get_filesys_by_nfsphys",
3636 "gfsn",
3637 RETRIEVE,
3638 "fs",
3639 FILESYS,
3640 "CHAR(fs.label), fs.type, CHAR(m.name), CHAR(fs.name), fs.mount, fs.access, fs.comments, CHAR(u.login), CHAR(l.name), CHAR(fs.createflg), fs.lockertype, CHAR(fs.modtime), CHAR(fs.modby), fs.modwith FROM filesys fs, machine m, users u, list l, nfsphys np",
3641 gfsn_fields,
3642 14,
3643 "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' ESCAPE '*' AND fs.type = 'NFS'",
3644 2,
3645 &gfsn_validate,
3646 },
3647
3648 {
3649 /* Q_GFSG - GET_FILESYS_BY_GROUP */
3650 "get_filesys_by_group",
3651 "gfsg",
3652 RETRIEVE,
3653 "fs",
3654 FILESYS,
3655 "CHAR(fs.label), fs.type, CHAR(m.name), CHAR(fs.name), fs.mount, fs.access, fs.comments, CHAR(u.login), CHAR(l.name), CHAR(fs.createflg), fs.lockertype, CHAR(fs.modtime), CHAR(fs.modby), fs.modwith FROM filesys fs, machine m, users u, list l",
3656 gfsg_fields,
3657 14,
3658 "fs.owners = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
3659 1,
3660 &gfsg_validate,
3661 },
3662
3663 {
3664 /* Q_GFSP - GET_FILESYS_BY_PATH */
3665 "get_filesys_by_path",
3666 "gfsp",
3667 RETRIEVE,
3668 "fs",
3669 FILESYS,
3670 "CHAR(fs.label), fs.type, CHAR(m.name), CHAR(fs.name), fs.mount, fs.access, fs.comments, CHAR(u.login), CHAR(l.name), CHAR(fs.createflg), fs.lockertype, CHAR(fs.modtime), CHAR(fs.modby), fs.modwith FROM filesys fs, machine m, users u, list l",
3671 gfsp_fields,
3672 14,
3673 "fs.name LIKE '%s' ESCAPE '*' AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = list_id",
3674 1,
3675 &VDwildsortf,
3676 },
3677
3678 {
3679 /* Q_AFIL - ADD_FILESYS */ /* uses prefetch_value() for filsys_id */
3680 "add_filesys",
3681 "afil",
3682 APPEND,
3683 "fs",
3684 FILESYS,
3685 "INTO filesys (label, type, mach_id, name, mount, access, comments, owner, owners, createflg, lockertype, filsys_id) VALUES ('%s','%s',%d,'%s','%s','%s','%s',%d,%d,%s,'%s',%s)",
3686 afil_fields,
3687 11,
3688 0,
3689 0,
3690 &afil_validate,
3691 },
3692
3693 {
3694 /* Q_UFIL - UPDATE_FILESYS */
3695 "update_filesys",
3696 "ufil",
3697 UPDATE,
3698 "fs",
3699 FILESYS,
3700 "filesys SET label = '%s', type = '%s', mach_id = %d, name = '%s', mount = '%s', access = '%s', comments = '%s', owner = %d, owners = %d, createflg = %s, lockertype = '%s'",
3701 ufil_fields,
3702 11,
3703 "filsys_id = %d",
3704 1,
3705 &ufil_validate,
3706 },
3707
3708 {
3709 /* Q_DFIL - DELETE_FILESYS */
3710 "delete_filesys",
3711 "dfil",
3712 DELETE,
3713 "fs",
3714 FILESYS,
3715 (char *)0,
3716 dfil_fields,
3717 0,
3718 "filsys_id = %d",
3719 1,
3720 &dfil_validate,
3721 },
3722
3723 {
3724 /* Q_GFGM - GET_FSGROUP_MEMBERS */
3725 "get_fsgroup_members",
3726 "gfgm",
3727 RETRIEVE,
3728 "fg",
3729 "fsgroup",
3730 "CHAR(fs.label), fg.key FROM fsgroup fg, filesys fs",
3731 gfgm_fields,
3732 2,
3733 "fg.group_id = %d AND fs.filsys_id = fg.filsys_id",
3734 1,
3735 &gfgm_validate,
3736 },
3737
3738 {
3739 /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
3740 "add_filesys_to_fsgroup",
3741 "aftg",
3742 APPEND,
3743 "fg",
3744 "fsgroup",
3745 "INTO fsgroup (group_id,filsys_id,key) VALUES (%d, %d, '%s')",
3746 gfgm_fields,
3747 3,
3748 (char *)0,
3749 0,
3750 &aftg_validate,
3751 },
3752
3753 {
3754 /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
3755 "remove_filesys_from_fsgroup",
3756 "rffg",
3757 DELETE,
3758 "fg",
3759 "fsgroup",
3760 (char *)0,
3761 gfgm_fields,
3762 0,
3763 "group_id = %d AND filsys_id = %d",
3764 2,
3765 &aftg_validate,
3766 },
3767
3768 {
3769 /* Q_GANF - GET_ALL_NFSPHYS */
3770 "get_all_nfsphys",
3771 "ganf",
3772 RETRIEVE,
3773 "np",
3774 "nfsphys",
3775 "CHAR(m.name), CHAR(np.dir), np.device, CHAR(np.status), CHAR(np.allocated), CHAR(np.partsize), CHAR(np.modtime), CHAR(np.modby), np.modwith FROM nfsphys np, machine m",
3776 ganf_fields,
3777 9,
3778 "m.mach_id = np.mach_id",
3779 0,
3780 &VDsortf,
3781 },
3782
3783 {
3784 /* Q_GNFP - GET_NFSPHYS */
3785 "get_nfsphys",
3786 "gnfp",
3787 RETRIEVE,
3788 "np",
3789 "nfsphys",
3790 "CHAR(m.name), CHAR(np.dir), np.device, CHAR(np.status), CHAR(np.allocated), CHAR(np.partsize), CHAR(np.modtime), CHAR(np.modby), np.modwith FROM nfsphys np, machine m",
3791 gnfp_fields,
3792 9,
3793 "np.mach_id = %d AND np.dir LIKE '%s' ESCAPE '*' AND m.mach_id = np.mach_id",
3794 2,
3795 &gnfp_validate,
3796 },
3797
3798 {
3799 /* Q_ANFP - ADD_NFSPHYS */ /* uses prefetch_value() for nfsphys_id */
3800 "add_nfsphys",
3801 "anfp",
3802 APPEND,
3803 "np",
3804 "nfsphys",
3805 "INTO nfsphys (mach_id, dir, device, status, allocated, partsize, nfsphys_id) VALUES (%d, '%s', '%s', %s, %s, %s, %s)",
3806 ganf_fields,
3807 6,
3808 0,
3809 0,
3810 &anfp_validate,
3811 },
3812
3813 {
3814 /* Q_UNFP - UPDATE_NFSPHYS */
3815 "update_nfsphys",
3816 "unfp",
3817 UPDATE,
3818 "np",
3819 "nfsphys",
3820 "nfsphys SET device = '%s', status = %s, allocated = %s, partsize = %s",
3821 ganf_fields,
3822 4,
3823 "mach_id = %d AND dir = '%s'",
3824 2,
3825 &unfp_validate,
3826 },
3827
3828 {
3829 /* Q_AJNF - ADJUST_NFSPHYS_ALLOCATION */
3830 "adjust_nfsphys_allocation",
3831 "ajnf",
3832 UPDATE,
3833 "np",
3834 "nfsphys",
3835 "nfsphys SET allocated = allocated + %s",
3836 ajnf_fields,
3837 1,
3838 "mach_id = %d AND dir = '%s'",
3839 2,
3840 &unfp_validate,
3841 },
3842
3843 {
3844 /* Q_DNFP - DELETE_NFSPHYS */
3845 "delete_nfsphys",
3846 "dnfp",
3847 DELETE,
3848 "np",
3849 "nfsphys",
3850 (char *)0,
3851 dnfp_fields,
3852 0,
3853 "mach_id = %d AND dir = '%s'",
3854 2,
3855 &dnfp_validate,
3856 },
3857
3858 {
3859 /* Q_GQOT - GET_QUOTA */
3860 "get_quota",
3861 "gqot",
3862 RETRIEVE,
3863 "q",
3864 QUOTA,
3865 "CHAR(fs.label), q.type, CHAR(q.entity_id), CHAR(q.quota), CHAR(q.phys_id), CHAR(m.name), CHAR(q.modtime), CHAR(q.modby), q.modwith FROM quota q, filesys fs, machine m",
3866 gqot_fields,
3867 9,
3868 "fs.label LIKE '%s' ESCAPE '*' AND q.type = '%s' AND q.entity_id = %d AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
3869 3,
3870 &gqot_validate,
3871 },
3872
3873 {
3874 /* Q_GQBF - GET_QUOTA_BY_FILESYS */
3875 "get_quota_by_filesys",
3876 "gqbf",
3877 RETRIEVE,
3878 "q",
3879 QUOTA,
3880 "CHAR(fs.label), q.type, CHAR(q.entity_id), CHAR(q.quota), CHAR(q.phys_id), CHAR(m.name), CHAR(q.modtime), CHAR(q.modby), q.modwith FROM quota q, filesys fs, machine m",
3881 gqbf_fields,
3882 9,
3883 "fs.label LIKE '%s' ESCAPE '*' AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
3884 1,
3885 &gqbf_validate,
3886 },
3887
3888 {
3889 /* Q_AQOT - ADD_QUOTA */ /* prefetch_filsys() gets last 1 value */
3890 "add_quota",
3891 "aqot",
3892 APPEND,
3893 0,
3894 QUOTA,
3895 "INTO quota (filsys_id, type, entity_id, quota, phys_id) VALUES ('%s', %d, %d, %s, %s)",
3896 aqot_fields,
3897 4,
3898 (char *)0,
3899 0,
3900 &aqot_validate,
3901 },
3902
3903 {
3904 /* Q_UQOT - UPDATE_QUOTA */
3905 "update_quota",
3906 "uqot",
3907 UPDATE,
3908 0,
3909 QUOTA,
3910 "quota SET quota = %s",
3911 aqot_fields,
3912 1,
3913 0,
3914 3,
3915 &uqot_validate,
3916 },
3917
3918 {
3919 /* Q_DQOT - DELETE_QUOTA */
3920 "delete_quota",
3921 "dqot",
3922 DELETE,
3923 0,
3924 QUOTA,
3925 (char *)0,
3926 aqot_fields,
3927 0,
3928 0,
3929 3,
3930 &dqot_validate,
3931 },
3932
3933 {
3934 /* Q_GNFQ - GET_NFS_QUOTAS */
3935 "get_nfs_quota",
3936 "gnfq",
3937 RETRIEVE,
3938 "q",
3939 QUOTA,
3940 "CHAR(fs.label), CHAR(u.login), CHAR(q.quota), CHAR(q.phys_id), CHAR(m.name), CHAR(q.modtime), CHAR(q.modby), q.modwith FROM quota q, filesys fs, users u, machine m",
3941 gnfq_fields,
3942 8,
3943 "fs.label LIKE '%s' ESCAPE '*' 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'",
3944 2,
3945 &gnfq_validate,
3946 },
3947
3948 {
3949 /* Q_GNQP - GET_NFS_QUOTAS_BY_PARTITION */
3950 "get_nfs_quotas_by_partition",
3951 "gnqp",
3952 RETRIEVE,
3953 "q",
3954 QUOTA,
3955 "CHAR(fs.label), CHAR(u.login), CHAR(q.quota), CHAR(np.dir), CHAR(m.name) FROM quota q, filesys fs, users u, nfsphys np, machine m",
3956 gnqp_fields,
3957 5,
3958 "np.mach_id = %d AND np.dir LIKE '%s' ESCAPE '*' 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",
3959 2,
3960 &gnqp_validate,
3961 },
3962
3963 {
3964 /* Q_ANFQ - ADD_NFS_QUOTA */ /* prefetch_filsys() gets last 1 value */
3965 "add_nfs_quota",
3966 "anfq",
3967 APPEND,
3968 0,
3969 QUOTA,
3970 "INTO quota (type, filsys_id, entity_id, quota, phys_id ) VALUES ('USER', %d, %d, %s, %s)",
3971 anfq_fields,
3972 3,
3973 (char *)0,
3974 0,
3975 &anfq_validate,
3976 },
3977
3978 {
3979 /* Q_UNFQ - UPDATE_NFS_QUOTA */
3980 "update_nfs_quota",
3981 "unfq",
3982 UPDATE,
3983 0,
3984 QUOTA,
3985 "quota SET quota = %s",
3986 anfq_fields,
3987 1,
3988 0,
3989 2,
3990 &unfq_validate,
3991 },
3992
3993 {
3994 /* Q_DNFQ - DELETE_NFS_QUOTA */
3995 "delete_nfs_quota",
3996 "dnfq",
3997 DELETE,
3998 0,
3999 QUOTA,
4000 (char *)0,
4001 anfq_fields,
4002 0,
4003 0,
4004 2,
4005 &dnfq_validate,
4006 },
4007
4008 {
4009 /* Q_GLIN - GET_LIST_INFO */
4010 "get_list_info",
4011 "glin",
4012 RETRIEVE,
4013 0,
4014 LIST,
4015 0,
4016 glin_fields,
4017 13,
4018 0,
4019 1,
4020 &glin_validate,
4021 },
4022
4023 {
4024 /* Q_EXLN - EXPAND_LIST_NAMES */
4025 "expand_list_names",
4026 "exln",
4027 RETRIEVE,
4028 "l",
4029 LIST,
4030 "CHAR(l.name) FROM list l",
4031 glin_fields,
4032 1,
4033 "l.name LIKE '%s' ESCAPE '*' AND l.list_id != 0",
4034 1,
4035 &VDwild0,
4036 },
4037
4038 {
4039 /* Q_ALIS - ADD_LIST */ /* uses prefetch_value() for list_id */
4040 "add_list",
4041 "alis",
4042 APPEND,
4043 "l",
4044 LIST,
4045 "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,'%s',%s)",
4046 alis_fields,
4047 10,
4048 0,
4049 0,
4050 &alis_validate,
4051 },
4052
4053 {
4054 /* Q_ULIS - UPDATE_LIST */
4055 "update_list",
4056 "ulis",
4057 UPDATE,
4058 "l",
4059 LIST,
4060 "list SET name='%s', active=%s, publicflg=%s, hidden=%s, maillist=%s, grouplist=%s, gid=%s, acl_type='%s', acl_id=%d, description='%s'",
4061 ulis_fields,
4062 10,
4063 "list_id = %d",
4064 1,
4065 &ulis_validate,
4066 },
4067
4068 {
4069 /* Q_DLIS - DELETE_LIST */
4070 "delete_list",
4071 "dlis",
4072 DELETE,
4073 "l",
4074 LIST,
4075 (char *)0,
4076 dlis_fields,
4077 0,
4078 "list_id = %d",
4079 1,
4080 &dlis_validate,
4081 },
4082
4083 {
4084 /* Q_AMTL - ADD_MEMBER_TO_LIST */
4085 "add_member_to_list",
4086 "amtl",
4087 APPEND,
4088 0,
4089 "imembers",
4090 0,
4091 amtl_fields,
4092 3,
4093 (char *)0,
4094 0,
4095 &amtl_validate,
4096 },
4097
4098 {
4099 /* Q_DMFL - DELETE_MEMBER_FROM_LIST */
4100 "delete_member_from_list",
4101 "dmfl",
4102 DELETE,
4103 0,
4104 "imembers",
4105 (char *)0,
4106 amtl_fields,
4107 0,
4108 0,
4109 3,
4110 &dmfl_validate,
4111 },
4112
4113 {
4114 /* Q_GAUS - GET_ACE_USE */
4115 "get_ace_use",
4116 "gaus",
4117 RETRIEVE,
4118 0,
4119 0,
4120 0,
4121 gaus_fields,
4122 2,
4123 0,
4124 2,
4125 &gaus_validate,
4126 },
4127
4128 {
4129 /* Q_QGLI - QUALIFIED_GET_LISTS */
4130 "qualified_get_lists",
4131 "qgli",
4132 RETRIEVE,
4133 0,
4134 LIST,
4135 0,
4136 qgli_fields,
4137 1,
4138 0,
4139 5,
4140 &qgli_validate,
4141 },
4142
4143 {
4144 /* Q_GMOL - GET_MEMBERS_OF_LIST */
4145 "get_members_of_list",
4146 "gmol",
4147 RETRIEVE,
4148 (char *)0,
4149 "imembers",
4150 (char *)0,
4151 gmol_fields,
4152 2,
4153 (char *)0,
4154 1,
4155 &gmol_validate,
4156 },
4157
4158 {
4159 /* Q_GEML - GET_END_MEMBERS_OF_LIST */
4160 "get_end_members_of_list",
4161 "geml",
4162 RETRIEVE,
4163 (char *)0,
4164 "imembers",
4165 (char *)0,
4166 gmol_fields,
4167 0,
4168 (char *)0,
4169 1,
4170 &geml_validate,
4171 },
4172
4173 {
4174 /* Q_GLOM - GET_LISTS_OF_MEMBER */
4175 "get_lists_of_member",
4176 "glom",
4177 RETRIEVE,
4178 0,
4179 "imembers",
4180 0,
4181 glom_fields,
4182 6,
4183 0,
4184 2,
4185 &glom_validate,
4186 },
4187
4188 {
4189 /* Q_CMOL - COUNT_MEMBERS_OF_LIST */
4190 "count_members_of_list",
4191 "cmol",
4192 RETRIEVE,
4193 0,
4194 "imembers",
4195 0,
4196 cmol_fields,
4197 1,
4198 0,
4199 1,
4200 &cmol_validate,
4201 },
4202
4203 {
4204 /* Q_GZCL - GET_ZEPHYR_CLASS */
4205 "get_zephyr_class",
4206 "gzcl",
4207 RETRIEVE,
4208 "z",
4209 "zephyr",
4210 "CHAR(z.class), z.xmt_type, CHAR(z.xmt_id), z.sub_type, CHAR(z.sub_id), z.iws_type, CHAR(z.iws_id), z.iui_type, CHAR(z.iui_id), CHAR(z.modtime), CHAR(z.modby), z.modwith FROM zephyr z",
4211 gzcl_fields,
4212 12,
4213 "z.class LIKE '%s' ESCAPE '*'",
4214 1,
4215 &gzcl_validate,
4216 },
4217
4218 {
4219 /* Q_AZCL - ADD_ZEPHYR_CLASS */
4220 "add_zephyr_class",
4221 "azcl",
4222 APPEND,
4223 "z",
4224 "zephyr",
4225 "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)",
4226 azcl_fields,
4227 9,
4228 0,
4229 0,
4230 &azcl_validate,
4231 },
4232
4233 {
4234 /* Q_UZCL - UPDATE_ZEPHYR_CLASS */
4235 "update_zephyr_class",
4236 "uzcl",
4237 UPDATE,
4238 "z",
4239 "zephyr",
4240 "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",
4241 uzcl_fields,
4242 9,
4243 "class = '%s'",
4244 1,
4245 &uzcl_validate,
4246 },
4247
4248 {
4249 /* Q_DZCL - DELETE_ZEPHYR_CLASS */
4250 "delete_zephyr_class",
4251 "dzcl",
4252 DELETE,
4253 "z",
4254 "zephyr",
4255 0,
4256 uzcl_fields,
4257 0,
4258 "class = '%s'",
4259 1,
4260 &dzcl_validate,
4261 },
4262
4263 {
4264 /* Q_GSVC - GET_SERVICE */
4265 "get_service",
4266 "gsvc",
4267 RETRIEVE,
4268 "ss",
4269 "services",
4270 "CHAR(ss.name), ss.protocol, CHAR(ss.port), ss.description, CHAR(ss.modtime), CHAR(ss.modby), ss.modwith FROM services ss",
4271 gsvc_fields,
4272 7,
4273 "ss.name LIKE '%s' ESCAPE '*'",
4274 1,
4275 &VDwildsortf,
4276 },
4277
4278 {
4279 /* Q_ASVC - ADD_SERVICE */
4280 "add_service",
4281 "asvc",
4282 APPEND,
4283 "ss",
4284 "services",
4285 "INTO services (name, protocol, port, description) VALUES ('%s','%s',%s,'%s')",
4286 asvc_fields,
4287 4,
4288 (char *)0,
4289 0,
4290 &asvc_validate,
4291 },
4292
4293 {
4294 /* Q_DSVC - DELETE_SERVICE */
4295 "delete_service",
4296 "dsvc",
4297 DELETE,
4298 "ss",
4299 "services",
4300 0,
4301 asvc_fields,
4302 0,
4303 "name = '%s'",
4304 1,
4305 &asvc_validate,
4306 },
4307
4308 {
4309 /* Q_GPCE - GET_PRINTCAP_ENTRY */
4310 "get_printcap_entry",
4311 "gpce",
4312 RETRIEVE,
4313 "pc",
4314 "printcap",
4315 "CHAR(pc.name), CHAR(m.name), pc.dir, pc.rp, CHAR(pc.quotaserver), CHAR(pc.auth), CHAR(pc.price), pc.comments, CHAR(pc.modtime), CHAR(pc.modby), pc.modwith FROM printcap pc, machine m",
4316 gpce_fields,
4317 11,
4318 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
4319 1,
4320 &gpce_validate,
4321 },
4322
4323 {
4324 /* Q_APCE - ADD_PRINTCAP_ENTRY */
4325 "add_printcap_entry",
4326 "apce",
4327 APPEND,
4328 "pc",
4329 "printcap",
4330 "INTO printcap (name, mach_id, dir, rp, quotaserver, auth, price, comments) VALUES ('%s',%d,'%s','%s',%d,%s,%s,'%s')",
4331 apce_fields,
4332 8,
4333 0,
4334 0,
4335 &apce_validate,
4336 },
4337
4338 {
4339 /* Q_DPCE - DELETE_PRINTCAP_ENTRY */
4340 "delete_printcap_entry",
4341 "dpce",
4342 DELETE,
4343 "pc",
4344 "printcap",
4345 0,
4346 apce_fields,
4347 0,
4348 "name = '%s'",
4349 1,
4350 &dpce_validate,
4351 },
4352
4353 {
4354 /* Q_GPCP - GET_PRINTCAP */
4355 "get_printcap",
4356 "gpcp",
4357 RETRIEVE,
4358 "pc",
4359 "printcap",
4360 "CHAR(pc.name), CHAR(m.name), pc.dir, pc.rp, pc.comments, CHAR(pc.modtime), CHAR(pc.modby), pc.modwith FROM printcap pc, machine m",
4361 gpcp_fields,
4362 8,
4363 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
4364 1,
4365 &VDwildsortf,
4366 },
4367
4368 {
4369 /* Q_DPCP - DELETE_PRINTCAP */
4370 "delete_printcap",
4371 "dpcp",
4372 DELETE,
4373 "pc",
4374 "printcap",
4375 0,
4376 apce_fields,
4377 0,
4378 "name = '%s'",
4379 1,
4380 &dpce_validate,
4381 },
4382
4383 {
4384 /* Q_GPDM - GET_PALLADIUM */
4385 "get_palladium",
4386 "gpdm",
4387 RETRIEVE,
4388 "pal",
4389 "palladium",
4390 "CHAR(pal.name), CHAR(pal.ident), CHAR(m.name), CHAR(pal.modtime), CHAR(pal.modby), pal.modwith FROM palladium pal, machine m",
4391 gpdm_fields,
4392 6,
4393 "pal.name LIKE '%s' ESCAPE '*' AND m.mach_id = pal.mach_id",
4394 1,
4395 &VDwildsortf,
4396 },
4397
4398 {
4399 /* Q_APDM - ADD_PALLADIUM */
4400 "add_palladium",
4401 "apdm",
4402 APPEND,
4403 "pal",
4404 "palladium",
4405 "INTO palladium (name, ident, mach_id) VALUES ('%s',%s,%d)",
4406 apdm_fields,
4407 3,
4408 0,
4409 0,
4410 &apdm_validate,
4411 },
4412
4413 {
4414 /* Q_DPDM - DELETE_PALLADIUM */
4415 "delete_palladium",
4416 "dpdm",
4417 DELETE,
4418 "pal",
4419 "palladium",
4420 0,
4421 apdm_fields,
4422 0,
4423 "name = '%s'",
4424 1,
4425 &dpdm_validate,
4426 },
4427
4428 {
4429 /* Q_GALI - GET_ALIAS */
4430 "get_alias",
4431 "gali",
4432 RETRIEVE,
4433 "a",
4434 ALIAS,
4435 "CHAR(a.name), CHAR(a.type), CHAR(a.trans) FROM alias a",
4436 gali_fields,
4437 3,
4438 "a.name LIKE '%s' ESCAPE '*' AND a.type LIKE '%s' ESCAPE '*' AND a.trans LIKE '%s' ESCAPE '*'",
4439 3,
4440 &VDwild3sort1,
4441 },
4442
4443 {
4444 /* Q_AALI - ADD_ALIAS */
4445 "add_alias",
4446 "aali",
4447 APPEND,
4448 "a",
4449 ALIAS,
4450 "INTO alias (name, type, trans) VALUES ('%s', '%s', '%s')",
4451 aali_fields,
4452 3,
4453 (char *)0,
4454 0,
4455 &aali_validate,
4456 },
4457
4458 {
4459 /* Q_DALI - DELETE_ALIAS */
4460 "delete_alias",
4461 "dali",
4462 DELETE,
4463 "a",
4464 ALIAS,
4465 (char *)0,
4466 aali_fields,
4467 0,
4468 "name = '%s' AND type = '%s' AND trans = '%s'",
4469 3,
4470 &dali_validate,
4471 },
4472
4473 {
4474 /* Q_GVAL - GET_VALUE */
4475 "get_value",
4476 "gval",
4477 RETRIEVE,
4478 "val",
4479 "numvalues",
4480 "CHAR(val.value) FROM numvalues val",
4481 gval_fields,
4482 1,
4483 "val.name = '%s'",
4484 1,
4485 &gval_validate,
4486 },
4487
4488 {
4489 /* Q_AVAL - ADD_VALUE */
4490 "add_value",
4491 "aval",
4492 APPEND,
4493 "val",
4494 "numvalues",
4495 "INTO numvalues (name, value) VALUES ('%s', %s)",
4496 aval_fields,
4497 2,
4498 (char *)0,
4499 0,
4500 &aval_validate,
4501 },
4502
4503 {
4504 /* Q_UVAL - UPDATE_VALUE */
4505 "update_value",
4506 "uval",
4507 UPDATE,
4508 "val",
4509 "numvalues",
4510 "numvalues SET value = %s",
4511 aval_fields,
4512 1,
4513 "name = '%s'",
4514 1,
4515 &aval_validate,
4516 },
4517
4518 {
4519 /* Q_DVAL - DELETE_VALUE */
4520 "delete_value",
4521 "dval",
4522 DELETE,
4523 "val",
4524 "numvalues",
4525 (char *)0,
4526 dval_fields,
4527 0,
4528 "name = '%s'",
4529 1,
4530 &aval_validate,
4531 },
4532
4533 {
4534 /* Q_GATS - GET_ALL_TABLE_STATS */
4535 "get_all_table_stats",
4536 "gats",
4537 RETRIEVE,
4538 "tbs",
4539 "tblstats",
4540 "tbs.table_name, CHAR(tbs.appends), CHAR(tbs.updates), CHAR(tbs.deletes), CHAR(tbs.modtime) FROM tblstats tbs",
4541 gats_fields,
4542 5,
4543 (char *)0,
4544 0,
4545 0,
4546 },
4547
4548 {
4549 /* Q__SDL - _SET_DEBUG_LEVEL */
4550 "_set_debug_level",
4551 "_sdl",
4552 UPDATE,
4553 (char *)0,
4554 (char *)0,
4555 (char *)0,
4556 _sdl_fields,
4557 1,
4558 (char *)0,
4559 0,
4560 &_sdl_validate,
4561 },
4562
4563};
4564
4565int QueryCount2 = (sizeof Queries2 / sizeof (struct query));
This page took 0.104559 seconds and 5 git commands to generate.