diff --git a/misc/getinstalldisk b/misc/getinstalldisk deleted file mode 100644 index 71a63381..00000000 --- a/misc/getinstalldisk +++ /dev/null @@ -1,86 +0,0 @@ -import subprocess -import os - -class DiskInfo(object): - def __init__(self, devname): - self.name = devname - self.wwn = None - self.path = None - self.model = None - self.size = 0 - self.driver = None - devnode = '/dev/{0}'.format(devname) - qprop = subprocess.check_output( - ['udevadm', 'info', '--query=property', devnode]) - if not isinstance(qprop, str): - qprop = qprop.decode('utf8') - for prop in qprop.split('\n'): - if '=' not in prop: - continue - k, v = prop.split('=', 1) - if k == 'DEVTYPE' and v != 'disk': - raise Exception('Not a disk') - elif k == 'DM_NAME': - raise Exception('Device Mapper') - elif k == 'ID_MODEL': - self.model = v - elif k == 'DEVPATH': - self.path = v - elif k == 'ID_WWN': - self.wwn = v - attrs = subprocess.check_output(['udevadm', 'info', '-a', devnode]) - if not isinstance(attrs, str): - attrs = attrs.decode('utf8') - for attr in attrs.split('\n'): - if '==' not in attr: - continue - k, v = attr.split('==', 1) - k = k.strip() - if k == 'ATTRS{size}': - self.size = v.replace('"', '') - elif (k == 'DRIVERS' and not self.driver - and v not in ('"sd"', '""')): - self.driver = v.replace('"', '') - if not self.driver: - raise Exception("No driver detected") - - @property - def priority(self): - if self.model and self.model.lower() in ('thinksystem_m.2_vd', 'thinksystem m.2'): - return 0 - # TODO: RSTe, which would be a 1 - if self.driver == 'ahci': - return 2 - if self.driver.startswith('megaraid'): - return 3 - if self.driver.startswith('mpt'): - return 4 - return 99 - - def __repr__(self): - return repr({ - 'name': self.name, - 'path': self.path, - 'wwn': self.wwn, - 'driver': self.driver, - 'size': self.size, - 'model': self.model, - }) - - -def main(): - disks = [] - for disk in sorted(os.listdir('/sys/class/block')): - try: - disk = DiskInfo(disk) - disks.append(disk) - except Exception as e: - print("Skipping {0}: {1}".format(disk, str(e))) - nd = [x.name for x in sorted(disks, key=lambda x: x.priority)] - if nd: - open('/tmp/installdisk', 'w').write(nd[0]) - -if __name__ == '__main__': - main() - -