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