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