 (defn- container-id
   "Return the name of a archive spool directory for a given
   `production` and `sektion`"
-  [production sektion]
-  (case sektion
-    :master (prod/dam-number production)
-    :dist-master (str "ds" (:library_signature production))))
+  ([production sektion]
+   (container-id production sektion nil))
+  ([production sektion volume]
+   (case sektion
+     :master (prod/dam-number production)
+     :dist-master (str "ds" (:library_signature production)
+                       (when (and volume
+                                  (prod/multi-volume? production))
+                         (str "_" volume))))))
 
 (defn- container-path
   "Return the path to the archive spool directory for a given

  and concludes the archiving process from the point of view of the
  production system."
  [production sektion]
  (let [new-job
        {:verzeichnis (container-id production sektion)
         :sektion (if (= sektion :master) "master" "cdimage")}
        job (merge default-job new-job)]
    (jdbc/insert! db :container job)))

(defn- copy-files
  "Copy a `production` to the archive spool dir for the given

  directory"
  [production sektion]
  (let [rdf (rdf/rdf production)
        entries (case sektion :master 2 :dist-master (inc (:volumes production)))]
    (doseq [volume (range 1 entries)]
      (let [rdf-path (container-rdf-path production sektion volume)]
        (spit rdf-path rdf)))))

(defn- archive-sektion
  "Archive a `production` for given `sektion`. For the :master sektion
