From 15c60fda9ce0ae524e64c39279e20e2fa89907f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20de=20Saint=20Martin?= <cedric.dsm@tiolive.com>
Date: Fri, 13 Jul 2012 12:42:16 +0200
Subject: [PATCH] Don't crash if one slave is bad

---
 slapos/recipe/kvm_frontend/__init__.py | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/slapos/recipe/kvm_frontend/__init__.py b/slapos/recipe/kvm_frontend/__init__.py
index 0da257348..83a57996c 100644
--- a/slapos/recipe/kvm_frontend/__init__.py
+++ b/slapos/recipe/kvm_frontend/__init__.py
@@ -26,6 +26,7 @@
 ##############################################################################
 from slapos.recipe.librecipe import GenericBaseRecipe, GenericSlapRecipe
 import json
+import traceback
 import zc.buildout
 
 class Recipe(GenericSlapRecipe):
@@ -127,11 +128,15 @@ class Recipe(GenericSlapRecipe):
     # Send connection parameters of slave instances
     site_url = "https://%s:%s/" % (self.options['domain'], self.options['port'])
     for slave in rewrite_rule_list:
-      self.setConnectionDict(
-          dict(url="%s%s" % (site_url, slave['resource']),
-               domainname=self.options['domain'],
-               port=self.options['port'],
-               resource=slave['resource']),
-          slave['reference'])
+      try:
+        self.setConnectionDict(
+            dict(url="%s%s" % (site_url, slave['resource']),
+                 domainname=self.options['domain'],
+                 port=self.options['port'],
+                 resource=slave['resource']),
+            slave['reference'])
+      except:
+        self.logger.fatal("Error while sending slave %s informations: %s",
+           slave['reference'], traceback.format_exc())
 
     return [map_file, conf_file, runner_path]
-- 
2.30.9