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