diff --git a/lib/rapi/connector.py b/lib/rapi/connector.py index 3ef842bac2e49702087617e309e7c88132734b6f..8a088870d857beb893c85b601dd0d89e214a889b 100644 --- a/lib/rapi/connector.py +++ b/lib/rapi/connector.py @@ -201,6 +201,8 @@ def GetHandlers(node_name_pattern, instance_name_pattern, job_id_pattern): rlib2.R_2_instances_name_shutdown, re.compile(r'^/2/instances/(%s)/startup$' % instance_name_pattern): rlib2.R_2_instances_name_startup, + re.compile(r'^/2/instances/(%s)/activate-disks$' % instance_name_pattern): + rlib2.R_2_instances_name_activate_disks, "/2/jobs": rlib2.R_2_jobs, re.compile(r'/2/jobs/(%s)$' % job_id_pattern): diff --git a/lib/rapi/rlib2.py b/lib/rapi/rlib2.py index f475277578fc7dc8dd560046b9a69b2f4e695c2f..8b97bd9ef643036d176a4cdb47964c01fbd9e650 100644 --- a/lib/rapi/rlib2.py +++ b/lib/rapi/rlib2.py @@ -649,6 +649,25 @@ class R_2_instances_name_replace_disks(baserlib.R_Generic): return baserlib.SubmitJob([op]) +class R_2_instances_name_activate_disks(baserlib.R_Generic): + """/2/instances/[instance_name]/activate-disks resource. + + """ + def PUT(self): + """Activate disks for an instance. + + The URI might contain ignore_size to ignore current recorded size. + + """ + instance_name = self.items[0] + ignore_size = bool(self._checkIntVariable('ignore_size')) + + op = opcodes.OpActivateInstanceDisks(instance_name=instance_name, + ignore_size=ignore_size) + + return baserlib.SubmitJob([op]) + + class _R_Tags(baserlib.R_Generic): """ Quasiclass for tagging resources