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