]> git.sur5r.net Git - bacula/bacula/commitdiff
Add smartctl call to bacula-sd.conf as an example of getting
authorKern Sibbald <kern@sibbald.com>
Sun, 4 Mar 2007 10:24:39 +0000 (10:24 +0000)
committerKern Sibbald <kern@sibbald.com>
Sun, 4 Mar 2007 10:24:39 +0000 (10:24 +0000)
     tape alert info.
More bat work

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@4307 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/qt-console/restore/restore.cpp
bacula/src/qt-console/restore/restore.h
bacula/src/stored/bacula-sd.conf.in
bacula/technotes-2.1

index d5dc381263aa842d8118d569f3e8b1c5b7bdc8ec..f6ba6a8186fd6666ca608a3b2853642b90a28bdf 100644 (file)
@@ -101,6 +101,9 @@ restoreDialog::restoreDialog(Console *console)
 {
    m_console = console;
    setupUi(this);
+   connect(fileWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), 
+           this, SLOT(fileDoubleClicked(QTreeWidgetItem *, int)));
+   setFont(m_console->get_font());
    fillDirectory("/home/kern/bacula/k");
    this->show();
 }
@@ -113,7 +116,6 @@ void restoreDialog::fillDirectory(const char *dir)
    char pathbuf[MAXSTRING];
    char modes[20], user[20], group[20], size[20], date[30];
    char marked[10];
-   int row = 0;
    int pnl, fnl;
    POOLMEM *file = get_pool_memory(PM_FNAME);
    POOLMEM *path = get_pool_memory(PM_FNAME);
@@ -146,7 +148,6 @@ void restoreDialog::fillDirectory(const char *dir)
       if (*p == '$') {
          break;
       }
-//    Dmsg1(000, "Got: %s\n", p);
       if (!*p) {
          continue;
       }
@@ -186,19 +187,38 @@ void restoreDialog::fillDirectory(const char *dir)
       } else {
          bstrncpy(marked, " ", sizeof(marked));
       }
-      split_path_and_filename(p, &path, &pnl,
-                              &file, &fnl);
-
-//    printf("modes=%s user=%s group=%s size=%s date=%s path=%s file=%s\n",
-//       modes, user, group, size, date, path, file);
-
+      split_path_and_filename(p, &path, &pnl, &file, &fnl);
       item.clear();
       item << "" << file << modes << user << group << size << date;
-      items.append(new QTreeWidgetItem((QTreeWidget *)0, item));
-
-      row++;
+      QTreeWidgetItem *ti = new QTreeWidgetItem((QTreeWidget *)0, item);
+      ti->setTextAlignment(5, Qt::AlignRight); /* right align size */
+      items.append(ti);
    }
+   fileWidget->clear();
    fileWidget->insertTopLevelItems(0, items);
 
    m_console->setEnabled(true);
+   free_pool_memory(file);
+   free_pool_memory(path);
+}
+
+void restoreDialog::accept()
+{
+   this->hide();
+   m_console->write("done");
+   delete this;
+}
+
+
+void restoreDialog::reject()
+{
+   this->hide();
+   m_console->write("quit");
+   mainWin->set_status("Canceled");
+   delete this;
+}
+
+void restoreDialog::fileDoubleClicked(QTreeWidgetItem *item, int column)
+{
+   printf("Text=%s column=%d\n", item->text(1).toUtf8().data(), column);
 }
index 1f5be13dedbcdcb36f42a1e4e416527fbf3904c9..2ed83a771c8dfdb2ac24c4c903447efbcc325fb9 100644 (file)
 
 class Console;
 
+/*
+ * The pre-restore dialog selects the Job/Client to be restored
+ * It really could use considerable enhancement.
+ */
 class prerestoreDialog : public QDialog, public Ui::prerestoreForm
 {
    Q_OBJECT 
@@ -58,6 +62,11 @@ private:
 
 };
 
+/*  
+ * The restore dialog is brought up once we are in the Bacula
+ * restore tree routines.  It handles putting up a GUI tree
+ * representation of the files to be restored.
+ */
 class restoreDialog : public QDialog, public Ui::restoreForm
 {
    Q_OBJECT 
@@ -66,7 +75,10 @@ public:
    restoreDialog(Console *parent);
    void fillDirectory(const char *path);
 
-public slots:
+private slots:
+   void accept();
+   void reject();
+   void fileDoubleClicked(QTreeWidgetItem *item, int column);
 
 private:
    Console *m_console;
index 4d20586b3b6131b237caf29be1e0bc70b91aba4a..38405209147f6d8cb251e443a30edc4a0d72fd9b 100644 (file)
@@ -76,6 +76,8 @@ Device {
 #  AutoChanger = yes
 #  # Enable the Alert command only if you have the mtx package loaded
 #  Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
+#  If you have smartctl, enable this, it has more info than tapeinfo 
+#  Alert Command = "sh -c 'smartctl -H -l error %c'"  
 #}
 
 #Device {
@@ -90,6 +92,8 @@ Device {
 #  AutoChanger = yes
 #  # Enable the Alert command only if you have the mtx package loaded
 #  Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
+#  If you have smartctl, enable this, it has more info than tapeinfo 
+#  Alert Command = "sh -c 'smartctl -H -l error %c'"  
 #}
 
 #
@@ -108,6 +112,8 @@ Device {
 ## AutoChanger = yes
 #  # Enable the Alert command only if you have the mtx package loaded
 ## Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
+## If you have smartctl, enable this, it has more info than tapeinfo 
+## Alert Command = "sh -c 'smartctl -H -l error %c'"  
 #}
 
 #
@@ -126,6 +132,8 @@ Device {
 #  Backward Space Record = no
 #  Fast Forward Space File = no
 #  TWO EOF = yes
+#  If you have smartctl, enable this, it has more info than tapeinfo 
+#  Alert Command = "sh -c 'smartctl -H -l error %c'"  
 #}
 
 #
@@ -144,6 +152,8 @@ Device {
 ## The min/max blocksizes of 32768 are *required*
 #  Minimum Block Size = 32768
 #  Maximum Block Size = 32768
+#  If you have smartctl, enable this, it has more info than tapeinfo 
+#  Alert Command = "sh -c 'smartctl -H -l error %c'"  
 #}
  
 #
@@ -182,6 +192,8 @@ Device {
 #  AlwaysOpen = yes;
 #  RemovableMedia = yes;
 #  RandomAccess = no;
+#  If you have smartctl, enable this, it has more info than tapeinfo 
+#  Alert Command = "sh -c 'smartctl -H -l error %c'"  
 #}
 
 #
@@ -196,6 +208,8 @@ Device {
 #  AlwaysOpen = Yes;
 #  RemovableMedia = yes;
 #  RandomAccess = no;
+#  If you have smartctl, enable this, it has more info than tapeinfo 
+#  Alert Command = "sh -c 'smartctl -H -l error %c'"  
 #}
 
 # 
index d5457662647f2db99785baebcf2a0ebb849b999a..87a250d9e23b7daffdb4b6b965dd90164956a942 100644 (file)
@@ -1,6 +1,9 @@
               Technical notes on version 2.1
 
 General:
+04Mar07
+kes  Add smartctl call to bacula-sd.conf as an example of getting
+     tape alert info.
 02Mar07
 kes  Modify jobq.c to let simultaneous restore jobs run. This may 
      cause them to fail if they cannot get a drive.