int pos = find_arg_with_value(ua, "jobid");
if (pos != -1 && is_a_number_list(ua->argv[pos])) {
- POOL_MEM jobids;
- pm_strcpy(jobids, ua->argv[pos]);
- bvfs_update_path_hierarchy_cache(ua->jcr, ua->db, jobids.c_str());
+ bvfs_update_path_hierarchy_cache(ua->jcr, ua->db, ua->argv[pos]);
} else {
/* update cache for all jobids */
bvfs_update_cache(ua->jcr, ua->db);
static bool bvfs_parse_arg(UAContext *ua,
DBId_t *pathid, char **path, char **jobid,
+ char **username,
int *limit, int *offset)
{
*pathid=0;
*offset=0;
*path=NULL;
*jobid=NULL;
+ *username=NULL;
for (int i=1; i<ua->argc; i++) {
if (strcasecmp(ua->argk[i], NT_("pathid")) == 0) {
if (strcasecmp(ua->argk[i], NT_("path")) == 0) {
*path = ua->argv[i];
}
+
+ if (strcasecmp(ua->argk[i], NT_("username")) == 0) {
+ *username = ua->argv[i];
+ }
if (strcasecmp(ua->argk[i], NT_("jobid")) == 0) {
if (is_a_number_list(ua->argv[i])) {
{
DBId_t pathid=0;
int limit=2000, offset=0, i;
- char *path=NULL, *jobid=NULL;
+ char *path=NULL, *jobid=NULL, *username=NULL;
char *empty = (char *)"";
char *fileid, *dirid, *hardlink, *id;
id = fileid = dirid = hardlink = empty;
- if (!bvfs_parse_arg(ua, &pathid, &path, &jobid,
+ if (!bvfs_parse_arg(ua, &pathid, &path, &jobid, &username,
&limit, &offset))
{
ua->error_msg("Can't find jobid, pathid or path argument\n");
}
Bvfs fs(ua->jcr, ua->db);
+ fs.set_username(username);
fs.set_jobids(jobid);
if ((i = find_arg_with_value(ua, "fileid")) >= 0) {
{
DBId_t pathid=0;
int limit=2000, offset=0;
- char *path=NULL, *jobid=NULL;
+ char *path=NULL, *jobid=NULL, *username=NULL;
+ char *pattern=NULL;
+ int i;
- if (!bvfs_parse_arg(ua, &pathid, &path, &jobid,
+ if (!bvfs_parse_arg(ua, &pathid, &path, &jobid, &username,
&limit, &offset))
{
ua->error_msg("Can't find jobid, pathid or path argument\n");
return true; /* not enough param */
}
+ if ((i = find_arg_with_value(ua, "pattern")) >= 0) {
+ pattern = ua->argv[i];
+ }
Bvfs fs(ua->jcr, ua->db);
+ fs.set_username(username);
fs.set_jobids(jobid);
fs.set_handler(bvfs_result_handler, ua);
fs.set_limit(limit);
-
+ if (pattern) {
+ fs.set_pattern(pattern);
+ }
if (pathid) {
fs.ch_dir(pathid);
} else {
{
DBId_t pathid=0;
int limit=2000, offset=0;
- char *path=NULL, *jobid=NULL;
+ char *path=NULL, *jobid=NULL, *username=NULL;
- if (!bvfs_parse_arg(ua, &pathid, &path, &jobid,
+ if (!bvfs_parse_arg(ua, &pathid, &path, &jobid, &username,
&limit, &offset))
{
ua->error_msg("Can't find jobid, pathid or path argument\n");
}
Bvfs fs(ua->jcr, ua->db);
+ fs.set_username(username);
fs.set_jobids(jobid);
fs.set_limit(limit);
fs.set_handler(bvfs_result_handler, ua);
}
/*
- * .bvfs_versions jobid=x filenameid=10 pathid=10 copies versions
+ * .bvfs_versions jobid=x fnid=10 pathid=10 copies versions
* (jobid isn't used)
*/
static bool dot_bvfs_versions(UAContext *ua, const char *cmd)
{
DBId_t pathid=0, fnid=0;
int limit=2000, offset=0;
- char *path=NULL, *jobid=NULL, *client=NULL;
+ char *path=NULL, *jobid=NULL, *client=NULL, *username=NULL;
bool copies=false, versions=false;
- if (!bvfs_parse_arg(ua, &pathid, &path, &jobid,
+ if (!bvfs_parse_arg(ua, &pathid, &path, &jobid, &username,
&limit, &offset))
{
ua->error_msg("Can't find jobid, pathid or path argument\n");
if (!bvfs_parse_arg_version(ua, &client, &fnid, &versions, &copies))
{
- ua->error_msg("Can't find client or filenameid argument\n");
+ ua->error_msg("Can't find client or fnid argument\n");
return true; /* not enough param */
}