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