def METHOD_NAME(self, device, results, log):
    log.info(
        "Modeler {} processing data for device {}".format(
            self.name(), device.id))
    rm = self.relMap()
    try:
        diskdrives = results.get('diskdrives').get('Win32_DiskDrive')
    except Exception:
        return rm
    if not diskdrives:
        return rm
    partitions = results.get('diskdrives').get('Win32_DiskDriveToDiskPartition')
    volumes = results.get('diskdrives').get('Win32_LogicalDiskToPartition')
    uniqueids_dict = {}
    signature_uniqueid = results.get('signature_uniqueid')
    if signature_uniqueid:
        signature_uniqueid = ''.join(signature_uniqueid.stdout).split('|')
        for ids in signature_uniqueid:
            try:
                key, value = ids.split('=')
                uniqueids_dict[key] = value
            except (KeyError, ValueError):
                pass
    for drive in diskdrives:
        utilization = 0
        fs_ids = []
        instance_name = '{}'.format(drive.Index)
        try:
            for partition in partitions[drive.DeviceID]:
                try:
                    partsize = int(partition.Size)
                except (TypeError, ValueError):
                    partsize = 0
                utilization += partsize
                for volume in volumes[partition.DeviceID]:
                    fs_ids.append(self.prepId(volume.DeviceID))
                    instance_name += ' {}'.format(volume.DeviceID)
        except Exception:
            log.debug("No partitions for drive {} on {}.".format(instance_name, device.id))
        try:
            size = int(drive.Size)
        except (TypeError, ValueError):
            size = 0
        freespace = size - utilization
        if freespace < 0:
            freespace = 0
        try:
            num_partitions = int(drive.Partitions)
        except TypeError:
            num_partitions = 0
        # drive.SerialNumber could be None.  let's make it ''
        serialNumber = ''
        if hasattr(drive, 'SerialNumber'):
            if drive.SerialNumber is None:
                drive.SerialNumber = ''
            serialNumber = drive.SerialNumber.strip()
        if hasattr(drive, 'Signature'):
            drive.uniqueId = uniqueids_dict.get(drive.Signature)
        product_key = MultiArgs(drive.Model, drive.Manufacturer)
        capabilities = ''
        if hasattr(drive, 'CapabilityDescriptions') and drive.CapabilityDescriptions:
            capabilities = drive.CapabilityDescriptions
        rm.append(self.objectMap({
            'id': self.prepId(drive.PNPDeviceID),
            'title': drive.Caption,
            'size': size,
            'partitions': num_partitions,
            'capabilities': capabilities,
            'serialNumber': serialNumber,
            'freespace': freespace,
            'disk_ids': make_disk_ids(drive),
            'fs_ids': fs_ids,
            'instance_name': instance_name,
            'setProductKey': product_key
        }))
    return rm