X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/1c63311dbe28af93b2e88a83e784ab90b77d9435..f3db88bac8ec5c1b5716c2ec6e193045c8da82a8:/lib/rapi/rlib2.py diff --git a/lib/rapi/rlib2.py b/lib/rapi/rlib2.py index 373754b..167abe3 100644 --- a/lib/rapi/rlib2.py +++ b/lib/rapi/rlib2.py @@ -1002,146 +1002,82 @@ class R_2_instances_name_prepare_export(baserlib.OpcodeResource): }) -def _ParseExportInstanceRequest(name, data): - """Parses a request for an instance export. - - @rtype: L{opcodes.OpBackupExport} - @return: Instance export opcode - - """ - # Rename "destination" to "target_node" - try: - data["target_node"] = data.pop("destination") - except KeyError: - pass - - return baserlib.FillOpcode(opcodes.OpBackupExport, data, { - "instance_name": name, - }) - - -class R_2_instances_name_export(baserlib.ResourceBase): +class R_2_instances_name_export(baserlib.OpcodeResource): """/2/instances/[instance_name]/export resource. """ - def PUT(self): - """Exports an instance. + PUT_OPCODE = opcodes.OpBackupExport + PUT_RENAME = { + "destination": "target_node", + } - @return: a job id + def GetPutOpInput(self): + """Exports an instance. """ - if not isinstance(self.request_body, dict): - raise http.HttpBadRequest("Invalid body contents, not a dictionary") - - op = _ParseExportInstanceRequest(self.items[0], self.request_body) - - return self.SubmitJob([op]) - - -def _ParseMigrateInstanceRequest(name, data): - """Parses a request for an instance migration. - - @rtype: L{opcodes.OpInstanceMigrate} - @return: Instance migration opcode - - """ - return baserlib.FillOpcode(opcodes.OpInstanceMigrate, data, { - "instance_name": name, - }) + return (self.request_body, { + "instance_name": self.items[0], + }) -class R_2_instances_name_migrate(baserlib.ResourceBase): +class R_2_instances_name_migrate(baserlib.OpcodeResource): """/2/instances/[instance_name]/migrate resource. """ - def PUT(self): - """Migrates an instance. + PUT_OPCODE = opcodes.OpInstanceMigrate - @return: a job id + def GetPutOpInput(self): + """Migrates an instance. """ - baserlib.CheckType(self.request_body, dict, "Body contents") - - op = _ParseMigrateInstanceRequest(self.items[0], self.request_body) - - return self.SubmitJob([op]) + return (self.request_body, { + "instance_name": self.items[0], + }) -class R_2_instances_name_failover(baserlib.ResourceBase): +class R_2_instances_name_failover(baserlib.OpcodeResource): """/2/instances/[instance_name]/failover resource. """ - def PUT(self): - """Does a failover of an instance. + PUT_OPCODE = opcodes.OpInstanceFailover - @return: a job id + def GetPutOpInput(self): + """Does a failover of an instance. """ - baserlib.CheckType(self.request_body, dict, "Body contents") - - op = baserlib.FillOpcode(opcodes.OpInstanceFailover, self.request_body, { + return (self.request_body, { "instance_name": self.items[0], }) - return self.SubmitJob([op]) - - -def _ParseRenameInstanceRequest(name, data): - """Parses a request for renaming an instance. - - @rtype: L{opcodes.OpInstanceRename} - @return: Instance rename opcode - """ - return baserlib.FillOpcode(opcodes.OpInstanceRename, data, { - "instance_name": name, - }) - - -class R_2_instances_name_rename(baserlib.ResourceBase): +class R_2_instances_name_rename(baserlib.OpcodeResource): """/2/instances/[instance_name]/rename resource. """ - def PUT(self): - """Changes the name of an instance. + PUT_OPCODE = opcodes.OpInstanceRename - @return: a job id + def GetPutOpInput(self): + """Changes the name of an instance. """ - baserlib.CheckType(self.request_body, dict, "Body contents") - - op = _ParseRenameInstanceRequest(self.items[0], self.request_body) - - return self.SubmitJob([op]) - - -def _ParseModifyInstanceRequest(name, data): - """Parses a request for modifying an instance. - - @rtype: L{opcodes.OpInstanceSetParams} - @return: Instance modify opcode - - """ - return baserlib.FillOpcode(opcodes.OpInstanceSetParams, data, { - "instance_name": name, - }) + return (self.request_body, { + "instance_name": self.items[0], + }) -class R_2_instances_name_modify(baserlib.ResourceBase): +class R_2_instances_name_modify(baserlib.OpcodeResource): """/2/instances/[instance_name]/modify resource. """ - def PUT(self): - """Changes some parameters of an instance. + PUT_OPCODE = opcodes.OpInstanceSetParams - @return: a job id + def GetPutOpInput(self): + """Changes parameters of an instance. """ - baserlib.CheckType(self.request_body, dict, "Body contents") - - op = _ParseModifyInstanceRequest(self.items[0], self.request_body) - - return self.SubmitJob([op]) + return (self.request_body, { + "instance_name": self.items[0], + }) class R_2_instances_name_disk_grow(baserlib.ResourceBase):