'Helper function to delete a group snapshot.
:param group_snapshot: the group snapshot object
:param snapshots: the snapshot objects
:returns: model_update, snapshots_model_update
:raises: VolumeBackendApiException, NotImplementedError'

def _delete_group_snapshot(self, group_snapshot, snapshots):

    snapshots_model_update = []
    model_update = {}
    source_group = group_snapshot.get('group')
    grp_id = group_snapshot.group_id
    if (not volume_utils.is_group_a_cg_snapshot_type(source_group)):
        raise NotImplementedError()
    LOG.info('Delete    snapshot    grpSnapshotId:    %(grpSnapshotId)s    for    source    group    %(grpId)s', {'grpSnapshotId': group_snapshot.id, 'grpId': grp_id})
    snap_name = self.utils.truncate_string(group_snapshot.id, 19)
    vol_grp_name = None
    try:
        (array, __) = self.utils.get_volume_group_utils(source_group, self.interval, self.retries)
        volume_group = self._find_volume_group(array, source_group)
        if volume_group:
            if ('name' in volume_group):
                vol_grp_name = volume_group['name']
        if (vol_grp_name is None):
            exception_message = (_('Cannot    find    generic    volume    group    %(grp_id)s.') % {'group_id': source_group.id})
            raise exception.VolumeBackendAPIException(data=exception_message)
        if ('snapVXSnapshots' in volume_group):
            if (snap_name in volume_group['snapVXSnapshots']):
                self.provision.delete_group_replica(array, snap_name, vol_grp_name)
        else:
            LOG.error('Cannot    find    group    snapshot    %(snapId)s.', {'snapId': group_snapshot.id})
        model_update = {'status': fields.GroupSnapshotStatus.DELETED}
        for snapshot in snapshots:
            snapshots_model_update.append({'id': snapshot.id, 'status': fields.SnapshotStatus.DELETED})
    except Exception as e:
        LOG.error('Error    deleting    volume    group    snapshot.Error    received:    %(e)s', {'e': e})
        model_update = {'status': fields.GroupSnapshotStatus.ERROR_DELETING}
    return (model_update, snapshots_model_update)
