Beispiel #1
0
    def test_01_prepare_0__localhost_noarch_multi_archs_repo_w_build(self):
        server = MR.Server("localhost", topdir="/tmp/yum",
                           baseurl="file:///tmp")
        repo = MR.Repo("fedora", 19, ["x86_64", "i386"], server)

        srpm = MS.Srpm("/a/b/c/dummy.src.rpm")
        srpm.name = "foo"
        srpm.version = "1.0"
        srpm.noarch = True

        bcmds = MCB.prepare_0(repo, srpm)
        ucs = MCU.prepare_0(repo)

        dcmd = repo.server.deploy_cmd
        c0 = dcmd("/var/lib/mock/fedora-19-x86_64/result/*.src.rpm",
                  "/tmp/yum/fedora/19/sources")
        c1 = dcmd("/var/lib/mock/fedora-19-x86_64/result/*.noarch.rpm",
                  "/tmp/yum/fedora/19/x86_64")

        ctx = dict(other_archs_s="i386", primary_arch="x86_64",
                   noarch_rpms="*.noarch.rpm")
        c2 = "cd /tmp/yum/fedora/19 && " + TT._MK_SYMLINKS_TO_NOARCH_RPM % ctx

        cs_expected = [_join(bcmds[0], c0, c1, c2, *ucs)]
        self.assertListEqual(TT.prepare_0(repo, srpm, True), cs_expected)
Beispiel #2
0
def prepare_0(repo, ctx, deploy=False, eof=None):
    """
    Make up list of command strings to generate repo's metadata rpms.

    :param repo: myrepo.repo.Repo instance
    :param ctx: Context object to instantiate the template
    :param deploy: Deploy generated yum repo metadata RPMs also if True
    :param eof: The function to generate EOF marker strings for here docuemnts
        or None, that is, it will be generated automatically.

    :return: List of command strings to deploy built RPMs.
    """
    assert_repo(repo)
    _check_vars_for_template(ctx, ["workdir", "tpaths"])

    files = list(gen_repo_files_g(repo, ctx, ctx["workdir"], ctx["tpaths"]))
    rpmspec = files[-1][0]  # FIXME: Ugly hack! (see ``gen_repo_files_g``)

    mockcfg_gen_cmds = list(gen_mockcfg_files_cmd_g(repo, ctx, ctx["workdir"], ctx["tpaths"], eof))

    cs = ["mkdir -p " + ctx["workdir"]]

    keyid = ctx.get("keyid", False)
    if keyid:
        cs.append(mk_export_gpgkey_cmd(keyid, ctx["workdir"], repo))

    cs += (
        [mk_write_file_cmd(p, c, eof) for p, c in files]
        + mockcfg_gen_cmds
        + [mk_build_srpm_cmd(rpmspec, ctx.get("verbose", False))]
    )

    # NOTE: cmd to build srpm must wait for the completion of previous commands
    # to generate files; .repo file, the rpm spec and mock.cfg files:
    c = MS.join(*cs)

    if not deploy:
        return [c]

    srpm = _mk_repo_metadata_srpm_obj(repo, ctx["workdir"])
    dcs = MCD.prepare_0(repo, srpm, build=True)

    assert len(dcs) == 1, "Deploy commands not matched w/ expected: \n" + str(dcs)

    return [MS.join(c, *dcs)]
Beispiel #3
0
    def test_02_prepare_0__localhost_noarch_single_arch_repo(self):
        server = MR.Server("localhost", topdir="/tmp/yum",
                           baseurl="file:///tmp")
        repo = MR.Repo("fedora", 19, ["x86_64"], server)

        srpm = MS.Srpm("/a/b/c/dummy.src.rpm")
        srpm.name = "foo"
        srpm.version = "1.0"
        srpm.noarch = True

        ucs = MCU.prepare_0(repo)

        dcmd = repo.server.deploy_cmd
        c0 = dcmd("/var/lib/mock/fedora-19-x86_64/result/*.src.rpm",
                  "/tmp/yum/fedora/19/sources")
        c1 = dcmd("/var/lib/mock/fedora-19-x86_64/result/*.noarch.rpm",
                  "/tmp/yum/fedora/19/x86_64")

        cs_expected = [_join(c0, ucs[0]), _join(c1, *ucs[1:])]
        self.assertListEqual(TT.prepare_0(repo, srpm), cs_expected)
Beispiel #4
0
    def test_05_prepare_0__localhost_w_build(self):
        server = MR.Server("localhost", topdir="/tmp/yum",
                           baseurl="file:///tmp")
        repo = MR.Repo("fedora", 19, ["x86_64", "i386"], server)

        srpm = MS.Srpm("/a/b/c/dummy.src.rpm")
        srpm.name = "foo"
        srpm.version = "1.0"
        srpm.noarch = False

        bcs = MCB.prepare_0(repo, srpm)
        ucs = MCU.prepare_0(repo)

        dcmd = repo.server.deploy_cmd
        c0 = dcmd("/var/lib/mock/fedora-19-x86_64/result/*.src.rpm",
                  "/tmp/yum/fedora/19/sources")
        c1 = dcmd("/var/lib/mock/fedora-19-x86_64/result/*.x86_64.rpm",
                  "/tmp/yum/fedora/19/x86_64")
        c2 = dcmd("/var/lib/mock/fedora-19-i386/result/*.i386.rpm",
                  "/tmp/yum/fedora/19/i386")

        cs_expected = [_join(bcs[0], c1, ucs[1], c0, ucs[0]),
                       _join(bcs[1], c2, ucs[2])]
        self.assertListEqual(TT.prepare_0(repo, srpm, True), cs_expected)