Beispiel #1
0
    def f_builds(self):
        self.p1 = models.Package(copr=self.c1,
                                 name="hello-world",
                                 source_type=0)
        self.p2 = models.Package(copr=self.c2,
                                 name="hello-world",
                                 source_type=0)

        self.b1 = models.Build(copr=self.c1,
                               package=self.p1,
                               user=self.u1,
                               submitted_on=50)
        self.b2 = models.Build(copr=self.c1,
                               package=self.p1,
                               user=self.u2,
                               submitted_on=10)
        self.b3 = models.Build(copr=self.c2,
                               package=self.p2,
                               user=self.u2,
                               submitted_on=10)
        self.b4 = models.Build(copr=self.c2,
                               package=self.p2,
                               user=self.u2,
                               submitted_on=100)

        self.basic_builds = [self.b1, self.b2, self.b3, self.b4]
        self.b1_bc = []
        self.b2_bc = []
        self.b3_bc = []
        self.b4_bc = []

        for build, build_chroots in zip(
            [self.b1, self.b2, self.b3, self.b4],
            [self.b1_bc, self.b2_bc, self.b3_bc, self.b4_bc]):

            status = None
            if build is self.b1:  # this build is going to be deleted
                status = StatusEnum("succeeded")
            for chroot in build.copr.active_chroots:
                buildchroot = models.BuildChroot(
                    build=build,
                    mock_chroot=chroot,
                    status=status,
                    git_hash="12345",
                )

                if build is self.b1 or build is self.b2:
                    buildchroot.started_on = 139086644000
                    buildchroot.ended_on = 149086644000
                    build.ended_on = 149086644000

                build_chroots.append(buildchroot)
                self.db.session.add(buildchroot)

        self.db.session.add_all([self.b1, self.b2, self.b3, self.b4])
Beispiel #2
0
    def f_builds(self):
        self.p1 = models.Package(
            copr=self.c1, copr_dir=self.c1_dir, name="hello-world", source_type=0)
        self.p2 = models.Package(
            copr=self.c2, copr_dir=self.c2_dir, name="whatsupthere-world", source_type=0)
        self.p3 = models.Package(
            copr=self.c2, copr_dir=self.c3_dir, name="goodbye-world", source_type=0)

        self.b1 = models.Build(
            copr=self.c1, copr_dir=self.c1_dir, package=self.p1,
            user=self.u1, submitted_on=50, srpm_url="http://somesrpm",
            source_status=StatusEnum("succeeded"), result_dir='bar')
        self.b2 = models.Build(
            copr=self.c1, copr_dir=self.c1_dir, package=self.p1,
            user=self.u2, submitted_on=10, srpm_url="http://somesrpm",
            source_status=StatusEnum("importing"), result_dir='bar',
            source_json='{}')
        self.b3 = models.Build(
            copr=self.c2, copr_dir=self.c2_dir, package=self.p2, user=self.u2, submitted_on=10, srpm_url="http://somesrpm", source_status=StatusEnum("importing"), result_dir='bar')
        self.b4 = models.Build(
            copr=self.c2, copr_dir=self.c2_dir, package=self.p2, user=self.u2, submitted_on=100, srpm_url="http://somesrpm", source_status=StatusEnum("succeeded"), result_dir='bar')

        self.basic_builds = [self.b1, self.b2, self.b3, self.b4]
        self.b1_bc = []
        self.b2_bc = []
        self.b3_bc = []
        self.b4_bc = []

        for build, build_chroots in zip(
                [self.b1, self.b2, self.b3, self.b4],
                [self.b1_bc, self.b2_bc, self.b3_bc, self.b4_bc]):

            status = None
            if build is self.b1:  # this build is going to be deleted
                status = StatusEnum("succeeded")
            for chroot in build.copr.active_chroots:
                buildchroot = models.BuildChroot(
                    build=build,
                    mock_chroot=chroot,
                    status=status,
                    git_hash="12345",
                    result_dir='bar',
                )

                if build is self.b1 or build is self.b2:
                    buildchroot.started_on = 1390866440
                    buildchroot.ended_on = 1490866440


                build_chroots.append(buildchroot)
                self.db.session.add(buildchroot)

        self.db.session.add_all([self.b1, self.b2, self.b3, self.b4])
Beispiel #3
0
    def add(cls,
            user,
            copr_dir,
            package_name,
            source_type=helpers.BuildSourceEnum("unset"),
            source_json=json.dumps({})):
        users_logic.UsersLogic.raise_if_cant_build_in_copr(
            user, copr_dir.copr,
            "You don't have permissions to build in this copr.")

        if cls.exists(copr_dir.id, package_name).all():
            raise exceptions.DuplicateException(
                "Project dir {} already has a package '{}'".format(
                    copr_dir.full_name, package_name))

        package = models.Package(
            name=package_name,
            copr=copr_dir.copr,
            copr_dir=copr_dir,
            source_type=source_type,
            source_json=source_json,
        )

        db.session.add(package)
        return package
Beispiel #4
0
 def f_hook_package(self, f_users, f_coprs, f_mock_chroots, f_builds):
     self.c1.webhook_secret = str(uuid.uuid4())
     self.db.session.add(self.c1)
     self.pHook = models.Package(
         copr=self.c1,
         copr_dir=self.c1_dir,
         name="hook-package",
         source_type=helpers.BuildSourceEnum('scm'))
Beispiel #5
0
    def get_or_create(cls, copr_dir, package_name, src_pkg):
        package = cls.get_by_dir(copr_dir, package_name).first()

        if package:
            return package

        package = models.Package(name=src_pkg.name,
                                 copr=src_pkg.copr,
                                 source_type=src_pkg.source_type,
                                 source_json=src_pkg.source_json,
                                 copr_dir=copr_dir)

        db.session.add(package)
        return package
Beispiel #6
0
 def f_pr_dir(self):
     self.c4_dir = models.CoprDir(name=u"foocopr:PR", copr=self.c1,
             main=False)
     self.p4 = models.Package(
         copr=self.c1, copr_dir=self.c4_dir, name="hello-world",
         source_type=0)
Beispiel #7
0
    def f_fork_prepare(self, f_coprs, f_mock_chroots, f_builds):

        self.p4 = models.Package(
            copr=self.c2, copr_dir=self.c2_dir, name="hello-world", source_type=0)
        self.b5 = models.Build(
            copr=self.c2, copr_dir=self.c2_dir, package=self.p4,
            user=self.u1, submitted_on=50, srpm_url="http://somesrpm",
            source_status=StatusEnum("succeeded"), result_dir='00000005-hello-world')
        self.b6 = models.Build(
            copr=self.c2, copr_dir=self.c2_dir, package=self.p4,
            user=self.u1, submitted_on=10, srpm_url="http://somesrpm",
            source_status=StatusEnum("failed"), result_dir='00000006-hello-world',
            source_json='{}')
        self.b7 = models.Build(
            copr=self.c2, copr_dir=self.c2_dir, package=self.p2,
            user=self.u1, submitted_on=10, srpm_url="http://somesrpm",
            source_status=StatusEnum("succeeded"), result_dir='00000007-whatsupthere-world')
        self.b8 = models.Build(
            copr=self.c2, copr_dir=self.c2_dir, package=self.p2,
            user=self.u1, submitted_on=100, srpm_url="http://somesrpm",
            source_status=StatusEnum("succeeded"), result_dir='00000008-whatsupthere-world')

        self.basic_builds = [self.b5, self.b6, self.b7, self.b8]
        self.b5_bc = []
        self.b6_bc = []
        self.b7_bc = []
        self.b8_bc = []
        self.db.session.flush()

        for build, build_chroots in zip(
                [self.b5, self.b6, self.b7, self.b8],
                [self.b5_bc, self.b6_bc, self.b7_bc, self.b8_bc]):

            status = StatusEnum("succeeded")
            for chroot in build.copr.active_chroots:
                buildchroot = models.BuildChroot(
                    build=build,
                    mock_chroot=chroot,
                    status=status,
                    git_hash="12345",
                    result_dir="{}-{}".format(build.id, build.package.name),
                )
                build_chroots.append(buildchroot)
                self.db.session.add(buildchroot)
        self.db.session.add_all([self.b5, self.b6, self.b7, self.b8])

        self.p5 = models.Package(
            copr=self.c2, copr_dir=self.c2_dir, name="new-package", source_type=0)
        self.b9 = models.Build(
            copr=self.c2, copr_dir=self.c2_dir, package=self.p5,
            user=self.u1, submitted_on=100, srpm_url="http://somesrpm",
            source_status=StatusEnum("succeeded"), result_dir='00000009-new-package')
        self.b10 = models.Build(
            copr=self.c2, copr_dir=self.c2_dir, package=self.p5,
            user=self.u1, submitted_on=100, srpm_url="http://somesrpm",
            source_status=StatusEnum("failed"), result_dir='00000010-new-package')
        self.b11 = models.Build(
            copr=self.c2, copr_dir=self.c2_dir, package=self.p5,
            user=self.u1, submitted_on=100, srpm_url="http://somesrpm",
            source_status=StatusEnum("failed"), result_dir='00000011-new-package')

        self.b9_bc = []
        self.b10_bc = []
        self.b11_bc = []
        self.db.session.flush()

        bc_status = {self.b9: {self.mc2: StatusEnum("succeeded"),
                               self.mc3: StatusEnum("succeeded")},
                     self.b10: {self.mc2: StatusEnum("forked"),
                                self.mc3: StatusEnum("failed")},
                     self.b11: {self.mc2: StatusEnum("failed"),
                                self.mc3: StatusEnum("succeeded")}}

        for build, build_chroots in zip(
                [self.b9, self.b10, self.b11],
                [self.b9_bc, self.b10_bc, self.b11_bc]):

            for chroot in build.copr.active_chroots:
                buildchroot = models.BuildChroot(
                    build=build,
                    mock_chroot=chroot,
                    status=bc_status[build][chroot],
                    git_hash="12345",
                    result_dir="{}-{}".format(build.id, build.package.name),
                )
                build_chroots.append(buildchroot)
                self.db.session.add(buildchroot)
        self.db.session.add_all([self.b9, self.b10, self.b11])