'Migrate from SLO/Workload combination to another.
:param device_id: the volume device id
:param volume: the volume object
:param host: the host dict
:param volume_name: the name of the volume
:param new_type: the type to migrate to
:param extra_specs: extra specifications
:returns: boolean -- True if migration succeeded, False if error.'

def _slo_workload_migration(self, device_id, volume, host, volume_name, new_type, extra_specs):

    is_compression_disabled = self.utils.is_compression_disabled(extra_specs)
    do_change_compression = self.utils.change_compression_type(is_compression_disabled, new_type)
    (is_valid, target_slo, target_workload) = self._is_valid_for_storage_assisted_migration(device_id, host, extra_specs[utils.ARRAY], extra_specs[utils.SRP], volume_name, do_change_compression)
    if (not is_valid):
        LOG.error('Volume    %(name)s    is    not    suitable    for    storage    assisted    migration    using    retype.', {'name': volume_name})
        return False
    if ((volume.host != host['host']) or do_change_compression):
        LOG.debug('Retype    Volume    %(name)s    from    source    host    %(sourceHost)s    to    target    host    %(targetHost)s.    Compression    change    is    %(cc)r.', {'name': volume_name, 'sourceHost': volume.host, 'targetHost': host['host'], 'cc': do_change_compression})
        return self._migrate_volume(extra_specs[utils.ARRAY], device_id, extra_specs[utils.SRP], target_slo, target_workload, volume_name, new_type, extra_specs)
    return False
