]> andersk Git - moira.git/blame - server/queries2.c
Don't allow +'s in listnames.
[moira.git] / server / queries2.c
CommitLineData
7ac48069 1/* $Id$
d33e787c 2 *
c44ddfa7 3 * This file defines the query dispatch table
d33e787c 4 *
7ac48069 5 * Copyright (C) 1987-1998 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>
03c05291 11#include "mr_server.h"
d33e787c 12#include "query.h"
d33e787c 13
7ac48069 14#include "mr_et.h"
d33e787c 15
d33e787c 16/* VALOBJS
17 * These are commonly used validation objects, defined here so that they
18 * can be shared.
19 */
20
d33e787c 21static struct valobj VOuser0[] = {
e2b8245f 22 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
d33e787c 23};
24
25static struct valobj VOmach0[] = {
e2b8245f 26 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
d33e787c 27};
28
29static struct valobj VOclu0[] = {
e2b8245f 30 {V_ID, 0, CLUSTERS_TABLE, "name", "clu_id", MR_CLUSTER},
d33e787c 31};
32
d1b3a4bf 33static struct valobj VOsnet0[] = {
34 {V_ID, 0, SUBNET_TABLE, "name", "snet_id", MR_SUBNET},
35};
36
d33e787c 37static struct valobj VOlist0[] = {
e2b8245f 38 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
d33e787c 39};
40
d1b3a4bf 41static struct valobj VOfilesys0[] = {
42 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
43};
44
f802fd0d 45static struct valobj VOnum0[] = {
46 {V_NUM, 0},
d33e787c 47};
48
d33e787c 49/* Validations
50 * Commonly used validation records defined here so that they may
51 * be shared.
52 */
53
54static struct validate VDmach = { VOmach0, 1 };
263a36d4 55
29028043 56static struct validate VDfix_modby = {
57 0,
58 0,
0c345c78 59 0,
60 0,
61 0,
62 0,
63 0,
64 0,
65 followup_fix_modby,
d33e787c 66};
67
d33e787c 68/* Query data */
69
186dd63b 70static char *galo2_fields[] = {
e2b8245f 71 "login", "unix_uid", "shell", "last", "first", "middle",
d33e787c 72};
73
186dd63b 74static char *galo_fields[] = {
75 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
76};
77
78static char *gual2_fields[] = {
e2b8245f 79 "login",
80 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 81 "clearid", "class", "comments", "signature", "secure",
82 "modtime", "modby", "modwith",
4ffa124a 83};
0c345c78 84
186dd63b 85static char *gual_fields[] = {
86 "login",
87 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
88 "status", "clearid", "class", "comments", "signature", "secure",
89 "modtime", "modby", "modwith",
90};
91
92static char *gubl2_fields[] = {
e2b8245f 93 "login",
94 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 95 "clearid", "class", "modtime", "modby", "modwith",
d33e787c 96};
97
186dd63b 98static char *gubl_fields[] = {
99 "login",
100 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
101 "status", "clearid", "class", "modtime", "modby", "modwith",
102};
103
5eaef520 104static struct validate gubl_validate =
d33e787c 105{
263a36d4 106 0,
107 0,
d33e787c 108 0,
109 0,
110 0,
111 0,
112 access_login,
113 0,
d55429b2 114 followup_fix_modby,
d33e787c 115};
116
186dd63b 117static char *guau2_fields[] = {
e2b8245f 118 "unix_uid",
119 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 120 "clearid", "class", "comments", "signature", "secure",
121 "modtime", "modby", "modwith",
4ffa124a 122};
0c345c78 123
186dd63b 124static char *guau_fields[] = {
125 "unix_uid",
126 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
127 "status", "clearid", "class", "comments", "signature", "secure",
128 "modtime", "modby", "modwith",
129};
130
131static char *guan2_fields[] = {
e2b8245f 132 "first", "last",
133 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 134 "clearid", "class", "comments", "signature", "secure",
135 "modtime", "modby", "modwith",
4ffa124a 136};
0c345c78 137
186dd63b 138static char *guan_fields[] = {
139 "first", "last",
140 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
141 "status", "clearid", "class", "comments", "signature", "secure",
142 "modtime", "modby", "modwith",
143};
144
5eaef520 145static struct validate guan_validate =
60452f41 146{
263a36d4 147 0,
148 0,
60452f41 149 0,
150 0,
151 0,
152 0,
153 0,
154 0,
d55429b2 155 followup_fix_modby,
60452f41 156};
157
186dd63b 158static char *guac2_fields[] = {
e2b8245f 159 "class",
160 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 161 "clearid", "class", "comments", "signature", "secure",
162 "modtime", "modby", "modwith",
4ffa124a 163};
0c345c78 164
186dd63b 165static char *guac_fields[] = {
166 "class",
167 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
168 "status", "clearid", "class", "comments", "signature", "secure",
169 "modtime", "modby", "modwith",
170};
171
172static char *guam2_fields[] = {
e2b8245f 173 "clearid",
174 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 175 "clearid", "class", "comments", "signature", "secure",
176 "modtime", "modby", "modwith",
4ffa124a 177};
0c345c78 178
186dd63b 179static char *guam_fields[] = {
180 "clearid",
181 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
182 "status", "clearid", "class", "comments", "signature", "secure",
183 "modtime", "modby", "modwith",
184};
185
186static char *gubu2_fields[] = {
e2b8245f 187 "unix_uid",
188 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 189 "clearid", "class", "modtime", "modby", "modwith",
d33e787c 190};
191
186dd63b 192static char *gubu_fields[] = {
193 "unix_uid",
194 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
195 "status", "clearid", "class", "modtime", "modby", "modwith",
196};
197
5eaef520 198static struct validate gubu_validate =
f9f5c199 199{
f802fd0d 200 VOnum0,
201 1,
f9f5c199 202 0,
203 0,
204 0,
205 0,
206 access_login,
207 0,
208 followup_fix_modby,
209};
210
186dd63b 211static char *gubn2_fields[] = {
e2b8245f 212 "first", "last",
213 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 214 "clearid", "class", "modtime", "modby", "modwith",
d33e787c 215};
216
186dd63b 217static char *gubn_fields[] = {
218 "first", "last",
219 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
220 "status", "clearid", "class", "modtime", "modby", "modwith",
221};
222
99e09b48 223static struct validate gubn_validate =
224{
263a36d4 225 0,
226 0,
0c345c78 227 0,
228 0,
229 0,
230 0,
231 0,
232 0,
233 followup_fix_modby,
99e09b48 234};
235
186dd63b 236static char *gubc2_fields[] = {
e2b8245f 237 "class",
238 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 239 "clearid", "class", "modtime", "modby", "modwith",
d33e787c 240};
241
186dd63b 242static char *gubc_fields[] = {
243 "class",
244 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
245 "status", "clearid", "class", "modtime", "modby", "modwith",
246};
247
248static char *gubm2_fields[] = {
e2b8245f 249 "clearid",
250 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 251 "clearid", "class", "modtime", "modby", "modwith",
d33e787c 252};
253
186dd63b 254static char *gubm_fields[] = {
255 "clearid",
256 "login", "unix_uid", "shell", "winconsoleshell", "last", "first",
257 "middle", "status", "clearid", "class", "modtime", "modby", "modwith",
258};
259
260static char *auac2_fields[] = {
e2b8245f 261 "login", "unix_uid", "shell", "last", "first", "middle", "status",
262 "clearid", "class", "comments", "signature", "secure",
d33e787c 263};
264
186dd63b 265static char *auac_fields[] = {
266 "login", "unix_uid", "shell", "winconsoleshell", "last", "first",
267 "middle", "status", "clearid", "class", "comments", "signature", "secure",
268};
269
270static struct valobj auac2_valobj[] = {
e2b8245f 271 {V_CHAR, 0, USERS_TABLE, "login"},
f802fd0d 272 {V_NUM, 1},
e2b8245f 273 {V_CHAR, 2, USERS_TABLE, "shell"},
274 {V_CHAR, 3, USERS_TABLE, "last"},
275 {V_CHAR, 4, USERS_TABLE, "first"},
276 {V_CHAR, 5, USERS_TABLE, "middle"},
f802fd0d 277 {V_NUM, 6},
e2b8245f 278 {V_CHAR, 7, USERS_TABLE, "clearid"},
279 {V_TYPE, 8, 0, "class", 0, MR_BAD_CLASS},
03c05291 280 {V_ID, 9, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
9c45837e 281 {V_NUM, 11},
d33e787c 282};
283
186dd63b 284static struct valobj auac_valobj[] = {
285 {V_CHAR, 0, USERS_TABLE, "login"},
286 {V_NUM, 1},
287 {V_CHAR, 2, USERS_TABLE, "shell"},
288 {V_CHAR, 3, USERS_TABLE, "winconsoleshell"},
289 {V_CHAR, 4, USERS_TABLE, "last"},
290 {V_CHAR, 5, USERS_TABLE, "first"},
291 {V_CHAR, 6, USERS_TABLE, "middle"},
292 {V_NUM, 7},
293 {V_CHAR, 8, USERS_TABLE, "clearid"},
294 {V_TYPE, 9, 0, "class", 0, MR_BAD_CLASS},
295 {V_ID, 10, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
296 {V_NUM, 12},
297};
298
299static struct validate auac2_validate = {
300 auac2_valobj,
301 11,
302 "login",
303 "login = '%s'",
304 1,
305 "users_id",
306 0,
307 setup_ausr,
308 followup_ausr,
309};
310
4ffa124a 311static struct validate auac_validate = {
312 auac_valobj,
186dd63b 313 12,
314 "login",
315 "login = '%s'",
316 1,
317 "users_id",
318 0,
319 setup_ausr,
320 followup_ausr,
321};
322
323static struct validate ausr2_validate = {
324 auac2_valobj,
325 9,
e2b8245f 326 "login",
03c05291 327 "login = '%s'",
4ffa124a 328 1,
e2b8245f 329 "users_id",
4ffa124a 330 0,
331 setup_ausr,
332 followup_ausr,
333};
0c345c78 334
d33e787c 335static struct validate ausr_validate = {
4ffa124a 336 auac_valobj,
186dd63b 337 10,
e2b8245f 338 "login",
03c05291 339 "login = '%s'",
d33e787c 340 1,
e2b8245f 341 "users_id",
d33e787c 342 0,
343 setup_ausr,
344 followup_ausr,
345};
346
347static char *rusr_fields[] = {
b4bfb4d1 348 "unix_uid", "login", "pobox_type"
03c05291 349};
d33e787c 350
ba408d23 351static struct valobj rusr_valobj[] = {
f802fd0d 352 {V_NUM, 0},
8bf97744 353 {V_CHAR, 1, USERS_TABLE, "login"},
ba408d23 354};
355
d33e787c 356static struct validate rusr_validate = {
ba408d23 357 rusr_valobj,
b4bfb4d1 358 2,
d33e787c 359 0,
360 0,
361 0,
362 0,
363 0,
364 register_user,
365 0,
366};
367
186dd63b 368static char *uuac2_fields[] = {
e2b8245f 369 "login",
370 "newlogin", "unix_uid", "shell", "last", "first", "middle", "status",
371 "clearid", "class", "comments", "signature", "secure",
d33e787c 372};
373
186dd63b 374static char *uuac_fields[] = {
375 "login",
376 "newlogin", "unix_uid", "shell", "winconsoleshell", "last", "first",
377 "middle", "status", "clearid", "class", "comments", "signature", "secure",
378};
379
380static struct valobj uuac2_valobj[] = {
e2b8245f 381 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
382 {V_RENAME, 1, USERS_TABLE, "login", "users_id", MR_NOT_UNIQUE},
f802fd0d 383 {V_NUM, 2},
e2b8245f 384 {V_CHAR, 3, USERS_TABLE, "shell"},
385 {V_CHAR, 4, USERS_TABLE, "first"},
386 {V_CHAR, 5, USERS_TABLE, "last"},
387 {V_CHAR, 6, USERS_TABLE, "middle"},
f802fd0d 388 {V_NUM, 7},
e2b8245f 389 {V_CHAR, 8, USERS_TABLE, "clearid"},
390 {V_TYPE, 9, 0, "class", 0, MR_BAD_CLASS},
03c05291 391 {V_ID, 10, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
f802fd0d 392 {V_NUM, 12},
d33e787c 393};
186dd63b 394
395static struct valobj uuac_valobj[] = {
396 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
397 {V_RENAME, 1, USERS_TABLE, "login", "users_id", MR_NOT_UNIQUE},
398 {V_NUM, 2},
399 {V_CHAR, 3, USERS_TABLE, "shell"},
400 {V_CHAR, 4, USERS_TABLE, "winconsoleshell"},
401 {V_CHAR, 5, USERS_TABLE, "first"},
402 {V_CHAR, 6, USERS_TABLE, "last"},
403 {V_CHAR, 7, USERS_TABLE, "middle"},
404 {V_NUM, 8},
405 {V_CHAR, 9, USERS_TABLE, "clearid"},
406 {V_TYPE, 10, 0, "class", 0, MR_BAD_CLASS},
407 {V_ID, 11, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
408 {V_NUM, 13},
409};
410
411static struct validate uuac2_validate = {
412 uuac2_valobj,
413 12,
414 0,
415 0,
416 0,
417 "users_id",
418 0,
419 setup_ausr,
420 set_modtime_by_id,
421};
d33e787c 422
4ffa124a 423static struct validate uuac_validate = {
0c345c78 424 uuac_valobj,
186dd63b 425 13,
426 0,
427 0,
428 0,
429 "users_id",
430 0,
431 setup_ausr,
432 set_modtime_by_id,
433};
434
435static struct validate uusr2_validate = {
436 uuac2_valobj,
437 10,
0c345c78 438 0,
439 0,
440 0,
e2b8245f 441 "users_id",
0c345c78 442 0,
443 setup_ausr,
d55429b2 444 set_modtime_by_id,
4ffa124a 445};
0c345c78 446
d33e787c 447static struct validate uusr_validate = {
4ffa124a 448 uuac_valobj,
d1b3a4bf 449 11,
d33e787c 450 0,
451 0,
452 0,
e2b8245f 453 "users_id",
d33e787c 454 0,
4ffa124a 455 setup_ausr,
d33e787c 456 set_modtime_by_id,
457};
458
459static char *uush_fields[] = {
e2b8245f 460 "login",
461 "shell",
d33e787c 462};
463
03c05291 464static struct valobj uush_valobj[] = {
e2b8245f 465 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
466 {V_CHAR, 1, USERS_TABLE, "shell"},
03c05291 467};
468
d33e787c 469static struct validate uush_validate = {
03c05291 470 uush_valobj,
d1b3a4bf 471 2,
d33e787c 472 0,
473 0,
474 0,
e2b8245f 475 "users_id",
d33e787c 476 access_user,
477 0,
a39342a9 478 set_finger_modtime,
d33e787c 479};
480
29dbfca4 481static char *uuws_fields[] = {
482 "login",
483 "winconsoleshell",
484};
485
486static struct valobj uuws_valobj[] = {
487 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
488 {V_CHAR, 1, USERS_TABLE, "winconsoleshell"},
489};
490
491static struct validate uuws_validate = {
492 uuws_valobj,
493 2,
494 0,
495 0,
496 0,
497 "users_id",
498 access_user,
499 0,
500 set_finger_modtime,
501};
502
d33e787c 503static char *uust_fields[] = {
e2b8245f 504 "login",
505 "status",
d33e787c 506};
507
4ffa124a 508static char *uuss_fields[] = {
e2b8245f 509 "login",
510 "secure",
4ffa124a 511};
0c345c78 512
f802fd0d 513static struct valobj uust_valobj[] = {
f802fd0d 514 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
515 {V_NUM, 1},
516 {V_NUM, 2},
517};
518
d33e787c 519static struct validate uust_validate = {
f802fd0d 520 uust_valobj,
d1b3a4bf 521 2,
d33e787c 522 0,
523 0,
524 0,
e2b8245f 525 "users_id",
d33e787c 526 0,
527 0,
528 set_modtime_by_id,
529};
530
531static char *dusr_fields[] = {
e2b8245f 532 "login",
d33e787c 533};
534
535static struct validate dusr_validate = {
d1b3a4bf 536 VOuser0,
537 1,
d33e787c 538 0,
539 0,
540 0,
541 0,
542 0,
543 setup_dusr,
544 0,
545};
546
77eb4bdf 547static char *aurv_fields[] = {
548 "login", "reservation",
549};
550
551static struct validate aurv_validate = {
552 VOuser0,
553 1,
554 0,
555 0,
556 0,
557 "users_id",
558 0,
559 0,
560 do_user_reservation,
561};
562
563static char *gurv_fields[] = {
564 "login",
565 "reservation",
566};
567
568static struct validate gurv_validate = {
569 VOuser0,
570 1,
571 0,
572 0,
573 0,
574 0,
575 0,
576 0,
577 get_user_reservations,
578};
579
580static char *gubr_fields[] = {
581 "reservation",
582 "login",
583};
584
585static struct validate gubr_validate = {
586 0,
587 0,
588 0,
589 0,
590 0,
591 0,
592 0,
593 0,
594 get_user_by_reservation,
595};
596
e2b8245f 597static char *gkum_fields[] = { "login", "kerberos",
598 "login", "kerberos" };
012fc215 599
e2b8245f 600static char *akum_fields[] = { "login", "kerberos" };
012fc215 601
602static struct valobj akum_valobj[] =
603{
e2b8245f 604 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
03c05291 605 {V_ID, 1, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
012fc215 606};
607
608static struct validate akum_validate =
609{
0c345c78 610 akum_valobj,
d1b3a4bf 611 2,
e2b8245f 612 "users_id",
3e8c655c 613 "users_id = %d or string_id = %d",
0c345c78 614 2,
e2b8245f 615 "users_id",
0c345c78 616 access_user,
996ffd1d 617 0,
135dcb80 618 0,
619};
012fc215 620
621static struct validate dkum_validate =
622{
0c345c78 623 akum_valobj,
d1b3a4bf 624 2,
e2b8245f 625 "users_id",
3e8c655c 626 "users_id = %d and string_id = %d",
0c345c78 627 2,
e2b8245f 628 "users_id",
0c345c78 629 access_user,
630 0,
135dcb80 631 0,
632};
012fc215 633
d33e787c 634static char *gfbl_fields[] = {
e2b8245f 635 "login",
636 "login", "fullname", "nickname", "home_addr",
5eaef520 637 "home_phone", "office_addr", "office_phone", "department",
8db06f75 638 "affiliation", "modtime", "modby", "modwith",
d33e787c 639};
640
641static struct validate gfbl_validate = {
642 VOuser0,
643 1,
644 0,
645 0,
646 0,
647 0,
648 access_user,
649 0,
650 followup_fix_modby,
651};
652
653static char *ufbl_fields[] = {
e2b8245f 654 "login",
d33e787c 655 "fullname", "nickname", "home_addr",
5eaef520 656 "home_phone", "office_addr", "office_phone", "department",
4e5ec77f 657 "affiliation",
d33e787c 658};
659
03c05291 660static struct valobj ufbl_valobj[] = {
e2b8245f 661 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
03c05291 662 {V_LEN, 1, USERS_TABLE, "fullname"},
663 {V_LEN, 2, USERS_TABLE, "nickname"},
664 {V_LEN, 3, USERS_TABLE, "home_addr"},
665 {V_LEN, 4, USERS_TABLE, "home_phone"},
666 {V_LEN, 5, USERS_TABLE, "office_addr"},
667 {V_LEN, 6, USERS_TABLE, "office_phone"},
668 {V_LEN, 7, USERS_TABLE, "department"},
669 {V_LEN, 8, USERS_TABLE, "affiliation"},
670};
671
d33e787c 672static struct validate ufbl_validate = {
03c05291 673 ufbl_valobj,
d1b3a4bf 674 9,
d33e787c 675 0,
676 0,
677 0,
678 0,
679 access_user,
680 0,
681 set_finger_modtime,
682};
683
684static char *gpob_fields[] = {
e2b8245f 685 "login",
d6d830a1 686 "login", "type", "box", "address", "modtime", "modby", "modwith",
d33e787c 687};
688
689static struct validate gpob_validate = {
690 VOuser0,
691 1,
692 "potype",
5eaef520 693 "potype != 'NONE' and users_id = %d",
d33e787c 694 1,
695 0,
696 access_user,
697 0,
698 followup_gpob,
699};
700
701static char *gpox_fields[] = {
e2b8245f 702 "login", "type", "box",
d33e787c 703};
704
705static struct validate gpox_validate = {
d1b3a4bf 706 0,
707 0,
d33e787c 708 0,
709 0,
710 0,
711 0,
712 0,
713 0,
714 followup_gpob,
715};
716
717static char *spob_fields[] = {
e2b8245f 718 "login", "type", "box",
d33e787c 719};
720
721static struct valobj spob_valobj[] = {
e2b8245f 722 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
03c05291 723 {V_TYPE, 1, 0, "pobox", 0, MR_TYPE},
d33e787c 724};
725
726static struct validate spob_validate = /* SET_POBOX */
727{
728 spob_valobj,
d1b3a4bf 729 2,
d33e787c 730 0,
731 0,
732 0,
733 0,
f659afb2 734 access_spob,
d33e787c 735 0,
736 set_pobox,
737};
738
739static struct validate spop_validate = /* SET_POBOX_POP */
740{
d1b3a4bf 741 VOuser0,
742 1,
d33e787c 743 0,
744 0,
745 0,
746 0,
747 access_user,
17cb3de8 748 0,
749 set_pobox_pop,
d33e787c 750};
751
752static struct validate dpob_validate = /* DELETE_POBOX */
753{
d1b3a4bf 754 VOuser0,
755 1,
d33e787c 756 0,
757 0,
758 0,
759 0,
760 access_user,
761 setup_dpob,
762 set_pobox_modtime,
763};
764
765static char *gmac_fields[] = {
e2b8245f 766 "name",
8db06f75 767 "name", "type", "modtime", "modby", "modwith",
d33e787c 768};
769
a66a2204 770static char *ghst_fields[] = {
e2b8245f 771 "name", "address", "location", "network",
8db06f75 772 "name", "vendor", "model", "os", "location", "contact", "use",
773 "status", "status_change", "network", "address", "ace_type",
774 "ace_name", "admin_comment", "ops_comment", "created", "creator",
775 "inuse", "modtime", "modby", "modwith",
d33e787c 776};
777
5eaef520 778static struct validate ghst_validate = {
263a36d4 779 0,
780 0,
a66a2204 781 0,
782 0,
783 0,
784 0,
785 access_host,
786 0,
787 followup_ghst,
788};
789
2884200f 790static char *ghha_fields[] = {
791 "name",
792 "hwaddr",
793};
794
a66a2204 795static char *ahst_fields[] = {
8db06f75 796 "name", "vendor", "model", "os", "location", "contact", "use",
797 "status", "subnet", "address", "ace_type", "ace_name",
798 "admin_comment", "ops_comment",
a66a2204 799};
800
801static struct valobj ahst_valobj[] = {
e2b8245f 802 {V_CHAR, 0, MACHINE_TABLE, "name"},
03c05291 803 {V_CHAR, 1, MACHINE_TABLE, "vendor"},
804 {V_CHAR, 2, MACHINE_TABLE, "model"},
805 {V_CHAR, 3, MACHINE_TABLE, "os"},
806 {V_CHAR, 4, MACHINE_TABLE, "location"},
807 {V_CHAR, 5, MACHINE_TABLE, "contact"},
f802fd0d 808 {V_NUM, 6},
809 {V_NUM, 7},
e2b8245f 810 {V_ID, 8, SUBNET_TABLE, "name", "snet_id", MR_SUBNET},
811 {V_TYPE, 10, 0, "ace_type", 0, MR_ACE},
a66a2204 812 {V_TYPEDATA, 11, 0, 0, 0, MR_ACE},
03c05291 813 {V_ID, 12, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
814 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
d33e787c 815};
816
a66a2204 817static struct validate ahst_validate = {
818 ahst_valobj,
d1b3a4bf 819 13,
e2b8245f 820 "name",
03c05291 821 "name = UPPER('%s')",
d33e787c 822 1,
e2b8245f 823 "mach_id",
a66a2204 824 access_host,
825 setup_ahst,
0ec43029 826 set_uppercase_modtime,
d33e787c 827};
828
a66a2204 829static char *uhst_fields[] = {
e2b8245f 830 "name",
8db06f75 831 "newname", "vendor", "model", "os", "location", "contact", "use",
832 "status", "subnet", "address", "ace_type", "ace_name",
833 "admin_comment", "ops_comment",
d33e787c 834};
835
a66a2204 836static struct valobj uhst_valobj[] = {
03c05291 837 {V_CHAR, 0, MACHINE_TABLE, "name"},
e2b8245f 838 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
839 {V_RENAME, 1, MACHINE_TABLE, "name", "mach_id", MR_NOT_UNIQUE},
03c05291 840 {V_CHAR, 2, MACHINE_TABLE, "vendor"},
841 {V_CHAR, 3, MACHINE_TABLE, "model"},
842 {V_CHAR, 4, MACHINE_TABLE, "os"},
843 {V_CHAR, 5, MACHINE_TABLE, "location"},
f802fd0d 844 {V_CHAR, 6, MACHINE_TABLE, "contact"},
845 {V_NUM, 7},
846 {V_NUM, 8},
e2b8245f 847 {V_ID, 9, SUBNET_TABLE, "name", "snet_id", MR_SUBNET},
848 {V_TYPE, 11, 0, "ace_type", 0, MR_ACE},
a66a2204 849 {V_TYPEDATA, 12, 0, 0, 0, MR_ACE},
03c05291 850 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
851 {V_ID, 14, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
d33e787c 852};
853
a66a2204 854static struct validate uhst_validate = {
855 uhst_valobj,
d1b3a4bf 856 15,
d33e787c 857 0,
858 0,
859 0,
e2b8245f 860 "mach_id",
a66a2204 861 access_host,
862 setup_ahst,
d33e787c 863 set_modtime_by_id,
864};
865
2884200f 866static char *uhha_fields[] = {
867 "name",
868 "hwaddr"
869};
870
871static struct valobj uhha_valobj[] = {
872 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
873 {V_CHAR, 1, MACHINE_TABLE, "hwaddr"},
874};
875
876static struct validate uhha_validate = {
877 uhha_valobj,
878 2,
879 0,
880 0,
881 0,
882 "mach_id",
883 0,
884 setup_uhha,
885 set_modtime_by_id,
886};
887
a66a2204 888static char *dhst_fields[] = {
e2b8245f 889 "name",
d33e787c 890};
891
a66a2204 892static struct validate dhst_validate = {
d1b3a4bf 893 VOmach0,
894 1,
d33e787c 895 0,
896 0,
897 0,
898 0,
899 0,
900 setup_dmac,
901 0,
902};
903
a66a2204 904static char *ghal_fields[] = {
e2b8245f 905 "alias", "canonical_hostname",
906 "alias", "canonical_hostname"
a66a2204 907};
908
a66a2204 909static struct validate ghal_validate = {
263a36d4 910 0,
911 0,
a66a2204 912 0,
913 0,
914 0,
915 0,
65adfb53 916 access_ahal,
a66a2204 917 0,
03c05291 918 0,
a66a2204 919};
920
921static struct valobj ahal_valobj[] = {
e2b8245f 922 {V_CHAR, 0, HOSTALIAS_TABLE, "name"},
e2b8245f 923 {V_ID, 1, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
a66a2204 924};
925
926static struct validate ahal_validate = {
927 ahal_valobj,
263a36d4 928 2,
e2b8245f 929 "name",
996ffd1d 930 "name = UPPER('%s')",
a66a2204 931 1,
e2b8245f 932 "mach_id",
a66a2204 933 access_ahal,
934 setup_ahal,
935 0,
936};
937
938static struct valobj dhal_valobj[] = {
e2b8245f 939 {V_ID, 1, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
a66a2204 940};
941
942static struct validate dhal_validate = {
943 dhal_valobj,
263a36d4 944 1,
e2b8245f 945 "name",
996ffd1d 946 "name = UPPER('%s') AND mach_id = %d",
a66a2204 947 2,
e2b8245f 948 "mach_id",
a66a2204 949 access_ahal,
950 0,
951 0,
952};
953
3c1d412c 954static char *gsnt_fields[] = {
e2b8245f 955 "name",
8db06f75 956 "name", "description", "address", "mask", "low", "high", "prefix",
957 "ace_type", "ace_name", "modtime", "modby", "modwith"
3c1d412c 958};
959
3c1d412c 960static struct validate gsnt_validate = {
263a36d4 961 0,
962 0,
3c1d412c 963 0,
964 0,
965 0,
966 0,
a70337e7 967 access_snt,
3c1d412c 968 0,
969 followup_gsnt,
970};
971
972static char *asnt_fields[] = {
8db06f75 973 "name", "description", "address", "mask", "low", "high", "prefix",
974 "ace_type", "ace_name",
3c1d412c 975};
976
977static struct valobj asnt_valobj[] = {
e2b8245f 978 {V_CHAR, 0, SUBNET_TABLE, "name"},
979 {V_LEN, 1, SUBNET_TABLE, "description"},
f802fd0d 980 {V_NUM, 2},
981 {V_NUM, 3},
982 {V_NUM, 4},
983 {V_NUM, 5},
03c05291 984 {V_LEN, 6, SUBNET_TABLE, "prefix"},
e2b8245f 985 {V_TYPE, 7, 0, "ace_type", 0, MR_ACE},
bd8c26ff 986 {V_TYPEDATA, 8, 0, 0, 0, MR_ACE},
3c1d412c 987};
988
5eaef520 989static struct validate asnt_validate =
3c1d412c 990{
5eaef520 991 asnt_valobj,
d1b3a4bf 992 9,
e2b8245f 993 "name",
5eaef520 994 "name = UPPER('%s')",
995 1,
e2b8245f 996 "snet_id",
5eaef520 997 0,
998 prefetch_value,
999 set_uppercase_modtime,
3c1d412c 1000};
1001
1002static char *usnt_fields[] = {
e2b8245f 1003 "name",
8db06f75 1004 "newname", "description", "address", "mask", "low", "high", "prefix",
1005 "ace_type", "ace_name",
3c1d412c 1006};
1007
1008static struct valobj usnt_valobj[] = {
e2b8245f 1009 {V_ID, 0, SUBNET_TABLE, "name", "snet_id", MR_NO_MATCH},
1010 {V_RENAME, 1, SUBNET_TABLE, "name", "snet_id", MR_NOT_UNIQUE},
1011 {V_LEN, 2, SUBNET_TABLE, "description"},
f802fd0d 1012 {V_NUM, 3},
1013 {V_NUM, 4},
1014 {V_NUM, 5},
1015 {V_NUM, 6},
03c05291 1016 {V_LEN, 7, SUBNET_TABLE, "prefix"},
e2b8245f 1017 {V_TYPE, 8, 0, "ace_type", 0, MR_ACE},
bd8c26ff 1018 {V_TYPEDATA, 9, 0, 0, 0, MR_ACE},
3c1d412c 1019};
1020
5eaef520 1021static struct validate usnt_validate =
3c1d412c 1022{
5eaef520 1023 usnt_valobj,
d1b3a4bf 1024 10,
e2b8245f 1025 "name",
5eaef520 1026 "snet_id = %d",
1027 1,
e2b8245f 1028 "snet_id",
5eaef520 1029 0,
1030 0,
1031 set_modtime_by_id,
3c1d412c 1032};
1033
1034static char *dsnt_fields[] = {
e2b8245f 1035 "name",
3c1d412c 1036};
1037
3c1d412c 1038static struct validate dsnt_validate = {
d1b3a4bf 1039 VOsnet0,
1040 1,
3c1d412c 1041 0,
1042 0,
1043 0,
1044 0,
1045 0,
1046 setup_dsnt,
1047 0,
1048};
1049
d33e787c 1050static char *gclu_fields[] = {
e2b8245f 1051 "name",
8db06f75 1052 "name", "description", "location", "modtime", "modby", "modwith",
d33e787c 1053};
1054
1055static char *aclu_fields[] = {
e2b8245f 1056 "name", "description", "location",
d33e787c 1057};
0c345c78 1058
339a00a3 1059static struct valobj aclu_valobj[] = {
e2b8245f 1060 {V_CHAR, 0, CLUSTERS_TABLE, "name"},
1061 {V_LEN, 1, CLUSTERS_TABLE, "description"},
1062 {V_LEN, 2, CLUSTERS_TABLE, "location"},
339a00a3 1063};
1064
5eaef520 1065static struct validate aclu_validate =
d33e787c 1066{
339a00a3 1067 aclu_valobj,
d1b3a4bf 1068 3,
e2b8245f 1069 "name",
03c05291 1070 "name = '%s'",
d33e787c 1071 1,
e2b8245f 1072 "clu_id",
d33e787c 1073 0,
45bf7573 1074 prefetch_value,
d33e787c 1075 set_modtime,
1076};
1077
1078static char *uclu_fields[] = {
e2b8245f 1079 "name",
1080 "newname", "description", "location",
d33e787c 1081};
1082
1083static struct valobj uclu_valobj[] = {
e2b8245f 1084 {V_ID, 0, CLUSTERS_TABLE, "name", "clu_id", MR_CLUSTER},
1085 {V_RENAME, 1, CLUSTERS_TABLE, "name", "clu_id", MR_NOT_UNIQUE},
1086 {V_LEN, 2, CLUSTERS_TABLE, "description"},
1087 {V_LEN, 3, CLUSTERS_TABLE, "location"},
d33e787c 1088};
1089
1090static struct validate uclu_validate = {
1091 uclu_valobj,
d1b3a4bf 1092 4,
d33e787c 1093 0,
1094 0,
1095 0,
e2b8245f 1096 "clu_id",
d33e787c 1097 0,
1098 0,
1099 set_modtime_by_id,
1100};
1101
1102static char *dclu_fields[] = {
e2b8245f 1103 "name",
d33e787c 1104};
1105
1106static struct validate dclu_validate = {
0c345c78 1107 VOclu0,
1108 1,
1109 0,
1110 0,
1111 0,
1112 0,
1113 0,
1114 setup_dclu,
1115 0,
d33e787c 1116};
1117
1118static char *gmcm_fields[] = {
e2b8245f 1119 "machine", "cluster",
1120 "machine", "cluster",
d33e787c 1121};
1122
1123static struct valobj amtc_valobj[] = /* ADD_MACHINE_TO_CLUSTER */
1124{ /* DELETE_MACHINE_FROM_CLUSTER */
e2b8245f 1125 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
1126 {V_ID, 1, CLUSTERS_TABLE, "name", "clu_id", MR_CLUSTER},
d33e787c 1127};
1128
1129static struct validate amtc_validate = /* for amtc and dmfc */
1130{
1131 amtc_valobj,
1132 2,
e2b8245f 1133 "mach_id",
3e8c655c 1134 "mach_id = %d and clu_id = %d",
d33e787c 1135 2,
1136 0,
1137 0,
1138 0,
1139 set_mach_modtime_by_id,
1140};
1141
1142static char *gcld_fields[] = {
e2b8245f 1143 "cluster", "serv_label",
1144 "cluster", "serv_label", "serv_cluster",
88343c5e 1145};
1146
1147static char *acld_fields[] = {
e2b8245f 1148 "cluster", "serv_label", "serv_cluster",
d33e787c 1149};
1150
1151static struct valobj acld_valobj[] =
1152{
e2b8245f 1153 {V_ID, 0, CLUSTERS_TABLE, "name", "clu_id", MR_CLUSTER},
03c05291 1154 {V_CHAR, 1, SVC_TABLE, "serv_label"},
1155 {V_CHAR, 2, SVC_TABLE, "serv_cluster"}
d33e787c 1156};
1157
5eaef520 1158static struct validate acld_validate =
1159{
d33e787c 1160 acld_valobj,
99e09b48 1161 3,
e2b8245f 1162 "clu_id",
03c05291 1163 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
99e09b48 1164 3,
1165 0,
1166 0,
1167 0,
1168 set_cluster_modtime_by_id,
1169};
1170
5eaef520 1171static struct validate dcld_validate =
1172{
d1b3a4bf 1173 VOclu0,
03c05291 1174 1,
e2b8245f 1175 "clu_id",
3e8c655c 1176 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
d33e787c 1177 3,
1178 0,
1179 0,
1180 0,
1181 set_cluster_modtime_by_id,
1182};
1183
44da57b2 1184static char *glin2_fields[] = {
e2b8245f 1185 "name",
1186 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
8db06f75 1187 "ace_type", "ace_name", "description", "modtime", "modby", "modwith",
99e09b48 1188};
1189
59c3208b 1190static char *glin3_fields[] = {
44da57b2 1191 "name",
1192 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1193 "nfsgroup", "ace_type", "ace_name", "description", "modtime", "modby",
1194 "modwith",
1195};
1196
59c3208b 1197static char *glin_fields[] = {
1198 "name",
1199 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
4529bc5f 1200 "nfsgroup", "ace_type", "ace_name", "memace_type", "memace_name",
59c3208b 1201 "description", "modtime", "modby", "modwith",
1202};
1203
03c05291 1204static struct validate glin_validate = {
0c345c78 1205 0,
0c345c78 1206 0,
1207 0,
1208 0,
1209 0,
1210 0,
03c05291 1211 access_vis_list_by_name,
0c345c78 1212 0,
263a36d4 1213 followup_glin,
d33e787c 1214};
1215
44da57b2 1216static char *alis2_fields[] = {
e2b8245f 1217 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1218 "ace_type", "ace_name", "description",
d33e787c 1219};
1220
44da57b2 1221static struct valobj alis2_valobj[] = {
e2b8245f 1222 {V_CHAR, 0, LIST_TABLE, "name"},
f802fd0d 1223 {V_NUM, 1},
1224 {V_NUM, 2},
1225 {V_NUM, 3},
1226 {V_NUM, 4},
1227 {V_NUM, 5},
1228 {V_NUM, 6},
e2b8245f 1229 {V_TYPE, 7, 0, "ace_type", 0, MR_ACE},
1230 {V_TYPEDATA, 8, 0, 0, "list_id", MR_ACE},
1231 {V_LEN, 9, LIST_TABLE, "description"},
d33e787c 1232};
1233
44da57b2 1234static struct validate alis2_validate = {
1235 alis2_valobj,
1236 10,
1237 "name",
1238 "name = '%s'",
1239 1,
1240 "list_id",
1241 0,
1242 setup_alis,
1243 set_modtime,
1244};
1245
59c3208b 1246static char *alis3_fields[] = {
44da57b2 1247 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1248 "nfsgroup", "ace_type", "ace_name", "description",
1249};
1250
59c3208b 1251static struct valobj alis3_valobj[] = {
44da57b2 1252 {V_CHAR, 0, LIST_TABLE, "name"},
1253 {V_NUM, 1},
1254 {V_NUM, 2},
1255 {V_NUM, 3},
1256 {V_NUM, 4},
1257 {V_NUM, 5},
1258 {V_NUM, 6},
1259 {V_NUM, 7},
1260 {V_TYPE, 8, 0, "ace_type", 0, MR_ACE},
1261 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
1262 {V_LEN, 10, LIST_TABLE, "description"},
1263};
1264
59c3208b 1265static struct validate alis3_validate = {
1266 alis3_valobj,
1267 11,
1268 "name",
1269 "name = '%s'",
1270 1,
1271 "list_id",
1272 0,
1273 setup_alis,
1274 set_modtime,
1275};
1276
1277static char *alis_fields[] = {
1278 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1279 "nfsgroup", "ace_type", "ace_name", "memace_type", "memace_name",
1280 "description",
1281};
1282
1283static struct valobj alis_valobj[] = {
1284 {V_CHAR, 0, LIST_TABLE, "name"},
1285 {V_NUM, 1},
1286 {V_NUM, 2},
1287 {V_NUM, 3},
1288 {V_NUM, 4},
1289 {V_NUM, 5},
1290 {V_NUM, 6},
1291 {V_NUM, 7},
1292 {V_TYPE, 8, 0, "ace_type", 0, MR_ACE},
1293 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
1294 {V_TYPE, 10, 0, "ace_type", 0, MR_ACE},
1295 {V_TYPEDATA, 11, 0, 0, "list_id", MR_ACE},
1296 {V_LEN, 12, LIST_TABLE, "description"},
1297};
1298
03c05291 1299static struct validate alis_validate = {
1300 alis_valobj,
59c3208b 1301 13,
e2b8245f 1302 "name",
03c05291 1303 "name = '%s'",
d33e787c 1304 1,
e2b8245f 1305 "list_id",
d33e787c 1306 0,
03c05291 1307 setup_alis,
1308 set_modtime,
d33e787c 1309};
1310
44da57b2 1311static char *ulis2_fields[] = {
e2b8245f 1312 "name",
03c05291 1313 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
e2b8245f 1314 "ace_type", "ace_name", "description",
d33e787c 1315};
1316
44da57b2 1317static struct valobj ulis2_valobj[] = {
e2b8245f 1318 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
1319 {V_RENAME, 1, LIST_TABLE, "name", "list_id", MR_NOT_UNIQUE},
f802fd0d 1320 {V_NUM, 2},
1321 {V_NUM, 3},
1322 {V_NUM, 4},
1323 {V_NUM, 5},
1324 {V_NUM, 6},
1325 {V_NUM, 7},
1326 {V_TYPE, 8, 0, "ace_type", 0, MR_ACE},
e2b8245f 1327 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
e2b8245f 1328 {V_LEN, 10, LIST_TABLE, "description"},
d33e787c 1329};
1330
44da57b2 1331static struct validate ulis2_validate = {
1332 ulis2_valobj,
d1b3a4bf 1333 11,
e2b8245f 1334 "name",
03c05291 1335 "list_id = %d",
d33e787c 1336 1,
e2b8245f 1337 "list_id",
03c05291 1338 access_list,
1339 setup_alis,
1340 set_modtime_by_id,
d33e787c 1341};
1342
59c3208b 1343static char *ulis3_fields[] = {
44da57b2 1344 "name",
1345 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1346 "nfsgroup", "ace_type", "ace_name", "description",
1347};
1348
59c3208b 1349static struct valobj ulis3_valobj[] = {
44da57b2 1350 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
1351 {V_RENAME, 1, LIST_TABLE, "name", "list_id", MR_NOT_UNIQUE},
1352 {V_NUM, 2},
1353 {V_NUM, 3},
1354 {V_NUM, 4},
1355 {V_NUM, 5},
1356 {V_NUM, 6},
1357 {V_NUM, 7},
1358 {V_NUM, 8},
1359 {V_TYPE, 9, 0, "ace_type", 0, MR_ACE},
1360 {V_TYPEDATA, 10, 0, 0, "list_id", MR_ACE},
1361 {V_LEN, 11, LIST_TABLE, "description"},
1362};
1363
59c3208b 1364static struct validate ulis3_validate = {
1365 ulis3_valobj,
44da57b2 1366 12,
1367 "name",
1368 "list_id = %d",
1369 1,
1370 "list_id",
1371 access_list,
1372 setup_alis,
1373 set_modtime_by_id,
1374};
1375
59c3208b 1376static char *ulis_fields[] = {
1377 "name",
1378 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1379 "nfsgroup", "ace_type", "ace_name", "memace_type", "memace_name",
1380 "description",
1381};
1382
1383static struct valobj ulis_valobj[] = {
1384 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
1385 {V_RENAME, 1, LIST_TABLE, "name", "list_id", MR_NOT_UNIQUE},
1386 {V_NUM, 2},
1387 {V_NUM, 3},
1388 {V_NUM, 4},
1389 {V_NUM, 5},
1390 {V_NUM, 6},
1391 {V_NUM, 7},
1392 {V_NUM, 8},
1393 {V_TYPE, 9, 0, "ace_type", 0, MR_ACE},
1394 {V_TYPEDATA, 10, 0, 0, "list_id", MR_ACE},
1395 {V_TYPE, 11, 0, "ace_type", 0, MR_ACE},
1396 {V_TYPEDATA, 12, 0, 0, "list_id", MR_ACE},
1397 {V_LEN, 13, LIST_TABLE, "description"},
1398};
1399
1400static struct validate ulis_validate = {
1401 ulis_valobj,
1402 14,
1403 "name",
1404 "list_id = %d",
1405 1,
1406 "list_id",
1407 access_list,
1408 setup_alis,
1409 set_modtime_by_id,
1410};
1411
03c05291 1412static char *dlis_fields[] = {
e2b8245f 1413 "name",
d33e787c 1414};
1415
03c05291 1416static struct validate dlis_validate = {
d1b3a4bf 1417 VOlist0,
1418 1,
e2b8245f 1419 "name",
03c05291 1420 "list_id = %d",
d33e787c 1421 1,
1422 0,
03c05291 1423 access_list,
1424 setup_dlis,
d33e787c 1425 0,
1426};
1427
03c05291 1428static char *amtl_fields[] = {
1429 "list_name", "member_type", "member_name",
d33e787c 1430};
1431
46b6f1f6 1432static char *atml_fields[] = {
1433 "list_name", "member_type", "member_name", "tag",
1434};
1435
03c05291 1436static struct valobj amtl_valobj[] = {
e2b8245f 1437 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
03c05291 1438 {V_TYPE, 1, 0, "member", 0, MR_TYPE},
1439 {V_TYPEDATA, 2, 0, 0, 0, MR_NO_MATCH},
46b6f1f6 1440 {V_ID, 3, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
99e09b48 1441};
1442
03c05291 1443static struct validate amtl_validate =
1444{
1445 amtl_valobj,
d1b3a4bf 1446 3,
d33e787c 1447 0,
1448 0,
1449 0,
1450 0,
03c05291 1451 access_list,
d33e787c 1452 0,
03c05291 1453 add_member_to_list,
d33e787c 1454};
1455
46b6f1f6 1456static struct validate atml_validate =
1457{
1458 amtl_valobj,
1459 4,
1460 0,
1461 0,
1462 0,
1463 0,
1464 access_list,
1465 0,
1466 add_member_to_list,
1467};
1468
1469static struct validate tmol_validate =
1470{
1471 amtl_valobj,
1472 4,
46b6f1f6 1473 0,
46b6f1f6 1474 0,
1475 0,
20541c25 1476 0,
1477 access_list,
1478 0,
1479 tag_member_of_list,
46b6f1f6 1480};
1481
03c05291 1482static struct validate dmfl_validate =
1483{
1484 amtl_valobj,
d1b3a4bf 1485 3,
0c345c78 1486 0,
1487 0,
1488 0,
1489 0,
03c05291 1490 access_list,
0c345c78 1491 0,
03c05291 1492 delete_member_from_list,
d33e787c 1493};
1494
03c05291 1495static char *gaus_fields[] = {
e2b8245f 1496 "ace_type", "ace_name",
03c05291 1497 "use_type", "use_name",
d33e787c 1498};
1499
03c05291 1500static struct valobj gaus_valobj[] = {
03c05291 1501 {V_TYPE, 0, 0, "gaus", 0, MR_TYPE},
1502 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
d33e787c 1503};
1504
03c05291 1505static struct validate gaus_validate = {
1506 gaus_valobj,
d1b3a4bf 1507 2,
d33e787c 1508 0,
d33e787c 1509 0,
d33e787c 1510 0,
d33e787c 1511 0,
03c05291 1512 access_member,
d33e787c 1513 0,
03c05291 1514 get_ace_use,
d33e787c 1515};
1516
d3051625 1517static char *ghbo_fields[] = {
1518 "ace_type", "ace_name",
1519 "name",
1520};
1521
1522static struct valobj ghbo_valobj[] = {
1523 {V_TYPE, 0, 0, "gaus", 0, MR_TYPE},
1524 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1525};
1526
1527static struct validate ghbo_validate = {
1528 ghbo_valobj,
1529 2,
1530 0,
1531 0,
1532 0,
1533 0,
1534 access_member,
1535 0,
1536 get_host_by_owner,
1537};
1538
03c05291 1539static char *qgli_fields[] = {
1540 "active", "publicflg", "hidden", "maillist", "grouplist",
1541 "list",
3e8c655c 1542};
d33e787c 1543
03c05291 1544static struct valobj qgli_valobj[] = {
1545 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1546 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1547 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1548 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1549 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
d33e787c 1550};
1551
03c05291 1552static struct validate qgli_validate = {
1553 qgli_valobj,
1554 5,
647daf33 1555 0,
d33e787c 1556 0,
1557 0,
87167924 1558 0,
03c05291 1559 access_qgli,
d33e787c 1560 0,
03c05291 1561 qualified_get_lists,
d33e787c 1562};
1563
03c05291 1564static char *gmol_fields[] = {
1565 "list_name",
1566 "member_type", "member_name",
d33e787c 1567};
1568
46b6f1f6 1569static char *gtml_fields[] = {
1570 "list_name",
1571 "member_type", "member_name", "tag",
d33e787c 1572};
1573
46b6f1f6 1574static struct validate gmol_validate = {
d1b3a4bf 1575 VOlist0,
1576 1,
d33e787c 1577 0,
1578 0,
1579 0,
1580 0,
03c05291 1581 access_visible_list,
d33e787c 1582 0,
46b6f1f6 1583 get_members_of_list,
d33e787c 1584};
1585
03c05291 1586static char *glom_fields[] = {
1587 "member_type", "member_name",
1588 "list_name", "active", "publicflg", "hidden", "maillist", "grouplist",
d33e787c 1589};
1590
03c05291 1591static struct valobj glom_valobj[] = {
5eaef520 1592 {V_TYPE, 0, 0, "rmember", 0, MR_TYPE},
1593 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
d33e787c 1594};
1595
03c05291 1596static struct validate glom_validate = {
1597 glom_valobj,
d1b3a4bf 1598 2,
d33e787c 1599 0,
1600 0,
03c05291 1601 0,
1602 0,
1603 access_member,
1604 0,
1605 get_lists_of_member,
d33e787c 1606};
1607
03c05291 1608static char *cmol_fields[] = {
1609 "list_name",
1610 "count",
d33e787c 1611};
1612
03c05291 1613static struct validate cmol_validate = {
1614 VOlist0,
d33e787c 1615 1,
1616 0,
1617 0,
1618 0,
1619 0,
03c05291 1620 access_visible_list,
d33e787c 1621 0,
03c05291 1622 count_members_of_list,
d33e787c 1623};
1624
03c05291 1625static char *gsin_fields[] = {
e2b8245f 1626 "service",
1627 "service", "update_int", "target_file", "script", "dfgen", "dfcheck",
1628 "type", "enable", "inprogress", "harderror", "errmsg",
8db06f75 1629 "ace_type", "ace_name", "modtime", "modby", "modwith",
88343c5e 1630};
1631
5eaef520 1632static struct validate gsin_validate =
03c05291 1633{
263a36d4 1634 0,
1635 0,
99e09b48 1636 0,
1637 0,
1638 0,
1639 0,
03c05291 1640 access_service,
99e09b48 1641 0,
59c3208b 1642 followup_gsin,
99e09b48 1643};
1644
03c05291 1645static char *qgsv_fields[] = {
1646 "enable", "inprogress", "harderror",
1647 "service",
4ffa124a 1648};
0c345c78 1649
03c05291 1650static struct valobj qgsv_valobj[] = {
1651 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1652 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1653 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
d33e787c 1654};
1655
03c05291 1656static struct validate qgsv_validate = {
1657 qgsv_valobj,
1658 3,
d33e787c 1659 0,
1660 0,
1661 0,
1662 0,
d33e787c 1663 0,
03c05291 1664 0,
1665 qualified_get_server,
d33e787c 1666};
1667
03c05291 1668static char *asin_fields[] = {
e2b8245f 1669 "service", "update_int", "target_file", "script", "type", "enable",
1670 "ace_type", "ace_name",
d33e787c 1671};
1672
03c05291 1673static struct valobj asin_valobj[] = {
e2b8245f 1674 {V_CHAR, 0, SERVERS_TABLE, "name"},
f802fd0d 1675 {V_NUM, 1},
03c05291 1676 {V_LEN, 2, SERVERS_TABLE, "target_file"},
1677 {V_LEN, 3, SERVERS_TABLE, "script"},
1678 {V_TYPE, 4, 0, "service", 0, MR_TYPE},
f802fd0d 1679 {V_NUM, 5},
e2b8245f 1680 {V_TYPE, 6, 0, "ace_type", 0, MR_ACE},
03c05291 1681 {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
d33e787c 1682};
1683
03c05291 1684static struct validate asin_validate = /* for asin, usin */
1685{
1686 asin_valobj,
d1b3a4bf 1687 8,
e2b8245f 1688 "name",
03c05291 1689 "name = UPPER('%s')",
d33e787c 1690 1,
d33e787c 1691 0,
03c05291 1692 0,
1693 0,
1694 set_uppercase_modtime,
d33e787c 1695};
1696
03c05291 1697static struct validate rsve_validate = {
1698 asin_valobj,
d1b3a4bf 1699 1,
e2b8245f 1700 "name",
03c05291 1701 "name = UPPER('%s')",
d33e787c 1702 1,
d33e787c 1703 0,
03c05291 1704 access_service,
1705 0,
1706 set_uppercase_modtime,
d33e787c 1707};
1708
03c05291 1709static char *ssif_fields[] = {
e2b8245f 1710 "service", "dfgen", "dfcheck", "inprogress", "harderror", "errmsg",
d33e787c 1711};
1712
03c05291 1713static struct valobj ssif_valobj[] = {
d1b3a4bf 1714 {V_NAME, 0, SERVERS_TABLE, "name", 0, MR_SERVICE},
f802fd0d 1715 {V_NUM, 1},
1716 {V_NUM, 2},
1717 {V_NUM, 3},
1718 {V_NUM, 4},
03c05291 1719 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
d33e787c 1720};
1721
03c05291 1722static struct validate ssif_validate = {
1723 ssif_valobj,
d1b3a4bf 1724 6,
e2b8245f 1725 "name",
03c05291 1726 "name = UPPER('%s')",
d33e787c 1727 1,
1728 0,
1729 0,
03c05291 1730 0,
d33e787c 1731 0,
1732};
1733
03c05291 1734static char *dsin_fields[] = {
e2b8245f 1735 "service",
95127ba8 1736};
1737
03c05291 1738static struct validate dsin_validate = {
1739 asin_valobj,
d1b3a4bf 1740 1,
e2b8245f 1741 "name",
03c05291 1742 "name = UPPER('%s')",
1743 1,
0c345c78 1744 0,
1745 0,
03c05291 1746 setup_dsin,
0c345c78 1747 0,
95127ba8 1748};
1749
03c05291 1750static char *gshi_fields[] = {
e2b8245f 1751 "service", "machine",
1752 "service", "machine", "enable", "override", "success", "inprogress",
03c05291 1753 "hosterror", "hosterrormsg", "ltt", "lts", "value1", "value2",
8db06f75 1754 "value3", "modtime", "modby", "modwith",
95127ba8 1755};
1756
03c05291 1757static struct validate gshi_validate = {
263a36d4 1758 0,
1759 0,
0c345c78 1760 0,
1761 0,
1762 0,
1763 0,
03c05291 1764 access_service,
1765 0,
1766 followup_fix_modby,
95127ba8 1767};
1768
03c05291 1769static char *qgsh_fields[] = {
1770 "service", "enable", "override", "success", "inprogress", "hosterror",
e2b8245f 1771 "service", "machine",
d33e787c 1772};
1773
03c05291 1774static struct valobj qgsh_valobj[] = {
1775 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1776 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1777 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1778 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1779 {V_TYPE, 5, 0, "boolean", 0, MR_TYPE},
99e09b48 1780};
1781
03c05291 1782static struct validate qgsh_validate = {
1783 qgsh_valobj,
1784 5,
d33e787c 1785 0,
1786 0,
1787 0,
1788 0,
1789 0,
1790 0,
03c05291 1791 qualified_get_serverhost,
d33e787c 1792};
1793
03c05291 1794static char *ashi_fields[] = {
e2b8245f 1795 "service", "machine", "enable", "value1", "value2", "value3",
d33e787c 1796};
1797
03c05291 1798static struct valobj ashi_valobj[] = {
e2b8245f 1799 {V_NAME, 0, SERVERS_TABLE, "name", 0, MR_SERVICE},
e2b8245f 1800 {V_ID, 1, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
f802fd0d 1801 {V_NUM, 2},
1802 {V_NUM, 3},
1803 {V_NUM, 4},
03c05291 1804 {V_LEN, 5, SERVERHOSTS_TABLE, "value3"},
45bf7573 1805};
1806
03c05291 1807static struct validate ashi_validate = /* ashi & ushi */
1808{
1809 ashi_valobj,
d1b3a4bf 1810 6,
e2b8245f 1811 "service",
03c05291 1812 "service = UPPER('%s') AND mach_id = %d",
d33e787c 1813 2,
d33e787c 1814 0,
03c05291 1815 access_service,
d33e787c 1816 0,
03c05291 1817 set_serverhost_modtime,
99e09b48 1818};
1819
5eaef520 1820static struct validate rshe_validate =
03c05291 1821{
1822 ashi_valobj,
d1b3a4bf 1823 2,
e2b8245f 1824 "service",
03c05291 1825 "service = UPPER('%s') AND mach_id = %d",
1826 2,
1827 0,
1828 access_service,
1829 0,
1830 set_serverhost_modtime,
d33e787c 1831};
1832
5eaef520 1833static struct validate ssho_validate =
03c05291 1834{
1835 ashi_valobj,
d1b3a4bf 1836 2,
e2b8245f 1837 "service",
03c05291 1838 "service = UPPER('%s') AND mach_id = %d",
d33e787c 1839 2,
d33e787c 1840 0,
03c05291 1841 access_service,
1842 0,
1843 trigger_dcm,
d33e787c 1844};
1845
03c05291 1846static char *sshi_fields[] = {
e2b8245f 1847 "service", "machine", "override", "success", "inprogress",
03c05291 1848 "hosterror", "errmsg", "ltt", "lts",
368be132 1849};
1850
03c05291 1851static struct valobj sshi_valobj[] = {
e2b8245f 1852 {V_NAME, 0, SERVERS_TABLE, "name", 0, MR_SERVICE},
f802fd0d 1853 {V_ID, 1, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
1854 {V_NUM, 2},
1855 {V_NUM, 3},
1856 {V_NUM, 4},
1857 {V_NUM, 5},
1858 {V_LEN, 6, SERVERHOSTS_TABLE, "hosterrmsg"},
1859 {V_NUM, 7},
1860 {V_NUM, 8},
368be132 1861};
1862
5eaef520 1863static struct validate sshi_validate =
03c05291 1864{
1865 sshi_valobj,
d1b3a4bf 1866 9,
368be132 1867 0,
1868 0,
1869 0,
1870 0,
1871 0,
1872 0,
03c05291 1873 0,
368be132 1874};
1875
03c05291 1876static char *dshi_fields[] = {
e2b8245f 1877 "service", "machine",
368be132 1878};
1879
5eaef520 1880static struct validate dshi_validate =
03c05291 1881{
1882 ashi_valobj,
d1b3a4bf 1883 2,
e2b8245f 1884 "service",
03c05291 1885 "service = UPPER('%s') AND mach_id = %d",
135dcb80 1886 2,
368be132 1887 0,
03c05291 1888 access_service,
1889 setup_dshi,
368be132 1890 0,
03c05291 1891};
1892
1893static char *gslo_fields[] = {
1894 "server",
e2b8245f 1895 "server", "machine",
03c05291 1896};
1897
1898static char *gfsl_fields[] = {
e2b8245f 1899 "label",
8db06f75 1900 "label", "type", "machine", "name", "mount", "access", "comments",
1901 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
03c05291 1902};
1903
5a8887d8 1904static struct validate gfsl_validate = {
1905 0,
1906 0,
1907 0,
1908 0,
1909 0,
1910 0,
1911 access_filesys,
1912 0,
1913 followup_fix_modby,
1914};
1915
03c05291 1916static char *gfsm_fields[] = {
e2b8245f 1917 "machine",
8db06f75 1918 "label", "type", "machine", "name", "mount", "access", "comments",
1919 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
03c05291 1920};
1921
03c05291 1922static struct validate gfsm_validate = {
d1b3a4bf 1923 VOmach0,
1924 1,
368be132 1925 0,
1926 0,
368be132 1927 0,
03c05291 1928 0,
1929 0,
1930 0,
1931 followup_fix_modby,
368be132 1932};
1933
03c05291 1934static char *gfsn_fields[] = {
cc1bca5c 1935 "machine", "partition",
8db06f75 1936 "label", "type", "machine", "name", "mount", "access", "comments",
1937 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
368be132 1938};
1939
03c05291 1940static struct validate gfsn_validate = {
263a36d4 1941 VOmach0,
1942 1,
368be132 1943 0,
1944 0,
368be132 1945 0,
1946 0,
368be132 1947 0,
1948 0,
03c05291 1949 followup_fix_modby,
368be132 1950};
1951
03c05291 1952static char *gfsp_fields[] = {
1953 "path",
8db06f75 1954 "label", "type", "machine", "name", "mount", "access", "comments",
1955 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
d33e787c 1956};
1957
03c05291 1958static char *gfsg_fields[] = {
e2b8245f 1959 "list",
8db06f75 1960 "label", "type", "machine", "name", "mount", "access", "comments",
1961 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
03c05291 1962};
1963
03c05291 1964static struct validate gfsg_validate = {
d1b3a4bf 1965 VOlist0,
1966 1,
d33e787c 1967 0,
1968 0,
1969 0,
1970 0,
03c05291 1971 access_list,
d33e787c 1972 0,
03c05291 1973 followup_fix_modby,
d33e787c 1974};
1975
03c05291 1976static char *afil_fields[] = {
8db06f75 1977 "label", "type", "machine", "name", "mount", "access", "comments",
1978 "owner", "owners", "create", "lockertype",
d33e787c 1979};
1980
03c05291 1981static struct valobj afil_valobj[] = {
e2b8245f 1982 {V_CHAR, 0, FILESYS_TABLE, "label"},
03c05291 1983 {V_TYPE, 1, 0, "filesys", 0, MR_FSTYPE},
e2b8245f 1984 {V_ID, 2, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
1985 {V_CHAR, 3, FILESYS_TABLE, "name"},
03c05291 1986 {V_LEN, 4, FILESYS_TABLE, "mount"},
f802fd0d 1987 {V_LEN, 5, FILESYS_TABLE, "rwaccess"},
e2b8245f 1988 {V_LEN, 6, FILESYS_TABLE, "comments"},
1989 {V_ID, 7, USERS_TABLE, "login", "users_id", MR_USER},
1990 {V_ID, 8, LIST_TABLE, "name", "list_id", MR_LIST},
f802fd0d 1991 {V_NUM, 9},
03c05291 1992 {V_TYPE, 10, 0, "lockertype", 0, MR_TYPE},
99e09b48 1993};
1994
03c05291 1995static struct validate afil_validate = {
1996 afil_valobj,
d1b3a4bf 1997 11,
e2b8245f 1998 "label",
03c05291 1999 "label = '%s'",
2000 1,
e2b8245f 2001 "filsys_id",
03c05291 2002 0,
2003 setup_afil,
2004 set_filesys_modtime,
2005};
99e09b48 2006
03c05291 2007static char *ufil_fields[] = {
8db06f75 2008 "label", "newlabel", "type", "machine", "name", "mount", "access",
2009 "comments", "owner", "owners", "create", "lockertype",
d33e787c 2010};
2011
03c05291 2012static struct valobj ufil_valobj[] = {
e2b8245f 2013 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
2014 {V_RENAME, 1, FILESYS_TABLE, "label", "filsys_id", MR_NOT_UNIQUE},
03c05291 2015 {V_TYPE, 2, 0, "filesys", 0, MR_FSTYPE},
e2b8245f 2016 {V_ID, 3, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2017 {V_CHAR, 4, FILESYS_TABLE, "name"},
03c05291 2018 {V_LEN, 5, FILESYS_TABLE, "mount"},
f802fd0d 2019 {V_LEN, 6, FILESYS_TABLE, "rwaccess"},
e2b8245f 2020 {V_LEN, 7, FILESYS_TABLE, "comments"},
2021 {V_ID, 8, USERS_TABLE, "login", "users_id", MR_USER},
2022 {V_ID, 9, LIST_TABLE, "name", "list_id", MR_LIST},
f802fd0d 2023 {V_NUM, 10},
03c05291 2024 {V_TYPE, 11, 0, "lockertype", 0, MR_TYPE},
d33e787c 2025};
2026
03c05291 2027static struct validate ufil_validate = {
2028 ufil_valobj,
d1b3a4bf 2029 12,
e2b8245f 2030 "label",
03c05291 2031 "filsys_id = %d",
2032 1,
e2b8245f 2033 "filsys_id",
d33e787c 2034 0,
03c05291 2035 setup_ufil,
2036 set_filesys_modtime,
d33e787c 2037};
2038
03c05291 2039static char *dfil_fields[] = {
e2b8245f 2040 "label",
03c05291 2041};
2042
03c05291 2043static struct validate dfil_validate = {
d1b3a4bf 2044 VOfilesys0,
2045 1,
03c05291 2046 "label",
2047 "filsys_id = %d",
2048 1,
d33e787c 2049 0,
2050 0,
03c05291 2051 setup_dfil,
2052 0,
d33e787c 2053};
2054
03c05291 2055static char *gfgm_fields[] = {
e2b8245f 2056 "fsgroup", "filesys", "sortkey"
5eaef520 2057};
03c05291 2058
03c05291 2059static struct validate gfgm_validate = {
d1b3a4bf 2060 VOfilesys0,
29028043 2061 1,
d33e787c 2062 0,
2063 0,
2064 0,
2065 0,
2066 0,
2067 0,
d33e787c 2068 0,
d33e787c 2069};
2070
03c05291 2071static struct valobj aftg_valobj[] = {
e2b8245f 2072 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
2073 {V_ID, 1, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
d33e787c 2074};
2075
03c05291 2076static struct validate aftg_validate = {
2077 aftg_valobj,
d1b3a4bf 2078 2,
03c05291 2079 "group_id",
2080 "group_id = %d and filsys_id = %d",
2081 2,
2082 0,
2083 0,
2084 0,
d33e787c 2085 0,
d33e787c 2086};
2087
03c05291 2088static char *ganf_fields[] = {
8db06f75 2089 "machine", "dir", "device", "status", "allocated", "size",
2090 "modtime", "modby", "modwith",
d33e787c 2091};
2092
03c05291 2093static char *gnfp_fields[] = {
e2b8245f 2094 "machine", "dir",
8db06f75 2095 "machine", "dir", "device", "status", "allocated", "size",
2096 "modtime", "modby", "modwith",
d33e787c 2097};
2098
03c05291 2099static struct validate gnfp_validate = {
263a36d4 2100 VOmach0,
2101 1,
03c05291 2102 0,
2103 0,
2104 0,
2105 0,
2106 0,
2107 0,
2108 followup_fix_modby,
d33e787c 2109};
2110
03c05291 2111static struct valobj anfp_valobj[] = {
e2b8245f 2112 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
03c05291 2113 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
2114 {V_LEN, 2, NFSPHYS_TABLE, "device"},
f802fd0d 2115 {V_NUM, 3},
2116 {V_NUM, 4},
2117 {V_NUM, 5},
03c05291 2118};
2119
2120static struct validate anfp_validate = {
2121 anfp_valobj,
d1b3a4bf 2122 6,
e2b8245f 2123 "dir",
03c05291 2124 "mach_id = %d and dir = '%s'",
2125 2,
2126 "nfsphys_id",
d33e787c 2127 0,
03c05291 2128 prefetch_value,
2129 set_nfsphys_modtime,
2130};
2131
2132static struct validate unfp_validate = {
2133 anfp_valobj,
d1b3a4bf 2134 6,
e2b8245f 2135 "dir",
03c05291 2136 "mach_id = %d and dir = '%s'",
2137 2,
2138 "nfsphys_id",
d33e787c 2139 0,
03c05291 2140 0,
2141 set_nfsphys_modtime,
d33e787c 2142};
2143
03c05291 2144static char *ajnf_fields[] = {
e2b8245f 2145 "machine", "dir", "adjustment",
d33e787c 2146};
2147
f802fd0d 2148static struct valobj ajnf_valobj[] = {
f802fd0d 2149 {V_ID, 0, MACHINE_TABLE, NAME, "mach_id", MR_MACHINE},
2150 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
2151 {V_NUM, 2},
2152};
2153
2154static struct validate ajnf_validate = {
2155 ajnf_valobj,
d1b3a4bf 2156 3,
f802fd0d 2157 "dir",
2158 "mach_id = %d and dir = '%s'",
2159 2,
2160 "nfsphys_id",
2161 0,
2162 0,
2163 set_nfsphys_modtime,
2164};
2165
03c05291 2166static char *dnfp_fields[] = {
e2b8245f 2167 "machine", "dir",
d33e787c 2168};
2169
03c05291 2170static struct validate dnfp_validate = {
d1b3a4bf 2171 anfp_valobj,
2172 2,
e2b8245f 2173 "dir",
03c05291 2174 "mach_id = %d and dir = '%s'",
2175 2,
2176 "nfsphys_id",
66f4a35b 2177 0,
03c05291 2178 setup_dnfp,
2179 set_nfsphys_modtime,
2180};
2181
2182static char *gqot_fields[] = {
e2b8245f 2183 "filesys", "type", "name",
8db06f75 2184 "filesys", "type", "name", "quota", "dir", "machine",
2185 "modtime", "modby", "modwith",
66f4a35b 2186};
2187
03c05291 2188static struct valobj gqot_valobj[] = {
e2b8245f 2189 {V_TYPE, 1, 0, "quota_type", 0, MR_TYPE},
03c05291 2190 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
03c05291 2191};
2192
2193static struct validate gqot_validate = {
2194 gqot_valobj,
263a36d4 2195 2,
66f4a35b 2196 0,
2197 0,
2198 0,
d33e787c 2199 0,
d33e787c 2200 0,
03c05291 2201 0,
2202 followup_gqot,
d33e787c 2203};
2204
03c05291 2205static char *gqbf_fields[] = {
e2b8245f 2206 "filesys",
8db06f75 2207 "filesys", "type", "name", "quota", "dir", "machine",
2208 "modtime", "modby", "modwith",
d33e787c 2209};
2210
03c05291 2211static struct validate gqbf_validate = {
263a36d4 2212 0,
2213 0,
0c345c78 2214 0,
2215 0,
2216 0,
2217 0,
03c05291 2218 access_filesys,
0c345c78 2219 0,
03c05291 2220 followup_gqot,
d33e787c 2221};
2222
03c05291 2223static char *aqot_fields[] = {
e2b8245f 2224 "filesys", "type", "name", "quota",
d33e787c 2225};
2226
03c05291 2227static struct valobj aqot_valobj[] = {
e2b8245f 2228 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
2229 {V_TYPE, 1, 0, "quota_type", 0, MR_TYPE},
03c05291 2230 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
f802fd0d 2231 {V_NUM, 3},
d33e787c 2232};
2233
03c05291 2234static struct validate aqot_validate = {
2235 aqot_valobj,
d1b3a4bf 2236 4,
e2b8245f 2237 "filsys_id",
03c05291 2238 "filsys_id = %d and type = '%s' and entity_id = %d",
2239 3,
0c345c78 2240 0,
2241 0,
03c05291 2242 prefetch_filesys,
2243 followup_aqot,
2244};
2245
2246static struct validate uqot_validate = {
2247 aqot_valobj,
d1b3a4bf 2248 4,
e2b8245f 2249 "filsys_id",
03c05291 2250 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2251 3,
2252 0,
0c345c78 2253 0,
03c05291 2254 setup_dqot,
2255 followup_aqot,
2256};
2257
2258static struct validate dqot_validate = {
2259 aqot_valobj,
d1b3a4bf 2260 3,
e2b8245f 2261 "filsys_id",
03c05291 2262 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2263 3,
0c345c78 2264 0,
0c345c78 2265 0,
03c05291 2266 setup_dqot,
2267 followup_dqot,
d33e787c 2268};
2269
03c05291 2270static char *gnfq_fields[] = {
e2b8245f 2271 "filesys", "login",
8db06f75 2272 "filesys", "login", "quota", "dir", "machine",
2273 "modtime", "modby", "modwith",
d33e787c 2274};
2275
03c05291 2276static struct validate gnfq_validate = {
263a36d4 2277 0,
2278 0,
d33e787c 2279 0,
2280 0,
2281 0,
2282 0,
03c05291 2283 access_filesys,
d33e787c 2284 0,
03c05291 2285 followup_gqot,
d33e787c 2286};
2287
03c05291 2288static char *gnqp_fields[] = {
e2b8245f 2289 "machine", "dir",
8db06f75 2290 "filesys", "login", "quota", "dir", "machine",
2291 "modtime", "modby", "modwith",
4ffa124a 2292};
0c345c78 2293
03c05291 2294static char *anfq_fields[] = {
e2b8245f 2295 "filesys", "login", "quota",
d33e787c 2296};
2297
f802fd0d 2298static struct valobj anfq_valobj[] = {
f802fd0d 2299 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
2300 {V_ID, 1, USERS_TABLE, "login", "users_id", MR_USER},
2301 {V_NUM, 2},
2302};
2303
03c05291 2304static struct validate anfq_validate = {
f802fd0d 2305 anfq_valobj,
d1b3a4bf 2306 3,
e2b8245f 2307 "filsys_id",
03c05291 2308 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2309 2,
2310 0, /* object ? */
d33e787c 2311 0,
03c05291 2312 prefetch_filesys,
2313 followup_aqot,
d33e787c 2314};
2315
03c05291 2316static struct validate unfq_validate = {
f802fd0d 2317 anfq_valobj,
d1b3a4bf 2318 3,
e2b8245f 2319 "filsys_id",
03c05291 2320 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2321 2,
d33e787c 2322 0,
2323 0,
03c05291 2324 setup_dqot,
2325 followup_aqot,
2326};
2327
2328static struct validate dnfq_validate = {
f802fd0d 2329 anfq_valobj,
d1b3a4bf 2330 3,
e2b8245f 2331 "filsys_id",
03c05291 2332 "filsys_id = %d AND entity_id = %d",
2333 2,
d33e787c 2334 0,
d33e787c 2335 0,
03c05291 2336 setup_dqot,
2337 followup_dqot,
d33e787c 2338};
2339
d7ddc011 2340static char *gzcl2_fields[] = {
e2b8245f 2341 "class",
2342 "class", "xmt_type", "xmt_name", "sub_type", "sub_name",
8db06f75 2343 "iws_type", "iws_name", "iui_type", "iui_name",
2344 "modtime", "modby", "modwith",
d33e787c 2345};
2346
d7ddc011 2347static char *gzcl_fields[] = {
2348 "class",
2349 "class", "xmt_type", "xmt_name", "sub_type", "sub_name",
2350 "iws_type", "iws_name", "iui_type", "iui_name", "owner_type",
2351 "owner_id", "modtime", "modby", "modwith",
2352};
2353
d33e787c 2354static struct validate gzcl_validate = {
263a36d4 2355 0,
2356 0,
d33e787c 2357 0,
2358 0,
2359 0,
2360 0,
d7ddc011 2361 access_zephyr,
d33e787c 2362 0,
2363 followup_gzcl,
2364};
2365
d7ddc011 2366static char *azcl2_fields[] = {
e2b8245f 2367 "class", "xmt_type", "xmt_name", "sub_type", "sub_name",
0c345c78 2368 "iws_type", "iws_name", "iui_type", "iui_name",
d7ddc011 2369};
2370
2371static struct valobj azcl2_valobj[] = {
2372 {V_CHAR, 0, ZEPHYR_TABLE, "class"},
2373 {V_TYPE, 1, 0, "zace_type", 0, MR_ACE},
2374 {V_TYPEDATA, 2, 0, 0, "list_id", MR_ACE},
2375 {V_TYPE, 3, 0, "zace_type", 0, MR_ACE},
2376 {V_TYPEDATA, 4, 0, 0, "list_id", MR_ACE},
2377 {V_TYPE, 5, 0, "zace_type", 0, MR_ACE},
2378 {V_TYPEDATA, 6, 0, 0, "list_id", MR_ACE},
2379 {V_TYPE, 7, 0, "zace_type", 0, MR_ACE},
2380 {V_TYPEDATA, 8, 0, 0, "list_id", MR_ACE},
2381};
2382
2383static struct validate azcl2_validate = {
2384 azcl2_valobj,
2385 9,
2386 "class",
2387 "class = '%s'",
2388 1,
2389 0,
2390 0,
2391 0,
2392 set_zephyr_modtime,
2393};
2394
2395static char *azcl_fields[] = {
2396 "class", "xmt_type", "xmt_name", "sub_type", "sub_name",
2397 "iws_type", "iws_name", "iui_type", "iui_name", "owner_type",
2398 "owner_id",
d33e787c 2399};
2400
2401static struct valobj azcl_valobj[] = {
e2b8245f 2402 {V_CHAR, 0, ZEPHYR_TABLE, "class"},
46b6f1f6 2403 {V_TYPE, 1, 0, "zace_type", 0, MR_ACE},
e2b8245f 2404 {V_TYPEDATA, 2, 0, 0, "list_id", MR_ACE},
46b6f1f6 2405 {V_TYPE, 3, 0, "zace_type", 0, MR_ACE},
e2b8245f 2406 {V_TYPEDATA, 4, 0, 0, "list_id", MR_ACE},
46b6f1f6 2407 {V_TYPE, 5, 0, "zace_type", 0, MR_ACE},
e2b8245f 2408 {V_TYPEDATA, 6, 0, 0, "list_id", MR_ACE},
46b6f1f6 2409 {V_TYPE, 7, 0, "zace_type", 0, MR_ACE},
e2b8245f 2410 {V_TYPEDATA, 8, 0, 0, "list_id", MR_ACE},
d7ddc011 2411 {V_TYPE, 9, 0, "ace_type", 0, MR_ACE},
2412 {V_TYPEDATA, 10, 0, 0, "list_id", MR_ACE},
d33e787c 2413};
2414
2415static struct validate azcl_validate = {
2416 azcl_valobj,
d7ddc011 2417 11,
e2b8245f 2418 "class",
03c05291 2419 "class = '%s'",
d33e787c 2420 1,
2421 0,
2422 0,
2423 0,
2424 set_zephyr_modtime,
2425};
2426
d7ddc011 2427static char *uzcl2_fields[] = {
e2b8245f 2428 "class", "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
0c345c78 2429 "iws_type", "iws_name", "iui_type", "iui_name",
d33e787c 2430};
2431
d7ddc011 2432static struct valobj uzcl2_valobj[] = {
2433 {V_NAME, 0, ZEPHYR_TABLE, "class", 0, MR_BAD_CLASS},
2434 {V_RENAME, 1, ZEPHYR_TABLE, "class", 0, MR_NOT_UNIQUE},
2435 {V_TYPE, 2, 0, "zace_type", 0, MR_ACE},
2436 {V_TYPEDATA, 3, 0, 0, "list_id", MR_ACE},
2437 {V_TYPE, 4, 0, "zace_type", 0, MR_ACE},
2438 {V_TYPEDATA, 5, 0, 0, "list_id", MR_ACE},
2439 {V_TYPE, 6, 0, "zace_type", 0, MR_ACE},
2440 {V_TYPEDATA, 7, 0, 0, "list_id", MR_ACE},
2441 {V_TYPE, 8, 0, "zace_type", 0, MR_ACE},
2442 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
2443};
2444
2445static struct validate uzcl2_validate = {
2446 uzcl2_valobj,
2447 10,
2448 "class",
2449 "class = '%s'",
2450 1,
2451 0,
2452 access_zephyr,
2453 0,
2454 set_zephyr_modtime,
2455};
2456
2457static char *uzcl_fields[] = {
2458 "class", "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
2459 "iws_type", "iws_name", "iui_type", "iui_name", "owner_type", "owner_id",
2460};
2461
d33e787c 2462static struct valobj uzcl_valobj[] = {
d1b3a4bf 2463 {V_NAME, 0, ZEPHYR_TABLE, "class", 0, MR_BAD_CLASS},
e2b8245f 2464 {V_RENAME, 1, ZEPHYR_TABLE, "class", 0, MR_NOT_UNIQUE},
46b6f1f6 2465 {V_TYPE, 2, 0, "zace_type", 0, MR_ACE},
e2b8245f 2466 {V_TYPEDATA, 3, 0, 0, "list_id", MR_ACE},
46b6f1f6 2467 {V_TYPE, 4, 0, "zace_type", 0, MR_ACE},
e2b8245f 2468 {V_TYPEDATA, 5, 0, 0, "list_id", MR_ACE},
46b6f1f6 2469 {V_TYPE, 6, 0, "zace_type", 0, MR_ACE},
e2b8245f 2470 {V_TYPEDATA, 7, 0, 0, "list_id", MR_ACE},
46b6f1f6 2471 {V_TYPE, 8, 0, "zace_type", 0, MR_ACE},
e2b8245f 2472 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
d7ddc011 2473 {V_TYPE, 10, 0, "ace_type", 0, MR_ACE},
2474 {V_TYPEDATA, 11, 0, 0, "list_id", MR_ACE},
d33e787c 2475};
2476
2477static struct validate uzcl_validate = {
2478 uzcl_valobj,
d7ddc011 2479 12,
e2b8245f 2480 "class",
3e8c655c 2481 "class = '%s'",
d33e787c 2482 1,
2483 0,
d7ddc011 2484 access_zephyr,
d33e787c 2485 0,
2486 set_zephyr_modtime,
2487};
2488
2489static struct validate dzcl_validate = {
2490 0,
2491 0,
e2b8245f 2492 "class",
73043086 2493 "class = '%s'",
d33e787c 2494 1,
2495 0,
2496 0,
2497 0,
2498 0,
2499};
2500
03c05291 2501static char *gsha_fields[] = {
e2b8245f 2502 "machine",
8db06f75 2503 "machine", "ace_type", "ace_name", "modtime", "modby", "modwith",
03c05291 2504};
2505
5eaef520 2506static struct validate gsha_validate =
03c05291 2507{
263a36d4 2508 0,
2509 0,
03c05291 2510 0,
2511 0,
2512 0,
2513 0,
2514 0,
2515 0,
2516 followup_gsha,
2517};
2518
2519static char *asha_fields[] = {
e2b8245f 2520 "machine", "ace_type", "ace_name",
03c05291 2521};
2522
2523static struct valobj asha_valobj[] = {
e2b8245f 2524 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
e2b8245f 2525 {V_TYPE, 1, 0, "ace_type", 0, MR_ACE},
03c05291 2526 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2527};
2528
5eaef520 2529static struct validate asha_validate =
03c05291 2530{
2531 asha_valobj,
d1b3a4bf 2532 3,
e2b8245f 2533 "mach_id",
03c05291 2534 "mach_id = %d",
2535 1,
e2b8245f 2536 "mach_id",
03c05291 2537 0,
2538 0,
2539 set_modtime_by_id,
2540};
2541
46b6f1f6 2542static char *gacl_fields[] = {
2543 "machine", "target",
2544 "machine", "target", "kind", "list",
2545};
2546
2547static char *aacl_fields[] = {
2548 "machine", "target", "kind", "list",
2549};
2550
2551static char *dacl_fields[] = {
2552 "machine", "target",
2553};
2554
2555static struct valobj aacl_valobj[] = {
2556 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2557 {V_CHAR, 1, ACL_TABLE, "target"},
2558 {V_TYPE, 2, 0, "acl_kind", 0, MR_TYPE},
2559 {V_ID, 3, LIST_TABLE, "name", "list_id", MR_LIST},
2560};
2561
2562static struct validate gacl_validate =
2563{
2564 aacl_valobj,
2565 1,
2566 NULL,
2567 NULL,
2568 0,
2569 "mach_id",
2570 /* access_acl */ 0,
2571 0,
2572 0,
2573};
2574
2575static struct validate aacl_validate =
2576{
2577 aacl_valobj,
2578 4,
2579 "mach_id",
2580 "mach_id = %d AND target = '%s'",
2581 2,
2582 "mach_id",
2583 /* access_acl */ 0,
2584 0,
2585 0,
2586};
2587
fd5b2340 2588static char *gsvc_fields[] = {
69eb9470 2589 "service", "protocol",
8db06f75 2590 "service", "protocol", "port", "description", "modtime", "modby", "modwith",
d33e787c 2591};
2592
fd5b2340 2593static char *asvc_fields[] = {
e2b8245f 2594 "service", "protocol", "port", "description",
fd5b2340 2595};
2596
69eb9470 2597static char *dsvc_fields[] = {
2598 "service", "protocol",
2599};
2600
03c05291 2601static struct valobj asvc_valobj[] = {
e2b8245f 2602 {V_CHAR, 0, SERVICES_TABLE, "name"},
03c05291 2603 {V_CHAR, 1, SERVICES_TABLE, "protocol"},
f802fd0d 2604 {V_NUM, 2},
e2b8245f 2605 {V_CHAR, 3, SERVICES_TABLE, "description"},
03c05291 2606};
2607
fd5b2340 2608static struct validate asvc_validate = {
03c05291 2609 asvc_valobj,
f802fd0d 2610 4,
e2b8245f 2611 "name",
69eb9470 2612 "name = '%s' AND protocol = '%s'",
2613 2,
2614 0,
2615 0,
2616 0,
2617 set_service_modtime,
2618};
2619
2620static struct validate dsvc_validate = {
2621 asvc_valobj,
2622 2,
2623 "name",
2624 "name = '%s' AND protocol = '%s'",
2625 2,
2626 0,
fd5b2340 2627 0,
2628 0,
2629 0,
fd5b2340 2630};
2631
2884200f 2632static char *gprn_fields[] = {
2633 "name",
2634 "name", "type", "hwtype", "duplexname", "hostname",
2635 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2636 "banner", "location", "contact", "modtime", "modby", "modwith"
d33e787c 2637};
2638
2884200f 2639static char *gpbd_fields[] = {
2640 "duplexname",
2641 "name", "type", "hwtype", "duplexname", "hostname",
2642 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2643 "banner", "location", "contact", "modtime", "modby", "modwith"
d4462d4f 2644};
2645
2884200f 2646static char *gpbe_fields[] = {
2647 "hwaddr",
2648 "name", "type", "hwtype", "duplexname", "hostname",
2649 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2650 "banner", "location", "contact", "modtime", "modby", "modwith"
fad88070 2651};
2652
2884200f 2653static char *gpbh_fields[] = {
2654 "hostname",
2655 "name", "type", "hwtype", "duplexname", "hostname",
2656 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2657 "banner", "location", "contact", "modtime", "modby", "modwith"
d33e787c 2658};
2659
2884200f 2660static char *gpbr_fields[] = {
2661 "rm",
2662 "name", "type", "hwtype", "duplexname", "hostname",
2663 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2664 "banner", "location", "contact", "modtime", "modby", "modwith"
d33e787c 2665};
2666
2884200f 2667static char *gpbl_fields[] = {
2668 "location",
2669 "name", "type", "hwtype", "duplexname", "hostname",
2670 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2671 "banner", "location", "contact", "modtime", "modby", "modwith"
fd5b2340 2672};
2673
2884200f 2674static char *gpbc_fields[] = {
2675 "contact",
2676 "name", "type", "hwtype", "duplexname", "hostname",
2677 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2678 "banner", "location", "contact", "modtime", "modby", "modwith"
012fc215 2679};
2680
2884200f 2681static char *aprn_fields[] = {
2682 "printer", "type", "hwtype", "duplexname", "hostname",
2683 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2684 "banner", "location", "contact",
03c05291 2685};
012fc215 2686
2884200f 2687static struct valobj aprn_valobj[] = {
2688 {V_CHAR, 0, PRINTERS_TABLE, "name"},
2689 {V_TYPE, 1, 0, "printertype", 0, MR_TYPE},
2690 {V_TYPE, 2, 0, "printerhwtype", 0, MR_TYPE},
2691 {V_CHAR, 3, PRINTERS_TABLE, "duplexname"},
2692 {V_ID, 4, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2693 {V_ID, 5, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2694 {V_ID, 6, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2695 {V_CHAR, 7, PRINTERS_TABLE, "rp"},
2696 {V_ID, 8, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2697 {V_NUM, 9},
2698 {V_NUM, 10},
2699 {V_ID, 11, LIST_TABLE, "name", "list_id", MR_LIST},
2700 {V_ID, 12, LIST_TABLE, "name", "list_id", MR_LIST},
e5a63571 2701 {V_NUM, 13},
2702 {V_CHAR, 14, PRINTERS_TABLE, "location"},
2703 {V_CHAR, 15, PRINTERS_TABLE, "contact"},
012fc215 2704};
2705
2884200f 2706static struct validate aprn_validate = {
2707 aprn_valobj,
e5a63571 2708 16,
e2b8245f 2709 "name",
03c05291 2710 "name = '%s'",
012fc215 2711 1,
2712 0,
1a9a0a59 2713 access_printer,
2714 setup_aprn,
2715 set_modtime,
2716};
2717
2718static char *uprn_fields[] = {
2719 "printer",
2720 "printer", "type", "hwtype", "duplexname", "hostname",
2721 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
2722 "banner", "location", "contact",
2723};
2724
2725static struct valobj uprn_valobj[] = {
2726 {V_CHAR, 0, PRINTERS_TABLE, "name"},
2727 {V_CHAR, 1, PRINTERS_TABLE, "name"},
2728 {V_TYPE, 2, 0, "printertype", 0, MR_TYPE},
2729 {V_TYPE, 3, 0, "printerhwtype", 0, MR_TYPE},
2730 {V_CHAR, 4, PRINTERS_TABLE, "duplexname"},
2731 {V_ID, 5, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2732 {V_ID, 6, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2733 {V_ID, 7, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2734 {V_CHAR, 8, PRINTERS_TABLE, "rp"},
2735 {V_ID, 9, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2736 {V_NUM, 10},
2737 {V_NUM, 11},
2738 {V_ID, 12, LIST_TABLE, "name", "list_id", MR_LIST},
2739 {V_ID, 13, LIST_TABLE, "name", "list_id", MR_LIST},
2740 {V_NUM, 14},
2741 {V_CHAR, 15, PRINTERS_TABLE, "location"},
2742 {V_CHAR, 16, PRINTERS_TABLE, "contact"},
2743};
2744
2745static struct validate uprn_validate = {
2746 uprn_valobj,
2747 16,
2748 "name",
2749 "name = '%s'",
2750 1,
012fc215 2751 0,
1a9a0a59 2752 access_printer,
2884200f 2753 setup_aprn,
1a9a0a59 2754 set_modtime,
012fc215 2755};
2756
2884200f 2757static struct validate dprn_validate = {
012fc215 2758 0,
2759 0,
e2b8245f 2760 "name",
3e8c655c 2761 "name = '%s'",
012fc215 2762 1,
2763 0,
1a9a0a59 2764 access_printer,
2765 0,
2766 0,
2767};
2768
2769static char *gpsv_fields[] = {
2770 "host",
2771 "host", "kind", "printer_types", "owner_type", "owner_name",
2772 "lpc_acl", "modtime", "modby", "modwith"
2773};
2774
2775static struct valobj gpsv_valobj[] = {
2776 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2777};
2778
2779static struct validate gpsv_validate = {
2780 gpsv_valobj,
2781 1,
2782 0,
2783 0,
2784 0,
2785 0,
2786 0,
2787 0,
2788 followup_gpsv,
2789};
2790
2791static char *apsv_fields[] = {
2792 "host", "kind", "printer_types", "owner_type", "owner_name", "lpc_acl"
2793};
2794
2795static struct valobj apsv_valobj[] = {
2796 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2797 {V_TYPE, 1, 0, "lpd_kind", 0, MR_TYPE},
2798 {V_ID, 2, STRINGS_TABLE, "string", "string_id", MR_STRING},
2799 {V_TYPE, 3, 0, "ace_type", 0, MR_ACE},
2800 {V_TYPEDATA, 4, 0, 0, 0, MR_ACE},
2801 {V_ID, 5, LIST_TABLE, "name", "list_id", MR_LIST},
2802};
2803
2804static struct validate apsv_validate = {
2805 apsv_valobj,
2806 6,
2807 "mach_id",
2808 "mach_id = %d",
2809 1,
2810 "mach_id",
012fc215 2811 0,
2812 0,
1a9a0a59 2813 set_modtime_by_id,
012fc215 2814};
2815
1a9a0a59 2816static char *dpsv_fields[] = {
2817 "host",
2818};
2819
2820static struct validate dpsv_validate = {
2821 gpsv_valobj,
2822 1,
2823 "mach_id",
2824 "mach_id = %d",
2825 1,
2826 0,
2827 0,
2828 setup_dpsv,
2829 0,
2830};
2831
d33e787c 2832static char *gali_fields[] = {
e2b8245f 2833 "name", "type", "trans",
2834 "name", "type", "trans",
d33e787c 2835};
2836
2837static char *aali_fields[] = {
e2b8245f 2838 "name", "type", "trans",
d33e787c 2839};
2840
2841static struct valobj aali_valobj[] = {
e2b8245f 2842 {V_CHAR, 0, ALIAS_TABLE, "name"},
2843 {V_TYPE, 1, 0, "alias", 0, MR_TYPE},
03c05291 2844 {V_CHAR, 2, ALIAS_TABLE, "trans"},
d33e787c 2845};
2846
2847static struct validate aali_validate = {
2848 aali_valobj,
2849 3,
2850 "trans",
03c05291 2851 "name = '%s' and type = '%s' and trans = '%s'",
d33e787c 2852 3,
2853 0,
2854 0,
2855 0,
2856 0,
2857};
2858
2859static struct validate dali_validate = /* DELETE_ALIAS */
2860{
2861 0,
2862 0,
2863 "trans",
73043086 2864 "name = '%s' and type = '%s' and trans = '%s'",
d33e787c 2865 3,
2866 0,
2867 0,
2868 0,
2869 0,
2870};
2871
2872static char *gval_fields[] = {
e2b8245f 2873 "name", "value",
d33e787c 2874};
2875
2876static struct valobj gval_valobj[] = {
e2b8245f 2877 {V_NAME, 0, NUMVALUES_TABLE, "name", 0, MR_NO_MATCH},
d33e787c 2878};
2879
2880static struct validate gval_validate = {
2881 gval_valobj,
2882 1,
2883 0,
2884 0,
2885 0,
2886 0,
2887 0,
2888 0,
2889 0,
2890};
2891
2892static char *aval_fields[] = {
e2b8245f 2893 "name", "value",
d33e787c 2894};
2895
03c05291 2896static struct valobj aval_valobj[] = {
e2b8245f 2897 {V_CHAR, 0, NUMVALUES_TABLE, "name"},
f802fd0d 2898 {V_NUM, 1},
03c05291 2899};
2900
d33e787c 2901static struct validate aval_validate = /* for aval, uval, and dval */
2902{
03c05291 2903 aval_valobj,
f802fd0d 2904 2,
e2b8245f 2905 "name",
03c05291 2906 "name = '%s'",
d33e787c 2907 1,
2908 0,
2909 0,
2910 0,
2911 0,
2912};
2913
2914static char *dval_fields[] = {
e2b8245f 2915 "name",
d33e787c 2916};
2917
2918static char *gats_fields[] = {
8db06f75 2919 "table_name", "appends", "updates", "deletes",
2920 "modtime", "modby", "modwith",
d33e787c 2921};
2922
2962e9ec 2923static char *_sdl_fields[] = {
5eaef520 2924 "level",
2962e9ec 2925};
2926
5eaef520 2927static struct validate _sdl_validate =
2962e9ec 2928{
f802fd0d 2929 VOnum0,
2930 1,
7ac48069 2931 NULL,
2932 NULL,
5eaef520 2933 0,
2934 0,
2935 0,
2936 0,
2937 _sdl_followup,
2962e9ec 2938};
2939
d33e787c 2940
2941\f
2942/* Generalized Query Definitions */
2943
c44ddfa7 2944/* Multiple versions of the same query MUST be listed in ascending
2945 * order.
2946 */
2947
e41960ac 2948/* Note: For any query which uses prefetch_value, the vcnt should be
2949 * one less than the number of %-format specifiers in the tlist.
2950 */
2951
c44ddfa7 2952struct query Queries[] = {
d33e787c 2953 {
186dd63b 2954 /* Q_GALO - GET_ALL_LOGINS, v2 */
d33e787c 2955 "get_all_logins",
2956 "galo",
c44ddfa7 2957 2,
d33e787c 2958 RETRIEVE,
2959 "u",
03c05291 2960 USERS_TABLE,
2961 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
186dd63b 2962 galo2_fields,
d33e787c 2963 6,
0c345c78 2964 "u.users_id != 0",
d33e787c 2965 0,
29028043 2966 "u.login",
2967 0,
d33e787c 2968 },
5eaef520 2969
d33e787c 2970 {
186dd63b 2971 /* Q_GALO - GET_ALL_LOGINS, v3 */
2972 "get_all_logins",
2973 "galo",
2974 3,
2975 RETRIEVE,
2976 "u",
2977 USERS_TABLE,
2978 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle FROM users u",
2979 galo_fields,
2980 7,
2981 "u.users_id != 0",
2982 0,
2983 "u.login",
2984 0,
2985 },
2986
2987 {
2988 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS, v2 */
d33e787c 2989 "get_all_active_logins",
2990 "gaal",
c44ddfa7 2991 2,
d33e787c 2992 RETRIEVE,
2993 "u",
03c05291 2994 USERS_TABLE,
2995 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
186dd63b 2996 galo2_fields,
d33e787c 2997 6,
0c345c78 2998 "u.status = 1",
d33e787c 2999 0,
29028043 3000 "u.login",
3001 0,
d33e787c 3002 },
5eaef520 3003
4ffa124a 3004 {
186dd63b 3005 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS, v3 */
3006 "get_all_active_logins",
3007 "gaal",
3008 3,
3009 RETRIEVE,
3010 "u",
3011 USERS_TABLE,
3012 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle FROM users u",
3013 galo_fields,
3014 7,
3015 "u.status = 1",
3016 0,
3017 "u.login",
3018 0,
3019 },
3020
3021 {
3022 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN, v2 */
0c345c78 3023 "get_user_account_by_login",
3024 "gual",
c44ddfa7 3025 2,
0c345c78 3026 RETRIEVE,
3027 "u",
03c05291 3028 USERS_TABLE,
d55429b2 3029 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
186dd63b 3030 gual2_fields,
0c345c78 3031 15,
263a36d4 3032 "u.login LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 3033 1,
29028043 3034 "u.login",
0c345c78 3035 &gubl_validate,
4ffa124a 3036 },
5eaef520 3037
4ffa124a 3038 {
186dd63b 3039 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN, v3 */
3040 "get_user_account_by_login",
3041 "gual",
3042 3,
3043 RETRIEVE,
3044 "u",
3045 USERS_TABLE,
3046 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3047 gual_fields,
3048 16,
3049 "u.login LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
3050 1,
3051 "u.login",
3052 &gubl_validate,
3053 },
3054
3055 {
3056 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID, v2 */
0c345c78 3057 "get_user_account_by_uid",
3058 "guau",
c44ddfa7 3059 2,
0c345c78 3060 RETRIEVE,
3061 "u",
03c05291 3062 USERS_TABLE,
d55429b2 3063 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
186dd63b 3064 guau2_fields,
0c345c78 3065 15,
03c05291 3066 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 3067 1,
29028043 3068 "u.login",
0c345c78 3069 &gubu_validate,
4ffa124a 3070 },
5eaef520 3071
4ffa124a 3072 {
186dd63b 3073 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID, v3 */
3074 "get_user_account_by_uid",
3075 "guau",
3076 3,
3077 RETRIEVE,
3078 "u",
3079 USERS_TABLE,
3080 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3081 guau_fields,
3082 16,
3083 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
3084 1,
3085 "u.login",
3086 &gubu_validate,
3087 },
3088
3089 {
3090 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME, v2 */
0c345c78 3091 "get_user_account_by_name",
3092 "guan",
c44ddfa7 3093 2,
0c345c78 3094 RETRIEVE,
3095 "u",
03c05291 3096 USERS_TABLE,
d55429b2 3097 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
186dd63b 3098 guan2_fields,
0c345c78 3099 15,
263a36d4 3100 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0 and u.comments = str.string_id",
0c345c78 3101 2,
29028043 3102 "u.login",
60452f41 3103 &guan_validate,
4ffa124a 3104 },
5eaef520 3105
4ffa124a 3106 {
186dd63b 3107 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME, v3 */
3108 "get_user_account_by_name",
3109 "guan",
3110 3,
3111 RETRIEVE,
3112 "u",
3113 USERS_TABLE,
3114 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3115 guan_fields,
3116 16,
3117 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0 and u.comments = str.string_id",
3118 2,
3119 "u.login",
3120 &guan_validate,
3121 },
3122
3123 {
3124 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS, v2 */
0c345c78 3125 "get_user_account_by_class",
3126 "guac",
c44ddfa7 3127 2,
0c345c78 3128 RETRIEVE,
3129 "u",
03c05291 3130 USERS_TABLE,
d55429b2 3131 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
186dd63b 3132 guac2_fields,
0c345c78 3133 15,
03c05291 3134 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 3135 1,
29028043 3136 "u.login",
3137 &VDfix_modby,
4ffa124a 3138 },
5eaef520 3139
4ffa124a 3140 {
186dd63b 3141 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS, v3 */
3142 "get_user_account_by_class",
3143 "guac",
3144 3,
3145 RETRIEVE,
3146 "u",
3147 USERS_TABLE,
3148 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3149 guac_fields,
3150 16,
3151 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
3152 1,
3153 "u.login",
3154 &VDfix_modby,
3155 },
3156
3157 {
3158 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID, v2 */
0c345c78 3159 "get_user_account_by_id",
3160 "guai",
c44ddfa7 3161 2,
0c345c78 3162 RETRIEVE,
3163 "u",
03c05291 3164 USERS_TABLE,
d55429b2 3165 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
186dd63b 3166 guam2_fields,
0c345c78 3167 15,
263a36d4 3168 "u.clearid LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 3169 1,
29028043 3170 "u.login",
263a36d4 3171 &VDfix_modby,
4ffa124a 3172 },
5eaef520 3173
d33e787c 3174 {
186dd63b 3175 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID, v3 */
3176 "get_user_account_by_id",
3177 "guai",
3178 3,
3179 RETRIEVE,
3180 "u",
3181 USERS_TABLE,
3182 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3183 guam_fields,
3184 16,
3185 "u.clearid LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
3186 1,
3187 "u.login",
3188 &VDfix_modby,
3189 },
3190
3191 {
3192 /* Q_GUBL - GET_USER_BY_LOGIN, v2 */
d33e787c 3193 "get_user_by_login",
3194 "gubl",
c44ddfa7 3195 2,
d33e787c 3196 RETRIEVE,
3197 "u",
5eaef520 3198 USERS_TABLE,
03c05291 3199 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
186dd63b 3200 gubl2_fields,
d33e787c 3201 12,
263a36d4 3202 "u.login LIKE '%s' AND u.users_id != 0",
d33e787c 3203 1,
29028043 3204 "u.login",
f9f5c199 3205 &gubl_validate,
d33e787c 3206 },
5eaef520 3207
d33e787c 3208 {
186dd63b 3209 /* Q_GUBL - GET_USER_BY_LOGIN, v3 */
3210 "get_user_by_login",
3211 "gubl",
3212 3,
3213 RETRIEVE,
3214 "u",
3215 USERS_TABLE,
3216 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3217 gubl_fields,
3218 13,
3219 "u.login LIKE '%s' AND u.users_id != 0",
3220 1,
3221 "u.login",
3222 &gubl_validate,
3223 },
3224
3225 {
3226 /* Q_GUBU - GET_USER_BY_UID, v2 */
d33e787c 3227 "get_user_by_uid",
3228 "gubu",
c44ddfa7 3229 2,
d33e787c 3230 RETRIEVE,
3231 "u",
03c05291 3232 USERS_TABLE,
3233 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
186dd63b 3234 gubu2_fields,
d33e787c 3235 12,
03c05291 3236 "u.unix_uid = %s AND u.users_id != 0",
d33e787c 3237 1,
29028043 3238 "u.login",
f9f5c199 3239 &gubu_validate,
d33e787c 3240 },
5eaef520 3241
d33e787c 3242 {
186dd63b 3243 /* Q_GUBU - GET_USER_BY_UID, v3 */
3244 "get_user_by_uid",
3245 "gubu",
3246 3,
3247 RETRIEVE,
3248 "u",
3249 USERS_TABLE,
3250 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3251 gubu_fields,
3252 13,
3253 "u.unix_uid = %s AND u.users_id != 0",
3254 1,
3255 "u.login",
3256 &gubu_validate,
3257 },
3258
3259 {
3260 /* Q_GUBN - GET_USER_BY_NAME, v2 */
d33e787c 3261 "get_user_by_name",
3262 "gubn",
c44ddfa7 3263 2,
d33e787c 3264 RETRIEVE,
3265 "u",
03c05291 3266 USERS_TABLE,
3267 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
186dd63b 3268 gubn2_fields,
d33e787c 3269 12,
263a36d4 3270 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0",
d33e787c 3271 2,
29028043 3272 "u.login",
99e09b48 3273 &gubn_validate,
d33e787c 3274 },
5eaef520 3275
d33e787c 3276 {
186dd63b 3277 /* Q_GUBN - GET_USER_BY_NAME, v3 */
3278 "get_user_by_name",
3279 "gubn",
3280 3,
3281 RETRIEVE,
3282 "u",
3283 USERS_TABLE,
3284 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3285 gubn_fields,
3286 13,
3287 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0",
3288 2,
3289 "u.login",
3290 &gubn_validate,
3291 },
3292
3293 {
3294 /* Q_GUBC - GET_USER_BY_CLASS, v2 */
d33e787c 3295 "get_user_by_class",
3296 "gubc",
c44ddfa7 3297 2,
d33e787c 3298 RETRIEVE,
3299 "u",
03c05291 3300 USERS_TABLE,
3301 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
186dd63b 3302 gubc2_fields,
d33e787c 3303 12,
03c05291 3304 "u.type = UPPER('%s') AND u.users_id != 0",
d33e787c 3305 1,
29028043 3306 "u.login",
3307 &VDfix_modby,
d33e787c 3308 },
5eaef520 3309
d33e787c 3310 {
186dd63b 3311 /* Q_GUBC - GET_USER_BY_CLASS, v3 */
3312 "get_user_by_class",
3313 "gubc",
3314 3,
3315 RETRIEVE,
3316 "u",
3317 USERS_TABLE,
3318 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3319 gubc_fields,
3320 13,
3321 "u.type = UPPER('%s') AND u.users_id != 0",
3322 1,
3323 "u.login",
3324 &VDfix_modby,
3325 },
3326
3327 {
3328 /* Q_GUBM - GET_USER_BY_MITID, v2 */
d33e787c 3329 "get_user_by_mitid",
3330 "gubm",
c44ddfa7 3331 2,
d33e787c 3332 RETRIEVE,
3333 "u",
03c05291 3334 USERS_TABLE,
3335 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
186dd63b 3336 gubm2_fields,
d33e787c 3337 12,
263a36d4 3338 "u.clearid LIKE '%s' AND u.users_id != 0",
d33e787c 3339 1,
29028043 3340 "u.login",
263a36d4 3341 &VDfix_modby,
d33e787c 3342 },
5eaef520 3343
4ffa124a 3344 {
186dd63b 3345 /* Q_GUBM - GET_USER_BY_MITID, v3 */
3346 "get_user_by_mitid",
3347 "gubm",
3348 3,
3349 RETRIEVE,
3350 "u",
3351 USERS_TABLE,
3352 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
3353 gubm_fields,
3354 13,
3355 "u.clearid LIKE '%s' AND u.users_id != 0",
3356 1,
3357 "u.login",
3358 &VDfix_modby,
3359 },
3360
3361 {
3362 /* Q_AUAC - ADD_USER_ACCOUNT, v2 */ /* uses prefetch_value() for users_id */
4ffa124a 3363 "add_user_account",
3364 "auac",
c44ddfa7 3365 2,
4ffa124a 3366 APPEND,
3367 "u",
03c05291 3368 USERS_TABLE,
d55429b2 3369 /* We set signature to "NVL(CHR(0), '%s')", which is to say, "CHR(0)",
3370 * but using up one argv element.
3371 */
3372 "INTO users (login, unix_uid, shell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s, NVL('%s', CHR(0)), '%s', %d, NVL(CHR(0), '%s'), %s, %s)",
186dd63b 3373 auac2_fields,
4ffa124a 3374 12,
7ac48069 3375 NULL,
4ffa124a 3376 0,
29028043 3377 NULL,
186dd63b 3378 &auac2_validate,
3379 },
3380
3381 {
3382 /* Q_AUAC - ADD_USER_ACCOUNT, v3 */ /* uses prefetch_value() for users_id */
3383 "add_user_account",
3384 "auac",
3385 3,
3386 APPEND,
3387 "u",
3388 USERS_TABLE,
3389 /* We set signature to "NVL(CHR(0), '%s')", which is to say, "CHR(0)",
3390 * but using up one argv element.
3391 */
3392 "INTO users (login, unix_uid, shell, winconsoleshell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s, NVL('%s', CHR(0)), '%s', %d, NVL(CHR(0), '%s'), %s, %s)",
3393 auac_fields,
3394 13,
3395 NULL,
3396 0,
3397 NULL,
4ffa124a 3398 &auac_validate,
3399 },
5eaef520 3400
d33e787c 3401 {
186dd63b 3402 /* Q_AUSR - ADD_USER, v2 */ /* uses prefetch_value() for users_id */
d33e787c 3403 "add_user",
3404 "ausr",
c44ddfa7 3405 2,
d33e787c 3406 APPEND,
3407 "u",
03c05291 3408 USERS_TABLE,
5eaef520 3409 "INTO users (login, unix_uid, shell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s, NVL('%s', CHR(0)), '%s', 0, CHR(0), 0, %s)",
186dd63b 3410 auac2_fields,
d33e787c 3411 9,
45bf7573 3412 0,
d33e787c 3413 0,
29028043 3414 NULL,
186dd63b 3415 &ausr2_validate,
3416 },
3417
3418 {
3419 /* Q_AUSR - ADD_USER, v3 */ /* uses prefetch_value() for users_id */
3420 "add_user",
3421 "ausr",
3422 3,
3423 APPEND,
3424 "u",
3425 USERS_TABLE,
3426 "INTO users (login, unix_uid, shell, winconsoleshell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s, NVL('%s', CHR(0)), '%s', 0, CHR(0), 0, %s)",
3427 auac_fields,
3428 10,
3429 0,
3430 0,
3431 NULL,
d33e787c 3432 &ausr_validate,
3433 },
5eaef520 3434
d33e787c 3435 {
3436 /* Q_RUSR - REGISTER_USER */
3437 "register_user",
3438 "rusr",
c44ddfa7 3439 2,
d33e787c 3440 APPEND,
3441 0,
3442 0,
3443 0,
3444 rusr_fields,
3445 3,
3446 0,
3447 0,
29028043 3448 NULL,
d33e787c 3449 &rusr_validate,
3450 },
5eaef520 3451
4ffa124a 3452 {
186dd63b 3453 /* Q_UUAC - UPDATE_USER_ACCOUNT, v2 */
4ffa124a 3454 "update_user_account",
3455 "uuac",
c44ddfa7 3456 2,
4ffa124a 3457 UPDATE,
3458 "u",
03c05291 3459 USERS_TABLE,
d55429b2 3460 /* See comment in auac about signature. */
3461 "users SET login = '%s', unix_uid = %s, shell = '%s', last = NVL('%s', CHR(0)), first = NVL('%s', CHR(0)), middle = NVL('%s', CHR(0)), status = %s, clearid = NVL('%s', CHR(0)), type = '%s', comments = %d, signature = NVL(CHR(0), '%s'), secure = %s",
186dd63b 3462 uuac2_fields,
4ffa124a 3463 12,
3464 "users_id = %d",
3465 1,
29028043 3466 NULL,
186dd63b 3467 &uuac2_validate,
3468 },
3469
3470 {
3471 /* Q_UUAC - UPDATE_USER_ACCOUNT, v3 */
3472 "update_user_account",
3473 "uuac",
3474 3,
3475 UPDATE,
3476 "u",
3477 USERS_TABLE,
3478 /* See comment in auac about signature. */
3479 "users SET login = '%s', unix_uid = %s, shell = '%s', winconsoleshell = '%s', last = NVL('%s', CHR(0)), first = NVL('%s', CHR(0)), middle = NVL('%s', CHR(0)), status = %s, clearid = NVL('%s', CHR(0)), type = '%s', comments = %d, signature = NVL(CHR(0), '%s'), secure = %s",
3480 uuac_fields,
3481 13,
3482 "users_id = %d",
3483 1,
3484 NULL,
4ffa124a 3485 &uuac_validate,
3486 },
5eaef520 3487
d33e787c 3488 {
186dd63b 3489 /* Q_UUSR - UPDATE_USER, v2 */
d33e787c 3490 "update_user",
3491 "uusr",
c44ddfa7 3492 2,
d33e787c 3493 UPDATE,
3494 "u",
03c05291 3495 USERS_TABLE,
5eaef520 3496 "users SET login = '%s', unix_uid = %s, shell = '%s', last = NVL('%s', CHR(0)), first = NVL('%s', CHR(0)), middle = NVL('%s', CHR(0)), status = %s, clearid = NVL('%s', CHR(0)), type = '%s'",
186dd63b 3497 uuac2_fields,
d33e787c 3498 9,
4e5ec77f 3499 "users_id = %d",
d33e787c 3500 1,
29028043 3501 NULL,
186dd63b 3502 &uusr2_validate,
3503 },
3504
3505 {
3506 /* Q_UUSR - UPDATE_USER, v3 */
3507 "update_user",
3508 "uusr",
3509 3,
3510 UPDATE,
3511 "u",
3512 USERS_TABLE,
3513 "users SET login = '%s', unix_uid = %s, shell = '%s', winconsoleshell = '%s', last = NVL('%s', CHR(0)), first = NVL('%s', CHR(0)), middle = NVL('%s', CHR(0)), status = %s, clearid = NVL('%s', CHR(0)), type = '%s'",
3514 uuac_fields,
3515 10,
3516 "users_id = %d",
3517 1,
3518 NULL,
d33e787c 3519 &uusr_validate,
3520 },
3521
3522 {
3523 /* Q_UUSH - UPDATE_USER_SHELL */
3524 "update_user_shell",
3525 "uush",
c44ddfa7 3526 2,
d33e787c 3527 UPDATE,
3528 "u",
03c05291 3529 USERS_TABLE,
5eaef520 3530 "users SET shell = '%s'",
d33e787c 3531 uush_fields,
3532 1,
4e5ec77f 3533 "users_id = %d",
d33e787c 3534 1,
29028043 3535 NULL,
d33e787c 3536 &uush_validate,
3537 },
3538
29dbfca4 3539 {
3540 /* Q_UUWS - UPDATE_USER_WINDOWS_SHELL */
3541 "update_user_windows_shell",
3542 "uuws",
3543 2,
3544 UPDATE,
3545 "u",
3546 USERS_TABLE,
3547 "users SET winconsoleshell = '%s'",
3548 uuws_fields,
3549 1,
3550 "users_id = %d",
3551 1,
3552 NULL,
3553 &uuws_validate,
3554 },
3555
d33e787c 3556 {
3557 /* Q_UUST - UPDATE_USER_STATUS */
3558 "update_user_status",
3559 "uust",
c44ddfa7 3560 2,
d33e787c 3561 UPDATE,
3562 "u",
03c05291 3563 USERS_TABLE,
4e5ec77f 3564 "users SET status = %s",
d33e787c 3565 uust_fields,
3566 1,
4e5ec77f 3567 "users_id = %d",
d33e787c 3568 1,
29028043 3569 NULL,
d33e787c 3570 &uust_validate,
3571 },
3572
4ffa124a 3573 {
3574 /* Q_UUSS - UPDATE_USER_SECURITY_STATUS */
3575 "update_user_security_status",
3576 "uuss",
c44ddfa7 3577 2,
4ffa124a 3578 UPDATE,
3579 "u",
03c05291 3580 USERS_TABLE,
135dcb80 3581 "users SET secure = %s",
4ffa124a 3582 uuss_fields,
3583 1,
3584 "users_id = %d",
3585 1,
29028043 3586 NULL,
4ffa124a 3587 &uust_validate,
3588 },
5eaef520 3589
d33e787c 3590 {
5eaef520 3591 /* Q_DUSR - DELETE_USER */
d33e787c 3592 "delete_user",
3593 "dusr",
c44ddfa7 3594 2,
d33e787c 3595 DELETE,
3596 "u",
03c05291 3597 USERS_TABLE,
7ac48069 3598 NULL,
d33e787c 3599 dusr_fields,
3600 0,
4e5ec77f 3601 "users_id = %d",
d33e787c 3602 1,
29028043 3603 NULL,
d33e787c 3604 &dusr_validate,
3605 },
3606
77eb4bdf 3607 {
3608 /* Q_AURV - ADD_USER_RESERVATION */
3609 "add_user_reservation",
3610 "aurv",
3611 2,
3612 UPDATE,
3613 0,
3614 USERS_TABLE,
3615 0,
3616 aurv_fields,
3617 2,
3618 0,
3619 0,
3620 NULL,
3621 &aurv_validate,
3622 },
3623
3624 {
3625 /* Q_GURV - GET_USER_RESERVATIONS */
3626 "get_user_reservations",
3627 "gurv",
3628 2,
3629 RETRIEVE,
3630 0,
3631 USERS_TABLE,
3632 0,
3633 gurv_fields,
3634 2,
3635 0,
3636 1,
3637 NULL,
3638 &gurv_validate,
3639 },
3640
3641 {
3642 /* Q_GUBR - GET_USER_BY_RESERVATION */
3643 "get_user_by_reservation",
3644 "gubr",
3645 2,
3646 RETRIEVE,
3647 0,
3648 USERS_TABLE,
3649 0,
3650 gubr_fields,
3651 1,
3652 0,
3653 1,
3654 NULL,
3655 &gubr_validate,
3656 },
3657
3658 {
3659 /* Q_DURV - DELETE_USER_RESERVATION */
3660 "delete_user_reservation",
3661 "durv",
3662 2,
3663 UPDATE,
3664 0,
3665 USERS_TABLE,
3666 0,
3667 aurv_fields,
3668 2,
3669 0,
3670 0,
3671 NULL,
3672 &aurv_validate,
3673 },
3674
012fc215 3675 {
5eaef520 3676 /* Q_GKUM - GET_KERBEROS_USER_MAP */
012fc215 3677 "get_kerberos_user_map",
3678 "gkum",
c44ddfa7 3679 2,
012fc215 3680 RETRIEVE,
3681 "k",
03c05291 3682 KRBMAP_TABLE,
3683 "u.login, str.string FROM krbmap km, users u, strings str",
012fc215 3684 gkum_fields,
3685 2,
263a36d4 3686 "u.login LIKE '%s' AND str.string LIKE '%s' AND km.users_id = u.users_id AND km.string_id = str.string_id",
012fc215 3687 2,
29028043 3688 "u.login, str.string",
263a36d4 3689 NULL,
012fc215 3690 },
3691
3692 {
3693 /* Q_AKUM - ADD_KERBEROS_USER_MAP */
3694 "add_kerberos_user_map",
3695 "akum",
c44ddfa7 3696 2,
012fc215 3697 APPEND,
3698 "k",
03c05291 3699 KRBMAP_TABLE,
99e09b48 3700 "INTO krbmap (users_id, string_id) VALUES (%d, %d)",
012fc215 3701 akum_fields,
3702 2,
3703 0,
3704 0,
29028043 3705 NULL,
012fc215 3706 &akum_validate,
3707 },
3708
3709 {
3710 /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
3711 "delete_kerberos_user_map",
3712 "dkum",
c44ddfa7 3713 2,
012fc215 3714 DELETE,
3715 "k",
03c05291 3716 KRBMAP_TABLE,
012fc215 3717 0,
3718 akum_fields,
3719 0,
99e09b48 3720 "users_id = %d AND string_id = %d",
012fc215 3721 2,
29028043 3722 NULL,
012fc215 3723 &dkum_validate,
3724 },
3725
d33e787c 3726 {
3727 /* Q_GFBL - GET_FINGER_BY_LOGIN */
3728 "get_finger_by_login",
3729 "gfbl",
c44ddfa7 3730 2,
d33e787c 3731 RETRIEVE,
3732 "u",
03c05291 3733 USERS_TABLE,
3734 "login, fullname, nickname, home_addr, home_phone, office_addr, office_phone, department, affiliation, TO_CHAR(fmodtime, 'DD-mon-YYYY HH24:MI:SS'), fmodby, fmodwith FROM users",
d33e787c 3735 gfbl_fields,
3736 12,
03c05291 3737 "users_id = %d",
d33e787c 3738 1,
29028043 3739 "login",
d33e787c 3740 &gfbl_validate,
3741 },
3742
3743 {
3744 /* Q_UFBL - UPDATE_FINGER_BY_LOGIN */
3745 "update_finger_by_login",
3746 "ufbl",
c44ddfa7 3747 2,
d33e787c 3748 UPDATE,
3749 "u",
03c05291 3750 USERS_TABLE,
5eaef520 3751 "users SET fullname= NVL('%s', CHR(0)), nickname= NVL('%s', CHR(0)), home_addr= NVL('%s', CHR(0)), home_phone= NVL('%s', CHR(0)), office_addr= NVL('%s', CHR(0)), office_phone= NVL('%s', CHR(0)), department= NVL('%s', CHR(0)), affiliation= NVL('%s', CHR(0))",
d33e787c 3752 ufbl_fields,
3753 8,
4e5ec77f 3754 "users_id = %d",
d33e787c 3755 1,
29028043 3756 NULL,
d33e787c 3757 &ufbl_validate,
3758 },
3759
3760 {
3761 /* Q_GPOB - GET_POBOX */
3762 "get_pobox",
3763 "gpob",
c44ddfa7 3764 2,
d33e787c 3765 RETRIEVE,
3766 "u",
03c05291 3767 USERS_TABLE,
d6d830a1 3768 "login, potype, users_id, CHR(0), TO_CHAR(pmodtime, 'DD-mon-YYYY HH24:MI:SS'), pmodby, pmodwith FROM users",
d33e787c 3769 gpob_fields,
d6d830a1 3770 7,
03c05291 3771 "users_id = %d",
d33e787c 3772 1,
29028043 3773 "login",
d33e787c 3774 &gpob_validate,
3775 },
3776
3777 {
3778 /* Q_GAPO - GET_ALL_POBOXES */
3779 "get_all_poboxes",
3780 "gapo",
c44ddfa7 3781 2,
d33e787c 3782 RETRIEVE,
3783 "u",
03c05291 3784 USERS_TABLE,
3785 "login, potype, pop_id || ':' || box_id FROM users",
d33e787c 3786 gpox_fields,
3787 3,
03c05291 3788 "potype != 'NONE'",
d33e787c 3789 0,
29028043 3790 "login",
d33e787c 3791 &gpox_validate,
3792 },
5eaef520 3793
d33e787c 3794 {
3795 /* Q_GPOP - GET_POBOXES_POP */
3796 "get_poboxes_pop",
3797 "gpop",
c44ddfa7 3798 2,
d33e787c 3799 RETRIEVE,
3800 "u",
03c05291 3801 USERS_TABLE,
17cb3de8 3802 "login, potype, users_id FROM users",
d33e787c 3803 gpox_fields,
3804 3,
03c05291 3805 "potype = 'POP'",
d33e787c 3806 0,
29028043 3807 "login",
d33e787c 3808 &gpox_validate
3809 },
3810
3811 {
3812 /* Q_GPOF - GET_POBOXES_SMTP */
3813 "get_poboxes_smtp",
3814 "gpos",
c44ddfa7 3815 2,
d33e787c 3816 RETRIEVE,
3817 "u",
03c05291 3818 USERS_TABLE,
17cb3de8 3819 "login, potype, users_id FROM users",
d33e787c 3820 gpox_fields,
3821 3,
03c05291 3822 "potype = 'SMTP'",
d33e787c 3823 0,
29028043 3824 "login",
d33e787c 3825 &gpox_validate
3826 },
3827
3828 {
3829 /* Q_SPOB - SET_POBOX */
3830 "set_pobox",
3831 "spob",
c44ddfa7 3832 2,
d33e787c 3833 UPDATE,
3834 0,
03c05291 3835 USERS_TABLE,
d33e787c 3836 0,
3837 spob_fields,
3838 3,
7ac48069 3839 NULL,
d33e787c 3840 0,
29028043 3841 NULL,
d33e787c 3842 &spob_validate,
3843 },
3844
3845 {
3846 /* Q_SPOP - SET_POBOX_POP */
3847 "set_pobox_pop",
3848 "spop",
c44ddfa7 3849 2,
d33e787c 3850 UPDATE,
8b0fdf05 3851 0,
03c05291 3852 USERS_TABLE,
17cb3de8 3853 0,
d33e787c 3854 spob_fields,
8b0fdf05 3855 1,
17cb3de8 3856 NULL,
3857 0,
29028043 3858 NULL,
d33e787c 3859 &spop_validate,
3860 },
3861
3862 {
3863 /* Q_DPOB - DELETE_POBOX */
3864 "delete_pobox",
3865 "dpob",
c44ddfa7 3866 2,
d33e787c 3867 UPDATE,
3868 "u",
03c05291 3869 USERS_TABLE,
3870 "users SET potype = 'NONE'",
3871 spob_fields,
3872 0,
3873 "users_id = %d",
d33e787c 3874 1,
29028043 3875 NULL,
03c05291 3876 &dpob_validate,
d33e787c 3877 },
3878
3879 {
a66a2204 3880 /* Q_GHST - GET_HOST */
3881 "get_host",
3882 "ghst",
c44ddfa7 3883 2,
a66a2204 3884 RETRIEVE,
3885 "m",
03c05291 3886 MACHINE_TABLE,
3887 "m.name, m.vendor, m.model, m.os, m.location, m.contact, m.use, m.status, TO_CHAR(m.statuschange, 'DD-mon-YYYY HH24:MI:SS'), s.name, m.address, m.owner_type, m.owner_id, m.acomment, m.ocomment, TO_CHAR(m.created, 'DD-mon-YYYY HH24:MI:SS'), m.creator, TO_CHAR(m.inuse, 'DD-mon-YYYY HH24:MI:SS'), TO_CHAR(m.modtime, 'DD-mon-YYYY HH24:MI:SS'), m.modby, m.modwith FROM machine m, subnet s",
a66a2204 3888 ghst_fields,
3889 21,
1fa08fc4 3890 "m.name LIKE UPPER('%s') AND m.address LIKE '%s' AND m.location LIKE UPPER('%s') AND s.name LIKE UPPER('%s') AND m.mach_id != 0 AND s.snet_id = m.snet_id",
a66a2204 3891 4,
29028043 3892 "m.name",
a66a2204 3893 &ghst_validate,
3894 },
3895
9333756a 3896 {
3897 /* Q_GHBH - GET_HOST_BY_HWADDR */
3898 "get_host_by_hwaddr",
3899 "ghbh",
c44ddfa7 3900 2,
9333756a 3901 RETRIEVE,
3902 "m",
3903 MACHINE_TABLE,
3904 "m.name, m.vendor, m.model, m.os, m.location, m.contact, m.use, m.status, TO_CHAR(m.statuschange, 'DD-mon-YYYY HH24:MI:SS'), s.name, m.address, m.owner_type, m.owner_id, m.acomment, m.ocomment, TO_CHAR(m.created, 'DD-mon-YYYY HH24:MI:SS'), m.creator, TO_CHAR(m.inuse, 'DD-mon-YYYY HH24:MI:SS'), TO_CHAR(m.modtime, 'DD-mon-YYYY HH24:MI:SS'), m.modby, m.modwith FROM machine m, subnet s",
3905 ghst_fields,
3906 21,
3907 "m.hwaddr LIKE LOWER('%s') AND m.mach_id != 0 AND s.snet_id = m.snet_id",
3908 1,
3909 "m.name",
3910 NULL,
3911 },
3912
2884200f 3913 {
3914 /* Q_GHHA - GET_HOST_HWADDR */
3915 "get_host_hwaddr",
3916 "ghha",
c44ddfa7 3917 2,
2884200f 3918 RETRIEVE,
3919 "m",
3920 MACHINE_TABLE,
3921 "m.hwaddr FROM machine m",
3922 ghha_fields,
3923 1,
3924 "m.name LIKE UPPER('%s')",
3925 1,
3926 NULL,
3927 NULL,
3928 },
3929
a66a2204 3930 {
3931 /* Q_AHST - ADD_HOST */ /* uses prefetch_value() for mach_id */
3932 "add_host",
3933 "ahst",
c44ddfa7 3934 2,
d33e787c 3935 APPEND,
3936 "m",
03c05291 3937 MACHINE_TABLE,
5eaef520 3938 "INTO machine (name, vendor, model, os, location, contact, use, status, statuschange, snet_id, address, owner_type, owner_id, acomment, ocomment, created, inuse, mach_id, creator) VALUES (UPPER('%s'), NVL(UPPER('%s'), CHR(0)), NVL(UPPER('%s'), CHR(0)), NVL(UPPER('%s'), CHR(0)), NVL(UPPER('%s'), CHR(0)), NVL('%s', CHR(0)), %s, %s, SYSDATE, %d, '%s', '%s', %d, %d, %d, SYSDATE, SYSDATE, %s, %s)",
a66a2204 3939 ahst_fields,
3940 14,
45bf7573 3941 0,
d33e787c 3942 0,
29028043 3943 NULL,
a66a2204 3944 &ahst_validate,
d33e787c 3945 },
3946
3947 {
a66a2204 3948 /* Q_UHST - UPDATE_HOST */
3949 "update_host",
3950 "uhst",
c44ddfa7 3951 2,
d33e787c 3952 UPDATE,
3953 "m",
03c05291 3954 MACHINE_TABLE,
5eaef520 3955 "machine SET name = NVL(UPPER('%s'), CHR(0)), vendor = NVL(UPPER('%s'), CHR(0)), model = NVL(UPPER('%s'), CHR(0)), os = NVL(UPPER('%s'), CHR(0)), location = NVL(UPPER('%s'), CHR(0)), contact = NVL('%s', CHR(0)), use = %s, status = %s, snet_id = %d, address = '%s', owner_type = '%s', owner_id = %d, acomment = %d, ocomment = %d",
a66a2204 3956 uhst_fields,
3957 14,
4e5ec77f 3958 "mach_id = %d",
d33e787c 3959 1,
29028043 3960 NULL,
a66a2204 3961 &uhst_validate,
d33e787c 3962 },
3963
2884200f 3964 {
3965 /* Q_UHHA - UPDATE_HOST_HWADDR */
3966 "update_host_hwaddr",
3967 "uhha",
c44ddfa7 3968 2,
2884200f 3969 UPDATE,
3970 "m",
3971 MACHINE_TABLE,
1fdf882a 3972 "machine SET hwaddr = NVL('%s', CHR(0))",
2884200f 3973 uhha_fields,
3974 1,
3975 "mach_id = %d",
3976 1,
3977 NULL,
3978 &uhha_validate,
3979 },
3980
d33e787c 3981 {
a66a2204 3982 /* Q_DHST - DELETE_HOST */
3983 "delete_host",
3984 "dhst",
c44ddfa7 3985 2,
d33e787c 3986 DELETE,
3987 "m",
03c05291 3988 MACHINE_TABLE,
7ac48069 3989 NULL,
a66a2204 3990 dhst_fields,
d33e787c 3991 0,
4e5ec77f 3992 "mach_id = %d",
d33e787c 3993 1,
29028043 3994 NULL,
a66a2204 3995 &dhst_validate,
3996 },
3997
03c05291 3998 {
3999 /* Q_GMAC - GET_MACHINE */
4000 "get_machine",
4001 "gmac",
c44ddfa7 4002 2,
03c05291 4003 RETRIEVE,
4004 "m",
4005 MACHINE_TABLE,
4006 "name, vendor, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM machine",
4007 gmac_fields,
4008 5,
263a36d4 4009 "name LIKE UPPER('%s') AND mach_id != 0",
03c05291 4010 1,
29028043 4011 "name",
263a36d4 4012 &VDfix_modby,
03c05291 4013 },
4014
a66a2204 4015 {
4016 /* Q_GHAL - GET_HOSTALIAS */
4017 "get_hostalias",
4018 "ghal",
c44ddfa7 4019 2,
a66a2204 4020 RETRIEVE,
03c05291 4021 "a",
4022 HOSTALIAS_TABLE,
4023 "a.name, m.name FROM hostalias a, machine m",
a66a2204 4024 ghal_fields,
4025 2,
263a36d4 4026 "m.mach_id = a.mach_id and a.name LIKE UPPER('%s') AND m.name LIKE UPPER('%s')",
a66a2204 4027 2,
29028043 4028 "a.name",
a66a2204 4029 &ghal_validate,
4030 },
4031
4032 {
4033 /* Q_AHAL - ADD_HOSTALIAS */
4034 "add_hostalias",
4035 "ahal",
c44ddfa7 4036 2,
a66a2204 4037 APPEND,
4038 "a",
03c05291 4039 HOSTALIAS_TABLE,
5eaef520 4040 "INTO hostalias (name, mach_id) VALUES (UPPER('%s'), %d)",
a66a2204 4041 ghal_fields,
4042 2,
4043 0,
4044 0,
29028043 4045 NULL,
a66a2204 4046 &ahal_validate,
4047 },
4048
4049 {
4050 /* Q_DHAL - DELETE_HOSTALIAS */
4051 "delete_hostalias",
4052 "dhal",
c44ddfa7 4053 2,
a66a2204 4054 DELETE,
4055 "a",
03c05291 4056 HOSTALIAS_TABLE,
7ac48069 4057 NULL,
a66a2204 4058 ghal_fields,
4059 0,
03c05291 4060 "name = UPPER('%s') AND mach_id = %d",
a66a2204 4061 2,
29028043 4062 NULL,
a66a2204 4063 &dhal_validate,
d33e787c 4064 },
4065
3c1d412c 4066 {
4067 /* Q_GSNT - GET_SUBNET */
4068 "get_subnet",
4069 "gsnt",
c44ddfa7 4070 2,
3c1d412c 4071 RETRIEVE,
4072 "s",
03c05291 4073 SUBNET_TABLE,
4074 "name, description, saddr, mask, low, high, prefix, owner_type, owner_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM subnet",
3c1d412c 4075 gsnt_fields,
bd8c26ff 4076 12,
5e8fdad1 4077 "name LIKE UPPER('%s')",
3c1d412c 4078 1,
29028043 4079 "name",
3c1d412c 4080 &gsnt_validate,
4081 },
4082
4083 {
4084 /* Q_ASNT - ADD_SUBNET */
4085 "add_subnet",
4086 "asnt",
c44ddfa7 4087 2,
3c1d412c 4088 APPEND,
4089 "s",
03c05291 4090 SUBNET_TABLE,
5eaef520 4091 "INTO subnet (name, description, saddr, mask, low, high, prefix, owner_type, owner_id, snet_id) VALUES (UPPER('%s'), NVL('%s', CHR(0)), %s, %s, %s, %s, NVL('%s', CHR(0)), '%s', %d, %s)",
3c1d412c 4092 asnt_fields,
bd8c26ff 4093 9,
3c1d412c 4094 0,
4095 0,
29028043 4096 NULL,
3c1d412c 4097 &asnt_validate,
4098 },
4099
4100 {
4101 /* Q_USNT - UPDATE_SUBNET */
4102 "update_subnet",
4103 "usnt",
c44ddfa7 4104 2,
3c1d412c 4105 UPDATE,
4106 "s",
03c05291 4107 SUBNET_TABLE,
5eaef520 4108 "subnet SET name = UPPER('%s'), description = NVL('%s', CHR(0)), saddr = %s, mask = %s, low = %s, high = %s, prefix = NVL('%s', CHR(0)), owner_type = '%s', owner_id = %d",
3c1d412c 4109 usnt_fields,
bd8c26ff 4110 9,
3c1d412c 4111 "snet_id = %d",
4112 1,
29028043 4113 NULL,
3c1d412c 4114 &usnt_validate,
4115 },
4116
4117 {
4118 /* Q_DSNT - DELETE_SUBNET */
4119 "delete_subnet",
4120 "dsnt",
c44ddfa7 4121 2,
3c1d412c 4122 DELETE,
4123 "s",
03c05291 4124 SUBNET_TABLE,
7ac48069 4125 NULL,
3c1d412c 4126 dsnt_fields,
4127 0,
4128 "snet_id = %d",
4129 1,
29028043 4130 NULL,
3c1d412c 4131 &dsnt_validate,
4132 },
4133
d33e787c 4134 {
4135 /* Q_GCLU - GET_CLUSTER */
4136 "get_cluster",
4137 "gclu",
c44ddfa7 4138 2,
d33e787c 4139 RETRIEVE,
4140 "c",
e688520a 4141 CLUSTERS_TABLE,
03c05291 4142 "name, description, location, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM clusters",
d33e787c 4143 gclu_fields,
4144 6,
263a36d4 4145 "name LIKE '%s' AND clu_id != 0",
d33e787c 4146 1,
29028043 4147 "name",
263a36d4 4148 &VDfix_modby,
d33e787c 4149 },
4150
4151 {
45bf7573 4152 /* Q_ACLU - ADD_CLUSTER */ /* uses prefetch_value() for clu_id */
d33e787c 4153 "add_cluster",
4154 "aclu",
c44ddfa7 4155 2,
d33e787c 4156 APPEND,
4157 "c",
e688520a 4158 CLUSTERS_TABLE,
5eaef520 4159 "INTO clusters (name, description, location, clu_id) VALUES ('%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s)",
d33e787c 4160 aclu_fields,
4161 3,
45bf7573 4162 0,
d33e787c 4163 0,
29028043 4164 NULL,
d33e787c 4165 &aclu_validate,
4166 },
4167
4168 {
4169 /* Q_UCLU - UPDATE_CLUSTER */
4170 "update_cluster",
4171 "uclu",
c44ddfa7 4172 2,
d33e787c 4173 UPDATE,
4174 "c",
e688520a 4175 CLUSTERS_TABLE,
5eaef520 4176 "clusters SET name = '%s', description = NVL('%s', CHR(0)), location = NVL('%s', CHR(0))",
d33e787c 4177 uclu_fields,
4178 3,
4e5ec77f 4179 "clu_id = %d",
d33e787c 4180 1,
29028043 4181 NULL,
d33e787c 4182 &uclu_validate,
4183 },
4184
4185 {
4186 /* Q_DCLU - DELETE_CLUSTER */
4187 "delete_cluster",
4188 "dclu",
c44ddfa7 4189 2,
d33e787c 4190 DELETE,
4191 "c",
e688520a 4192 CLUSTERS_TABLE,
7ac48069 4193 NULL,
d33e787c 4194 dclu_fields,
4195 0,
4e5ec77f 4196 "clu_id = %d",
d33e787c 4197 1,
29028043 4198 NULL,
d33e787c 4199 &dclu_validate,
4200 },
4201
4202 {
5eaef520 4203 /* Q_GMCM - GET_MACHINE_TO_CLUSTER_MAP */
d33e787c 4204 "get_machine_to_cluster_map",
4205 "gmcm",
c44ddfa7 4206 2,
d33e787c 4207 RETRIEVE,
0c345c78 4208 "mcm",
03c05291 4209 MCMAP_TABLE,
4210 "m.name, c.name FROM machine m, clusters c, mcmap mcm",
d33e787c 4211 gmcm_fields,
4212 2,
263a36d4 4213 "m.name LIKE UPPER('%s') AND c.name LIKE '%s' AND mcm.clu_id = c.clu_id AND mcm.mach_id = m.mach_id",
d33e787c 4214 2,
29028043 4215 "m.name",
263a36d4 4216 NULL,
d33e787c 4217 },
5eaef520 4218
d33e787c 4219 {
4220 /* Q_AMTC - ADD_MACHINE_TO_CLUSTER */
4221 "add_machine_to_cluster",
4222 "amtc",
c44ddfa7 4223 2,
d33e787c 4224 APPEND,
0c345c78 4225 "mcm",
03c05291 4226 MCMAP_TABLE,
4e5ec77f 4227 "INTO mcmap (mach_id, clu_id) VALUES (%d, %d)",
d33e787c 4228 gmcm_fields,
4229 2,
4230 0,
4231 0,
29028043 4232 NULL,
d33e787c 4233 &amtc_validate,
4234 },
4235
4236 {
4237 /* Q_DMFC - DELETE_MACHINE_FROM_CLUSTER */
4238 "delete_machine_from_cluster",
4239 "dmfc",
c44ddfa7 4240 2,
d33e787c 4241 DELETE,
0c345c78 4242 "mcm",
03c05291 4243 MCMAP_TABLE,
d33e787c 4244 0,
4245 gmcm_fields,
4246 0,
4e5ec77f 4247 "mach_id = %d AND clu_id = %d",
d33e787c 4248 2,
29028043 4249 NULL,
d33e787c 4250 &amtc_validate,
4251 },
4252
4253 {
68dd808d 4254 /* Q_GCLD - GET_CLUSTER_DATA */
d33e787c 4255 "get_cluster_data",
4256 "gcld",
c44ddfa7 4257 2,
d33e787c 4258 RETRIEVE,
d33e787c 4259 "svc",
03c05291 4260 SVC_TABLE,
4261 "c.name, svc.serv_label, svc.serv_cluster FROM svc svc, clusters c",
d33e787c 4262 gcld_fields,
4263 3,
263a36d4 4264 "c.clu_id = svc.clu_id AND c.name LIKE '%s' AND svc.serv_label LIKE '%s'",
d33e787c 4265 2,
29028043 4266 "c.name, svc.serv_label",
263a36d4 4267 NULL,
d33e787c 4268 },
4269
4270 {
4271 /* Q_ACLD - ADD_CLUSTER_DATA */
4272 "add_cluster_data",
4273 "acld",
c44ddfa7 4274 2,
d33e787c 4275 APPEND,
0c345c78 4276 "svc",
03c05291 4277 SVC_TABLE,
5eaef520 4278 "INTO svc (clu_id, serv_label, serv_cluster) VALUES (%d, '%s', '%s')",
88343c5e 4279 acld_fields,
d33e787c 4280 3,
7ac48069 4281 NULL,
d33e787c 4282 0,
29028043 4283 NULL,
d33e787c 4284 &acld_validate,
4285 },
4286
4287 {
4288 /* Q_DCLD - DELETE_CLUSTER_DATA */
4289 "delete_cluster_data",
4290 "dcld",
c44ddfa7 4291 2,
d33e787c 4292 DELETE,
0c345c78 4293 "svc",
03c05291 4294 SVC_TABLE,
7ac48069 4295 NULL,
88343c5e 4296 acld_fields,
d33e787c 4297 0,
5eaef520 4298 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
d33e787c 4299 3,
29028043 4300 NULL,
99e09b48 4301 &dcld_validate,
d33e787c 4302 },
4303
03c05291 4304 {
44da57b2 4305 /* Q_GLIN - GET_LIST_INFO, v2 */
03c05291 4306 "get_list_info",
4307 "glin",
c44ddfa7 4308 2,
03c05291 4309 RETRIEVE,
263a36d4 4310 "l",
03c05291 4311 LIST_TABLE,
ccdbc974 4312 "name, active, publicflg, hidden, maillist, grouplist, gid, acl_type, acl_id, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM list",
44da57b2 4313 glin2_fields,
03c05291 4314 13,
263a36d4 4315 "name LIKE '%s'",
5eaef520 4316 1,
263a36d4 4317 "name",
5eaef520 4318 &glin_validate,
03c05291 4319 },
5eaef520 4320
44da57b2 4321 {
4322 /* Q_GLIN - GET_LIST_INFO, v3 */
4323 "get_list_info",
4324 "glin",
4325 3,
4326 RETRIEVE,
4327 "l",
4328 LIST_TABLE,
4329 "name, active, publicflg, hidden, maillist, grouplist, gid, nfsgroup, acl_type, acl_id, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM list",
59c3208b 4330 glin3_fields,
44da57b2 4331 14,
4332 "name LIKE '%s'",
4333 1,
4334 "name",
4335 &glin_validate,
4336 },
4337
59c3208b 4338 {
4339 /* Q_GLIN - GET_LIST_INFO, v4 */
4340 "get_list_info",
4341 "glin",
4342 4,
4343 RETRIEVE,
4344 "l",
4345 LIST_TABLE,
4346 "name, active, publicflg, hidden, maillist, grouplist, gid, nfsgroup, acl_type, acl_id, memacl_type, memacl_id, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM list",
4347 glin_fields,
4348 16,
4349 "name LIKE '%s'",
4350 1,
4351 "name",
4352 &glin_validate,
4353 },
4354
03c05291 4355 {
4356 /* Q_EXLN - EXPAND_LIST_NAMES */
4357 "expand_list_names",
4358 "exln",
c44ddfa7 4359 2,
03c05291 4360 RETRIEVE,
4361 "l",
4362 LIST_TABLE,
4363 "name FROM list",
4364 glin_fields,
4365 1,
263a36d4 4366 "name LIKE '%s' AND list_id != 0",
03c05291 4367 1,
29028043 4368 "name",
263a36d4 4369 NULL,
03c05291 4370 },
5eaef520 4371
03c05291 4372 {
44da57b2 4373 /* Q_ALIS - ADD_LIST, v2 */ /* uses prefetch_value() for list_id */
03c05291 4374 "add_list",
4375 "alis",
c44ddfa7 4376 2,
03c05291 4377 APPEND,
4378 "l",
5eaef520 4379 LIST_TABLE,
4380 "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, NVL('%s', CHR(0)), %s)",
44da57b2 4381 alis2_fields,
03c05291 4382 10,
4383 0,
4384 0,
29028043 4385 NULL,
44da57b2 4386 &alis2_validate,
4387 },
4388
4389 {
4390 /* Q_ALIS - ADD_LIST, v3 */ /* uses prefetch_value() for list_id */
4391 "add_list",
4392 "alis",
4393 3,
4394 APPEND,
4395 "l",
4396 LIST_TABLE,
4397 "INTO list (name, active, publicflg, hidden, maillist, grouplist, gid, nfsgroup, acl_type, acl_id, description, list_id) VALUES ('%s', %s, %s, %s, %s, %s, %s, %s, '%s', %d, NVL('%s', CHR(0)), %s)",
59c3208b 4398 alis3_fields,
44da57b2 4399 11,
4400 0,
4401 0,
4402 NULL,
59c3208b 4403 &alis3_validate,
4404 },
4405
4406 {
4407 /* Q_ALIS - ADD_LIST, v4 */ /* uses prefetch_value() for list_id */
4408 "add_list",
4409 "alis",
4410 4,
4411 APPEND,
4412 "l",
4413 LIST_TABLE,
4414 "INTO list (name, active, publicflg, hidden, maillist, grouplist, gid, nfsgroup, acl_type, acl_id, memacl_type, memacl_id, description, list_id) VALUES ('%s', %s, %s, %s, %s, %s, %s, %s, '%s', %d, '%s', %d, NVL('%s', CHR(0)), %s)",
4415 alis_fields,
4416 13,
4417 0,
4418 0,
4419 NULL,
03c05291 4420 &alis_validate,
4421 },
4422
4423 {
44da57b2 4424 /* Q_ULIS - UPDATE_LIST, v2 */
03c05291 4425 "update_list",
4426 "ulis",
c44ddfa7 4427 2,
03c05291 4428 UPDATE,
4429 "l",
4430 LIST_TABLE,
5eaef520 4431 "list SET name = '%s', active = %s, publicflg = %s, hidden = %s, maillist = %s, grouplist = %s, gid = %s, acl_type = '%s', acl_id = %d, description = NVL('%s', CHR(0))",
44da57b2 4432 ulis2_fields,
03c05291 4433 10,
4434 "list_id = %d",
4435 1,
29028043 4436 NULL,
44da57b2 4437 &ulis2_validate,
4438 },
4439
4440 {
4441 /* Q_ULIS - UPDATE_LIST, v3 */
4442 "update_list",
4443 "ulis",
4444 3,
4445 UPDATE,
4446 "l",
4447 LIST_TABLE,
4448 "list SET name = '%s', active = %s, publicflg = %s, hidden = %s, maillist = %s, grouplist = %s, gid = %s, nfsgroup = %s, acl_type = '%s', acl_id = %d, description = NVL('%s', CHR(0))",
59c3208b 4449 ulis3_fields,
44da57b2 4450 11,
4451 "list_id = %d",
4452 1,
4453 NULL,
59c3208b 4454 &ulis3_validate,
4455 },
4456
4457 {
4458 /* Q_ULIS, UPDATE_LIST, v4 */
4459 "update_list",
4460 "ulis",
4461 4,
4462 UPDATE,
4463 "l",
4464 LIST_TABLE,
4465 "list SET name = '%s', active = %s, publicflg = %s, hidden = %s, maillist = %s, grouplist = %s, gid = %s, nfsgroup = %s, acl_type = '%s', acl_id = %d, memacl_type = '%s', memacl_id = %d, description = NVL('%s', CHR(0))",
4466 ulis_fields,
4467 13,
4468 "list_id = %d",
4469 1,
4470 NULL,
03c05291 4471 &ulis_validate,
4472 },
4473
4474 {
4475 /* Q_DLIS - DELETE_LIST */
4476 "delete_list",
4477 "dlis",
c44ddfa7 4478 2,
03c05291 4479 DELETE,
4480 "l",
4481 LIST_TABLE,
7ac48069 4482 NULL,
03c05291 4483 dlis_fields,
4484 0,
4485 "list_id = %d",
4486 1,
29028043 4487 NULL,
03c05291 4488 &dlis_validate,
4489 },
4490
4491 {
4492 /* Q_AMTL - ADD_MEMBER_TO_LIST */
4493 "add_member_to_list",
4494 "amtl",
c44ddfa7 4495 2,
03c05291 4496 APPEND,
4497 0,
4498 IMEMBERS_TABLE,
4499 0,
4500 amtl_fields,
4501 3,
7ac48069 4502 NULL,
03c05291 4503 0,
29028043 4504 NULL,
03c05291 4505 &amtl_validate,
4506 },
4507
46b6f1f6 4508 {
4509 /* Q_ATML - ADD_TAGGED_MEMBER_TO_LIST */
4510 "add_tagged_member_to_list",
4511 "atml",
c44ddfa7 4512 2,
46b6f1f6 4513 APPEND,
4514 0,
4515 IMEMBERS_TABLE,
4516 0,
4517 atml_fields,
4518 4,
4519 NULL,
4520 0,
4521 NULL,
4522 &atml_validate,
4523 },
4524
4525 {
4526 /* Q_TMOL - TAG_MEMBER_OF_LIST */
4527 "tag_member_of_list",
4528 "tmol",
c44ddfa7 4529 2,
46b6f1f6 4530 UPDATE,
20541c25 4531 0,
46b6f1f6 4532 IMEMBERS_TABLE,
20541c25 4533 0,
46b6f1f6 4534 atml_fields,
4535 1,
20541c25 4536 0,
46b6f1f6 4537 3,
4538 NULL,
4539 &tmol_validate,
4540 },
4541
03c05291 4542 {
4543 /* Q_DMFL - DELETE_MEMBER_FROM_LIST */
4544 "delete_member_from_list",
4545 "dmfl",
c44ddfa7 4546 2,
03c05291 4547 DELETE,
4548 0,
4549 IMEMBERS_TABLE,
7ac48069 4550 NULL,
03c05291 4551 amtl_fields,
4552 0,
4553 0,
4554 3,
29028043 4555 NULL,
03c05291 4556 &dmfl_validate,
4557 },
4558
4559 {
4560 /* Q_GAUS - GET_ACE_USE */
4561 "get_ace_use",
4562 "gaus",
c44ddfa7 4563 2,
03c05291 4564 RETRIEVE,
4565 0,
4566 0,
4567 0,
4568 gaus_fields,
4569 2,
4570 0,
4571 2,
29028043 4572 NULL,
03c05291 4573 &gaus_validate,
4574 },
4575
d3051625 4576 {
4577 /* Q_GHBO - GET_HOST_BY_OWNER */
4578 "get_host_by_owner",
4579 "ghbo",
4580 2,
4581 RETRIEVE,
4582 0,
4583 0,
4584 0,
4585 ghbo_fields,
4586 1,
4587 0,
4588 2,
4589 NULL,
4590 &ghbo_validate,
4591 },
4592
03c05291 4593 {
4594 /* Q_QGLI - QUALIFIED_GET_LISTS */
4595 "qualified_get_lists",
4596 "qgli",
c44ddfa7 4597 2,
03c05291 4598 RETRIEVE,
4599 0,
4600 LIST_TABLE,
4601 0,
4602 qgli_fields,
4603 1,
4604 0,
4605 5,
29028043 4606 NULL,
03c05291 4607 &qgli_validate,
4608 },
4609
4610 {
4611 /* Q_GMOL - GET_MEMBERS_OF_LIST */
4612 "get_members_of_list",
4613 "gmol",
c44ddfa7 4614 2,
03c05291 4615 RETRIEVE,
7ac48069 4616 NULL,
03c05291 4617 IMEMBERS_TABLE,
7ac48069 4618 NULL,
03c05291 4619 gmol_fields,
4620 2,
7ac48069 4621 NULL,
03c05291 4622 1,
29028043 4623 NULL,
03c05291 4624 &gmol_validate,
4625 },
4626
4627 {
4628 /* Q_GEML - GET_END_MEMBERS_OF_LIST */
4629 "get_end_members_of_list",
4630 "geml",
c44ddfa7 4631 2,
03c05291 4632 RETRIEVE,
7ac48069 4633 NULL,
03c05291 4634 IMEMBERS_TABLE,
7ac48069 4635 NULL,
03c05291 4636 gmol_fields,
fd8d2149 4637 2,
7ac48069 4638 NULL,
03c05291 4639 1,
29028043 4640 NULL,
46b6f1f6 4641 &gmol_validate,
4642 },
4643
4644 {
4645 /* Q_GTML - GET_TAGGED_MEMBERS_OF_LIST */
4646 "get_tagged_members_of_list",
4647 "gtml",
c44ddfa7 4648 2,
46b6f1f6 4649 RETRIEVE,
4650 NULL,
4651 IMEMBERS_TABLE,
4652 NULL,
4653 gtml_fields,
4654 3,
4655 NULL,
4656 1,
4657 NULL,
4658 &gmol_validate,
03c05291 4659 },
5eaef520 4660
03c05291 4661 {
4662 /* Q_GLOM - GET_LISTS_OF_MEMBER */
4663 "get_lists_of_member",
4664 "glom",
c44ddfa7 4665 2,
03c05291 4666 RETRIEVE,
4667 0,
4668 IMEMBERS_TABLE,
4669 0,
4670 glom_fields,
4671 6,
4672 0,
4673 2,
29028043 4674 NULL,
03c05291 4675 &glom_validate,
4676 },
4677
4678 {
4679 /* Q_CMOL - COUNT_MEMBERS_OF_LIST */
4680 "count_members_of_list",
4681 "cmol",
c44ddfa7 4682 2,
03c05291 4683 RETRIEVE,
4684 0,
4685 IMEMBERS_TABLE,
4686 0,
4687 cmol_fields,
4688 1,
4689 0,
4690 1,
29028043 4691 NULL,
03c05291 4692 &cmol_validate,
4693 },
4694
d33e787c 4695 {
4696 /* Q_GSIN - GET_SERVER_INFO */
4697 "get_server_info",
4698 "gsin",
c44ddfa7 4699 2,
d33e787c 4700 RETRIEVE,
4701 "s",
03c05291 4702 SERVERS_TABLE,
4703 "name, update_int, target_file, script, dfgen, dfcheck, type, enable, inprogress, harderror, errmsg, acl_type, acl_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM servers",
d33e787c 4704 gsin_fields,
7ac4c1b1 4705 16,
263a36d4 4706 "name LIKE UPPER('%s')",
d33e787c 4707 1,
29028043 4708 "name",
d33e787c 4709 &gsin_validate,
4710 },
4711
4712 {
4713 /* Q_QGSV - QUALIFIED_GET_SERVER */
4714 "qualified_get_server",
4715 "qgsv",
c44ddfa7 4716 2,
d33e787c 4717 RETRIEVE,
4718 0,
03c05291 4719 SERVERS_TABLE,
d33e787c 4720 0,
4721 qgsv_fields,
4722 1,
4723 0,
4724 3,
29028043 4725 NULL,
d33e787c 4726 &qgsv_validate,
4727 },
4728
4729 {
4730 /* Q_ASIN - ADD_SERVER_INFO */
4731 "add_server_info",
4732 "asin",
c44ddfa7 4733 2,
d33e787c 4734 APPEND,
4735 "s",
03c05291 4736 SERVERS_TABLE,
5eaef520 4737 "INTO servers (name, update_int, target_file, script, type, enable, acl_type, acl_id) VALUES (UPPER('%s'), %s, '%s', '%s', '%s', %s, '%s', %d)",
d33e787c 4738 asin_fields,
4739 8,
7ac48069 4740 NULL,
d33e787c 4741 0,
29028043 4742 NULL,
d33e787c 4743 &asin_validate,
4744 },
4745
4746 {
4747 /* Q_USIN - UPDATE_SERVER_INFO */
4748 "update_server_info",
4749 "usin",
c44ddfa7 4750 2,
d33e787c 4751 UPDATE,
4752 "s",
03c05291 4753 SERVERS_TABLE,
4e5ec77f 4754 "servers SET update_int = %s, target_file = '%s', script = '%s', type = '%s', enable = %s, acl_type = '%s', acl_id = %d",
d33e787c 4755 asin_fields,
4756 7,
03c05291 4757 "name = UPPER('%s')",
d33e787c 4758 1,
29028043 4759 NULL,
d33e787c 4760 &asin_validate,
4761 },
4762
4763 {
4764 /* Q_RSVE - RESET_SERVER_ERROR */
4765 "reset_server_error",
4766 "rsve",
c44ddfa7 4767 2,
d33e787c 4768 UPDATE,
4769 "s",
03c05291 4770 SERVERS_TABLE,
4e5ec77f 4771 "servers SET harderror = 0, dfcheck = dfgen",
d33e787c 4772 dsin_fields,
4773 0,
03c05291 4774 "name = UPPER('%s')",
d33e787c 4775 1,
29028043 4776 NULL,
d33e787c 4777 &rsve_validate,
4778 },
4779
4780 {
4781 /* Q_SSIF - SET_SERVER_INTERNAL_FLAGS */
4782 "set_server_internal_flags",
4783 "ssif",
c44ddfa7 4784 2,
d33e787c 4785 UPDATE,
4786 "s",
03c05291 4787 SERVERS_TABLE,
5eaef520 4788 "servers SET dfgen = %s, dfcheck = %s, inprogress = %s, harderror = %s, errmsg = NVL('%s', CHR(0))",
d33e787c 4789 ssif_fields,
7ac4c1b1 4790 5,
03c05291 4791 "name = UPPER('%s')",
d33e787c 4792 1,
29028043 4793 NULL,
d33e787c 4794 &ssif_validate,
4795 },
4796
4797 {
4798 /* Q_DSIN - DELETE_SERVER_INFO */
4799 "delete_server_info",
4800 "dsin",
c44ddfa7 4801 2,
d33e787c 4802 DELETE,
4803 "s",
03c05291 4804 SERVERS_TABLE,
7ac48069 4805 NULL,
d33e787c 4806 dsin_fields,
4807 0,
03c05291 4808 "name = UPPER('%s')",
d33e787c 4809 1,
29028043 4810 NULL,
d33e787c 4811 &dsin_validate,
4812 },
4813
4814 {
5eaef520 4815 /* Q_GSHI - GET_SERVER_HOST_INFO */
d33e787c 4816 "get_server_host_info",
4817 "gshi",
c44ddfa7 4818 2,
d33e787c 4819 RETRIEVE,
4820 "sh",
03c05291 4821 SERVERHOSTS_TABLE,
4822 "sh.service, m.name, sh.enable, sh.override, sh.success, sh.inprogress, sh.hosterror, sh.hosterrmsg, sh.ltt, sh.lts, sh.value1, sh.value2, sh.value3, TO_CHAR(sh.modtime, 'DD-mon-YYYY HH24:MI:SS'), sh.modby, sh.modwith FROM serverhosts sh, machine m",
d33e787c 4823 gshi_fields,
4824 16,
263a36d4 4825 "sh.service LIKE UPPER('%s') AND m.name LIKE UPPER('%s') AND m.mach_id = sh.mach_id",
d33e787c 4826 2,
29028043 4827 "sh.service, m.name",
d33e787c 4828 &gshi_validate,
4829 },
4830
4831 {
135dcb80 4832 /* Q_QGSH - QUALIFIED_GET_SERVER_HOST */
d33e787c 4833 "qualified_get_server_host",
4834 "qgsh",
c44ddfa7 4835 2,
d33e787c 4836 RETRIEVE,
135dcb80 4837 0,
03c05291 4838 SERVERHOSTS_TABLE,
d33e787c 4839 0,
4840 qgsh_fields,
4841 2,
4842 0,
4843 6,
29028043 4844 NULL,
d33e787c 4845 &qgsh_validate,
4846 },
4847
4848 {
4849 /* Q_ASHI - ADD_SERVER_HOST_INFO */
4850 "add_server_host_info",
4851 "ashi",
c44ddfa7 4852 2,
d33e787c 4853 APPEND,
4854 "sh",
03c05291 4855 SERVERHOSTS_TABLE,
5eaef520 4856 "INTO serverhosts (service, mach_id, enable, value1, value2, value3) VALUES (UPPER('%s'), %d, %s, %s, %s, NVL('%s', CHR(0)))",
d33e787c 4857 ashi_fields,
4858 6,
7ac48069 4859 NULL,
d33e787c 4860 0,
29028043 4861 NULL,
d33e787c 4862 &ashi_validate,
4863 },
4864
4865 {
4866 /* Q_USHI - UPDATE_SERVER_HOST_INFO */
4867 "update_server_host_info",
4868 "ushi",
c44ddfa7 4869 2,
d33e787c 4870 UPDATE,
4871 "sh",
03c05291 4872 SERVERHOSTS_TABLE,
5eaef520 4873 "serverhosts SET enable = %s, value1 = %s, value2 = %s, value3 = NVL('%s', CHR(0))",
d33e787c 4874 ashi_fields,
4875 4,
03c05291 4876 "service = UPPER('%s') AND mach_id = %d",
d33e787c 4877 2,
29028043 4878 NULL,
d33e787c 4879 &ashi_validate,
4880 },
4881
4882 {
4883 /* Q_RSHE - RESET_SERVER_HOST_ERROR */
4884 "reset_server_host_error",
4885 "rshe",
c44ddfa7 4886 2,
d33e787c 4887 UPDATE,
4888 "sh",
03c05291 4889 SERVERHOSTS_TABLE,
4e5ec77f 4890 "serverhosts SET hosterror = 0",
d33e787c 4891 dshi_fields,
4892 0,
03c05291 4893 "service = UPPER('%s') AND mach_id = %d",
d33e787c 4894 2,
29028043 4895 NULL,
d33e787c 4896 &rshe_validate,
4897 },
4898
4899 {
4900 /* Q_SSHO - SET_SERVER_HOST_OVERRIDE */
4901 "set_server_host_override",
4902 "ssho",
c44ddfa7 4903 2,
d33e787c 4904 UPDATE,
4905 "sh",
03c05291 4906 SERVERHOSTS_TABLE,
4e5ec77f 4907 "serverhosts SET override = 1",
d33e787c 4908 dshi_fields,
4909 0,
03c05291 4910 "service = UPPER('%s') AND mach_id = %d",
d33e787c 4911 2,
29028043 4912 NULL,
d33e787c 4913 &ssho_validate,
4914 },
4915
4916 {
e41960ac 4917 /* Q_SSHI - SET_SERVER_HOST_INTERNAL */
d33e787c 4918 "set_server_host_internal",
4919 "sshi",
c44ddfa7 4920 2,
d33e787c 4921 UPDATE,
7ac4c1b1 4922 "s",
03c05291 4923 SERVERHOSTS_TABLE,
5eaef520 4924 "serverhosts SET override = %s, success = %s, inprogress = %s, hosterror = %s, hosterrmsg = NVL('%s', CHR(0)), ltt = %s, lts = %s",
d33e787c 4925 sshi_fields,
4926 7,
5eaef520 4927 "service = UPPER('%s') AND mach_id = %d",
d33e787c 4928 2,
29028043 4929 NULL,
d33e787c 4930 &sshi_validate,
4931 },
4932
4933 {
03c05291 4934 /* Q_DSHI - DELETE_SERVER_HOST_INFO */
4935 "delete_server_host_info",
4936 "dshi",
c44ddfa7 4937 2,
d33e787c 4938 DELETE,
03c05291 4939 "sh",
4940 SERVERHOSTS_TABLE,
7ac48069 4941 NULL,
03c05291 4942 dshi_fields,
d33e787c 4943 0,
03c05291 4944 "service = UPPER('%s') AND mach_id = %d",
4945 2,
29028043 4946 NULL,
03c05291 4947 &dshi_validate,
d33e787c 4948 },
4949
4950 {
5eaef520 4951 /* Q_GSLO - GET_SERVER_LOCATIONS */
d33e787c 4952 "get_server_locations",
4953 "gslo",
c44ddfa7 4954 2,
d33e787c 4955 RETRIEVE,
4956 "sh",
03c05291 4957 SERVERHOSTS_TABLE,
4958 "sh.service, m.name FROM serverhosts sh, machine m",
d33e787c 4959 gslo_fields,
4960 2,
263a36d4 4961 "sh.service LIKE UPPER('%s') AND sh.mach_id = m.mach_id",
d33e787c 4962 1,
29028043 4963 "sh.service, m.name",
263a36d4 4964 NULL,
d33e787c 4965 },
4966
4967 {
5eaef520 4968 /* Q_GFSL - GET_FILESYS_BY_LABEL */
d33e787c 4969 "get_filesys_by_label",
4970 "gfsl",
c44ddfa7 4971 2,
d33e787c 4972 RETRIEVE,
4973 "fs",
03c05291 4974 FILESYS_TABLE,
4975 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
d33e787c 4976 gfsl_fields,
4977 14,
263a36d4 4978 "fs.label LIKE '%s' AND fs.mach_id = m.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 4979 1,
29028043 4980 "fs.label",
5a8887d8 4981 &gfsl_validate,
d33e787c 4982 },
4983
4984 {
5eaef520 4985 /* Q_GFSM - GET_FILESYS_BY_MACHINE */
d33e787c 4986 "get_filesys_by_machine",
4987 "gfsm",
c44ddfa7 4988 2,
d33e787c 4989 RETRIEVE,
4990 "fs",
03c05291 4991 FILESYS_TABLE,
4992 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
d33e787c 4993 gfsm_fields,
4994 14,
4e5ec77f 4995 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 4996 1,
29028043 4997 "fs.label",
d33e787c 4998 &gfsm_validate,
4999 },
5000
88343c5e 5001 {
5eaef520 5002 /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
88343c5e 5003 "get_filesys_by_nfsphys",
5004 "gfsn",
c44ddfa7 5005 2,
88343c5e 5006 RETRIEVE,
5007 "fs",
03c05291 5008 FILESYS_TABLE,
5009 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l, nfsphys np",
88343c5e 5010 gfsn_fields,
5011 14,
cc1bca5c 5012 "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'",
88343c5e 5013 2,
29028043 5014 "fs.label",
99e09b48 5015 &gfsn_validate,
88343c5e 5016 },
5017
d33e787c 5018 {
5eaef520 5019 /* Q_GFSG - GET_FILESYS_BY_GROUP */
d33e787c 5020 "get_filesys_by_group",
5021 "gfsg",
c44ddfa7 5022 2,
d33e787c 5023 RETRIEVE,
5024 "fs",
03c05291 5025 FILESYS_TABLE,
5026 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
d33e787c 5027 gfsg_fields,
5028 14,
4e5ec77f 5029 "fs.owners = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 5030 1,
29028043 5031 "fs.label",
d33e787c 5032 &gfsg_validate,
5033 },
5034
4ffa124a 5035 {
76f86976 5036 /* Q_GFSP - GET_FILESYS_BY_PATH */
4ffa124a 5037 "get_filesys_by_path",
5038 "gfsp",
c44ddfa7 5039 2,
4ffa124a 5040 RETRIEVE,
5041 "fs",
03c05291 5042 FILESYS_TABLE,
5043 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
4ffa124a 5044 gfsp_fields,
5045 14,
263a36d4 5046 "fs.name LIKE '%s' AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = list_id",
4ffa124a 5047 1,
29028043 5048 "fs.label",
263a36d4 5049 &VDfix_modby,
4ffa124a 5050 },
5eaef520 5051
d33e787c 5052 {
45bf7573 5053 /* Q_AFIL - ADD_FILESYS */ /* uses prefetch_value() for filsys_id */
d33e787c 5054 "add_filesys",
5055 "afil",
c44ddfa7 5056 2,
d33e787c 5057 APPEND,
5058 "fs",
03c05291 5059 FILESYS_TABLE,
d4296047 5060 "INTO filesys (label, type, mach_id, name, mount, rwaccess, comments, owner, owners, createflg, lockertype, filsys_id) VALUES ('%s', '%s', %d, NVL('%s', CHR(0)), NVL('%s', CHR(0)), '%s', NVL('%s', CHR(0)), %d, %d, %s, '%s', %s)",
d33e787c 5061 afil_fields,
5062 11,
45bf7573 5063 0,
d33e787c 5064 0,
29028043 5065 NULL,
d33e787c 5066 &afil_validate,
5067 },
5068
5069 {
5070 /* Q_UFIL - UPDATE_FILESYS */
5071 "update_filesys",
5072 "ufil",
c44ddfa7 5073 2,
d33e787c 5074 UPDATE,
5075 "fs",
03c05291 5076 FILESYS_TABLE,
d4296047 5077 "filesys SET label = '%s', type = '%s', mach_id = %d, name = NVL('%s', CHR(0)), mount = NVL('%s', CHR(0)), rwaccess = '%s', comments = NVL('%s', CHR(0)), owner = %d, owners = %d, createflg = %s, lockertype = '%s'",
d33e787c 5078 ufil_fields,
5079 11,
4e5ec77f 5080 "filsys_id = %d",
d33e787c 5081 1,
29028043 5082 NULL,
5eaef520 5083 &ufil_validate,
d33e787c 5084 },
5085
5086 {
5087 /* Q_DFIL - DELETE_FILESYS */
5088 "delete_filesys",
5089 "dfil",
c44ddfa7 5090 2,
d33e787c 5091 DELETE,
5092 "fs",
03c05291 5093 FILESYS_TABLE,
7ac48069 5094 NULL,
d33e787c 5095 dfil_fields,
5096 0,
4e5ec77f 5097 "filsys_id = %d",
d33e787c 5098 1,
29028043 5099 NULL,
d33e787c 5100 &dfil_validate,
5101 },
5102
95127ba8 5103 {
5eaef520 5104 /* Q_GFGM - GET_FSGROUP_MEMBERS */
95127ba8 5105 "get_fsgroup_members",
5106 "gfgm",
c44ddfa7 5107 2,
95127ba8 5108 RETRIEVE,
5109 "fg",
03c05291 5110 FSGROUP_TABLE,
5111 "fs.label, fg.key FROM fsgroup fg, filesys fs",
95127ba8 5112 gfgm_fields,
5113 2,
4e5ec77f 5114 "fg.group_id = %d AND fs.filsys_id = fg.filsys_id",
95127ba8 5115 1,
29028043 5116 "fs.label, fg.key",
95127ba8 5117 &gfgm_validate,
5118 },
5119
5120 {
76f86976 5121 /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
95127ba8 5122 "add_filesys_to_fsgroup",
5123 "aftg",
c44ddfa7 5124 2,
95127ba8 5125 APPEND,
5126 "fg",
03c05291 5127 FSGROUP_TABLE,
5eaef520 5128 "INTO fsgroup (group_id, filsys_id, key) VALUES (%d, %d, '%s')",
95127ba8 5129 gfgm_fields,
76f86976 5130 3,
7ac48069 5131 NULL,
76f86976 5132 0,
29028043 5133 NULL,
95127ba8 5134 &aftg_validate,
5135 },
5136
5137 {
5138 /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
5139 "remove_filesys_from_fsgroup",
5140 "rffg",
c44ddfa7 5141 2,
95127ba8 5142 DELETE,
5143 "fg",
03c05291 5144 FSGROUP_TABLE,
7ac48069 5145 NULL,
95127ba8 5146 gfgm_fields,
5147 0,
4e5ec77f 5148 "group_id = %d AND filsys_id = %d",
95127ba8 5149 2,
29028043 5150 NULL,
95127ba8 5151 &aftg_validate,
5152 },
5153
d33e787c 5154 {
5eaef520 5155 /* Q_GANF - GET_ALL_NFSPHYS */
d33e787c 5156 "get_all_nfsphys",
5157 "ganf",
c44ddfa7 5158 2,
d33e787c 5159 RETRIEVE,
5160 "np",
03c05291 5161 NFSPHYS_TABLE,
5162 "m.name, np.dir, np.device, np.status, np.allocated, np.partsize, TO_CHAR(np.modtime, 'DD-mon-YYYY HH24:MI:SS'), np.modby, np.modwith FROM nfsphys np, machine m",
d33e787c 5163 ganf_fields,
5164 9,
4e5ec77f 5165 "m.mach_id = np.mach_id",
d33e787c 5166 0,
29028043 5167 "m.name, np.dir",
5168 &VDfix_modby,
d33e787c 5169 },
5170
5171 {
5eaef520 5172 /* Q_GNFP - GET_NFSPHYS */
d33e787c 5173 "get_nfsphys",
5174 "gnfp",
c44ddfa7 5175 2,
d33e787c 5176 RETRIEVE,
5177 "np",
03c05291 5178 NFSPHYS_TABLE,
5179 "m.name, np.dir, np.device, np.status, np.allocated, np.partsize, TO_CHAR(np.modtime, 'DD-mon-YYYY HH24:MI:SS'), np.modby, np.modwith FROM nfsphys np, machine m",
d33e787c 5180 gnfp_fields,
5181 9,
263a36d4 5182 "np.mach_id = %d AND np.dir LIKE '%s' AND m.mach_id = np.mach_id",
d33e787c 5183 2,
29028043 5184 "m.name, np.dir",
d33e787c 5185 &gnfp_validate,
5186 },
5187
5188 {
45bf7573 5189 /* Q_ANFP - ADD_NFSPHYS */ /* uses prefetch_value() for nfsphys_id */
d33e787c 5190 "add_nfsphys",
5191 "anfp",
c44ddfa7 5192 2,
d33e787c 5193 APPEND,
5194 "np",
03c05291 5195 NFSPHYS_TABLE,
5eaef520 5196 "INTO nfsphys (mach_id, dir, device, status, allocated, partsize, nfsphys_id) VALUES (%d, '%s', NVL('%s', CHR(0)), %s, %s, %s, %s)",
d33e787c 5197 ganf_fields,
5198 6,
45bf7573 5199 0,
d33e787c 5200 0,
29028043 5201 NULL,
d33e787c 5202 &anfp_validate,
5203 },
5204
5205 {
5206 /* Q_UNFP - UPDATE_NFSPHYS */
5207 "update_nfsphys",
5208 "unfp",
c44ddfa7 5209 2,
d33e787c 5210 UPDATE,
5211 "np",
03c05291 5212 NFSPHYS_TABLE,
5eaef520 5213 "nfsphys SET device = NVL('%s', CHR(0)), status = %s, allocated = %s, partsize = %s",
135dcb80 5214 ganf_fields,
d33e787c 5215 4,
5eaef520 5216 "mach_id = %d AND dir = '%s'",
d33e787c 5217 2,
29028043 5218 NULL,
45bf7573 5219 &unfp_validate,
d33e787c 5220 },
5221
5222 {
5223 /* Q_AJNF - ADJUST_NFSPHYS_ALLOCATION */
5224 "adjust_nfsphys_allocation",
5225 "ajnf",
c44ddfa7 5226 2,
d33e787c 5227 UPDATE,
5228 "np",
03c05291 5229 NFSPHYS_TABLE,
4e5ec77f 5230 "nfsphys SET allocated = allocated + %s",
99e09b48 5231 ajnf_fields,
d33e787c 5232 1,
4e5ec77f 5233 "mach_id = %d AND dir = '%s'",
d33e787c 5234 2,
29028043 5235 NULL,
f802fd0d 5236 &ajnf_validate,
d33e787c 5237 },
5238
5239 {
5240 /* Q_DNFP - DELETE_NFSPHYS */
5241 "delete_nfsphys",
5242 "dnfp",
c44ddfa7 5243 2,
d33e787c 5244 DELETE,
5245 "np",
03c05291 5246 NFSPHYS_TABLE,
7ac48069 5247 NULL,
d33e787c 5248 dnfp_fields,
5249 0,
4e5ec77f 5250 "mach_id = %d AND dir = '%s'",
d33e787c 5251 2,
29028043 5252 NULL,
d33e787c 5253 &dnfp_validate,
5254 },
5255
368be132 5256 {
5eaef520 5257 /* Q_GQOT - GET_QUOTA */
368be132 5258 "get_quota",
5259 "gqot",
c44ddfa7 5260 2,
368be132 5261 RETRIEVE,
5262 "q",
03c05291 5263 QUOTA_TABLE,
5264 "fs.label, q.type, q.entity_id, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, machine m",
368be132 5265 gqot_fields,
5266 9,
263a36d4 5267 "fs.label LIKE '%s' AND q.type = '%s' AND q.entity_id = %d AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
368be132 5268 3,
29028043 5269 NULL,
368be132 5270 &gqot_validate,
5271 },
5272
5273 {
5eaef520 5274 /* Q_GQBF - GET_QUOTA_BY_FILESYS */
368be132 5275 "get_quota_by_filesys",
5276 "gqbf",
c44ddfa7 5277 2,
368be132 5278 RETRIEVE,
5279 "q",
03c05291 5280 QUOTA_TABLE,
5281 "fs.label, q.type, q.entity_id, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, machine m",
368be132 5282 gqbf_fields,
5283 9,
263a36d4 5284 "fs.label LIKE '%s' AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
368be132 5285 1,
29028043 5286 "fs.label, q.type",
368be132 5287 &gqbf_validate,
5288 },
5289
5290 {
135dcb80 5291 /* Q_AQOT - ADD_QUOTA */ /* prefetch_filsys() gets last 1 value */
368be132 5292 "add_quota",
5293 "aqot",
c44ddfa7 5294 2,
368be132 5295 APPEND,
135dcb80 5296 0,
03c05291 5297 QUOTA_TABLE,
135dcb80 5298 "INTO quota (filsys_id, type, entity_id, quota, phys_id) VALUES ('%s', %d, %d, %s, %s)",
368be132 5299 aqot_fields,
135dcb80 5300 4,
7ac48069 5301 NULL,
76f86976 5302 0,
29028043 5303 NULL,
368be132 5304 &aqot_validate,
5305 },
5306
5307 {
5308 /* Q_UQOT - UPDATE_QUOTA */
5309 "update_quota",
5310 "uqot",
c44ddfa7 5311 2,
368be132 5312 UPDATE,
135dcb80 5313 0,
03c05291 5314 QUOTA_TABLE,
4e5ec77f 5315 "quota SET quota = %s",
368be132 5316 aqot_fields,
5317 1,
135dcb80 5318 0,
368be132 5319 3,
29028043 5320 NULL,
368be132 5321 &uqot_validate,
5322 },
5323
5324 {
5325 /* Q_DQOT - DELETE_QUOTA */
5326 "delete_quota",
5327 "dqot",
c44ddfa7 5328 2,
368be132 5329 DELETE,
135dcb80 5330 0,
03c05291 5331 QUOTA_TABLE,
7ac48069 5332 NULL,
368be132 5333 aqot_fields,
5334 0,
135dcb80 5335 0,
368be132 5336 3,
29028043 5337 NULL,
368be132 5338 &dqot_validate,
5339 },
5340
d33e787c 5341 {
5eaef520 5342 /* Q_GNFQ - GET_NFS_QUOTAS */
88343c5e 5343 "get_nfs_quota",
d33e787c 5344 "gnfq",
c44ddfa7 5345 2,
d33e787c 5346 RETRIEVE,
368be132 5347 "q",
03c05291 5348 QUOTA_TABLE,
5349 "fs.label, u.login, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, users u, machine m",
d33e787c 5350 gnfq_fields,
5351 8,
263a36d4 5352 "fs.label LIKE '%s' 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 5353 2,
29028043 5354 "fs.label, u.login",
d33e787c 5355 &gnfq_validate,
5356 },
5357
5358 {
5eaef520 5359 /* Q_GNQP - GET_NFS_QUOTAS_BY_PARTITION */
d33e787c 5360 "get_nfs_quotas_by_partition",
5361 "gnqp",
c44ddfa7 5362 2,
d33e787c 5363 RETRIEVE,
368be132 5364 "q",
03c05291 5365 QUOTA_TABLE,
5366 "fs.label, u.login, q.quota, np.dir, m.name FROM quota q, filesys fs, users u, nfsphys np, machine m",
d33e787c 5367 gnqp_fields,
5368 5,
263a36d4 5369 "np.mach_id = %d AND np.dir LIKE '%s' 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 5370 2,
29028043 5371 "fs.label",
263a36d4 5372 NULL,
d33e787c 5373 },
5374
d33e787c 5375 {
135dcb80 5376 /* Q_ANFQ - ADD_NFS_QUOTA */ /* prefetch_filsys() gets last 1 value */
d33e787c 5377 "add_nfs_quota",
5378 "anfq",
c44ddfa7 5379 2,
d33e787c 5380 APPEND,
135dcb80 5381 0,
03c05291 5382 QUOTA_TABLE,
135dcb80 5383 "INTO quota (type, filsys_id, entity_id, quota, phys_id ) VALUES ('USER', %d, %d, %s, %s)",
d33e787c 5384 anfq_fields,
135dcb80 5385 3,
7ac48069 5386 NULL,
76f86976 5387 0,
29028043 5388 NULL,
d33e787c 5389 &anfq_validate,
5390 },
5391
5392 {
5eaef520 5393 /* Q_UNFQ - UPDATE_NFS_QUOTA */
d33e787c 5394 "update_nfs_quota",
5395 "unfq",
c44ddfa7 5396 2,
d33e787c 5397 UPDATE,
135dcb80 5398 0,
03c05291 5399 QUOTA_TABLE,
4e5ec77f 5400 "quota SET quota = %s",
d33e787c 5401 anfq_fields,
5402 1,
135dcb80 5403 0,
d33e787c 5404 2,
29028043 5405 NULL,
d33e787c 5406 &unfq_validate,
5407 },
5408
5409 {
5410 /* Q_DNFQ - DELETE_NFS_QUOTA */
5411 "delete_nfs_quota",
5412 "dnfq",
c44ddfa7 5413 2,
d33e787c 5414 DELETE,
135dcb80 5415 0,
03c05291 5416 QUOTA_TABLE,
7ac48069 5417 NULL,
d33e787c 5418 anfq_fields,
5419 0,
135dcb80 5420 0,
d33e787c 5421 2,
29028043 5422 NULL,
d33e787c 5423 &dnfq_validate,
5424 },
5425
d33e787c 5426 {
d7ddc011 5427 /* Q_GZCL - GET_ZEPHYR_CLASS, v2 */
d33e787c 5428 "get_zephyr_class",
5429 "gzcl",
c44ddfa7 5430 2,
d33e787c 5431 RETRIEVE,
5432 "z",
03c05291 5433 ZEPHYR_TABLE,
5434 "class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM zephyr",
d7ddc011 5435 gzcl2_fields,
d33e787c 5436 12,
263a36d4 5437 "class LIKE '%s'",
d33e787c 5438 1,
29028043 5439 "class",
d33e787c 5440 &gzcl_validate,
03c05291 5441 },
d33e787c 5442
5443 {
d7ddc011 5444 /* Q_GZCL - GET_ZEPHYR_CLASS, v5 */
5445 "get_zephyr_class",
5446 "gzcl",
5447 5,
5448 RETRIEVE,
5449 "z",
5450 ZEPHYR_TABLE,
5451 "class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id, owner_type, owner_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM zephyr",
5452 gzcl_fields,
5453 14,
5454 "class LIKE '%s'",
5455 1,
5456 "class",
5457 &gzcl_validate,
5458 },
5459
5460 {
5461 /* Q_AZCL - ADD_ZEPHYR_CLASS, v2 */
d33e787c 5462 "add_zephyr_class",
5463 "azcl",
c44ddfa7 5464 2,
d33e787c 5465 APPEND,
5466 "z",
03c05291 5467 ZEPHYR_TABLE,
5eaef520 5468 "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)",
d7ddc011 5469 azcl2_fields,
d33e787c 5470 9,
5471 0,
5472 0,
29028043 5473 NULL,
d7ddc011 5474 &azcl2_validate,
5475 },
5476
5477 {
5478 /* Q_AZCL - ADD_ZEPHYR_CLASS, v5 */
5479 "add_zephyr_class",
5480 "azcl",
5481 5,
5482 APPEND,
5483 "z",
5484 ZEPHYR_TABLE,
5485 "INTO zephyr (class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id, owner_type, owner_id) VALUES ('%s', '%s', %d, '%s', %d, '%s', %d, '%s', %d, '%s', %d)",
5486 azcl_fields,
5487 11,
5488 0,
5489 0,
5490 NULL,
d33e787c 5491 &azcl_validate,
5eaef520 5492 },
d33e787c 5493
5494 {
d7ddc011 5495 /* Q_UZCL - UPDATE_ZEPHYR_CLASS, v2 */
d33e787c 5496 "update_zephyr_class",
5497 "uzcl",
c44ddfa7 5498 2,
d33e787c 5499 UPDATE,
5500 "z",
03c05291 5501 ZEPHYR_TABLE,
135dcb80 5502 "zephyr SET class = '%s', xmt_type = '%s', xmt_id = %d, sub_type = '%s', sub_id = %d, iws_type = '%s', iws_id = %d, iui_type = '%s', iui_id = %d",
d7ddc011 5503 uzcl2_fields,
d33e787c 5504 9,
99e09b48 5505 "class = '%s'",
d33e787c 5506 1,
29028043 5507 NULL,
d7ddc011 5508 &uzcl2_validate,
5509 },
5510
5511 {
5512 /* Q_UZCL - UPDATE_ZEPHYR_CLASS, v5 */
5513 "update_zephyr_class",
5514 "uzcl",
5515 5,
5516 UPDATE,
5517 "z",
5518 ZEPHYR_TABLE,
5519 "zephyr SET class = '%s', xmt_type = '%s', xmt_id = %d, sub_type = '%s', sub_id = %d, iws_type = '%s', iws_id = %d, iui_type = '%s', iui_id = %d, owner_type = '%s', owner_id = %d",
5520 uzcl_fields,
5521 11,
5522 "class = '%s'",
5523 1,
5524 NULL,
d33e787c 5525 &uzcl_validate,
5eaef520 5526 },
d33e787c 5527
5528 {
5529 /* Q_DZCL - DELETE_ZEPHYR_CLASS */
5530 "delete_zephyr_class",
5531 "dzcl",
c44ddfa7 5532 2,
d33e787c 5533 DELETE,
5534 "z",
03c05291 5535 ZEPHYR_TABLE,
d33e787c 5536 0,
5537 uzcl_fields,
5538 0,
99e09b48 5539 "class = '%s'",
d33e787c 5540 1,
29028043 5541 NULL,
d33e787c 5542 &dzcl_validate,
5eaef520 5543 },
fd5b2340 5544
03c05291 5545 {
5eaef520 5546 /* Q_GSHA - GET_SERVER_HOST_ACCESS */
03c05291 5547 "get_server_host_access",
5548 "gsha",
c44ddfa7 5549 2,
03c05291 5550 RETRIEVE,
5551 "ha",
5552 HOSTACCESS_TABLE,
5553 "m.name, ha.acl_type, ha.acl_id, TO_CHAR(ha.modtime, 'DD-mon-YYYY HH24:MI:SS'), ha.modby, ha.modwith FROM hostaccess ha, machine m",
5554 gsha_fields,
5555 6,
263a36d4 5556 "m.name LIKE UPPER('%s') AND ha.mach_id = m.mach_id",
03c05291 5557 1,
29028043 5558 "m.name",
03c05291 5559 &gsha_validate,
5560 },
5561
5562 {
5563 /* Q_ASHA - ADD_SERVER_HOST_ACCESS */
5564 "add_server_host_access",
5565 "asha",
c44ddfa7 5566 2,
03c05291 5567 APPEND,
5568 "ha",
5569 HOSTACCESS_TABLE,
5eaef520 5570 "INTO hostaccess (mach_id, acl_type, acl_id) VALUES (%d, '%s', %d)",
03c05291 5571 asha_fields,
5572 3,
5573 0,
5574 0,
29028043 5575 NULL,
03c05291 5576 &asha_validate,
5577 },
5578
5579 {
5580 /* Q_USHA - UPDATE_SERVER_HOST_ACCESS */
5581 "update_server_host_access",
5582 "usha",
c44ddfa7 5583 2,
03c05291 5584 UPDATE,
5585 "ha",
5586 HOSTACCESS_TABLE,
5587 "hostaccess SET acl_type = '%s', acl_id = %d",
5588 asha_fields,
5589 2,
5590 "mach_id = %d",
5591 1,
29028043 5592 NULL,
03c05291 5593 &asha_validate,
5594 },
5595
5596 {
5597 /* Q_DSHA - DELETE_SERVER_HOST_ACCESS */
5598 "delete_server_host_access",
5599 "dsha",
c44ddfa7 5600 2,
03c05291 5601 DELETE,
5602 "ha",
5603 HOSTACCESS_TABLE,
5604 0,
5605 asha_fields,
5606 0,
5607 "mach_id = %d",
5608 1,
29028043 5609 NULL,
03c05291 5610 &VDmach,
5611 },
5612
46b6f1f6 5613 {
5614 /* Q_GACL - GET_ACL */
5615 "get_acl",
5616 "gacl",
c44ddfa7 5617 2,
46b6f1f6 5618 RETRIEVE,
5619 "ac",
5620 ACL_TABLE,
5621 "m.name, ac.target, ac.kind, l.name FROM acl ac, machine m, list l",
5622 gacl_fields,
5623 4,
5624 "m.mach_id = %d AND m.mach_id = ac.mach_id AND ac.target LIKE '%s' AND l.list_id = ac.list_id",
5625 2,
5626 "m.name, ac.target, ac.kind",
5627 &gacl_validate,
5628 },
5629
5630 {
5631 /* Q_AACL - ADD_ACL */
5632 "add_acl",
5633 "aacl",
c44ddfa7 5634 2,
46b6f1f6 5635 APPEND,
5636 "ac",
5637 ACL_TABLE,
5638 "INTO acl (mach_id, target, kind, list_id) VALUES (%d, '%s', '%s', %d)",
5639 aacl_fields,
5640 4,
5641 0,
5642 0,
5643 NULL,
5644 &aacl_validate,
5645 },
5646
5647 {
5648 /* Q_DACL - DELETE_ACL */
5649 "delete_acl",
5650 "dacl",
c44ddfa7 5651 2,
46b6f1f6 5652 DELETE,
5653 "ac",
5654 ACL_TABLE,
5655 0,
5656 dacl_fields,
5657 0,
5658 "mach_id = %d AND target = '%s'",
5659 2,
5660 NULL,
5661 &gacl_validate,
5662 },
5663
d33e787c 5664 {
5665 /* Q_GSVC - GET_SERVICE */
5666 "get_service",
5667 "gsvc",
c44ddfa7 5668 2,
d33e787c 5669 RETRIEVE,
0c345c78 5670 "ss",
03c05291 5671 SERVICES_TABLE,
5672 "name, protocol, port, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM services",
fd5b2340 5673 gsvc_fields,
d33e787c 5674 7,
69eb9470 5675 "name LIKE '%s' AND protocol LIKE '%s'",
5676 2,
29028043 5677 "name",
263a36d4 5678 &VDfix_modby,
d33e787c 5679 },
5680
5681 {
5682 /* Q_ASVC - ADD_SERVICE */
5683 "add_service",
5684 "asvc",
c44ddfa7 5685 2,
d33e787c 5686 APPEND,
0c345c78 5687 "ss",
03c05291 5688 SERVICES_TABLE,
5eaef520 5689 "INTO services (name, protocol, port, description) VALUES ('%s', '%s', %s, NVL('%s', CHR(0)))",
fd5b2340 5690 asvc_fields,
d33e787c 5691 4,
7ac48069 5692 NULL,
d33e787c 5693 0,
29028043 5694 NULL,
d33e787c 5695 &asvc_validate,
5696 },
5697
5698 {
5699 /* Q_DSVC - DELETE_SERVICE */
5700 "delete_service",
5701 "dsvc",
c44ddfa7 5702 2,
d33e787c 5703 DELETE,
0c345c78 5704 "ss",
03c05291 5705 SERVICES_TABLE,
d33e787c 5706 0,
69eb9470 5707 dsvc_fields,
d33e787c 5708 0,
69eb9470 5709 "name = '%s' AND protocol = '%s'",
5710 2,
29028043 5711 NULL,
69eb9470 5712 &dsvc_validate,
d33e787c 5713 },
fd5b2340 5714
d33e787c 5715 {
2884200f 5716 /* Q_GPRN - GET_PRINTER */
5717 "get_printer",
5718 "gprn",
c44ddfa7 5719 2,
d33e787c 5720 RETRIEVE,
2884200f 5721 "pr",
5722 PRINTERS_TABLE,
e5a63571 5723 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
2884200f 5724 gprn_fields,
e5a63571 5725 19,
2884200f 5726 "pr.name LIKE '%s' AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
d33e787c 5727 1,
2884200f 5728 "pr.name",
5729 &VDfix_modby,
d33e787c 5730 },
5731
5732 {
2884200f 5733 /* Q_GPBD - GET_PRINTER_BY_DUPLEXNAME */
5734 "get_printer_by_duplexname",
5735 "gpbd",
c44ddfa7 5736 2,
2884200f 5737 RETRIEVE,
5738 "pr",
5739 PRINTERS_TABLE,
e5a63571 5740 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
2884200f 5741 gpbd_fields,
e5a63571 5742 19,
2884200f 5743 "pr.duplexname LIKE '%s' AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
5744 1,
5745 "pr.name",
5746 &VDfix_modby,
fd5b2340 5747 },
5748
5749 {
2884200f 5750 /* Q_GPBE - GET_PRINTER_BY_ETHERNET */
5751 "get_printer_by_ethernet",
5752 "gpbe",
c44ddfa7 5753 2,
2884200f 5754 RETRIEVE,
5755 "pr",
5756 PRINTERS_TABLE,
e5a63571 5757 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
2884200f 5758 gpbd_fields,
e5a63571 5759 19,
59841cdb 5760 "m1.hwaddr LIKE LOWER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
fd5b2340 5761 1,
2884200f 5762 "pr.name",
5763 &VDfix_modby,
fd5b2340 5764 },
5765
5766 {
2884200f 5767 /* Q_GPBH - GET_PRINTER_BY_HOSTNAME */
5768 "get_printer_by_hostname",
5769 "gpbh",
c44ddfa7 5770 2,
fd5b2340 5771 RETRIEVE,
2884200f 5772 "pr",
5773 PRINTERS_TABLE,
e5a63571 5774 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
2884200f 5775 gpbh_fields,
e5a63571 5776 19,
2884200f 5777 "m1.name LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
fd5b2340 5778 1,
2884200f 5779 "pr.name",
263a36d4 5780 &VDfix_modby,
d33e787c 5781 },
5782
5783 {
2884200f 5784 /* Q_GPBR - GET_PRINTER_BY_RM */
5785 "get_printer_by_rm",
5786 "gpbr",
c44ddfa7 5787 2,
2884200f 5788 RETRIEVE,
5789 "pr",
5790 PRINTERS_TABLE,
e5a63571 5791 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
2884200f 5792 gpbr_fields,
e5a63571 5793 19,
2884200f 5794 "m3.name LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
d33e787c 5795 1,
2884200f 5796 "pr.name",
5797 &VDfix_modby,
d33e787c 5798 },
5799
012fc215 5800 {
2884200f 5801 /* Q_GPBL - GET_PRINTER_BY_LOCATION */
5802 "get_printer_by_location",
5803 "gpbl",
c44ddfa7 5804 2,
012fc215 5805 RETRIEVE,
2884200f 5806 "pr",
5807 PRINTERS_TABLE,
e5a63571 5808 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
2884200f 5809 gpbl_fields,
e5a63571 5810 19,
2884200f 5811 "UPPER(pr.location) LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
5812 1,
5813 "pr.name",
5814 &VDfix_modby,
5815 },
5816
5817 {
5818 /* Q_GPBC - GET_PRINTER_BY_CONTACT */
5819 "get_printer_by_contact",
5820 "gpbc",
c44ddfa7 5821 2,
2884200f 5822 RETRIEVE,
5823 "pr",
5824 PRINTERS_TABLE,
e5a63571 5825 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
2884200f 5826 gpbc_fields,
e5a63571 5827 19,
2884200f 5828 "UPPER(pr.contact) LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
012fc215 5829 1,
2884200f 5830 "pr.name",
263a36d4 5831 &VDfix_modby,
012fc215 5832 },
5833
5834 {
2884200f 5835 /* Q_APRN - ADD_PRINTER */
5836 "add_printer",
5837 "aprn",
c44ddfa7 5838 2,
012fc215 5839 APPEND,
2884200f 5840 "pr",
5841 PRINTERS_TABLE,
e5a63571 5842 "INTO printers (name, type, hwtype, duplexname, mach_id, loghost, rm, rp, rq, ka, pc, ac, lpc_acl, banner, location, contact) VALUES ('%s', '%s', '%s', NVL('%s', CHR(0)), %d, %d, %d, NVL('%s', CHR(0)), %d, %s, %s, %d, %d, %s, NVL('%s', CHR(0)), NVL('%s', CHR(0)))",
2884200f 5843 aprn_fields,
e5a63571 5844 16,
012fc215 5845 0,
5846 0,
29028043 5847 NULL,
2884200f 5848 &aprn_validate,
012fc215 5849 },
5850
1a9a0a59 5851 {
5852 /* Q_UPRN - UPDATE_PRINTER */
5853 "update_printer",
5854 "uprn",
c44ddfa7 5855 2,
1a9a0a59 5856 UPDATE,
5857 "pr",
5858 PRINTERS_TABLE,
5859 "printers SET name = '%s', type = '%s', hwtype = '%s', duplexname = NVL('%s', CHR(0)), mach_id = %d, loghost = %d, rm = %d, rp = NVL('%s', CHR(0)), rq = %d, ka = %d, pc = %d, ac = %d, lpc_acl = %d, banner = %d, location = NVL('%s', CHR(0)), contact = NVL('%s', CHR(0))",
5860 uprn_fields,
5861 16,
5862 0,
5863 0,
5864 NULL,
5865 &uprn_validate,
5866 },
5867
012fc215 5868 {
2884200f 5869 /* Q_DPRN - DELETE_PRINTER */
5870 "delete_printer",
5871 "dprn",
c44ddfa7 5872 2,
012fc215 5873 DELETE,
2884200f 5874 "pr",
5875 PRINTERS_TABLE,
012fc215 5876 0,
2884200f 5877 aprn_fields,
012fc215 5878 0,
99e09b48 5879 "name = '%s'",
012fc215 5880 1,
29028043 5881 NULL,
2884200f 5882 &dprn_validate,
012fc215 5883 },
5884
1a9a0a59 5885 {
5886 /* Q_GPSV - GET_PRINT_SERVER */
5887 "get_print_server",
5888 "gpsv",
c44ddfa7 5889 2,
1a9a0a59 5890 RETRIEVE,
5891 "ps",
5892 PRINTSERVERS_TABLE,
5893 "m.name, ps.kind, s.string, ps.owner_type, ps.owner_id, l.name, TO_CHAR(ps.modtime, 'DD-mon-YYYY HH24:MI:SS'), ps.modby, ps.modwith FROM printservers ps, machine m, strings s, list l",
5894 gpsv_fields,
5895 9,
5896 "ps.mach_id = %d AND m.mach_id = ps.mach_id AND s.string_id = ps.printer_types AND l.list_id = ps.lpc_acl",
5897 1,
5898 NULL,
5899 &gpsv_validate,
5900 },
5901
5902 {
5903 /* Q_APSV - ADD_PRINT_SERVER */
5904 "add_print_server",
5905 "apsv",
c44ddfa7 5906 2,
1a9a0a59 5907 APPEND,
5908 "ps",
5909 PRINTSERVERS_TABLE,
5910 "INTO printservers (mach_id, kind, printer_types, owner_type, owner_id, lpc_acl) VALUES (%d, '%s', %d, '%s', %d, %d)",
5911 apsv_fields,
5912 6,
5913 0,
5914 0,
5915 NULL,
5916 &apsv_validate,
5917 },
5918
5919 {
5920 /* Q_UPSV - UPDATE_PRINT_SERVER */
5921 "update_print_server",
5922 "upsv",
c44ddfa7 5923 2,
1a9a0a59 5924 UPDATE,
5925 "ps",
5926 PRINTSERVERS_TABLE,
5927 "printservers SET kind = '%s', printer_types = %d, owner_type = '%s', owner_id = %d, lpc_acl = %d",
5928 apsv_fields,
5929 5,
5930 "mach_id = %d",
5931 1,
5932 NULL,
5933 &apsv_validate,
5934 },
5935
5936 {
5937 /* Q_DPSV - DELETE_PRINT_SERVER */
5938 "delete_print_server",
5939 "dpsv",
c44ddfa7 5940 2,
1a9a0a59 5941 DELETE,
5942 "ps",
5943 PRINTSERVERS_TABLE,
5944 0,
5945 dpsv_fields,
5946 0,
5947 "mach_id = %d",
5948 1,
5949 NULL,
5950 &dpsv_validate,
5951 },
5952
d33e787c 5953 {
5954 /* Q_GALI - GET_ALIAS */
5955 "get_alias",
5956 "gali",
c44ddfa7 5957 2,
d33e787c 5958 RETRIEVE,
5959 "a",
03c05291 5960 ALIAS_TABLE,
5961 "name, type, trans FROM alias",
d33e787c 5962 gali_fields,
5963 3,
263a36d4 5964 "name LIKE '%s' AND type LIKE '%s' AND trans LIKE '%s'",
d33e787c 5965 3,
29028043 5966 "type, name, trans",
263a36d4 5967 NULL,
d33e787c 5968 },
5969
5970 {
5971 /* Q_AALI - ADD_ALIAS */
5972 "add_alias",
5973 "aali",
c44ddfa7 5974 2,
d33e787c 5975 APPEND,
5976 "a",
03c05291 5977 ALIAS_TABLE,
4e5ec77f 5978 "INTO alias (name, type, trans) VALUES ('%s', '%s', '%s')",
d33e787c 5979 aali_fields,
5980 3,
7ac48069 5981 NULL,
d33e787c 5982 0,
29028043 5983 NULL,
d33e787c 5984 &aali_validate,
5985 },
5986
5987 {
5988 /* Q_DALI - DELETE_ALIAS */
5989 "delete_alias",
5990 "dali",
c44ddfa7 5991 2,
d33e787c 5992 DELETE,
5993 "a",
03c05291 5994 ALIAS_TABLE,
7ac48069 5995 NULL,
d33e787c 5996 aali_fields,
5997 0,
5eaef520 5998 "name = '%s' AND type = '%s' AND trans = '%s'",
d33e787c 5999 3,
29028043 6000 NULL,
d33e787c 6001 &dali_validate,
6002 },
6003
6004 {
6005 /* Q_GVAL - GET_VALUE */
6006 "get_value",
6007 "gval",
c44ddfa7 6008 2,
d33e787c 6009 RETRIEVE,
0c345c78 6010 "val",
03c05291 6011 NUMVALUES_TABLE,
6012 "value FROM numvalues",
d33e787c 6013 gval_fields,
6014 1,
03c05291 6015 "name = '%s'",
d33e787c 6016 1,
29028043 6017 NULL,
d33e787c 6018 &gval_validate,
6019 },
6020
6021 {
6022 /* Q_AVAL - ADD_VALUE */
6023 "add_value",
6024 "aval",
c44ddfa7 6025 2,
d33e787c 6026 APPEND,
0c345c78 6027 "val",
03c05291 6028 NUMVALUES_TABLE,
4e5ec77f 6029 "INTO numvalues (name, value) VALUES ('%s', %s)",
d33e787c 6030 aval_fields,
6031 2,
7ac48069 6032 NULL,
d33e787c 6033 0,
29028043 6034 NULL,
d33e787c 6035 &aval_validate,
6036 },
6037
6038 {
6039 /* Q_UVAL - UPDATE_VALUE */
6040 "update_value",
6041 "uval",
c44ddfa7 6042 2,
d33e787c 6043 UPDATE,
0c345c78 6044 "val",
03c05291 6045 NUMVALUES_TABLE,
4e5ec77f 6046 "numvalues SET value = %s",
d33e787c 6047 aval_fields,
6048 1,
99e09b48 6049 "name = '%s'",
d33e787c 6050 1,
29028043 6051 NULL,
d33e787c 6052 &aval_validate,
6053 },
6054
6055 {
6056 /* Q_DVAL - DELETE_VALUE */
6057 "delete_value",
6058 "dval",
c44ddfa7 6059 2,
d33e787c 6060 DELETE,
0c345c78 6061 "val",
03c05291 6062 NUMVALUES_TABLE,
7ac48069 6063 NULL,
d33e787c 6064 dval_fields,
6065 0,
99e09b48 6066 "name = '%s'",
d33e787c 6067 1,
29028043 6068 NULL,
d33e787c 6069 &aval_validate,
6070 },
6071
6072 {
6073 /* Q_GATS - GET_ALL_TABLE_STATS */
6074 "get_all_table_stats",
6075 "gats",
c44ddfa7 6076 2,
d33e787c 6077 RETRIEVE,
6078 "tbs",
03c05291 6079 TBLSTATS_TABLE,
6080 "table_name, appends, updates, deletes, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS') FROM tblstats",
d33e787c 6081 gats_fields,
45bf7573 6082 5,
7ac48069 6083 NULL,
d33e787c 6084 0,
29028043 6085 "table_name",
d33e787c 6086 0,
6087 },
6088
2962e9ec 6089 {
6090 /* Q__SDL - _SET_DEBUG_LEVEL */
6091 "_set_debug_level",
6092 "_sdl",
c44ddfa7 6093 2,
2962e9ec 6094 UPDATE,
7ac48069 6095 NULL,
03c05291 6096 0,
7ac48069 6097 NULL,
2962e9ec 6098 _sdl_fields,
6099 1,
7ac48069 6100 NULL,
2962e9ec 6101 0,
29028043 6102 NULL,
2962e9ec 6103 &_sdl_validate,
6104 },
6105
d33e787c 6106};
6107
c44ddfa7 6108int QueryCount = (sizeof(Queries) / sizeof(struct query));
This page took 1.207746 seconds and 5 git commands to generate.