Re: [PATCH master 23/52] Fix handling of errors from InstancePolicy.Check...

2012-01-11 Thread René Nussbaumer
On Mon, Jan 9, 2012 at 11:58, Iustin Pop  wrote:
> This code raises a configuration error, but we need to transform it
> into a prereq error (or possibly exec error), depending on when we
> call this function.
> ---
>  lib/cmdlib.py |   18 +++---
>  1 files changed, 15 insertions(+), 3 deletions(-)

LGTM.

René


[PATCH master 23/52] Fix handling of errors from InstancePolicy.Check...

2012-01-09 Thread Iustin Pop
This code raises a configuration error, but we need to transform it
into a prereq error (or possibly exec error), depending on when we
call this function.
---
 lib/cmdlib.py |   18 +++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 30a3e12..c520221 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -3862,7 +3862,11 @@ class LUClusterSetParams(LogicalUnit):
 utils.ForceDictType(value, constants.ISPECS_PARAMETER_TYPES)
 ipolicy[key] = _GetUpdatedParams(cluster.ipolicy.get(key, {}),
   value)
-  objects.InstancePolicy.CheckParameterSyntax(ipolicy)
+  try:
+objects.InstancePolicy.CheckParameterSyntax(ipolicy)
+  except errors.ConfigurationError, err:
+raise errors.OpPrereqError("Invalid instance policy: %s" % err,
+   errors.ECODE_INVAL)
   self.new_ipolicy = ipolicy
 
 if self.op.nicparams:
@@ -12984,7 +12988,11 @@ class LUGroupAdd(LogicalUnit):
 if self.op.ipolicy:
   cluster = self.cfg.GetClusterInfo()
   full_ipolicy = cluster.SimpleFillIPolicy(self.op.ipolicy)
-  objects.InstancePolicy.CheckParameterSyntax(full_ipolicy)
+  try:
+objects.InstancePolicy.CheckParameterSyntax(full_ipolicy)
+  except errors.ConfigurationError, err:
+raise errors.OpPrereqError("Invalid instance policy: %s" % err,
+   errors.ECODE_INVAL)
 
   def BuildHooksEnv(self):
 """Build hooks env.
@@ -13322,7 +13330,11 @@ class LUGroupSetParams(LogicalUnit):
use_none=True)
 utils.ForceDictType(g_ipolicy[key], constants.ISPECS_PARAMETER_TYPES)
   self.new_ipolicy = g_ipolicy
-  objects.InstancePolicy.CheckParameterSyntax(self.new_ipolicy)
+  try:
+objects.InstancePolicy.CheckParameterSyntax(self.new_ipolicy)
+  except errors.ConfigurationError, err:
+raise errors.OpPrereqError("Invalid instance policy: %s" % err,
+   errors.ECODE_INVAL)
 
   def BuildHooksEnv(self):
 """Build hooks env.
-- 
1.7.3.1