]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/scripts/dvd-handler.in
ebl update
[bacula/bacula] / bacula / scripts / dvd-handler.in
index 66e258c5f3641a8dac5dc618550df41fea317e39..54f5661f407e3abb2dc723f664b4505784861bec 100644 (file)
@@ -6,14 +6,34 @@
 #
 #  called:  dvd-handler <dvd-device-name> operation args
 #
-#  where operation is one of
-#    free
-#    write
+#  operations used by Bacula:
+#
+#   free  (no arguments)
+#            Scan the device and report the available space. It returns:
+#            Prints on the first output line the free space available in bytes.
+#            If an error occurs, prints a negative number (-errno), followed,
+#            on the second line, by an error message.
+#
+#   write  op filename
+#             Write a part file to disk.
+#             This operation needs two additional arguments.
+#             The first (op) indicates to
+#                 0 -- append
+#                 1 -- first write to a blank disk
+#                 2 -- blank or truncate a disk
+#
+#              The second is the filename to write
+#
+#   operations available but not used by Bacula:
+#
+#   test      Scan the device and report the information found.
+#             This operation needs no further arguments.
+#   prepare   Prepare a DVD+/-RW for being used by Bacula.
+#             Note: This is only useful if you already have some
+#             non-Bacula data on a medium, and you want to use
+#             it with Bacula. Don't run this on blank media, it
+#             is useless.
 #
-# in case of operation ``free'' returns:
-# Prints on the first output line the free space available in bytes.
-# If an error occurs, prints a negative number (-errno), followed,
-# on the second line, by an error message.
 # 
 # $Id$
 #
@@ -266,10 +286,10 @@ class disk:
       
       cmd = self.growcmd + self.growparams
       if newvol:
-        cmd += " -Z "
         # Ignore any existing iso9660 filesystem - used for truncate
         if newvol == 2:
-            cmd += "-use-the-force-luke=tty "
+            cmd += " -use-the-force-luke=tty"
+        cmd += " -Z "
       else:
         cmd += " -M "
       cmd += self.device + " " + str(partfile)
@@ -288,6 +308,8 @@ class disk:
       self.pid = 0
       print
       signal.signal(signal.SIGTERM, oldsig)
+      if not os.WIFEXITED(status):
+        raise DVDError(0, cmd + " process did not exit correctly, signal/status " + str(status))
       if os.WEXITSTATUS(status) != 0:
         raise DVDError(os.WEXITSTATUS(status), cmd + " exited with status " + str(os.WEXITSTATUS(status)) + ", signal/status " + str(status))