'Create a volume from the specified snapshot.'

@locked_source_id_operation
def create_volume_from_snapshot(self, volume, source):

    if source.get('group_snapshot_id'):
        group_snapshot_id = source.get('group_snapshot_id')
        snapshot_id = source.get('volume_id')
        sf_name = (self.configuration.sf_volume_prefix + group_snapshot_id)
        sf_group_snap = self._get_group_snapshot_by_name(sf_name)
        return self._create_clone_from_sf_snapshot(snapshot_id, group_snapshot_id, sf_group_snap, volume)
    (_data, _sfaccount, model) = self._do_clone_volume(source['id'], volume)
    return model
