def delete_package(namespace, package): ''' Delete the specified package. ''' form = pkgdb2.forms.ConfirmationForm() if not form.validate_on_submit(): flask.flash('Invalid input', 'error') return flask.redirect(flask.url_for( '.package_info', namespace=namespace, package=package)) packagename = package package = None try: package = pkgdblib.search_package( SESSION, namespace, packagename, limit=1)[0] except (NoResultFound, IndexError): SESSION.rollback() flask.flash('No package of this name found.', 'errors') return flask.render_template('msg.html') for pkglist in package.listings: for acl in pkglist.acls: pkgdb2.lib.utils.log(SESSION, None, 'acl.delete', dict( agent=flask.g.fas_user.username, acl=acl.to_json(), )) SESSION.delete(acl) pkgdb2.lib.utils.log(SESSION, None, 'package.branch.delete', dict( agent=flask.g.fas_user.username, package_listing=pkglist.to_json(), )) SESSION.delete(pkglist) pkgdb2.lib.utils.log(SESSION, None, 'package.delete', dict( agent=flask.g.fas_user.username, package=package.to_json(), )) SESSION.delete(package) try: SESSION.commit() flask.flash('Package %s deleted' % packagename) except SQLAlchemyError as err: # pragma: no cover SESSION.rollback() flask.flash( 'An error occured while trying to delete the package %s' % packagename, 'error') APP.logger.debug('Could not delete package: %s', packagename) APP.logger.exception(err) return flask.redirect(flask.url_for( '.package_info', namespace=package.namespace, package=package.name) ) return flask.redirect( flask.url_for('.list_packages'))
def delete_package(package): ''' Delete the specified package. ''' form = pkgdb2.forms.ConfirmationForm() if not form.validate_on_submit(): flask.flash('Invalid input', 'error') return flask.redirect(flask.url_for('.package_info', package=package)) packagename = package package = None try: package = pkgdblib.search_package(SESSION, packagename, limit=1)[0] except (NoResultFound, IndexError): SESSION.rollback() flask.flash('No package of this name found.', 'errors') return flask.render_template('msg.html') for pkglist in package.listings: for acl in pkglist.acls: pkgdb2.lib.utils.log( SESSION, None, 'acl.delete', dict( agent=flask.g.fas_user.username, acl=acl.to_json(), )) SESSION.delete(acl) pkgdb2.lib.utils.log( SESSION, None, 'package.branch.delete', dict( agent=flask.g.fas_user.username, package_listing=pkglist.to_json(), )) SESSION.delete(pkglist) pkgdb2.lib.utils.log( SESSION, None, 'package.delete', dict( agent=flask.g.fas_user.username, package=package.to_json(), )) SESSION.delete(package) try: SESSION.commit() flask.flash('Package %s deleted' % packagename) except SQLAlchemyError, err: # pragma: no cover SESSION.rollback() flask.flash( 'An error occured while trying to delete the package %s' % packagename, 'error') APP.logger.debug('Could not delete package: %s', packagename) APP.logger.exception(err) return flask.redirect( flask.url_for('.package_info', package=package.name))