On Mon, Jan 10, 2011 at 11:23 +0000, Michael Hanselmann <[email protected]> 
wrote:
> Am 9. Januar 2011 16:04 schrieb Adeodato Simo <[email protected]>:
> > +class R_2_groups_name_assign_nodes(baserlib.R_Generic):
> > +  """/2/groups/[groupe_name]/assign_nodes resource.
 
> Please use “assign-nodes”, not “assign_nodes”.

Oops. I thought I was being consistent, but my cursory look at
connector.py had me tooking at the wrong place (class names rather than
URL patterns).

> > +  def PUT(self):
> > +    baserlib.CheckType(self.request_body, dict, "Body contents")
> > +    nodes = baserlib.CheckParameter(self.request_body, "nodes", 
> > exptype=list)
> > +    group_name = self.items[0]
> > +
> > +    op = opcodes.OpAssignGroupNodes(group_name=group_name, nodes=nodes,
> > +                                    force=self.useForce(),
> > +                                    dry_run=self.dryRun())

> Please use baserlib.FillOpcode. It gives you the type checks for free.

> op = baserlib.FillOpcode(opcodes.OpAssignGroupNodes, self.request_body, {
>   "group_name": self.items[0],
>   "dry_run": self.dryRun(),
>   })

Done.

diff --git a/lib/rapi/client.py b/lib/rapi/client.py
index be0850b..467dec9 100644
--- a/lib/rapi/client.py
+++ b/lib/rapi/client.py
@@ -1558,5 +1558,5 @@ class GanetiRapiClient(object):
       }
 
     return self._SendRequest(HTTP_PUT,
-                             ("/%s/groups/%s/assign_nodes" %
+                             ("/%s/groups/%s/assign-nodes" %
                              (GANETI_RAPI_VERSION, group)), query, body)
diff --git a/lib/rapi/connector.py b/lib/rapi/connector.py
index 155c305..ef03525 100644
--- a/lib/rapi/connector.py
+++ b/lib/rapi/connector.py
@@ -223,7 +223,7 @@ def GetHandlers(node_name_pattern, instance_name_pattern,
       rlib2.R_2_groups_name_modify,
     re.compile(r'^/2/groups/(%s)/rename$' % group_name_pattern):
       rlib2.R_2_groups_name_rename,
-    re.compile(r'^/2/groups/(%s)/assign_nodes$' % group_name_pattern):
+    re.compile(r'^/2/groups/(%s)/assign-nodes$' % group_name_pattern):
       rlib2.R_2_groups_name_assign_nodes,
 
     "/2/jobs": rlib2.R_2_jobs,
diff --git a/lib/rapi/rlib2.py b/lib/rapi/rlib2.py
index c0b90d7..3ff2988 100644
--- a/lib/rapi/rlib2.py
+++ b/lib/rapi/rlib2.py
@@ -686,7 +686,7 @@ class R_2_groups_name_rename(baserlib.R_Generic):
 
 
 class R_2_groups_name_assign_nodes(baserlib.R_Generic):
-  """/2/groups/[groupe_name]/assign_nodes resource.
+  """/2/groups/[groupe_name]/assign-nodes resource.
 
   """
   def PUT(self):
@@ -695,19 +695,15 @@ class R_2_groups_name_assign_nodes(baserlib.R_Generic):
     @return: a job id
 
     """
-    baserlib.CheckType(self.request_body, dict, "Body contents")
-    nodes = baserlib.CheckParameter(self.request_body, "nodes", exptype=list)
-    group_name = self.items[0]
-
-    op = opcodes.OpAssignGroupNodes(group_name=group_name, nodes=nodes,
-                                    force=self.useForce(),
-                                    dry_run=self.dryRun())
+    op = baserlib.FillOpcode(opcodes.OpAssignGroupNodes, self.request_body, {
+      "group_name": self.items[0],
+      "dry_run": self.dryRun(),
+      "force": self.useForce(),
+      })
 
     return baserlib.SubmitJob([op])
 
 
-
-
 def _ParseInstanceCreateRequestVersion1(data, dry_run):
   """Parses an instance creation request version 1.
 

-- 
Adeodato Simo | [email protected]
Corp Computing Services SRE (Dublin)

Reply via email to