Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(28) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(200) |
Feb
(258) |
Mar
(236) |
Apr
(345) |
May
(329) |
Jun
(162) |
Jul
(260) |
Aug
(265) |
Sep
(112) |
Oct
(280) |
Nov
(362) |
Dec
(297) |
2006 |
Jan
(201) |
Feb
(147) |
Mar
(136) |
Apr
(268) |
May
(103) |
Jun
(340) |
Jul
(399) |
Aug
(381) |
Sep
(367) |
Oct
(166) |
Nov
(287) |
Dec
(405) |
2007 |
Jan
(366) |
Feb
(245) |
Mar
(192) |
Apr
(194) |
May
(291) |
Jun
(172) |
Jul
(158) |
Aug
(153) |
Sep
(273) |
Oct
(121) |
Nov
(183) |
Dec
(164) |
2008 |
Jan
(183) |
Feb
(170) |
Mar
(186) |
Apr
(152) |
May
(216) |
Jun
(190) |
Jul
(190) |
Aug
(79) |
Sep
(133) |
Oct
(282) |
Nov
(142) |
Dec
(170) |
2009 |
Jan
(147) |
Feb
(79) |
Mar
(172) |
Apr
(102) |
May
(101) |
Jun
(49) |
Jul
(200) |
Aug
(127) |
Sep
(150) |
Oct
(181) |
Nov
(73) |
Dec
(143) |
2010 |
Jan
(118) |
Feb
(287) |
Mar
(138) |
Apr
(201) |
May
(32) |
Jun
(15) |
Jul
(18) |
Aug
(43) |
Sep
(9) |
Oct
(2) |
Nov
(16) |
Dec
(7) |
2011 |
Jan
(7) |
Feb
(23) |
Mar
(13) |
Apr
(9) |
May
(3) |
Jun
(4) |
Jul
(7) |
Aug
(16) |
Sep
(9) |
Oct
(61) |
Nov
(52) |
Dec
(29) |
2012 |
Jan
(38) |
Feb
(12) |
Mar
(7) |
Apr
(10) |
May
(14) |
Jun
(46) |
Jul
(1) |
Aug
(10) |
Sep
(23) |
Oct
(4) |
Nov
(4) |
Dec
(5) |
2013 |
Jan
(4) |
Feb
(19) |
Mar
|
Apr
(1) |
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
(24) |
Apr
(18) |
May
(7) |
Jun
(7) |
Jul
(7) |
Aug
(6) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
(4) |
Jun
(1) |
Jul
|
Aug
(9) |
Sep
(5) |
Oct
(5) |
Nov
(2) |
Dec
(9) |
2016 |
Jan
(23) |
Feb
(5) |
Mar
|
Apr
|
May
(9) |
Jun
(6) |
Jul
(15) |
Aug
|
Sep
|
Oct
(9) |
Nov
(3) |
Dec
(2) |
2017 |
Jan
|
Feb
(9) |
Mar
(14) |
Apr
|
May
(17) |
Jun
(31) |
Jul
(30) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
|
1
|
2
|
3
|
4
|
5
(15) |
6
(14) |
7
(16) |
8
(8) |
9
(6) |
10
|
11
(16) |
12
(9) |
13
(7) |
14
(7) |
15
(19) |
16
(6) |
17
(12) |
18
(12) |
19
(18) |
20
(13) |
21
(9) |
22
(7) |
23
(11) |
24
(2) |
25
(17) |
26
(15) |
27
|
28
(15) |
29
(10) |
30
(4) |
|
|
|
|
|
|
From: Kern Sibbald <kerns@us...> - 2006-04-23 15:15:22
|
Update of /cvsroot/bacula/bacula In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23853 Modified Files: kernstodo Log Message: Add code for starting multiple migrations Index: kernstodo =================================================================== RCS file: /cvsroot/bacula/bacula/kernstodo,v retrieving revision 1.601 retrieving revision 1.602 diff -u -d -r1.601 -r1.602 --- kernstodo 23 Apr 2006 08:16:01 -0000 1.601 +++ kernstodo 23 Apr 2006 15:15:03 -0000 1.602 @@ -88,6 +88,8 @@ [ possibly a Python event -- kes ] === +- run_cmd() returns int should return JobId_t +- get_next_jobid_from_list() returns int should return JobId_t - Document export LDFLAGS=-L/usr/lib64 - Don't attempt to restore from "Disabled" Volumes. - Network error on Win32 should set Win32 error code. |
From: Kern Sibbald <kerns@us...> - 2006-04-23 15:15:20
|
Update of /cvsroot/bacula/bacula/src/dird In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23853/src/dird Modified Files: migrate.c Log Message: Add code for starting multiple migrations Index: migrate.c =================================================================== RCS file: /cvsroot/bacula/bacula/src/dird/migrate.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- migrate.c 23 Apr 2006 13:07:40 -0000 1.14 +++ migrate.c 23 Apr 2006 15:15:05 -0000 1.15 @@ -43,6 +43,7 @@ struct idpkt; static bool regex_find_jobids(JCR *jcr, idpkt *ids, const char *query1, const char *query2, const char *type); +static void start_migration_job(JCR *jcr); /* * Called here before the job is run to do the job @@ -449,8 +450,9 @@ ids.count = 0; if (jcr->MigrateJobId != 0) { - jcr->previous_jr.JobId = jcr->MigrateJobId; Dmsg1(000, "previous jobid=%u\n", jcr->MigrateJobId); + edit_uint64(jcr->MigrateJobId, ids.list); + ids.count = 1; } else { switch (jcr->job->selection_type) { case MT_JOB: @@ -513,6 +515,8 @@ JobId = 0; stat = get_next_jobid_from_list(&p, &JobId); Dmsg2(000, "get_next_jobid stat=%d JobId=%u\n", stat, JobId); + jcr->MigrateJobId = JobId; + start_migration_job(jcr); if (stat < 0) { Jmsg(jcr, M_FATAL, 0, _("Invalid JobId found.\n")); goto bail_out; @@ -522,7 +526,7 @@ } jcr->previous_jr.JobId = JobId; - Dmsg1(000, "Last jobid=%d\n", jcr->previous_jr.JobId); + Dmsg1(000, "Previous jobid=%d\n", jcr->previous_jr.JobId); if (!db_get_job_record(jcr, jcr->db, &jcr->previous_jr)) { Jmsg(jcr, M_FATAL, 0, _("Could not get job record for JobId %s to migrate. ERR=%s"), @@ -542,6 +546,25 @@ return false; } +static void start_migration_job(JCR *jcr) +{ + UAContext *ua = new_ua_context(jcr); + char ed1[50]; + ua->batch = true; + Mmsg(ua->cmd, "run %s jobid=%s", jcr->job->hdr.name, + edit_uint64(jcr->MigrateJobId, ed1)); + Dmsg1(000, "=============== Migration cmd=%s\n", ua->cmd); + parse_ua_args(ua); /* parse command */ +// int stat = run_cmd(ua, ua->cmd); + int stat = (int)jcr->MigrateJobId; + if (stat == 0) { + Jmsg(jcr, M_ERROR, 0, _("Could not start migration job.\n")); + } else { + Jmsg(jcr, M_INFO, 0, _("Migration JobId %d started.\n"), stat); + } + free_ua_context(ua); +} + static bool regex_find_jobids(JCR *jcr, idpkt *ids, const char *query1, const char *query2, const char *type) { |
From: Kern Sibbald <kerns@us...> - 2006-04-23 13:07:54
|
Update of /cvsroot/bacula/bacula/src/stored In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv469/src/stored Modified Files: mac.c Log Message: Make migration work with new subroutine Index: mac.c =================================================================== RCS file: /cvsroot/bacula/bacula/src/stored/mac.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- mac.c 14 Mar 2006 19:37:20 -0000 1.3 +++ mac.c 23 Apr 2006 13:07:40 -0000 1.4 @@ -66,7 +66,7 @@ Jmsg(jcr, M_FATAL, 0, _("Read and write devices not properly initialized.\n")); goto bail_out; } - Dmsg2(000, "read_dcr=%p write_dcr=%p\n", jcr->read_dcr, jcr->dcr); + Dmsg2(100, "read_dcr=%p write_dcr=%p\n", jcr->read_dcr, jcr->dcr); create_restore_volume_list(jcr); |
From: Kern Sibbald <kerns@us...> - 2006-04-23 13:07:54
|
Update of /cvsroot/bacula/bacula/src/dird In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv469/src/dird Modified Files: migrate.c ua_prune.c Log Message: Make migration work with new subroutine Index: ua_prune.c =================================================================== RCS file: /cvsroot/bacula/bacula/src/dird/ua_prune.c,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- ua_prune.c 11 Apr 2006 16:23:36 -0000 1.51 +++ ua_prune.c 23 Apr 2006 13:07:40 -0000 1.52 @@ -337,7 +337,7 @@ { struct s_job_del_ctx del; struct s_count_ctx cnt; - POOLMEM *query = (char *)get_pool_memory(PM_MESSAGE); + POOLMEM *query = get_pool_memory(PM_MESSAGE); int i; utime_t now, period; CLIENT_DBR cr; @@ -472,7 +472,7 @@ */ int prune_volume(UAContext *ua, MEDIA_DBR *mr) { - POOLMEM *query = (char *)get_pool_memory(PM_MESSAGE); + POOLMEM *query = get_pool_memory(PM_MESSAGE); struct s_count_ctx cnt; struct s_file_del_ctx del; int i, stat = 0; Index: migrate.c =================================================================== RCS file: /cvsroot/bacula/bacula/src/dird/migrate.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- migrate.c 23 Apr 2006 08:16:01 -0000 1.13 +++ migrate.c 23 Apr 2006 13:07:40 -0000 1.14 @@ -40,8 +40,8 @@ static char OKbootstrap[] = "3000 OK bootstrap\n"; static bool get_job_to_migrate(JCR *jcr); -struct jobitems; -static bool regex_find_jobids(JCR *jcr, jobitems *ji, const char *query1, +struct idpkt; +static bool regex_find_jobids(JCR *jcr, idpkt *ids, const char *query1, const char *query2, const char *type); /* @@ -298,25 +298,26 @@ return false; } -struct jobitems { - POOLMEM *JobIds; +struct idpkt { + POOLMEM *list; uint32_t count; }; /* - * Callback handler make list of JobIds + * Callback handler make list of DB Ids */ -static int jobid_handler(void *ctx, int num_fields, char **row) +static int dbid_handler(void *ctx, int num_fields, char **row) { - jobitems *ji = (jobitems *)ctx; + idpkt *ids = (idpkt *)ctx; - if (ji->count == 0) { - ji->JobIds[0] = 0; + Dmsg3(000, "count=%d Ids=%p %s\n", ids->count, ids->list, ids->list); + if (ids->count == 0) { + ids->list[0] = 0; } else { - pm_strcat(ji->JobIds, ","); + pm_strcat(ids->list, ","); } - pm_strcat(ji->JobIds, row[0]); - ji->count++; + pm_strcat(ids->list, row[0]); + ids->count++; return 0; } @@ -440,29 +441,31 @@ JobId_t JobId; int stat; char *p; - jobitems ji; + idpkt ids; - ji.JobIds = get_pool_memory(PM_MESSAGE); + ids.list = get_pool_memory(PM_MESSAGE); + Dmsg1(000, "list=%p\n", ids.list); + ids.list[0] = 0; + ids.count = 0; - ji.count = 0; if (jcr->MigrateJobId != 0) { jcr->previous_jr.JobId = jcr->MigrateJobId; Dmsg1(000, "previous jobid=%u\n", jcr->MigrateJobId); } else { switch (jcr->job->selection_type) { case MT_JOB: - if (!regex_find_jobids(jcr, &ji, sql_job, sql_jobids_from_job, "Job")) { + if (!regex_find_jobids(jcr, &ids, sql_job, sql_jobids_from_job, "Job")) { goto bail_out; } break; case MT_CLIENT: - if (!regex_find_jobids(jcr, &ji, sql_client, + if (!regex_find_jobids(jcr, &ids, sql_client, sql_jobids_from_client, "Client")) { goto bail_out; } break; case MT_VOLUME: - if (!regex_find_jobids(jcr, &ji, sql_vol, + if (!regex_find_jobids(jcr, &ids, sql_vol, sql_jobids_from_vol, "Volume")) { goto bail_out; } @@ -474,7 +477,7 @@ } Dmsg1(000, "SQL=%s\n", jcr->job->selection_pattern); if (!db_sql_query(jcr->db, jcr->job->selection_pattern, - jobid_handler, (void *)&ji)) { + dbid_handler, (void *)&ids)) { Jmsg(jcr, M_FATAL, 0, _("SQL failed. ERR=%s\n"), db_strerror(jcr->db)); goto bail_out; @@ -506,7 +509,7 @@ } } - p = ji.JobIds; + p = ids.list; JobId = 0; stat = get_next_jobid_from_list(&p, &JobId); Dmsg2(000, "get_next_jobid stat=%d JobId=%u\n", stat, JobId); @@ -531,16 +534,16 @@ jcr->previous_jr.JobId, jcr->previous_jr.Job); ok_out: - free_pool_memory(ji.JobIds); + free_pool_memory(ids.list); return true; bail_out: - free_pool_memory(ji.JobIds); + free_pool_memory(ids.list); return false; } -static bool regex_find_jobids(JCR *jcr, jobitems *ji, const char *query1, +static bool regex_find_jobids(JCR *jcr, idpkt *ids, const char *query1, const char *query2, const char *type) { dlist *item_chain; uitem *item = NULL; @@ -568,6 +571,7 @@ } /* Basic query for names */ Mmsg(query, query1, jcr->pool->hdr.name); + Dmsg1(000, "query1=%s\n", query.c_str()); if (!db_sql_query(jcr->db, query.c_str(), unique_name_handler, (void *)item_chain)) { Jmsg(jcr, M_FATAL, 0, @@ -602,23 +606,25 @@ * that have been matched by the regex, so now we need * to look up their jobids. */ - ji->count = 0; + ids->count = 0; foreach_dlist(item, item_chain) { Dmsg1(000, "Got Job: %s\n", item->item); Mmsg(query, query2, item->item, jcr->pool->hdr.name); - if (!db_sql_query(jcr->db, query.c_str(), jobid_handler, (void *)&ji)) { + Dmsg1(000, "query2=%s\n", query.c_str()); + if (!db_sql_query(jcr->db, query.c_str(), dbid_handler, (void *)ids)) { Jmsg(jcr, M_FATAL, 0, _("SQL failed. ERR=%s\n"), db_strerror(jcr->db)); goto bail_out; } } - if (ji->count == 0) { + if (ids->count == 0) { Jmsg(jcr, M_INFO, 0, _("No %ss found to migrate.\n"), type); - ok = true; } + ok = true; bail_out: - Dmsg1(000, "Job Jobids=%s\n", ji->JobIds); + Dmsg2(000, "Count=%d Jobids=%s\n", ids->count, ids->list); delete item_chain; + Dmsg0(000, "After delete item_chain\n"); return ok; } @@ -630,6 +636,7 @@ { char sdt[MAX_TIME_LENGTH], edt[MAX_TIME_LENGTH]; char ec1[30], ec2[30], ec3[30], ec4[30], ec5[30], elapsed[50]; + char ec6[50], ec7[50], ec8[50]; char term_code[100], sd_term_msg[100]; const char *term_msg; int msg_type; @@ -738,13 +745,11 @@ jobstatus_to_ascii(jcr->SDJobStatus, sd_term_msg, sizeof(sd_term_msg)); -// bmicrosleep(15, 0); /* for debugging SIGHUP */ - Jmsg(jcr, msg_type, 0, _("Bacula %s (%s): %s\n" -" Old Backup JobId: %u\n" -" New Backup JobId: %u\n" -" JobId: %u\n" -" Job: %s\n" +" Prev Backup JobId: %s\n" +" New Backup JobId: %s\n" +" Migration JobId: %s\n" +" Migration Job: %s\n" " Backup Level: %s%s\n" " Client: %s\n" " FileSet: \"%s\" %s\n" @@ -766,9 +771,9 @@ VERSION, LSMDATE, edt, - prev_jcr ? jcr->previous_jr.JobId : 0, - prev_jcr ? prev_jcr->jr.JobId : 0, - jcr->jr.JobId, + prev_jcr ? edit_uint64(jcr->previous_jr.JobId, ec6) : "0", + prev_jcr ? edit_uint64(prev_jcr->jr.JobId, ec7) : "0", + edit_uint64(jcr->jr.JobId, ec8), jcr->jr.Job, level_to_str(jcr->JobLevel), jcr->since, jcr->client->hdr.name, @@ -791,10 +796,10 @@ sd_term_msg, term_code); - Dmsg1(000, "migrate_cleanup() previous_jcr=0x%x\n", jcr->previous_jcr); + Dmsg1(100, "migrate_cleanup() previous_jcr=0x%x\n", jcr->previous_jcr); if (jcr->previous_jcr) { -// free_jcr(jcr->previous_jcr); -// jcr->previous_jcr = NULL; + free_jcr(jcr->previous_jcr); + jcr->previous_jcr = NULL; } - Dmsg0(000, "Leave migrate_cleanup()\n"); + Dmsg0(100, "Leave migrate_cleanup()\n"); } |
From: Kern Sibbald <kerns@us...> - 2006-04-23 08:16:14
|
Update of /cvsroot/bacula/bacula/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9916/scripts Modified Files: .cvsignore Log Message: - Add 'Dir Status' button to the gnome console. - More work on migration. - Restore non-compatible base64 coding to permit compatibility. - Display heap stats in Storage daemon without debug level. Index: .cvsignore =================================================================== RCS file: /cvsroot/bacula/bacula/scripts/.cvsignore,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- .cvsignore 25 Mar 2006 13:35:28 -0000 1.16 +++ .cvsignore 23 Apr 2006 08:16:01 -0000 1.17 @@ -1,3 +1,6 @@ +wxconsole.console_apps +wxconsole.desktop.consolehelper +wxconsole.desktop.xsu disk-changer bacula-tray-monitor.desktop bacula-tray-monior.desktop |
From: Kern Sibbald <kerns@us...> - 2006-04-23 08:16:14
|
Update of /cvsroot/bacula/bacula In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9916 Modified Files: kernstodo kes-1.39 Log Message: - Add 'Dir Status' button to the gnome console. - More work on migration. - Restore non-compatible base64 coding to permit compatibility. - Display heap stats in Storage daemon without debug level. Index: kes-1.39 =================================================================== RCS file: /cvsroot/bacula/bacula/kes-1.39,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- kes-1.39 22 Apr 2006 09:13:07 -0000 1.52 +++ kes-1.39 23 Apr 2006 08:16:01 -0000 1.53 @@ -2,6 +2,11 @@ Kern Sibbald General: +23Apr06 +- Add 'Dir Status' button to the gnome console. +- More work on migration. +- Restore non-compatible base64 coding to permit compatibility. +- Display heap stats in Storage daemon without debug level. 22Apr06 - Integrate most of the MinGW changes -- more to do. 21Apr06 Index: kernstodo =================================================================== RCS file: /cvsroot/bacula/bacula/kernstodo,v retrieving revision 1.600 retrieving revision 1.601 diff -u -d -r1.600 -r1.601 --- kernstodo 17 Apr 2006 12:59:30 -0000 1.600 +++ kernstodo 23 Apr 2006 08:16:01 -0000 1.601 @@ -49,6 +49,20 @@ Here's how I'd define Migration Selection Types: +With Regexes: +Client -- Migrate data from selected client only. Migration Selection +Pattern regexp provides pattern to select client names, eg ^FS00* makes +all client names starting with FS00 eligible for migration. + +Jobname -- Migration all jobs matching name. Migration Selection Pattern +regexp provides pattern to select jobnames existing in pool. + +Volume -- Migrate all data on specified volumes. Migration Selection +Pattern regexp provides selection criteria for volumes to be migrated. +Volumes must exist in pool to be eligible for migration. + + +With Regex optional: LowestUtil -- Identify the volume in the pool with the least data on it and empty it. No Migration Selection Pattern required. @@ -60,25 +74,17 @@ <lowmig>. Pool highmig and lowmig values are in pool definition, no Migration Selection Pattern required. -Client -- Migrate data from selected client only. Migration Selection -Pattern regexp provides pattern to select client names, eg ^FS00* makes -all client names starting with FS00 eligible for migration. + +No regex: +SQLQuery -- Migrate all jobuids returned by the supplied SQL query. +Migration Selection Pattern contains SQL query to execute; should return +a list of 1 or more jobuids to migrate. PoolResidence -- Migrate data sitting in pool for longer than PoolResidence value in pool definition. Migration Selection Pattern optional; if specified, override value in pool definition (value in minutes). -Volume -- Migrate all data on specified volumes. Migration Selection -Pattern regexp provides selection criteria for volumes to be migrated. -Volumes must exist in pool to be eligible for migration. - -Jobname -- Migration all jobs matching name. Migration Selection Pattern -regexp provides pattern to select jobnames existing in pool. - -SQLQuery -- Migrate all jobuids returned by the supplied SQL query. -Migration Selection Pattern contains SQL query to execute; should return -a list of 1 or more jobuids to migrate. [ possibly a Python event -- kes ] === |
From: Kern Sibbald <kerns@us...> - 2006-04-23 08:16:13
|
Update of /cvsroot/bacula/bacula/src/dird In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9916/src/dird Modified Files: migrate.c Log Message: - Add 'Dir Status' button to the gnome console. - More work on migration. - Restore non-compatible base64 coding to permit compatibility. - Display heap stats in Storage daemon without debug level. Index: migrate.c =================================================================== RCS file: /cvsroot/bacula/bacula/src/dird/migrate.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- migrate.c 19 Apr 2006 17:14:18 -0000 1.12 +++ migrate.c 23 Apr 2006 08:16:01 -0000 1.13 @@ -40,6 +40,9 @@ static char OKbootstrap[] = "3000 OK bootstrap\n"; static bool get_job_to_migrate(JCR *jcr); +struct jobitems; +static bool regex_find_jobids(JCR *jcr, jobitems *ji, const char *query1, + const char *query2, const char *type); /* * Called here before the job is run to do the job @@ -295,17 +298,25 @@ return false; } +struct jobitems { + POOLMEM *JobIds; + uint32_t count; +}; + /* * Callback handler make list of JobIds */ static int jobid_handler(void *ctx, int num_fields, char **row) { - POOLMEM *JobIds = (POOLMEM *)ctx; + jobitems *ji = (jobitems *)ctx; - if (JobIds[0] != 0) { - pm_strcat(JobIds, ","); + if (ji->count == 0) { + ji->JobIds[0] = 0; + } else { + pm_strcat(ji->JobIds, ","); } - pm_strcat(JobIds, row[0]); + pm_strcat(ji->JobIds, row[0]); + ji->count++; return 0; } @@ -341,6 +352,47 @@ return 0; } +/* Get Job names in Pool */ +const char *sql_job = + "SELECT DISTINCT Job.Name from Job,Pool" + " WHERE Pool.Name='%s' AND Job.PoolId=Pool.PoolId"; + +/* Get JobIds from regex'ed Job names */ +const char *sql_jobids_from_job = + "SELECT DISTINCT Job.JobId FROM Job,Pool" + " WHERE Job.Name='%s' AND Pool.Name='%s' AND Job.PoolId=Pool.PoolId" + " ORDER by Job.StartTime"; + +/* Get Client names in Pool */ +const char *sql_client = + "SELECT DISTINCT Client.Name from Client,Pool,Job" + " WHERE Pool.Name='%s' AND Job.ClientId=Client.ClientId AND" + " Job.PoolId=Pool.PoolId"; + +/* Get JobIds from regex'ed Client names */ +const char *sql_jobids_from_client = + "SELECT DISTINCT Job.JobId FROM Job,Pool" + " WHERE Client.Name='%s' AND Pool.Name='%s' AND Job.PoolId=Pool.PoolId" + " AND Job.ClientId=Client.ClientId " + " ORDER by Job.StartTime"; + +/* Get Volume names in Pool */ +const char *sql_vol = + "SELECT DISTINCT VolumeName FROM Media,Pool WHERE" + " VolStatus in ('Full','Used','Error') AND" + " Media.PoolId=Pool.PoolId AND Pool.Name='%s'"; + +/* Get JobIds from regex'ed Volume names */ +const char *sql_jobids_from_vol = + "SELECT DISTINCT Job.JobId FROM Media,JobMedia,Job" + " WHERE Media.VolumeName='%s' AND Media.MediaId=JobMedia.MediaId" + " AND JobMedia.JobId=Job.JobId" + " ORDER by Job.StartTime"; + + + + + const char *sql_smallest_vol = "SELECT MediaId FROM Media,Pool WHERE" " VolStatus in ('Full','Used','Error') AND" @@ -369,31 +421,12 @@ " Media.PoolId=Pool.PoolId AND Pool.Name='%s' AND" " VolBytes<%s ORDER BY LastWritten ASC LIMIT 1"; -const char *sql_client = - "SELECT DISTINCT Client.Name from Client,Pool,Media,Job,JobMedia " - " WHERE Media.PoolId=Pool.PoolId AND Pool.Name='%s' AND" - " JobMedia.JobId=Job.JobId AND Job.ClientId=Client.ClientId AND" - " Job.PoolId=Media.PoolId"; - -const char *sql_job = - "SELECT DISTINCT Job.Name from Job,Pool" - " WHERE Pool.Name='%s' AND Job.PoolId=Pool.PoolId"; - -const char *sql_jobids_from_job = - "SELECT DISTINCT Job.JobId FROM Job,Pool" - " WHERE Job.Name='%s' AND Pool.Name='%s' AND Job.PoolId=Pool.PoolId" - " ORDER by Job.StartTime"; - const char *sql_ujobid = "SELECT DISTINCT Job.Job from Client,Pool,Media,Job,JobMedia " " WHERE Media.PoolId=Pool.PoolId AND Pool.Name='%s' AND" " JobMedia.JobId=Job.JobId AND Job.PoolId=Media.PoolId"; -const char *sql_vol = - "SELECT DISTINCT VolumeName FROM Media,Pool WHERE" - " VolStatus in ('Full','Used','Error') AND" - " Media.PoolId=Pool.PoolId AND Pool.Name='%s'"; /* @@ -404,245 +437,76 @@ { char ed1[30]; POOL_MEM query(PM_MESSAGE); - POOLMEM *JobIds = get_pool_memory(PM_MESSAGE); JobId_t JobId; - int stat, rc; + int stat; char *p; - dlist *item_chain; - uitem *item = NULL; - uitem *last_item = NULL; - char prbuf[500]; - regex_t preg; + jobitems ji; - JobIds[0] = 0; + ji.JobIds = get_pool_memory(PM_MESSAGE); + + ji.count = 0; if (jcr->MigrateJobId != 0) { jcr->previous_jr.JobId = jcr->MigrateJobId; Dmsg1(000, "previous jobid=%u\n", jcr->MigrateJobId); } else { switch (jcr->job->selection_type) { case MT_JOB: - if (!jcr->job->selection_pattern) { - Jmsg(jcr, M_FATAL, 0, _("No Migration Job selection pattern specified.\n")); + if (!regex_find_jobids(jcr, &ji, sql_job, sql_jobids_from_job, "Job")) { goto bail_out; - } - Dmsg1(000, "Job regex=%s\n", jcr->job->selection_pattern); - /* Complie regex expression */ - rc = regcomp(&preg, jcr->job->selection_pattern, REG_EXTENDED); - if (rc != 0) { - regerror(rc, &preg, prbuf, sizeof(prbuf)); - Jmsg(jcr, M_FATAL, 0, _("Could not compile regex pattern \"%s\" ERR=%s\n"), - jcr->job->selection_pattern, prbuf); + } + break; + case MT_CLIENT: + if (!regex_find_jobids(jcr, &ji, sql_client, + sql_jobids_from_client, "Client")) { goto bail_out; - } - item_chain = New(dlist(item, &item->link)); - /* Basic query for Job names */ - Mmsg(query, sql_job, jcr->pool->hdr.name); - Dmsg1(000, "query=%s\n", query.c_str()); - if (!db_sql_query(jcr->db, query.c_str(), unique_name_handler, - (void *)item_chain)) { - Jmsg(jcr, M_FATAL, 0, - _("SQL to get Job failed. ERR=%s\n"), db_strerror(jcr->db)); + } + break; + case MT_VOLUME: + if (!regex_find_jobids(jcr, &ji, sql_vol, + sql_jobids_from_vol, "Volume")) { goto bail_out; - } - /* Now apply the regex to the job names and remove any item not matched */ - foreach_dlist(item, item_chain) { - const int nmatch = 30; - regmatch_t pmatch[nmatch]; - if (last_item) { - Dmsg1(000, "Remove item %s\n", last_item->item); - free(last_item->item); - item_chain->remove(last_item); - } - Dmsg1(000, "Jobitem=%s\n", item->item); - rc = regexec(&preg, item->item, nmatch, pmatch, 0); - if (rc == 0) { - last_item = NULL; /* keep this one */ - } else { - last_item = item; - } - } - if (last_item) { - free(last_item->item); - Dmsg1(000, "Remove item %s\n", last_item->item); - item_chain->remove(last_item); - } - regfree(&preg); - /* - * At this point, we have a list of items in item_chain - * that have been matched by the regex, so now we need - * to look up their jobids. - */ - JobIds[0] = 0; - foreach_dlist(item, item_chain) { - Dmsg1(000, "Got Job: %s\n", item->item); - Mmsg(query, sql_jobids_from_job, item->item, jcr->pool->hdr.name); - if (!db_sql_query(jcr->db, query.c_str(), jobid_handler, (void *)JobIds)) { - Jmsg(jcr, M_FATAL, 0, - _("SQL failed. ERR=%s\n"), db_strerror(jcr->db)); - goto bail_out; - } - } - if (JobIds[0] == 0) { - Jmsg(jcr, M_INFO, 0, _("No jobs found to migrate.\n")); - goto ok_out; - } - Dmsg1(000, "Job Jobids=%s\n", JobIds); - delete item_chain; + } break; - case MT_SMALLEST_VOL: - Mmsg(query, sql_smallest_vol, jcr->pool->hdr.name); - JobIds[0] = 0; - if (!db_sql_query(jcr->db, query.c_str(), jobid_handler, (void *)JobIds)) { - Jmsg(jcr, M_FATAL, 0, - _("SQL to get Volume failed. ERR=%s\n"), db_strerror(jcr->db)); + case MT_SQLQUERY: + if (!jcr->job->selection_pattern) { + Jmsg(jcr, M_FATAL, 0, _("No Migration SQL selection pattern specified.\n")); goto bail_out; } - if (JobIds[0] == 0) { - Jmsg(jcr, M_INFO, 0, _("No Volumes found to migrate.\n")); - goto ok_out; - } - /* ***FIXME*** must loop over JobIds */ - Mmsg(query, sql_jobids_from_mediaid, JobIds); - JobIds[0] = 0; - if (!db_sql_query(jcr->db, query.c_str(), jobid_handler, (void *)JobIds)) { + Dmsg1(000, "SQL=%s\n", jcr->job->selection_pattern); + if (!db_sql_query(jcr->db, jcr->job->selection_pattern, + jobid_handler, (void *)&ji)) { Jmsg(jcr, M_FATAL, 0, - _("SQL to get Volume failed. ERR=%s\n"), db_strerror(jcr->db)); + _("SQL failed. ERR=%s\n"), db_strerror(jcr->db)); goto bail_out; } - Dmsg1(000, "Smallest Vol Jobids=%s\n", JobIds); + break; + + +/***** Below not implemented yet *********/ + case MT_SMALLEST_VOL: + Mmsg(query, sql_smallest_vol, jcr->pool->hdr.name); +// Mmsg(query2, sql_jobids_from_mediaid, JobIds); +// Dmsg1(000, "Smallest Vol Jobids=%s\n", JobIds); break; case MT_OLDEST_VOL: Mmsg(query, sql_oldest_vol, jcr->pool->hdr.name); - JobIds[0] = 0; - if (!db_sql_query(jcr->db, query.c_str(), jobid_handler, (void *)JobIds)) { - Jmsg(jcr, M_FATAL, 0, - _("SQL to get Volume failed. ERR=%s\n"), db_strerror(jcr->db)); - goto bail_out; - } - if (JobIds[0] == 0) { - Jmsg(jcr, M_INFO, 0, _("No Volume found to migrate.\n")); - goto ok_out; - } - Mmsg(query, sql_jobids_from_mediaid, JobIds); - JobIds[0] = 0; - if (!db_sql_query(jcr->db, query.c_str(), jobid_handler, (void *)JobIds)) { - Jmsg(jcr, M_FATAL, 0, - _("SQL to get Volume failed. ERR=%s\n"), db_strerror(jcr->db)); - goto bail_out; - } - Dmsg1(000, "Oldest Vol Jobids=%s\n", JobIds); +// Mmsg(query2, sql_jobids_from_mediaid, JobIds); +// Dmsg1(000, "Oldest Vol Jobids=%s\n", JobIds); break; case MT_POOL_OCCUPANCY: Mmsg(query, sql_pool_bytes, jcr->pool->hdr.name); - JobIds[0] = 0; - if (!db_sql_query(jcr->db, query.c_str(), jobid_handler, (void *)JobIds)) { - Jmsg(jcr, M_FATAL, 0, - _("SQL to get Volume failed. ERR=%s\n"), db_strerror(jcr->db)); - goto bail_out; - } - if (JobIds[0] == 0) { - Jmsg(jcr, M_INFO, 0, _("No jobs found to migrate.\n")); - goto ok_out; - } - Dmsg1(000, "Pool Occupancy Jobids=%s\n", JobIds); +// Dmsg1(000, "Pool Occupancy Jobids=%s\n", JobIds); break; case MT_POOL_TIME: Dmsg0(000, "Pool time not implemented\n"); break; - case MT_CLIENT: - if (!jcr->job->selection_pattern) { - Jmsg(jcr, M_FATAL, 0, _("No Migration Client selection pattern specified.\n")); - goto bail_out; - } - Dmsg1(000, "Client regex=%s\n", jcr->job->selection_pattern); - rc = regcomp(&preg, jcr->job->selection_pattern, REG_EXTENDED); - if (rc != 0) { - regerror(rc, &preg, prbuf, sizeof(prbuf)); - Jmsg(jcr, M_FATAL, 0, _("Could not compile regex pattern \"%s\" ERR=%s\n"), - jcr->job->selection_pattern, prbuf); - } - item_chain = New(dlist(item, &item->link)); - Mmsg(query, sql_client, jcr->pool->hdr.name); - Dmsg1(100, "query=%s\n", query.c_str()); - if (!db_sql_query(jcr->db, query.c_str(), unique_name_handler, - (void *)item_chain)) { - Jmsg(jcr, M_FATAL, 0, - _("SQL to get Client failed. ERR=%s\n"), db_strerror(jcr->db)); - goto bail_out; - } - /* Now apply the regex and create the jobs */ - foreach_dlist(item, item_chain) { - const int nmatch = 30; - regmatch_t pmatch[nmatch]; - rc = regexec(&preg, item->item, nmatch, pmatch, 0); - if (rc == 0) { - Dmsg1(000, "Do Client=%s\n", item->item); - } - free(item->item); - } - regfree(&preg); - delete item_chain; - break; - case MT_VOLUME: - if (!jcr->job->selection_pattern) { - Jmsg(jcr, M_FATAL, 0, _("No Migration Volume selection pattern specified.\n")); - goto bail_out; - } - Dmsg1(000, "Volume regex=%s\n", jcr->job->selection_pattern); - rc = regcomp(&preg, jcr->job->selection_pattern, REG_EXTENDED); - if (rc != 0) { - regerror(rc, &preg, prbuf, sizeof(prbuf)); - Jmsg(jcr, M_FATAL, 0, _("Could not compile regex pattern \"%s\" ERR=%s\n"), - jcr->job->selection_pattern, prbuf); - } - item_chain = New(dlist(item, &item->link)); - Mmsg(query, sql_vol, jcr->pool->hdr.name); - Dmsg1(100, "query=%s\n", query.c_str()); - if (!db_sql_query(jcr->db, query.c_str(), unique_name_handler, - (void *)item_chain)) { - Jmsg(jcr, M_FATAL, 0, - _("SQL to get Job failed. ERR=%s\n"), db_strerror(jcr->db)); - goto bail_out; - } - /* Now apply the regex and create the jobs */ - foreach_dlist(item, item_chain) { - const int nmatch = 30; - regmatch_t pmatch[nmatch]; - rc = regexec(&preg, item->item, nmatch, pmatch, 0); - if (rc == 0) { - Dmsg1(000, "Do Vol=%s\n", item->item); - } - free(item->item); - } - regfree(&preg); - delete item_chain; - break; - case MT_SQLQUERY: - JobIds[0] = 0; - if (!jcr->job->selection_pattern) { - Jmsg(jcr, M_FATAL, 0, _("No Migration SQL selection pattern specified.\n")); - goto bail_out; - } - Dmsg1(000, "SQL=%s\n", jcr->job->selection_pattern); - if (!db_sql_query(jcr->db, query.c_str(), jobid_handler, (void *)JobIds)) { - Jmsg(jcr, M_FATAL, 0, - _("SQL to get Volume failed. ERR=%s\n"), db_strerror(jcr->db)); - goto bail_out; - } - if (JobIds[0] == 0) { - Jmsg(jcr, M_INFO, 0, _("No jobs found to migrate.\n")); - goto ok_out; - } - Dmsg1(000, "Jobids=%s\n", JobIds); - goto bail_out; - break; default: Jmsg(jcr, M_FATAL, 0, _("Unknown Migration Selection Type.\n")); goto bail_out; } } - p = JobIds; + p = ji.JobIds; JobId = 0; stat = get_next_jobid_from_list(&p, &JobId); Dmsg2(000, "get_next_jobid stat=%d JobId=%u\n", stat, JobId); @@ -667,15 +531,98 @@ jcr->previous_jr.JobId, jcr->previous_jr.Job); ok_out: - free_pool_memory(JobIds); + free_pool_memory(ji.JobIds); return true; bail_out: - free_pool_memory(JobIds); + free_pool_memory(ji.JobIds); return false; } +static bool regex_find_jobids(JCR *jcr, jobitems *ji, const char *query1, + const char *query2, const char *type) { + dlist *item_chain; + uitem *item = NULL; + uitem *last_item = NULL; + regex_t preg; + char prbuf[500]; + int rc; + bool ok = false; + POOL_MEM query(PM_MESSAGE); + + item_chain = New(dlist(item, &item->link)); + if (!jcr->job->selection_pattern) { + Jmsg(jcr, M_FATAL, 0, _("No Migration %s selection pattern specified.\n"), + type); + goto bail_out; + } + Dmsg1(000, "regex=%s\n", jcr->job->selection_pattern); + /* Compile regex expression */ + rc = regcomp(&preg, jcr->job->selection_pattern, REG_EXTENDED); + if (rc != 0) { + regerror(rc, &preg, prbuf, sizeof(prbuf)); + Jmsg(jcr, M_FATAL, 0, _("Could not compile regex pattern \"%s\" ERR=%s\n"), + jcr->job->selection_pattern, prbuf); + goto bail_out; + } + /* Basic query for names */ + Mmsg(query, query1, jcr->pool->hdr.name); + if (!db_sql_query(jcr->db, query.c_str(), unique_name_handler, + (void *)item_chain)) { + Jmsg(jcr, M_FATAL, 0, + _("SQL to get %s failed. ERR=%s\n"), type, db_strerror(jcr->db)); + goto bail_out; + } + /* Now apply the regex to the names and remove any item not matched */ + foreach_dlist(item, item_chain) { + const int nmatch = 30; + regmatch_t pmatch[nmatch]; + if (last_item) { + Dmsg1(000, "Remove item %s\n", last_item->item); + free(last_item->item); + item_chain->remove(last_item); + } + Dmsg1(000, "Jobitem=%s\n", item->item); + rc = regexec(&preg, item->item, nmatch, pmatch, 0); + if (rc == 0) { + last_item = NULL; /* keep this one */ + } else { + last_item = item; + } + } + if (last_item) { + free(last_item->item); + Dmsg1(000, "Remove item %s\n", last_item->item); + item_chain->remove(last_item); + } + regfree(&preg); + /* + * At this point, we have a list of items in item_chain + * that have been matched by the regex, so now we need + * to look up their jobids. + */ + ji->count = 0; + foreach_dlist(item, item_chain) { + Dmsg1(000, "Got Job: %s\n", item->item); + Mmsg(query, query2, item->item, jcr->pool->hdr.name); + if (!db_sql_query(jcr->db, query.c_str(), jobid_handler, (void *)&ji)) { + Jmsg(jcr, M_FATAL, 0, + _("SQL failed. ERR=%s\n"), db_strerror(jcr->db)); + goto bail_out; + } + } + if (ji->count == 0) { + Jmsg(jcr, M_INFO, 0, _("No %ss found to migrate.\n"), type); + ok = true; + } +bail_out: + Dmsg1(000, "Job Jobids=%s\n", ji->JobIds); + delete item_chain; + return ok; +} + + /* * Release resources allocated during backup. */ |
From: Kern Sibbald <kerns@us...> - 2006-04-23 08:16:13
|
Update of /cvsroot/bacula/bacula/src/gnome2-console In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9916/src/gnome2-console Modified Files: callbacks.c callbacks.h interface.c support.c support.h Log Message: - Add 'Dir Status' button to the gnome console. - More work on migration. - Restore non-compatible base64 coding to permit compatibility. - Display heap stats in Storage daemon without debug level. Index: support.c =================================================================== RCS file: /cvsroot/bacula/bacula/src/gnome2-console/support.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- support.c 10 Aug 2005 16:35:19 -0000 1.8 +++ support.c 23 Apr 2006 08:16:02 -0000 1.9 @@ -18,34 +18,34 @@ GtkWidget* lookup_widget (GtkWidget *widget, - const gchar *widget_name) + const gchar *widget_name) { GtkWidget *parent, *found_widget; for (;;) { if (GTK_IS_MENU (widget)) - parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); + parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); else - parent = widget->parent; + parent = widget->parent; if (!parent) - parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey"); + parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey"); if (parent == NULL) - break; + break; widget = parent; } found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget), - widget_name); + widget_name); if (!found_widget) - g_warning (_("Widget not found: %s"), widget_name); + g_warning ("Widget not found: %s", widget_name); return found_widget; } /* This is an internally used function to create pixmaps. */ GtkWidget* create_pixmap (GtkWidget *widget, - const gchar *filename) + const gchar *filename) { GtkWidget *pixmap; gchar *pathname; @@ -54,7 +54,7 @@ return gtk_image_new (); pathname = gnome_program_locate_file (NULL, GNOME_FILE_DOMAIN_APP_PIXMAP, - filename, TRUE, NULL); + filename, TRUE, NULL); if (!pathname) { g_warning (_("Couldn't find pixmap file: %s"), filename); @@ -78,7 +78,7 @@ return NULL; pathname = gnome_program_locate_file (NULL, GNOME_FILE_DOMAIN_APP_PIXMAP, - filename, TRUE, NULL); + filename, TRUE, NULL); if (!pathname) { @@ -89,8 +89,8 @@ pixbuf = gdk_pixbuf_new_from_file (pathname, &error); if (!pixbuf) { - fprintf (stderr, _("Failed to load pixbuf file: %s: %s\n"), - pathname, error->message); + fprintf (stderr, "Failed to load pixbuf file: %s: %s\n", + pathname, error->message); g_error_free (error); } g_free (pathname); @@ -100,8 +100,8 @@ /* This is used to set ATK action descriptions. */ void glade_set_atk_action_description (AtkAction *action, - const gchar *action_name, - const gchar *description) + const gchar *action_name, + const gchar *description) { gint n_actions, i; @@ -109,7 +109,7 @@ for (i = 0; i < n_actions; i++) { if (!strcmp (atk_action_get_name (action, i), action_name)) - atk_action_set_description (action, i, description); + atk_action_set_description (action, i, description); } } Index: callbacks.h =================================================================== RCS file: /cvsroot/bacula/bacula/src/gnome2-console/callbacks.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- callbacks.h 21 Dec 2004 16:18:37 -0000 1.5 +++ callbacks.h 23 Apr 2006 08:16:02 -0000 1.6 @@ -340,3 +340,7 @@ void on_restore_cancel_clicked (GtkButton *button, gpointer user_data); + +void +on_dir_button_clicked (GtkToolButton *toolbutton, + gpointer user_data); Index: callbacks.c =================================================================== RCS file: /cvsroot/bacula/bacula/src/gnome2-console/callbacks.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- callbacks.c 6 Feb 2006 13:49:59 -0000 1.11 +++ callbacks.c 23 Apr 2006 08:16:02 -0000 1.12 @@ -704,3 +704,9 @@ /* Set defaults that correspond to new job selection */ set_restore_dialog_defaults(); } + +void +on_dir_button_clicked(GtkToolButton *toolbutton, gpointer user_data) +{ + write_director("status dir"); +} Index: support.h =================================================================== RCS file: /cvsroot/bacula/bacula/src/gnome2-console/support.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- support.h 21 Dec 2004 16:18:38 -0000 1.4 +++ support.h 23 Apr 2006 08:16:02 -0000 1.5 @@ -2,8 +2,20 @@ * DO NOT EDIT THIS FILE - it is generated by Glade. */ +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + #include <gnome.h> +#undef Q_ +#ifdef ENABLE_NLS +# define Q_(String) g_strip_context ((String), gettext (String)) +#else +# define Q_(String) g_strip_context ((String), (String)) +#endif + + /* * Public Functions. */ @@ -15,7 +27,7 @@ * you want returned. */ GtkWidget* lookup_widget (GtkWidget *widget, - const gchar *widget_name); + const gchar *widget_name); @@ -25,13 +37,13 @@ /* This is used to create the pixmaps used in the interface. */ GtkWidget* create_pixmap (GtkWidget *widget, - const gchar *filename); + const gchar *filename); /* This is used to create the pixbufs used in the interface. */ GdkPixbuf* create_pixbuf (const gchar *filename); /* This is used to set ATK action descriptions. */ void glade_set_atk_action_description (AtkAction *action, - const gchar *action_name, - const gchar *description); + const gchar *action_name, + const gchar *description); Index: interface.c =================================================================== RCS file: /cvsroot/bacula/bacula/src/gnome2-console/interface.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- interface.c 10 Aug 2005 16:35:19 -0000 1.10 +++ interface.c 23 Apr 2006 08:16:02 -0000 1.11 @@ -29,15 +29,15 @@ static GnomeUIInfo file1_menu_uiinfo[] = { { - GNOME_APP_UI_ITEM, _("_Connect"), - _("Connect to Director"), + GNOME_APP_UI_ITEM, N_("_Connect"), + N_("Connect to Director"), (gpointer) on_connect_activate, NULL, NULL, GNOME_APP_PIXMAP_NONE, NULL, 0, (GdkModifierType) 0, NULL }, [...1086 lines suppressed...] gtk_box_pack_start (GTK_BOX (vbox19), label1002, FALSE, FALSE, 0); gtk_widget_set_size_request (label1002, 0, 43); - gtk_label_set_justify (GTK_LABEL (label1002), GTK_JUSTIFY_LEFT); label1003 = gtk_label_new (""); gtk_widget_show (label1003); gtk_box_pack_start (GTK_BOX (vbox19), label1003, FALSE, FALSE, 0); gtk_widget_set_size_request (label1003, 0, 36); - gtk_label_set_justify (GTK_LABEL (label1003), GTK_JUSTIFY_LEFT); progressbar1 = gtk_progress_bar_new (); gtk_widget_show (progressbar1); @@ -1910,7 +1940,6 @@ gtk_widget_show (label1004); gtk_box_pack_start (GTK_BOX (vbox19), label1004, FALSE, FALSE, 0); gtk_widget_set_size_request (label1004, 0, 52); - gtk_label_set_justify (GTK_LABEL (label1004), GTK_JUSTIFY_LEFT); dialog_action_area10 = GTK_DIALOG (progress_dialog)->action_area; gtk_widget_show (dialog_action_area10); |
From: Kern Sibbald <kerns@us...> - 2006-04-23 08:16:13
|
Update of /cvsroot/bacula/bacula/src/stored In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9916/src/stored Modified Files: status.c Log Message: - Add 'Dir Status' button to the gnome console. - More work on migration. - Restore non-compatible base64 coding to permit compatibility. - Display heap stats in Storage daemon without debug level. Index: status.c =================================================================== RCS file: /cvsroot/bacula/bacula/src/stored/status.c,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- status.c 14 Feb 2006 14:11:10 -0000 1.52 +++ status.c 23 Apr 2006 08:16:02 -0000 1.53 @@ -61,7 +61,7 @@ DEVICE *dev; BSOCK *user = jcr->dir_bsock; char dt[MAX_TIME_LENGTH]; - char b1[30], b2[30], b3[30]; + char b1[35], b2[35], b3[35], b4[35]; int bpb; bnet_fsend(user, _("\n%s Version: %s (%s) %s %s %s\n"), my_name, @@ -73,14 +73,11 @@ else { bnet_fsend(user, _("Daemon started %s, %d Jobs run since started.\n"), dt, num_jobs_run); } - if (debug_level > 0) { - char b1[35], b2[35], b3[35], b4[35]; - bnet_fsend(user, _(" Heap: bytes=%s max_bytes=%s bufs=%s max_bufs=%s\n"), - edit_uint64_with_commas(sm_bytes, b1), - edit_uint64_with_commas(sm_max_bytes, b2), - edit_uint64_with_commas(sm_buffers, b3), - edit_uint64_with_commas(sm_max_buffers, b4)); - } + bnet_fsend(user, _(" Heap: bytes=%s max_bytes=%s bufs=%s max_bufs=%s\n"), + edit_uint64_with_commas(sm_bytes, b1), + edit_uint64_with_commas(sm_max_bytes, b2), + edit_uint64_with_commas(sm_buffers, b3), + edit_uint64_with_commas(sm_max_buffers, b4)); /* * List running jobs |
From: Kern Sibbald <kerns@us...> - 2006-04-23 08:16:12
|
Update of /cvsroot/bacula/bacula/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9916/src Modified Files: console2.glade version.h Log Message: - Add 'Dir Status' button to the gnome console. - More work on migration. - Restore non-compatible base64 coding to permit compatibility. - Display heap stats in Storage daemon without debug level. Index: console2.glade =================================================================== RCS file: /cvsroot/bacula/bacula/src/console2.glade,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- console2.glade 15 Jun 2004 12:11:26 -0000 1.8 +++ console2.glade 23 Apr 2006 08:16:01 -0000 1.9 @@ -14,6 +14,12 @@ <property name="default_height">600</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="focus_on_map">True</property> <signal name="delete_event" handler="on_console_delete_event" last_modification_time="Tue, 16 Mar 2004 12:30:54 GMT"/> [...1624 lines suppressed...] <property name="visible">True</property> <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property> <property name="fraction">0</property> - <property name="pulse_step">0.1</property> + <property name="pulse_step">0.10000000149</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> </widget> <packing> <property name="padding">0</property> @@ -4336,6 +4828,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> Index: version.h =================================================================== RCS file: /cvsroot/bacula/bacula/src/version.h,v retrieving revision 1.610 retrieving revision 1.611 diff -u -d -r1.610 -r1.611 --- version.h 22 Apr 2006 09:13:07 -0000 1.610 +++ version.h 23 Apr 2006 08:16:01 -0000 1.611 @@ -3,9 +3,9 @@ */ #undef VERSION -#define VERSION "1.39.9" -#define BDATE "22 April 2006" -#define LSMDATE "22Apr06" +#define VERSION "1.39.10" +#define BDATE "23 April 2006" +#define LSMDATE "23Apr06" /* Debug flags */ #undef DEBUG |
From: Kern Sibbald <kerns@us...> - 2006-04-23 08:16:10
|
Update of /cvsroot/bacula/bacula/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9916/src/lib Modified Files: base64.c Log Message: - Add 'Dir Status' button to the gnome console. - More work on migration. - Restore non-compatible base64 coding to permit compatibility. - Display heap stats in Storage daemon without debug level. Index: base64.c =================================================================== RCS file: /cvsroot/bacula/bacula/src/lib/base64.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- base64.c 21 Apr 2006 11:25:15 -0000 1.9 +++ base64.c 23 Apr 2006 08:16:02 -0000 1.10 @@ -23,7 +23,7 @@ #include "bacula.h" -const bool compatible = true; +const bool compatible = false; #ifdef TEST_MODE #include <glob.h> |