]> git.sur5r.net Git - bacula/bacula/commitdiff
ebl Add -B option to dbcheck to get catalog information
authorEric Bollengier <eric@eb.homelinux.org>
Thu, 25 Sep 2008 21:09:42 +0000 (21:09 +0000)
committerEric Bollengier <eric@eb.homelinux.org>
Thu, 25 Sep 2008 21:09:42 +0000 (21:09 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@7648 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/baconfig.h
bacula/src/dird/dird_conf.c
bacula/src/dird/dird_conf.h
bacula/src/tools/dbcheck.c
bacula/technotes-2.5

index 53de5b40285a74579ec087ea0999aa32abd39d24..ffd3562d044abd97fbbcb11713fdb9fdb1b9d912 100644 (file)
@@ -79,7 +79,8 @@
 
 /* Allow printing of NULL pointers */
 #define NPRT(x) (x)?(x):_("*None*")
+#define NPRTB(x) (x)?(x):""
+
 #if defined(HAVE_WIN32)
 
 #define WIN32_REPARSE_POINT 1
index 5f4a570a13f537ad5ce2d2a5a56cd498043cf0f8..e4ed00a022513ea8795541b9b65c23fefbd2104b 100644 (file)
@@ -507,6 +507,16 @@ struct s_kw ReplaceOptions[] = {
    {NULL,               0}
 };
 
+char *CAT::display(POOLMEM *dst) {
+   Mmsg(dst,"catalog=%s\ndb_name=%s\ndb_driver=%s\ndb_user=%s\n"
+        "db_password=%s\ndb_address=%s\ndb_port=%i\n"
+        "db_socket=%s\n",
+        name(), NPRTB(db_name),
+        NPRTB(db_driver), NPRTB(db_user), NPRTB(db_password),
+        NPRTB(db_address), db_port, NPRTB(db_socket));
+   return dst;
+}
+
 const char *level_to_str(int level)
 {
    int i;
index d33a1156f454967850a577c5e6596e87edd6025d..9a3fabbe91091e2da447762c4fd2a13ebedc89e2 100644 (file)
@@ -236,6 +236,7 @@ public:
 
    /* Methods */
    char *name() const;
+   char *display(POOLMEM *dst);       /* Get catalog information */
 };
 
 inline char *CAT::name() const { return hdr.name; }
index 2c13325892e94118b99ca17c6b6c00237e0f5584..45072dda561deae7b493928746a478038c3a2cf4 100644 (file)
@@ -109,14 +109,14 @@ static int check_idx_handler(void *ctx, int num_fields, char **row);
 /* Global variables */
 static const char *idx_tmp_name;
 
-
 static void usage()
 {
    fprintf(stderr,
-"Usage: dbcheck [-c config] [-C catalog name] [-d debug_level] <working-directory> <bacula-database> <user> <password> [<dbhost>] [<dbport>]\n"
+"Usage: dbcheck [-c config ] [-B] [-C catalog name] [-d debug_level] <working-directory> <bacula-database> <user> <password> [<dbhost>] [<dbport>]\n"
 "       -b              batch mode\n"
 "       -C              catalog name in the director conf file\n"
 "       -c              Director conf filename\n"
+"       -B              print catalog configuration and exit\n"
 "       -d <nn>         set debug level to <nn>\n"
 "       -dt             print timestamp in debug output\n"
 "       -f              fix inconsistencies\n"
@@ -130,6 +130,7 @@ int main (int argc, char *argv[])
    int ch;
    const char *user, *password, *db_name, *dbhost;
    int dbport = 0;
+   bool print_catalog=false;
    char *configfile = NULL;
    char *catalogname = NULL;
    char *endptr;
@@ -144,8 +145,12 @@ int main (int argc, char *argv[])
    memset(&id_list, 0, sizeof(id_list));
    memset(&name_list, 0, sizeof(name_list));
 
-   while ((ch = getopt(argc, argv, "bc:C:d:fv?")) != -1) {
+   while ((ch = getopt(argc, argv, "bc:C:d:fvB?")) != -1) {
       switch (ch) {
+      case 'B':
+         print_catalog = true;     /* get catalog information from config */
+         break;
+
       case 'b':                    /* batch */
          batch = true;
          break;
@@ -223,6 +228,16 @@ int main (int argc, char *argv[])
             exit(1);
          }
          set_working_directory(director->working_directory);
+
+         /* Print catalog information and exit (-B) */
+         if (print_catalog) {
+            POOLMEM *buf = get_pool_memory(PM_MESSAGE);
+            printf("%sdb_type=%s\nworking_dir=%s\n", catalog->display(buf),
+                   db_get_type(), working_directory);
+            free_pool_memory(buf);
+            exit(0);
+         }
+
          db_name = catalog->db_name;
          user = catalog->db_user;
          password = catalog->db_password;
index 241f5eb79b3261114ecfa787cea11d6f0352fe75..bdb8357ee5eb70c8c98a2e268868bf2da72f11e2 100644 (file)
@@ -19,6 +19,7 @@ remove reader/writer in FOPTS????
 
 General:
 25Sep08
+ebl  Add -B option to dbcheck to get catalog information
 kes  Fix Win32 build to include new library function.
 kes  Remove some old reader/writer code.
 kes  Implement ./configure --with-plugindir=xxx