query: return UNAVAIL for "wrong" HV parameters
authorIustin Pop <iustin@google.com>
Sun, 16 Jan 2011 16:28:33 +0000 (17:28 +0100)
committerIustin Pop <iustin@google.com>
Tue, 18 Jan 2011 15:55:56 +0000 (16:55 +0100)
If a HV parameter is required that does not apply for an instance,
currently the code returns None. This is bad, as it means we cannot
switch to the actual HV parameter types and validate correctly this
field.

This patch changes it so that in this case we return QRFS_UNAVAIL;
ideally we would use a NOT_APPROPRIATE or similar field, but UNAVAIL is
good enough (the call cannot fail in another way).

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

lib/query.py

index 7caa9c5..5819981 100644 (file)
@@ -1038,7 +1038,7 @@ def _GetInstanceParameterFields():
 
   # HV params
   def _GetInstHvParam(name):
-    return lambda ctx, _: ctx.inst_hvparams.get(name, None)
+    return lambda ctx, _: ctx.inst_hvparams.get(name, _FS_UNAVAIL)
 
   fields.extend([
     # For now all hypervisor parameters are exported as QFT_OTHER