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