def get_disk_info()

in validations/image_validator/system.py [0:0]


def get_disk_info():
    """
    fdisk parsing for disk output
    List of columns:
        1. name = Disk name (sda, sdb)
        2. labelType = whether it is dos or gpt
        3. partitions = list of partitions and its usage in a dict
    """
    disk_json = list()
    disk_dict = dict()
    result = get_command_output('/usr/sbin/fdisk -l 2>/dev/null')
    for line in result.stdout.read().strip().splitlines():
        try:
            line = ' '.join(line.strip().split(' '))
            if line.startswith('Disk /'):
                disk_dict['name'] = line[5:].split(':')[0].split('/')[-1].strip()
            if line.startswith('Disk label type'):
                disk_dict['labelType'] = line.split(':')[1].strip()
            disk_dict['partitions'] = get_partition_information(disk_dict['name'])            
            
            if 'labelType' in disk_dict.keys() and 'name' in disk_dict.keys():
                disk_json.append(disk_dict)
                disk_dict = dict()
        except Exception as e:
            continue
    sysinfo["disk"] = disk_json