if not disks:
return []
else:
- return string.split(disks)[:count]
+ ret = string.split(disks)[:count]
+ if legacySATA:
+ ret = [xenrt.convertToLegacySATA(x) for x in ret]
+ return ret
def _getMainDisks(self, count, ccissIfAvailable, legacySATA, overrideBoot):
return self._getDisks("OPTION_CARBON_DISKS", True, count=count, ccissIfAvailable=ccissIfAvailable, legacySATA=legacySATA, overrideBoot=overrideBoot)
"checkXMLDomSubset",
"getUpdateDistro",
"getLinuxRepo",
- "getURLContent"
+ "getURLContent",
+ "convertToLegacySATA"
]
def sleep(secs, log=True):
resp = sock.read()
sock.close()
return resp
+
+def convertToLegacySATA(diskId):
+ if "/" in diskId:
+ (prefix, diskId) = diskId.rsplit("/", 1)
+ prefix += "/"
+ else:
+ prefix = ""
+
+ m = re.match("^ata-(ST.*?-..)....(_.*)$", diskId)
+ if m:
+ diskId = "scsi-SATA_%s%s" % (m.group(1), m.group(2))
+
+ m = re.match("^ata-(WDC_WD.*?-).*?(_.*)$", diskId)
+ if m:
+ diskId = "scsi-SATA_%s%s" % (m.group(1), m.group(2))
+
+ return "%s%s" % (prefix, diskId)
+