'Migrate volume to another host using retype.
:param volume: the volume object including the volume_type_id
:param new_type: the new volume type.
:param host: The host dict holding the relevant target(destination)
information
:returns: boolean -- True if retype succeeded, False if error'

def retype(self, volume, new_type, host):

    volume_name = volume.name
    LOG.info('Migrating    Volume    %(volume)s    via    retype.', {'volume': volume_name})
    extra_specs = self._initial_setup(volume)
    device_id = self._find_device_on_array(volume, extra_specs)
    if (device_id is None):
        LOG.error('Volume    %(name)s    not    found    on    the    array.    No    volume    to    migrate    using    retype.', {'name': volume_name})
        return False
    if (volume.attach_status == 'attached'):
        LOG.error('Volume    %(name)s    is    not    suitable    for    storage    assisted    migration    using    retype    as    it    is    attached.', {'name': volume_name})
        return False
    if self.utils.is_replication_enabled(extra_specs):
        LOG.error('Volume    %(name)s    is    replicated    -    Replicated    volumes    are    not    eligible    for    storage    assisted    retype.    Host    assisted    retype    is    supported.', {'name': volume_name})
        return False
    return self._slo_workload_migration(device_id, volume, host, volume_name, new_type, extra_specs)
