Revision 539d65ba lib/rapi/rlib2.py

b/lib/rapi/rlib2.py
999 999

  
1000 1000
  # Parse disks
1001 1001
  try:
1002
    raw_disks = data["disks"]
1002
    raw_disks = data.pop("disks")
1003 1003
  except KeyError:
1004 1004
    pass
1005 1005
  else:
1006
    if not ht.TListOf(ht.TInt)(raw_disks): # pylint: disable=E1102
1007
      # Backwards compatibility for strings of the format "1, 2, 3"
1008
      try:
1009
        data["disks"] = [int(part) for part in raw_disks.split(",")]
1010
      except (TypeError, ValueError), err:
1011
        raise http.HttpBadRequest("Invalid disk index passed: %s" % str(err))
1006
    if raw_disks:
1007
      if ht.TListOf(ht.TInt)(raw_disks): # pylint: disable=E1102
1008
        data["disks"] = raw_disks
1009
      else:
1010
        # Backwards compatibility for strings of the format "1, 2, 3"
1011
        try:
1012
          data["disks"] = [int(part) for part in raw_disks.split(",")]
1013
        except (TypeError, ValueError), err:
1014
          raise http.HttpBadRequest("Invalid disk index passed: %s" % str(err))
1012 1015

  
1013 1016
  return baserlib.FillOpcode(opcodes.OpInstanceReplaceDisks, data, override)
1014 1017

  
......
1021 1024
    """Replaces disks on an instance.
1022 1025

  
1023 1026
    """
1024
    op = _ParseInstanceReplaceDisksRequest(self.items[0], self.request_body)
1027
    if self.request_body:
1028
      body = self.request_body
1029
    elif self.queryargs:
1030
      # Legacy interface, do not modify/extend
1031
      body = {
1032
        "remote_node": self._checkStringVariable("remote_node", default=None),
1033
        "mode": self._checkStringVariable("mode", default=None),
1034
        "disks": self._checkStringVariable("disks", default=None),
1035
        "iallocator": self._checkStringVariable("iallocator", default=None),
1036
        }
1037
    else:
1038
      body = {}
1039

  
1040
    op = _ParseInstanceReplaceDisksRequest(self.items[0], body)
1025 1041

  
1026 1042
    return baserlib.SubmitJob([op])
1027 1043

  

Also available in: Unified diff