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