[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] Fix the handling of MESSAGE_METHOD_UNKNOWN, MESSAGE_PARAMETER_COUNT_MISMATCH,



# HG changeset patch
# User Ewan Mellor <ewan@xxxxxxxxxxxxx>
# Date 1170009462 0
# Node ID a7fc9cc9a51f01f7d0b7df046944735182b011b3
# Parent  58344c358aa0a1c89da5e592ae36f9067f63602d
Fix the handling of MESSAGE_METHOD_UNKNOWN, MESSAGE_PARAMETER_COUNT_MISMATCH,
through the AsyncProxy.

Signed-off-by: Ewan Mellor <ewan@xxxxxxxxxxxxx>
---
 tools/python/xen/xend/XendAPI.py |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff -r 58344c358aa0 -r a7fc9cc9a51f tools/python/xen/xend/XendAPI.py
--- a/tools/python/xen/xend/XendAPI.py  Sun Jan 28 18:05:13 2007 +0000
+++ b/tools/python/xen/xend/XendAPI.py  Sun Jan 28 18:37:42 2007 +0000
@@ -2019,18 +2019,21 @@ class XendAPIAsyncProxy:
 
         # Only deal with method names that start with "Async."
         if not method.startswith(self.method_prefix):
-            raise Exception('Method %s not supported' % method)
-
-        # Require 'session' argument to be present.
-        if len(args) < 1:
-            raise Exception('Not enough arguments')
+            return xen_api_error(['MESSAGE_METHOD_UNKNOWN', method])
 
         # Lookup synchronous version of the method
         synchronous_method_name = method[len(self.method_prefix):]
         if synchronous_method_name not in self.method_map:
-            raise Exception('Method %s not supported' % method)
+            return xen_api_error(['MESSAGE_METHOD_UNKNOWN', method])
         
         method = self.method_map[synchronous_method_name]
+
+        # Check that we've got enough arguments before issuing a task ID.
+        needed = argcounts[method.api]
+        if len(args) != needed:
+            return xen_api_error(['MESSAGE_PARAMETER_COUNT_MISMATCH',
+                                  self.method_prefix + method.api, needed,
+                                  len(args)])
 
         # Validate the session before proceeding
         session = args[0]

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.