Example #1
0
def delete(group):
    # # first, get a list of all organizations datasets
    # group = model.Group.get(id)
    #
    # if group is None:
    #     raise NotFound('Organization was not found.')

    datasets = []
    for pkg in group.packages(with_private=True):
        datasets.append(pkg.id)

    # now perform normal delete
    # this should check auth
    # context = {'model': model, 'user': c.user}
    # logic.get_action('organization_delete')(context, {'id': id})

    # EcoSIS package delete happens here
    for package_id in datasets:
        deleteUtil.package(package_id)

    # notify remote hosts of change
    notify_remotes(group.id, True)
Example #2
0
def delete(id):
    # first, get a list of all organizations datasets
    group = model.Group.get(id)

    if group is None:
        raise NotFound('Organization was not found.')

    datasets = []
    for pkg in group.packages(with_private=True):
        datasets.append(pkg.id)

    # now perform normal delete
    # this should check auth
    context = {'model': model, 'user': c.user}
    logic.get_action('organization_delete')(context, {'id': id})

    # EcoSIS package delete happens here
    for package_id in datasets:
        deleteUtil.package(package_id)

    response.status_int = 307
    response.headers["Location"] = "/dashboard/organizations"

    return "Redirecting"
Example #3
0
def cleanTests():
    response.headers["Content-Type"] = "application/json"
    context = {'model': model, 'user': c.user}

    path = os.path.dirname(__file__)

    if not isAdmin():
        raise Exception('Nope.')

    result = logic.get_action('package_search')(context, {'q' : '_testing_:true'})
    packages = []
    msgs = []

    for package in result.get('results'):
        packages.append({
            'id': package.get('id'),
            'name' : package.get('name')
        })

        logic.get_action('package_delete')(context, {'id' : package.get('id')})
        deleteUtil.package(package.get('id'))

        # from ckan's admin.py, run a 'purge' on the dataset
        pkgs = model.Session.query(model.Package).filter_by(id=package.get('id'))
        for pkg in pkgs:
            revisions = [x[0] for x in pkg.all_related_revisions]
            revs_to_purge = []
            revs_to_purge += [r.id for r in revisions]
            model.Session.remove()

            for id in revs_to_purge:
                revision = model.Session.query(model.Revision).get(id)
                try:
                    model.repo.purge_revision(revision, leave_record=False)
                except Exception, inst:
                    msgs.append('Problem purging revision %s: %s' % (id, inst))