'Find the state of this node that is relevant to determining which
datasets are on this node, and return a ``RawState`` containing that
information.'

@log_list_volumes
def _discover_raw_state(self):

    api = self.block_device_api
    compute_instance_id = api.compute_instance_id()
    volumes = api.list_volumes()
    system_mounts = {mount.blockdevice: mount.mountpoint for mount in self.block_device_manager.get_mounts()}
    def is_existing_block_device(dataset_id, path):
        if (isinstance(path, FilePath) and path.isBlockDevice()):
            return True
        INVALID_DEVICE_PATH(dataset_id=dataset_id, invalid_value=path).write(_logger)
        return False
    devices = {}
    for volume in volumes:
        dataset_id = volume.dataset_id
        if (volume.attached_to == compute_instance_id):
            device_path = api.get_device_path(volume.blockdevice_id)
            if is_existing_block_device(dataset_id, device_path):
                devices[dataset_id] = device_path
            else:
                pass
    if ICloudAPI.providedBy(self._underlying_blockdevice_api):
        live_instances = self._underlying_blockdevice_api.list_live_nodes()
    else:
        live_instances = None
    result = RawState(compute_instance_id=compute_instance_id, _live_instances=live_instances, volumes=volumes, devices=devices, system_mounts=system_mounts, devices_with_filesystems=[device for device in devices.values() if self.block_device_manager.has_filesystem(device)])
    DISCOVERED_RAW_STATE(raw_state=result).write()
    return result
