``output_fields``. The result will be a job id, using which the result can be
retrieved.
+``/2/nodes/[node_name]/storage/modify``
++++++++++++++++++++++++++++++++++++++++
+
+Modifies storage units on the node.
+
+``PUT``
+~~~~~~~
+
+Modifies parameters of storage units on the node. Requires the parameters
+``storage_type`` (one of ``file``, ``lvm-pv`` or ``lvm-vg``) and ``name`` (name
+of the storage unit). Parameters can be passed additionally. Currently only
+``allocatable`` (bool) is supported. The result will be a job id.
+
``/2/nodes/[node_name]/tags``
+++++++++++++++++++++++++++++
rlib2.R_2_nodes_name_migrate,
re.compile(r'^/2/nodes/([\w\._-]+)/storage$'):
rlib2.R_2_nodes_name_storage,
+ re.compile(r'^/2/nodes/([\w\._-]+)/storage/modify$'):
+ rlib2.R_2_nodes_name_storage_modify,
"/2/instances": rlib2.R_2_instances,
re.compile(r'^/2/instances/([\w\._-]+)$'): rlib2.R_2_instances_name,
re.compile(r'^/2/instances/([\w\._-]+)/tags$'): rlib2.R_2_instances_name_tags,
return baserlib.SubmitJob([op])
+class R_2_nodes_name_storage_modify(baserlib.R_Generic):
+ """/2/nodes/[node_name]/storage/modify ressource.
+
+ """
+ def PUT(self):
+ node_name = self.items[0]
+
+ storage_type = self._checkStringVariable("storage_type", None)
+ if not storage_type:
+ raise http.HttpBadRequest("Missing the required 'storage_type'"
+ " parameter")
+
+ name = self._checkStringVariable("name", None)
+ if not name:
+ raise http.HttpBadRequest("Missing the required 'name'"
+ " parameter")
+
+ changes = {}
+
+ if "allocatable" in self.queryargs:
+ changes[constants.SF_ALLOCATABLE] = \
+ bool(self._checkIntVariable("allocatable", default=1))
+
+ op = opcodes.OpModifyNodeStorage(node_name=node_name,
+ storage_type=storage_type,
+ name=name,
+ changes=changes)
+ return baserlib.SubmitJob([op])
+
+
class R_2_instances(baserlib.R_Generic):
"""/2/instances resource.