]> andersk Git - moira.git/blame - server/queries2.c
possible NULL reference
[moira.git] / server / queries2.c
CommitLineData
d33e787c 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.
c801de4c 6 * For copying and distribution information, please see the file
7 * <mit-copyright.h>.
d33e787c 8 */
9
c801de4c 10#include <mit-copyright.h>
d33e787c 11#include "query.h"
d548a4e7 12#include "mr_et.h"
d33e787c 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();
26
27/* Query Setup Routines */
28int setup_ausr();
29int setup_dusr();
30int setup_spop();
31int setup_dpob();
32int setup_dmac();
33int setup_dclu();
34int setup_alis();
35int setup_dlis();
36int setup_dsin();
37int setup_dshi();
38int setup_afil();
39int setup_ufil();
40int setup_dfil();
d33e787c 41int setup_dnfp();
368be132 42int setup_dqot();
647daf33 43int setup_sshi();
012fc215 44int setup_akum();
d33e787c 45
46/* Query Followup Routines */
47int followup_fix_modby();
48int followup_ausr();
49int followup_gpob();
50int followup_glin();
368be132 51int followup_aqot();
d33e787c 52int followup_gzcl();
53int followup_gsha();
368be132 54int followup_gqot();
d33e787c 55
56int set_modtime();
57int set_modtime_by_id();
58int set_finger_modtime();
59int set_pobox_modtime();
0ec43029 60int set_uppercase_modtime();
d33e787c 61int set_mach_modtime_by_id();
62int set_cluster_modtime_by_id();
63int set_serverhost_modtime();
64int set_nfsphys_modtime();
65int set_filesys_modtime();
66int set_zephyr_modtime();
67
68/* Special Queries */
69int set_pobox();
70int get_list_info();
66f4a35b 71int add_member_to_list();
72int delete_member_from_list();
88343c5e 73int get_ace_use();
d33e787c 74int qualified_get_lists();
75int get_members_of_list();
76int qualified_get_server();
77int qualified_get_serverhost();
78int trigger_dcm();
79int count_members_of_list();
80int get_lists_of_member();
81int register_user();
d33e787c 82
83
84\f
85/* String compression
86 * These are commonly used strings in the table, defined here so that
87 * they can be shared.
88 */
89
88343c5e 90static char ACE_NAME[] = "ace_name";
91static char ACE_TYPE[] = "ace_type";
d33e787c 92static char CLASS[] = "class";
93static char CLU_ID[] = "clu_id";
94static char CLUSTER[] = "cluster";
95static char DESC[] = "description";
96static char DEVICE[] = "device";
97static char DIR[] = "dir";
98static char FILESYS[] = "filesys";
99static char FILSYS_ID[] = "filsys_id";
100static char FIRST[] = "firstname";
101static char LABEL[] = "label";
102static char LAST[] = "lastname";
103static char LIST[] = "list";
104static char LIST_ID[] = "list_id";
105static char LOCATION[] = "location";
106static char LOGIN[] = "login";
107static char MACH_ID[] = "mach_id";
108static char MACHINE[] = "machine";
109static char MIDDLE[] = "middle";
110static char MIT_ID[] = "mit_id";
111static char MOD1[] = "modtime";
112static char MOD2[] = "modby";
113static char MOD3[] = "modwith";
114static char NAME[] = "name";
368be132 115static char QUOTA[] = "quota";
116static char QUOTA_TYPE[] = "quota_type";
d33e787c 117static char SERVICE[] = "service";
118static char SHELL[] = "shell";
119static char STATUS[] = "status";
120static char TYPE[] = "type";
121static char USERS[] = "users";
122static char USERS_ID[] = "users_id";
123static char UID[] = "uid";
124
125
126
127/* VALOBJS
128 * These are commonly used validation objects, defined here so that they
129 * can be shared.
130 */
131
132static struct valobj VOsort0[] = {
133 {V_SORT, 0, 0, 0, 0, 0},
134};
135
136static struct valobj VOdate1[] = {
d548a4e7 137 {V_DATE, 1, 0, 0, 0, MR_DATE},
d33e787c 138};
139
140static struct valobj VOuser0[] = {
d548a4e7 141 {V_ID, 0, USERS, LOGIN, USERS_ID, MR_USER},
d33e787c 142};
143
339a00a3 144static struct valobj VOuser0lock[] = {
d548a4e7 145 {V_LOCK, 0, USERS, 0, USERS_ID, MR_DEADLOCK},
146 {V_ID, 0, USERS, LOGIN, USERS_ID, MR_USER},
339a00a3 147};
148
d33e787c 149static struct valobj VOmach0[] = {
d548a4e7 150 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
d33e787c 151};
152
153static struct valobj VOclu0[] = {
d548a4e7 154 {V_ID, 0, CLUSTER, NAME, CLU_ID, MR_CLUSTER},
d33e787c 155};
156
157static struct valobj VOlist0[] = {
d548a4e7 158 {V_ID, 0, LIST, NAME, LIST_ID, MR_LIST},
d33e787c 159};
160
95127ba8 161static struct valobj VOfilsys0[] = {
d548a4e7 162 {V_ID, 0, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
95127ba8 163};
164
d33e787c 165static struct valobj VOchar0[] = {
166 {V_CHAR, 0},
167};
168
169static struct valobj VOsort01[] = {
170 {V_SORT, 1},
171 {V_SORT, 0},
172};
173
174static struct valobj VOuser0sort[] = {
d548a4e7 175 {V_ID, 0, USERS, LOGIN, USERS_ID, MR_USER},
d33e787c 176 {V_SORT, 0},
177};
178
179static struct valobj VOfilsys0user1[] = {
d548a4e7 180 {V_LOCK, 0, FILESYS, 0, FILSYS_ID, MR_DEADLOCK},
181 {V_ID, 0, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
182 {V_ID, 1, USERS, LOGIN, USERS_ID, MR_USER},
d33e787c 183};
184
185
186/* Validations
187 * Commonly used validation records defined here so that they may
188 * be shared.
189 */
190
191static struct validate VDmach = { VOmach0, 1 };
192static struct validate VDsort2= { VOsort01,2 };
193static struct validate VDsortf = {
194 VOsort0,
195 1,
196 0,
197 0,
198 0,
199 0,
200 0,
201 0,
202 followup_fix_modby,
203};
204
205
206\f
207/* Query data */
208
209static char *galo_fields[] = {
210 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE,
211};
212
213static char *gubl_fields[] = {
214 LOGIN,
215 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
216 MIT_ID, CLASS, MOD1, MOD2, MOD3
217};
218
219static struct validate gubx_validate = /* gubl, gubu */
220{
221 VOsort0,
222 1,
223 0,
224 0,
225 0,
226 0,
227 access_login,
228 0,
229 followup_fix_modby,
230};
231
232static char *gubu_fields[] = {
233 UID,
234 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
235 MIT_ID, CLASS, MOD1, MOD2, MOD3,
236};
237
238static char *gubn_fields[] = {
239 FIRST, LAST,
240 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
241 MIT_ID, CLASS, MOD1, MOD2, MOD3,
242};
243
244static char *gubc_fields[] = {
245 CLASS,
246 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
247 MIT_ID, CLASS, MOD1, MOD2, MOD3,
248};
249
250static char *gubm_fields[] = {
251 MIT_ID,
252 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
253 MIT_ID, CLASS, MOD1, MOD2, MOD3,
254};
255
256static char *ausr_fields[] = {
257 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
258 MIT_ID, CLASS,
259};
260
261static struct valobj ausr_valobj[] = {
d548a4e7 262 {V_LOCK, 0, USERS, 0, USERS_ID, MR_DEADLOCK},
d33e787c 263 {V_CHAR, 0},
264 {V_CHAR, 3},
265 {V_CHAR, 4},
266 {V_CHAR, 5},
267 {V_CHAR, 7},
d548a4e7 268 {V_TYPE, 8, CLASS, 0, 0, MR_BAD_CLASS},
d33e787c 269};
270
271static struct validate ausr_validate = {
272 ausr_valobj,
339a00a3 273 7,
d33e787c 274 LOGIN,
275 "u.login = \"%s\"",
276 1,
277 USERS_ID,
278 0,
279 setup_ausr,
280 followup_ausr,
281};
282
283static char *rusr_fields[] = {
284 UID, LOGIN, "fs_type"
285};
286
ba408d23 287static struct valobj rusr_valobj[] = {
d548a4e7 288 {V_LOCK, 0, USERS, 0, USERS_ID, MR_DEADLOCK},
289 {V_LOCK, 0, LIST, 0, LIST_ID, MR_DEADLOCK},
290 {V_LOCK, 0, FILESYS, 0, FILSYS_ID, MR_DEADLOCK},
291 {V_LOCK, 0, "nfsphys", 0, "nfsphys_id", MR_DEADLOCK},
ba408d23 292};
293
d33e787c 294static struct validate rusr_validate = {
ba408d23 295 rusr_valobj,
296 4,
d33e787c 297 0,
298 0,
299 0,
300 0,
301 0,
302 register_user,
303 0,
304};
305
306static char *uusr_fields[] = {
307 LOGIN,
308 "newlogin", UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
309 MIT_ID, CLASS,
310};
311
312static struct valobj uusr_valobj[] = {
d548a4e7 313 {V_LOCK, 0, USERS, 0, USERS_ID, MR_DEADLOCK},
314 {V_ID, 0, USERS, LOGIN, USERS_ID, MR_USER},
315 {V_RENAME, 1, USERS, LOGIN, USERS_ID, MR_NOT_UNIQUE},
d33e787c 316 {V_CHAR, 4},
317 {V_CHAR, 5},
318 {V_CHAR, 6},
319 {V_CHAR, 8},
d548a4e7 320 {V_TYPE, 9, CLASS, 0, 0, MR_BAD_CLASS},
d33e787c 321};
322
323static struct validate uusr_validate = {
324 uusr_valobj,
339a00a3 325 8,
d33e787c 326 0,
327 0,
328 0,
329 USERS_ID,
330 0,
331 0,
332 set_modtime_by_id,
333};
334
335static char *uush_fields[] = {
336 LOGIN,
337 SHELL,
338};
339
340static struct validate uush_validate = {
339a00a3 341 VOuser0lock,
342 2,
d33e787c 343 0,
344 0,
345 0,
346 USERS_ID,
347 access_user,
348 0,
349 set_modtime_by_id,
350};
351
352static char *uust_fields[] = {
353 LOGIN,
354 STATUS,
355};
356
357static struct validate uust_validate = {
339a00a3 358 VOuser0lock,
359 2,
d33e787c 360 0,
361 0,
362 0,
363 USERS_ID,
364 0,
365 0,
366 set_modtime_by_id,
367};
368
369static char *dusr_fields[] = {
370 LOGIN,
371};
372
373static struct validate dusr_validate = {
339a00a3 374 VOuser0lock,
375 2,
d33e787c 376 0,
377 0,
378 0,
379 0,
380 0,
381 setup_dusr,
382 0,
383};
384
385static char *dubu_fields[] = {
386 UID,
387};
388
389static struct valobj dubu_valobj[] = {
d548a4e7 390 {V_LOCK, 0, USERS, 0, USERS_ID, MR_DEADLOCK},
391 {V_ID, 0, USERS, UID, USERS_ID, MR_USER}
d33e787c 392};
393
394static struct validate dubu_validate = {
395 dubu_valobj,
339a00a3 396 2,
d33e787c 397 0,
398 0,
399 0,
400 0,
401 0,
402 setup_dusr,
403 0,
404};
405
012fc215 406static char *gkum_fields[] = { LOGIN, "kerberos",
407 LOGIN, "kerberos" };
408
409static char *akum_fields[] = { LOGIN, "kerberos" };
410
411static struct valobj akum_valobj[] =
412{
d548a4e7 413 {V_ID, 0, USERS, LOGIN, USERS_ID, MR_USER},
414 {V_ID, 1, "strings", "string", "string_id", MR_NO_MATCH},
012fc215 415};
416
417static struct validate akum_validate =
418{
419 akum_valobj,
420 1,
421 USERS_ID,
422 "k.users_id = %d or k.string_id = %d",
423 2,
424 USERS_ID,
425 access_user,
426 setup_akum,
427 0
428};
429
430static struct validate dkum_validate =
431{
432 akum_valobj,
433 2,
434 USERS_ID,
435 "k.users_id = %d and k.string_id = %d",
436 2,
437 USERS_ID,
438 access_user,
439 0,
440 0
441};
442
d33e787c 443static char *gfbl_fields[] = {
444 LOGIN,
445 LOGIN, "fullname", "nickname", "home_addr",
446 "home_phone", "office_address", "office_phone", "mit_dept",
447 "mit_affil", MOD1, MOD2, MOD3,
448};
449
450static struct validate gfbl_validate = {
451 VOuser0,
452 1,
453 0,
454 0,
455 0,
456 0,
457 access_user,
458 0,
459 followup_fix_modby,
460};
461
462static char *ufbl_fields[] = {
463 LOGIN,
464 "fullname", "nickname", "home_addr",
465 "home_phone", "office_address", "office_phone", "mit_dept",
466 "mit_affil",
467};
468
469static struct validate ufbl_validate = {
339a00a3 470 VOuser0lock,
471 2,
d33e787c 472 0,
473 0,
474 0,
475 0,
476 access_user,
477 0,
478 set_finger_modtime,
479};
480
481static char *gpob_fields[] = {
482 LOGIN,
483 LOGIN, TYPE, "box", MOD1, MOD2, MOD3,
484};
485
486static struct validate gpob_validate = {
487 VOuser0,
488 1,
489 "potype",
490 "u.potype != \"NONE\" and u.users_id=%d",
491 1,
492 0,
493 access_user,
494 0,
495 followup_gpob,
496};
497
498static char *gpox_fields[] = {
499 LOGIN, TYPE, "box",
500};
501
502static struct validate gpox_validate = {
503 0,
504 0,
505 0,
506 0,
507 0,
508 0,
509 0,
510 0,
511 followup_gpob,
512};
513
514static char *spob_fields[] = {
515 LOGIN, TYPE, "box",
516};
517
518static struct valobj spob_valobj[] = {
d548a4e7 519 {V_LOCK, 0, USERS, 0, USERS_ID, MR_DEADLOCK},
520 {V_ID, 0, USERS, LOGIN, USERS_ID, MR_USER},
521 {V_TYPE, 1, "pobox", 0, 0, MR_TYPE},
d33e787c 522};
523
524static struct validate spob_validate = /* SET_POBOX */
525{
526 spob_valobj,
339a00a3 527 3,
d33e787c 528 0,
529 0,
530 0,
531 0,
532 access_user,
533 0,
534 set_pobox,
535};
536
537static struct validate spop_validate = /* SET_POBOX_POP */
538{
339a00a3 539 VOuser0lock,
540 2,
d33e787c 541 0,
542 0,
543 0,
544 0,
545 access_user,
546 setup_spop,
547 set_pobox_modtime,
548};
549
550static struct validate dpob_validate = /* DELETE_POBOX */
551{
339a00a3 552 VOuser0lock,
553 2,
d33e787c 554 0,
555 0,
556 0,
557 0,
558 access_user,
559 setup_dpob,
560 set_pobox_modtime,
561};
562
563static char *gmac_fields[] = {
564 NAME,
565 NAME, TYPE, MOD1, MOD2, MOD3,
566};
567
568static char *amac_fields[] = {
569 NAME, TYPE
570};
571
572static struct valobj amac_valobj[] = {
573 {V_CHAR, 0},
d548a4e7 574 {V_LOCK, 0, MACHINE, 0, MACH_ID, MR_DEADLOCK},
575 {V_TYPE, 1, "mac_type", 0, 0, MR_TYPE},
d33e787c 576};
577
578static struct validate amac_validate = {
579 amac_valobj,
339a00a3 580 3,
d33e787c 581 NAME,
582 "m.name = uppercase(\"%s\")",
583 1,
584 MACH_ID,
585 0,
586 0,
0ec43029 587 set_uppercase_modtime,
d33e787c 588};
589
590static char *umac_fields[] = {
591 NAME,
592 "newname", TYPE,
593};
594
595static struct valobj umac_valobj[] = {
d548a4e7 596 {V_LOCK, 0, MACHINE, 0, MACH_ID, MR_DEADLOCK},
597 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
598 {V_RENAME, 1, MACHINE, NAME, MACH_ID, MR_NOT_UNIQUE},
599 {V_TYPE, 2, "mac_type", 0, 0, MR_TYPE},
d33e787c 600};
601
602static struct validate umac_validate = {
603 umac_valobj,
339a00a3 604 4,
d33e787c 605 0,
606 0,
607 0,
608 MACH_ID,
609 0,
610 0,
611 set_modtime_by_id,
612};
613
614static char *dmac_fields[] = {
615 NAME,
616};
617
339a00a3 618static struct valobj dmac_valobj[] = {
d548a4e7 619 {V_LOCK, 0, MACHINE, 0, MACH_ID, MR_DEADLOCK},
620 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
339a00a3 621};
622
d33e787c 623static struct validate dmac_validate = {
339a00a3 624 dmac_valobj,
625 2,
d33e787c 626 0,
627 0,
628 0,
629 0,
630 0,
631 setup_dmac,
632 0,
633};
634
635static char *gclu_fields[] = {
636 NAME,
637 NAME, DESC, LOCATION, MOD1, MOD2, MOD3,
638};
639
640static char *aclu_fields[] = {
641 NAME, DESC, LOCATION,
642};
643
339a00a3 644static struct valobj aclu_valobj[] = {
d548a4e7 645 {V_LOCK, 0, CLUSTER, 0, CLU_ID, MR_DEADLOCK},
339a00a3 646 {V_CHAR, 0}
647};
648
d33e787c 649static struct validate aclu_validate = /* for aclu */
650{
339a00a3 651 aclu_valobj,
652 2,
d33e787c 653 NAME,
654 "c.name = \"%s\"",
655 1,
656 "clu_id",
657 0,
658 0,
659 set_modtime,
660};
661
662static char *uclu_fields[] = {
663 NAME,
664 "newname", DESC, LOCATION,
665};
666
667static struct valobj uclu_valobj[] = {
d548a4e7 668 {V_LOCK, 0, CLUSTER, 0, CLU_ID, MR_DEADLOCK},
669 {V_ID, 0, CLUSTER, NAME, CLU_ID, MR_CLUSTER},
670 {V_RENAME, 1, CLUSTER, NAME, CLU_ID, MR_NOT_UNIQUE},
d33e787c 671};
672
673static struct validate uclu_validate = {
674 uclu_valobj,
e715b56c 675 3,
d33e787c 676 0,
677 0,
678 0,
679 CLU_ID,
680 0,
681 0,
682 set_modtime_by_id,
683};
684
685static char *dclu_fields[] = {
686 NAME,
687};
688
689static struct validate dclu_validate = {
690 VOclu0,
691 1,
692 0,
693 0,
694 0,
695 0,
696 0,
697 setup_dclu,
698 0,
699};
700
701static char *gmcm_fields[] = {
702 MACHINE, CLUSTER,
703 MACHINE, CLUSTER,
704};
705
706static struct valobj amtc_valobj[] = /* ADD_MACHINE_TO_CLUSTER */
707{ /* DELETE_MACHINE_FROM_CLUSTER */
d548a4e7 708 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
709 {V_ID, 1, CLUSTER, NAME, CLU_ID, MR_CLUSTER},
d33e787c 710};
711
712static struct validate amtc_validate = /* for amtc and dmfc */
713{
714 amtc_valobj,
715 2,
716 MACH_ID,
717 "m.mach_id = %d and m.clu_id = %d",
718 2,
719 0,
720 0,
721 0,
722 set_mach_modtime_by_id,
723};
724
725static char *gcld_fields[] = {
88343c5e 726 CLUSTER, "serv_label",
727 CLUSTER, "serv_label", "serv_cluster",
728};
729
730static char *acld_fields[] = {
d33e787c 731 CLUSTER, "serv_label", "serv_cluster",
732};
733
734static struct valobj acld_valobj[] =
735{
d548a4e7 736 {V_ID, 0, CLUSTER, NAME, CLU_ID, MR_CLUSTER},
d33e787c 737 {V_CHAR, 2},
738};
739
740static struct validate acld_validate = /* ADD_CLUSTER_DATA */
741{ /* DELETE_CLUSTER_DATA */
742 acld_valobj,
743 2,
744 CLU_ID,
745 "s.clu_id = %d and s.serv_label = \"%s\" and s.serv_cluster = \"%s\"",
746 3,
747 0,
748 0,
749 0,
750 set_cluster_modtime_by_id,
751};
752
753static char *gsin_fields[] = {
754 SERVICE,
7ac4c1b1 755 SERVICE, "update_int", "target_file", "script", "dfgen", "dfcheck",
d33e787c 756 TYPE, "enable", "inprogress", "harderror", "errmsg",
88343c5e 757 ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
d33e787c 758};
759
760static struct validate gsin_validate =
761{
762 0,
763 0,
764 0,
765 0,
766 0,
767 0,
768 access_service,
769 0,
770 followup_glin,
771};
772
773static char *qgsv_fields[] = {
774 "enable", "inprogress", "harderror",
775 "service",
776};
777
778static struct valobj qgsv_valobj[] = {
d548a4e7 779 {V_TYPE, 0, "boolean", 0, 0, MR_TYPE},
780 {V_TYPE, 1, "boolean", 0, 0, MR_TYPE},
781 {V_TYPE, 2, "boolean", 0, 0, MR_TYPE},
d33e787c 782};
783
784static struct validate qgsv_validate = {
785 qgsv_valobj,
786 3,
787 0,
788 0,
789 0,
790 0,
791 0,
792 0,
793 qualified_get_server,
794};
795
796static char *asin_fields[] = {
797 SERVICE, "update_int", "target_file", "script", TYPE, "enable",
88343c5e 798 ACE_TYPE, ACE_NAME,
d33e787c 799};
800
801static struct valobj asin_valobj[] = {
d548a4e7 802 {V_LOCK, 0, MACHINE, 0, MACH_ID, MR_DEADLOCK},
d33e787c 803 {V_CHAR, 0},
d548a4e7 804 {V_TYPE, 4, "service", 0, 0, MR_TYPE},
805 {V_TYPE, 6, ACE_TYPE, 0, 0, MR_ACE},
806 {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
d33e787c 807};
808
809static struct validate asin_validate = /* for asin, usin */
810{
811 asin_valobj,
339a00a3 812 5,
d33e787c 813 NAME,
88343c5e 814 "s.name = uppercase(\"%s\")",
d33e787c 815 1,
816 0,
817 0,
818 0,
0ec43029 819 set_uppercase_modtime,
d33e787c 820};
821
822static struct validate rsve_validate = {
339a00a3 823 asin_valobj,
824 1,
d33e787c 825 NAME,
88343c5e 826 "s.name = uppercase(\"%s\")",
d33e787c 827 1,
828 0,
829 access_service,
830 0,
0ec43029 831 set_uppercase_modtime,
d33e787c 832};
833
834static char *ssif_fields[] = {
7ac4c1b1 835 SERVICE, "dfgen", "dfcheck", "inprogress", "harderror", "errmsg",
d33e787c 836};
837
838static struct validate ssif_validate = {
339a00a3 839 asin_valobj,
840 1,
d33e787c 841 NAME,
88343c5e 842 "s.name = uppercase(\"%s\")",
d33e787c 843 1,
844 0,
845 0,
87167924 846 0,
d33e787c 847 0,
848};
849
850static char *dsin_fields[] = {
851 SERVICE,
852};
853
854static struct validate dsin_validate = {
339a00a3 855 asin_valobj,
856 1,
d33e787c 857 NAME,
88343c5e 858 "s.name = uppercase(\"%s\")",
d33e787c 859 1,
860 0,
861 0,
862 setup_dsin,
863 0,
864};
865
866static char *gshi_fields[] = {
867 SERVICE, MACHINE,
868 SERVICE, MACHINE, "enable", "override", "success", "inprogress",
869 "hosterror", "hosterrormsg", "ltt", "lts", "value1", "value2",
870 "value3", MOD1, MOD2, MOD3,
871};
872
873static struct validate gshi_validate = {
874 0,
875 0,
876 0,
877 0,
878 0,
879 0,
880 access_service,
881 0,
882 followup_fix_modby,
883};
884
885static char *qgsh_fields[] = {
886 "service", "enable", "override", "success", "inprogress", "hosterror",
887 "service", MACHINE,
888};
889
890static struct valobj qgsh_valobj[] = {
d548a4e7 891 {V_TYPE, 1, "boolean", 0, 0, MR_TYPE},
892 {V_TYPE, 2, "boolean", 0, 0, MR_TYPE},
893 {V_TYPE, 3, "boolean", 0, 0, MR_TYPE},
894 {V_TYPE, 4, "boolean", 0, 0, MR_TYPE},
895 {V_TYPE, 5, "boolean", 0, 0, MR_TYPE},
d33e787c 896};
897
898static struct validate qgsh_validate = {
899 qgsh_valobj,
900 5,
901 0,
902 0,
903 0,
904 0,
905 0,
906 0,
907 qualified_get_serverhost,
908};
909
910static char *ashi_fields[] = {
911 SERVICE, MACHINE, "enable", "value1", "value2", "value3",
912};
913
914static struct valobj ashi_valobj[] = {
d548a4e7 915 {V_LOCK, 0, MACHINE, 0, MACH_ID, MR_DEADLOCK},
916 {V_NAME, 0, "servers", NAME, 0, MR_SERVICE},
917 {V_ID, 1, MACHINE, NAME, MACH_ID, MR_MACHINE},
d33e787c 918};
919
920static struct validate ashi_validate = /* ashi & ushi */
921{
922 ashi_valobj,
339a00a3 923 3,
d33e787c 924 SERVICE,
88343c5e 925 "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
d33e787c 926 2,
927 0,
928 access_service,
929 0,
930 set_serverhost_modtime,
931};
932
933static struct validate rshe_validate =
934{
935 ashi_valobj,
339a00a3 936 3,
d33e787c 937 SERVICE,
88343c5e 938 "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
d33e787c 939 2,
940 0,
941 access_service,
942 0,
943 set_serverhost_modtime,
944};
945
946static struct validate ssho_validate =
947{
948 ashi_valobj,
339a00a3 949 3,
d33e787c 950 SERVICE,
88343c5e 951 "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
d33e787c 952 2,
953 0,
954 access_service,
955 0,
956 trigger_dcm,
957};
958
959static char *sshi_fields[] = {
960 "service", MACHINE, "override", "success", "inprogress",
961 "hosterror", "errmsg", "ltt", "lts"
962};
963
964static struct valobj sshi_valobj[] = {
d548a4e7 965 {V_NAME, 0, "servers", NAME, 0, MR_SERVICE},
d33e787c 966};
967
968static struct validate sshi_validate =
969{
970 sshi_valobj,
647daf33 971 1,
972 0,
973 0,
d33e787c 974 0,
975 0,
87167924 976 0,
647daf33 977 setup_sshi,
d33e787c 978 0,
979};
980
981static char *dshi_fields[] = {
982 SERVICE, MACHINE,
983};
984
985static struct validate dshi_validate =
986{
987 ashi_valobj,
339a00a3 988 3,
d33e787c 989 SERVICE,
88343c5e 990 "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
d33e787c 991 2,
992 0,
993 access_service,
994 setup_dshi,
995 0,
996};
997
998static char *gsha_fields[] = {
999 MACHINE,
88343c5e 1000 MACHINE, ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
d33e787c 1001};
1002
1003static struct validate gsha_validate =
1004{
1005 0,
1006 0,
1007 0,
1008 0,
1009 0,
1010 0,
1011 0,
1012 0,
1013 followup_gsha,
1014};
1015
1016static char *asha_fields[] = {
88343c5e 1017 MACHINE, ACE_TYPE, ACE_NAME,
d33e787c 1018};
1019
1020static struct valobj asha_valobj[] = {
d548a4e7 1021 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
1022 {V_TYPE, 1, ACE_TYPE, 0, 0, MR_ACE},
1023 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
d33e787c 1024};
1025
1026static struct validate asha_validate =
1027{
1028 asha_valobj,
1029 3,
1030 MACH_ID,
1031 "ha.mach_id = %d",
1032 1,
1033 MACH_ID,
1034 0,
1035 0,
1036 set_modtime_by_id,
1037};
1038
1039static char *gslo_fields[] = {
1040 "server",
1041 "server", MACHINE,
1042};
1043
1044static char *gfsl_fields[] = {
1045 LABEL,
1046 LABEL, TYPE, MACHINE, NAME, "mount", "access", "comments", "owner", "owners",
1047 "create", "lockertype", MOD1, MOD2, MOD3,
1048};
1049
1050static char *gfsm_fields[] = {
1051 MACHINE,
1052 LABEL, TYPE, MACHINE, NAME, "mount", "access", "comments", "owner", "owners",
1053 "create", "lockertype", MOD1, MOD2, MOD3,
1054};
1055
1056static struct validate gfsm_validate = {
1057 VOmach0,
1058 1,
1059 0,
1060 0,
1061 0,
1062 0,
1063 0,
1064 0,
1065 followup_fix_modby,
1066};
1067
88343c5e 1068static char *gfsn_fields[] = {
1069 MACHINE, "parition",
1070 LABEL, TYPE, MACHINE, NAME, "mount", "access", "comments", "owner", "owners",
1071 "create", "lockertype", MOD1, MOD2, MOD3,
1072};
1073
d33e787c 1074static char *gfsg_fields[] = {
1075 LIST,
1076 LABEL, TYPE, MACHINE, NAME, "mount", "access", "comments", "owner", "owners",
1077 "create", "lockertype", MOD1, MOD2, MOD3,
1078};
1079
1080static struct validate gfsg_validate = {
1081 VOlist0,
1082 1,
1083 0,
1084 0,
1085 0,
1086 0,
1087 access_list,
1088 0,
1089 followup_fix_modby,
1090};
1091
1092static char *afil_fields[] = {
1093 LABEL, TYPE, MACHINE, NAME, "mount", "access", "comments", "owner", "owners",
1094 "create", "lockertype",
1095};
1096
1097static struct valobj afil_valobj[] = {
1098 {V_CHAR, 0},
d548a4e7 1099 {V_LOCK, 0, FILESYS, 0, FILSYS_ID, MR_DEADLOCK},
1100 {V_TYPE, 1, FILESYS, 0, 0, MR_FSTYPE},
1101 {V_ID, 2, MACHINE, NAME, MACH_ID, MR_MACHINE},
d33e787c 1102 {V_CHAR, 3},
d548a4e7 1103 {V_ID, 7, USERS, LOGIN, USERS_ID, MR_USER},
1104 {V_ID, 8, LIST, NAME, LIST_ID, MR_LIST},
1105 {V_TYPE, 10, "lockertype", 0, 0, MR_TYPE}
d33e787c 1106};
1107
1108static struct validate afil_validate = {
1109 afil_valobj,
339a00a3 1110 8,
d33e787c 1111 LABEL,
1112 "fs.label = \"%s\"",
1113 1,
1114 FILSYS_ID,
1115 0,
1116 setup_afil,
1117 set_filesys_modtime,
1118};
1119
1120static char *ufil_fields[] = {
1121 LABEL, "newlabel", TYPE, MACHINE, NAME, "mount", "access", "comments",
1122 "owner", "owners", "create", "lockertype",
1123};
1124
1125static struct valobj ufil_valobj[] = {
d548a4e7 1126 {V_LOCK, 0, FILESYS, 0, FILSYS_ID, MR_DEADLOCK},
1127 {V_ID, 0, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
1128 {V_RENAME, 1, FILESYS, LABEL, FILSYS_ID, MR_NOT_UNIQUE},
1129 {V_TYPE, 2, FILESYS, 0, 0, MR_FSTYPE},
1130 {V_ID, 3, MACHINE, NAME, MACH_ID, MR_MACHINE},
d33e787c 1131 {V_CHAR, 4},
d548a4e7 1132 {V_ID, 8, USERS, LOGIN, USERS_ID, MR_USER},
1133 {V_ID, 9, LIST, NAME, LIST_ID, MR_LIST},
1134 {V_TYPE, 11, "lockertype", 0, 0, MR_TYPE}
d33e787c 1135};
1136
1137static struct validate ufil_validate = {
1138 ufil_valobj,
339a00a3 1139 9,
d33e787c 1140 LABEL,
1141 "fs.filsys_id = %d",
1142 1,
1143 FILSYS_ID,
1144 0,
1145 setup_ufil,
1146 set_filesys_modtime,
1147};
1148
1149static char *dfil_fields[] = {
1150 LABEL,
1151};
1152
1153static struct valobj dfil_valobj[] = {
d548a4e7 1154 {V_LOCK, 0, FILESYS, 0, FILSYS_ID, MR_DEADLOCK},
1155 {V_ID, 0, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
d33e787c 1156};
1157
1158static struct validate dfil_validate = {
1159 dfil_valobj,
339a00a3 1160 2,
d33e787c 1161 "label",
1162 "fs.filsys_id = %d",
1163 1,
1164 0,
1165 0,
1166 setup_dfil,
1167 0,
1168};
1169
95127ba8 1170static char *gfgm_fields[] = {
1171 "fsgroup", FILESYS, "sortkey"
1172};
1173
1174static struct valobj gfgm_valobj[] = {
d548a4e7 1175 {V_ID, 0, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
95127ba8 1176 {V_SORT, 1},
1177 {V_SORT, 0},
1178};
1179
1180static struct validate gfgm_validate = {
1181 gfgm_valobj,
1182 3,
1183 0,
1184 0,
1185 0,
1186 0,
1187 0,
1188 0,
1189 0,
1190};
1191
1192static struct valobj aftg_valobj[] = {
d548a4e7 1193 {V_LOCK, 0, FILESYS, 0, FILSYS_ID, MR_DEADLOCK},
1194 {V_ID, 0, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
1195 {V_ID, 1, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
95127ba8 1196};
1197
1198static struct validate aftg_validate = {
1199 aftg_valobj,
339a00a3 1200 3,
95127ba8 1201 "group_id",
1202 "fg.group_id = %d and fg.filsys_id = %d",
1203 2,
1204 0,
1205 0,
1206 0,
1207 0,
1208};
1209
d33e787c 1210static char *ganf_fields[] = {
1211 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
1212};
1213
1214static char *gnfp_fields[] = {
1215 MACHINE, DIR,
1216 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
1217};
1218
1219static struct validate gnfp_validate = {
1220 VOmach0,
1221 1,
1222 0,
1223 0,
1224 0,
1225 0,
1226 0,
1227 0,
1228 followup_fix_modby,
1229};
1230
1231static struct valobj anfp_valobj[] = {
d548a4e7 1232 {V_ID, 0, MACHINE, NAME, MACH_ID, MR_MACHINE},
d33e787c 1233 {V_CHAR, 1},
1234};
1235
1236static struct validate anfp_validate = {
1237 anfp_valobj,
1238 2,
1239 DIR,
1240 "np.mach_id = %d and np.dir = \"%s\"",
1241 2,
1242 "nfsphys_id",
1243 0,
1244 0,
1245 set_nfsphys_modtime,
1246};
1247
1248static char *dnfp_fields[] = {
1249 MACHINE, DIR,
1250};
1251
1252static struct validate dnfp_validate = {
1253 VOmach0,
1254 1,
1255 DIR,
1256 "np.mach_id = %d and np.dir = \"%s\"",
1257 2,
1258 "nfsphys_id",
1259 0,
1260 setup_dnfp,
1261 set_nfsphys_modtime,
1262};
1263
368be132 1264static char *gqot_fields[] = {
1265 FILESYS, TYPE, NAME,
1266 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
1267};
1268
1269static struct valobj gqot_valobj[] = {
1270 {V_TYPE, 1, QUOTA_TYPE, 0, 0, MR_TYPE},
1271 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
1272 {V_SORT, 0, 0, 0, 0, 0},
1273};
1274
1275static struct validate gqot_validate = {
1276 gqot_valobj,
1277 3,
1278 0,
1279 0,
1280 0,
1281 0,
1282 0,
1283 0,
1284 followup_gqot,
1285};
1286
1287static char *gqbf_fields[] = {
1288 FILESYS,
1289 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
1290};
1291
1292static struct validate gqbf_validate = {
1293 VOsort0,
1294 1,
1295 0,
1296 0,
1297 0,
1298 0,
1299 access_filesys,
1300 0,
1301 followup_gqot,
1302};
1303
1304static char *aqot_fields[] = {
1305 FILESYS, TYPE, NAME, QUOTA,
1306};
1307
1308static struct valobj aqot_valobj[] = {
1309 {V_LOCK, 0, FILESYS, 0, FILSYS_ID, MR_DEADLOCK},
1310 {V_ID, 0, FILESYS, LABEL, FILSYS_ID, MR_FILESYS},
1311 {V_TYPE, 1, QUOTA_TYPE, 0, 0, MR_TYPE},
1312 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
1313};
1314
1315static struct validate aqot_validate = {
1316 aqot_valobj,
1317 4,
1318 FILSYS_ID,
1319 "q.filsys_id = %d and q.type = \"%s\" and q.entity_id = %d",
1320 3,
1321 0,
1322 0,
1323 0,
1324 followup_aqot,
1325};
1326
1327static struct validate uqot_validate = {
1328 aqot_valobj,
1329 4,
1330 FILSYS_ID,
1331 "q.filsys_id = %d and q.type = \"%s\" and q.entity_id = %d",
1332 3,
1333 0,
1334 0,
1335 setup_dqot,
1336 followup_aqot,
1337};
1338
1339static struct validate dqot_validate = {
1340 aqot_valobj,
1341 4,
1342 FILSYS_ID,
1343 "q.filsys_id = %d and q.type = \"%s\" and q.entity_id = %d",
1344 3,
1345 0,
1346 0,
1347 setup_dqot,
1348 0,
1349};
1350
d33e787c 1351static char *gnfq_fields[] = {
88343c5e 1352 FILESYS, LOGIN,
368be132 1353 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
d33e787c 1354};
1355
1356static struct validate gnfq_validate = {
8d9e6ca2 1357 VOsort0,
1358 1,
d33e787c 1359 0,
1360 0,
1361 0,
1362 0,
1363 access_filesys,
1364 0,
368be132 1365 followup_gqot,
d33e787c 1366};
1367
1368static char *gnqp_fields[] = {
1369 MACHINE, DIR,
368be132 1370 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
d33e787c 1371};
1372
d33e787c 1373static char *anfq_fields[] = {
368be132 1374 FILESYS, LOGIN, QUOTA,
d33e787c 1375};
1376
1377static struct validate anfq_validate = {
1378 VOfilsys0user1,
339a00a3 1379 3,
368be132 1380 FILSYS_ID,
1381 "q.filsys_id = %d and q.type = \"USER\" and q.entity_id = %d",
d33e787c 1382 2,
1383 0,
1384 0,
1385 0,
368be132 1386 followup_aqot,
d33e787c 1387};
1388
1389static struct validate unfq_validate = {
1390 VOfilsys0user1,
339a00a3 1391 3,
368be132 1392 FILSYS_ID,
1393 "q.filsys_id = %d and q.type = \"USER\" and q.entity_id = %d",
d33e787c 1394 2,
1395 0,
1396 0,
368be132 1397 setup_dqot,
1398 followup_aqot,
d33e787c 1399};
1400
1401static struct validate dnfq_validate = {
1402 VOfilsys0user1,
339a00a3 1403 3,
368be132 1404 FILSYS_ID,
1405 "q.filsys_id = %d and q.entity_id = %d",
d33e787c 1406 2,
1407 0,
1408 0,
368be132 1409 setup_dqot,
d33e787c 1410 0,
1411};
1412
1413static char *glin_fields[] = {
1414 NAME,
1415 NAME, "active", "public", "hidden", "maillist", "group", "gid",
88343c5e 1416 ACE_TYPE, ACE_NAME, DESC, MOD1, MOD2, MOD3,
d33e787c 1417};
1418
1419static struct validate glin_validate = {
1420 0,
1421 0,
1422 0,
1423 0,
1424 0,
1425 0,
1426 access_vis_list_by_name,
1427 0,
1428 get_list_info,
1429};
1430
1431static char *alis_fields[] = {
1432 NAME, "active", "public", "hidden", "maillist", "group", "gid",
88343c5e 1433 ACE_TYPE, ACE_NAME, DESC,
d33e787c 1434};
1435
1436static struct valobj alis_valobj[] = {
d548a4e7 1437 {V_LOCK, 0, LIST, 0, LIST_ID, MR_DEADLOCK},
d33e787c 1438 {V_CHAR, 0},
d548a4e7 1439 {V_TYPE, 7, ACE_TYPE, 0, 0, MR_ACE},
1440 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
d33e787c 1441};
1442
1443static struct validate alis_validate = {
1444 alis_valobj,
339a00a3 1445 4,
d33e787c 1446 NAME,
1447 "l.name = \"%s\"",
1448 1,
1449 LIST_ID,
1450 0,
1451 setup_alis,
1452 set_modtime,
1453};
1454
1455static char *ulis_fields[] = {
1456 NAME,
1457 "newname", "active", "public", "hidden", "maillist", "group", "gid",
88343c5e 1458 ACE_TYPE, ACE_NAME, DESC,
d33e787c 1459};
1460
1461static struct valobj ulis_valobj[] = {
d548a4e7 1462 {V_LOCK, 0, LIST, 0, LIST_ID, MR_DEADLOCK},
1463 {V_ID, 0, LIST, NAME, LIST_ID, MR_LIST},
1464 {V_RENAME, 1, LIST, NAME, LIST_ID, MR_NOT_UNIQUE},
1465 {V_TYPE, 8, ACE_TYPE, 0, 0, MR_ACE},
1466 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
d33e787c 1467};
1468
1469static struct validate ulis_validate = {
1470 ulis_valobj,
339a00a3 1471 5,
d33e787c 1472 NAME,
1473 "l.list_id = %d",
1474 1,
1475 LIST_ID,
1476 access_list,
1477 setup_alis,
1478 set_modtime_by_id,
1479};
1480
1481static char *dlis_fields[] = {
1482 NAME,
1483};
1484
1485static struct validate dlis_validate = {
1486 VOlist0,
1487 1,
1488 NAME,
1489 "l.list_id = %d",
1490 1,
1491 0,
1492 access_list,
1493 setup_dlis,
1494 0,
1495};
1496
1497static char *amtl_fields[] = {
1498 "list_name", "member_type", "member_name",
1499};
1500
1501static struct valobj amtl_valobj[] = {
d548a4e7 1502 {V_LOCK, 0, LIST, 0, LIST_ID, MR_DEADLOCK},
1503 {V_ID, 0, LIST, NAME, LIST_ID, MR_LIST},
1504 {V_TYPE, 1, "member", 0, 0, MR_TYPE},
1505 {V_TYPEDATA, 2, 0, 0, 0, MR_NO_MATCH},
d33e787c 1506};
1507
66f4a35b 1508static struct validate amtl_validate =
d33e787c 1509{
1510 amtl_valobj,
339a00a3 1511 4,
66f4a35b 1512 0,
1513 0,
1514 0,
1515 0,
1516 access_list,
1517 0,
1518 add_member_to_list,
1519};
1520
1521static struct validate dmfl_validate =
1522{
1523 amtl_valobj,
1524 4,
1525 0,
1526 0,
1527 0,
d33e787c 1528 0,
1529 access_list,
1530 0,
66f4a35b 1531 delete_member_from_list,
d33e787c 1532};
1533
1534static char *gaus_fields[] = {
88343c5e 1535 ACE_TYPE, ACE_NAME,
d33e787c 1536 "use_type", "use_name",
1537};
1538
1539static struct valobj gaus_valobj[] = {
d548a4e7 1540 {V_TYPE, 0, "gaus", 0, 0, MR_TYPE},
1541 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
d33e787c 1542};
1543
1544static struct validate gaus_validate = {
1545 gaus_valobj,
1546 2,
1547 0,
1548 0,
1549 0,
1550 0,
1551 access_member,
1552 0,
88343c5e 1553 get_ace_use,
d33e787c 1554};
1555
1556static char *qgli_fields[] = {
1557 "active", "public", "hidden", "maillist", "group",
1558 "list",
1559};
1560
1561static struct valobj qgli_valobj[] = {
d548a4e7 1562 {V_TYPE, 0, "boolean", 0, 0, MR_TYPE},
1563 {V_TYPE, 1, "boolean", 0, 0, MR_TYPE},
1564 {V_TYPE, 2, "boolean", 0, 0, MR_TYPE},
1565 {V_TYPE, 3, "boolean", 0, 0, MR_TYPE},
1566 {V_TYPE, 4, "boolean", 0, 0, MR_TYPE},
d33e787c 1567};
1568
1569static struct validate qgli_validate = {
1570 qgli_valobj,
1571 5,
1572 0,
1573 0,
1574 0,
1575 0,
1576 access_qgli,
1577 0,
1578 qualified_get_lists,
1579};
1580
1581static char *gmol_fields[] = {
1582 "list_name",
1583 "member_type", "member_name",
1584};
1585
1586static struct validate gmol_validate = {
1587 VOlist0,
1588 1,
1589 0,
1590 0,
1591 0,
1592 0,
1593 access_visible_list,
1594 0,
1595 get_members_of_list,
1596};
1597
1598static char *glom_fields[] = {
1599 "member_type", "member_name",
1600 "list_name", "active", "public", "hidden", "maillist", "group",
1601};
1602
1603static struct valobj glom_valobj[] = {
d548a4e7 1604 {V_TYPE, 0, "rmember", 0, 0, MR_TYPE},
1605 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
d33e787c 1606 {V_SORT, 0},
1607};
1608
1609static struct validate glom_validate = {
1610 glom_valobj,
1611 3,
1612 0,
1613 0,
1614 0,
1615 0,
1616 access_member,
1617 0,
1618 get_lists_of_member,
1619};
1620
1621static char *cmol_fields[] = {
1622 "list_name",
1623 "count",
1624};
1625
1626static struct validate cmol_validate = {
1627 VOlist0,
1628 1,
1629 0,
1630 0,
1631 0,
1632 0,
1633 access_visible_list,
1634 0,
1635 count_members_of_list,
1636};
1637
d33e787c 1638static char *gzcl_fields[] = {
1639 CLASS,
1640 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
1641 "iws_type", "iws_name", "iui_type", "iui_name", MOD1, MOD2, MOD3,
1642};
1643
1644static struct validate gzcl_validate = {
1645 VOsort0,
1646 1,
1647 0,
1648 0,
1649 0,
1650 0,
1651 0,
1652 0,
1653 followup_gzcl,
1654};
1655
1656static char *azcl_fields[] = {
1657 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
1658 "iws_type", "iws_name", "iui_type", "iui_name",
1659};
1660
1661static struct valobj azcl_valobj[] = {
1662 {V_CHAR, 0},
d548a4e7 1663 {V_TYPE, 1, ACE_TYPE, 0, 0, MR_ACE},
1664 {V_TYPEDATA, 2, 0, 0, LIST_ID, MR_ACE},
1665 {V_TYPE, 3, ACE_TYPE, 0, 0, MR_ACE},
1666 {V_TYPEDATA, 4, 0, 0, LIST_ID, MR_ACE},
1667 {V_TYPE, 5, ACE_TYPE, 0, 0, MR_ACE},
1668 {V_TYPEDATA, 6, 0, 0, LIST_ID, MR_ACE},
1669 {V_TYPE, 7, ACE_TYPE, 0, 0, MR_ACE},
1670 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
d33e787c 1671};
1672
1673static struct validate azcl_validate = {
1674 azcl_valobj,
1675 8,
1676 CLASS,
1677 "z.class = \"%s\"",
1678 1,
1679 0,
1680 0,
1681 0,
1682 set_zephyr_modtime,
1683};
1684
1685static char *uzcl_fields[] = {
1686 CLASS, "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
1687 "iws_type", "iws_name", "iui_type", "iui_name",
1688};
1689
1690static struct valobj uzcl_valobj[] = {
d548a4e7 1691 {V_RENAME, 1, "zephyr", CLASS, 0, MR_NOT_UNIQUE},
1692 {V_TYPE, 2, ACE_TYPE, 0, 0, MR_ACE},
1693 {V_TYPEDATA, 3, 0, 0, LIST_ID, MR_ACE},
1694 {V_TYPE, 4, ACE_TYPE, 0, 0, MR_ACE},
1695 {V_TYPEDATA, 5, 0, 0, LIST_ID, MR_ACE},
1696 {V_TYPE, 6, ACE_TYPE, 0, 0, MR_ACE},
1697 {V_TYPEDATA, 7, 0, 0, LIST_ID, MR_ACE},
1698 {V_TYPE, 8, ACE_TYPE, 0, 0, MR_ACE},
1699 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
d33e787c 1700};
1701
1702static struct validate uzcl_validate = {
1703 uzcl_valobj,
1704 9,
1705 CLASS,
1706 "z.class = \"%s\"",
1707 1,
1708 0,
1709 0,
1710 0,
1711 set_zephyr_modtime,
1712};
1713
1714static struct validate dzcl_validate = {
1715 0,
1716 0,
1717 CLASS,
1718 "z.class = \"%s\"",
1719 1,
1720 0,
1721 0,
1722 0,
1723 0,
1724};
1725
fd5b2340 1726static char *gsvc_fields[] = {
1727 SERVICE,
1728 SERVICE, "protocol", "port", DESC, MOD1, MOD2, MOD3
d33e787c 1729};
1730
fd5b2340 1731static char *asvc_fields[] = {
1732 SERVICE, "protocol", "port", DESC
1733};
1734
1735static struct validate asvc_validate = {
1736 VOchar0,
1737 1,
1738 NAME,
1739 "s.name = \"%s\"",
1740 1,
1741 0,
1742 0,
1743 0,
1744 set_modtime,
1745};
1746
1747static char *gpce_fields[] = {
d33e787c 1748 "printer",
fd5b2340 1749 "printer", "spooling_host", "spool_directory", "rprinter",
1750 "quotaserver", "authenticate", "price", "comments",
fad88070 1751 MOD1, MOD2, MOD3,
d33e787c 1752};
1753
fd5b2340 1754static char *apce_fields[] = {
1755 "printer", "spooling_host", "spool_directory", "rprinter",
1756 "quotaserver", "authenticate", "price", "comments",
fad88070 1757 MOD1, MOD2, MOD3,
1758};
1759
fd5b2340 1760static struct valobj apce_valobj[] = {
fad88070 1761 {V_CHAR, 0},
d548a4e7 1762 {V_ID, 1, MACHINE, NAME, MACH_ID, MR_MACHINE},
fd5b2340 1763 {V_ID, 4, MACHINE, NAME, MACH_ID, MR_MACHINE},
d33e787c 1764};
1765
fd5b2340 1766static struct validate apce_validate = {
1767 apce_valobj,
1768 3,
d33e787c 1769 NAME,
1770 "p.name = \"%s\"",
1771 1,
1772 0,
1773 0,
1774 0,
1775 set_modtime,
1776};
1777
fd5b2340 1778static struct validate dpce_validate = {
fad88070 1779 0,
1780 0,
1781 NAME,
1782 "p.name = \"%s\"",
1783 1,
1784 0,
1785 0,
1786 0,
1787 0,
1788};
1789
fd5b2340 1790static char *gpcp_fields[] = {
1791 "printer",
1792 "printer", "spooling_host", "spool_directory", "rprinter", "comments",
1793 MOD1, MOD2, MOD3,
1794};
1795
012fc215 1796static char *gpdm_fields[] = {
1797 NAME,
1798 NAME, "rpcnum", "host", MOD1, MOD2, MOD3,
1799};
1800
1801static char *apdm_fields[] = {
1802 NAME, "rpcnum", "host"
1803};
1804
1805static struct valobj apdm_valobj[] = {
1806 {V_CHAR, 0},
d548a4e7 1807 {V_ID, 2, MACHINE, NAME, MACH_ID, MR_MACHINE},
012fc215 1808};
1809
1810static struct validate apdm_validate = {
1811 apdm_valobj,
1812 2,
1813 NAME,
1814 "p.name = \"%s\"",
1815 1,
1816 0,
1817 0,
1818 0,
1819 set_modtime,
1820};
1821
1822static struct validate dpdm_validate = {
1823 0,
1824 0,
1825 NAME,
1826 "p.name = \"%s\"",
1827 1,
1828 0,
1829 0,
1830 0,
1831 0,
1832};
1833
d33e787c 1834static char *gali_fields[] = {
1835 NAME, TYPE, "trans",
1836 NAME, TYPE, "trans",
1837};
1838
1839static char *aali_fields[] = {
1840 NAME, TYPE, "trans",
1841};
1842
1843static struct valobj aali_valobj[] = {
1844 {V_CHAR, 0},
d548a4e7 1845 {V_TYPE, 1, "alias", 0, 0, MR_TYPE},
d33e787c 1846 {V_CHAR, 2},
1847};
1848
1849static struct validate aali_validate = {
1850 aali_valobj,
1851 3,
1852 "trans",
1853 "a.name = \"%s\" and a.type = \"%s\" and a.trans = \"%s\"",
1854 3,
1855 0,
1856 0,
1857 0,
1858 0,
1859};
1860
1861static struct validate dali_validate = /* DELETE_ALIAS */
1862{
1863 0,
1864 0,
1865 "trans",
1866 "a.name = \"%s\" and a.type = \"%s\" and a.trans = \"%s\"",
1867 3,
1868 0,
1869 0,
1870 0,
1871 0,
1872};
1873
1874static char *gval_fields[] = {
1875 NAME, "value",
1876};
1877
1878static struct valobj gval_valobj[] = {
d548a4e7 1879 {V_NAME, 0, "values", NAME, 0, MR_NO_MATCH},
d33e787c 1880};
1881
1882static struct validate gval_validate = {
1883 gval_valobj,
1884 1,
1885 0,
1886 0,
1887 0,
1888 0,
1889 0,
1890 0,
1891 0,
1892};
1893
1894static char *aval_fields[] = {
1895 NAME, "value",
1896};
1897
1898static struct validate aval_validate = /* for aval, uval, and dval */
1899{
1900 VOchar0,
1901 1,
1902 NAME,
1903 "v.name = \"%s\"",
1904 1,
1905 0,
1906 0,
1907 0,
1908 0,
1909};
1910
1911static char *dval_fields[] = {
1912 NAME,
1913};
1914
1915static char *gats_fields[] = {
1916 "table", "retrieves", "appends", "updates", "deletes", MOD1, MOD2, MOD3,
1917};
1918
1919
1920\f
1921/* Generalized Query Definitions */
1922
1923struct query Queries2[] = {
1924 {
1925 /* Q_GALO - GET_ALL_LOGINS */
1926 "get_all_logins",
1927 "galo",
1928 RETRIEVE,
1929 "u",
1930 USERS,
1931 "%c = u.login, %c = text(u.uid), %c = u.shell, %c = u.last, %c = u.first, %c = u.middle",
1932 galo_fields,
1933 6,
1934 "u.users_id != 0",
1935 0,
1936 0,
1937 },
1938
1939 {
1940 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS */
1941 "get_all_active_logins",
1942 "gaal",
1943 RETRIEVE,
1944 "u",
1945 USERS,
1946 "%c = u.login, %c = text(u.uid), %c = u.shell, %c = u.last, %c = u.first, %c = u.middle",
1947 galo_fields,
1948 6,
91cdc7c5 1949 "u.status = 1",
d33e787c 1950 0,
1951 0,
1952 },
1953
1954 {
1955 /* Q_GUBL - GET_USER_BY_LOGIN */
1956 "get_user_by_login",
1957 "gubl",
1958 RETRIEVE,
1959 "u",
1960 USERS,
1961 "%c = u.login, %c = text(u.uid), %c = u.shell, %c = u.last, %c = u.first, %c = u.middle, %c = text(u.status), %c = u.mit_id, %c = u.mit_year, %c = u.modtime, %c = text(u.modby), %c = u.modwith",
1962 gubl_fields,
1963 12,
1964 "u.login = \"%s\" and u.users_id != 0",
1965 1,
1966 &gubx_validate,
1967 },
1968
1969 {
1970 /* Q_GUBU - GET_USER_BY_UID */
1971 "get_user_by_uid",
1972 "gubu",
1973 RETRIEVE,
1974 "u",
1975 USERS,
1976 "%c = u.login, %c = text(u.uid), %c = u.shell, %c = u.last, %c = u.first, %c = u.middle, %c = text(u.status), %c = u.mit_id, %c = u.mit_year, %c = u.modtime, %c = text(u.modby), %c = u.modwith",
1977 gubu_fields,
1978 12,
1979 "u.uid = %s and u.users_id != 0",
1980 1,
1981 &gubx_validate,
1982 },
1983
1984 {
1985 /* Q_GUBN - GET_USER_BY_NAME */
1986 "get_user_by_name",
1987 "gubn",
1988 RETRIEVE,
1989 "u",
1990 USERS,
1991 "%c = u.login, %c = text(u.uid), %c = u.shell, %c = u.last, %c = u.first, %c = u.middle, %c = text(u.status), %c = u.mit_id, %c = u.mit_year, %c = u.modtime, %c = text(u.modby), %c = u.modwith",
1992 gubn_fields,
1993 12,
1994 "u.first = \"%s\" and u.last = \"%s\" and u.users_id != 0",
1995 2,
1996 &VDsortf,
1997 },
1998
1999 {
2000 /* Q_GUBC - GET_USER_BY_CLASS */
2001 "get_user_by_class",
2002 "gubc",
2003 RETRIEVE,
2004 "u",
2005 USERS,
2006 "%c = u.login, %c = text(u.uid), %c = u.shell, %c = u.last, %c = u.first, %c = u.middle, %c = text(u.status), %c = u.mit_id, %c = u.mit_year, %c = u.modtime, %c = text(u.modby), %c = u.modwith",
2007 gubc_fields,
2008 12,
2009 "u.mit_year = uppercase(\"%s\") and u.users_id != 0",
2010 1,
2011 &VDsortf,
2012 },
2013
2014 {
2015 /* Q_GUBM - GET_USER_BY_MITID */
2016 "get_user_by_mitid",
2017 "gubm",
2018 RETRIEVE,
2019 "u",
2020 USERS,
2021 "%c = u.login, %c = text(u.uid), %c = u.shell, %c = u.last, %c = u.first, %c = u.middle, %c = text(u.status), %c = u.mit_id, %c = u.mit_year, %c = u.modtime, %c = text(u.modby), %c = u.modwith",
2022 gubm_fields,
2023 12,
2024 "u.mit_id = \"%s\" and u.users_id != 0",
2025 1,
2026 &VDsortf,
2027 },
2028
2029 {
2030 /* Q_AUSR - ADD_USER */
2031 "add_user",
2032 "ausr",
2033 APPEND,
2034 "u",
2035 USERS,
2036 "login = %c, users_id = values.value, uid = int4(%c), shell = %c, last = %c, first = %c, middle = %c, status = int4(%c), mit_id = %c, mit_year = %c",
2037 ausr_fields,
2038 9,
2039 "values.name = \"users_id\"",
2040 0,
2041 &ausr_validate,
2042 },
2043
2044 {
2045 /* Q_RUSR - REGISTER_USER */
2046 "register_user",
2047 "rusr",
2048 APPEND,
2049 0,
2050 0,
2051 0,
2052 rusr_fields,
2053 3,
2054 0,
2055 0,
2056 &rusr_validate,
2057 },
2058
2059 {
2060 /* Q_UUSR - UPDATE_USER */
2061 "update_user",
2062 "uusr",
2063 UPDATE,
2064 "u",
2065 USERS,
2066 "login = %c, uid = int4(%c), shell = %c, last = %c, first = %c, middle = %c, status = int4(%c), mit_id = %c, mit_year = %c",
2067 uusr_fields,
2068 9,
2069 "u.users_id = %d",
2070 1,
2071 &uusr_validate,
2072 },
2073
2074 {
2075 /* Q_UUSH - UPDATE_USER_SHELL */
2076 "update_user_shell",
2077 "uush",
2078 UPDATE,
2079 "u",
2080 USERS,
2081 "shell = %c",
2082 uush_fields,
2083 1,
2084 "u.users_id = %d",
2085 1,
2086 &uush_validate,
2087 },
2088
2089 {
2090 /* Q_UUST - UPDATE_USER_STATUS */
2091 "update_user_status",
2092 "uust",
2093 UPDATE,
2094 "u",
2095 USERS,
2096 "status = int4(%c)",
2097 uust_fields,
2098 1,
2099 "u.users_id = %d",
2100 1,
2101 &uust_validate,
2102 },
2103
2104 {
2105 /* Q_DUSR - DELETE_USER */
2106 "delete_user",
2107 "dusr",
2108 DELETE,
2109 "u",
2110 USERS,
2111 (char *)0,
2112 dusr_fields,
2113 0,
2114 "u.users_id = %d",
2115 1,
2116 &dusr_validate,
2117 },
2118
2119 {
2120 /* Q_DUBU - DELETE_USER_BY_UID */
2121 "delete_user_by_uid",
2122 "dubu",
2123 DELETE,
2124 "u",
2125 USERS,
2126 (char *)0,
2127 dubu_fields,
2128 0,
2129 "u.users_id = %d",
2130 1,
2131 &dubu_validate,
2132 },
2133
012fc215 2134 {
2135 /* Q_GKUM - GET_KERBEROS_USER_MAP */
2136 "get_kerberos_user_map",
2137 "gkum",
2138 RETRIEVE,
2139 "k",
2140 "krbmap",
2141 "%c = users.login, %c = strings.string",
2142 gkum_fields,
2143 2,
2144 "users.login = \"%s\" and strings.string = \"%s\" and k.users_id = users.users_id and k.string_id = strings.string_id",
2145 2,
2146 &VDsort2,
2147 },
2148
2149 {
2150 /* Q_AKUM - ADD_KERBEROS_USER_MAP */
2151 "add_kerberos_user_map",
2152 "akum",
2153 APPEND,
2154 "k",
2155 "krbmap",
2156 "users_id = %i4, string_id = %i4",
2157 akum_fields,
2158 2,
2159 0,
2160 0,
2161 &akum_validate,
2162 },
2163
2164 {
2165 /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
2166 "delete_kerberos_user_map",
2167 "dkum",
2168 DELETE,
2169 "k",
2170 "krbmap",
2171 0,
2172 akum_fields,
2173 0,
2174 "k.users_id = %d and k.string_id = %d",
2175 2,
2176 &dkum_validate,
2177 },
2178
d33e787c 2179 {
2180 /* Q_GFBL - GET_FINGER_BY_LOGIN */
2181 "get_finger_by_login",
2182 "gfbl",
2183 RETRIEVE,
2184 "u",
2185 USERS,
2186 "%c = u.login,%c=u.fullname,%c=u.nickname,%c=u.home_addr,%c=u.home_phone,%c=u.office_addr,%c=u.office_phone,%c=u.mit_dept,%c=u.mit_affil,%c=u.fmodtime,%c=text(u.fmodby),%c=u.fmodwith",
2187 gfbl_fields,
2188 12,
2189 "u.users_id = %d",
2190 1,
2191 &gfbl_validate,
2192 },
2193
2194 {
2195 /* Q_UFBL - UPDATE_FINGER_BY_LOGIN */
2196 "update_finger_by_login",
2197 "ufbl",
2198 UPDATE,
2199 "u",
2200 USERS,
2201 "fullname=%c,nickname=%c,home_addr=%c,home_phone=%c,office_addr=%c,office_phone=%c,mit_dept=%c,mit_affil=%c",
2202 ufbl_fields,
2203 8,
2204 "u.users_id = %d",
2205 1,
2206 &ufbl_validate,
2207 },
2208
2209 {
2210 /* Q_GPOB - GET_POBOX */
2211 "get_pobox",
2212 "gpob",
2213 RETRIEVE,
2214 "u",
2215 USERS,
2216 "%c = u.login, %c = u.potype, %c = text(u.pop_id) + \":\" + text(u.box_id), %c = u.pmodtime, %c = text(u.pmodby), %c = u.pmodwith",
2217 gpob_fields,
2218 6,
2219 "u.users_id = %d",
2220 1,
2221 &gpob_validate,
2222 },
2223
2224 {
2225 /* Q_GAPO - GET_ALL_POBOXES */
2226 "get_all_poboxes",
2227 "gapo",
2228 RETRIEVE,
2229 "u",
2230 USERS,
2231 "%c = u.login, %c = u.potype, %c = text(u.pop_id) + \":\" + text(u.box_id)",
2232 gpox_fields,
2233 3,
2234 "u.potype != \"NONE\"",
2235 0,
2236 &gpox_validate,
2237 },
2238
2239 {
2240 /* Q_GPOP - GET_POBOXES_POP */
2241 "get_poboxes_pop",
2242 "gpop",
2243 RETRIEVE,
2244 "u",
2245 USERS,
2246 "%c = u.login, %c = u.potype, %c = text(u.pop_id) + \":\" + text(u.box_id)",
2247 gpox_fields,
2248 3,
2249 "u.potype = \"POP\"",
2250 0,
2251 &gpox_validate
2252 },
2253
2254 {
2255 /* Q_GPOF - GET_POBOXES_SMTP */
2256 "get_poboxes_smtp",
2257 "gpos",
2258 RETRIEVE,
2259 "u",
2260 USERS,
2261 "%c = u.login, %c = u.potype, %c = text(u.pop_id) + \":\" + text(u.box_id)",
2262 gpox_fields,
2263 3,
2264 "u.potype = \"SMTP\"",
2265 0,
2266 &gpox_validate
2267 },
2268
2269 {
2270 /* Q_SPOB - SET_POBOX */
2271 "set_pobox",
2272 "spob",
2273 UPDATE,
2274 0,
2275 USERS,
2276 0,
2277 spob_fields,
2278 3,
2279 (char *)0,
2280 0,
2281 &spob_validate,
2282 },
2283
2284 {
2285 /* Q_SPOP - SET_POBOX_POP */
2286 "set_pobox_pop",
2287 "spop",
2288 UPDATE,
2289 "u",
2290 USERS,
2291 "potype = \"POP\"",
2292 spob_fields,
2293 0,
2294 "u.users_id = %d",
2295 1,
2296 &spop_validate,
2297 },
2298
2299 {
2300 /* Q_DPOB - DELETE_POBOX */
2301 "delete_pobox",
2302 "dpob",
2303 UPDATE,
2304 "u",
2305 USERS,
2306 "potype = \"NONE\"",
2307 spob_fields,
2308 0,
2309 "u.users_id = %d",
2310 1,
2311 &dpob_validate,
2312 },
2313
2314 {
2315 /* Q_GMAC - GET_MACHINE */
2316 "get_machine",
2317 "gmac",
2318 RETRIEVE,
2319 "m",
2320 MACHINE,
2321 "%c = m.name, %c = m.type, %c = m.modtime, %c = text(m.modby), %c =m.modwith",
2322 gmac_fields,
2323 5,
2324 "m.name = uppercase(\"%s\") and m.mach_id != 0",
2325 1,
2326 &VDsortf,
2327 },
2328
2329 {
2330 /* Q_AMAC - ADD_MACHINE */
2331 "add_machine",
2332 "amac",
2333 APPEND,
2334 "m",
2335 MACHINE,
2336 "name = uppercase(%c), mach_id = values.value, type = %c",
2337 amac_fields,
2338 2,
2339 "values.name = \"mach_id\"",
2340 0,
2341 &amac_validate,
2342 },
2343
2344 {
2345 /* Q_UMAC - UPDATE_MACHINE */
2346 "update_machine",
2347 "umac",
2348 UPDATE,
2349 "m",
2350 MACHINE,
2351 "name = uppercase(%c), type = %c",
2352 umac_fields,
2353 2,
2354 "m.mach_id = %d",
2355 1,
2356 &umac_validate,
2357 },
2358
2359 {
2360 /* Q_DMAC - DELETE_MACHINE */
2361 "delete_machine",
2362 "dmac",
2363 DELETE,
2364 "m",
2365 MACHINE,
2366 (char *)0,
2367 dmac_fields,
2368 0,
2369 "m.mach_id = %d",
2370 1,
2371 &dmac_validate,
2372 },
2373
2374 {
2375 /* Q_GCLU - GET_CLUSTER */
2376 "get_cluster",
2377 "gclu",
2378 RETRIEVE,
2379 "c",
2380 CLUSTER,
2381 "%c = c.name, %c = c.desc, %c = c.location, %c = c.modtime, %c = text(c.modby), %c = c.modwith",
2382 gclu_fields,
2383 6,
2384 "c.name = \"%s\" and c.clu_id != 0",
2385 1,
2386 &VDsortf,
2387 },
2388
2389 {
2390 /* Q_ACLU - ADD_CLUSTER */
2391 "add_cluster",
2392 "aclu",
2393 APPEND,
2394 "c",
2395 CLUSTER,
2396 "name = %c, clu_id = values.value, desc = %c, location = %c",
2397 aclu_fields,
2398 3,
2399 "values.name = \"clu_id\"",
2400 0,
2401 &aclu_validate,
2402 },
2403
2404 {
2405 /* Q_UCLU - UPDATE_CLUSTER */
2406 "update_cluster",
2407 "uclu",
2408 UPDATE,
2409 "c",
2410 CLUSTER,
2411 "name = %c, desc = %c, location = %c",
2412 uclu_fields,
2413 3,
2414 "c.clu_id = %d",
2415 1,
2416 &uclu_validate,
2417 },
2418
2419 {
2420 /* Q_DCLU - DELETE_CLUSTER */
2421 "delete_cluster",
2422 "dclu",
2423 DELETE,
2424 "c",
2425 CLUSTER,
2426 (char *)0,
2427 dclu_fields,
2428 0,
2429 "c.clu_id = %d",
2430 1,
2431 &dclu_validate,
2432 },
2433
2434 {
2435 /* Q_GMCM - GET_MACHINE_TO_CLUSTER_MAP */
2436 "get_machine_to_cluster_map",
2437 "gmcm",
2438 RETRIEVE,
2439 "m",
2440 "mcmap",
2441 "%c = machine.name, %c = cluster.name",
2442 gmcm_fields,
2443 2,
2444 "machine.name = uppercase(\"%s\") and cluster.name = \"%s\" and m.clu_id = cluster.clu_id and m.mach_id = machine.mach_id",
2445 2,
2446 &VDsort2,
2447 },
2448
2449 {
2450 /* Q_AMTC - ADD_MACHINE_TO_CLUSTER */
2451 "add_machine_to_cluster",
2452 "amtc",
2453 APPEND,
2454 "m",
2455 "mcmap",
2456 "mach_id = %i4, clu_id = %i4",
2457 gmcm_fields,
2458 2,
2459 0,
2460 0,
2461 &amtc_validate,
2462 },
2463
2464 {
2465 /* Q_DMFC - DELETE_MACHINE_FROM_CLUSTER */
2466 "delete_machine_from_cluster",
2467 "dmfc",
2468 DELETE,
2469 "m",
2470 "mcmap",
2471 0,
2472 gmcm_fields,
2473 0,
2474 "m.mach_id = %d and m.clu_id = %d",
2475 2,
2476 &amtc_validate,
2477 },
2478
2479 {
2480 /* Q_GCLD - GET_CLUSTER_DATA */
2481 "get_cluster_data",
2482 "gcld",
2483 RETRIEVE,
2484 "s",
2485 "svc",
2486 "%c = cluster.name, %c = s.serv_label, %c = s.serv_cluster",
2487 gcld_fields,
2488 3,
2489 "cluster.clu_id = s.clu_id and cluster.name = \"%s\" and s.serv_label = \"%s\"",
2490 2,
2491 &VDsort2,
2492 },
2493
2494 {
2495 /* Q_ACLD - ADD_CLUSTER_DATA */
2496 "add_cluster_data",
2497 "acld",
2498 APPEND,
2499 "s",
2500 "svc",
2501 "clu_id = %i4, serv_label = %c, serv_cluster = %c",
88343c5e 2502 acld_fields,
d33e787c 2503 3,
2504 (char *)0,
2505 0,
2506 &acld_validate,
2507 },
2508
2509 {
2510 /* Q_DCLD - DELETE_CLUSTER_DATA */
2511 "delete_cluster_data",
2512 "dcld",
2513 DELETE,
2514 "s",
2515 "svc",
2516 (char *)0,
88343c5e 2517 acld_fields,
d33e787c 2518 0,
2519 "s.clu_id = %d and s.serv_label = \"%s\" and s.serv_cluster = \"%s\"",
2520 3,
2521 &acld_validate,
2522 },
2523
2524 {
2525 /* Q_GSIN - GET_SERVER_INFO */
2526 "get_server_info",
2527 "gsin",
2528 RETRIEVE,
2529 "s",
2530 "servers",
7ac4c1b1 2531 "%c = s.name, %c = text(s.update_int), %c = s.target_file, %c = s.script, %c = text(s.dfgen), %c = text(s.dfcheck), %c = s.type, %c = text(s.enable), %c = text(s.inprogress), %c = text(s.harderror), %c = s.errmsg, %c = s.acl_type, %c = text(s.acl_id), %c = s.modtime, %c = text(s.modby), %c = s.modwith",
d33e787c 2532 gsin_fields,
7ac4c1b1 2533 16,
88343c5e 2534 "s.name = uppercase(\"%s\")",
d33e787c 2535 1,
2536 &gsin_validate,
2537 },
2538
2539 {
2540 /* Q_QGSV - QUALIFIED_GET_SERVER */
2541 "qualified_get_server",
2542 "qgsv",
2543 RETRIEVE,
2544 0,
2545 "servers",
2546 0,
2547 qgsv_fields,
2548 1,
2549 0,
2550 3,
2551 &qgsv_validate,
2552 },
2553
2554 {
2555 /* Q_ASIN - ADD_SERVER_INFO */
2556 "add_server_info",
2557 "asin",
2558 APPEND,
2559 "s",
2560 "servers",
88343c5e 2561 "name = uppercase(%c), update_int = int4(%c), target_file = %c, script = %c, type = %c, enable = int1(%c), acl_type = %c, acl_id = %i4",
d33e787c 2562 asin_fields,
2563 8,
2564 (char *)0,
2565 0,
2566 &asin_validate,
2567 },
2568
2569 {
2570 /* Q_USIN - UPDATE_SERVER_INFO */
2571 "update_server_info",
2572 "usin",
2573 UPDATE,
2574 "s",
2575 "servers",
2576 "update_int = int4(%c), target_file = %c, script = %c, type = %c, enable = int1(%c), acl_type = %c, acl_id = %i4",
2577 asin_fields,
2578 7,
88343c5e 2579 "s.name = uppercase(\"%s\")",
d33e787c 2580 1,
2581 &asin_validate,
2582 },
2583
2584 {
2585 /* Q_RSVE - RESET_SERVER_ERROR */
2586 "reset_server_error",
2587 "rsve",
2588 UPDATE,
2589 "s",
2590 "servers",
7ac4c1b1 2591 "harderror = 0, dfcheck = s.dfgen",
d33e787c 2592 dsin_fields,
2593 0,
88343c5e 2594 "s.name = uppercase(\"%s\")",
d33e787c 2595 1,
2596 &rsve_validate,
2597 },
2598
2599 {
2600 /* Q_SSIF - SET_SERVER_INTERNAL_FLAGS */
2601 "set_server_internal_flags",
2602 "ssif",
2603 UPDATE,
2604 "s",
2605 "servers",
7ac4c1b1 2606 "dfgen = int4(%c), dfcheck = int4(%c), inprogress = int1(%c), harderror = int1(%c), errmsg = %c",
d33e787c 2607 ssif_fields,
7ac4c1b1 2608 5,
88343c5e 2609 "s.name = uppercase(\"%s\")",
d33e787c 2610 1,
2611 &ssif_validate,
2612 },
2613
2614 {
2615 /* Q_DSIN - DELETE_SERVER_INFO */
2616 "delete_server_info",
2617 "dsin",
2618 DELETE,
2619 "s",
2620 "servers",
2621 (char *)0,
2622 dsin_fields,
2623 0,
88343c5e 2624 "s.name = uppercase(\"%s\")",
d33e787c 2625 1,
2626 &dsin_validate,
2627 },
2628
2629 {
2630 /* Q_GSHI - GET_SERVER_HOST_INFO */
2631 "get_server_host_info",
2632 "gshi",
2633 RETRIEVE,
2634 "sh",
2635 "serverhosts",
87167924 2636 "%c = sh.service, %c = machine.name, %c = text(sh.enable), %c = text(sh.override), %c = text(sh.success), %c = text(sh.inprogress), %c = text(sh.hosterror), %c = sh.hosterrmsg, %c = text(sh.ltt), %c = text(sh.lts), %c = text(sh.value1), %c = text(sh.value2), %c = sh.value3, %c = sh.modtime, %c = text(sh.modby), %c = sh.modwith",
d33e787c 2637 gshi_fields,
2638 16,
88343c5e 2639 "sh.service = uppercase(\"%s\") and machine.name = uppercase(\"%s\") and machine.mach_id = sh.mach_id",
d33e787c 2640 2,
2641 &gshi_validate,
2642 },
2643
2644 {
2645 /* Q_QGSV - QUALIFIED_GET_SERVER_HOST */
2646 "qualified_get_server_host",
2647 "qgsh",
2648 RETRIEVE,
2649 0,
2650 "serverhosts",
2651 0,
2652 qgsh_fields,
2653 2,
2654 0,
2655 6,
2656 &qgsh_validate,
2657 },
2658
2659 {
2660 /* Q_ASHI - ADD_SERVER_HOST_INFO */
2661 "add_server_host_info",
2662 "ashi",
2663 APPEND,
2664 "sh",
2665 "serverhosts",
88343c5e 2666 "service = uppercase(%c), mach_id = %i4, enable = int1(%c), value1 = int4(%c), value2 = int4(%c), value3 = %c",
d33e787c 2667 ashi_fields,
2668 6,
2669 (char *)0,
2670 0,
2671 &ashi_validate,
2672 },
2673
2674 {
2675 /* Q_USHI - UPDATE_SERVER_HOST_INFO */
2676 "update_server_host_info",
2677 "ushi",
2678 UPDATE,
2679 "sh",
2680 "serverhosts",
2681 "enable = int1(%c), value1 = int4(%c), value2 = int4(%c), value3 = %c",
2682 ashi_fields,
2683 4,
88343c5e 2684 "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
d33e787c 2685 2,
2686 &ashi_validate,
2687 },
2688
2689 {
2690 /* Q_RSHE - RESET_SERVER_HOST_ERROR */
2691 "reset_server_host_error",
2692 "rshe",
2693 UPDATE,
2694 "sh",
2695 "serverhosts",
2696 "hosterror = 0",
2697 dshi_fields,
2698 0,
88343c5e 2699 "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
d33e787c 2700 2,
2701 &rshe_validate,
2702 },
2703
2704 {
2705 /* Q_SSHO - SET_SERVER_HOST_OVERRIDE */
2706 "set_server_host_override",
2707 "ssho",
2708 UPDATE,
2709 "sh",
2710 "serverhosts",
2711 "override = 1",
2712 dshi_fields,
2713 0,
88343c5e 2714 "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
d33e787c 2715 2,
2716 &ssho_validate,
2717 },
2718
2719 {
2720 /* Q_SSHI - SET_SERVER_HOST_INTERNAL */
2721 "set_server_host_internal",
2722 "sshi",
2723 UPDATE,
7ac4c1b1 2724 "s",
d33e787c 2725 "serverhosts",
87167924 2726 "override = int1(%c), success = int1(%c), inprogress = int1(%c), hosterror = int1(%c), hosterrmsg = %c, ltt = int4(%c), lts = int4(%c)",
d33e787c 2727 sshi_fields,
2728 7,
647daf33 2729 "s.service = uppercase(\"%s\") and s.mach_id = machine.mach_id and machine.name = \"%s\"",
d33e787c 2730 2,
2731 &sshi_validate,
2732 },
2733
2734 {
2735 /* Q_DSHI - DELETE_SERVER_HOST_INFO */
2736 "delete_server_host_info",
2737 "dshi",
2738 DELETE,
2739 "sh",
2740 "serverhosts",
2741 (char *)0,
2742 dshi_fields,
2743 0,
88343c5e 2744 "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
d33e787c 2745 2,
2746 &dshi_validate,
2747 },
2748
2749 {
2750 /* Q_GSHA - GET_SERVER_HOST_ACCESS */
2751 "get_server_host_access",
2752 "gsha",
2753 RETRIEVE,
2754 "ha",
2755 "hostaccess",
2756 "%c = machine.name, %c = ha.acl_type, %c = text(ha.acl_id), %c = ha.modtime, %c = text(ha.modby), %c = ha.modwith",
2757 gsha_fields,
2758 6,
2759 "machine.name = uppercase(\"%s\") and ha.mach_id = machine.mach_id",
2760 1,
2761 &gsha_validate,
2762 },
2763
2764 {
2765 /* Q_ASHA - ADD_SERVER_HOST_ACCESS */
2766 "add_server_host_access",
2767 "asha",
2768 APPEND,
2769 "ha",
2770 "hostaccess",
2771 "mach_id = %i4, acl_type = %c, acl_id = %i4",
2772 asha_fields,
2773 3,
2774 0,
2775 0,
2776 &asha_validate,
2777 },
2778
2779 {
2780 /* Q_USHA - UPDATE_SERVER_HOST_ACCESS */
2781 "update_server_host_access",
2782 "usha",
2783 UPDATE,
2784 "ha",
2785 "hostaccess",
2786 "acl_type = %c, acl_id = %i4",
2787 asha_fields,
2788 2,
2789 "ha.mach_id = %d",
2790 1,
2791 &asha_validate,
2792 },
2793
2794 {
2795 /* Q_DSHA - DELETE_SERVER_HOST_ACCESS */
2796 "delete_server_host_access",
2797 "dsha",
2798 DELETE,
2799 "ha",
2800 "hostaccess",
2801 0,
2802 asha_fields,
2803 0,
2804 "ha.mach_id = %d",
2805 1,
2806 &VDmach,
2807 },
2808
2809 {
2810 /* Q_GSLO - GET_SERVER_LOCATIONS */
2811 "get_server_locations",
2812 "gslo",
2813 RETRIEVE,
2814 "sh",
2815 "serverhosts",
2816 "%c = sh.service, %c = machine.name",
2817 gslo_fields,
2818 2,
88343c5e 2819 "sh.service = uppercase(\"%s\") and sh.mach_id = machine.mach_id",
d33e787c 2820 1,
2821 0,
2822 },
2823
2824 {
2825 /* Q_GFSL - GET_FILESYS_BY_LABEL */
2826 "get_filesys_by_label",
2827 "gfsl",
2828 RETRIEVE,
2829 "fs",
2830 FILESYS,
2831 "%c = fs.label, %c = fs.type, %c = machine.name, %c = fs.name, %c = fs.mount, %c = fs.access, %c = fs.comments, %c = users.login, %c = list.name, %c = text(fs.createflg), %c = fs.lockertype, %c = fs.modtime, %c = text(fs.modby), %c = fs.modwith",
2832 gfsl_fields,
2833 14,
2834 "fs.label = \"%s\" and fs.mach_id = machine.mach_id and fs.owner = users.users_id and fs.owners = list.list_id",
2835 1,
2836 &VDsortf,
2837 },
2838
2839 {
2840 /* Q_GFSM - GET_FILESYS_BY_MACHINE */
2841 "get_filesys_by_machine",
2842 "gfsm",
2843 RETRIEVE,
2844 "fs",
2845 FILESYS,
2846 "%c = fs.label, %c = fs.type, %c = machine.name, %c = fs.name, %c = fs.mount, %c = fs.access, %c = fs.comments, %c = users.login, %c = list.name, %c = text(fs.createflg), %c = fs.lockertype, %c = fs.modtime, %c = text(fs.modby), %c = fs.modwith",
2847 gfsm_fields,
2848 14,
2849 "fs.mach_id = %d and machine.mach_id = fs.mach_id and fs.owner = users.users_id and fs.owners = list.list_id",
2850 1,
2851 &gfsm_validate,
2852 },
2853
88343c5e 2854 {
2855 /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
2856 "get_filesys_by_nfsphys",
2857 "gfsn",
2858 RETRIEVE,
2859 "fs",
2860 FILESYS,
2861 "%c = fs.label, %c = fs.type, %c = machine.name, %c = fs.name, %c = fs.mount, %c = fs.access, %c = fs.comments, %c = users.login, %c = list.name, %c = text(fs.createflg), %c = fs.lockertype, %c = fs.modtime, %c = text(fs.modby), %c = fs.modwith",
2862 gfsn_fields,
2863 14,
2864 "fs.mach_id = %d and machine.mach_id = fs.mach_id and fs.owner = users.users_id and fs.owners = list.list_id and nfsphys.nfsphys_id = fs.phys_id and nfsphys.dir = \"%s\" and fs.type = \"NFS\"",
2865 2,
2866 &gfsm_validate,
2867 },
2868
d33e787c 2869 {
2870 /* Q_GFSG - GET_FILESYS_BY_GROUP */
2871 "get_filesys_by_group",
2872 "gfsg",
2873 RETRIEVE,
2874 "fs",
2875 FILESYS,
2876 "%c = fs.label, %c = fs.type, %c = machine.name, %c = fs.name, %c = fs.mount, %c = fs.access, %c = fs.comments, %c = users.login, %c = list.name, %c = text(fs.createflg), %c = fs.lockertype, %c = fs.modtime, %c = text(fs.modby), %c = fs.modwith",
2877 gfsg_fields,
2878 14,
2879 "fs.owners = %d and machine.mach_id = fs.mach_id and fs.owner = users.users_id and fs.owners = list.list_id",
2880 1,
2881 &gfsg_validate,
2882 },
2883
2884 {
2885 /* Q_AFIL - ADD_FILESYS */
2886 "add_filesys",
2887 "afil",
2888 APPEND,
2889 "fs",
2890 FILESYS,
2891 "filsys_id = values.value, label = %c, type = %c, mach_id = %i4, name = %c, mount = %c, access = %c, comments = %c, owner = %i4, owners = %i4, createflg = int1(%c), lockertype = %c",
2892 afil_fields,
2893 11,
2894 "values.name = \"filsys_id\"",
2895 0,
2896 &afil_validate,
2897 },
2898
2899 {
2900 /* Q_UFIL - UPDATE_FILESYS */
2901 "update_filesys",
2902 "ufil",
2903 UPDATE,
2904 "fs",
2905 FILESYS,
2906 "label = %c, type = %c, mach_id = %i4, name = %c, mount = %c, access = %c, comments = %c, owner = %i4, owners = %i4, createflg = int1(%c), lockertype = %c",
2907 ufil_fields,
2908 11,
2909 "fs.filsys_id = %d",
2910 1,
2911 &ufil_validate,
2912 },
2913
2914 {
2915 /* Q_DFIL - DELETE_FILESYS */
2916 "delete_filesys",
2917 "dfil",
2918 DELETE,
2919 "fs",
2920 FILESYS,
2921 (char *)0,
2922 dfil_fields,
2923 0,
2924 "fs.filsys_id = %d",
2925 1,
2926 &dfil_validate,
2927 },
2928
95127ba8 2929 {
2930 /* Q_GFGM - GET_FSGROUOP_MEMBERS */
2931 "get_fsgroup_members",
2932 "gfgm",
2933 RETRIEVE,
2934 "fg",
2935 "fsgroup",
2936 "%c = filesys.label, %c = fg.key",
2937 gfgm_fields,
2938 2,
2939 "fg.group_id = %d and filesys.filsys_id = fg.filsys_id",
2940 1,
2941 &gfgm_validate,
2942 },
2943
2944 {
2945 /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
2946 "add_filesys_to_fsgroup",
2947 "aftg",
2948 APPEND,
2949 "fg",
2950 "fsgroup",
2951 "group_id = filesys.filsys_id, filsys_id = %i4, key = %c",
2952 gfgm_fields,
2953 2,
2954 "filesys.filsys_id = %d and filesys.type = \"FSGROUP\"",
2955 1,
2956 &aftg_validate,
2957 },
2958
2959 {
2960 /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
2961 "remove_filesys_from_fsgroup",
2962 "rffg",
2963 DELETE,
2964 "fg",
2965 "fsgroup",
2966 (char *)0,
2967 gfgm_fields,
2968 0,
2969 "fg.group_id = %d and fg.filsys_id = %d",
2970 2,
2971 &aftg_validate,
2972 },
2973
d33e787c 2974 {
2975 /* Q_GANF - GET_ALL_NFSPHYS */
2976 "get_all_nfsphys",
2977 "ganf",
2978 RETRIEVE,
2979 "np",
2980 "nfsphys",
2981 "%c = machine.name, %c = np.dir, %c = np.device, %c = text(np.status), %c = text(np.allocated), %c = text(np.size), %c = np.modtime, %c = text(np.modby), %c = np.modwith",
2982 ganf_fields,
2983 9,
2984 "machine.mach_id = np.mach_id",
2985 0,
2986 &VDsortf,
2987 },
2988
2989 {
2990 /* Q_GNFP - GET_NFSPHYS */
2991 "get_nfsphys",
2992 "gnfp",
2993 RETRIEVE,
2994 "np",
2995 "nfsphys",
2996 "%c = machine.name, %c = np.dir, %c = np.device, %c = text(np.status), %c = text(np.allocated), %c = text(np.size), %c = np.modtime, %c = text(np.modby), %c = np.modwith",
2997 gnfp_fields,
2998 9,
2999 "np.mach_id = %d and np.dir = \"%s\" and machine.mach_id = np.mach_id",
3000 2,
3001 &gnfp_validate,
3002 },
3003
3004 {
3005 /* Q_ANFP - ADD_NFSPHYS */
3006 "add_nfsphys",
3007 "anfp",
3008 APPEND,
3009 "np",
3010 "nfsphys",
3011 "nfsphys_id = values.value, mach_id = %i4, dir = %c, device = %c, status = int4(%c), allocated = int4(%c), size = int4(%c)",
3012 ganf_fields,
3013 6,
3014 "values.name = \"nfsphys_id\"",
3015 0,
3016 &anfp_validate,
3017 },
3018
3019 {
3020 /* Q_UNFP - UPDATE_NFSPHYS */
3021 "update_nfsphys",
3022 "unfp",
3023 UPDATE,
3024 "np",
3025 "nfsphys",
3026 "device = %c, status = int4(%c), allocated = int4(%c), size = int4(%c)",
3027 gnfp_fields,
3028 4,
3029 "np.mach_id = %d and np.dir = \"%s\"",
3030 2,
3031 &anfp_validate,
3032 },
3033
3034 {
3035 /* Q_AJNF - ADJUST_NFSPHYS_ALLOCATION */
3036 "adjust_nfsphys_allocation",
3037 "ajnf",
3038 UPDATE,
3039 "np",
3040 "nfsphys",
3041 "allocated = np.allocated + int4(%c)",
3042 dnfp_fields,
3043 1,
3044 "np.mach_id = %d and np.dir = \"%s\"",
3045 2,
3046 &anfp_validate,
3047 },
3048
3049 {
3050 /* Q_DNFP - DELETE_NFSPHYS */
3051 "delete_nfsphys",
3052 "dnfp",
3053 DELETE,
3054 "np",
3055 "nfsphys",
3056 (char *)0,
3057 dnfp_fields,
3058 0,
3059 "np.mach_id = %d and np.dir = \"%s\"",
3060 2,
3061 &dnfp_validate,
3062 },
3063
368be132 3064 {
3065 /* Q_GQOT - GET_QUOTA */
3066 "get_quota",
3067 "gqot",
3068 RETRIEVE,
3069 "q",
3070 QUOTA,
3071 "%c = filesys.label, %c = q.type, %c = text(q.entity_id), %c = text(q.quota), %c = text(q.phys_id), %c = machine.name, %c = q.modtime, %c = text(q.modby), %c = q.modwith",
3072 gqot_fields,
3073 9,
3074 "filesys.label = \"%s\" and q.type = \"%s\" and q.entity_id = %d and filesys.filsys_id = q.filsys_id and machine.mach_id = filesys.mach_id",
3075 3,
3076 &gqot_validate,
3077 },
3078
3079 {
3080 /* Q_GQBF - GET_QUOTA_BY_FILESYS */
3081 "get_quota_by_filesys",
3082 "gqbf",
3083 RETRIEVE,
3084 "q",
3085 QUOTA,
3086 "%c = filesys.label, %c = q.type, %c = text(q.entity_id), %c = text(q.quota), %c = text(q.phys_id), %c = machine.name, %c = q.modtime, %c = text(q.modby), %c = q.modwith",
3087 gqbf_fields,
3088 9,
3089 "filesys.label = \"%s\" and filesys.filsys_id = q.filsys_id and machine.mach_id = filesys.mach_id",
3090 1,
3091 &gqbf_validate,
3092 },
3093
3094 {
3095 /* Q_AQOT - ADD_QUOTA */
3096 "add_quota",
3097 "aqot",
3098 APPEND,
3099 "q",
3100 QUOTA,
3101 "filsys_id = filesys.filsys_id, type = %c, entity_id = %i4, quota = int4(%c), phys_id = filesys.phys_id",
3102 aqot_fields,
3103 3,
3104 "filesys.filsys_id = %d",
3105 1,
3106 &aqot_validate,
3107 },
3108
3109 {
3110 /* Q_UQOT - UPDATE_QUOTA */
3111 "update_quota",
3112 "uqot",
3113 UPDATE,
3114 "q",
3115 QUOTA,
3116 "quota = int4(%c)",
3117 aqot_fields,
3118 1,
3119 "q.filsys_id = %d and q.type = \"%s\" and q.entity_id = %d",
3120 3,
3121 &uqot_validate,
3122 },
3123
3124 {
3125 /* Q_DQOT - DELETE_QUOTA */
3126 "delete_quota",
3127 "dqot",
3128 DELETE,
3129 "q",
3130 QUOTA,
3131 (char *)0,
3132 aqot_fields,
3133 0,
3134 "q.filsys_id = %d and q.type = \"%s\" and q.entity_id = %d",
3135 3,
3136 &dqot_validate,
3137 },
3138
d33e787c 3139 {
3140 /* Q_GNFQ - GET_NFS_QUOTAS */
88343c5e 3141 "get_nfs_quota",
d33e787c 3142 "gnfq",
3143 RETRIEVE,
368be132 3144 "q",
3145 QUOTA,
3146 "%c = filesys.label, %c = users.login, %c = text(q.quota), %c = text(q.phys_id), %c = machine.name, %c = q.modtime, %c = text(q.modby), %c = q.modwith",
d33e787c 3147 gnfq_fields,
3148 8,
368be132 3149 "filesys.label = \"%s\" and q.type = \"USER\" and q.entity_id = users.users_id and filesys.filsys_id = q.filsys_id and machine.mach_id = filesys.mach_id and users.login = \"%s\"",
88343c5e 3150 2,
d33e787c 3151 &gnfq_validate,
3152 },
3153
3154 {
3155 /* Q_GNQP - GET_NFS_QUOTAS_BY_PARTITION */
3156 "get_nfs_quotas_by_partition",
3157 "gnqp",
3158 RETRIEVE,
368be132 3159 "q",
3160 QUOTA,
3161 "%c = filesys.label, %c = users.login, %c = text(q.quota), %c = nfsphys.dir, %c = machine.name",
d33e787c 3162 gnqp_fields,
3163 5,
368be132 3164 "nfsphys.mach_id = %d and nfsphys.dir = \"%s\" and q.phys_id = nfsphys.nfsphys_id and filesys.filsys_id = q.filsys_id and q.type = \"USER\" and users.users_id = q.entity_id and machine.mach_id = nfsphys.mach_id",
d33e787c 3165 2,
3166 &VDmach,
3167 },
3168
d33e787c 3169 {
3170 /* Q_ANFQ - ADD_NFS_QUOTA */
3171 "add_nfs_quota",
3172 "anfq",
3173 APPEND,
368be132 3174 "q",
3175 QUOTA,
3176 "filsys_id = filesys.filsys_id, type = \"USER\", entity_id = %i4, quota = int4(%c), phys_id = filesys.phys_id",
d33e787c 3177 anfq_fields,
d90d5c45 3178 2,
3179 "filesys.filsys_id = %d",
3180 1,
d33e787c 3181 &anfq_validate,
3182 },
3183
3184 {
3185 /* Q_UNFQ - UPDATE_NFS_QUOTA */
3186 "update_nfs_quota",
3187 "unfq",
3188 UPDATE,
368be132 3189 "q",
3190 QUOTA,
d33e787c 3191 "quota = int4(%c)",
3192 anfq_fields,
3193 1,
368be132 3194 "q.filsys_id = %d and q.type = \"USER\" and q.entity_id = %d",
d33e787c 3195 2,
3196 &unfq_validate,
3197 },
3198
3199 {
3200 /* Q_DNFQ - DELETE_NFS_QUOTA */
3201 "delete_nfs_quota",
3202 "dnfq",
3203 DELETE,
368be132 3204 "q",
3205 QUOTA,
d33e787c 3206 (char *)0,
3207 anfq_fields,
3208 0,
368be132 3209 "q.filsys_id = %d and q.type = \"USER\" and q.entity_id = %d",
d33e787c 3210 2,
3211 &dnfq_validate,
3212 },
3213
3214 {
3215 /* Q_GLIN - GET_LIST_INFO */
3216 "get_list_info",
3217 "glin",
3218 RETRIEVE,
3219 0,
3220 LIST,
3221 0,
3222 glin_fields,
3223 13,
3224 0,
3225 1,
3226 &glin_validate,
3227 },
3228
3229 {
3230 /* Q_EXLN - EXPAND_LIST_NAMES */
3231 "expand_list_names",
3232 "exln",
3233 RETRIEVE,
3234 "l",
3235 LIST,
3236 "%c = l.name",
3237 glin_fields,
3238 1,
3239 "l.name = \"%s\" and l.list_id != 0",
3240 1,
3241 0
3242 },
3243
3244 {
3245 /* Q_ALIS - ADD_LIST */
3246 "add_list",
3247 "alis",
3248 APPEND,
3249 "l",
3250 LIST,
3251 "list_id=values.value, name=%c, active=int1(%c), public=int1(%c), hidden=int1(%c), maillist=int1(%c), group=int1(%c), gid=int2(%c), acl_type=%c, acl_id=%i4, desc=%c",
3252 alis_fields,
3253 10,
3254 "values.name = \"list_id\"",
3255 0,
3256 &alis_validate,
3257 },
3258
3259 {
3260 /* Q_ULIS - UPDATE_LIST */
3261 "update_list",
3262 "ulis",
3263 UPDATE,
3264 "l",
3265 LIST,
3266 "name=%c, active=int1(%c), public=int1(%c), hidden=int1(%c), maillist=int1(%c), group=int1(%c), gid=int2(%c), acl_type=%c, acl_id=%i4, desc=%c",
3267 ulis_fields,
3268 10,
3269 "l.list_id = %d",
3270 1,
3271 &ulis_validate,
3272 },
3273
3274 {
3275 /* Q_DLIS - DELETE_LIST */
3276 "delete_list",
3277 "dlis",
3278 DELETE,
3279 "l",
3280 LIST,
3281 (char *)0,
3282 dlis_fields,
3283 0,
3284 "l.list_id = %d",
3285 1,
3286 &dlis_validate,
3287 },
3288
3289 {
3290 /* Q_AMTL - ADD_MEMBER_TO_LIST */
3291 "add_member_to_list",
3292 "amtl",
3293 APPEND,
66f4a35b 3294 0,
3295 "imembers",
3296 0,
d33e787c 3297 amtl_fields,
3298 3,
3299 (char *)0,
3300 0,
3301 &amtl_validate,
3302 },
3303
3304 {
3305 /* Q_DMFL - DELETE_MEMBER_FROM_LIST */
3306 "delete_member_from_list",
3307 "dmfl",
3308 DELETE,
66f4a35b 3309 0,
3310 "imembers",
d33e787c 3311 (char *)0,
3312 amtl_fields,
3313 0,
66f4a35b 3314 0,
d33e787c 3315 3,
66f4a35b 3316 &dmfl_validate,
d33e787c 3317 },
3318
3319 {
88343c5e 3320 /* Q_GAUS - GET_ACE_USE */
3321 "get_ace_use",
d33e787c 3322 "gaus",
3323 RETRIEVE,
3324 0,
3325 0,
3326 0,
3327 gaus_fields,
3328 2,
3329 0,
3330 2,
3331 &gaus_validate,
3332 },
3333
3334 {
3335 /* Q_QGLI - QUALIFIED_GET_LISTS */
3336 "qualified_get_lists",
3337 "qgli",
3338 RETRIEVE,
3339 0,
3340 LIST,
3341 0,
3342 qgli_fields,
3343 1,
3344 0,
3345 5,
3346 &qgli_validate,
3347 },
3348
3349 {
3350 /* Q_GMOL - GET_MEMBERS_OF_LIST */
3351 "get_members_of_list",
3352 "gmol",
3353 RETRIEVE,
3354 (char *)0,
66f4a35b 3355 "imembers",
d33e787c 3356 (char *)0,
3357 gmol_fields,
3358 0,
3359 (char *)0,
3360 1,
3361 &gmol_validate,
3362 },
3363
3364 {
3365 /* Q_GLOM - GET_LISTS_OF_MEMBER */
3366 "get_lists_of_member",
3367 "glom",
3368 RETRIEVE,
3369 0,
66f4a35b 3370 "imembers",
d33e787c 3371 0,
3372 glom_fields,
3373 6,
3374 0,
3375 2,
3376 &glom_validate,
3377 },
3378
3379 {
3380 /* Q_CMOL - COUNT_MEMBERS_OF_LIST */
3381 "count_members_of_list",
3382 "cmol",
3383 RETRIEVE,
3384 0,
66f4a35b 3385 "imembers",
d33e787c 3386 0,
3387 cmol_fields,
3388 1,
3389 0,
3390 1,
3391 &cmol_validate,
3392 },
05c3e712 3393
d33e787c 3394 {
3395 /* Q_GZCL - GET_ZEPHYR_CLASS */
3396 "get_zephyr_class",
3397 "gzcl",
3398 RETRIEVE,
3399 "z",
3400 "zephyr",
3401 "%c = z.class, %c = z.xmt_type, %c = text(z.xmt_id),%c = z.sub_type, %c = text(z.sub_id),%c = z.iws_type, %c = text(z.iws_id),%c = z.iui_type, %c = text(z.iui_id), %c=z.modtime, %c = text(z.modby), %c = z.modwith",
3402 gzcl_fields,
3403 12,
3404 "z.class = \"%s\"",
3405 1,
3406 &gzcl_validate,
3407 },
3408
3409 {
3410 /* Q_AZCL - ADD_ZEPHYR_CLASS */
3411 "add_zephyr_class",
3412 "azcl",
3413 APPEND,
3414 "z",
3415 "zephyr",
3416 "class = %c, xmt_type = %c, xmt_id = %i4, sub_type = %c, sub_id = %i4, iws_type = %c, iws_id = %i4, iui_type = %c, iui_id = %i4",
3417 azcl_fields,
3418 9,
3419 0,
3420 0,
3421 &azcl_validate,
3422 },
3423
3424 {
3425 /* Q_UZCL - UPDATE_ZEPHYR_CLASS */
3426 "update_zephyr_class",
3427 "uzcl",
3428 UPDATE,
3429 "z",
3430 "zephyr",
3431 "class = %c, xmt_type = %c, xmt_id = %i4, sub_type = %c, sub_id = %i4, iws_type = %c, iws_id = %i4, iui_type = %c, iui_id = %i4",
3432 uzcl_fields,
3433 9,
3434 "z.class = \"%s\"",
3435 1,
3436 &uzcl_validate,
3437 },
3438
3439 {
3440 /* Q_DZCL - DELETE_ZEPHYR_CLASS */
3441 "delete_zephyr_class",
3442 "dzcl",
3443 DELETE,
3444 "z",
3445 "zephyr",
3446 0,
3447 uzcl_fields,
3448 0,
3449 "z.class = \"%s\"",
3450 1,
3451 &dzcl_validate,
3452 },
fd5b2340 3453
d33e787c 3454 {
3455 /* Q_GSVC - GET_SERVICE */
3456 "get_service",
3457 "gsvc",
3458 RETRIEVE,
3459 "s",
3460 "services",
3461 "%c = s.name, %c = s.protocol, %c = text(s.port), %c = s.desc, %c = s.modtime, %c = text(s.modby), %c = s.modwith",
fd5b2340 3462 gsvc_fields,
d33e787c 3463 7,
fd5b2340 3464 "s.name = \"%s\"",
3465 1,
3466 &VDsortf,
d33e787c 3467 },
3468
3469 {
3470 /* Q_ASVC - ADD_SERVICE */
3471 "add_service",
3472 "asvc",
3473 APPEND,
3474 "s",
3475 "services",
3476 "name = %c, protocol = %c, port = int2(%c), desc = %c",
fd5b2340 3477 asvc_fields,
d33e787c 3478 4,
3479 (char *)0,
3480 0,
3481 &asvc_validate,
3482 },
3483
3484 {
3485 /* Q_DSVC - DELETE_SERVICE */
3486 "delete_service",
3487 "dsvc",
3488 DELETE,
3489 "s",
3490 "services",
3491 0,
fd5b2340 3492 asvc_fields,
d33e787c 3493 0,
3494 "s.name = \"%s\"",
3495 1,
fd5b2340 3496 &asvc_validate,
d33e787c 3497 },
fd5b2340 3498
d33e787c 3499 {
fd5b2340 3500 /* Q_GPCE - GET_PRINTCAP_ENTRY */
3501 "get_printcap_entry",
3502 "gpce",
d33e787c 3503 RETRIEVE,
3504 "p",
3505 "printcap",
fd5b2340 3506 "%c = p.name, %c = machine.name, %c = p.dir, %c = p.rp, %c = m.name, %c = text(p.auth), %c = text(p.price), %c = p.comments, %c = p.modtime, %c = text(p.modby), %c = p.modwith",
3507 gpce_fields,
3508 11,
3509 "p.name = \"%s\" and machine.mach_id = p.mach_id and m.mach_id = p.quotaserver",
d33e787c 3510 1,
3511 &VDsortf,
3512 },
3513
3514 {
fd5b2340 3515 /* Q_APCE - ADD_PRINTCAP_ENTRY */
3516 "add_printcap_entry",
3517 "apce",
d33e787c 3518 APPEND,
3519 "p",
3520 "printcap",
fd5b2340 3521 "name = %c, mach_id = %i4, dir = %c, rp = %c, quotaserver = %i4, auth = int1(%c), price = int2(%c), comments = %c",
3522 apce_fields,
3523 8,
d33e787c 3524 0,
3525 0,
fd5b2340 3526 &apce_validate,
3527 },
3528
3529 {
3530 /* Q_DPCE - DELETE_PRINTCAP_ENTRY */
3531 "delete_printcap_entry",
3532 "dpce",
3533 DELETE,
3534 "p",
3535 "printcap",
3536 0,
3537 apce_fields,
3538 0,
3539 "p.name = \"%s\"",
3540 1,
3541 &dpce_validate,
3542 },
3543
3544 {
3545 /* Q_GPCP - GET_PRINTCAP */
3546 "get_printcap",
3547 "gpcp",
3548 RETRIEVE,
3549 "p",
3550 "printcap",
3551 "%c = p.name, %c = machine.name, %c = p.dir, %c = p.rp, %c = p.comments, %c = p.modtime, %c = text(p.modby), %c = p.modwith",
3552 gpcp_fields,
3553 8,
3554 "p.name = \"%s\" and machine.mach_id = p.mach_id",
3555 1,
3556 &VDsortf,
d33e787c 3557 },
3558
3559 {
3560 /* Q_DPCP - DELETE_PRINTCAP */
3561 "delete_printcap",
3562 "dpcp",
3563 DELETE,
3564 "p",
3565 "printcap",
3566 0,
fd5b2340 3567 apce_fields,
d33e787c 3568 0,
3569 "p.name = \"%s\"",
3570 1,
fd5b2340 3571 &dpce_validate,
d33e787c 3572 },
3573
012fc215 3574 {
3575 /* Q_GPDM - GET_PALLADIUM */
3576 "get_palladium",
3577 "gpdm",
3578 RETRIEVE,
3579 "p",
3580 "palladium",
3581 "%c = p.name, %c = text(p.ident), %c = machine.name, %c = p.modtime, %c = text(p.modby), %c = p.modwith",
3582 gpdm_fields,
3583 6,
3584 "p.name = \"%s\" and machine.mach_id = p.mach_id",
3585 1,
3586 &VDsortf,
3587 },
3588
3589 {
3590 /* Q_APDM - ADD_PALLADIUM */
3591 "add_palladium",
3592 "apdm",
3593 APPEND,
3594 "p",
3595 "palladium",
3596 "name = %c, ident = int4(%c), mach_id = %i4",
3597 apdm_fields,
3598 3,
3599 0,
3600 0,
3601 &apdm_validate,
3602 },
3603
3604 {
3605 /* Q_DPDM - DELETE_PALLADIUM */
3606 "delete_palladium",
3607 "dpdm",
3608 DELETE,
3609 "p",
3610 "palladium",
3611 0,
3612 apdm_fields,
3613 0,
3614 "p.name = \"%s\"",
3615 1,
3616 &dpdm_validate,
3617 },
3618
d33e787c 3619 {
3620 /* Q_GALI - GET_ALIAS */
3621 "get_alias",
3622 "gali",
3623 RETRIEVE,
3624 "a",
3625 "alias",
3626 "%c = a.name, %c = a.type, %c = a.trans",
3627 gali_fields,
3628 3,
3629 "a.name = \"%s\" and a.type = \"%s\" and a.trans = \"%s\"",
3630 3,
3631 0,
3632 },
3633
3634 {
3635 /* Q_AALI - ADD_ALIAS */
3636 "add_alias",
3637 "aali",
3638 APPEND,
3639 "a",
3640 "alias",
3641 "name = %c, type = %c, trans = %c",
3642 aali_fields,
3643 3,
3644 (char *)0,
3645 0,
3646 &aali_validate,
3647 },
3648
3649 {
3650 /* Q_DALI - DELETE_ALIAS */
3651 "delete_alias",
3652 "dali",
3653 DELETE,
3654 "a",
3655 "alias",
3656 (char *)0,
3657 aali_fields,
3658 0,
3659 "a.name = \"%s\" and a.type = \"%s\" and a.trans = \"%s\"",
3660 3,
3661 &dali_validate,
3662 },
3663
3664 {
3665 /* Q_GVAL - GET_VALUE */
3666 "get_value",
3667 "gval",
3668 RETRIEVE,
3669 "v",
3670 "values",
3671 "%c = text(v.value)",
3672 gval_fields,
3673 1,
3674 "v.name = \"%s\"",
3675 1,
3676 &gval_validate,
3677 },
3678
3679 {
3680 /* Q_AVAL - ADD_VALUE */
3681 "add_value",
3682 "aval",
3683 APPEND,
3684 "v",
3685 "values",
3686 "name = %c, value = int4(%c)",
3687 aval_fields,
3688 2,
3689 (char *)0,
3690 0,
3691 &aval_validate,
3692 },
3693
3694 {
3695 /* Q_UVAL - UPDATE_VALUE */
3696 "update_value",
3697 "uval",
3698 UPDATE,
3699 "v",
3700 "values",
3701 "value = int4(%c)",
3702 aval_fields,
3703 1,
3704 "v.name = \"%s\"",
3705 1,
3706 &aval_validate,
3707 },
3708
3709 {
3710 /* Q_DVAL - DELETE_VALUE */
3711 "delete_value",
3712 "dval",
3713 DELETE,
3714 "v",
3715 "values",
3716 (char *)0,
3717 dval_fields,
3718 0,
3719 "v.name = \"%s\"",
3720 1,
3721 &aval_validate,
3722 },
3723
3724 {
3725 /* Q_GATS - GET_ALL_TABLE_STATS */
3726 "get_all_table_stats",
3727 "gats",
3728 RETRIEVE,
3729 "tbs",
3730 "tblstats",
3731 "%c = tbs.table, %c = text(tbs.retrieves), %c = text(tbs.appends), %c = text(tbs.updates), %c = text(tbs.deletes), %c = tbs.modtime",
3732 gats_fields,
3733 6,
3734 (char *)0,
3735 0,
3736 0,
3737 },
3738
3739};
3740
3741int QueryCount2 = (sizeof Queries2 / sizeof (struct query));
This page took 1.146801 seconds and 5 git commands to generate.