]> git.decadent.org.uk Git - dak.git/commitdiff
Add archive rename command
authorTollef Fog Heen <tfheen@varnish-software.com>
Thu, 22 Nov 2012 14:06:56 +0000 (15:06 +0100)
committerAnsgar Burchardt <ansgar@debian.org>
Sat, 24 Nov 2012 17:57:39 +0000 (18:57 +0100)
Make it possible to rename archives using

     dak admin archive rename OLD NEW

Signed-off-by: Tollef Fog Heen <tfheen@varnish-software.com>
dak/admin.py

index 8ba79797bdaf6345e6d5b1c3bd0206c8c3313c08..0de7cd69751ea92336fcb780b6b3dec00f8b37ea 100755 (executable)
@@ -103,6 +103,7 @@ Perform administrative work on the dak database.
                             primary mirror MIRROR.
      archive rm NAME        remove archive NAME (will only work if there are
                             no files and no suites in the archive)
+     archive rename OLD NEW rename archive OLD to NEW
 
   version-check / v-c:
      v-c list                        show version checks for all suites
@@ -429,10 +430,23 @@ def archive_rm(name):
     else:
         session.commit()
 
+def archive_rename(oldname, newname):
+    session = DBConn().session()
+    archive = get_archive(oldname, session)
+    archive.archive_name = newname
+    session.flush()
+
+    if dryrun:
+        session.rollback()
+    else:
+        session.commit()
+
 def archive(command):
     mode = command[1]
     if mode == 'list':
         archive_list()
+    elif mode == 'rename':
+        archive_rename(command[2], command[3])
     elif mode == 'add':
         archive_add(command[2:])
     elif mode == 'rm':