2003-07-xx Version 1.31 Beta xxJul03
+- Add a new test -- bsr-opt-test for testing bsr optimization. As usual,
+ it pointed out a bug where the directory tree handling code destroyed
+ the restore arg list.
+- Many updates to the manual.
+- Pass prefix links flag to FD.
+- Sort list of commands for Console
+- Set default FD and SD concurrent jobs to 10.
- Rework the find next volume code in catreq.c to correct some minor
but subtle logic errors and to eliminate a goto.
- Did spell check on manual.
- Document update volume: jobid, current, before, all
- Document run "yes".
- Document that bscan does not work with multiple simultaneous jobs.
+- Update Automatic Volume Labeling in disk.wml
Testing to do: (painful)
For 1.32:
+- Implement ClientRunBeforeJob and ClientRunAfterJob.
- Implement new alist in FileSet scanning.
- Add JobLevel in FD status (but make sure it is defined).
- Audit all UA commands to ensure that we always prompt where possible.
} else {
where = ""; /* None */
}
+ jcr->prefix_links = jcr->job->PrefixLinks;
bash_spaces(where);
bnet_fsend(fd, restorecmd, replace, jcr->prefix_links, where);
unbash_spaces(where);
{ N_("cancel"), cancelcmd, _("cancel job=nnn -- cancel a job")},
{ N_("create"), createcmd, _("create DB Pool from resource")},
{ N_("delete"), delete_cmd, _("delete [pool=<pool-name> | media volume=<volume-name>]")},
+ { N_("estimate"), estimate_cmd, _("performs FileSet estimate debug=1 give full listing")},
+ { N_("exit"), quit_cmd, _("exit = quit")},
{ N_("help"), help_cmd, _("print this command")},
{ N_("label"), labelcmd, _("label a tape")},
- { N_("relabel"), relabelcmd, _("relabel a tape")},
{ N_("list"), listcmd, _("list [pools | jobs | jobtotals | media <pool> | files job=<nn>]; from catalog")},
{ N_("llist"), llistcmd, _("full or long list like list command")},
{ N_("messages"), messagescmd, _("messages")},
{ N_("mount"), mount_cmd, _("mount <storage-name>")},
- { N_("restore"), restorecmd, _("restore files")},
{ N_("prune"), prunecmd, _("prune expired records from catalog")},
{ N_("purge"), purgecmd, _("purge records from catalog")},
+ { N_("query"), querycmd, _("query catalog")},
+ { N_("quit"), quit_cmd, _("quit")},
+ { N_("relabel"), relabelcmd, _("relabel a tape")},
+ { N_("release"), release_cmd, _("release <storage-name>")},
+ { N_("restore"), restorecmd, _("restore files")},
{ N_("run"), runcmd, _("run <job-name>")},
{ N_("setdebug"), setdebug_cmd, _("sets debug level")},
- { N_("estimate"), estimate_cmd, _("performs FileSet estimate debug=1 give full listing")},
- { N_("var"), var_cmd, _("does variable expansion")},
{ N_("show"), show_cmd, _("show (resource records) [jobs | pools | ... | all]")},
{ N_("sqlquery"), sqlquerycmd, _("use SQL to query catalog")},
{ N_("status"), statuscmd, _("status [storage | client]=<name>")},
+ { N_("time"), time_cmd, _("print current time")},
{ N_("unmount"), unmount_cmd, _("unmount <storage-name>")},
{ N_("update"), update_cmd, _("update Volume or Pool")},
{ N_("use"), use_cmd, _("use catalog xxx")},
+ { N_("var"), var_cmd, _("does variable expansion")},
{ N_("version"), version_cmd, _("print Director version")},
- { N_("quit"), quit_cmd, _("quit")},
- { N_("query"), querycmd, _("query catalog")},
- { N_("release"), release_cmd, _("release <storage-name>")},
- { N_("time"), time_cmd, _("print current time")},
- { N_("exit"), quit_cmd, _("exit = quit")},
{ N_("wait"), wait_cmd, _("wait until no jobs are running")},
};
#define comsize (sizeof(commands)/sizeof(struct cmdstruct))
job->hdr.name, ji.ClientName, ji.store?ji.store->hdr.name:"",
working_directory);
}
- Dmsg1(400, "Submitting: %s\n", ua->cmd);
+ Dmsg1(400, "Submitting: %s\n", ua->cmd);
parse_ua_args(ua);
runcmd(ua, ua->cmd);
if (ua->UA_sock) {
bnet_close(ua->UA_sock);
}
-
free(ua);
}
void user_select_files_from_tree(TREE_CTX *tree)
{
char cwd[2000];
+ /* Get a new context so we don't destroy restore command args */
+ UAContext *ua = new_ua_context(ua->jcr);
+ ua->UA_sock = tree->ua->UA_sock; /* patch in UA socket */
bsendmsg(tree->ua, _(
"\nYou are now entering file selection mode where you add and\n"
bsendmsg(tree->ua, _("cwd is: %s\n"), cwd);
for ( ;; ) {
int found, len, stat, i;
- if (!get_cmd(tree->ua, "$ ")) {
+ if (!get_cmd(ua, "$ ")) {
break;
}
- parse_ua_args(tree->ua);
- if (tree->ua->argc == 0) {
+ parse_ua_args(ua);
+ if (ua->argc == 0) {
return;
}
- len = strlen(tree->ua->argk[0]);
+ len = strlen(ua->argk[0]);
found = 0;
stat = 0;
for (i=0; i<(int)comsize; i++) /* search for command */
- if (strncasecmp(tree->ua->argk[0], _(commands[i].key), len) == 0) {
- stat = (*commands[i].func)(tree->ua, tree); /* go execute command */
+ if (strncasecmp(ua->argk[0], _(commands[i].key), len) == 0) {
+ stat = (*commands[i].func)(ua, tree); /* go execute command */
found = 1;
break;
}
break;
}
}
+ ua->UA_sock = NULL; /* don't release restore socket */
+ free_ua_context(ua); /* get rid of temp UA context */
}
{"piddirectory", store_dir, ITEM(res_client.pid_directory), 0, ITEM_REQUIRED, 0},
{"subsysdirectory", store_dir, ITEM(res_client.subsys_directory), 0, 0, 0},
{"requiressl", store_yesno, ITEM(res_client.require_ssl), 1, ITEM_DEFAULT, 0},
- {"maximumconcurrentjobs", store_pint, ITEM(res_client.MaxConcurrentJobs), 0, ITEM_DEFAULT, 5},
+ {"maximumconcurrentjobs", store_pint, ITEM(res_client.MaxConcurrentJobs), 0, ITEM_DEFAULT, 10},
{"messages", store_res, ITEM(res_client.messages), R_MSGS, 0, 0},
{"heartbeatinterval", store_time, ITEM(res_client.heartbeat_interval), 0, ITEM_DEFAULT, 20*60},
{NULL, NULL, NULL, 0, 0, 0}
{"piddirectory", store_dir, ITEM(res_store.pid_directory), 0, ITEM_REQUIRED, 0},
{"subsysdirectory", store_dir, ITEM(res_store.subsys_directory), 0, 0, 0},
{"requiressl", store_yesno,ITEM(res_store.require_ssl), 1, ITEM_DEFAULT, 0},
- {"maximumconcurrentjobs", store_pint, ITEM(res_store.max_concurrent_jobs), 0, ITEM_DEFAULT, 5},
+ {"maximumconcurrentjobs", store_pint, ITEM(res_store.max_concurrent_jobs), 0, ITEM_DEFAULT, 10},
{"heartbeatinterval", store_time, ITEM(res_store.heartbeat_interval), 0, ITEM_DEFAULT, 20*60},
{NULL, NULL, 0, 0, 0, 0}
};
/* */
#define VERSION "1.31"
#define VSTRING "1"
-#define BDATE "02 Jul 2003"
-#define LSMDATE "02Jul03"
+#define BDATE "06 Jul 2003"
+#define LSMDATE "06Jul03"
/* Debug flags */
#define DEBUG 1