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