From: <ri...@us...> - 2007-02-17 17:30:14
|
Revision: 4194 http://bacula.svn.sourceforge.net/bacula/?rev=4194&view=rev Author: ricozz Date: 2007-02-17 09:30:11 -0800 (Sat, 17 Feb 2007) Log Message: ----------- ebl add update volume=xxx recyclepool=yyyy Modified Paths: -------------- trunk/bacula/src/dird/protos.h trunk/bacula/src/dird/ua_select.c Modified: trunk/bacula/src/dird/protos.h =================================================================== --- trunk/bacula/src/dird/protos.h 2007-02-17 17:29:28 UTC (rev 4193) +++ trunk/bacula/src/dird/protos.h 2007-02-17 17:30:11 UTC (rev 4194) @@ -221,7 +221,7 @@ FILESET *select_fileset_resource(UAContext *ua); int select_pool_and_media_dbr(UAContext *ua, POOL_DBR *pr, MEDIA_DBR *mr); int select_media_dbr(UAContext *ua, MEDIA_DBR *mr); -bool select_pool_dbr(UAContext *ua, POOL_DBR *pr); +bool select_pool_dbr(UAContext *ua, POOL_DBR *pr, char *argk="pool"); int select_client_dbr(UAContext *ua, CLIENT_DBR *cr); void start_prompt(UAContext *ua, const char *msg); @@ -232,7 +232,7 @@ int get_storage_drive(UAContext *ua, STORE *store); int get_storage_slot(UAContext *ua, STORE *store); int get_media_type(UAContext *ua, char *MediaType, int max_media); -bool get_pool_dbr(UAContext *ua, POOL_DBR *pr); +bool get_pool_dbr(UAContext *ua, POOL_DBR *pr, char *argk="pool"); int get_client_dbr(UAContext *ua, CLIENT_DBR *cr); POOL *get_pool_resource(UAContext *ua); POOL *select_pool_resource(UAContext *ua); Modified: trunk/bacula/src/dird/ua_select.c =================================================================== --- trunk/bacula/src/dird/ua_select.c 2007-02-17 17:29:28 UTC (rev 4193) +++ trunk/bacula/src/dird/ua_select.c 2007-02-17 17:30:11 UTC (rev 4194) @@ -431,19 +431,19 @@ return 1; } - - /* Scan what the user has entered looking for: * - * pool=<pool-name> + * argk=<pool-name> * + * where argk can be : pool, recyclepool, scratchpool, nextpool etc.. + * * if error or not found, put up a list of pool DBRs * to choose from. * * returns: false on error * true on success and fills in POOL_DBR */ -bool get_pool_dbr(UAContext *ua, POOL_DBR *pr) +bool get_pool_dbr(UAContext *ua, POOL_DBR *pr, char *argk) { if (pr->Name[0]) { /* If name already supplied */ if (db_get_pool_record(ua->jcr, ua->db, pr) && @@ -452,16 +452,17 @@ } bsendmsg(ua, _("Could not find Pool \"%s\": ERR=%s"), pr->Name, db_strerror(ua->db)); } - if (!select_pool_dbr(ua, pr)) { /* try once more */ + if (!select_pool_dbr(ua, pr, argk)) { /* try once more */ return false; } return true; } /* - * Select a Pool record from the catalog + * Select a Pool record from catalog + * argk can be pool, recyclepool, scratchpool etc.. */ -bool select_pool_dbr(UAContext *ua, POOL_DBR *pr) +bool select_pool_dbr(UAContext *ua, POOL_DBR *pr, char *argk) { POOL_DBR opr; char name[MAX_NAME_LENGTH]; @@ -469,7 +470,7 @@ uint32_t *ids; for (i=1; i<ua->argc; i++) { - if (strcasecmp(ua->argk[i], NT_("pool")) == 0 && ua->argv[i] && + if (strcasecmp(ua->argk[i], argk) == 0 && ua->argv[i] && acl_access_ok(ua, Pool_ACL, ua->argv[i])) { bstrncpy(pr->Name, ua->argv[i], sizeof(pr->Name)); if (!db_get_pool_record(ua->jcr, ua->db, pr)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |