]> andersk Git - moira.git/blame - server/queries2.c
Add usersids and listsids tables.
[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
d33e787c 2948
2949\f
2950/* Generalized Query Definitions */
2951
c44ddfa7 2952/* Multiple versions of the same query MUST be listed in ascending
2953 * order.
2954 */
2955
e41960ac 2956/* Note: For any query which uses prefetch_value, the vcnt should be
2957 * one less than the number of %-format specifiers in the tlist.
2958 */
2959
c44ddfa7 2960struct query Queries[] = {
d33e787c 2961 {
186dd63b 2962 /* Q_GALO - GET_ALL_LOGINS, v2 */
d33e787c 2963 "get_all_logins",
2964 "galo",
c44ddfa7 2965 2,
d33e787c 2966 RETRIEVE,
2967 "u",
03c05291 2968 USERS_TABLE,
2969 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
186dd63b 2970 galo2_fields,
d33e787c 2971 6,
0c345c78 2972 "u.users_id != 0",
d33e787c 2973 0,
29028043 2974 "u.login",
2975 0,
d33e787c 2976 },
5eaef520 2977
d33e787c 2978 {
186dd63b 2979 /* Q_GALO - GET_ALL_LOGINS, v3 */
2980 "get_all_logins",
2981 "galo",
2982 3,
2983 RETRIEVE,
2984 "u",
2985 USERS_TABLE,
2986 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle FROM users u",
2987 galo_fields,
2988 7,
2989 "u.users_id != 0",
2990 0,
2991 "u.login",
2992 0,
2993 },
2994
2995 {
2996 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS, v2 */
d33e787c 2997 "get_all_active_logins",
2998 "gaal",
c44ddfa7 2999 2,
d33e787c 3000 RETRIEVE,
3001 "u",
03c05291 3002 USERS_TABLE,
3003 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
186dd63b 3004 galo2_fields,
d33e787c 3005 6,
0c345c78 3006 "u.status = 1",
d33e787c 3007 0,
29028043 3008 "u.login",
3009 0,
d33e787c 3010 },
5eaef520 3011
4ffa124a 3012 {
186dd63b 3013 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS, v3 */
3014 "get_all_active_logins",
3015 "gaal",
3016 3,
3017 RETRIEVE,
3018 "u",
3019 USERS_TABLE,
3020 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle FROM users u",
3021 galo_fields,
3022 7,
3023 "u.status = 1",
3024 0,
3025 "u.login",
3026 0,
3027 },
3028
3029 {
3030 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN, v2 */
0c345c78 3031 "get_user_account_by_login",
3032 "gual",
c44ddfa7 3033 2,
0c345c78 3034 RETRIEVE,
3035 "u",
03c05291 3036 USERS_TABLE,
d55429b2 3037 "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 3038 gual2_fields,
0c345c78 3039 15,
263a36d4 3040 "u.login LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 3041 1,
29028043 3042 "u.login",
0c345c78 3043 &gubl_validate,
4ffa124a 3044 },
5eaef520 3045
4ffa124a 3046 {
186dd63b 3047 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN, v3 */
3048 "get_user_account_by_login",
3049 "gual",
3050 3,
3051 RETRIEVE,
3052 "u",
3053 USERS_TABLE,
3054 "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",
3055 gual_fields,
3056 16,
3057 "u.login LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
3058 1,
3059 "u.login",
3060 &gubl_validate,
3061 },
3062
3063 {
3064 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID, v2 */
0c345c78 3065 "get_user_account_by_uid",
3066 "guau",
c44ddfa7 3067 2,
0c345c78 3068 RETRIEVE,
3069 "u",
03c05291 3070 USERS_TABLE,
d55429b2 3071 "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 3072 guau2_fields,
0c345c78 3073 15,
03c05291 3074 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 3075 1,
29028043 3076 "u.login",
0c345c78 3077 &gubu_validate,
4ffa124a 3078 },
5eaef520 3079
4ffa124a 3080 {
186dd63b 3081 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID, v3 */
3082 "get_user_account_by_uid",
3083 "guau",
3084 3,
3085 RETRIEVE,
3086 "u",
3087 USERS_TABLE,
3088 "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",
3089 guau_fields,
3090 16,
3091 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
3092 1,
3093 "u.login",
3094 &gubu_validate,
3095 },
3096
3097 {
3098 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME, v2 */
0c345c78 3099 "get_user_account_by_name",
3100 "guan",
c44ddfa7 3101 2,
0c345c78 3102 RETRIEVE,
3103 "u",
03c05291 3104 USERS_TABLE,
d55429b2 3105 "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 3106 guan2_fields,
0c345c78 3107 15,
263a36d4 3108 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0 and u.comments = str.string_id",
0c345c78 3109 2,
29028043 3110 "u.login",
60452f41 3111 &guan_validate,
4ffa124a 3112 },
5eaef520 3113
4ffa124a 3114 {
186dd63b 3115 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME, v3 */
3116 "get_user_account_by_name",
3117 "guan",
3118 3,
3119 RETRIEVE,
3120 "u",
3121 USERS_TABLE,
3122 "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",
3123 guan_fields,
3124 16,
3125 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0 and u.comments = str.string_id",
3126 2,
3127 "u.login",
3128 &guan_validate,
3129 },
3130
3131 {
3132 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS, v2 */
0c345c78 3133 "get_user_account_by_class",
3134 "guac",
c44ddfa7 3135 2,
0c345c78 3136 RETRIEVE,
3137 "u",
03c05291 3138 USERS_TABLE,
d55429b2 3139 "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 3140 guac2_fields,
0c345c78 3141 15,
03c05291 3142 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 3143 1,
29028043 3144 "u.login",
3145 &VDfix_modby,
4ffa124a 3146 },
5eaef520 3147
4ffa124a 3148 {
186dd63b 3149 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS, v3 */
3150 "get_user_account_by_class",
3151 "guac",
3152 3,
3153 RETRIEVE,
3154 "u",
3155 USERS_TABLE,
3156 "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",
3157 guac_fields,
3158 16,
3159 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
3160 1,
3161 "u.login",
3162 &VDfix_modby,
3163 },
3164
3165 {
3166 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID, v2 */
0c345c78 3167 "get_user_account_by_id",
3168 "guai",
c44ddfa7 3169 2,
0c345c78 3170 RETRIEVE,
3171 "u",
03c05291 3172 USERS_TABLE,
d55429b2 3173 "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 3174 guam2_fields,
0c345c78 3175 15,
263a36d4 3176 "u.clearid LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 3177 1,
29028043 3178 "u.login",
263a36d4 3179 &VDfix_modby,
4ffa124a 3180 },
5eaef520 3181
d33e787c 3182 {
186dd63b 3183 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID, v3 */
3184 "get_user_account_by_id",
3185 "guai",
3186 3,
3187 RETRIEVE,
3188 "u",
3189 USERS_TABLE,
3190 "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",
3191 guam_fields,
3192 16,
3193 "u.clearid LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
3194 1,
3195 "u.login",
3196 &VDfix_modby,
3197 },
3198
3199 {
3200 /* Q_GUBL - GET_USER_BY_LOGIN, v2 */
d33e787c 3201 "get_user_by_login",
3202 "gubl",
c44ddfa7 3203 2,
d33e787c 3204 RETRIEVE,
3205 "u",
5eaef520 3206 USERS_TABLE,
03c05291 3207 "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 3208 gubl2_fields,
d33e787c 3209 12,
263a36d4 3210 "u.login LIKE '%s' AND u.users_id != 0",
d33e787c 3211 1,
29028043 3212 "u.login",
f9f5c199 3213 &gubl_validate,
d33e787c 3214 },
5eaef520 3215
d33e787c 3216 {
186dd63b 3217 /* Q_GUBL - GET_USER_BY_LOGIN, v3 */
3218 "get_user_by_login",
3219 "gubl",
3220 3,
3221 RETRIEVE,
3222 "u",
3223 USERS_TABLE,
3224 "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",
3225 gubl_fields,
3226 13,
3227 "u.login LIKE '%s' AND u.users_id != 0",
3228 1,
3229 "u.login",
3230 &gubl_validate,
3231 },
3232
3233 {
3234 /* Q_GUBU - GET_USER_BY_UID, v2 */
d33e787c 3235 "get_user_by_uid",
3236 "gubu",
c44ddfa7 3237 2,
d33e787c 3238 RETRIEVE,
3239 "u",
03c05291 3240 USERS_TABLE,
3241 "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 3242 gubu2_fields,
d33e787c 3243 12,
03c05291 3244 "u.unix_uid = %s AND u.users_id != 0",
d33e787c 3245 1,
29028043 3246 "u.login",
f9f5c199 3247 &gubu_validate,
d33e787c 3248 },
5eaef520 3249
d33e787c 3250 {
186dd63b 3251 /* Q_GUBU - GET_USER_BY_UID, v3 */
3252 "get_user_by_uid",
3253 "gubu",
3254 3,
3255 RETRIEVE,
3256 "u",
3257 USERS_TABLE,
3258 "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",
3259 gubu_fields,
3260 13,
3261 "u.unix_uid = %s AND u.users_id != 0",
3262 1,
3263 "u.login",
3264 &gubu_validate,
3265 },
3266
3267 {
3268 /* Q_GUBN - GET_USER_BY_NAME, v2 */
d33e787c 3269 "get_user_by_name",
3270 "gubn",
c44ddfa7 3271 2,
d33e787c 3272 RETRIEVE,
3273 "u",
03c05291 3274 USERS_TABLE,
3275 "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 3276 gubn2_fields,
d33e787c 3277 12,
263a36d4 3278 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0",
d33e787c 3279 2,
29028043 3280 "u.login",
99e09b48 3281 &gubn_validate,
d33e787c 3282 },
5eaef520 3283
d33e787c 3284 {
186dd63b 3285 /* Q_GUBN - GET_USER_BY_NAME, v3 */
3286 "get_user_by_name",
3287 "gubn",
3288 3,
3289 RETRIEVE,
3290 "u",
3291 USERS_TABLE,
3292 "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",
3293 gubn_fields,
3294 13,
3295 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0",
3296 2,
3297 "u.login",
3298 &gubn_validate,
3299 },
3300
3301 {
3302 /* Q_GUBC - GET_USER_BY_CLASS, v2 */
d33e787c 3303 "get_user_by_class",
3304 "gubc",
c44ddfa7 3305 2,
d33e787c 3306 RETRIEVE,
3307 "u",
03c05291 3308 USERS_TABLE,
3309 "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 3310 gubc2_fields,
d33e787c 3311 12,
03c05291 3312 "u.type = UPPER('%s') AND u.users_id != 0",
d33e787c 3313 1,
29028043 3314 "u.login",
3315 &VDfix_modby,
d33e787c 3316 },
5eaef520 3317
d33e787c 3318 {
186dd63b 3319 /* Q_GUBC - GET_USER_BY_CLASS, v3 */
3320 "get_user_by_class",
3321 "gubc",
3322 3,
3323 RETRIEVE,
3324 "u",
3325 USERS_TABLE,
3326 "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",
3327 gubc_fields,
3328 13,
3329 "u.type = UPPER('%s') AND u.users_id != 0",
3330 1,
3331 "u.login",
3332 &VDfix_modby,
3333 },
3334
3335 {
3336 /* Q_GUBM - GET_USER_BY_MITID, v2 */
d33e787c 3337 "get_user_by_mitid",
3338 "gubm",
c44ddfa7 3339 2,
d33e787c 3340 RETRIEVE,
3341 "u",
03c05291 3342 USERS_TABLE,
3343 "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 3344 gubm2_fields,
d33e787c 3345 12,
263a36d4 3346 "u.clearid LIKE '%s' AND u.users_id != 0",
d33e787c 3347 1,
29028043 3348 "u.login",
263a36d4 3349 &VDfix_modby,
d33e787c 3350 },
5eaef520 3351
4ffa124a 3352 {
186dd63b 3353 /* Q_GUBM - GET_USER_BY_MITID, v3 */
3354 "get_user_by_mitid",
3355 "gubm",
3356 3,
3357 RETRIEVE,
3358 "u",
3359 USERS_TABLE,
3360 "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",
3361 gubm_fields,
3362 13,
3363 "u.clearid LIKE '%s' AND u.users_id != 0",
3364 1,
3365 "u.login",
3366 &VDfix_modby,
3367 },
3368
3369 {
3370 /* Q_AUAC - ADD_USER_ACCOUNT, v2 */ /* uses prefetch_value() for users_id */
4ffa124a 3371 "add_user_account",
3372 "auac",
c44ddfa7 3373 2,
4ffa124a 3374 APPEND,
3375 "u",
03c05291 3376 USERS_TABLE,
d55429b2 3377 /* We set signature to "NVL(CHR(0), '%s')", which is to say, "CHR(0)",
3378 * but using up one argv element.
3379 */
3380 "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 3381 auac2_fields,
4ffa124a 3382 12,
7ac48069 3383 NULL,
4ffa124a 3384 0,
29028043 3385 NULL,
186dd63b 3386 &auac2_validate,
3387 },
3388
3389 {
3390 /* Q_AUAC - ADD_USER_ACCOUNT, v3 */ /* uses prefetch_value() for users_id */
3391 "add_user_account",
3392 "auac",
3393 3,
3394 APPEND,
3395 "u",
3396 USERS_TABLE,
3397 /* We set signature to "NVL(CHR(0), '%s')", which is to say, "CHR(0)",
3398 * but using up one argv element.
3399 */
3400 "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)",
3401 auac_fields,
3402 13,
3403 NULL,
3404 0,
3405 NULL,
4ffa124a 3406 &auac_validate,
3407 },
5eaef520 3408
d33e787c 3409 {
186dd63b 3410 /* Q_AUSR - ADD_USER, v2 */ /* uses prefetch_value() for users_id */
d33e787c 3411 "add_user",
3412 "ausr",
c44ddfa7 3413 2,
d33e787c 3414 APPEND,
3415 "u",
03c05291 3416 USERS_TABLE,
5eaef520 3417 "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 3418 auac2_fields,
d33e787c 3419 9,
45bf7573 3420 0,
d33e787c 3421 0,
29028043 3422 NULL,
186dd63b 3423 &ausr2_validate,
3424 },
3425
3426 {
3427 /* Q_AUSR - ADD_USER, v3 */ /* uses prefetch_value() for users_id */
3428 "add_user",
3429 "ausr",
3430 3,
3431 APPEND,
3432 "u",
3433 USERS_TABLE,
3434 "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)",
3435 auac_fields,
3436 10,
3437 0,
3438 0,
3439 NULL,
d33e787c 3440 &ausr_validate,
3441 },
5eaef520 3442
d33e787c 3443 {
3444 /* Q_RUSR - REGISTER_USER */
3445 "register_user",
3446 "rusr",
c44ddfa7 3447 2,
d33e787c 3448 APPEND,
3449 0,
3450 0,
3451 0,
3452 rusr_fields,
3453 3,
3454 0,
3455 0,
29028043 3456 NULL,
d33e787c 3457 &rusr_validate,
3458 },
5eaef520 3459
4ffa124a 3460 {
186dd63b 3461 /* Q_UUAC - UPDATE_USER_ACCOUNT, v2 */
4ffa124a 3462 "update_user_account",
3463 "uuac",
c44ddfa7 3464 2,
4ffa124a 3465 UPDATE,
3466 "u",
03c05291 3467 USERS_TABLE,
d55429b2 3468 /* See comment in auac about signature. */
3469 "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 3470 uuac2_fields,
4ffa124a 3471 12,
3472 "users_id = %d",
3473 1,
29028043 3474 NULL,
186dd63b 3475 &uuac2_validate,
3476 },
3477
3478 {
3479 /* Q_UUAC - UPDATE_USER_ACCOUNT, v3 */
3480 "update_user_account",
3481 "uuac",
3482 3,
3483 UPDATE,
3484 "u",
3485 USERS_TABLE,
3486 /* See comment in auac about signature. */
3487 "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",
3488 uuac_fields,
3489 13,
3490 "users_id = %d",
3491 1,
3492 NULL,
4ffa124a 3493 &uuac_validate,
3494 },
5eaef520 3495
d33e787c 3496 {
186dd63b 3497 /* Q_UUSR - UPDATE_USER, v2 */
d33e787c 3498 "update_user",
3499 "uusr",
c44ddfa7 3500 2,
d33e787c 3501 UPDATE,
3502 "u",
03c05291 3503 USERS_TABLE,
5eaef520 3504 "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 3505 uuac2_fields,
d33e787c 3506 9,
4e5ec77f 3507 "users_id = %d",
d33e787c 3508 1,
29028043 3509 NULL,
186dd63b 3510 &uusr2_validate,
3511 },
3512
3513 {
3514 /* Q_UUSR - UPDATE_USER, v3 */
3515 "update_user",
3516 "uusr",
3517 3,
3518 UPDATE,
3519 "u",
3520 USERS_TABLE,
3521 "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'",
3522 uuac_fields,
3523 10,
3524 "users_id = %d",
3525 1,
3526 NULL,
d33e787c 3527 &uusr_validate,
3528 },
3529
3530 {
3531 /* Q_UUSH - UPDATE_USER_SHELL */
3532 "update_user_shell",
3533 "uush",
c44ddfa7 3534 2,
d33e787c 3535 UPDATE,
3536 "u",
03c05291 3537 USERS_TABLE,
5eaef520 3538 "users SET shell = '%s'",
d33e787c 3539 uush_fields,
3540 1,
4e5ec77f 3541 "users_id = %d",
d33e787c 3542 1,
29028043 3543 NULL,
d33e787c 3544 &uush_validate,
3545 },
3546
29dbfca4 3547 {
3548 /* Q_UUWS - UPDATE_USER_WINDOWS_SHELL */
3549 "update_user_windows_shell",
3550 "uuws",
3551 2,
3552 UPDATE,
3553 "u",
3554 USERS_TABLE,
3555 "users SET winconsoleshell = '%s'",
3556 uuws_fields,
3557 1,
3558 "users_id = %d",
3559 1,
3560 NULL,
3561 &uuws_validate,
3562 },
3563
d33e787c 3564 {
3565 /* Q_UUST - UPDATE_USER_STATUS */
3566 "update_user_status",
3567 "uust",
c44ddfa7 3568 2,
d33e787c 3569 UPDATE,
3570 "u",
03c05291 3571 USERS_TABLE,
4e5ec77f 3572 "users SET status = %s",
d33e787c 3573 uust_fields,
3574 1,
4e5ec77f 3575 "users_id = %d",
d33e787c 3576 1,
29028043 3577 NULL,
d33e787c 3578 &uust_validate,
3579 },
3580
4ffa124a 3581 {
3582 /* Q_UUSS - UPDATE_USER_SECURITY_STATUS */
3583 "update_user_security_status",
3584 "uuss",
c44ddfa7 3585 2,
4ffa124a 3586 UPDATE,
3587 "u",
03c05291 3588 USERS_TABLE,
135dcb80 3589 "users SET secure = %s",
4ffa124a 3590 uuss_fields,
3591 1,
3592 "users_id = %d",
3593 1,
29028043 3594 NULL,
4ffa124a 3595 &uust_validate,
3596 },
5eaef520 3597
d33e787c 3598 {
5eaef520 3599 /* Q_DUSR - DELETE_USER */
d33e787c 3600 "delete_user",
3601 "dusr",
c44ddfa7 3602 2,
d33e787c 3603 DELETE,
3604 "u",
03c05291 3605 USERS_TABLE,
7ac48069 3606 NULL,
d33e787c 3607 dusr_fields,
3608 0,
4e5ec77f 3609 "users_id = %d",
d33e787c 3610 1,
29028043 3611 NULL,
d33e787c 3612 &dusr_validate,
3613 },
3614
77eb4bdf 3615 {
3616 /* Q_AURV - ADD_USER_RESERVATION */
3617 "add_user_reservation",
3618 "aurv",
3619 2,
3620 UPDATE,
3621 0,
3622 USERS_TABLE,
3623 0,
3624 aurv_fields,
3625 2,
3626 0,
3627 0,
3628 NULL,
3629 &aurv_validate,
3630 },
3631
3632 {
3633 /* Q_GURV - GET_USER_RESERVATIONS */
3634 "get_user_reservations",
3635 "gurv",
3636 2,
3637 RETRIEVE,
3638 0,
3639 USERS_TABLE,
3640 0,
3641 gurv_fields,
3642 2,
3643 0,
3644 1,
3645 NULL,
3646 &gurv_validate,
3647 },
3648
3649 {
3650 /* Q_GUBR - GET_USER_BY_RESERVATION */
3651 "get_user_by_reservation",
3652 "gubr",
3653 2,
3654 RETRIEVE,
3655 0,
3656 USERS_TABLE,
3657 0,
3658 gubr_fields,
3659 1,
3660 0,
3661 1,
3662 NULL,
3663 &gubr_validate,
3664 },
3665
3666 {
3667 /* Q_DURV - DELETE_USER_RESERVATION */
3668 "delete_user_reservation",
3669 "durv",
3670 2,
3671 UPDATE,
3672 0,
3673 USERS_TABLE,
3674 0,
3675 aurv_fields,
3676 2,
3677 0,
3678 0,
3679 NULL,
3680 &aurv_validate,
3681 },
3682
012fc215 3683 {
5eaef520 3684 /* Q_GKUM - GET_KERBEROS_USER_MAP */
012fc215 3685 "get_kerberos_user_map",
3686 "gkum",
c44ddfa7 3687 2,
012fc215 3688 RETRIEVE,
3689 "k",
03c05291 3690 KRBMAP_TABLE,
3691 "u.login, str.string FROM krbmap km, users u, strings str",
012fc215 3692 gkum_fields,
3693 2,
263a36d4 3694 "u.login LIKE '%s' AND str.string LIKE '%s' AND km.users_id = u.users_id AND km.string_id = str.string_id",
012fc215 3695 2,
29028043 3696 "u.login, str.string",
263a36d4 3697 NULL,
012fc215 3698 },
3699
3700 {
3701 /* Q_AKUM - ADD_KERBEROS_USER_MAP */
3702 "add_kerberos_user_map",
3703 "akum",
c44ddfa7 3704 2,
012fc215 3705 APPEND,
3706 "k",
03c05291 3707 KRBMAP_TABLE,
99e09b48 3708 "INTO krbmap (users_id, string_id) VALUES (%d, %d)",
012fc215 3709 akum_fields,
3710 2,
3711 0,
3712 0,
29028043 3713 NULL,
012fc215 3714 &akum_validate,
3715 },
3716
3717 {
3718 /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
3719 "delete_kerberos_user_map",
3720 "dkum",
c44ddfa7 3721 2,
012fc215 3722 DELETE,
3723 "k",
03c05291 3724 KRBMAP_TABLE,
012fc215 3725 0,
3726 akum_fields,
3727 0,
99e09b48 3728 "users_id = %d AND string_id = %d",
012fc215 3729 2,
29028043 3730 NULL,
012fc215 3731 &dkum_validate,
3732 },
3733
d33e787c 3734 {
3735 /* Q_GFBL - GET_FINGER_BY_LOGIN */
3736 "get_finger_by_login",
3737 "gfbl",
c44ddfa7 3738 2,
d33e787c 3739 RETRIEVE,
3740 "u",
03c05291 3741 USERS_TABLE,
3742 "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 3743 gfbl_fields,
3744 12,
03c05291 3745 "users_id = %d",
d33e787c 3746 1,
29028043 3747 "login",
d33e787c 3748 &gfbl_validate,
3749 },
3750
3751 {
3752 /* Q_UFBL - UPDATE_FINGER_BY_LOGIN */
3753 "update_finger_by_login",
3754 "ufbl",
c44ddfa7 3755 2,
d33e787c 3756 UPDATE,
3757 "u",
03c05291 3758 USERS_TABLE,
5eaef520 3759 "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 3760 ufbl_fields,
3761 8,
4e5ec77f 3762 "users_id = %d",
d33e787c 3763 1,
29028043 3764 NULL,
d33e787c 3765 &ufbl_validate,
3766 },
3767
3768 {
3769 /* Q_GPOB - GET_POBOX */
3770 "get_pobox",
3771 "gpob",
c44ddfa7 3772 2,
d33e787c 3773 RETRIEVE,
3774 "u",
03c05291 3775 USERS_TABLE,
d6d830a1 3776 "login, potype, users_id, CHR(0), TO_CHAR(pmodtime, 'DD-mon-YYYY HH24:MI:SS'), pmodby, pmodwith FROM users",
d33e787c 3777 gpob_fields,
d6d830a1 3778 7,
03c05291 3779 "users_id = %d",
d33e787c 3780 1,
29028043 3781 "login",
d33e787c 3782 &gpob_validate,
3783 },
3784
3785 {
3786 /* Q_GAPO - GET_ALL_POBOXES */
3787 "get_all_poboxes",
3788 "gapo",
c44ddfa7 3789 2,
d33e787c 3790 RETRIEVE,
3791 "u",
03c05291 3792 USERS_TABLE,
3793 "login, potype, pop_id || ':' || box_id FROM users",
d33e787c 3794 gpox_fields,
3795 3,
03c05291 3796 "potype != 'NONE'",
d33e787c 3797 0,
29028043 3798 "login",
d33e787c 3799 &gpox_validate,
3800 },
5eaef520 3801
d33e787c 3802 {
3803 /* Q_GPOP - GET_POBOXES_POP */
3804 "get_poboxes_pop",
3805 "gpop",
c44ddfa7 3806 2,
d33e787c 3807 RETRIEVE,
3808 "u",
03c05291 3809 USERS_TABLE,
17cb3de8 3810 "login, potype, users_id FROM users",
d33e787c 3811 gpox_fields,
3812 3,
03c05291 3813 "potype = 'POP'",
d33e787c 3814 0,
29028043 3815 "login",
d33e787c 3816 &gpox_validate
3817 },
3818
3819 {
3820 /* Q_GPOF - GET_POBOXES_SMTP */
3821 "get_poboxes_smtp",
3822 "gpos",
c44ddfa7 3823 2,
d33e787c 3824 RETRIEVE,
3825 "u",
03c05291 3826 USERS_TABLE,
17cb3de8 3827 "login, potype, users_id FROM users",
d33e787c 3828 gpox_fields,
3829 3,
03c05291 3830 "potype = 'SMTP'",
d33e787c 3831 0,
29028043 3832 "login",
d33e787c 3833 &gpox_validate
3834 },
3835
3836 {
3837 /* Q_SPOB - SET_POBOX */
3838 "set_pobox",
3839 "spob",
c44ddfa7 3840 2,
d33e787c 3841 UPDATE,
3842 0,
03c05291 3843 USERS_TABLE,
d33e787c 3844 0,
3845 spob_fields,
3846 3,
7ac48069 3847 NULL,
d33e787c 3848 0,
29028043 3849 NULL,
d33e787c 3850 &spob_validate,
3851 },
3852
3853 {
3854 /* Q_SPOP - SET_POBOX_POP */
3855 "set_pobox_pop",
3856 "spop",
c44ddfa7 3857 2,
d33e787c 3858 UPDATE,
8b0fdf05 3859 0,
03c05291 3860 USERS_TABLE,
17cb3de8 3861 0,
d33e787c 3862 spob_fields,
8b0fdf05 3863 1,
17cb3de8 3864 NULL,
3865 0,
29028043 3866 NULL,
d33e787c 3867 &spop_validate,
3868 },
3869
3870 {
3871 /* Q_DPOB - DELETE_POBOX */
3872 "delete_pobox",
3873 "dpob",
c44ddfa7 3874 2,
d33e787c 3875 UPDATE,
3876 "u",
03c05291 3877 USERS_TABLE,
3878 "users SET potype = 'NONE'",
3879 spob_fields,
3880 0,
3881 "users_id = %d",
d33e787c 3882 1,
29028043 3883 NULL,
03c05291 3884 &dpob_validate,
d33e787c 3885 },
3886
3887 {
a66a2204 3888 /* Q_GHST - GET_HOST */
3889 "get_host",
3890 "ghst",
c44ddfa7 3891 2,
a66a2204 3892 RETRIEVE,
3893 "m",
03c05291 3894 MACHINE_TABLE,
3895 "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 3896 ghst_fields,
3897 21,
1fa08fc4 3898 "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 3899 4,
29028043 3900 "m.name",
a66a2204 3901 &ghst_validate,
3902 },
3903
9333756a 3904 {
3905 /* Q_GHBH - GET_HOST_BY_HWADDR */
3906 "get_host_by_hwaddr",
3907 "ghbh",
c44ddfa7 3908 2,
9333756a 3909 RETRIEVE,
3910 "m",
3911 MACHINE_TABLE,
3912 "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 3913 ghbh_fields,
9333756a 3914 21,
3915 "m.hwaddr LIKE LOWER('%s') AND m.mach_id != 0 AND s.snet_id = m.snet_id",
3916 1,
3917 "m.name",
012e079f 3918 &ghst_validate,
9333756a 3919 },
3920
2884200f 3921 {
3922 /* Q_GHHA - GET_HOST_HWADDR */
3923 "get_host_hwaddr",
3924 "ghha",
c44ddfa7 3925 2,
2884200f 3926 RETRIEVE,
3927 "m",
3928 MACHINE_TABLE,
3929 "m.hwaddr FROM machine m",
3930 ghha_fields,
3931 1,
3932 "m.name LIKE UPPER('%s')",
3933 1,
3934 NULL,
3935 NULL,
3936 },
3937
a66a2204 3938 {
3939 /* Q_AHST - ADD_HOST */ /* uses prefetch_value() for mach_id */
3940 "add_host",
3941 "ahst",
c44ddfa7 3942 2,
d33e787c 3943 APPEND,
3944 "m",
03c05291 3945 MACHINE_TABLE,
5eaef520 3946 "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 3947 ahst_fields,
3948 14,
45bf7573 3949 0,
d33e787c 3950 0,
29028043 3951 NULL,
a66a2204 3952 &ahst_validate,
d33e787c 3953 },
3954
3955 {
a66a2204 3956 /* Q_UHST - UPDATE_HOST */
3957 "update_host",
3958 "uhst",
c44ddfa7 3959 2,
d33e787c 3960 UPDATE,
3961 "m",
03c05291 3962 MACHINE_TABLE,
5eaef520 3963 "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 3964 uhst_fields,
3965 14,
4e5ec77f 3966 "mach_id = %d",
d33e787c 3967 1,
29028043 3968 NULL,
a66a2204 3969 &uhst_validate,
d33e787c 3970 },
3971
2884200f 3972 {
3973 /* Q_UHHA - UPDATE_HOST_HWADDR */
3974 "update_host_hwaddr",
3975 "uhha",
c44ddfa7 3976 2,
2884200f 3977 UPDATE,
3978 "m",
3979 MACHINE_TABLE,
1fdf882a 3980 "machine SET hwaddr = NVL('%s', CHR(0))",
2884200f 3981 uhha_fields,
3982 1,
3983 "mach_id = %d",
3984 1,
3985 NULL,
3986 &uhha_validate,
3987 },
3988
d33e787c 3989 {
a66a2204 3990 /* Q_DHST - DELETE_HOST */
3991 "delete_host",
3992 "dhst",
c44ddfa7 3993 2,
d33e787c 3994 DELETE,
3995 "m",
03c05291 3996 MACHINE_TABLE,
7ac48069 3997 NULL,
a66a2204 3998 dhst_fields,
d33e787c 3999 0,
4e5ec77f 4000 "mach_id = %d",
d33e787c 4001 1,
29028043 4002 NULL,
a66a2204 4003 &dhst_validate,
4004 },
4005
03c05291 4006 {
4007 /* Q_GMAC - GET_MACHINE */
4008 "get_machine",
4009 "gmac",
c44ddfa7 4010 2,
03c05291 4011 RETRIEVE,
4012 "m",
4013 MACHINE_TABLE,
4014 "name, vendor, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM machine",
4015 gmac_fields,
4016 5,
263a36d4 4017 "name LIKE UPPER('%s') AND mach_id != 0",
03c05291 4018 1,
29028043 4019 "name",
263a36d4 4020 &VDfix_modby,
03c05291 4021 },
4022
a66a2204 4023 {
4024 /* Q_GHAL - GET_HOSTALIAS */
4025 "get_hostalias",
4026 "ghal",
c44ddfa7 4027 2,
a66a2204 4028 RETRIEVE,
03c05291 4029 "a",
4030 HOSTALIAS_TABLE,
4031 "a.name, m.name FROM hostalias a, machine m",
a66a2204 4032 ghal_fields,
4033 2,
263a36d4 4034 "m.mach_id = a.mach_id and a.name LIKE UPPER('%s') AND m.name LIKE UPPER('%s')",
a66a2204 4035 2,
29028043 4036 "a.name",
a66a2204 4037 &ghal_validate,
4038 },
4039
4040 {
4041 /* Q_AHAL - ADD_HOSTALIAS */
4042 "add_hostalias",
4043 "ahal",
c44ddfa7 4044 2,
a66a2204 4045 APPEND,
4046 "a",
03c05291 4047 HOSTALIAS_TABLE,
5eaef520 4048 "INTO hostalias (name, mach_id) VALUES (UPPER('%s'), %d)",
a66a2204 4049 ghal_fields,
4050 2,
4051 0,
4052 0,
29028043 4053 NULL,
a66a2204 4054 &ahal_validate,
4055 },
4056
4057 {
4058 /* Q_DHAL - DELETE_HOSTALIAS */
4059 "delete_hostalias",
4060 "dhal",
c44ddfa7 4061 2,
a66a2204 4062 DELETE,
4063 "a",
03c05291 4064 HOSTALIAS_TABLE,
7ac48069 4065 NULL,
a66a2204 4066 ghal_fields,
4067 0,
03c05291 4068 "name = UPPER('%s') AND mach_id = %d",
a66a2204 4069 2,
29028043 4070 NULL,
a66a2204 4071 &dhal_validate,
d33e787c 4072 },
4073
3c1d412c 4074 {
4075 /* Q_GSNT - GET_SUBNET */
4076 "get_subnet",
4077 "gsnt",
c44ddfa7 4078 2,
3c1d412c 4079 RETRIEVE,
4080 "s",
03c05291 4081 SUBNET_TABLE,
4082 "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 4083 gsnt_fields,
bd8c26ff 4084 12,
5e8fdad1 4085 "name LIKE UPPER('%s')",
3c1d412c 4086 1,
29028043 4087 "name",
3c1d412c 4088 &gsnt_validate,
4089 },
4090
4091 {
4092 /* Q_ASNT - ADD_SUBNET */
4093 "add_subnet",
4094 "asnt",
c44ddfa7 4095 2,
3c1d412c 4096 APPEND,
4097 "s",
03c05291 4098 SUBNET_TABLE,
5eaef520 4099 "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 4100 asnt_fields,
bd8c26ff 4101 9,
3c1d412c 4102 0,
4103 0,
29028043 4104 NULL,
3c1d412c 4105 &asnt_validate,
4106 },
4107
4108 {
4109 /* Q_USNT - UPDATE_SUBNET */
4110 "update_subnet",
4111 "usnt",
c44ddfa7 4112 2,
3c1d412c 4113 UPDATE,
4114 "s",
03c05291 4115 SUBNET_TABLE,
5eaef520 4116 "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 4117 usnt_fields,
bd8c26ff 4118 9,
3c1d412c 4119 "snet_id = %d",
4120 1,
29028043 4121 NULL,
3c1d412c 4122 &usnt_validate,
4123 },
4124
4125 {
4126 /* Q_DSNT - DELETE_SUBNET */
4127 "delete_subnet",
4128 "dsnt",
c44ddfa7 4129 2,
3c1d412c 4130 DELETE,
4131 "s",
03c05291 4132 SUBNET_TABLE,
7ac48069 4133 NULL,
3c1d412c 4134 dsnt_fields,
4135 0,
4136 "snet_id = %d",
4137 1,
29028043 4138 NULL,
3c1d412c 4139 &dsnt_validate,
4140 },
4141
d33e787c 4142 {
4143 /* Q_GCLU - GET_CLUSTER */
4144 "get_cluster",
4145 "gclu",
c44ddfa7 4146 2,
d33e787c 4147 RETRIEVE,
4148 "c",
e688520a 4149 CLUSTERS_TABLE,
03c05291 4150 "name, description, location, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM clusters",
d33e787c 4151 gclu_fields,
4152 6,
263a36d4 4153 "name LIKE '%s' AND clu_id != 0",
d33e787c 4154 1,
29028043 4155 "name",
263a36d4 4156 &VDfix_modby,
d33e787c 4157 },
4158
4159 {
45bf7573 4160 /* Q_ACLU - ADD_CLUSTER */ /* uses prefetch_value() for clu_id */
d33e787c 4161 "add_cluster",
4162 "aclu",
c44ddfa7 4163 2,
d33e787c 4164 APPEND,
4165 "c",
e688520a 4166 CLUSTERS_TABLE,
5eaef520 4167 "INTO clusters (name, description, location, clu_id) VALUES ('%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s)",
d33e787c 4168 aclu_fields,
4169 3,
45bf7573 4170 0,
d33e787c 4171 0,
29028043 4172 NULL,
d33e787c 4173 &aclu_validate,
4174 },
4175
4176 {
4177 /* Q_UCLU - UPDATE_CLUSTER */
4178 "update_cluster",
4179 "uclu",
c44ddfa7 4180 2,
d33e787c 4181 UPDATE,
4182 "c",
e688520a 4183 CLUSTERS_TABLE,
5eaef520 4184 "clusters SET name = '%s', description = NVL('%s', CHR(0)), location = NVL('%s', CHR(0))",
d33e787c 4185 uclu_fields,
4186 3,
4e5ec77f 4187 "clu_id = %d",
d33e787c 4188 1,
29028043 4189 NULL,
d33e787c 4190 &uclu_validate,
4191 },
4192
4193 {
4194 /* Q_DCLU - DELETE_CLUSTER */
4195 "delete_cluster",
4196 "dclu",
c44ddfa7 4197 2,
d33e787c 4198 DELETE,
4199 "c",
e688520a 4200 CLUSTERS_TABLE,
7ac48069 4201 NULL,
d33e787c 4202 dclu_fields,
4203 0,
4e5ec77f 4204 "clu_id = %d",
d33e787c 4205 1,
29028043 4206 NULL,
d33e787c 4207 &dclu_validate,
4208 },
4209
4210 {
5eaef520 4211 /* Q_GMCM - GET_MACHINE_TO_CLUSTER_MAP */
d33e787c 4212 "get_machine_to_cluster_map",
4213 "gmcm",
c44ddfa7 4214 2,
d33e787c 4215 RETRIEVE,
0c345c78 4216 "mcm",
03c05291 4217 MCMAP_TABLE,
4218 "m.name, c.name FROM machine m, clusters c, mcmap mcm",
d33e787c 4219 gmcm_fields,
4220 2,
263a36d4 4221 "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 4222 2,
29028043 4223 "m.name",
263a36d4 4224 NULL,
d33e787c 4225 },
5eaef520 4226
d33e787c 4227 {
4228 /* Q_AMTC - ADD_MACHINE_TO_CLUSTER */
4229 "add_machine_to_cluster",
4230 "amtc",
c44ddfa7 4231 2,
d33e787c 4232 APPEND,
0c345c78 4233 "mcm",
03c05291 4234 MCMAP_TABLE,
4e5ec77f 4235 "INTO mcmap (mach_id, clu_id) VALUES (%d, %d)",
d33e787c 4236 gmcm_fields,
4237 2,
4238 0,
4239 0,
29028043 4240 NULL,
d33e787c 4241 &amtc_validate,
4242 },
4243
4244 {
4245 /* Q_DMFC - DELETE_MACHINE_FROM_CLUSTER */
4246 "delete_machine_from_cluster",
4247 "dmfc",
c44ddfa7 4248 2,
d33e787c 4249 DELETE,
0c345c78 4250 "mcm",
03c05291 4251 MCMAP_TABLE,
d33e787c 4252 0,
4253 gmcm_fields,
4254 0,
4e5ec77f 4255 "mach_id = %d AND clu_id = %d",
d33e787c 4256 2,
29028043 4257 NULL,
d33e787c 4258 &amtc_validate,
4259 },
4260
4261 {
68dd808d 4262 /* Q_GCLD - GET_CLUSTER_DATA */
d33e787c 4263 "get_cluster_data",
4264 "gcld",
c44ddfa7 4265 2,
d33e787c 4266 RETRIEVE,
d33e787c 4267 "svc",
03c05291 4268 SVC_TABLE,
4269 "c.name, svc.serv_label, svc.serv_cluster FROM svc svc, clusters c",
d33e787c 4270 gcld_fields,
4271 3,
263a36d4 4272 "c.clu_id = svc.clu_id AND c.name LIKE '%s' AND svc.serv_label LIKE '%s'",
d33e787c 4273 2,
29028043 4274 "c.name, svc.serv_label",
263a36d4 4275 NULL,
d33e787c 4276 },
4277
4278 {
4279 /* Q_ACLD - ADD_CLUSTER_DATA */
4280 "add_cluster_data",
4281 "acld",
c44ddfa7 4282 2,
d33e787c 4283 APPEND,
0c345c78 4284 "svc",
03c05291 4285 SVC_TABLE,
5eaef520 4286 "INTO svc (clu_id, serv_label, serv_cluster) VALUES (%d, '%s', '%s')",
88343c5e 4287 acld_fields,
d33e787c 4288 3,
7ac48069 4289 NULL,
d33e787c 4290 0,
29028043 4291 NULL,
d33e787c 4292 &acld_validate,
4293 },
4294
4295 {
4296 /* Q_DCLD - DELETE_CLUSTER_DATA */
4297 "delete_cluster_data",
4298 "dcld",
c44ddfa7 4299 2,
d33e787c 4300 DELETE,
0c345c78 4301 "svc",
03c05291 4302 SVC_TABLE,
7ac48069 4303 NULL,
88343c5e 4304 acld_fields,
d33e787c 4305 0,
5eaef520 4306 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
d33e787c 4307 3,
29028043 4308 NULL,
99e09b48 4309 &dcld_validate,
d33e787c 4310 },
4311
03c05291 4312 {
44da57b2 4313 /* Q_GLIN - GET_LIST_INFO, v2 */
03c05291 4314 "get_list_info",
4315 "glin",
c44ddfa7 4316 2,
03c05291 4317 RETRIEVE,
263a36d4 4318 "l",
03c05291 4319 LIST_TABLE,
ccdbc974 4320 "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 4321 glin2_fields,
03c05291 4322 13,
263a36d4 4323 "name LIKE '%s'",
5eaef520 4324 1,
263a36d4 4325 "name",
5eaef520 4326 &glin_validate,
03c05291 4327 },
5eaef520 4328
44da57b2 4329 {
4330 /* Q_GLIN - GET_LIST_INFO, v3 */
4331 "get_list_info",
4332 "glin",
4333 3,
4334 RETRIEVE,
4335 "l",
4336 LIST_TABLE,
4337 "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 4338 glin3_fields,
44da57b2 4339 14,
4340 "name LIKE '%s'",
4341 1,
4342 "name",
4343 &glin_validate,
4344 },
4345
59c3208b 4346 {
4347 /* Q_GLIN - GET_LIST_INFO, v4 */
4348 "get_list_info",
4349 "glin",
4350 4,
4351 RETRIEVE,
4352 "l",
4353 LIST_TABLE,
4354 "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",
4355 glin_fields,
4356 16,
4357 "name LIKE '%s'",
4358 1,
4359 "name",
4360 &glin_validate,
4361 },
4362
03c05291 4363 {
4364 /* Q_EXLN - EXPAND_LIST_NAMES */
4365 "expand_list_names",
4366 "exln",
c44ddfa7 4367 2,
03c05291 4368 RETRIEVE,
4369 "l",
4370 LIST_TABLE,
4371 "name FROM list",
4372 glin_fields,
4373 1,
263a36d4 4374 "name LIKE '%s' AND list_id != 0",
03c05291 4375 1,
29028043 4376 "name",
263a36d4 4377 NULL,
03c05291 4378 },
5eaef520 4379
03c05291 4380 {
44da57b2 4381 /* Q_ALIS - ADD_LIST, v2 */ /* uses prefetch_value() for list_id */
03c05291 4382 "add_list",
4383 "alis",
c44ddfa7 4384 2,
03c05291 4385 APPEND,
4386 "l",
5eaef520 4387 LIST_TABLE,
4388 "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 4389 alis2_fields,
03c05291 4390 10,
4391 0,
4392 0,
29028043 4393 NULL,
44da57b2 4394 &alis2_validate,
4395 },
4396
4397 {
4398 /* Q_ALIS - ADD_LIST, v3 */ /* uses prefetch_value() for list_id */
4399 "add_list",
4400 "alis",
4401 3,
4402 APPEND,
4403 "l",
4404 LIST_TABLE,
4405 "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 4406 alis3_fields,
44da57b2 4407 11,
4408 0,
4409 0,
4410 NULL,
59c3208b 4411 &alis3_validate,
4412 },
4413
4414 {
4415 /* Q_ALIS - ADD_LIST, v4 */ /* uses prefetch_value() for list_id */
4416 "add_list",
4417 "alis",
4418 4,
4419 APPEND,
4420 "l",
4421 LIST_TABLE,
4422 "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)",
4423 alis_fields,
4424 13,
4425 0,
4426 0,
4427 NULL,
03c05291 4428 &alis_validate,
4429 },
4430
4431 {
44da57b2 4432 /* Q_ULIS - UPDATE_LIST, v2 */
03c05291 4433 "update_list",
4434 "ulis",
c44ddfa7 4435 2,
03c05291 4436 UPDATE,
4437 "l",
4438 LIST_TABLE,
5eaef520 4439 "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 4440 ulis2_fields,
03c05291 4441 10,
4442 "list_id = %d",
4443 1,
29028043 4444 NULL,
44da57b2 4445 &ulis2_validate,
4446 },
4447
4448 {
4449 /* Q_ULIS - UPDATE_LIST, v3 */
4450 "update_list",
4451 "ulis",
4452 3,
4453 UPDATE,
4454 "l",
4455 LIST_TABLE,
4456 "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 4457 ulis3_fields,
44da57b2 4458 11,
4459 "list_id = %d",
4460 1,
4461 NULL,
59c3208b 4462 &ulis3_validate,
4463 },
4464
4465 {
4466 /* Q_ULIS, UPDATE_LIST, v4 */
4467 "update_list",
4468 "ulis",
4469 4,
4470 UPDATE,
4471 "l",
4472 LIST_TABLE,
4473 "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))",
4474 ulis_fields,
4475 13,
4476 "list_id = %d",
4477 1,
4478 NULL,
03c05291 4479 &ulis_validate,
4480 },
4481
4482 {
4483 /* Q_DLIS - DELETE_LIST */
4484 "delete_list",
4485 "dlis",
c44ddfa7 4486 2,
03c05291 4487 DELETE,
4488 "l",
4489 LIST_TABLE,
7ac48069 4490 NULL,
03c05291 4491 dlis_fields,
4492 0,
4493 "list_id = %d",
4494 1,
29028043 4495 NULL,
03c05291 4496 &dlis_validate,
4497 },
4498
4499 {
4500 /* Q_AMTL - ADD_MEMBER_TO_LIST */
4501 "add_member_to_list",
4502 "amtl",
c44ddfa7 4503 2,
03c05291 4504 APPEND,
4505 0,
4506 IMEMBERS_TABLE,
4507 0,
4508 amtl_fields,
4509 3,
7ac48069 4510 NULL,
03c05291 4511 0,
29028043 4512 NULL,
03c05291 4513 &amtl_validate,
4514 },
4515
46b6f1f6 4516 {
4517 /* Q_ATML - ADD_TAGGED_MEMBER_TO_LIST */
4518 "add_tagged_member_to_list",
4519 "atml",
c44ddfa7 4520 2,
46b6f1f6 4521 APPEND,
4522 0,
4523 IMEMBERS_TABLE,
4524 0,
4525 atml_fields,
4526 4,
4527 NULL,
4528 0,
4529 NULL,
4530 &atml_validate,
4531 },
4532
4533 {
4534 /* Q_TMOL - TAG_MEMBER_OF_LIST */
4535 "tag_member_of_list",
4536 "tmol",
c44ddfa7 4537 2,
46b6f1f6 4538 UPDATE,
20541c25 4539 0,
46b6f1f6 4540 IMEMBERS_TABLE,
20541c25 4541 0,
46b6f1f6 4542 atml_fields,
4543 1,
20541c25 4544 0,
46b6f1f6 4545 3,
4546 NULL,
4547 &tmol_validate,
4548 },
4549
03c05291 4550 {
4551 /* Q_DMFL - DELETE_MEMBER_FROM_LIST */
4552 "delete_member_from_list",
4553 "dmfl",
c44ddfa7 4554 2,
03c05291 4555 DELETE,
4556 0,
4557 IMEMBERS_TABLE,
7ac48069 4558 NULL,
03c05291 4559 amtl_fields,
4560 0,
4561 0,
4562 3,
29028043 4563 NULL,
03c05291 4564 &dmfl_validate,
4565 },
4566
4567 {
4568 /* Q_GAUS - GET_ACE_USE */
4569 "get_ace_use",
4570 "gaus",
c44ddfa7 4571 2,
03c05291 4572 RETRIEVE,
4573 0,
4574 0,
4575 0,
4576 gaus_fields,
4577 2,
4578 0,
4579 2,
29028043 4580 NULL,
03c05291 4581 &gaus_validate,
4582 },
4583
d3051625 4584 {
4585 /* Q_GHBO - GET_HOST_BY_OWNER */
4586 "get_host_by_owner",
4587 "ghbo",
4588 2,
4589 RETRIEVE,
4590 0,
4591 0,
4592 0,
4593 ghbo_fields,
4594 1,
4595 0,
4596 2,
4597 NULL,
4598 &ghbo_validate,
4599 },
4600
03c05291 4601 {
4602 /* Q_QGLI - QUALIFIED_GET_LISTS */
4603 "qualified_get_lists",
4604 "qgli",
c44ddfa7 4605 2,
03c05291 4606 RETRIEVE,
4607 0,
4608 LIST_TABLE,
4609 0,
4610 qgli_fields,
4611 1,
4612 0,
4613 5,
29028043 4614 NULL,
03c05291 4615 &qgli_validate,
4616 },
4617
4618 {
4619 /* Q_GMOL - GET_MEMBERS_OF_LIST */
4620 "get_members_of_list",
4621 "gmol",
c44ddfa7 4622 2,
03c05291 4623 RETRIEVE,
7ac48069 4624 NULL,
03c05291 4625 IMEMBERS_TABLE,
7ac48069 4626 NULL,
03c05291 4627 gmol_fields,
4628 2,
7ac48069 4629 NULL,
03c05291 4630 1,
29028043 4631 NULL,
03c05291 4632 &gmol_validate,
4633 },
4634
4635 {
4636 /* Q_GEML - GET_END_MEMBERS_OF_LIST */
4637 "get_end_members_of_list",
4638 "geml",
c44ddfa7 4639 2,
03c05291 4640 RETRIEVE,
7ac48069 4641 NULL,
03c05291 4642 IMEMBERS_TABLE,
7ac48069 4643 NULL,
03c05291 4644 gmol_fields,
fd8d2149 4645 2,
7ac48069 4646 NULL,
03c05291 4647 1,
29028043 4648 NULL,
46b6f1f6 4649 &gmol_validate,
4650 },
4651
4652 {
4653 /* Q_GTML - GET_TAGGED_MEMBERS_OF_LIST */
4654 "get_tagged_members_of_list",
4655 "gtml",
c44ddfa7 4656 2,
46b6f1f6 4657 RETRIEVE,
4658 NULL,
4659 IMEMBERS_TABLE,
4660 NULL,
4661 gtml_fields,
4662 3,
4663 NULL,
4664 1,
4665 NULL,
4666 &gmol_validate,
03c05291 4667 },
5eaef520 4668
03c05291 4669 {
4670 /* Q_GLOM - GET_LISTS_OF_MEMBER */
4671 "get_lists_of_member",
4672 "glom",
c44ddfa7 4673 2,
03c05291 4674 RETRIEVE,
4675 0,
4676 IMEMBERS_TABLE,
4677 0,
4678 glom_fields,
4679 6,
4680 0,
4681 2,
29028043 4682 NULL,
03c05291 4683 &glom_validate,
4684 },
4685
4686 {
4687 /* Q_CMOL - COUNT_MEMBERS_OF_LIST */
4688 "count_members_of_list",
4689 "cmol",
c44ddfa7 4690 2,
03c05291 4691 RETRIEVE,
4692 0,
4693 IMEMBERS_TABLE,
4694 0,
4695 cmol_fields,
4696 1,
4697 0,
4698 1,
29028043 4699 NULL,
03c05291 4700 &cmol_validate,
4701 },
4702
d33e787c 4703 {
4704 /* Q_GSIN - GET_SERVER_INFO */
4705 "get_server_info",
4706 "gsin",
c44ddfa7 4707 2,
d33e787c 4708 RETRIEVE,
4709 "s",
03c05291 4710 SERVERS_TABLE,
4711 "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 4712 gsin_fields,
7ac4c1b1 4713 16,
263a36d4 4714 "name LIKE UPPER('%s')",
d33e787c 4715 1,
29028043 4716 "name",
d33e787c 4717 &gsin_validate,
4718 },
4719
4720 {
4721 /* Q_QGSV - QUALIFIED_GET_SERVER */
4722 "qualified_get_server",
4723 "qgsv",
c44ddfa7 4724 2,
d33e787c 4725 RETRIEVE,
4726 0,
03c05291 4727 SERVERS_TABLE,
d33e787c 4728 0,
4729 qgsv_fields,
4730 1,
4731 0,
4732 3,
29028043 4733 NULL,
d33e787c 4734 &qgsv_validate,
4735 },
4736
4737 {
4738 /* Q_ASIN - ADD_SERVER_INFO */
4739 "add_server_info",
4740 "asin",
c44ddfa7 4741 2,
d33e787c 4742 APPEND,
4743 "s",
03c05291 4744 SERVERS_TABLE,
5eaef520 4745 "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 4746 asin_fields,
4747 8,
7ac48069 4748 NULL,
d33e787c 4749 0,
29028043 4750 NULL,
d33e787c 4751 &asin_validate,
4752 },
4753
4754 {
4755 /* Q_USIN - UPDATE_SERVER_INFO */
4756 "update_server_info",
4757 "usin",
c44ddfa7 4758 2,
d33e787c 4759 UPDATE,
4760 "s",
03c05291 4761 SERVERS_TABLE,
4e5ec77f 4762 "servers SET update_int = %s, target_file = '%s', script = '%s', type = '%s', enable = %s, acl_type = '%s', acl_id = %d",
d33e787c 4763 asin_fields,
4764 7,
03c05291 4765 "name = UPPER('%s')",
d33e787c 4766 1,
29028043 4767 NULL,
d33e787c 4768 &asin_validate,
4769 },
4770
4771 {
4772 /* Q_RSVE - RESET_SERVER_ERROR */
4773 "reset_server_error",
4774 "rsve",
c44ddfa7 4775 2,
d33e787c 4776 UPDATE,
4777 "s",
03c05291 4778 SERVERS_TABLE,
4e5ec77f 4779 "servers SET harderror = 0, dfcheck = dfgen",
d33e787c 4780 dsin_fields,
4781 0,
03c05291 4782 "name = UPPER('%s')",
d33e787c 4783 1,
29028043 4784 NULL,
d33e787c 4785 &rsve_validate,
4786 },
4787
4788 {
4789 /* Q_SSIF - SET_SERVER_INTERNAL_FLAGS */
4790 "set_server_internal_flags",
4791 "ssif",
c44ddfa7 4792 2,
d33e787c 4793 UPDATE,
4794 "s",
03c05291 4795 SERVERS_TABLE,
5eaef520 4796 "servers SET dfgen = %s, dfcheck = %s, inprogress = %s, harderror = %s, errmsg = NVL('%s', CHR(0))",
d33e787c 4797 ssif_fields,
7ac4c1b1 4798 5,
03c05291 4799 "name = UPPER('%s')",
d33e787c 4800 1,
29028043 4801 NULL,
d33e787c 4802 &ssif_validate,
4803 },
4804
4805 {
4806 /* Q_DSIN - DELETE_SERVER_INFO */
4807 "delete_server_info",
4808 "dsin",
c44ddfa7 4809 2,
d33e787c 4810 DELETE,
4811 "s",
03c05291 4812 SERVERS_TABLE,
7ac48069 4813 NULL,
d33e787c 4814 dsin_fields,
4815 0,
03c05291 4816 "name = UPPER('%s')",
d33e787c 4817 1,
29028043 4818 NULL,
d33e787c 4819 &dsin_validate,
4820 },
4821
4822 {
5eaef520 4823 /* Q_GSHI - GET_SERVER_HOST_INFO */
d33e787c 4824 "get_server_host_info",
4825 "gshi",
c44ddfa7 4826 2,
d33e787c 4827 RETRIEVE,
4828 "sh",
03c05291 4829 SERVERHOSTS_TABLE,
4830 "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 4831 gshi_fields,
4832 16,
263a36d4 4833 "sh.service LIKE UPPER('%s') AND m.name LIKE UPPER('%s') AND m.mach_id = sh.mach_id",
d33e787c 4834 2,
29028043 4835 "sh.service, m.name",
d33e787c 4836 &gshi_validate,
4837 },
4838
4839 {
135dcb80 4840 /* Q_QGSH - QUALIFIED_GET_SERVER_HOST */
d33e787c 4841 "qualified_get_server_host",
4842 "qgsh",
c44ddfa7 4843 2,
d33e787c 4844 RETRIEVE,
135dcb80 4845 0,
03c05291 4846 SERVERHOSTS_TABLE,
d33e787c 4847 0,
4848 qgsh_fields,
4849 2,
4850 0,
4851 6,
29028043 4852 NULL,
d33e787c 4853 &qgsh_validate,
4854 },
4855
4856 {
4857 /* Q_ASHI - ADD_SERVER_HOST_INFO */
4858 "add_server_host_info",
4859 "ashi",
c44ddfa7 4860 2,
d33e787c 4861 APPEND,
4862 "sh",
03c05291 4863 SERVERHOSTS_TABLE,
5eaef520 4864 "INTO serverhosts (service, mach_id, enable, value1, value2, value3) VALUES (UPPER('%s'), %d, %s, %s, %s, NVL('%s', CHR(0)))",
d33e787c 4865 ashi_fields,
4866 6,
7ac48069 4867 NULL,
d33e787c 4868 0,
29028043 4869 NULL,
d33e787c 4870 &ashi_validate,
4871 },
4872
4873 {
4874 /* Q_USHI - UPDATE_SERVER_HOST_INFO */
4875 "update_server_host_info",
4876 "ushi",
c44ddfa7 4877 2,
d33e787c 4878 UPDATE,
4879 "sh",
03c05291 4880 SERVERHOSTS_TABLE,
5eaef520 4881 "serverhosts SET enable = %s, value1 = %s, value2 = %s, value3 = NVL('%s', CHR(0))",
d33e787c 4882 ashi_fields,
4883 4,
03c05291 4884 "service = UPPER('%s') AND mach_id = %d",
d33e787c 4885 2,
29028043 4886 NULL,
d33e787c 4887 &ashi_validate,
4888 },
4889
4890 {
4891 /* Q_RSHE - RESET_SERVER_HOST_ERROR */
4892 "reset_server_host_error",
4893 "rshe",
c44ddfa7 4894 2,
d33e787c 4895 UPDATE,
4896 "sh",
03c05291 4897 SERVERHOSTS_TABLE,
4e5ec77f 4898 "serverhosts SET hosterror = 0",
d33e787c 4899 dshi_fields,
4900 0,
03c05291 4901 "service = UPPER('%s') AND mach_id = %d",
d33e787c 4902 2,
29028043 4903 NULL,
d33e787c 4904 &rshe_validate,
4905 },
4906
4907 {
4908 /* Q_SSHO - SET_SERVER_HOST_OVERRIDE */
4909 "set_server_host_override",
4910 "ssho",
c44ddfa7 4911 2,
d33e787c 4912 UPDATE,
4913 "sh",
03c05291 4914 SERVERHOSTS_TABLE,
4e5ec77f 4915 "serverhosts SET override = 1",
d33e787c 4916 dshi_fields,
4917 0,
03c05291 4918 "service = UPPER('%s') AND mach_id = %d",
d33e787c 4919 2,
29028043 4920 NULL,
d33e787c 4921 &ssho_validate,
4922 },
4923
4924 {
e41960ac 4925 /* Q_SSHI - SET_SERVER_HOST_INTERNAL */
d33e787c 4926 "set_server_host_internal",
4927 "sshi",
c44ddfa7 4928 2,
d33e787c 4929 UPDATE,
7ac4c1b1 4930 "s",
03c05291 4931 SERVERHOSTS_TABLE,
5eaef520 4932 "serverhosts SET override = %s, success = %s, inprogress = %s, hosterror = %s, hosterrmsg = NVL('%s', CHR(0)), ltt = %s, lts = %s",
d33e787c 4933 sshi_fields,
4934 7,
5eaef520 4935 "service = UPPER('%s') AND mach_id = %d",
d33e787c 4936 2,
29028043 4937 NULL,
d33e787c 4938 &sshi_validate,
4939 },
4940
4941 {
03c05291 4942 /* Q_DSHI - DELETE_SERVER_HOST_INFO */
4943 "delete_server_host_info",
4944 "dshi",
c44ddfa7 4945 2,
d33e787c 4946 DELETE,
03c05291 4947 "sh",
4948 SERVERHOSTS_TABLE,
7ac48069 4949 NULL,
03c05291 4950 dshi_fields,
d33e787c 4951 0,
03c05291 4952 "service = UPPER('%s') AND mach_id = %d",
4953 2,
29028043 4954 NULL,
03c05291 4955 &dshi_validate,
d33e787c 4956 },
4957
4958 {
5eaef520 4959 /* Q_GSLO - GET_SERVER_LOCATIONS */
d33e787c 4960 "get_server_locations",
4961 "gslo",
c44ddfa7 4962 2,
d33e787c 4963 RETRIEVE,
4964 "sh",
03c05291 4965 SERVERHOSTS_TABLE,
4966 "sh.service, m.name FROM serverhosts sh, machine m",
d33e787c 4967 gslo_fields,
4968 2,
263a36d4 4969 "sh.service LIKE UPPER('%s') AND sh.mach_id = m.mach_id",
d33e787c 4970 1,
29028043 4971 "sh.service, m.name",
263a36d4 4972 NULL,
d33e787c 4973 },
4974
4975 {
5eaef520 4976 /* Q_GFSL - GET_FILESYS_BY_LABEL */
d33e787c 4977 "get_filesys_by_label",
4978 "gfsl",
c44ddfa7 4979 2,
d33e787c 4980 RETRIEVE,
4981 "fs",
03c05291 4982 FILESYS_TABLE,
4983 "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 4984 gfsl_fields,
4985 14,
263a36d4 4986 "fs.label LIKE '%s' AND fs.mach_id = m.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 4987 1,
29028043 4988 "fs.label",
5a8887d8 4989 &gfsl_validate,
d33e787c 4990 },
4991
4992 {
5eaef520 4993 /* Q_GFSM - GET_FILESYS_BY_MACHINE */
d33e787c 4994 "get_filesys_by_machine",
4995 "gfsm",
c44ddfa7 4996 2,
d33e787c 4997 RETRIEVE,
4998 "fs",
03c05291 4999 FILESYS_TABLE,
5000 "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 5001 gfsm_fields,
5002 14,
4e5ec77f 5003 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 5004 1,
29028043 5005 "fs.label",
d33e787c 5006 &gfsm_validate,
5007 },
5008
88343c5e 5009 {
5eaef520 5010 /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
88343c5e 5011 "get_filesys_by_nfsphys",
5012 "gfsn",
c44ddfa7 5013 2,
88343c5e 5014 RETRIEVE,
5015 "fs",
03c05291 5016 FILESYS_TABLE,
5017 "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 5018 gfsn_fields,
5019 14,
cc1bca5c 5020 "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 5021 2,
29028043 5022 "fs.label",
99e09b48 5023 &gfsn_validate,
88343c5e 5024 },
5025
d33e787c 5026 {
5eaef520 5027 /* Q_GFSG - GET_FILESYS_BY_GROUP */
d33e787c 5028 "get_filesys_by_group",
5029 "gfsg",
c44ddfa7 5030 2,
d33e787c 5031 RETRIEVE,
5032 "fs",
03c05291 5033 FILESYS_TABLE,
5034 "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 5035 gfsg_fields,
5036 14,
4e5ec77f 5037 "fs.owners = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 5038 1,
29028043 5039 "fs.label",
d33e787c 5040 &gfsg_validate,
5041 },
5042
4ffa124a 5043 {
76f86976 5044 /* Q_GFSP - GET_FILESYS_BY_PATH */
4ffa124a 5045 "get_filesys_by_path",
5046 "gfsp",
c44ddfa7 5047 2,
4ffa124a 5048 RETRIEVE,
5049 "fs",
03c05291 5050 FILESYS_TABLE,
5051 "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 5052 gfsp_fields,
5053 14,
263a36d4 5054 "fs.name LIKE '%s' AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = list_id",
4ffa124a 5055 1,
29028043 5056 "fs.label",
263a36d4 5057 &VDfix_modby,
4ffa124a 5058 },
5eaef520 5059
d33e787c 5060 {
45bf7573 5061 /* Q_AFIL - ADD_FILESYS */ /* uses prefetch_value() for filsys_id */
d33e787c 5062 "add_filesys",
5063 "afil",
c44ddfa7 5064 2,
d33e787c 5065 APPEND,
5066 "fs",
03c05291 5067 FILESYS_TABLE,
d4296047 5068 "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 5069 afil_fields,
5070 11,
45bf7573 5071 0,
d33e787c 5072 0,
29028043 5073 NULL,
d33e787c 5074 &afil_validate,
5075 },
5076
5077 {
5078 /* Q_UFIL - UPDATE_FILESYS */
5079 "update_filesys",
5080 "ufil",
c44ddfa7 5081 2,
d33e787c 5082 UPDATE,
5083 "fs",
03c05291 5084 FILESYS_TABLE,
d4296047 5085 "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 5086 ufil_fields,
5087 11,
4e5ec77f 5088 "filsys_id = %d",
d33e787c 5089 1,
29028043 5090 NULL,
5eaef520 5091 &ufil_validate,
d33e787c 5092 },
5093
5094 {
5095 /* Q_DFIL - DELETE_FILESYS */
5096 "delete_filesys",
5097 "dfil",
c44ddfa7 5098 2,
d33e787c 5099 DELETE,
5100 "fs",
03c05291 5101 FILESYS_TABLE,
7ac48069 5102 NULL,
d33e787c 5103 dfil_fields,
5104 0,
4e5ec77f 5105 "filsys_id = %d",
d33e787c 5106 1,
29028043 5107 NULL,
d33e787c 5108 &dfil_validate,
5109 },
5110
95127ba8 5111 {
5eaef520 5112 /* Q_GFGM - GET_FSGROUP_MEMBERS */
95127ba8 5113 "get_fsgroup_members",
5114 "gfgm",
c44ddfa7 5115 2,
95127ba8 5116 RETRIEVE,
5117 "fg",
03c05291 5118 FSGROUP_TABLE,
5119 "fs.label, fg.key FROM fsgroup fg, filesys fs",
95127ba8 5120 gfgm_fields,
5121 2,
4e5ec77f 5122 "fg.group_id = %d AND fs.filsys_id = fg.filsys_id",
95127ba8 5123 1,
29028043 5124 "fs.label, fg.key",
95127ba8 5125 &gfgm_validate,
5126 },
5127
5128 {
76f86976 5129 /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
95127ba8 5130 "add_filesys_to_fsgroup",
5131 "aftg",
c44ddfa7 5132 2,
95127ba8 5133 APPEND,
5134 "fg",
03c05291 5135 FSGROUP_TABLE,
5eaef520 5136 "INTO fsgroup (group_id, filsys_id, key) VALUES (%d, %d, '%s')",
95127ba8 5137 gfgm_fields,
76f86976 5138 3,
7ac48069 5139 NULL,
76f86976 5140 0,
29028043 5141 NULL,
95127ba8 5142 &aftg_validate,
5143 },
5144
5145 {
5146 /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
5147 "remove_filesys_from_fsgroup",
5148 "rffg",
c44ddfa7 5149 2,
95127ba8 5150 DELETE,
5151 "fg",
03c05291 5152 FSGROUP_TABLE,
7ac48069 5153 NULL,
95127ba8 5154 gfgm_fields,
5155 0,
4e5ec77f 5156 "group_id = %d AND filsys_id = %d",
95127ba8 5157 2,
29028043 5158 NULL,
95127ba8 5159 &aftg_validate,
5160 },
5161
d33e787c 5162 {
5eaef520 5163 /* Q_GANF - GET_ALL_NFSPHYS */
d33e787c 5164 "get_all_nfsphys",
5165 "ganf",
c44ddfa7 5166 2,
d33e787c 5167 RETRIEVE,
5168 "np",
03c05291 5169 NFSPHYS_TABLE,
5170 "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 5171 ganf_fields,
5172 9,
4e5ec77f 5173 "m.mach_id = np.mach_id",
d33e787c 5174 0,
29028043 5175 "m.name, np.dir",
5176 &VDfix_modby,
d33e787c 5177 },
5178
5179 {
5eaef520 5180 /* Q_GNFP - GET_NFSPHYS */
d33e787c 5181 "get_nfsphys",
5182 "gnfp",
c44ddfa7 5183 2,
d33e787c 5184 RETRIEVE,
5185 "np",
03c05291 5186 NFSPHYS_TABLE,
5187 "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 5188 gnfp_fields,
5189 9,
263a36d4 5190 "np.mach_id = %d AND np.dir LIKE '%s' AND m.mach_id = np.mach_id",
d33e787c 5191 2,
29028043 5192 "m.name, np.dir",
d33e787c 5193 &gnfp_validate,
5194 },
5195
5196 {
45bf7573 5197 /* Q_ANFP - ADD_NFSPHYS */ /* uses prefetch_value() for nfsphys_id */
d33e787c 5198 "add_nfsphys",
5199 "anfp",
c44ddfa7 5200 2,
d33e787c 5201 APPEND,
5202 "np",
03c05291 5203 NFSPHYS_TABLE,
5eaef520 5204 "INTO nfsphys (mach_id, dir, device, status, allocated, partsize, nfsphys_id) VALUES (%d, '%s', NVL('%s', CHR(0)), %s, %s, %s, %s)",
d33e787c 5205 ganf_fields,
5206 6,
45bf7573 5207 0,
d33e787c 5208 0,
29028043 5209 NULL,
d33e787c 5210 &anfp_validate,
5211 },
5212
5213 {
5214 /* Q_UNFP - UPDATE_NFSPHYS */
5215 "update_nfsphys",
5216 "unfp",
c44ddfa7 5217 2,
d33e787c 5218 UPDATE,
5219 "np",
03c05291 5220 NFSPHYS_TABLE,
5eaef520 5221 "nfsphys SET device = NVL('%s', CHR(0)), status = %s, allocated = %s, partsize = %s",
135dcb80 5222 ganf_fields,
d33e787c 5223 4,
5eaef520 5224 "mach_id = %d AND dir = '%s'",
d33e787c 5225 2,
29028043 5226 NULL,
45bf7573 5227 &unfp_validate,
d33e787c 5228 },
5229
5230 {
5231 /* Q_AJNF - ADJUST_NFSPHYS_ALLOCATION */
5232 "adjust_nfsphys_allocation",
5233 "ajnf",
c44ddfa7 5234 2,
d33e787c 5235 UPDATE,
5236 "np",
03c05291 5237 NFSPHYS_TABLE,
4e5ec77f 5238 "nfsphys SET allocated = allocated + %s",
99e09b48 5239 ajnf_fields,
d33e787c 5240 1,
4e5ec77f 5241 "mach_id = %d AND dir = '%s'",
d33e787c 5242 2,
29028043 5243 NULL,
f802fd0d 5244 &ajnf_validate,
d33e787c 5245 },
5246
5247 {
5248 /* Q_DNFP - DELETE_NFSPHYS */
5249 "delete_nfsphys",
5250 "dnfp",
c44ddfa7 5251 2,
d33e787c 5252 DELETE,
5253 "np",
03c05291 5254 NFSPHYS_TABLE,
7ac48069 5255 NULL,
d33e787c 5256 dnfp_fields,
5257 0,
4e5ec77f 5258 "mach_id = %d AND dir = '%s'",
d33e787c 5259 2,
29028043 5260 NULL,
d33e787c 5261 &dnfp_validate,
5262 },
5263
368be132 5264 {
5eaef520 5265 /* Q_GQOT - GET_QUOTA */
368be132 5266 "get_quota",
5267 "gqot",
c44ddfa7 5268 2,
368be132 5269 RETRIEVE,
5270 "q",
03c05291 5271 QUOTA_TABLE,
5272 "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 5273 gqot_fields,
5274 9,
263a36d4 5275 "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 5276 3,
29028043 5277 NULL,
368be132 5278 &gqot_validate,
5279 },
5280
5281 {
5eaef520 5282 /* Q_GQBF - GET_QUOTA_BY_FILESYS */
368be132 5283 "get_quota_by_filesys",
5284 "gqbf",
c44ddfa7 5285 2,
368be132 5286 RETRIEVE,
5287 "q",
03c05291 5288 QUOTA_TABLE,
5289 "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 5290 gqbf_fields,
5291 9,
263a36d4 5292 "fs.label LIKE '%s' AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
368be132 5293 1,
29028043 5294 "fs.label, q.type",
368be132 5295 &gqbf_validate,
5296 },
5297
5298 {
135dcb80 5299 /* Q_AQOT - ADD_QUOTA */ /* prefetch_filsys() gets last 1 value */
368be132 5300 "add_quota",
5301 "aqot",
c44ddfa7 5302 2,
368be132 5303 APPEND,
135dcb80 5304 0,
03c05291 5305 QUOTA_TABLE,
135dcb80 5306 "INTO quota (filsys_id, type, entity_id, quota, phys_id) VALUES ('%s', %d, %d, %s, %s)",
368be132 5307 aqot_fields,
135dcb80 5308 4,
7ac48069 5309 NULL,
76f86976 5310 0,
29028043 5311 NULL,
368be132 5312 &aqot_validate,
5313 },
5314
5315 {
5316 /* Q_UQOT - UPDATE_QUOTA */
5317 "update_quota",
5318 "uqot",
c44ddfa7 5319 2,
368be132 5320 UPDATE,
135dcb80 5321 0,
03c05291 5322 QUOTA_TABLE,
4e5ec77f 5323 "quota SET quota = %s",
368be132 5324 aqot_fields,
5325 1,
135dcb80 5326 0,
368be132 5327 3,
29028043 5328 NULL,
368be132 5329 &uqot_validate,
5330 },
5331
5332 {
5333 /* Q_DQOT - DELETE_QUOTA */
5334 "delete_quota",
5335 "dqot",
c44ddfa7 5336 2,
368be132 5337 DELETE,
135dcb80 5338 0,
03c05291 5339 QUOTA_TABLE,
7ac48069 5340 NULL,
368be132 5341 aqot_fields,
5342 0,
135dcb80 5343 0,
368be132 5344 3,
29028043 5345 NULL,
368be132 5346 &dqot_validate,
5347 },
5348
d33e787c 5349 {
5eaef520 5350 /* Q_GNFQ - GET_NFS_QUOTAS */
88343c5e 5351 "get_nfs_quota",
d33e787c 5352 "gnfq",
c44ddfa7 5353 2,
d33e787c 5354 RETRIEVE,
368be132 5355 "q",
03c05291 5356 QUOTA_TABLE,
5357 "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 5358 gnfq_fields,
5359 8,
263a36d4 5360 "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 5361 2,
29028043 5362 "fs.label, u.login",
d33e787c 5363 &gnfq_validate,
5364 },
5365
5366 {
5eaef520 5367 /* Q_GNQP - GET_NFS_QUOTAS_BY_PARTITION */
d33e787c 5368 "get_nfs_quotas_by_partition",
5369 "gnqp",
c44ddfa7 5370 2,
d33e787c 5371 RETRIEVE,
368be132 5372 "q",
03c05291 5373 QUOTA_TABLE,
5374 "fs.label, u.login, q.quota, np.dir, m.name FROM quota q, filesys fs, users u, nfsphys np, machine m",
d33e787c 5375 gnqp_fields,
5376 5,
263a36d4 5377 "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 5378 2,
29028043 5379 "fs.label",
263a36d4 5380 NULL,
d33e787c 5381 },
5382
d33e787c 5383 {
135dcb80 5384 /* Q_ANFQ - ADD_NFS_QUOTA */ /* prefetch_filsys() gets last 1 value */
d33e787c 5385 "add_nfs_quota",
5386 "anfq",
c44ddfa7 5387 2,
d33e787c 5388 APPEND,
135dcb80 5389 0,
03c05291 5390 QUOTA_TABLE,
135dcb80 5391 "INTO quota (type, filsys_id, entity_id, quota, phys_id ) VALUES ('USER', %d, %d, %s, %s)",
d33e787c 5392 anfq_fields,
135dcb80 5393 3,
7ac48069 5394 NULL,
76f86976 5395 0,
29028043 5396 NULL,
d33e787c 5397 &anfq_validate,
5398 },
5399
5400 {
5eaef520 5401 /* Q_UNFQ - UPDATE_NFS_QUOTA */
d33e787c 5402 "update_nfs_quota",
5403 "unfq",
c44ddfa7 5404 2,
d33e787c 5405 UPDATE,
135dcb80 5406 0,
03c05291 5407 QUOTA_TABLE,
4e5ec77f 5408 "quota SET quota = %s",
d33e787c 5409 anfq_fields,
5410 1,
135dcb80 5411 0,
d33e787c 5412 2,
29028043 5413 NULL,
d33e787c 5414 &unfq_validate,
5415 },
5416
5417 {
5418 /* Q_DNFQ - DELETE_NFS_QUOTA */
5419 "delete_nfs_quota",
5420 "dnfq",
c44ddfa7 5421 2,
d33e787c 5422 DELETE,
135dcb80 5423 0,
03c05291 5424 QUOTA_TABLE,
7ac48069 5425 NULL,
d33e787c 5426 anfq_fields,
5427 0,
135dcb80 5428 0,
d33e787c 5429 2,
29028043 5430 NULL,
d33e787c 5431 &dnfq_validate,
5432 },
5433
d33e787c 5434 {
d7ddc011 5435 /* Q_GZCL - GET_ZEPHYR_CLASS, v2 */
d33e787c 5436 "get_zephyr_class",
5437 "gzcl",
c44ddfa7 5438 2,
d33e787c 5439 RETRIEVE,
5440 "z",
03c05291 5441 ZEPHYR_TABLE,
5442 "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 5443 gzcl2_fields,
d33e787c 5444 12,
263a36d4 5445 "class LIKE '%s'",
d33e787c 5446 1,
29028043 5447 "class",
d33e787c 5448 &gzcl_validate,
03c05291 5449 },
d33e787c 5450
5451 {
d7ddc011 5452 /* Q_GZCL - GET_ZEPHYR_CLASS, v5 */
5453 "get_zephyr_class",
5454 "gzcl",
5455 5,
5456 RETRIEVE,
5457 "z",
5458 ZEPHYR_TABLE,
5459 "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",
5460 gzcl_fields,
5461 14,
5462 "class LIKE '%s'",
5463 1,
5464 "class",
5465 &gzcl_validate,
5466 },
5467
5468 {
5469 /* Q_AZCL - ADD_ZEPHYR_CLASS, v2 */
d33e787c 5470 "add_zephyr_class",
5471 "azcl",
c44ddfa7 5472 2,
d33e787c 5473 APPEND,
5474 "z",
03c05291 5475 ZEPHYR_TABLE,
5eaef520 5476 "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 5477 azcl2_fields,
d33e787c 5478 9,
5479 0,
5480 0,
29028043 5481 NULL,
d7ddc011 5482 &azcl2_validate,
5483 },
5484
5485 {
5486 /* Q_AZCL - ADD_ZEPHYR_CLASS, v5 */
5487 "add_zephyr_class",
5488 "azcl",
5489 5,
5490 APPEND,
5491 "z",
5492 ZEPHYR_TABLE,
5493 "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)",
5494 azcl_fields,
5495 11,
5496 0,
5497 0,
5498 NULL,
d33e787c 5499 &azcl_validate,
5eaef520 5500 },
d33e787c 5501
5502 {
d7ddc011 5503 /* Q_UZCL - UPDATE_ZEPHYR_CLASS, v2 */
d33e787c 5504 "update_zephyr_class",
5505 "uzcl",
c44ddfa7 5506 2,
d33e787c 5507 UPDATE,
5508 "z",
03c05291 5509 ZEPHYR_TABLE,
135dcb80 5510 "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 5511 uzcl2_fields,
d33e787c 5512 9,
99e09b48 5513 "class = '%s'",
d33e787c 5514 1,
29028043 5515 NULL,
d7ddc011 5516 &uzcl2_validate,
5517 },
5518
5519 {
5520 /* Q_UZCL - UPDATE_ZEPHYR_CLASS, v5 */
5521 "update_zephyr_class",
5522 "uzcl",
5523 5,
5524 UPDATE,
5525 "z",
5526 ZEPHYR_TABLE,
5527 "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",
5528 uzcl_fields,
5529 11,
5530 "class = '%s'",
5531 1,
5532 NULL,
d33e787c 5533 &uzcl_validate,
5eaef520 5534 },
d33e787c 5535
5536 {
5537 /* Q_DZCL - DELETE_ZEPHYR_CLASS */
5538 "delete_zephyr_class",
5539 "dzcl",
c44ddfa7 5540 2,
d33e787c 5541 DELETE,
5542 "z",
03c05291 5543 ZEPHYR_TABLE,
d33e787c 5544 0,
5545 uzcl_fields,
5546 0,
99e09b48 5547 "class = '%s'",
d33e787c 5548 1,
29028043 5549 NULL,
d33e787c 5550 &dzcl_validate,
5eaef520 5551 },
fd5b2340 5552
03c05291 5553 {
5eaef520 5554 /* Q_GSHA - GET_SERVER_HOST_ACCESS */
03c05291 5555 "get_server_host_access",
5556 "gsha",
c44ddfa7 5557 2,
03c05291 5558 RETRIEVE,
5559 "ha",
5560 HOSTACCESS_TABLE,
5561 "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",
5562 gsha_fields,
5563 6,
263a36d4 5564 "m.name LIKE UPPER('%s') AND ha.mach_id = m.mach_id",
03c05291 5565 1,
29028043 5566 "m.name",
03c05291 5567 &gsha_validate,
5568 },
5569
5570 {
5571 /* Q_ASHA - ADD_SERVER_HOST_ACCESS */
5572 "add_server_host_access",
5573 "asha",
c44ddfa7 5574 2,
03c05291 5575 APPEND,
5576 "ha",
5577 HOSTACCESS_TABLE,
5eaef520 5578 "INTO hostaccess (mach_id, acl_type, acl_id) VALUES (%d, '%s', %d)",
03c05291 5579 asha_fields,
5580 3,
5581 0,
5582 0,
29028043 5583 NULL,
03c05291 5584 &asha_validate,
5585 },
5586
5587 {
5588 /* Q_USHA - UPDATE_SERVER_HOST_ACCESS */
5589 "update_server_host_access",
5590 "usha",
c44ddfa7 5591 2,
03c05291 5592 UPDATE,
5593 "ha",
5594 HOSTACCESS_TABLE,
5595 "hostaccess SET acl_type = '%s', acl_id = %d",
5596 asha_fields,
5597 2,
5598 "mach_id = %d",
5599 1,
29028043 5600 NULL,
03c05291 5601 &asha_validate,
5602 },
5603
5604 {
5605 /* Q_DSHA - DELETE_SERVER_HOST_ACCESS */
5606 "delete_server_host_access",
5607 "dsha",
c44ddfa7 5608 2,
03c05291 5609 DELETE,
5610 "ha",
5611 HOSTACCESS_TABLE,
5612 0,
5613 asha_fields,
5614 0,
5615 "mach_id = %d",
5616 1,
29028043 5617 NULL,
03c05291 5618 &VDmach,
5619 },
5620
46b6f1f6 5621 {
5622 /* Q_GACL - GET_ACL */
5623 "get_acl",
5624 "gacl",
c44ddfa7 5625 2,
46b6f1f6 5626 RETRIEVE,
5627 "ac",
5628 ACL_TABLE,
5629 "m.name, ac.target, ac.kind, l.name FROM acl ac, machine m, list l",
5630 gacl_fields,
5631 4,
5632 "m.mach_id = %d AND m.mach_id = ac.mach_id AND ac.target LIKE '%s' AND l.list_id = ac.list_id",
5633 2,
5634 "m.name, ac.target, ac.kind",
5635 &gacl_validate,
5636 },
5637
5638 {
5639 /* Q_AACL - ADD_ACL */
5640 "add_acl",
5641 "aacl",
c44ddfa7 5642 2,
46b6f1f6 5643 APPEND,
5644 "ac",
5645 ACL_TABLE,
5646 "INTO acl (mach_id, target, kind, list_id) VALUES (%d, '%s', '%s', %d)",
5647 aacl_fields,
5648 4,
5649 0,
5650 0,
5651 NULL,
5652 &aacl_validate,
5653 },
5654
5655 {
5656 /* Q_DACL - DELETE_ACL */
5657 "delete_acl",
5658 "dacl",
c44ddfa7 5659 2,
46b6f1f6 5660 DELETE,
5661 "ac",
5662 ACL_TABLE,
5663 0,
5664 dacl_fields,
5665 0,
5666 "mach_id = %d AND target = '%s'",
5667 2,
5668 NULL,
5669 &gacl_validate,
5670 },
5671
d33e787c 5672 {
5673 /* Q_GSVC - GET_SERVICE */
5674 "get_service",
5675 "gsvc",
c44ddfa7 5676 2,
d33e787c 5677 RETRIEVE,
0c345c78 5678 "ss",
03c05291 5679 SERVICES_TABLE,
5680 "name, protocol, port, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM services",
fd5b2340 5681 gsvc_fields,
d33e787c 5682 7,
69eb9470 5683 "name LIKE '%s' AND protocol LIKE '%s'",
5684 2,
29028043 5685 "name",
263a36d4 5686 &VDfix_modby,
d33e787c 5687 },
5688
5689 {
5690 /* Q_ASVC - ADD_SERVICE */
5691 "add_service",
5692 "asvc",
c44ddfa7 5693 2,
d33e787c 5694 APPEND,
0c345c78 5695 "ss",
03c05291 5696 SERVICES_TABLE,
5eaef520 5697 "INTO services (name, protocol, port, description) VALUES ('%s', '%s', %s, NVL('%s', CHR(0)))",
fd5b2340 5698 asvc_fields,
d33e787c 5699 4,
7ac48069 5700 NULL,
d33e787c 5701 0,
29028043 5702 NULL,
d33e787c 5703 &asvc_validate,
5704 },
5705
5706 {
5707 /* Q_DSVC - DELETE_SERVICE */
5708 "delete_service",
5709 "dsvc",
c44ddfa7 5710 2,
d33e787c 5711 DELETE,
0c345c78 5712 "ss",
03c05291 5713 SERVICES_TABLE,
d33e787c 5714 0,
69eb9470 5715 dsvc_fields,
d33e787c 5716 0,
69eb9470 5717 "name = '%s' AND protocol = '%s'",
5718 2,
29028043 5719 NULL,
69eb9470 5720 &dsvc_validate,
d33e787c 5721 },
fd5b2340 5722
d33e787c 5723 {
2884200f 5724 /* Q_GPRN - GET_PRINTER */
5725 "get_printer",
5726 "gprn",
c44ddfa7 5727 2,
d33e787c 5728 RETRIEVE,
2884200f 5729 "pr",
5730 PRINTERS_TABLE,
e5a63571 5731 "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 5732 gprn_fields,
e5a63571 5733 19,
2884200f 5734 "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 5735 1,
2884200f 5736 "pr.name",
5737 &VDfix_modby,
d33e787c 5738 },
5739
5740 {
2884200f 5741 /* Q_GPBD - GET_PRINTER_BY_DUPLEXNAME */
5742 "get_printer_by_duplexname",
5743 "gpbd",
c44ddfa7 5744 2,
2884200f 5745 RETRIEVE,
5746 "pr",
5747 PRINTERS_TABLE,
e5a63571 5748 "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 5749 gpbd_fields,
e5a63571 5750 19,
2884200f 5751 "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",
5752 1,
5753 "pr.name",
5754 &VDfix_modby,
fd5b2340 5755 },
5756
5757 {
2884200f 5758 /* Q_GPBE - GET_PRINTER_BY_ETHERNET */
5759 "get_printer_by_ethernet",
5760 "gpbe",
c44ddfa7 5761 2,
2884200f 5762 RETRIEVE,
5763 "pr",
5764 PRINTERS_TABLE,
e5a63571 5765 "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 5766 gpbd_fields,
e5a63571 5767 19,
59841cdb 5768 "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 5769 1,
2884200f 5770 "pr.name",
5771 &VDfix_modby,
fd5b2340 5772 },
5773
5774 {
2884200f 5775 /* Q_GPBH - GET_PRINTER_BY_HOSTNAME */
5776 "get_printer_by_hostname",
5777 "gpbh",
c44ddfa7 5778 2,
fd5b2340 5779 RETRIEVE,
2884200f 5780 "pr",
5781 PRINTERS_TABLE,
e5a63571 5782 "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 5783 gpbh_fields,
e5a63571 5784 19,
2884200f 5785 "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 5786 1,
2884200f 5787 "pr.name",
263a36d4 5788 &VDfix_modby,
d33e787c 5789 },
5790
5791 {
2884200f 5792 /* Q_GPBR - GET_PRINTER_BY_RM */
5793 "get_printer_by_rm",
5794 "gpbr",
c44ddfa7 5795 2,
2884200f 5796 RETRIEVE,
5797 "pr",
5798 PRINTERS_TABLE,
e5a63571 5799 "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 5800 gpbr_fields,
e5a63571 5801 19,
2884200f 5802 "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 5803 1,
2884200f 5804 "pr.name",
5805 &VDfix_modby,
d33e787c 5806 },
5807
012fc215 5808 {
2884200f 5809 /* Q_GPBL - GET_PRINTER_BY_LOCATION */
5810 "get_printer_by_location",
5811 "gpbl",
c44ddfa7 5812 2,
012fc215 5813 RETRIEVE,
2884200f 5814 "pr",
5815 PRINTERS_TABLE,
e5a63571 5816 "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 5817 gpbl_fields,
e5a63571 5818 19,
2884200f 5819 "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",
5820 1,
5821 "pr.name",
5822 &VDfix_modby,
5823 },
5824
5825 {
5826 /* Q_GPBC - GET_PRINTER_BY_CONTACT */
5827 "get_printer_by_contact",
5828 "gpbc",
c44ddfa7 5829 2,
2884200f 5830 RETRIEVE,
5831 "pr",
5832 PRINTERS_TABLE,
e5a63571 5833 "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 5834 gpbc_fields,
e5a63571 5835 19,
2884200f 5836 "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 5837 1,
2884200f 5838 "pr.name",
263a36d4 5839 &VDfix_modby,
012fc215 5840 },
5841
5842 {
2884200f 5843 /* Q_APRN - ADD_PRINTER */
5844 "add_printer",
5845 "aprn",
c44ddfa7 5846 2,
012fc215 5847 APPEND,
2884200f 5848 "pr",
5849 PRINTERS_TABLE,
e5a63571 5850 "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 5851 aprn_fields,
e5a63571 5852 16,
012fc215 5853 0,
5854 0,
29028043 5855 NULL,
2884200f 5856 &aprn_validate,
012fc215 5857 },
5858
1a9a0a59 5859 {
5860 /* Q_UPRN - UPDATE_PRINTER */
5861 "update_printer",
5862 "uprn",
c44ddfa7 5863 2,
1a9a0a59 5864 UPDATE,
5865 "pr",
5866 PRINTERS_TABLE,
5867 "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))",
5868 uprn_fields,
5869 16,
5870 0,
5871 0,
5872 NULL,
5873 &uprn_validate,
5874 },
5875
012fc215 5876 {
2884200f 5877 /* Q_DPRN - DELETE_PRINTER */
5878 "delete_printer",
5879 "dprn",
c44ddfa7 5880 2,
012fc215 5881 DELETE,
2884200f 5882 "pr",
5883 PRINTERS_TABLE,
012fc215 5884 0,
2884200f 5885 aprn_fields,
012fc215 5886 0,
99e09b48 5887 "name = '%s'",
012fc215 5888 1,
29028043 5889 NULL,
2884200f 5890 &dprn_validate,
012fc215 5891 },
5892
1a9a0a59 5893 {
5894 /* Q_GPSV - GET_PRINT_SERVER */
5895 "get_print_server",
5896 "gpsv",
c44ddfa7 5897 2,
1a9a0a59 5898 RETRIEVE,
5899 "ps",
5900 PRINTSERVERS_TABLE,
5901 "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",
5902 gpsv_fields,
5903 9,
5904 "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",
5905 1,
5906 NULL,
5907 &gpsv_validate,
5908 },
5909
5910 {
5911 /* Q_APSV - ADD_PRINT_SERVER */
5912 "add_print_server",
5913 "apsv",
c44ddfa7 5914 2,
1a9a0a59 5915 APPEND,
5916 "ps",
5917 PRINTSERVERS_TABLE,
5918 "INTO printservers (mach_id, kind, printer_types, owner_type, owner_id, lpc_acl) VALUES (%d, '%s', %d, '%s', %d, %d)",
5919 apsv_fields,
5920 6,
5921 0,
5922 0,
5923 NULL,
5924 &apsv_validate,
5925 },
5926
5927 {
5928 /* Q_UPSV - UPDATE_PRINT_SERVER */
5929 "update_print_server",
5930 "upsv",
c44ddfa7 5931 2,
1a9a0a59 5932 UPDATE,
5933 "ps",
5934 PRINTSERVERS_TABLE,
5935 "printservers SET kind = '%s', printer_types = %d, owner_type = '%s', owner_id = %d, lpc_acl = %d",
5936 apsv_fields,
5937 5,
5938 "mach_id = %d",
5939 1,
5940 NULL,
5941 &apsv_validate,
5942 },
5943
5944 {
5945 /* Q_DPSV - DELETE_PRINT_SERVER */
5946 "delete_print_server",
5947 "dpsv",
c44ddfa7 5948 2,
1a9a0a59 5949 DELETE,
5950 "ps",
5951 PRINTSERVERS_TABLE,
5952 0,
5953 dpsv_fields,
5954 0,
5955 "mach_id = %d",
5956 1,
5957 NULL,
5958 &dpsv_validate,
5959 },
5960
d33e787c 5961 {
5962 /* Q_GALI - GET_ALIAS */
5963 "get_alias",
5964 "gali",
c44ddfa7 5965 2,
d33e787c 5966 RETRIEVE,
5967 "a",
03c05291 5968 ALIAS_TABLE,
5969 "name, type, trans FROM alias",
d33e787c 5970 gali_fields,
5971 3,
263a36d4 5972 "name LIKE '%s' AND type LIKE '%s' AND trans LIKE '%s'",
d33e787c 5973 3,
29028043 5974 "type, name, trans",
263a36d4 5975 NULL,
d33e787c 5976 },
5977
5978 {
5979 /* Q_AALI - ADD_ALIAS */
5980 "add_alias",
5981 "aali",
c44ddfa7 5982 2,
d33e787c 5983 APPEND,
5984 "a",
03c05291 5985 ALIAS_TABLE,
4e5ec77f 5986 "INTO alias (name, type, trans) VALUES ('%s', '%s', '%s')",
d33e787c 5987 aali_fields,
5988 3,
7ac48069 5989 NULL,
d33e787c 5990 0,
29028043 5991 NULL,
d33e787c 5992 &aali_validate,
5993 },
5994
5995 {
5996 /* Q_DALI - DELETE_ALIAS */
5997 "delete_alias",
5998 "dali",
c44ddfa7 5999 2,
d33e787c 6000 DELETE,
6001 "a",
03c05291 6002 ALIAS_TABLE,
7ac48069 6003 NULL,
d33e787c 6004 aali_fields,
6005 0,
5eaef520 6006 "name = '%s' AND type = '%s' AND trans = '%s'",
d33e787c 6007 3,
29028043 6008 NULL,
d33e787c 6009 &dali_validate,
6010 },
6011
6012 {
6013 /* Q_GVAL - GET_VALUE */
6014 "get_value",
6015 "gval",
c44ddfa7 6016 2,
d33e787c 6017 RETRIEVE,
0c345c78 6018 "val",
03c05291 6019 NUMVALUES_TABLE,
6020 "value FROM numvalues",
d33e787c 6021 gval_fields,
6022 1,
03c05291 6023 "name = '%s'",
d33e787c 6024 1,
29028043 6025 NULL,
d33e787c 6026 &gval_validate,
6027 },
6028
6029 {
6030 /* Q_AVAL - ADD_VALUE */
6031 "add_value",
6032 "aval",
c44ddfa7 6033 2,
d33e787c 6034 APPEND,
0c345c78 6035 "val",
03c05291 6036 NUMVALUES_TABLE,
4e5ec77f 6037 "INTO numvalues (name, value) VALUES ('%s', %s)",
d33e787c 6038 aval_fields,
6039 2,
7ac48069 6040 NULL,
d33e787c 6041 0,
29028043 6042 NULL,
d33e787c 6043 &aval_validate,
6044 },
6045
6046 {
6047 /* Q_UVAL - UPDATE_VALUE */
6048 "update_value",
6049 "uval",
c44ddfa7 6050 2,
d33e787c 6051 UPDATE,
0c345c78 6052 "val",
03c05291 6053 NUMVALUES_TABLE,
4e5ec77f 6054 "numvalues SET value = %s",
d33e787c 6055 aval_fields,
6056 1,
99e09b48 6057 "name = '%s'",
d33e787c 6058 1,
29028043 6059 NULL,
d33e787c 6060 &aval_validate,
6061 },
6062
6063 {
6064 /* Q_DVAL - DELETE_VALUE */
6065 "delete_value",
6066 "dval",
c44ddfa7 6067 2,
d33e787c 6068 DELETE,
0c345c78 6069 "val",
03c05291 6070 NUMVALUES_TABLE,
7ac48069 6071 NULL,
d33e787c 6072 dval_fields,
6073 0,
99e09b48 6074 "name = '%s'",
d33e787c 6075 1,
29028043 6076 NULL,
d33e787c 6077 &aval_validate,
6078 },
6079
6080 {
6081 /* Q_GATS - GET_ALL_TABLE_STATS */
6082 "get_all_table_stats",
6083 "gats",
c44ddfa7 6084 2,
d33e787c 6085 RETRIEVE,
6086 "tbs",
03c05291 6087 TBLSTATS_TABLE,
6088 "table_name, appends, updates, deletes, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS') FROM tblstats",
d33e787c 6089 gats_fields,
45bf7573 6090 5,
7ac48069 6091 NULL,
d33e787c 6092 0,
29028043 6093 "table_name",
d33e787c 6094 0,
6095 },
6096
2962e9ec 6097 {
6098 /* Q__SDL - _SET_DEBUG_LEVEL */
6099 "_set_debug_level",
6100 "_sdl",
c44ddfa7 6101 2,
2962e9ec 6102 UPDATE,
7ac48069 6103 NULL,
03c05291 6104 0,
7ac48069 6105 NULL,
2962e9ec 6106 _sdl_fields,
6107 1,
7ac48069 6108 NULL,
2962e9ec 6109 0,
29028043 6110 NULL,
2962e9ec 6111 &_sdl_validate,
6112 },
6113
d33e787c 6114};
6115
c44ddfa7 6116int QueryCount = (sizeof(Queries) / sizeof(struct query));
This page took 2.290557 seconds and 5 git commands to generate.