From dc0c14061dff1fd7aba8d3807e13eea5071717ec Mon Sep 17 00:00:00 2001
From: Vincent Pelletier <vincent@nexedi.com>
Date: Thu, 31 Jan 2013 14:42:29 +0100
Subject: [PATCH] Simplify option parsing code.

Also, s/isSlave/slave/ .
Also, when doc says we default to "false", literaly default to "false".
---
 slapos/recipe/request.py | 35 ++++++++++++-----------------------
 1 file changed, 12 insertions(+), 23 deletions(-)

diff --git a/slapos/recipe/request.py b/slapos/recipe/request.py
index bd30fc383..51ecf900d 100644
--- a/slapos/recipe/request.py
+++ b/slapos/recipe/request.py
@@ -102,38 +102,27 @@ class Recipe(object):
     request = slap.registerComputerPartition(
       options['computer-id'], options['partition-id']).request
 
-    return_parameters = []
-    if 'return' in options:
-      return_parameters = [str(parameter).strip()
-                          for parameter in options['return'].split()]
-    else:
+    return_parameters = options.get('return', '').split()
+    if not return_parameters:
       self.logger.debug("No parameter to return to main instance."
         "Be careful about that...")
-
     software_type = options.get('software-type', DEFAULT_SOFTWARE_TYPE)
-
-    filter_kw = {}
-    if 'sla' in options:
-      for sla_parameter in options['sla'].split():
-        filter_kw[sla_parameter] = options['sla-%s' % sla_parameter]
-
-    partition_parameter_kw = {}
-    if 'config' in options:
-      for config_parameter in options['config'].split():
-        partition_parameter_kw[config_parameter] = \
-            options['config-%s' % config_parameter]
-    partition_parameter_kw = self._filterForStorage(partition_parameter_kw)
-
-    isSlave = options.get('slave', '').lower() in \
-        librecipe.GenericBaseRecipe.TRUE_VALUES
-
+    filter_kw = dict(
+      (x, options['sla-' + x]) for x in options.get('sla', '').split()
+    )
+    partition_parameter_kw = self._filterForStorage(dict(
+      (x, options['config-' + x])
+      for x in options.get('config', '').split()
+    ))
+    slave = options.get('slave', 'false').lower() in \
+      librecipe.GenericBaseRecipe.TRUE_VALUES
     self._raise_request_exception = None
     self._raise_request_exception_formatted = None
     self.instance = None
     try:
       self.instance = request(software_url, software_type,
           name, partition_parameter_kw=partition_parameter_kw,
-          filter_kw=filter_kw, shared=isSlave)
+          filter_kw=filter_kw, shared=slave)
       return_parameter_dict = self._getReturnParameterDict(self.instance,
           return_parameters)
       # XXX what is the right way to get a global id?
-- 
2.30.9