Hello, Yes, it is the list_result() function in src/cats/sql.c that is a very generic routine for outputting "list" results. I personally cannot be of much help, but there are a good number of SQL experts using Bacula.
Best regards, Kern On 02/18/2016 10:29 AM, Wanderlei Huttel wrote: > Hello Guys > > I was trying to create a function to convert seconds and bytes to more > "human readable". > If I'm right, the file that shows information in bconsole is > src/cats/sql.c, function list_result. > > How the function list_result didn't check the name of fields, I guess is > necessary to check the name of fields to implement this features, but I > don't know where can I start. Any tips? > > > if ( (strcasecmp(field->name, "VolRetention") == 0 ) ) { > ... > } > > > ########################################################################################### > #include "stdio.h" > #include "stdlib.h" > #include "math.h" > > char* seconds_to_humanreadable(float seconds, char *buf); > > int main (int argc, char *argv[]){ > char buf[32]; > float seconds; > int i = 1; > while( i < argc){ > seconds = atof(argv[i]); > printf("%s\n", seconds_to_humanread( seconds, buf) ); > i++; > } > } /* end main */ > > > char* seconds_to_humanreadable(float seconds, char *buf) { > if (seconds < 60) { > sprintf(buf, "%.2f seconds", seconds); > } > else if (seconds >= 60 && seconds < 3600){ > sprintf(buf, "%.2f minutes", seconds/60); > } > else if (seconds >= 3600 && seconds < 86400){ > sprintf(buf, "%.2f hours", seconds/3600); > } > else if( seconds >= 86400 && seconds < 2628000){ > sprintf(buf, "%.2f days", seconds/86400); > } > else if( seconds >= 2628000 && seconds <= 31536000){ > sprintf(buf, "%.2f months", seconds/2628000); > } > else if(seconds > 31536000){ > sprintf(buf, "%.2f years", seconds/31536000); > } > else{ > sprintf(buf, "0"); > } > return buf; > } /*end function */ > ########################################################################################### > > #include "stdio.h" > #include "stdlib.h" > #include "math.h" > #include "string.h" > > char* bytes_to_humanreadable(float bytes, char *buf); > > int main (int argc, char *argv[]){ > char buf[32]; > float bytes; > int i = 1; > while( i < argc){ > bytes = atof(argv[i]); > printf("%s\n", bytes_to_humanread( bytes, buf) ); > i++; > } /* end while */ > } /* end main */ > > > char* bytes_to_humanreadable(float bytes, char *buf) { > int i = 0; > const char* unit[] = {" ", "KB", "MB", "GB", "TB", "PB", "EB", > "ZB", "YB", "BB"}; > > while( true ){ > if ( bytes < 1024 ){ > sprintf(buf, "%.2f %s", bytes, unit[i]); > return buf; > } > bytes = bytes / 1024; > i++; > } /* end while */ > } /*end function */ > ########################################################################################### > > Atenciosamente > > *Nome */|/***Wanderlei Hüttel* > *Blog* | http://www.huttel.com.br > > > > 2016-02-17 20:25 GMT-02:00 Heitor Faria <hei...@bacula.com.br > <mailto:hei...@bacula.com.br>>: > > Kern, > > Sorry for the dumb question but could not bconsole make the values > conversion in similar way to this shell script bytes conversion > snippet before printing? > > xargs -i echo 'scale=2; {}/1073741824' | bc > > May it would be a more database independent approach. > > Regards, > > =========================================================================== > > Heitor Medrado de Faria - LPIC-III | ITIL-F | Bacula Systems > Certified Administrator II > Do you need Bacula training? > <http://bacula.us/video-classes>http://bacula.us/video-classes/ > +55 61 8268-4220 <tel:%2B55%2061%208268-4220> > Site: <http://bacula.us>http://bacula.us FB: heitor.faria > > =========================================================================== > > > Enviado por TypeApp <http://www.typeapp.com/r> > > Em 17 de fev de 2016, em 20:05, Kern Sibbald <k...@sibbald.com > <mailto:k...@sibbald.com>> escreveu: > > Hello Ana (and Heitor), > > Please note that at the current time, the list command is > generic, and > thus it only knows how to print character strings that have been > returned by the SQL engine. Though there may be some way to tell > SQL > that the result we get for expiresin is a "duration" (note: very > different from a date such as LastWritten), I do not know how to > do it. > > Thus for the moment, we are limited to displaying SQL generated > character strings in the form that SQL gives them to us. > > The main point of the new expiresin field is that it is not > zero, the > retention period has not expired. If it is a big positive number > (number of seconds remaining before the volume expires), then > the Volume > will not be recycled. > > Many people forget that the retention period *begins* from the > LastWritten time, which means that as long as you are writing on > the > Volume, nothing will be expired. Maybe devoting a bit of thought to > that particular point, and what would happen if we changed it, > would > make retention periods easier to understand. > > Best regards, > Kern > > On 02/16/2016 07:19 PM, Ana Emília M. Arruda wrote: > > Hello Kern and Heitor, > > I can see the ExpiresIn field in Bacula 7.4.0 version. > Maybe the ExpiresIn value could be more useful if displayed > in the same > format as the LastWritten field. > > Best regards, > Ana > > On Tue, Feb 16, 2016 at 2:46 AM, Heitor Faria > <hei...@bacula.com.br <mailto:hei...@bacula.com.br> > <mailto:hei...@bacula.com.br <mailto:hei...@bacula.com.br>>> > wrote: > > Recently I got tired of doing the mental > gymnastics to see when Volumes > will expire and with Eric's SQL help, we > modified the list (and llist) > media output to eliminate one or two of the > columns in the case of list > media, but to add an "expiresin" field, which > makes it much easier to > see when a volume will expire. > > This code has been in the public git repository > in Branch-7.4 along with > a number of bug fixes since the 7.4.0 release. > If you are interested in > simplifying the Volume expiration mind > gymnastics you might checkout and > try the new code. > > By the way, I thought that the above feature was > added after the 7.4.0 > release, but according to what I see in the > repo, much to my surprise it > should also be in the released 7.4.0 version. > > I would be interested in any feedback. > > > Hello, Kern: this feature is great and I'm thankful > for it, but is there a way > to make information human readable? > > > What do you mean? > > Please show me what you currently see and what you > prefer to see. > > > Hello, Kern: sorry for being laconic. > When I mean "human readable" is in the sense of ls, df and other > Linux commands: > > "-h, --human-readable > print sizes in human readable format (e.g., 1K 234M 2G)" > > *What I see today:* > > *list media pool=File > > +---------+------------+-----------+---------+---------------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+ > | MediaId | VolumeName | VolStatus | Enabled | VolBytes | > VolFiles | VolRetention | Recycle | Slot | InChanger | > MediaType | > LastWritten | ExpiresIn | > > +---------+------------+-----------+---------+---------------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+ > | 1 | Vol-0001 | Error | 1 | 1,286,119,412 | > 0 | 31,536,000 | 1 | 0 | 0 | File1 | > 2015-10-21 23:57:35 | 21,428,702 | > > +---------+------------+-----------+---------+---------------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+ > > *What I think would make the user life easier:* > > *list media pool=File human > > +---------+------------+-----------+---------+----------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+ > | MediaId | VolumeName | VolStatus | Enabled | VolBytes | > VolFiles | > VolRetention | Recycle | Slot | InChanger | MediaType | > LastWritten > | ExpiresIn | > > +---------+------------+-----------+---------+---------------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+ > | 1 | Vol-0001 | Error | 1 | 1,29 GB | 0 > | 31,536,000 | 1 | 0 | 0 | File1 | 2015-10-21 > 23:57:35 | 248 days | > > +---------+------------+-----------+---------+----------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+ > > Best regards, > Kern > > > Regards, > -- > > ------------------------------------------------------------------------ > > Heitor Medrado de Faria - LPIC-III | ITIL-F | Bacula Systems > Certified Administrator II > Do you need Bacula training? http://bacula.us/video-classes/ > +55 61 8268-4220 <tel:%2B55%2061%208268-4220> > <tel:%2B55%2061%208268-4220> > Site: http://bacula.us FB: heitor.faria > > ------------------------------------------------------------------------ > > > > ------------------------------------------------------------------------ > > Site24x7 APM Insight: Get Deep Visibility into Application > Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just > $35/Month > Monitor end-to-end web transactions and take corrective > actions now > Troubleshoot faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 > > ------------------------------------------------------------------------ > > Bacula-users mailing list > Bacula-users@lists.sourceforge.net > <mailto:Bacula-users@lists.sourceforge.net> > <mailto:Bacula-users@lists.sourceforge.net > <mailto:Bacula-users@lists.sourceforge.net>> > https://lists.sourceforge.net/lists/listinfo/bacula-users > > > > > > ------------------------------------------------------------------------------ > Site24x7 APM Insight: Get Deep Visibility into Application Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month > Monitor end-to-end web transactions and take corrective actions now > Troubleshoot faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 > _______________________________________________ > Bacula-users mailing list > Bacula-users@lists.sourceforge.net > <mailto:Bacula-users@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/bacula-users > > ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 _______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users