]> andersk Git - moira.git/blame - server/queries2.c
add the MR_SETVERSION rpc call, and prototype the corresponding
[moira.git] / server / queries2.c
CommitLineData
7ac48069 1/* $Id$
d33e787c 2 *
7ac48069 3 * This file defines the query dispatch table for version 2 of the protocol
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
e41960ac 2456/* Note: For any query which uses prefetch_value, the vcnt should be
2457 * one less than the number of %-format specifiers in the tlist.
2458 */
2459
d33e787c 2460struct query Queries2[] = {
2461 {
2462 /* Q_GALO - GET_ALL_LOGINS */
2463 "get_all_logins",
2464 "galo",
2465 RETRIEVE,
2466 "u",
03c05291 2467 USERS_TABLE,
2468 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
d33e787c 2469 galo_fields,
2470 6,
0c345c78 2471 "u.users_id != 0",
d33e787c 2472 0,
29028043 2473 "u.login",
2474 0,
d33e787c 2475 },
5eaef520 2476
d33e787c 2477 {
2478 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS */
2479 "get_all_active_logins",
2480 "gaal",
2481 RETRIEVE,
2482 "u",
03c05291 2483 USERS_TABLE,
2484 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
d33e787c 2485 galo_fields,
2486 6,
0c345c78 2487 "u.status = 1",
d33e787c 2488 0,
29028043 2489 "u.login",
2490 0,
d33e787c 2491 },
5eaef520 2492
4ffa124a 2493 {
0c345c78 2494 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN */
2495 "get_user_account_by_login",
2496 "gual",
2497 RETRIEVE,
2498 "u",
03c05291 2499 USERS_TABLE,
2500 "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 2501 gual_fields,
2502 15,
263a36d4 2503 "u.login LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 2504 1,
29028043 2505 "u.login",
0c345c78 2506 &gubl_validate,
4ffa124a 2507 },
5eaef520 2508
4ffa124a 2509 {
0c345c78 2510 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID */
2511 "get_user_account_by_uid",
2512 "guau",
2513 RETRIEVE,
2514 "u",
03c05291 2515 USERS_TABLE,
2516 "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 2517 guau_fields,
2518 15,
03c05291 2519 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 2520 1,
29028043 2521 "u.login",
0c345c78 2522 &gubu_validate,
4ffa124a 2523 },
5eaef520 2524
4ffa124a 2525 {
0c345c78 2526 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME */
2527 "get_user_account_by_name",
2528 "guan",
2529 RETRIEVE,
2530 "u",
03c05291 2531 USERS_TABLE,
2532 "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 2533 guan_fields,
2534 15,
263a36d4 2535 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0 and u.comments = str.string_id",
0c345c78 2536 2,
29028043 2537 "u.login",
60452f41 2538 &guan_validate,
4ffa124a 2539 },
5eaef520 2540
4ffa124a 2541 {
0c345c78 2542 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS */
2543 "get_user_account_by_class",
2544 "guac",
2545 RETRIEVE,
2546 "u",
03c05291 2547 USERS_TABLE,
2548 "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 2549 guac_fields,
2550 15,
03c05291 2551 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 2552 1,
29028043 2553 "u.login",
2554 &VDfix_modby,
4ffa124a 2555 },
5eaef520 2556
4ffa124a 2557 {
0c345c78 2558 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID */
2559 "get_user_account_by_id",
2560 "guai",
2561 RETRIEVE,
2562 "u",
03c05291 2563 USERS_TABLE,
2564 "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 2565 guam_fields,
2566 15,
263a36d4 2567 "u.clearid LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 2568 1,
29028043 2569 "u.login",
263a36d4 2570 &VDfix_modby,
4ffa124a 2571 },
5eaef520 2572
d33e787c 2573 {
2574 /* Q_GUBL - GET_USER_BY_LOGIN */
2575 "get_user_by_login",
2576 "gubl",
2577 RETRIEVE,
2578 "u",
5eaef520 2579 USERS_TABLE,
03c05291 2580 "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 2581 gubl_fields,
2582 12,
263a36d4 2583 "u.login LIKE '%s' AND u.users_id != 0",
d33e787c 2584 1,
29028043 2585 "u.login",
f9f5c199 2586 &gubl_validate,
d33e787c 2587 },
5eaef520 2588
d33e787c 2589 {
2590 /* Q_GUBU - GET_USER_BY_UID */
2591 "get_user_by_uid",
2592 "gubu",
2593 RETRIEVE,
2594 "u",
03c05291 2595 USERS_TABLE,
2596 "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 2597 gubu_fields,
2598 12,
03c05291 2599 "u.unix_uid = %s AND u.users_id != 0",
d33e787c 2600 1,
29028043 2601 "u.login",
f9f5c199 2602 &gubu_validate,
d33e787c 2603 },
5eaef520 2604
d33e787c 2605 {
2606 /* Q_GUBN - GET_USER_BY_NAME */
2607 "get_user_by_name",
2608 "gubn",
2609 RETRIEVE,
2610 "u",
03c05291 2611 USERS_TABLE,
2612 "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 2613 gubn_fields,
2614 12,
263a36d4 2615 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0",
d33e787c 2616 2,
29028043 2617 "u.login",
99e09b48 2618 &gubn_validate,
d33e787c 2619 },
5eaef520 2620
d33e787c 2621 {
2622 /* Q_GUBC - GET_USER_BY_CLASS */
2623 "get_user_by_class",
2624 "gubc",
2625 RETRIEVE,
2626 "u",
03c05291 2627 USERS_TABLE,
2628 "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 2629 gubc_fields,
2630 12,
03c05291 2631 "u.type = UPPER('%s') AND u.users_id != 0",
d33e787c 2632 1,
29028043 2633 "u.login",
2634 &VDfix_modby,
d33e787c 2635 },
5eaef520 2636
d33e787c 2637 {
2638 /* Q_GUBM - GET_USER_BY_MITID */
2639 "get_user_by_mitid",
2640 "gubm",
2641 RETRIEVE,
2642 "u",
03c05291 2643 USERS_TABLE,
2644 "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 2645 gubm_fields,
2646 12,
263a36d4 2647 "u.clearid LIKE '%s' AND u.users_id != 0",
d33e787c 2648 1,
29028043 2649 "u.login",
263a36d4 2650 &VDfix_modby,
d33e787c 2651 },
5eaef520 2652
4ffa124a 2653 {
2654 /* Q_AUAC - ADD_USER_ACCOUNT */ /* uses prefetch_value() for users_id */
2655 "add_user_account",
2656 "auac",
2657 APPEND,
2658 "u",
03c05291 2659 USERS_TABLE,
5eaef520 2660 "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 2661 auac_fields,
2662 12,
7ac48069 2663 NULL,
4ffa124a 2664 0,
29028043 2665 NULL,
4ffa124a 2666 &auac_validate,
2667 },
5eaef520 2668
d33e787c 2669 {
45bf7573 2670 /* Q_AUSR - ADD_USER */ /* uses prefetch_value() for users_id */
d33e787c 2671 "add_user",
2672 "ausr",
2673 APPEND,
2674 "u",
03c05291 2675 USERS_TABLE,
5eaef520 2676 "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 2677 auac_fields,
d33e787c 2678 9,
45bf7573 2679 0,
d33e787c 2680 0,
29028043 2681 NULL,
d33e787c 2682 &ausr_validate,
2683 },
5eaef520 2684
d33e787c 2685 {
2686 /* Q_RUSR - REGISTER_USER */
2687 "register_user",
2688 "rusr",
2689 APPEND,
2690 0,
2691 0,
2692 0,
2693 rusr_fields,
2694 3,
2695 0,
2696 0,
29028043 2697 NULL,
d33e787c 2698 &rusr_validate,
2699 },
5eaef520 2700
4ffa124a 2701 {
2702 /* Q_UUAC - UPDATE_USER_ACCOUNT */
2703 "update_user_account",
2704 "uuac",
2705 UPDATE,
2706 "u",
03c05291 2707 USERS_TABLE,
5eaef520 2708 "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 2709 uuac_fields,
2710 12,
2711 "users_id = %d",
2712 1,
29028043 2713 NULL,
4ffa124a 2714 &uuac_validate,
2715 },
5eaef520 2716
d33e787c 2717 {
2718 /* Q_UUSR - UPDATE_USER */
2719 "update_user",
2720 "uusr",
2721 UPDATE,
2722 "u",
03c05291 2723 USERS_TABLE,
5eaef520 2724 "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 2725 uuac_fields,
d33e787c 2726 9,
4e5ec77f 2727 "users_id = %d",
d33e787c 2728 1,
29028043 2729 NULL,
d33e787c 2730 &uusr_validate,
2731 },
2732
2733 {
2734 /* Q_UUSH - UPDATE_USER_SHELL */
2735 "update_user_shell",
2736 "uush",
2737 UPDATE,
2738 "u",
03c05291 2739 USERS_TABLE,
5eaef520 2740 "users SET shell = '%s'",
d33e787c 2741 uush_fields,
2742 1,
4e5ec77f 2743 "users_id = %d",
d33e787c 2744 1,
29028043 2745 NULL,
d33e787c 2746 &uush_validate,
2747 },
2748
2749 {
2750 /* Q_UUST - UPDATE_USER_STATUS */
2751 "update_user_status",
2752 "uust",
2753 UPDATE,
2754 "u",
03c05291 2755 USERS_TABLE,
4e5ec77f 2756 "users SET status = %s",
d33e787c 2757 uust_fields,
2758 1,
4e5ec77f 2759 "users_id = %d",
d33e787c 2760 1,
29028043 2761 NULL,
d33e787c 2762 &uust_validate,
2763 },
2764
4ffa124a 2765 {
2766 /* Q_UUSS - UPDATE_USER_SECURITY_STATUS */
2767 "update_user_security_status",
2768 "uuss",
2769 UPDATE,
2770 "u",
03c05291 2771 USERS_TABLE,
135dcb80 2772 "users SET secure = %s",
4ffa124a 2773 uuss_fields,
2774 1,
2775 "users_id = %d",
2776 1,
29028043 2777 NULL,
4ffa124a 2778 &uust_validate,
2779 },
5eaef520 2780
d33e787c 2781 {
5eaef520 2782 /* Q_DUSR - DELETE_USER */
d33e787c 2783 "delete_user",
2784 "dusr",
2785 DELETE,
2786 "u",
03c05291 2787 USERS_TABLE,
7ac48069 2788 NULL,
d33e787c 2789 dusr_fields,
2790 0,
4e5ec77f 2791 "users_id = %d",
d33e787c 2792 1,
29028043 2793 NULL,
d33e787c 2794 &dusr_validate,
2795 },
2796
012fc215 2797 {
5eaef520 2798 /* Q_GKUM - GET_KERBEROS_USER_MAP */
012fc215 2799 "get_kerberos_user_map",
2800 "gkum",
2801 RETRIEVE,
2802 "k",
03c05291 2803 KRBMAP_TABLE,
2804 "u.login, str.string FROM krbmap km, users u, strings str",
012fc215 2805 gkum_fields,
2806 2,
263a36d4 2807 "u.login LIKE '%s' AND str.string LIKE '%s' AND km.users_id = u.users_id AND km.string_id = str.string_id",
012fc215 2808 2,
29028043 2809 "u.login, str.string",
263a36d4 2810 NULL,
012fc215 2811 },
2812
2813 {
2814 /* Q_AKUM - ADD_KERBEROS_USER_MAP */
2815 "add_kerberos_user_map",
2816 "akum",
2817 APPEND,
2818 "k",
03c05291 2819 KRBMAP_TABLE,
99e09b48 2820 "INTO krbmap (users_id, string_id) VALUES (%d, %d)",
012fc215 2821 akum_fields,
2822 2,
2823 0,
2824 0,
29028043 2825 NULL,
012fc215 2826 &akum_validate,
2827 },
2828
2829 {
2830 /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
2831 "delete_kerberos_user_map",
2832 "dkum",
2833 DELETE,
2834 "k",
03c05291 2835 KRBMAP_TABLE,
012fc215 2836 0,
2837 akum_fields,
2838 0,
99e09b48 2839 "users_id = %d AND string_id = %d",
012fc215 2840 2,
29028043 2841 NULL,
012fc215 2842 &dkum_validate,
2843 },
2844
d33e787c 2845 {
2846 /* Q_GFBL - GET_FINGER_BY_LOGIN */
2847 "get_finger_by_login",
2848 "gfbl",
2849 RETRIEVE,
2850 "u",
03c05291 2851 USERS_TABLE,
2852 "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 2853 gfbl_fields,
2854 12,
03c05291 2855 "users_id = %d",
d33e787c 2856 1,
29028043 2857 "login",
d33e787c 2858 &gfbl_validate,
2859 },
2860
2861 {
2862 /* Q_UFBL - UPDATE_FINGER_BY_LOGIN */
2863 "update_finger_by_login",
2864 "ufbl",
2865 UPDATE,
2866 "u",
03c05291 2867 USERS_TABLE,
5eaef520 2868 "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 2869 ufbl_fields,
2870 8,
4e5ec77f 2871 "users_id = %d",
d33e787c 2872 1,
29028043 2873 NULL,
d33e787c 2874 &ufbl_validate,
2875 },
2876
2877 {
2878 /* Q_GPOB - GET_POBOX */
2879 "get_pobox",
2880 "gpob",
2881 RETRIEVE,
2882 "u",
03c05291 2883 USERS_TABLE,
d6d830a1 2884 "login, potype, users_id, CHR(0), TO_CHAR(pmodtime, 'DD-mon-YYYY HH24:MI:SS'), pmodby, pmodwith FROM users",
d33e787c 2885 gpob_fields,
d6d830a1 2886 7,
03c05291 2887 "users_id = %d",
d33e787c 2888 1,
29028043 2889 "login",
d33e787c 2890 &gpob_validate,
2891 },
2892
2893 {
2894 /* Q_GAPO - GET_ALL_POBOXES */
2895 "get_all_poboxes",
2896 "gapo",
2897 RETRIEVE,
2898 "u",
03c05291 2899 USERS_TABLE,
2900 "login, potype, pop_id || ':' || box_id FROM users",
d33e787c 2901 gpox_fields,
2902 3,
03c05291 2903 "potype != 'NONE'",
d33e787c 2904 0,
29028043 2905 "login",
d33e787c 2906 &gpox_validate,
2907 },
5eaef520 2908
d33e787c 2909 {
2910 /* Q_GPOP - GET_POBOXES_POP */
2911 "get_poboxes_pop",
2912 "gpop",
2913 RETRIEVE,
2914 "u",
03c05291 2915 USERS_TABLE,
17cb3de8 2916 "login, potype, users_id FROM users",
d33e787c 2917 gpox_fields,
2918 3,
03c05291 2919 "potype = 'POP'",
d33e787c 2920 0,
29028043 2921 "login",
d33e787c 2922 &gpox_validate
2923 },
2924
2925 {
2926 /* Q_GPOF - GET_POBOXES_SMTP */
2927 "get_poboxes_smtp",
2928 "gpos",
2929 RETRIEVE,
2930 "u",
03c05291 2931 USERS_TABLE,
17cb3de8 2932 "login, potype, users_id FROM users",
d33e787c 2933 gpox_fields,
2934 3,
03c05291 2935 "potype = 'SMTP'",
d33e787c 2936 0,
29028043 2937 "login",
d33e787c 2938 &gpox_validate
2939 },
2940
2941 {
2942 /* Q_SPOB - SET_POBOX */
2943 "set_pobox",
2944 "spob",
2945 UPDATE,
2946 0,
03c05291 2947 USERS_TABLE,
d33e787c 2948 0,
2949 spob_fields,
2950 3,
7ac48069 2951 NULL,
d33e787c 2952 0,
29028043 2953 NULL,
d33e787c 2954 &spob_validate,
2955 },
2956
2957 {
2958 /* Q_SPOP - SET_POBOX_POP */
2959 "set_pobox_pop",
2960 "spop",
2961 UPDATE,
8b0fdf05 2962 0,
03c05291 2963 USERS_TABLE,
17cb3de8 2964 0,
d33e787c 2965 spob_fields,
8b0fdf05 2966 1,
17cb3de8 2967 NULL,
2968 0,
29028043 2969 NULL,
d33e787c 2970 &spop_validate,
2971 },
2972
2973 {
2974 /* Q_DPOB - DELETE_POBOX */
2975 "delete_pobox",
2976 "dpob",
2977 UPDATE,
2978 "u",
03c05291 2979 USERS_TABLE,
2980 "users SET potype = 'NONE'",
2981 spob_fields,
2982 0,
2983 "users_id = %d",
d33e787c 2984 1,
29028043 2985 NULL,
03c05291 2986 &dpob_validate,
d33e787c 2987 },
2988
2989 {
a66a2204 2990 /* Q_GHST - GET_HOST */
2991 "get_host",
2992 "ghst",
2993 RETRIEVE,
2994 "m",
03c05291 2995 MACHINE_TABLE,
2996 "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 2997 ghst_fields,
2998 21,
1fa08fc4 2999 "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 3000 4,
29028043 3001 "m.name",
a66a2204 3002 &ghst_validate,
3003 },
3004
9333756a 3005 {
3006 /* Q_GHBH - GET_HOST_BY_HWADDR */
3007 "get_host_by_hwaddr",
3008 "ghbh",
3009 RETRIEVE,
3010 "m",
3011 MACHINE_TABLE,
3012 "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",
3013 ghst_fields,
3014 21,
3015 "m.hwaddr LIKE LOWER('%s') AND m.mach_id != 0 AND s.snet_id = m.snet_id",
3016 1,
3017 "m.name",
3018 NULL,
3019 },
3020
2884200f 3021 {
3022 /* Q_GHHA - GET_HOST_HWADDR */
3023 "get_host_hwaddr",
3024 "ghha",
3025 RETRIEVE,
3026 "m",
3027 MACHINE_TABLE,
3028 "m.hwaddr FROM machine m",
3029 ghha_fields,
3030 1,
3031 "m.name LIKE UPPER('%s')",
3032 1,
3033 NULL,
3034 NULL,
3035 },
3036
a66a2204 3037 {
3038 /* Q_AHST - ADD_HOST */ /* uses prefetch_value() for mach_id */
3039 "add_host",
3040 "ahst",
d33e787c 3041 APPEND,
3042 "m",
03c05291 3043 MACHINE_TABLE,
5eaef520 3044 "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 3045 ahst_fields,
3046 14,
45bf7573 3047 0,
d33e787c 3048 0,
29028043 3049 NULL,
a66a2204 3050 &ahst_validate,
d33e787c 3051 },
3052
3053 {
a66a2204 3054 /* Q_UHST - UPDATE_HOST */
3055 "update_host",
3056 "uhst",
d33e787c 3057 UPDATE,
3058 "m",
03c05291 3059 MACHINE_TABLE,
5eaef520 3060 "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 3061 uhst_fields,
3062 14,
4e5ec77f 3063 "mach_id = %d",
d33e787c 3064 1,
29028043 3065 NULL,
a66a2204 3066 &uhst_validate,
d33e787c 3067 },
3068
2884200f 3069 {
3070 /* Q_UHHA - UPDATE_HOST_HWADDR */
3071 "update_host_hwaddr",
3072 "uhha",
3073 UPDATE,
3074 "m",
3075 MACHINE_TABLE,
1fdf882a 3076 "machine SET hwaddr = NVL('%s', CHR(0))",
2884200f 3077 uhha_fields,
3078 1,
3079 "mach_id = %d",
3080 1,
3081 NULL,
3082 &uhha_validate,
3083 },
3084
d33e787c 3085 {
a66a2204 3086 /* Q_DHST - DELETE_HOST */
3087 "delete_host",
3088 "dhst",
d33e787c 3089 DELETE,
3090 "m",
03c05291 3091 MACHINE_TABLE,
7ac48069 3092 NULL,
a66a2204 3093 dhst_fields,
d33e787c 3094 0,
4e5ec77f 3095 "mach_id = %d",
d33e787c 3096 1,
29028043 3097 NULL,
a66a2204 3098 &dhst_validate,
3099 },
3100
03c05291 3101 {
3102 /* Q_GMAC - GET_MACHINE */
3103 "get_machine",
3104 "gmac",
3105 RETRIEVE,
3106 "m",
3107 MACHINE_TABLE,
3108 "name, vendor, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM machine",
3109 gmac_fields,
3110 5,
263a36d4 3111 "name LIKE UPPER('%s') AND mach_id != 0",
03c05291 3112 1,
29028043 3113 "name",
263a36d4 3114 &VDfix_modby,
03c05291 3115 },
3116
a66a2204 3117 {
3118 /* Q_GHAL - GET_HOSTALIAS */
3119 "get_hostalias",
3120 "ghal",
3121 RETRIEVE,
03c05291 3122 "a",
3123 HOSTALIAS_TABLE,
3124 "a.name, m.name FROM hostalias a, machine m",
a66a2204 3125 ghal_fields,
3126 2,
263a36d4 3127 "m.mach_id = a.mach_id and a.name LIKE UPPER('%s') AND m.name LIKE UPPER('%s')",
a66a2204 3128 2,
29028043 3129 "a.name",
a66a2204 3130 &ghal_validate,
3131 },
3132
3133 {
3134 /* Q_AHAL - ADD_HOSTALIAS */
3135 "add_hostalias",
3136 "ahal",
3137 APPEND,
3138 "a",
03c05291 3139 HOSTALIAS_TABLE,
5eaef520 3140 "INTO hostalias (name, mach_id) VALUES (UPPER('%s'), %d)",
a66a2204 3141 ghal_fields,
3142 2,
3143 0,
3144 0,
29028043 3145 NULL,
a66a2204 3146 &ahal_validate,
3147 },
3148
3149 {
3150 /* Q_DHAL - DELETE_HOSTALIAS */
3151 "delete_hostalias",
3152 "dhal",
3153 DELETE,
3154 "a",
03c05291 3155 HOSTALIAS_TABLE,
7ac48069 3156 NULL,
a66a2204 3157 ghal_fields,
3158 0,
03c05291 3159 "name = UPPER('%s') AND mach_id = %d",
a66a2204 3160 2,
29028043 3161 NULL,
a66a2204 3162 &dhal_validate,
d33e787c 3163 },
3164
3c1d412c 3165 {
3166 /* Q_GSNT - GET_SUBNET */
3167 "get_subnet",
3168 "gsnt",
3169 RETRIEVE,
3170 "s",
03c05291 3171 SUBNET_TABLE,
3172 "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 3173 gsnt_fields,
bd8c26ff 3174 12,
5e8fdad1 3175 "name LIKE UPPER('%s')",
3c1d412c 3176 1,
29028043 3177 "name",
3c1d412c 3178 &gsnt_validate,
3179 },
3180
3181 {
3182 /* Q_ASNT - ADD_SUBNET */
3183 "add_subnet",
3184 "asnt",
3185 APPEND,
3186 "s",
03c05291 3187 SUBNET_TABLE,
5eaef520 3188 "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 3189 asnt_fields,
bd8c26ff 3190 9,
3c1d412c 3191 0,
3192 0,
29028043 3193 NULL,
3c1d412c 3194 &asnt_validate,
3195 },
3196
3197 {
3198 /* Q_USNT - UPDATE_SUBNET */
3199 "update_subnet",
3200 "usnt",
3201 UPDATE,
3202 "s",
03c05291 3203 SUBNET_TABLE,
5eaef520 3204 "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 3205 usnt_fields,
bd8c26ff 3206 9,
3c1d412c 3207 "snet_id = %d",
3208 1,
29028043 3209 NULL,
3c1d412c 3210 &usnt_validate,
3211 },
3212
3213 {
3214 /* Q_DSNT - DELETE_SUBNET */
3215 "delete_subnet",
3216 "dsnt",
3217 DELETE,
3218 "s",
03c05291 3219 SUBNET_TABLE,
7ac48069 3220 NULL,
3c1d412c 3221 dsnt_fields,
3222 0,
3223 "snet_id = %d",
3224 1,
29028043 3225 NULL,
3c1d412c 3226 &dsnt_validate,
3227 },
3228
d33e787c 3229 {
3230 /* Q_GCLU - GET_CLUSTER */
3231 "get_cluster",
3232 "gclu",
3233 RETRIEVE,
3234 "c",
e688520a 3235 CLUSTERS_TABLE,
03c05291 3236 "name, description, location, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM clusters",
d33e787c 3237 gclu_fields,
3238 6,
263a36d4 3239 "name LIKE '%s' AND clu_id != 0",
d33e787c 3240 1,
29028043 3241 "name",
263a36d4 3242 &VDfix_modby,
d33e787c 3243 },
3244
3245 {
45bf7573 3246 /* Q_ACLU - ADD_CLUSTER */ /* uses prefetch_value() for clu_id */
d33e787c 3247 "add_cluster",
3248 "aclu",
3249 APPEND,
3250 "c",
e688520a 3251 CLUSTERS_TABLE,
5eaef520 3252 "INTO clusters (name, description, location, clu_id) VALUES ('%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s)",
d33e787c 3253 aclu_fields,
3254 3,
45bf7573 3255 0,
d33e787c 3256 0,
29028043 3257 NULL,
d33e787c 3258 &aclu_validate,
3259 },
3260
3261 {
3262 /* Q_UCLU - UPDATE_CLUSTER */
3263 "update_cluster",
3264 "uclu",
3265 UPDATE,
3266 "c",
e688520a 3267 CLUSTERS_TABLE,
5eaef520 3268 "clusters SET name = '%s', description = NVL('%s', CHR(0)), location = NVL('%s', CHR(0))",
d33e787c 3269 uclu_fields,
3270 3,
4e5ec77f 3271 "clu_id = %d",
d33e787c 3272 1,
29028043 3273 NULL,
d33e787c 3274 &uclu_validate,
3275 },
3276
3277 {
3278 /* Q_DCLU - DELETE_CLUSTER */
3279 "delete_cluster",
3280 "dclu",
3281 DELETE,
3282 "c",
e688520a 3283 CLUSTERS_TABLE,
7ac48069 3284 NULL,
d33e787c 3285 dclu_fields,
3286 0,
4e5ec77f 3287 "clu_id = %d",
d33e787c 3288 1,
29028043 3289 NULL,
d33e787c 3290 &dclu_validate,
3291 },
3292
3293 {
5eaef520 3294 /* Q_GMCM - GET_MACHINE_TO_CLUSTER_MAP */
d33e787c 3295 "get_machine_to_cluster_map",
3296 "gmcm",
3297 RETRIEVE,
0c345c78 3298 "mcm",
03c05291 3299 MCMAP_TABLE,
3300 "m.name, c.name FROM machine m, clusters c, mcmap mcm",
d33e787c 3301 gmcm_fields,
3302 2,
263a36d4 3303 "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 3304 2,
29028043 3305 "m.name",
263a36d4 3306 NULL,
d33e787c 3307 },
5eaef520 3308
d33e787c 3309 {
3310 /* Q_AMTC - ADD_MACHINE_TO_CLUSTER */
3311 "add_machine_to_cluster",
3312 "amtc",
3313 APPEND,
0c345c78 3314 "mcm",
03c05291 3315 MCMAP_TABLE,
4e5ec77f 3316 "INTO mcmap (mach_id, clu_id) VALUES (%d, %d)",
d33e787c 3317 gmcm_fields,
3318 2,
3319 0,
3320 0,
29028043 3321 NULL,
d33e787c 3322 &amtc_validate,
3323 },
3324
3325 {
3326 /* Q_DMFC - DELETE_MACHINE_FROM_CLUSTER */
3327 "delete_machine_from_cluster",
3328 "dmfc",
3329 DELETE,
0c345c78 3330 "mcm",
03c05291 3331 MCMAP_TABLE,
d33e787c 3332 0,
3333 gmcm_fields,
3334 0,
4e5ec77f 3335 "mach_id = %d AND clu_id = %d",
d33e787c 3336 2,
29028043 3337 NULL,
d33e787c 3338 &amtc_validate,
3339 },
3340
3341 {
68dd808d 3342 /* Q_GCLD - GET_CLUSTER_DATA */
d33e787c 3343 "get_cluster_data",
3344 "gcld",
3345 RETRIEVE,
d33e787c 3346 "svc",
03c05291 3347 SVC_TABLE,
3348 "c.name, svc.serv_label, svc.serv_cluster FROM svc svc, clusters c",
d33e787c 3349 gcld_fields,
3350 3,
263a36d4 3351 "c.clu_id = svc.clu_id AND c.name LIKE '%s' AND svc.serv_label LIKE '%s'",
d33e787c 3352 2,
29028043 3353 "c.name, svc.serv_label",
263a36d4 3354 NULL,
d33e787c 3355 },
3356
3357 {
3358 /* Q_ACLD - ADD_CLUSTER_DATA */
3359 "add_cluster_data",
3360 "acld",
3361 APPEND,
0c345c78 3362 "svc",
03c05291 3363 SVC_TABLE,
5eaef520 3364 "INTO svc (clu_id, serv_label, serv_cluster) VALUES (%d, '%s', '%s')",
88343c5e 3365 acld_fields,
d33e787c 3366 3,
7ac48069 3367 NULL,
d33e787c 3368 0,
29028043 3369 NULL,
d33e787c 3370 &acld_validate,
3371 },
3372
3373 {
3374 /* Q_DCLD - DELETE_CLUSTER_DATA */
3375 "delete_cluster_data",
3376 "dcld",
3377 DELETE,
0c345c78 3378 "svc",
03c05291 3379 SVC_TABLE,
7ac48069 3380 NULL,
88343c5e 3381 acld_fields,
d33e787c 3382 0,
5eaef520 3383 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
d33e787c 3384 3,
29028043 3385 NULL,
99e09b48 3386 &dcld_validate,
d33e787c 3387 },
3388
03c05291 3389 {
3390 /* Q_GLIN - GET_LIST_INFO */
3391 "get_list_info",
3392 "glin",
3393 RETRIEVE,
263a36d4 3394 "l",
03c05291 3395 LIST_TABLE,
ccdbc974 3396 "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 3397 glin_fields,
3398 13,
263a36d4 3399 "name LIKE '%s'",
5eaef520 3400 1,
263a36d4 3401 "name",
5eaef520 3402 &glin_validate,
03c05291 3403 },
5eaef520 3404
03c05291 3405 {
3406 /* Q_EXLN - EXPAND_LIST_NAMES */
3407 "expand_list_names",
3408 "exln",
3409 RETRIEVE,
3410 "l",
3411 LIST_TABLE,
3412 "name FROM list",
3413 glin_fields,
3414 1,
263a36d4 3415 "name LIKE '%s' AND list_id != 0",
03c05291 3416 1,
29028043 3417 "name",
263a36d4 3418 NULL,
03c05291 3419 },
5eaef520 3420
03c05291 3421 {
3422 /* Q_ALIS - ADD_LIST */ /* uses prefetch_value() for list_id */
3423 "add_list",
3424 "alis",
3425 APPEND,
3426 "l",
5eaef520 3427 LIST_TABLE,
3428 "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 3429 alis_fields,
3430 10,
3431 0,
3432 0,
29028043 3433 NULL,
03c05291 3434 &alis_validate,
3435 },
3436
3437 {
3438 /* Q_ULIS - UPDATE_LIST */
3439 "update_list",
3440 "ulis",
3441 UPDATE,
3442 "l",
3443 LIST_TABLE,
5eaef520 3444 "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 3445 ulis_fields,
3446 10,
3447 "list_id = %d",
3448 1,
29028043 3449 NULL,
03c05291 3450 &ulis_validate,
3451 },
3452
3453 {
3454 /* Q_DLIS - DELETE_LIST */
3455 "delete_list",
3456 "dlis",
3457 DELETE,
3458 "l",
3459 LIST_TABLE,
7ac48069 3460 NULL,
03c05291 3461 dlis_fields,
3462 0,
3463 "list_id = %d",
3464 1,
29028043 3465 NULL,
03c05291 3466 &dlis_validate,
3467 },
3468
3469 {
3470 /* Q_AMTL - ADD_MEMBER_TO_LIST */
3471 "add_member_to_list",
3472 "amtl",
3473 APPEND,
3474 0,
3475 IMEMBERS_TABLE,
3476 0,
3477 amtl_fields,
3478 3,
7ac48069 3479 NULL,
03c05291 3480 0,
29028043 3481 NULL,
03c05291 3482 &amtl_validate,
3483 },
3484
46b6f1f6 3485 {
3486 /* Q_ATML - ADD_TAGGED_MEMBER_TO_LIST */
3487 "add_tagged_member_to_list",
3488 "atml",
3489 APPEND,
3490 0,
3491 IMEMBERS_TABLE,
3492 0,
3493 atml_fields,
3494 4,
3495 NULL,
3496 0,
3497 NULL,
3498 &atml_validate,
3499 },
3500
3501 {
3502 /* Q_TMOL - TAG_MEMBER_OF_LIST */
3503 "tag_member_of_list",
3504 "tmol",
3505 UPDATE,
3506 "im",
3507 IMEMBERS_TABLE,
3508 "imembers SET tag = %d",
3509 atml_fields,
3510 1,
3511 "list_id = %d AND member_type = '%s' and member_id = %d",
3512 3,
3513 NULL,
3514 &tmol_validate,
3515 },
3516
03c05291 3517 {
3518 /* Q_DMFL - DELETE_MEMBER_FROM_LIST */
3519 "delete_member_from_list",
3520 "dmfl",
3521 DELETE,
3522 0,
3523 IMEMBERS_TABLE,
7ac48069 3524 NULL,
03c05291 3525 amtl_fields,
3526 0,
3527 0,
3528 3,
29028043 3529 NULL,
03c05291 3530 &dmfl_validate,
3531 },
3532
3533 {
3534 /* Q_GAUS - GET_ACE_USE */
3535 "get_ace_use",
3536 "gaus",
3537 RETRIEVE,
3538 0,
3539 0,
3540 0,
3541 gaus_fields,
3542 2,
3543 0,
3544 2,
29028043 3545 NULL,
03c05291 3546 &gaus_validate,
3547 },
3548
3549 {
3550 /* Q_QGLI - QUALIFIED_GET_LISTS */
3551 "qualified_get_lists",
3552 "qgli",
3553 RETRIEVE,
3554 0,
3555 LIST_TABLE,
3556 0,
3557 qgli_fields,
3558 1,
3559 0,
3560 5,
29028043 3561 NULL,
03c05291 3562 &qgli_validate,
3563 },
3564
3565 {
3566 /* Q_GMOL - GET_MEMBERS_OF_LIST */
3567 "get_members_of_list",
3568 "gmol",
3569 RETRIEVE,
7ac48069 3570 NULL,
03c05291 3571 IMEMBERS_TABLE,
7ac48069 3572 NULL,
03c05291 3573 gmol_fields,
3574 2,
7ac48069 3575 NULL,
03c05291 3576 1,
29028043 3577 NULL,
03c05291 3578 &gmol_validate,
3579 },
3580
3581 {
3582 /* Q_GEML - GET_END_MEMBERS_OF_LIST */
3583 "get_end_members_of_list",
3584 "geml",
3585 RETRIEVE,
7ac48069 3586 NULL,
03c05291 3587 IMEMBERS_TABLE,
7ac48069 3588 NULL,
03c05291 3589 gmol_fields,
fd8d2149 3590 2,
7ac48069 3591 NULL,
03c05291 3592 1,
29028043 3593 NULL,
46b6f1f6 3594 &gmol_validate,
3595 },
3596
3597 {
3598 /* Q_GTML - GET_TAGGED_MEMBERS_OF_LIST */
3599 "get_tagged_members_of_list",
3600 "gtml",
3601 RETRIEVE,
3602 NULL,
3603 IMEMBERS_TABLE,
3604 NULL,
3605 gtml_fields,
3606 3,
3607 NULL,
3608 1,
3609 NULL,
3610 &gmol_validate,
03c05291 3611 },
5eaef520 3612
03c05291 3613 {
3614 /* Q_GLOM - GET_LISTS_OF_MEMBER */
3615 "get_lists_of_member",
3616 "glom",
3617 RETRIEVE,
3618 0,
3619 IMEMBERS_TABLE,
3620 0,
3621 glom_fields,
3622 6,
3623 0,
3624 2,
29028043 3625 NULL,
03c05291 3626 &glom_validate,
3627 },
3628
3629 {
3630 /* Q_CMOL - COUNT_MEMBERS_OF_LIST */
3631 "count_members_of_list",
3632 "cmol",
3633 RETRIEVE,
3634 0,
3635 IMEMBERS_TABLE,
3636 0,
3637 cmol_fields,
3638 1,
3639 0,
3640 1,
29028043 3641 NULL,
03c05291 3642 &cmol_validate,
3643 },
3644
d33e787c 3645 {
3646 /* Q_GSIN - GET_SERVER_INFO */
3647 "get_server_info",
3648 "gsin",
3649 RETRIEVE,
3650 "s",
03c05291 3651 SERVERS_TABLE,
3652 "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 3653 gsin_fields,
7ac4c1b1 3654 16,
263a36d4 3655 "name LIKE UPPER('%s')",
d33e787c 3656 1,
29028043 3657 "name",
d33e787c 3658 &gsin_validate,
3659 },
3660
3661 {
3662 /* Q_QGSV - QUALIFIED_GET_SERVER */
3663 "qualified_get_server",
3664 "qgsv",
3665 RETRIEVE,
3666 0,
03c05291 3667 SERVERS_TABLE,
d33e787c 3668 0,
3669 qgsv_fields,
3670 1,
3671 0,
3672 3,
29028043 3673 NULL,
d33e787c 3674 &qgsv_validate,
3675 },
3676
3677 {
3678 /* Q_ASIN - ADD_SERVER_INFO */
3679 "add_server_info",
3680 "asin",
3681 APPEND,
3682 "s",
03c05291 3683 SERVERS_TABLE,
5eaef520 3684 "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 3685 asin_fields,
3686 8,
7ac48069 3687 NULL,
d33e787c 3688 0,
29028043 3689 NULL,
d33e787c 3690 &asin_validate,
3691 },
3692
3693 {
3694 /* Q_USIN - UPDATE_SERVER_INFO */
3695 "update_server_info",
3696 "usin",
3697 UPDATE,
3698 "s",
03c05291 3699 SERVERS_TABLE,
4e5ec77f 3700 "servers SET update_int = %s, target_file = '%s', script = '%s', type = '%s', enable = %s, acl_type = '%s', acl_id = %d",
d33e787c 3701 asin_fields,
3702 7,
03c05291 3703 "name = UPPER('%s')",
d33e787c 3704 1,
29028043 3705 NULL,
d33e787c 3706 &asin_validate,
3707 },
3708
3709 {
3710 /* Q_RSVE - RESET_SERVER_ERROR */
3711 "reset_server_error",
3712 "rsve",
3713 UPDATE,
3714 "s",
03c05291 3715 SERVERS_TABLE,
4e5ec77f 3716 "servers SET harderror = 0, dfcheck = dfgen",
d33e787c 3717 dsin_fields,
3718 0,
03c05291 3719 "name = UPPER('%s')",
d33e787c 3720 1,
29028043 3721 NULL,
d33e787c 3722 &rsve_validate,
3723 },
3724
3725 {
3726 /* Q_SSIF - SET_SERVER_INTERNAL_FLAGS */
3727 "set_server_internal_flags",
3728 "ssif",
3729 UPDATE,
3730 "s",
03c05291 3731 SERVERS_TABLE,
5eaef520 3732 "servers SET dfgen = %s, dfcheck = %s, inprogress = %s, harderror = %s, errmsg = NVL('%s', CHR(0))",
d33e787c 3733 ssif_fields,
7ac4c1b1 3734 5,
03c05291 3735 "name = UPPER('%s')",
d33e787c 3736 1,
29028043 3737 NULL,
d33e787c 3738 &ssif_validate,
3739 },
3740
3741 {
3742 /* Q_DSIN - DELETE_SERVER_INFO */
3743 "delete_server_info",
3744 "dsin",
3745 DELETE,
3746 "s",
03c05291 3747 SERVERS_TABLE,
7ac48069 3748 NULL,
d33e787c 3749 dsin_fields,
3750 0,
03c05291 3751 "name = UPPER('%s')",
d33e787c 3752 1,
29028043 3753 NULL,
d33e787c 3754 &dsin_validate,
3755 },
3756
3757 {
5eaef520 3758 /* Q_GSHI - GET_SERVER_HOST_INFO */
d33e787c 3759 "get_server_host_info",
3760 "gshi",
3761 RETRIEVE,
3762 "sh",
03c05291 3763 SERVERHOSTS_TABLE,
3764 "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 3765 gshi_fields,
3766 16,
263a36d4 3767 "sh.service LIKE UPPER('%s') AND m.name LIKE UPPER('%s') AND m.mach_id = sh.mach_id",
d33e787c 3768 2,
29028043 3769 "sh.service, m.name",
d33e787c 3770 &gshi_validate,
3771 },
3772
3773 {
135dcb80 3774 /* Q_QGSH - QUALIFIED_GET_SERVER_HOST */
d33e787c 3775 "qualified_get_server_host",
3776 "qgsh",
3777 RETRIEVE,
135dcb80 3778 0,
03c05291 3779 SERVERHOSTS_TABLE,
d33e787c 3780 0,
3781 qgsh_fields,
3782 2,
3783 0,
3784 6,
29028043 3785 NULL,
d33e787c 3786 &qgsh_validate,
3787 },
3788
3789 {
3790 /* Q_ASHI - ADD_SERVER_HOST_INFO */
3791 "add_server_host_info",
3792 "ashi",
3793 APPEND,
3794 "sh",
03c05291 3795 SERVERHOSTS_TABLE,
5eaef520 3796 "INTO serverhosts (service, mach_id, enable, value1, value2, value3) VALUES (UPPER('%s'), %d, %s, %s, %s, NVL('%s', CHR(0)))",
d33e787c 3797 ashi_fields,
3798 6,
7ac48069 3799 NULL,
d33e787c 3800 0,
29028043 3801 NULL,
d33e787c 3802 &ashi_validate,
3803 },
3804
3805 {
3806 /* Q_USHI - UPDATE_SERVER_HOST_INFO */
3807 "update_server_host_info",
3808 "ushi",
3809 UPDATE,
3810 "sh",
03c05291 3811 SERVERHOSTS_TABLE,
5eaef520 3812 "serverhosts SET enable = %s, value1 = %s, value2 = %s, value3 = NVL('%s', CHR(0))",
d33e787c 3813 ashi_fields,
3814 4,
03c05291 3815 "service = UPPER('%s') AND mach_id = %d",
d33e787c 3816 2,
29028043 3817 NULL,
d33e787c 3818 &ashi_validate,
3819 },
3820
3821 {
3822 /* Q_RSHE - RESET_SERVER_HOST_ERROR */
3823 "reset_server_host_error",
3824 "rshe",
3825 UPDATE,
3826 "sh",
03c05291 3827 SERVERHOSTS_TABLE,
4e5ec77f 3828 "serverhosts SET hosterror = 0",
d33e787c 3829 dshi_fields,
3830 0,
03c05291 3831 "service = UPPER('%s') AND mach_id = %d",
d33e787c 3832 2,
29028043 3833 NULL,
d33e787c 3834 &rshe_validate,
3835 },
3836
3837 {
3838 /* Q_SSHO - SET_SERVER_HOST_OVERRIDE */
3839 "set_server_host_override",
3840 "ssho",
3841 UPDATE,
3842 "sh",
03c05291 3843 SERVERHOSTS_TABLE,
4e5ec77f 3844 "serverhosts SET override = 1",
d33e787c 3845 dshi_fields,
3846 0,
03c05291 3847 "service = UPPER('%s') AND mach_id = %d",
d33e787c 3848 2,
29028043 3849 NULL,
d33e787c 3850 &ssho_validate,
3851 },
3852
3853 {
e41960ac 3854 /* Q_SSHI - SET_SERVER_HOST_INTERNAL */
d33e787c 3855 "set_server_host_internal",
3856 "sshi",
3857 UPDATE,
7ac4c1b1 3858 "s",
03c05291 3859 SERVERHOSTS_TABLE,
5eaef520 3860 "serverhosts SET override = %s, success = %s, inprogress = %s, hosterror = %s, hosterrmsg = NVL('%s', CHR(0)), ltt = %s, lts = %s",
d33e787c 3861 sshi_fields,
3862 7,
5eaef520 3863 "service = UPPER('%s') AND mach_id = %d",
d33e787c 3864 2,
29028043 3865 NULL,
d33e787c 3866 &sshi_validate,
3867 },
3868
3869 {
03c05291 3870 /* Q_DSHI - DELETE_SERVER_HOST_INFO */
3871 "delete_server_host_info",
3872 "dshi",
d33e787c 3873 DELETE,
03c05291 3874 "sh",
3875 SERVERHOSTS_TABLE,
7ac48069 3876 NULL,
03c05291 3877 dshi_fields,
d33e787c 3878 0,
03c05291 3879 "service = UPPER('%s') AND mach_id = %d",
3880 2,
29028043 3881 NULL,
03c05291 3882 &dshi_validate,
d33e787c 3883 },
3884
3885 {
5eaef520 3886 /* Q_GSLO - GET_SERVER_LOCATIONS */
d33e787c 3887 "get_server_locations",
3888 "gslo",
3889 RETRIEVE,
3890 "sh",
03c05291 3891 SERVERHOSTS_TABLE,
3892 "sh.service, m.name FROM serverhosts sh, machine m",
d33e787c 3893 gslo_fields,
3894 2,
263a36d4 3895 "sh.service LIKE UPPER('%s') AND sh.mach_id = m.mach_id",
d33e787c 3896 1,
29028043 3897 "sh.service, m.name",
263a36d4 3898 NULL,
d33e787c 3899 },
3900
3901 {
5eaef520 3902 /* Q_GFSL - GET_FILESYS_BY_LABEL */
d33e787c 3903 "get_filesys_by_label",
3904 "gfsl",
3905 RETRIEVE,
3906 "fs",
03c05291 3907 FILESYS_TABLE,
3908 "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 3909 gfsl_fields,
3910 14,
263a36d4 3911 "fs.label LIKE '%s' AND fs.mach_id = m.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 3912 1,
29028043 3913 "fs.label",
5a8887d8 3914 &gfsl_validate,
d33e787c 3915 },
3916
3917 {
5eaef520 3918 /* Q_GFSM - GET_FILESYS_BY_MACHINE */
d33e787c 3919 "get_filesys_by_machine",
3920 "gfsm",
3921 RETRIEVE,
3922 "fs",
03c05291 3923 FILESYS_TABLE,
3924 "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 3925 gfsm_fields,
3926 14,
4e5ec77f 3927 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 3928 1,
29028043 3929 "fs.label",
d33e787c 3930 &gfsm_validate,
3931 },
3932
88343c5e 3933 {
5eaef520 3934 /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
88343c5e 3935 "get_filesys_by_nfsphys",
3936 "gfsn",
3937 RETRIEVE,
3938 "fs",
03c05291 3939 FILESYS_TABLE,
3940 "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 3941 gfsn_fields,
3942 14,
cc1bca5c 3943 "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 3944 2,
29028043 3945 "fs.label",
99e09b48 3946 &gfsn_validate,
88343c5e 3947 },
3948
d33e787c 3949 {
5eaef520 3950 /* Q_GFSG - GET_FILESYS_BY_GROUP */
d33e787c 3951 "get_filesys_by_group",
3952 "gfsg",
3953 RETRIEVE,
3954 "fs",
03c05291 3955 FILESYS_TABLE,
3956 "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 3957 gfsg_fields,
3958 14,
4e5ec77f 3959 "fs.owners = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 3960 1,
29028043 3961 "fs.label",
d33e787c 3962 &gfsg_validate,
3963 },
3964
4ffa124a 3965 {
76f86976 3966 /* Q_GFSP - GET_FILESYS_BY_PATH */
4ffa124a 3967 "get_filesys_by_path",
3968 "gfsp",
3969 RETRIEVE,
3970 "fs",
03c05291 3971 FILESYS_TABLE,
3972 "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 3973 gfsp_fields,
3974 14,
263a36d4 3975 "fs.name LIKE '%s' AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = list_id",
4ffa124a 3976 1,
29028043 3977 "fs.label",
263a36d4 3978 &VDfix_modby,
4ffa124a 3979 },
5eaef520 3980
d33e787c 3981 {
45bf7573 3982 /* Q_AFIL - ADD_FILESYS */ /* uses prefetch_value() for filsys_id */
d33e787c 3983 "add_filesys",
3984 "afil",
3985 APPEND,
3986 "fs",
03c05291 3987 FILESYS_TABLE,
d4296047 3988 "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 3989 afil_fields,
3990 11,
45bf7573 3991 0,
d33e787c 3992 0,
29028043 3993 NULL,
d33e787c 3994 &afil_validate,
3995 },
3996
3997 {
3998 /* Q_UFIL - UPDATE_FILESYS */
3999 "update_filesys",
4000 "ufil",
4001 UPDATE,
4002 "fs",
03c05291 4003 FILESYS_TABLE,
d4296047 4004 "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 4005 ufil_fields,
4006 11,
4e5ec77f 4007 "filsys_id = %d",
d33e787c 4008 1,
29028043 4009 NULL,
5eaef520 4010 &ufil_validate,
d33e787c 4011 },
4012
4013 {
4014 /* Q_DFIL - DELETE_FILESYS */
4015 "delete_filesys",
4016 "dfil",
4017 DELETE,
4018 "fs",
03c05291 4019 FILESYS_TABLE,
7ac48069 4020 NULL,
d33e787c 4021 dfil_fields,
4022 0,
4e5ec77f 4023 "filsys_id = %d",
d33e787c 4024 1,
29028043 4025 NULL,
d33e787c 4026 &dfil_validate,
4027 },
4028
95127ba8 4029 {
5eaef520 4030 /* Q_GFGM - GET_FSGROUP_MEMBERS */
95127ba8 4031 "get_fsgroup_members",
4032 "gfgm",
4033 RETRIEVE,
4034 "fg",
03c05291 4035 FSGROUP_TABLE,
4036 "fs.label, fg.key FROM fsgroup fg, filesys fs",
95127ba8 4037 gfgm_fields,
4038 2,
4e5ec77f 4039 "fg.group_id = %d AND fs.filsys_id = fg.filsys_id",
95127ba8 4040 1,
29028043 4041 "fs.label, fg.key",
95127ba8 4042 &gfgm_validate,
4043 },
4044
4045 {
76f86976 4046 /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
95127ba8 4047 "add_filesys_to_fsgroup",
4048 "aftg",
4049 APPEND,
4050 "fg",
03c05291 4051 FSGROUP_TABLE,
5eaef520 4052 "INTO fsgroup (group_id, filsys_id, key) VALUES (%d, %d, '%s')",
95127ba8 4053 gfgm_fields,
76f86976 4054 3,
7ac48069 4055 NULL,
76f86976 4056 0,
29028043 4057 NULL,
95127ba8 4058 &aftg_validate,
4059 },
4060
4061 {
4062 /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
4063 "remove_filesys_from_fsgroup",
4064 "rffg",
4065 DELETE,
4066 "fg",
03c05291 4067 FSGROUP_TABLE,
7ac48069 4068 NULL,
95127ba8 4069 gfgm_fields,
4070 0,
4e5ec77f 4071 "group_id = %d AND filsys_id = %d",
95127ba8 4072 2,
29028043 4073 NULL,
95127ba8 4074 &aftg_validate,
4075 },
4076
d33e787c 4077 {
5eaef520 4078 /* Q_GANF - GET_ALL_NFSPHYS */
d33e787c 4079 "get_all_nfsphys",
4080 "ganf",
4081 RETRIEVE,
4082 "np",
03c05291 4083 NFSPHYS_TABLE,
4084 "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 4085 ganf_fields,
4086 9,
4e5ec77f 4087 "m.mach_id = np.mach_id",
d33e787c 4088 0,
29028043 4089 "m.name, np.dir",
4090 &VDfix_modby,
d33e787c 4091 },
4092
4093 {
5eaef520 4094 /* Q_GNFP - GET_NFSPHYS */
d33e787c 4095 "get_nfsphys",
4096 "gnfp",
4097 RETRIEVE,
4098 "np",
03c05291 4099 NFSPHYS_TABLE,
4100 "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 4101 gnfp_fields,
4102 9,
263a36d4 4103 "np.mach_id = %d AND np.dir LIKE '%s' AND m.mach_id = np.mach_id",
d33e787c 4104 2,
29028043 4105 "m.name, np.dir",
d33e787c 4106 &gnfp_validate,
4107 },
4108
4109 {
45bf7573 4110 /* Q_ANFP - ADD_NFSPHYS */ /* uses prefetch_value() for nfsphys_id */
d33e787c 4111 "add_nfsphys",
4112 "anfp",
4113 APPEND,
4114 "np",
03c05291 4115 NFSPHYS_TABLE,
5eaef520 4116 "INTO nfsphys (mach_id, dir, device, status, allocated, partsize, nfsphys_id) VALUES (%d, '%s', NVL('%s', CHR(0)), %s, %s, %s, %s)",
d33e787c 4117 ganf_fields,
4118 6,
45bf7573 4119 0,
d33e787c 4120 0,
29028043 4121 NULL,
d33e787c 4122 &anfp_validate,
4123 },
4124
4125 {
4126 /* Q_UNFP - UPDATE_NFSPHYS */
4127 "update_nfsphys",
4128 "unfp",
4129 UPDATE,
4130 "np",
03c05291 4131 NFSPHYS_TABLE,
5eaef520 4132 "nfsphys SET device = NVL('%s', CHR(0)), status = %s, allocated = %s, partsize = %s",
135dcb80 4133 ganf_fields,
d33e787c 4134 4,
5eaef520 4135 "mach_id = %d AND dir = '%s'",
d33e787c 4136 2,
29028043 4137 NULL,
45bf7573 4138 &unfp_validate,
d33e787c 4139 },
4140
4141 {
4142 /* Q_AJNF - ADJUST_NFSPHYS_ALLOCATION */
4143 "adjust_nfsphys_allocation",
4144 "ajnf",
4145 UPDATE,
4146 "np",
03c05291 4147 NFSPHYS_TABLE,
4e5ec77f 4148 "nfsphys SET allocated = allocated + %s",
99e09b48 4149 ajnf_fields,
d33e787c 4150 1,
4e5ec77f 4151 "mach_id = %d AND dir = '%s'",
d33e787c 4152 2,
29028043 4153 NULL,
f802fd0d 4154 &ajnf_validate,
d33e787c 4155 },
4156
4157 {
4158 /* Q_DNFP - DELETE_NFSPHYS */
4159 "delete_nfsphys",
4160 "dnfp",
4161 DELETE,
4162 "np",
03c05291 4163 NFSPHYS_TABLE,
7ac48069 4164 NULL,
d33e787c 4165 dnfp_fields,
4166 0,
4e5ec77f 4167 "mach_id = %d AND dir = '%s'",
d33e787c 4168 2,
29028043 4169 NULL,
d33e787c 4170 &dnfp_validate,
4171 },
4172
368be132 4173 {
5eaef520 4174 /* Q_GQOT - GET_QUOTA */
368be132 4175 "get_quota",
4176 "gqot",
4177 RETRIEVE,
4178 "q",
03c05291 4179 QUOTA_TABLE,
4180 "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 4181 gqot_fields,
4182 9,
263a36d4 4183 "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 4184 3,
29028043 4185 NULL,
368be132 4186 &gqot_validate,
4187 },
4188
4189 {
5eaef520 4190 /* Q_GQBF - GET_QUOTA_BY_FILESYS */
368be132 4191 "get_quota_by_filesys",
4192 "gqbf",
4193 RETRIEVE,
4194 "q",
03c05291 4195 QUOTA_TABLE,
4196 "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 4197 gqbf_fields,
4198 9,
263a36d4 4199 "fs.label LIKE '%s' AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
368be132 4200 1,
29028043 4201 "fs.label, q.type",
368be132 4202 &gqbf_validate,
4203 },
4204
4205 {
135dcb80 4206 /* Q_AQOT - ADD_QUOTA */ /* prefetch_filsys() gets last 1 value */
368be132 4207 "add_quota",
4208 "aqot",
4209 APPEND,
135dcb80 4210 0,
03c05291 4211 QUOTA_TABLE,
135dcb80 4212 "INTO quota (filsys_id, type, entity_id, quota, phys_id) VALUES ('%s', %d, %d, %s, %s)",
368be132 4213 aqot_fields,
135dcb80 4214 4,
7ac48069 4215 NULL,
76f86976 4216 0,
29028043 4217 NULL,
368be132 4218 &aqot_validate,
4219 },
4220
4221 {
4222 /* Q_UQOT - UPDATE_QUOTA */
4223 "update_quota",
4224 "uqot",
4225 UPDATE,
135dcb80 4226 0,
03c05291 4227 QUOTA_TABLE,
4e5ec77f 4228 "quota SET quota = %s",
368be132 4229 aqot_fields,
4230 1,
135dcb80 4231 0,
368be132 4232 3,
29028043 4233 NULL,
368be132 4234 &uqot_validate,
4235 },
4236
4237 {
4238 /* Q_DQOT - DELETE_QUOTA */
4239 "delete_quota",
4240 "dqot",
4241 DELETE,
135dcb80 4242 0,
03c05291 4243 QUOTA_TABLE,
7ac48069 4244 NULL,
368be132 4245 aqot_fields,
4246 0,
135dcb80 4247 0,
368be132 4248 3,
29028043 4249 NULL,
368be132 4250 &dqot_validate,
4251 },
4252
d33e787c 4253 {
5eaef520 4254 /* Q_GNFQ - GET_NFS_QUOTAS */
88343c5e 4255 "get_nfs_quota",
d33e787c 4256 "gnfq",
4257 RETRIEVE,
368be132 4258 "q",
03c05291 4259 QUOTA_TABLE,
4260 "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 4261 gnfq_fields,
4262 8,
263a36d4 4263 "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 4264 2,
29028043 4265 "fs.label, u.login",
d33e787c 4266 &gnfq_validate,
4267 },
4268
4269 {
5eaef520 4270 /* Q_GNQP - GET_NFS_QUOTAS_BY_PARTITION */
d33e787c 4271 "get_nfs_quotas_by_partition",
4272 "gnqp",
4273 RETRIEVE,
368be132 4274 "q",
03c05291 4275 QUOTA_TABLE,
4276 "fs.label, u.login, q.quota, np.dir, m.name FROM quota q, filesys fs, users u, nfsphys np, machine m",
d33e787c 4277 gnqp_fields,
4278 5,
263a36d4 4279 "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 4280 2,
29028043 4281 "fs.label",
263a36d4 4282 NULL,
d33e787c 4283 },
4284
d33e787c 4285 {
135dcb80 4286 /* Q_ANFQ - ADD_NFS_QUOTA */ /* prefetch_filsys() gets last 1 value */
d33e787c 4287 "add_nfs_quota",
4288 "anfq",
4289 APPEND,
135dcb80 4290 0,
03c05291 4291 QUOTA_TABLE,
135dcb80 4292 "INTO quota (type, filsys_id, entity_id, quota, phys_id ) VALUES ('USER', %d, %d, %s, %s)",
d33e787c 4293 anfq_fields,
135dcb80 4294 3,
7ac48069 4295 NULL,
76f86976 4296 0,
29028043 4297 NULL,
d33e787c 4298 &anfq_validate,
4299 },
4300
4301 {
5eaef520 4302 /* Q_UNFQ - UPDATE_NFS_QUOTA */
d33e787c 4303 "update_nfs_quota",
4304 "unfq",
4305 UPDATE,
135dcb80 4306 0,
03c05291 4307 QUOTA_TABLE,
4e5ec77f 4308 "quota SET quota = %s",
d33e787c 4309 anfq_fields,
4310 1,
135dcb80 4311 0,
d33e787c 4312 2,
29028043 4313 NULL,
d33e787c 4314 &unfq_validate,
4315 },
4316
4317 {
4318 /* Q_DNFQ - DELETE_NFS_QUOTA */
4319 "delete_nfs_quota",
4320 "dnfq",
4321 DELETE,
135dcb80 4322 0,
03c05291 4323 QUOTA_TABLE,
7ac48069 4324 NULL,
d33e787c 4325 anfq_fields,
4326 0,
135dcb80 4327 0,
d33e787c 4328 2,
29028043 4329 NULL,
d33e787c 4330 &dnfq_validate,
4331 },
4332
d33e787c 4333 {
4334 /* Q_GZCL - GET_ZEPHYR_CLASS */
4335 "get_zephyr_class",
4336 "gzcl",
4337 RETRIEVE,
4338 "z",
03c05291 4339 ZEPHYR_TABLE,
4340 "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 4341 gzcl_fields,
4342 12,
263a36d4 4343 "class LIKE '%s'",
d33e787c 4344 1,
29028043 4345 "class",
d33e787c 4346 &gzcl_validate,
03c05291 4347 },
d33e787c 4348
4349 {
4350 /* Q_AZCL - ADD_ZEPHYR_CLASS */
4351 "add_zephyr_class",
4352 "azcl",
4353 APPEND,
4354 "z",
03c05291 4355 ZEPHYR_TABLE,
5eaef520 4356 "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 4357 azcl_fields,
4358 9,
4359 0,
4360 0,
29028043 4361 NULL,
d33e787c 4362 &azcl_validate,
5eaef520 4363 },
d33e787c 4364
4365 {
4366 /* Q_UZCL - UPDATE_ZEPHYR_CLASS */
4367 "update_zephyr_class",
4368 "uzcl",
4369 UPDATE,
4370 "z",
03c05291 4371 ZEPHYR_TABLE,
135dcb80 4372 "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 4373 uzcl_fields,
4374 9,
99e09b48 4375 "class = '%s'",
d33e787c 4376 1,
29028043 4377 NULL,
d33e787c 4378 &uzcl_validate,
5eaef520 4379 },
d33e787c 4380
4381 {
4382 /* Q_DZCL - DELETE_ZEPHYR_CLASS */
4383 "delete_zephyr_class",
4384 "dzcl",
4385 DELETE,
4386 "z",
03c05291 4387 ZEPHYR_TABLE,
d33e787c 4388 0,
4389 uzcl_fields,
4390 0,
99e09b48 4391 "class = '%s'",
d33e787c 4392 1,
29028043 4393 NULL,
d33e787c 4394 &dzcl_validate,
5eaef520 4395 },
fd5b2340 4396
03c05291 4397 {
5eaef520 4398 /* Q_GSHA - GET_SERVER_HOST_ACCESS */
03c05291 4399 "get_server_host_access",
4400 "gsha",
4401 RETRIEVE,
4402 "ha",
4403 HOSTACCESS_TABLE,
4404 "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",
4405 gsha_fields,
4406 6,
263a36d4 4407 "m.name LIKE UPPER('%s') AND ha.mach_id = m.mach_id",
03c05291 4408 1,
29028043 4409 "m.name",
03c05291 4410 &gsha_validate,
4411 },
4412
4413 {
4414 /* Q_ASHA - ADD_SERVER_HOST_ACCESS */
4415 "add_server_host_access",
4416 "asha",
4417 APPEND,
4418 "ha",
4419 HOSTACCESS_TABLE,
5eaef520 4420 "INTO hostaccess (mach_id, acl_type, acl_id) VALUES (%d, '%s', %d)",
03c05291 4421 asha_fields,
4422 3,
4423 0,
4424 0,
29028043 4425 NULL,
03c05291 4426 &asha_validate,
4427 },
4428
4429 {
4430 /* Q_USHA - UPDATE_SERVER_HOST_ACCESS */
4431 "update_server_host_access",
4432 "usha",
4433 UPDATE,
4434 "ha",
4435 HOSTACCESS_TABLE,
4436 "hostaccess SET acl_type = '%s', acl_id = %d",
4437 asha_fields,
4438 2,
4439 "mach_id = %d",
4440 1,
29028043 4441 NULL,
03c05291 4442 &asha_validate,
4443 },
4444
4445 {
4446 /* Q_DSHA - DELETE_SERVER_HOST_ACCESS */
4447 "delete_server_host_access",
4448 "dsha",
4449 DELETE,
4450 "ha",
4451 HOSTACCESS_TABLE,
4452 0,
4453 asha_fields,
4454 0,
4455 "mach_id = %d",
4456 1,
29028043 4457 NULL,
03c05291 4458 &VDmach,
4459 },
4460
46b6f1f6 4461 {
4462 /* Q_GACL - GET_ACL */
4463 "get_acl",
4464 "gacl",
4465 RETRIEVE,
4466 "ac",
4467 ACL_TABLE,
4468 "m.name, ac.target, ac.kind, l.name FROM acl ac, machine m, list l",
4469 gacl_fields,
4470 4,
4471 "m.mach_id = %d AND m.mach_id = ac.mach_id AND ac.target LIKE '%s' AND l.list_id = ac.list_id",
4472 2,
4473 "m.name, ac.target, ac.kind",
4474 &gacl_validate,
4475 },
4476
4477 {
4478 /* Q_AACL - ADD_ACL */
4479 "add_acl",
4480 "aacl",
4481 APPEND,
4482 "ac",
4483 ACL_TABLE,
4484 "INTO acl (mach_id, target, kind, list_id) VALUES (%d, '%s', '%s', %d)",
4485 aacl_fields,
4486 4,
4487 0,
4488 0,
4489 NULL,
4490 &aacl_validate,
4491 },
4492
4493 {
4494 /* Q_DACL - DELETE_ACL */
4495 "delete_acl",
4496 "dacl",
4497 DELETE,
4498 "ac",
4499 ACL_TABLE,
4500 0,
4501 dacl_fields,
4502 0,
4503 "mach_id = %d AND target = '%s'",
4504 2,
4505 NULL,
4506 &gacl_validate,
4507 },
4508
d33e787c 4509 {
4510 /* Q_GSVC - GET_SERVICE */
4511 "get_service",
4512 "gsvc",
4513 RETRIEVE,
0c345c78 4514 "ss",
03c05291 4515 SERVICES_TABLE,
4516 "name, protocol, port, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM services",
fd5b2340 4517 gsvc_fields,
d33e787c 4518 7,
263a36d4 4519 "name LIKE '%s'",
fd5b2340 4520 1,
29028043 4521 "name",
263a36d4 4522 &VDfix_modby,
d33e787c 4523 },
4524
4525 {
4526 /* Q_ASVC - ADD_SERVICE */
4527 "add_service",
4528 "asvc",
4529 APPEND,
0c345c78 4530 "ss",
03c05291 4531 SERVICES_TABLE,
5eaef520 4532 "INTO services (name, protocol, port, description) VALUES ('%s', '%s', %s, NVL('%s', CHR(0)))",
fd5b2340 4533 asvc_fields,
d33e787c 4534 4,
7ac48069 4535 NULL,
d33e787c 4536 0,
29028043 4537 NULL,
d33e787c 4538 &asvc_validate,
4539 },
4540
4541 {
4542 /* Q_DSVC - DELETE_SERVICE */
4543 "delete_service",
4544 "dsvc",
4545 DELETE,
0c345c78 4546 "ss",
03c05291 4547 SERVICES_TABLE,
d33e787c 4548 0,
fd5b2340 4549 asvc_fields,
d33e787c 4550 0,
99e09b48 4551 "name = '%s'",
d33e787c 4552 1,
29028043 4553 NULL,
fd5b2340 4554 &asvc_validate,
d33e787c 4555 },
fd5b2340 4556
d33e787c 4557 {
2884200f 4558 /* Q_GPRN - GET_PRINTER */
4559 "get_printer",
4560 "gprn",
d33e787c 4561 RETRIEVE,
2884200f 4562 "pr",
4563 PRINTERS_TABLE,
e5a63571 4564 "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 4565 gprn_fields,
e5a63571 4566 19,
2884200f 4567 "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 4568 1,
2884200f 4569 "pr.name",
4570 &VDfix_modby,
d33e787c 4571 },
4572
4573 {
2884200f 4574 /* Q_GPBD - GET_PRINTER_BY_DUPLEXNAME */
4575 "get_printer_by_duplexname",
4576 "gpbd",
4577 RETRIEVE,
4578 "pr",
4579 PRINTERS_TABLE,
e5a63571 4580 "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 4581 gpbd_fields,
e5a63571 4582 19,
2884200f 4583 "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",
4584 1,
4585 "pr.name",
4586 &VDfix_modby,
fd5b2340 4587 },
4588
4589 {
2884200f 4590 /* Q_GPBE - GET_PRINTER_BY_ETHERNET */
4591 "get_printer_by_ethernet",
4592 "gpbe",
4593 RETRIEVE,
4594 "pr",
4595 PRINTERS_TABLE,
e5a63571 4596 "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 4597 gpbd_fields,
e5a63571 4598 19,
59841cdb 4599 "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 4600 1,
2884200f 4601 "pr.name",
4602 &VDfix_modby,
fd5b2340 4603 },
4604
4605 {
2884200f 4606 /* Q_GPBH - GET_PRINTER_BY_HOSTNAME */
4607 "get_printer_by_hostname",
4608 "gpbh",
fd5b2340 4609 RETRIEVE,
2884200f 4610 "pr",
4611 PRINTERS_TABLE,
e5a63571 4612 "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 4613 gpbh_fields,
e5a63571 4614 19,
2884200f 4615 "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 4616 1,
2884200f 4617 "pr.name",
263a36d4 4618 &VDfix_modby,
d33e787c 4619 },
4620
4621 {
2884200f 4622 /* Q_GPBR - GET_PRINTER_BY_RM */
4623 "get_printer_by_rm",
4624 "gpbr",
4625 RETRIEVE,
4626 "pr",
4627 PRINTERS_TABLE,
e5a63571 4628 "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 4629 gpbr_fields,
e5a63571 4630 19,
2884200f 4631 "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 4632 1,
2884200f 4633 "pr.name",
4634 &VDfix_modby,
d33e787c 4635 },
4636
012fc215 4637 {
2884200f 4638 /* Q_GPBL - GET_PRINTER_BY_LOCATION */
4639 "get_printer_by_location",
4640 "gpbl",
012fc215 4641 RETRIEVE,
2884200f 4642 "pr",
4643 PRINTERS_TABLE,
e5a63571 4644 "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 4645 gpbl_fields,
e5a63571 4646 19,
2884200f 4647 "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",
4648 1,
4649 "pr.name",
4650 &VDfix_modby,
4651 },
4652
4653 {
4654 /* Q_GPBC - GET_PRINTER_BY_CONTACT */
4655 "get_printer_by_contact",
4656 "gpbc",
4657 RETRIEVE,
4658 "pr",
4659 PRINTERS_TABLE,
e5a63571 4660 "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 4661 gpbc_fields,
e5a63571 4662 19,
2884200f 4663 "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 4664 1,
2884200f 4665 "pr.name",
263a36d4 4666 &VDfix_modby,
012fc215 4667 },
4668
4669 {
2884200f 4670 /* Q_APRN - ADD_PRINTER */
4671 "add_printer",
4672 "aprn",
012fc215 4673 APPEND,
2884200f 4674 "pr",
4675 PRINTERS_TABLE,
e5a63571 4676 "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 4677 aprn_fields,
e5a63571 4678 16,
012fc215 4679 0,
4680 0,
29028043 4681 NULL,
2884200f 4682 &aprn_validate,
012fc215 4683 },
4684
1a9a0a59 4685 {
4686 /* Q_UPRN - UPDATE_PRINTER */
4687 "update_printer",
4688 "uprn",
4689 UPDATE,
4690 "pr",
4691 PRINTERS_TABLE,
4692 "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))",
4693 uprn_fields,
4694 16,
4695 0,
4696 0,
4697 NULL,
4698 &uprn_validate,
4699 },
4700
012fc215 4701 {
2884200f 4702 /* Q_DPRN - DELETE_PRINTER */
4703 "delete_printer",
4704 "dprn",
012fc215 4705 DELETE,
2884200f 4706 "pr",
4707 PRINTERS_TABLE,
012fc215 4708 0,
2884200f 4709 aprn_fields,
012fc215 4710 0,
99e09b48 4711 "name = '%s'",
012fc215 4712 1,
29028043 4713 NULL,
2884200f 4714 &dprn_validate,
012fc215 4715 },
4716
1a9a0a59 4717 {
4718 /* Q_GPSV - GET_PRINT_SERVER */
4719 "get_print_server",
4720 "gpsv",
4721 RETRIEVE,
4722 "ps",
4723 PRINTSERVERS_TABLE,
4724 "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",
4725 gpsv_fields,
4726 9,
4727 "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",
4728 1,
4729 NULL,
4730 &gpsv_validate,
4731 },
4732
4733 {
4734 /* Q_APSV - ADD_PRINT_SERVER */
4735 "add_print_server",
4736 "apsv",
4737 APPEND,
4738 "ps",
4739 PRINTSERVERS_TABLE,
4740 "INTO printservers (mach_id, kind, printer_types, owner_type, owner_id, lpc_acl) VALUES (%d, '%s', %d, '%s', %d, %d)",
4741 apsv_fields,
4742 6,
4743 0,
4744 0,
4745 NULL,
4746 &apsv_validate,
4747 },
4748
4749 {
4750 /* Q_UPSV - UPDATE_PRINT_SERVER */
4751 "update_print_server",
4752 "upsv",
4753 UPDATE,
4754 "ps",
4755 PRINTSERVERS_TABLE,
4756 "printservers SET kind = '%s', printer_types = %d, owner_type = '%s', owner_id = %d, lpc_acl = %d",
4757 apsv_fields,
4758 5,
4759 "mach_id = %d",
4760 1,
4761 NULL,
4762 &apsv_validate,
4763 },
4764
4765 {
4766 /* Q_DPSV - DELETE_PRINT_SERVER */
4767 "delete_print_server",
4768 "dpsv",
4769 DELETE,
4770 "ps",
4771 PRINTSERVERS_TABLE,
4772 0,
4773 dpsv_fields,
4774 0,
4775 "mach_id = %d",
4776 1,
4777 NULL,
4778 &dpsv_validate,
4779 },
4780
d33e787c 4781 {
4782 /* Q_GALI - GET_ALIAS */
4783 "get_alias",
4784 "gali",
4785 RETRIEVE,
4786 "a",
03c05291 4787 ALIAS_TABLE,
4788 "name, type, trans FROM alias",
d33e787c 4789 gali_fields,
4790 3,
263a36d4 4791 "name LIKE '%s' AND type LIKE '%s' AND trans LIKE '%s'",
d33e787c 4792 3,
29028043 4793 "type, name, trans",
263a36d4 4794 NULL,
d33e787c 4795 },
4796
4797 {
4798 /* Q_AALI - ADD_ALIAS */
4799 "add_alias",
4800 "aali",
4801 APPEND,
4802 "a",
03c05291 4803 ALIAS_TABLE,
4e5ec77f 4804 "INTO alias (name, type, trans) VALUES ('%s', '%s', '%s')",
d33e787c 4805 aali_fields,
4806 3,
7ac48069 4807 NULL,
d33e787c 4808 0,
29028043 4809 NULL,
d33e787c 4810 &aali_validate,
4811 },
4812
4813 {
4814 /* Q_DALI - DELETE_ALIAS */
4815 "delete_alias",
4816 "dali",
4817 DELETE,
4818 "a",
03c05291 4819 ALIAS_TABLE,
7ac48069 4820 NULL,
d33e787c 4821 aali_fields,
4822 0,
5eaef520 4823 "name = '%s' AND type = '%s' AND trans = '%s'",
d33e787c 4824 3,
29028043 4825 NULL,
d33e787c 4826 &dali_validate,
4827 },
4828
4829 {
4830 /* Q_GVAL - GET_VALUE */
4831 "get_value",
4832 "gval",
4833 RETRIEVE,
0c345c78 4834 "val",
03c05291 4835 NUMVALUES_TABLE,
4836 "value FROM numvalues",
d33e787c 4837 gval_fields,
4838 1,
03c05291 4839 "name = '%s'",
d33e787c 4840 1,
29028043 4841 NULL,
d33e787c 4842 &gval_validate,
4843 },
4844
4845 {
4846 /* Q_AVAL - ADD_VALUE */
4847 "add_value",
4848 "aval",
4849 APPEND,
0c345c78 4850 "val",
03c05291 4851 NUMVALUES_TABLE,
4e5ec77f 4852 "INTO numvalues (name, value) VALUES ('%s', %s)",
d33e787c 4853 aval_fields,
4854 2,
7ac48069 4855 NULL,
d33e787c 4856 0,
29028043 4857 NULL,
d33e787c 4858 &aval_validate,
4859 },
4860
4861 {
4862 /* Q_UVAL - UPDATE_VALUE */
4863 "update_value",
4864 "uval",
4865 UPDATE,
0c345c78 4866 "val",
03c05291 4867 NUMVALUES_TABLE,
4e5ec77f 4868 "numvalues SET value = %s",
d33e787c 4869 aval_fields,
4870 1,
99e09b48 4871 "name = '%s'",
d33e787c 4872 1,
29028043 4873 NULL,
d33e787c 4874 &aval_validate,
4875 },
4876
4877 {
4878 /* Q_DVAL - DELETE_VALUE */
4879 "delete_value",
4880 "dval",
4881 DELETE,
0c345c78 4882 "val",
03c05291 4883 NUMVALUES_TABLE,
7ac48069 4884 NULL,
d33e787c 4885 dval_fields,
4886 0,
99e09b48 4887 "name = '%s'",
d33e787c 4888 1,
29028043 4889 NULL,
d33e787c 4890 &aval_validate,
4891 },
4892
4893 {
4894 /* Q_GATS - GET_ALL_TABLE_STATS */
4895 "get_all_table_stats",
4896 "gats",
4897 RETRIEVE,
4898 "tbs",
03c05291 4899 TBLSTATS_TABLE,
4900 "table_name, appends, updates, deletes, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS') FROM tblstats",
d33e787c 4901 gats_fields,
45bf7573 4902 5,
7ac48069 4903 NULL,
d33e787c 4904 0,
29028043 4905 "table_name",
d33e787c 4906 0,
4907 },
4908
2962e9ec 4909 {
4910 /* Q__SDL - _SET_DEBUG_LEVEL */
4911 "_set_debug_level",
4912 "_sdl",
4913 UPDATE,
7ac48069 4914 NULL,
03c05291 4915 0,
7ac48069 4916 NULL,
2962e9ec 4917 _sdl_fields,
4918 1,
7ac48069 4919 NULL,
2962e9ec 4920 0,
29028043 4921 NULL,
2962e9ec 4922 &_sdl_validate,
4923 },
4924
d33e787c 4925};
4926
5eaef520 4927int QueryCount2 = (sizeof(Queries2) / sizeof(struct query));
This page took 0.973507 seconds and 5 git commands to generate.