]> scripts.mit.edu Git - wizard.git/commitdiff
Make mass-migrate handle child error conditions.
authorEdward Z. Yang <edwardzyang@thewritingpot.com>
Wed, 17 Jun 2009 06:28:23 +0000 (02:28 -0400)
committerEdward Z. Yang <edwardzyang@thewritingpot.com>
Wed, 17 Jun 2009 06:28:23 +0000 (02:28 -0400)
Signed-off-by: Edward Z. Yang <edwardzyang@thewritingpot.com>
lib/wizard/command/massmigrate.py

index 070945f938129033f0d1f349a9274f3fb901cfff..f80c0a7905f29980999dfee3694f4190f2733858 100644 (file)
@@ -44,7 +44,16 @@ output going to stdout/stderr."""
         if name != app: continue
         deploys.append(deploy)
     # parallelization code would go here
+    errors = {}
     for deploy in deploys:
         sub_argv = base_args + [deploy.location]
         logger.info("$ wizard migrate " + " ".join(sub_argv))
-        migrate.migrate(sub_argv, global_options, logger)
+        try:
+            migrate.migrate(sub_argv, global_options, logger)
+        except UserException as e:
+            name = e.__class__.__name__
+            if name not in errors: errors[name] = []
+            errors[name].append(deploy)
+            logger.error("ERROR [%s] in %s" % (name, d.location))
+    for name, deploys in errors.items():
+        logger.warning("ERROR [%s] from %d installs" % (name, len(deploys)))