コード例 #1
0
ファイル: pkgdb1_to_pkgdb2.py プロジェクト: cydrobolt/pkgdb2
def convert_packagelistingacl(pkg1_sess, pkg2_sess):
    ''' Convert the PackageListingAcl from pkgdb1 to pkgdb2.
    '''
    cnt = 0
    total = pkg1_sess.query(P1PersonPackagelistingAcl).count()
    done = set()
    widgets = [
        'ACLs: ',
        Percentage(), ' ',
        Bar(marker=RotatingMarker()), ' ',
        ETA()
    ]
    pbar = ProgressBar(widgets=widgets, maxval=total).start()
    for pkg in pkg1_sess.query(P1PersonPackagelistingAcl).all():
        if pkg.acl in ('build', 'checkout'):
            continue
        person = pkg1_sess.query(P1PersonPackagelisting).filter(
            P1PersonPackagelisting.id == pkg.personpackagelistingid).one()
        new_pkglistacl = model.PackageListingAcl(
            fas_name=person.username,
            packagelisting_id=person.packagelistingid,
            acl=pkg.acl,
            status=STATUS[pkg.statuscode])
        try:
            pkg2_sess.add(new_pkglistacl)
            pkg2_sess.commit()
        except sqlalchemy.exc.IntegrityError, err:
            # print err
            pkg2_sess.rollback()
        cnt += 1
        pbar.update(cnt)
コード例 #2
0
ファイル: pkgdb1_to_pkgdb2.py プロジェクト: cydrobolt/pkgdb2
def convert_packagelisting(pkg1_sess, pkg2_sess):
    ''' Convert the PackageListing from pkgdb1 to pkgdb2.
    '''
    cnt = 0
    failed_pkg = set()
    failed_pkglist = set()
    for pkg in pkg1_sess.query(P1Packagelisting).all():
        poc = pkg.owner
        if poc == 'perl-sig':
            poc = 'group::perl-sig'
        new_pkglist = model.PackageListing(point_of_contact=poc,
                                           status=STATUS[pkg.statuscode],
                                           package_id=pkg.packageid,
                                           collection_id=pkg.collectionid,
                                           critpath=pkg.critpath)
        new_pkglist.id = pkg.id
        pkg2_sess.add(new_pkglist)
        if new_pkglist.point_of_contact != 'orphan':
            acls = ['watchcommits', 'watchbugzilla', 'commit', 'approveacls']
            if new_pkglist.point_of_contact == 'group::perl-sig':
                acls = ['watchcommits', 'watchbugzilla', 'commit']
            for acl in acls:
                new_pkglistacl = model.PackageListingAcl(
                    fas_name=new_pkglist.point_of_contact,
                    packagelisting_id=new_pkglist.id,
                    acl=acl,
                    status='Approved')
                pkg2_sess.add(new_pkglistacl)
        try:
            pkg2_sess.commit()
        except Exception, err:
            pkg2_sess.rollback()
            failed_pkg.add(str(pkg.packageid))
            failed_pkglist.add(str(new_pkglist.id))
        cnt += 1
コード例 #3
0
ファイル: test_groups.py プロジェクト: voxik/pkgdb2
    def set_group_acls(self):
        ''' Create some Group ACLs. '''
        fedocal_pkg = model.Package.by_name(self.session, 'rpms', 'fedocal')
        devel_collec = model.Collection.by_name(self.session, 'master')
        f18_collec = model.Collection.by_name(self.session, 'f18')

        pklist_fedocal_f18 = model.PackageListing.by_pkgid_collectionid(
            self.session, fedocal_pkg.id, f18_collec.id)
        pklist_fedocal_devel = model.PackageListing.by_pkgid_collectionid(
            self.session, fedocal_pkg.id, devel_collec.id)

        packager = model.PackageListingAcl(
            fas_name='group::infra-sig',
            packagelisting_id=pklist_fedocal_f18.id,
            acl='commit',
            status='Approved',
        )
        self.session.add(packager)

        packager = model.PackageListingAcl(
            fas_name='group::infra-sig',
            packagelisting_id=pklist_fedocal_devel.id,
            acl='commit',
            status='Approved',
        )
        self.session.add(packager)

        packager = model.PackageListingAcl(
            fas_name='group::infra-sig',
            packagelisting_id=pklist_fedocal_f18.id,
            acl='watchbugzilla',
            status='Approved',
        )
        self.session.add(packager)

        packager = model.PackageListingAcl(
            fas_name='group::infra-sig',
            packagelisting_id=pklist_fedocal_devel.id,
            acl='watchbugzilla',
            status='Approved',
        )
        self.session.add(packager)

        self.session.commit()
コード例 #4
0
ファイル: test_flask_ui_acls.py プロジェクト: apevec/pkgdb2
    def test_unwatch_package(self, bz_mail_func, login_func, mock_func):
        """ Test the unwatch_package function. """
        login_func.return_value = None
        bz_mail_func.return_value = 1

        create_package_acl(self.session)

        user = FakeFasUser()
        mock_func.return_value = ['pingou', 'ralph', 'kevin']

        with user_set(pkgdb2.APP, user):
            output = self.app.get('/acl/rpms/guake/unwatch/',
                                  follow_redirects=True)
            self.assertEqual(output.status_code, 405)

        with user_set(pkgdb2.APP, user):
            output = self.app.get('/package/rpms/guake/')
            csrf_token = output.data.split(
                'name="csrf_token" type="hidden" value="')[1].split('">')[0]
            data = {'csrf_token': csrf_token}

            output = self.app.post('/acl/rpms/guake/unwatch/',
                                   data=data,
                                   follow_redirects=True)
            self.assertEqual(output.status_code, 200)
            self.assertTrue(
                '<li class="error">You cannot remove `Watch*` ACLs from '
                'the Point of Contact.</li>' in output.data)

            output = self.app.post('/acl/rpms/random/unwatch/',
                                   data=data,
                                   follow_redirects=True)
            self.assertEqual(output.status_code, 200)
            self.assertTrue(
                '<li class="error">No package found by this name</li>' in
                output.data)

        # Give watchbugzilla to ralph on guake/master
        guake_pkg = model.Package.by_name(self.session, 'rpms', 'guake')
        devel_collec = model.Collection.by_name(self.session, 'master')
        pklist_guake_devel = model.PackageListing.by_pkgid_collectionid(
            self.session, guake_pkg.id, devel_collec.id)
        packager = model.PackageListingAcl(
            fas_name='ralph',
            packagelisting_id=pklist_guake_devel.id,
            acl='watchbugzilla',
            status='Approved',
        )
        self.session.add(packager)
        self.session.commit()

        # Drop watch* for ralph
        user.username = '******'
        with user_set(pkgdb2.APP, user):
            output = self.app.get('/package/rpms/guake/')
            csrf_token = output.data.split(
                'name="csrf_token" type="hidden" value="')[1].split('">')[0]
            data = {'csrf_token': csrf_token}

            output = self.app.post('/acl/rpms/guake/unwatch/',
                                   data=data,
                                   follow_redirects=True)
            self.assertEqual(output.status_code, 200)
            self.assertTrue(
                '<li class="message">ACLs updated</li>' in output.data)

            output = self.app.post('/acl/rpms/random/unwatch/',
                                   data=data,
                                   follow_redirects=True)
            self.assertEqual(output.status_code, 200)
            self.assertTrue(
                '<li class="error">No package found by this name</li>' in
                output.data)
コード例 #5
0
ファイル: __init__.py プロジェクト: devyanikota/pkgdb2
def create_package_acl2(session):
    """ Add packagers to packages. """
    create_package_listing(session)

    guake_pkg = model.Package.by_name(session, 'guake')
    fedocal_pkg = model.Package.by_name(session, 'fedocal')
    geany_pkg = model.Package.by_name(session, 'geany')

    f17_collec = model.Collection.by_name(session, 'f17')
    f18_collec = model.Collection.by_name(session, 'f18')
    devel_collec = model.Collection.by_name(session, 'master')

    pklist_guake_f18 = model.PackageListing.by_pkgid_collectionid(
        session, guake_pkg.id, f18_collec.id)
    pklist_guake_devel = model.PackageListing.by_pkgid_collectionid(
        session, guake_pkg.id, devel_collec.id)

    pkglist_geany_devel = model.PackageListing.by_pkgid_collectionid(
        session, geany_pkg.id, devel_collec.id)

    pkglist_fedocal_devel = model.PackageListing.by_pkgid_collectionid(
        session, fedocal_pkg.id, devel_collec.id)
    pkglist_fedocal_f18 = model.PackageListing.by_pkgid_collectionid(
        session, fedocal_pkg.id, f18_collec.id)
    pkglist_fedocal_f17 = model.PackageListing.by_pkgid_collectionid(
        session, fedocal_pkg.id, f17_collec.id)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pklist_guake_f18.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pklist_guake_f18.id,
        acl='watchcommits',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pklist_guake_devel.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pklist_guake_devel.id,
        acl='watchcommits',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pklist_guake_devel.id,
        acl='watchbugzilla',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='toshio',
        packagelisting_id=pklist_guake_devel.id,
        acl='commit',
        status='Awaiting Review',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='spot',
        packagelisting_id=pklist_guake_devel.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='spot',
        packagelisting_id=pklist_guake_devel.id,
        acl='watchbugzilla',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='group::gtk-sig',
        packagelisting_id=pkglist_geany_devel.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='group::gtk-sig',
        packagelisting_id=pkglist_geany_devel.id,
        acl='watchbugzilla',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pkglist_geany_devel.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pkglist_fedocal_devel.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='toshio',
        packagelisting_id=pkglist_fedocal_devel.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pkglist_fedocal_f18.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pkglist_fedocal_f18.id,
        acl='watchbugzilla',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pkglist_fedocal_f17.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pkglist_fedocal_f17.id,
        acl='watchbugzilla',
        status='Approved',
    )
    session.add(packager)

    session.commit()
コード例 #6
0
ファイル: __init__.py プロジェクト: devyanikota/pkgdb2
def create_package_acl(session):
    """ Add packagers to packages. """
    create_package_listing(session)

    guake_pkg = model.Package.by_name(session, 'guake')
    geany_pkg = model.Package.by_name(session, 'geany')
    offlineimap_pkg = model.Package.by_name(session, 'offlineimap')

    el4_collec = model.Collection.by_name(session, 'el4')
    f18_collec = model.Collection.by_name(session, 'f18')
    devel_collec = model.Collection.by_name(session, 'master')

    pklist_guake_f18 = model.PackageListing.by_pkgid_collectionid(
        session, guake_pkg.id, f18_collec.id)
    pklist_guake_devel = model.PackageListing.by_pkgid_collectionid(
        session, guake_pkg.id, devel_collec.id)
    pkglist_geany_devel = model.PackageListing.by_pkgid_collectionid(
        session, geany_pkg.id, devel_collec.id)
    pkglist_offlineimap_el4 = model.PackageListing.by_pkgid_collectionid(
        session, offlineimap_pkg.id, el4_collec.id)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pklist_guake_f18.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pklist_guake_f18.id,
        acl='watchcommits',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pklist_guake_devel.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pklist_guake_devel.id,
        acl='approveacls',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=pklist_guake_devel.id,
        acl='watchcommits',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='toshio',
        packagelisting_id=pklist_guake_devel.id,
        acl='commit',
        status='Awaiting Review',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='ralph',
        packagelisting_id=pklist_guake_devel.id,
        acl='approveacls',
        status='Awaiting Review',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='group::gtk-sig',
        packagelisting_id=pkglist_geany_devel.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='josef',
        packagelisting_id=pkglist_geany_devel.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='josef',
        packagelisting_id=pkglist_geany_devel.id,
        acl='approveacls',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='josef',
        packagelisting_id=pkglist_geany_devel.id,
        acl='watchcommits',
        status='Approved',
    )
    session.add(packager)

    # offlineimap
    packager = model.PackageListingAcl(
        fas_name='dodji',
        packagelisting_id=pkglist_offlineimap_el4.id,
        status='Approved',
        acl='commit',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='dodji',
        packagelisting_id=pkglist_offlineimap_el4.id,
        acl='approveacls',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='dodji',
        packagelisting_id=pkglist_offlineimap_el4.id,
        acl='watchcommits',
        status='Approved',
    )
    session.add(packager)

    session.commit()
コード例 #7
0
def create_docker_packages(session):
    """ Add packagers to packages. """

    # Add packages
    cockpit_pkg = model.Package(
        name='cockpit',
        namespace='docker',
        summary='Server Management GUI',
        description='Server Management...',
        status='Approved',
        review_url='https://bugzilla.redhat.com/450189',
        upstream_url='http://cockpit.io',
        monitor=False,
    )
    session.add(cockpit_pkg)

    fedocal_pkg = model.Package(
        name='fedocal',
        namespace='docker',
        summary='A web-based calendar for Fedora',
        description='Web calendar ...',
        status='Approved',
        review_url='https://bugzilla.redhat.com/915074',
        upstream_url='http://fedorahosted.org/fedocal',
        monitor=False,
    )
    session.add(fedocal_pkg)

    session.commit()

    devel_collec = model.Collection.by_name(session, 'master')

    # Add PackageListing
    # Pkg: cockpit - Collection: devel - Approved
    pkgltg = model.PackageListing(
        point_of_contact='puiterwijk',
        status='Approved',
        package_id=cockpit_pkg.id,
        collection_id=devel_collec.id,
    )
    session.add(pkgltg)
    # Pkg: guake - Collection: devel - Approved
    pkgltg = model.PackageListing(
        point_of_contact='pingou',
        status='Approved',
        package_id=fedocal_pkg.id,
        collection_id=devel_collec.id,
    )
    session.add(pkgltg)

    session.commit()

    # Add PackageListingAcl
    cockpit_devel = model.PackageListing.by_pkgid_collectionid(
        session, cockpit_pkg.id, devel_collec.id)
    fedocal_devel = model.PackageListing.by_pkgid_collectionid(
        session, fedocal_pkg.id, devel_collec.id)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=cockpit_devel.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=cockpit_devel.id,
        acl='watchbugzilla',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=fedocal_devel.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=fedocal_devel.id,
        acl='watchcommits',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='pingou',
        packagelisting_id=fedocal_devel.id,
        acl='watchbugzilla',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='toshio',
        packagelisting_id=fedocal_devel.id,
        acl='commit',
        status='Awaiting Review',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='spot',
        packagelisting_id=fedocal_devel.id,
        acl='watchbugzilla',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='group::gtk-sig',
        packagelisting_id=cockpit_devel.id,
        acl='commit',
        status='Approved',
    )
    session.add(packager)

    packager = model.PackageListingAcl(
        fas_name='group::gtk-sig',
        packagelisting_id=cockpit_devel.id,
        acl='watchbugzilla',
        status='Approved',
    )
    session.add(packager)

    session.commit()