]> scripts.mit.edu Git - wizard.git/blobdiff - wizard/command/upgrade.py
Reduce duplication in test scripts, more logging.
[wizard.git] / wizard / command / upgrade.py
index 06be3db1eb23548d64f0d57fce5d5042f364f502..476c1b78ca3890be9715227ac3bb382dff42adfb 100644 (file)
@@ -1,16 +1,15 @@
-import optparse
 import sys
 import distutils.version
 import os
 import shutil
 import logging.handlers
-import errno
 import tempfile
 import itertools
 
 from wizard import app, command, deploy, scripts, shell, util
 
 kib_buffer = 1024 * 30 # 30 MiB we will always leave available
+errno_blacklisted = 64
 
 def main(argv, baton):
     options, args = parse_args(argv, baton)
@@ -47,8 +46,12 @@ def main(argv, baton):
             d = deploy.ProductionCopy(".")
             if os.path.exists(".scripts/blacklisted"):
                 reason = open(".scripts/blacklisted").read()
-                print "-1 " + reason
-                raise BlacklistedError(reason)
+                # ignore blank blacklisted files
+                if reason:
+                    print reason
+                    raise BlacklistedError(reason)
+                else:
+                    logging.warning("Application was blacklisted, but no reason was found");
             d.verify()
             d.verifyTag(options.srv_path)
             d.verifyGit(options.srv_path)
@@ -142,7 +145,7 @@ def main(argv, baton):
                 except deploy.WebVerificationError as e:
                     logging.warning("Web verification failed: rolling back")
                     perform_restore(d, backup)
-                    raise app.UpgradeVerificationFailure(e.contents)
+                    raise app.UpgradeVerificationFailure()
         # XXX: frob .htaccess to make site accessible
         #       to do this, check if .htaccess changed, first.  Upgrade
         #       process might have frobbed it.  Don't be
@@ -229,7 +232,10 @@ def perform_merge(sh, repo, d, wc, version, use_shm, kib_avail):
             "-p", base_virtual_commit, input="", log=True)
     sh.call("git", "checkout", user_virtual_commit, "--")
     wc.prepareMerge()
-    sh.call("git", "commit", "--amend", "-a", "-m", "amendment")
+    try:
+        sh.call("git", "commit", "--amend", "-a", "-m", "amendment")
+    except shell.CallError as e:
+        pass
     try:
         sh.call("git", "merge", next_virtual_commit)
     except shell.CallError as e:
@@ -324,6 +330,7 @@ this actually works)."""
 class BlacklistedError(Error):
     #: Reason why the autoinstall was blacklisted
     reason = None
+    exitcode = errno_blacklisted
     def __init__(self, reason):
         self.reason = reason
     def __str__(self):