]> xenbits.xensource.com Git - xenrt-citrix/xenrt.git/commitdiff
Convert disk IDs to legacy SATA
authorJohn Dilley <john.dilley@citrix.com>
Tue, 17 Nov 2015 12:48:25 +0000 (12:48 +0000)
committerJohn Dilley <john.dilley@citrix.com>
Tue, 17 Nov 2015 12:48:25 +0000 (12:48 +0000)
exec/xenrt/objects.py
exec/xenrt/util.py

index 18f3ac0edaaf4b08f73653b42897f937a0434030..fc3075cbf374880a6c5839b85ff85816631e52f9 100755 (executable)
@@ -6874,7 +6874,10 @@ chain tftp://${next-server}/%s
         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)
index 96d62aa4bd1db462e36c3ad2f857f06e47a4f737..21c221b8be5e294a03a1bb598bd03441761716b9 100755 (executable)
@@ -98,7 +98,8 @@ __all__ = ["timenow",
            "checkXMLDomSubset",
            "getUpdateDistro",
            "getLinuxRepo",
-           "getURLContent"
+           "getURLContent",
+           "convertToLegacySATA"
            ]
 
 def sleep(secs, log=True):
@@ -1685,3 +1686,21 @@ def getURLContent(url):
     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)
+