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