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)
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"
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))