'Creates a group from source.'

@infinisdk_to_cinder_exceptions
def create_group_from_src(self, context, group, volumes, group_snapshot=None, snapshots=None, source_group=None, source_vols=None):

    if (not vol_utils.is_group_a_cg_snapshot_type(group)):
        raise NotImplementedError()
    self.create_group(context, group)
    new_infinidat_group = self._get_infinidat_cg(group)
    if ((group_snapshot is not None) and (snapshots is not None)):
        for (volume, snapshot) in zip(volumes, snapshots):
            self.create_volume_from_snapshot(volume, snapshot)
            new_infinidat_volume = self._get_infinidat_volume(volume)
            new_infinidat_group.add_member(new_infinidat_volume)
    elif ((source_group is not None) and (source_vols is not None)):
        for (volume, src_vol) in zip(volumes, source_vols):
            self.create_cloned_volume(volume, src_vol)
            new_infinidat_volume = self._get_infinidat_volume(volume)
            new_infinidat_group.add_member(new_infinidat_volume)
    return (None, None)
