Skip to content

Commit

Permalink
mxqd: When run as non-root only load groups for current user
Browse files Browse the repository at this point in the history
  • Loading branch information
mariux committed Oct 23, 2015
1 parent f748d64 commit 83785b5
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 36 deletions.
33 changes: 0 additions & 33 deletions mxq_group.c
Original file line number Diff line number Diff line change
Expand Up @@ -292,39 +292,6 @@ int mxq_load_active_groups_for_user(struct mx_mysql *mysql, struct mxq_group **m
return res;
}

int mxq_load_active_groups(struct mx_mysql *mysql, struct mxq_group **mxq_groups)
{
int res;
struct mxq_group *groups = NULL;
struct mxq_group g = {0};
struct mx_mysql_bind result = {0};

assert(mysql);
assert(mxq_groups);

*mxq_groups = NULL;

char *query =
"SELECT"
GROUP_FIELDS
" FROM mxq_group"
" WHERE (group_jobs_inq > 0 OR group_jobs_running > 0)"
" ORDER BY user_name, group_mtime"
" LIMIT 1000";

res = bind_result_group_fields(&result, &g);
assert(res == 0);

res = mx_mysql_do_statement_retry_on_fail(mysql, query, NULL, &result, &g, (void **)&groups, sizeof(*groups));
if (res < 0) {
mx_log_err("mx_mysql_do_statement_retry_on_fail(): %m");
return res;
}

*mxq_groups = groups;
return res;
}

int mxq_load_running_groups(struct mx_mysql *mysql, struct mxq_group **mxq_groups)
{
int res;
Expand Down
1 change: 0 additions & 1 deletion mxq_group.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ inline uint64_t mxq_group_jobs_inq(struct mxq_group *g);

int mxq_load_group(struct mx_mysql *mysql, struct mxq_group **mxq_groups, uint64_t group_id);
int mxq_load_all_groups(struct mx_mysql *mysql, struct mxq_group **mxq_groups);
int mxq_load_active_groups(struct mx_mysql *mysql, struct mxq_group **mxq_groups);
int mxq_load_all_groups_for_user(struct mx_mysql *mysql, struct mxq_group **mxq_groups, uint64_t user_uid);
int mxq_load_active_groups_for_user(struct mx_mysql *mysql, struct mxq_group **mxq_groups, uint64_t user_uid);
int mxq_load_running_groups(struct mx_mysql *mysql, struct mxq_group **mxq_groups);
Expand Down
7 changes: 5 additions & 2 deletions mxqd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1626,13 +1626,16 @@ int catchall(struct mxq_server *server) {
}

int load_groups(struct mxq_server *server) {
struct mxq_group *mxqgroups;
struct mxq_group *mxqgroups = NULL;
struct mxq_group_list *group;
int group_cnt;
int total;
int i;

group_cnt = mxq_load_active_groups(server->mysql, &mxqgroups);
if (getuid() == 0)
group_cnt = mxq_load_running_groups(server->mysql, &mxqgroups);
else
group_cnt = mxq_load_running_groups_for_user(server->mysql, &mxqgroups, getuid());

for (i=0, total=0; i<group_cnt; i++) {
group = server_update_groupdata(server, &mxqgroups[group_cnt-i-1]);
Expand Down

0 comments on commit 83785b5

Please sign in to comment.