int setup_dfil();
int setup_dnfp();
int setup_dnfq();
+int setup_sshi();
+int setup_akum();
/* Query Followup Routines */
int followup_fix_modby();
int followup_ausr();
int followup_gpob();
int followup_glin();
-int followup_amtl();
int followup_anfq();
int followup_gzcl();
int followup_gsha();
/* Special Queries */
int set_pobox();
int get_list_info();
+int add_member_to_list();
+int delete_member_from_list();
int get_ace_use();
int qualified_get_lists();
int get_members_of_list();
int count_members_of_list();
int get_lists_of_member();
int register_user();
-int add_user_group();
\f
{V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
};
+static struct valobj VOuser0lock[] = {
+ {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
+ {V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
+};
+
static struct valobj VOmach0[] = {
{V_ID, 0, MACHINE, NAME, MACH_ID, SMS_MACHINE},
};
{V_ID, 0, LIST, NAME, LIST_ID, SMS_LIST},
};
+static struct valobj VOfilsys0[] = {
+ {V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
+};
+
static struct valobj VOchar0[] = {
{V_CHAR, 0},
};
};
static struct valobj VOfilsys0user1[] = {
+ {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
{V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
{V_ID, 1, USERS, LOGIN, USERS_ID, SMS_USER},
};
};
static struct valobj ausr_valobj[] = {
+ {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
{V_CHAR, 0},
{V_CHAR, 3},
{V_CHAR, 4},
static struct validate ausr_validate = {
ausr_valobj,
- 6,
+ 7,
LOGIN,
"u.login = \"%s\"",
1,
};
static struct validate rusr_validate = {
- 0,
- 0,
+ ausr_valobj,
+ 1,
0,
0,
0,
};
static struct valobj uusr_valobj[] = {
+ {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
{V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
{V_RENAME, 1, USERS, LOGIN, USERS_ID, SMS_NOT_UNIQUE},
{V_CHAR, 4},
static struct validate uusr_validate = {
uusr_valobj,
- 7,
+ 8,
0,
0,
0,
};
static struct validate uush_validate = {
- VOuser0,
- 1,
+ VOuser0lock,
+ 2,
0,
0,
0,
};
static struct validate uust_validate = {
- VOuser0,
- 1,
+ VOuser0lock,
+ 2,
0,
0,
0,
};
static struct validate dusr_validate = {
- VOuser0,
- 1,
+ VOuser0lock,
+ 2,
0,
0,
0,
};
static struct valobj dubu_valobj[] = {
+ {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
{V_ID, 0, USERS, UID, USERS_ID, SMS_USER}
};
static struct validate dubu_validate = {
dubu_valobj,
- 1,
+ 2,
0,
0,
0,
0,
};
+static char *gkum_fields[] = { LOGIN, "kerberos",
+ LOGIN, "kerberos" };
+
+static char *akum_fields[] = { LOGIN, "kerberos" };
+
+static struct valobj akum_valobj[] =
+{
+ {V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
+ {V_ID, 1, "strings", "string", "string_id", SMS_NO_MATCH},
+};
+
+static struct validate akum_validate =
+{
+ akum_valobj,
+ 1,
+ USERS_ID,
+ "k.users_id = %d or k.string_id = %d",
+ 2,
+ USERS_ID,
+ access_user,
+ setup_akum,
+ 0
+};
+
+static struct validate dkum_validate =
+{
+ akum_valobj,
+ 2,
+ USERS_ID,
+ "k.users_id = %d and k.string_id = %d",
+ 2,
+ USERS_ID,
+ access_user,
+ 0,
+ 0
+};
+
static char *gfbl_fields[] = {
LOGIN,
LOGIN, "fullname", "nickname", "home_addr",
};
static struct validate ufbl_validate = {
- VOuser0,
- 1,
+ VOuser0lock,
+ 2,
0,
0,
0,
};
static struct valobj spob_valobj[] = {
+ {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
{V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
{V_TYPE, 1, "pobox", 0, 0, SMS_TYPE},
};
static struct validate spob_validate = /* SET_POBOX */
{
spob_valobj,
- 2,
+ 3,
0,
0,
0,
static struct validate spop_validate = /* SET_POBOX_POP */
{
- VOuser0,
- 1,
+ VOuser0lock,
+ 2,
0,
0,
0,
static struct validate dpob_validate = /* DELETE_POBOX */
{
- VOuser0,
- 1,
+ VOuser0lock,
+ 2,
0,
0,
0,
static struct valobj amac_valobj[] = {
{V_CHAR, 0},
+ {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
{V_TYPE, 1, "mac_type", 0, 0, SMS_TYPE},
};
static struct validate amac_validate = {
amac_valobj,
- 2,
+ 3,
NAME,
"m.name = uppercase(\"%s\")",
1,
};
static struct valobj umac_valobj[] = {
+ {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
{V_ID, 0, MACHINE, NAME, MACH_ID, SMS_MACHINE},
{V_RENAME, 1, MACHINE, NAME, MACH_ID, SMS_NOT_UNIQUE},
{V_TYPE, 2, "mac_type", 0, 0, SMS_TYPE},
static struct validate umac_validate = {
umac_valobj,
- 3,
+ 4,
0,
0,
0,
NAME,
};
+static struct valobj dmac_valobj[] = {
+ {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
+ {V_ID, 0, MACHINE, NAME, MACH_ID, SMS_MACHINE},
+};
+
static struct validate dmac_validate = {
- VOmach0,
- 1,
+ dmac_valobj,
+ 2,
0,
0,
0,
NAME, DESC, LOCATION,
};
+static struct valobj aclu_valobj[] = {
+ {V_LOCK, 0, CLUSTER, 0, CLU_ID, SMS_DEADLOCK},
+ {V_CHAR, 0}
+};
+
static struct validate aclu_validate = /* for aclu */
{
- VOchar0,
- 1,
+ aclu_valobj,
+ 2,
NAME,
"c.name = \"%s\"",
1,
};
static struct valobj uclu_valobj[] = {
+ {V_LOCK, 0, CLUSTER, 0, CLU_ID, SMS_DEADLOCK},
{V_ID, 0, CLUSTER, NAME, CLU_ID, SMS_CLUSTER},
{V_RENAME, 1, CLUSTER, NAME, CLU_ID, SMS_NOT_UNIQUE},
};
};
static struct valobj asin_valobj[] = {
+ {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
{V_CHAR, 0},
{V_TYPE, 4, "service", 0, 0, SMS_TYPE},
{V_TYPE, 6, ACE_TYPE, 0, 0, SMS_ACE},
static struct validate asin_validate = /* for asin, usin */
{
asin_valobj,
- 4,
+ 5,
NAME,
"s.name = uppercase(\"%s\")",
1,
};
static struct validate rsve_validate = {
- 0,
- 0,
+ asin_valobj,
+ 1,
NAME,
"s.name = uppercase(\"%s\")",
1,
};
static struct validate ssif_validate = {
- 0,
- 0,
+ asin_valobj,
+ 1,
NAME,
"s.name = uppercase(\"%s\")",
1,
};
static struct validate dsin_validate = {
- 0,
- 0,
+ asin_valobj,
+ 1,
NAME,
"s.name = uppercase(\"%s\")",
1,
};
static struct valobj ashi_valobj[] = {
+ {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
{V_NAME, 0, "servers", NAME, 0, SMS_SERVICE},
{V_ID, 1, MACHINE, NAME, MACH_ID, SMS_MACHINE},
};
static struct validate ashi_validate = /* ashi & ushi */
{
ashi_valobj,
- 2,
+ 3,
SERVICE,
"sh.service = uppercase(\"%s\") and sh.mach_id = %d",
2,
static struct validate rshe_validate =
{
ashi_valobj,
- 2,
+ 3,
SERVICE,
"sh.service = uppercase(\"%s\") and sh.mach_id = %d",
2,
static struct validate ssho_validate =
{
ashi_valobj,
- 2,
+ 3,
SERVICE,
"sh.service = uppercase(\"%s\") and sh.mach_id = %d",
2,
static struct valobj sshi_valobj[] = {
{V_NAME, 0, "servers", NAME, 0, SMS_SERVICE},
- {V_ID, 1, MACHINE, NAME, MACH_ID, SMS_MACHINE},
};
static struct validate sshi_validate =
{
sshi_valobj,
- 2,
- SERVICE,
- "s.service = uppercase(\"%s\") and s.mach_id = %d",
- 2,
+ 1,
0,
0,
0,
0,
+ 0,
+ setup_sshi,
+ 0,
};
static char *dshi_fields[] = {
static struct validate dshi_validate =
{
ashi_valobj,
- 2,
+ 3,
SERVICE,
"sh.service = uppercase(\"%s\") and sh.mach_id = %d",
2,
static struct valobj afil_valobj[] = {
{V_CHAR, 0},
+ {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
{V_TYPE, 1, FILESYS, 0, 0, SMS_FSTYPE},
{V_ID, 2, MACHINE, NAME, MACH_ID, SMS_MACHINE},
{V_CHAR, 3},
static struct validate afil_validate = {
afil_valobj,
- 7,
+ 8,
LABEL,
"fs.label = \"%s\"",
1,
};
static struct valobj ufil_valobj[] = {
+ {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
{V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
{V_RENAME, 1, FILESYS, LABEL, FILSYS_ID, SMS_NOT_UNIQUE},
{V_TYPE, 2, FILESYS, 0, 0, SMS_FSTYPE},
static struct validate ufil_validate = {
ufil_valobj,
- 8,
+ 9,
LABEL,
"fs.filsys_id = %d",
1,
};
static struct valobj dfil_valobj[] = {
+ {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
{V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
};
static struct validate dfil_validate = {
dfil_valobj,
- 1,
+ 2,
"label",
"fs.filsys_id = %d",
1,
0,
};
+static char *gfgm_fields[] = {
+ "fsgroup", FILESYS, "sortkey"
+};
+
+static struct valobj gfgm_valobj[] = {
+ {V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
+ {V_SORT, 1},
+ {V_SORT, 0},
+};
+
+static struct validate gfgm_validate = {
+ gfgm_valobj,
+ 3,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
+static struct valobj aftg_valobj[] = {
+ {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
+ {V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
+ {V_ID, 1, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
+};
+
+static struct validate aftg_validate = {
+ aftg_valobj,
+ 3,
+ "group_id",
+ "fg.group_id = %d and fg.filsys_id = %d",
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
static char *ganf_fields[] = {
MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
};
0,
access_filesys,
0,
- followup_fix_modby,
+ followup_gnfq,
};
static char *gnqp_fields[] = {
static struct validate anfq_validate = {
VOfilsys0user1,
- 2,
+ 3,
USERS_ID,
"nq.filsys_id = %d and nq.users_id = %d",
2,
static struct validate unfq_validate = {
VOfilsys0user1,
- 2,
+ 3,
USERS_ID,
"nq.filsys_id = %d and nq.users_id = %d",
2,
static struct validate dnfq_validate = {
VOfilsys0user1,
- 2,
+ 3,
USERS_ID,
"nq.filsys_id = %d and nq.users_id = %d",
2,
};
static struct valobj alis_valobj[] = {
+ {V_LOCK, 0, LIST, 0, LIST_ID, SMS_DEADLOCK},
{V_CHAR, 0},
{V_TYPE, 7, ACE_TYPE, 0, 0, SMS_ACE},
{V_TYPEDATA, 8, 0, 0, LIST_ID, SMS_ACE},
static struct validate alis_validate = {
alis_valobj,
- 3,
+ 4,
NAME,
"l.name = \"%s\"",
1,
};
static struct valobj ulis_valobj[] = {
+ {V_LOCK, 0, LIST, 0, LIST_ID, SMS_DEADLOCK},
{V_ID, 0, LIST, NAME, LIST_ID, SMS_LIST},
{V_RENAME, 1, LIST, NAME, LIST_ID, SMS_NOT_UNIQUE},
{V_TYPE, 8, ACE_TYPE, 0, 0, SMS_ACE},
static struct validate ulis_validate = {
ulis_valobj,
- 4,
+ 5,
NAME,
"l.list_id = %d",
1,
};
static struct valobj amtl_valobj[] = {
+ {V_LOCK, 0, LIST, 0, LIST_ID, SMS_DEADLOCK},
{V_ID, 0, LIST, NAME, LIST_ID, SMS_LIST},
{V_TYPE, 1, "member", 0, 0, SMS_TYPE},
{V_TYPEDATA, 2, 0, 0, 0, SMS_NO_MATCH},
};
-static struct validate amtl_validate = /* for amtl and dmfl */
+static struct validate amtl_validate =
{
amtl_valobj,
- 3,
- "member_id",
- "m.list_id = %d and m.member_type = \"%s\" and m.member_id = %d",
- 3,
+ 4,
+ 0,
+ 0,
+ 0,
+ 0,
+ access_list,
+ 0,
+ add_member_to_list,
+};
+
+static struct validate dmfl_validate =
+{
+ amtl_valobj,
+ 4,
+ 0,
+ 0,
+ 0,
0,
access_list,
0,
- followup_amtl,
+ delete_member_from_list,
};
static char *gaus_fields[] = {
count_members_of_list,
};
-static char *augr_fields[] = {
- LOGIN,
-};
-
-static struct validate augr_validate = {
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- add_user_group,
-};
-
static char *gzcl_fields[] = {
CLASS,
CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
0,
};
+static char *gpdm_fields[] = {
+ NAME,
+ NAME, "rpcnum", "host", MOD1, MOD2, MOD3,
+};
+
+static char *apdm_fields[] = {
+ NAME, "rpcnum", "host"
+};
+
+static struct valobj apdm_valobj[] = {
+ {V_CHAR, 0},
+ {V_ID, 2, MACHINE, NAME, MACH_ID, SMS_MACHINE},
+};
+
+static struct validate apdm_validate = {
+ apdm_valobj,
+ 2,
+ NAME,
+ "p.name = \"%s\"",
+ 1,
+ 0,
+ 0,
+ 0,
+ set_modtime,
+};
+
+static struct validate dpdm_validate = {
+ 0,
+ 0,
+ NAME,
+ "p.name = \"%s\"",
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
static char *gali_fields[] = {
NAME, TYPE, "trans",
NAME, TYPE, "trans",
&dubu_validate,
},
+ {
+ /* Q_GKUM - GET_KERBEROS_USER_MAP */
+ "get_kerberos_user_map",
+ "gkum",
+ RETRIEVE,
+ "k",
+ "krbmap",
+ "%c = users.login, %c = strings.string",
+ gkum_fields,
+ 2,
+ "users.login = \"%s\" and strings.string = \"%s\" and k.users_id = users.users_id and k.string_id = strings.string_id",
+ 2,
+ &VDsort2,
+ },
+
+ {
+ /* Q_AKUM - ADD_KERBEROS_USER_MAP */
+ "add_kerberos_user_map",
+ "akum",
+ APPEND,
+ "k",
+ "krbmap",
+ "users_id = %i4, string_id = %i4",
+ akum_fields,
+ 2,
+ 0,
+ 0,
+ &akum_validate,
+ },
+
+ {
+ /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
+ "delete_kerberos_user_map",
+ "dkum",
+ DELETE,
+ "k",
+ "krbmap",
+ 0,
+ akum_fields,
+ 0,
+ "k.users_id = %d and k.string_id = %d",
+ 2,
+ &dkum_validate,
+ },
+
{
/* Q_GFBL - GET_FINGER_BY_LOGIN */
"get_finger_by_login",
"override = int1(%c), success = int1(%c), inprogress = int1(%c), hosterror = int1(%c), hosterrmsg = %c, ltt = int4(%c), lts = int4(%c)",
sshi_fields,
7,
- "s.service = uppercase(\"%s\") and s.mach_id = %d",
+ "s.service = uppercase(\"%s\") and s.mach_id = machine.mach_id and machine.name = \"%s\"",
2,
&sshi_validate,
},
&dfil_validate,
},
+ {
+ /* Q_GFGM - GET_FSGROUOP_MEMBERS */
+ "get_fsgroup_members",
+ "gfgm",
+ RETRIEVE,
+ "fg",
+ "fsgroup",
+ "%c = filesys.label, %c = fg.key",
+ gfgm_fields,
+ 2,
+ "fg.group_id = %d and filesys.filsys_id = fg.filsys_id",
+ 1,
+ &gfgm_validate,
+ },
+
+ {
+ /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
+ "add_filesys_to_fsgroup",
+ "aftg",
+ APPEND,
+ "fg",
+ "fsgroup",
+ "group_id = filesys.filsys_id, filsys_id = %i4, key = %c",
+ gfgm_fields,
+ 2,
+ "filesys.filsys_id = %d and filesys.type = \"FSGROUP\"",
+ 1,
+ &aftg_validate,
+ },
+
+ {
+ /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
+ "remove_filesys_from_fsgroup",
+ "rffg",
+ DELETE,
+ "fg",
+ "fsgroup",
+ (char *)0,
+ gfgm_fields,
+ 0,
+ "fg.group_id = %d and fg.filsys_id = %d",
+ 2,
+ &aftg_validate,
+ },
+
{
/* Q_GANF - GET_ALL_NFSPHYS */
"get_all_nfsphys",
RETRIEVE,
"nq",
"nfsquota",
- "%c = filesys.label, %c = users.login, %c = text(nq.quota), %c = nfsphys.dir, %c = machine.name, %c = nq.modtime, %c = text(nq.modby), %c = nq.modwith",
+ "%c = filesys.label, %c = users.login, %c = text(nq.quota), %c = text(nq.phys_id), %c = machine.name, %c = nq.modtime, %c = text(nq.modby), %c = nq.modwith",
gnfq_fields,
8,
- "filesys.label = \"%s\" and nq.users_id = %d and filesys.filsys_id = nq.filsys_id and nfsphys.nfsphys_id = nq.phys_id and machine.mach_id = filesys.mach_id and users.users_id = nq.users_id",
+ "filesys.label = \"%s\" and nq.users_id = %d and filesys.filsys_id = nq.filsys_id and machine.mach_id = filesys.mach_id and users.users_id = nq.users_id",
2,
&gnfq_validate,
},
"add_member_to_list",
"amtl",
APPEND,
- "m",
- "members",
- "list_id=%i4, member_type=%c, member_id=%i4",
+ 0,
+ "imembers",
+ 0,
amtl_fields,
3,
(char *)0,
"delete_member_from_list",
"dmfl",
DELETE,
- "m",
- "members",
+ 0,
+ "imembers",
(char *)0,
amtl_fields,
0,
- "m.list_id = %d and m.member_type = \"%s\" and m.member_id = %d",
+ 0,
3,
- &amtl_validate,
+ &dmfl_validate,
},
{
"gmol",
RETRIEVE,
(char *)0,
- "members",
+ "imembers",
(char *)0,
gmol_fields,
0,
"glom",
RETRIEVE,
0,
- "members",
+ "imembers",
0,
glom_fields,
6,
"cmol",
RETRIEVE,
0,
- "members",
+ "imembers",
0,
cmol_fields,
1,
1,
&cmol_validate,
},
-#ifdef notdef
- {
- /* Q_AUGR - ADD_USER_GROUP */
- "add_user_group",
- "augr",
- APPEND,
- (char *)0,
- (char *)0,
- (char *)0,
- augr_fields,
- 1,
- (char *)0,
- 0,
- &augr_validate,
- },
-#endif
+
{
/* Q_GZCL - GET_ZEPHYR_CLASS */
"get_zephyr_class",
&dpcp_validate,
},
+ {
+ /* Q_GPDM - GET_PALLADIUM */
+ "get_palladium",
+ "gpdm",
+ RETRIEVE,
+ "p",
+ "palladium",
+ "%c = p.name, %c = text(p.ident), %c = machine.name, %c = p.modtime, %c = text(p.modby), %c = p.modwith",
+ gpdm_fields,
+ 6,
+ "p.name = \"%s\" and machine.mach_id = p.mach_id",
+ 1,
+ &VDsortf,
+ },
+
+ {
+ /* Q_APDM - ADD_PALLADIUM */
+ "add_palladium",
+ "apdm",
+ APPEND,
+ "p",
+ "palladium",
+ "name = %c, ident = int4(%c), mach_id = %i4",
+ apdm_fields,
+ 3,
+ 0,
+ 0,
+ &apdm_validate,
+ },
+
+ {
+ /* Q_DPDM - DELETE_PALLADIUM */
+ "delete_palladium",
+ "dpdm",
+ DELETE,
+ "p",
+ "palladium",
+ 0,
+ apdm_fields,
+ 0,
+ "p.name = \"%s\"",
+ 1,
+ &dpdm_validate,
+ },
+
{
/* Q_GALI - GET_ALIAS */
"get_alias",