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