'Deletes a snapshot.
:param context: the context of the caller.
:param group_snapshot: the GroupSnapshot object to be deleted.
:param snapshots: a list of snapshot objects in the group_snapshot.
:returns: model_update, snapshots_model_update'

def delete_group_snapshot(self, context, group_snapshot, snapshots):

    if (not volume_utils.is_group_a_cg_snapshot_type(group_snapshot)):
        raise NotImplementedError()
    error_statuses = [fields.SnapshotStatus.ERROR, fields.SnapshotStatus.ERROR_DELETING]
    model_update = {'status': group_snapshot['status']}
    snapshot_model_update = []
    for snapshot in snapshots:
        try:
            self._delete_volume(snapshot.provider_id)
            update_item = {'id': snapshot['id'], 'status': fields.SnapshotStatus.DELETED}
            snapshot_model_update.append(update_item)
        except exception.VolumeBackendAPIException as err:
            update_item = {'id': snapshot['id'], 'status': fields.SnapshotStatus.ERROR_DELETING}
            snapshot_model_update.append(update_item)
            if (model_update['status'] not in error_statuses):
                model_update['status'] = fields.SnapshotStatus.ERROR_DELETING
            LOG.error('Failed    to    delete    the    snapshot    %(snap)s    of    snapshot:    %(snapshot_id)s.    Exception:    %(exception)s.', {'snap': snapshot['name'], 'exception': err, 'snapshot_id': group_snapshot.id})
    model_update['status'] = fields.GroupSnapshotStatus.DELETED
    return (model_update, snapshot_model_update)
