def main():
    updated_packages = get_updated_packages(get_updates_messages())
    loginfo('Updated packages according to datagrepper: {0}'.format(updated_packages))

    for row in get_copr_package_info_rows():
        source_json = json.loads(row.source_json)
        source_package_name = source_json['pypi_package_name'].lower()
        source_python_versions = source_json['python_versions']
        latest_build_version = row.pkg_version
        loginfo('candidate package for rebuild: {0}, package_id: {1}, copr_id: {2}'.format(source_package_name, row.package_id, row.copr_id))
        if source_package_name in updated_packages:
            new_updated_version = updated_packages[source_package_name]
            logdebug('source_package_name: {0}, latest_build_version: {1}, new_updated_version {2}'.format(source_package_name, latest_build_version, new_updated_version))
            if not latest_build_version or not re.match(new_updated_version, latest_build_version): # if the last build's package version is "different" from new remote package version, rebuild
                try:
                    copr = CoprsLogic.get_by_id(row.copr_id)[0]
                except Exception as e:
                    logexception(e)
                    continue
                if args.backend.lower() == 'pypi':
                    loginfo('Launching pypi build for package of source name: {0}, package_id: {1}, copr_id: {2}, user_id: {3}'.format(source_package_name, row.package_id, copr.id, copr.user.id))
                    build = BuildsLogic.create_new_from_pypi(copr.user, copr, source_package_name, new_updated_version, source_python_versions, chroot_names=None)
                else:
                    raise Exception('Unsupported backend {0} passed as command-line argument'.format(args.backend))
                db.session.commit()
                loginfo('Launched build id {0}'.format(build.id))
def main():
    updated_packages = get_updated_packages(get_updates_messages())
    loginfo('Updated packages according to datagrepper: {0}'.format(updated_packages))

    for row in get_copr_package_info_rows():
        source_json = json.loads(row.source_json)
        package = package_from_source(args.backend.lower(), source_json)

        latest_build_version = row.pkg_version
        loginfo('candidate package for rebuild: {0}, package_id: {1}, copr_id: {2}'.format(package.name, row.package_id, row.copr_id))
        if package.name in updated_packages:
            new_updated_version = updated_packages[package.name]
            logdebug('name: {0}, latest_build_version: {1}, new_updated_version {2}'.format(package.name, latest_build_version, new_updated_version))

            # if the last build's package version is "different" from new remote package version, rebuild
            if not latest_build_version or not re.match(new_updated_version, latest_build_version):
                try:
                    copr = CoprsLogic.get_by_id(row.copr_id)[0]
                except Exception as e:
                    logexception(e)
                    continue

                loginfo('Launching {} build for package of source name: {}, package_id: {}, copr_id: {}, user_id: {}'
                        .format(args.backend.lower(), package.name, row.package_id, copr.id, copr.user.id))
                build = package.build(copr, new_updated_version)
                db.session.commit()
                loginfo('Launched build id {0}'.format(build.id))
Exemplo n.º 3
0
    def test_project_get_one_with_chroots(self, f_users, f_mock_chroots, f_coprs, f_db):

        p_id_list = [p.id for p in self.basic_coprs_list]
        for p_id in p_id_list:
            href = "/api_2/projects/{}?show_chroots=True".format(p_id)
            r = self.tc.get(href)
            assert r.status_code == 200
            obj = json.loads(r.data.decode("utf-8"))

            assert obj["project"]["id"] == p_id
            assert obj["_links"]["self"]["href"] == href
            project = CoprsLogic.get_by_id(p_id).one()
            assert len(obj["project_chroots"]) == len(project.copr_chroots)
Exemplo n.º 4
0
    def test_project_get_one_with_chroots(self, f_users, f_mock_chroots, f_coprs, f_db):

        p_id_list = [p.id for p in self.basic_coprs_list]
        for p_id in p_id_list:
            href = "/api_2/projects/{}?show_chroots=True".format(p_id)
            r = self.tc.get(href)
            assert r.status_code == 200
            obj = json.loads(r.data.decode("utf-8"))

            assert obj["project"]["id"] == p_id
            assert obj["_links"]["self"]["href"] == href
            project = CoprsLogic.get_by_id(p_id).one()
            assert len(obj["project_chroots"]) == len(project.copr_chroots)