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