def package_take(package, collection): ''' Make someone Point of contact of an orphaned package. ''' try: pkgdblib.unorphan_package(session=SESSION, pkg_name=package, clt_name=collection, pkg_user=flask.g.fas_user.username, user=flask.g.fas_user) SESSION.commit() except pkgdblib.PkgdbException, err: SESSION.rollback() flask.flash(err.message, 'error')
def package_take(package, collection): ''' Make someone Point of contact of an orphaned package. ''' try: pkgdblib.unorphan_package( session=SESSION, pkg_name=package, clt_name=collection, pkg_user=flask.g.fas_user.username, user=flask.g.fas_user ) SESSION.commit() except pkgdblib.PkgdbException, err: SESSION.rollback() flask.flash(err.message, 'error')
def api_package_unorphan(): ''' Unorphan a list of packages. :arg packagenames: List of string of the packages name. :arg branches: List of string of the branches name in which these packages will be unorphaned. :arg username: String of the name of the user taking ownership of this package. If you are not an admin, this name must be None. ''' httpcode = 200 output = {} form = forms.PackageOwnerForm(csrf_enabled=False, ) if form.validate_on_submit(): pkg_names = form.pkg_name.data.split(',') pkg_branchs = form.pkg_branch.data.split(',') pkg_owner = form.pkg_owner.data try: for pkg_name, pkg_branch in itertools.product( pkg_names, pkg_branchs): message = pkgdblib.unorphan_package(session=SESSION, pkg_name=pkg_name, clt_name=pkg_branch, pkg_user=pkg_owner, user=flask.g.fas_user) SESSION.commit() output['output'] = 'ok' output['messages'] = [message] except pkgdblib.PkgdbException, err: SESSION.rollback() output['output'] = 'notok' output['error'] = err httpcode = 500
def api_package_unorphan(): """ Unorphan a list of packages. :arg packagenames: List of string of the packages name. :arg branches: List of string of the branches name in which these packages will be unorphaned. :arg username: String of the name of the user taking ownership of this package. If you are not an admin, this name must be None. """ httpcode = 200 output = {} form = forms.PackageOwnerForm(csrf_enabled=False) if form.validate_on_submit(): pkg_names = form.pkg_name.data.split(",") pkg_branchs = form.pkg_branch.data.split(",") pkg_owner = form.pkg_owner.data try: for pkg_name, pkg_branch in itertools.product(pkg_names, pkg_branchs): message = pkgdblib.unorphan_package( session=SESSION, pkg_name=pkg_name, clt_name=pkg_branch, pkg_user=pkg_owner, user=flask.g.fas_user ) SESSION.commit() output["output"] = "ok" output["messages"] = [message] except pkgdblib.PkgdbException, err: SESSION.rollback() output["output"] = "notok" output["error"] = err httpcode = 500
def test_unorphan_package(self): """ Test the unorphan_package function. """ create_package_acl(self.session) # Wrong package name self.assertRaises(pkgdblib.PkgdbException, pkgdblib.unorphan_package, self.session, pkg_name='asd', clt_name='devel', pkg_user='******', user=FakeFasUser()) # Wrong collection self.assertRaises(pkgdblib.PkgdbException, pkgdblib.unorphan_package, self.session, pkg_name='guake', clt_name='asd', pkg_user='******', user=FakeFasUser()) # Package is not orphaned self.assertRaises(pkgdblib.PkgdbException, pkgdblib.unorphan_package, self.session, pkg_name='guake', clt_name='devel', pkg_user='******', user=FakeFasUser()) # Orphan package pkgdblib.update_pkg_poc( self.session, pkg_name='guake', clt_name='devel', user=FakeFasUserAdmin(), pkg_poc='orphan', ) # User cannot unorphan for someone else self.assertRaises(pkgdblib.PkgdbException, pkgdblib.unorphan_package, self.session, pkg_name='guake', clt_name='devel', pkg_user='******', user=FakeFasUser()) # User must be a packager user = FakeFasUser() user.groups = ['cla_done'] self.assertRaises(pkgdblib.PkgdbException, pkgdblib.unorphan_package, self.session, pkg_name='guake', clt_name='devel', pkg_user='******', user=user) pkg_acl = pkgdblib.get_acl_package(self.session, 'guake') self.assertEqual(pkg_acl[1].collection.branchname, 'devel') self.assertEqual(pkg_acl[1].package.name, 'guake') self.assertEqual(pkg_acl[1].point_of_contact, 'orphan') self.assertEqual(pkg_acl[1].status, 'Orphaned') pkgdblib.unorphan_package(self.session, pkg_name='guake', clt_name='devel', pkg_user='******', user=FakeFasUser()) pkg_acl = pkgdblib.get_acl_package(self.session, 'guake') self.assertEqual(pkg_acl[1].collection.branchname, 'devel') self.assertEqual(pkg_acl[1].package.name, 'guake') self.assertEqual(pkg_acl[1].point_of_contact, 'pingou') self.assertEqual(pkg_acl[1].status, 'Approved')
def test_unorphan_package(self): """ Test the unorphan_package function. """ create_package_acl(self.session) # Wrong package name self.assertRaises(pkgdblib.PkgdbException, pkgdblib.unorphan_package, self.session, pkg_name='asd', clt_name='devel', pkg_user='******', user=FakeFasUser() ) # Wrong collection self.assertRaises(pkgdblib.PkgdbException, pkgdblib.unorphan_package, self.session, pkg_name='guake', clt_name='asd', pkg_user='******', user=FakeFasUser() ) # Package is not orphaned self.assertRaises(pkgdblib.PkgdbException, pkgdblib.unorphan_package, self.session, pkg_name='guake', clt_name='devel', pkg_user='******', user=FakeFasUser() ) # Orphan package pkgdblib.update_pkg_poc(self.session, pkg_name='guake', clt_name='devel', user=FakeFasUserAdmin(), pkg_poc='orphan', ) # User cannot unorphan for someone else self.assertRaises(pkgdblib.PkgdbException, pkgdblib.unorphan_package, self.session, pkg_name='guake', clt_name='devel', pkg_user='******', user=FakeFasUser() ) # User must be a packager user = FakeFasUser() user.groups = ['cla_done'] self.assertRaises(pkgdblib.PkgdbException, pkgdblib.unorphan_package, self.session, pkg_name='guake', clt_name='devel', pkg_user='******', user=user ) pkg_acl = pkgdblib.get_acl_package(self.session, 'guake') self.assertEqual(pkg_acl[1].collection.branchname, 'devel') self.assertEqual(pkg_acl[1].package.name, 'guake') self.assertEqual(pkg_acl[1].point_of_contact, 'orphan') self.assertEqual(pkg_acl[1].status, 'Orphaned') pkgdblib.unorphan_package( self.session, pkg_name='guake', clt_name='devel', pkg_user='******', user=FakeFasUser() ) pkg_acl = pkgdblib.get_acl_package(self.session, 'guake') self.assertEqual(pkg_acl[1].collection.branchname, 'devel') self.assertEqual(pkg_acl[1].package.name, 'guake') self.assertEqual(pkg_acl[1].point_of_contact, 'pingou') self.assertEqual(pkg_acl[1].status, 'Approved')