Пример #1
0
def main():
    cl = CoprClient(username="******", login=sys.argv[1], token=sys.argv[2],
                    copr_url="http://copr.fedoraproject.org")
    results=build_project(sys.argv[4],cl)
    for bw in results.builds_list: 
        build_id = bw.build_id 
        while True: 
            count_chroot = 6
            for ch, status in bw.handle.get_build_details().data["chroots"].items(): 
                if status in ["skipped", "failed", "succeeded"]: 
                    count_chroot -= 1 
            time.sleep(10) 
            if count_chroot == 0: 
                break
        sort_result=sorted(bw.handle.get_build_details().data["chroots"].items(), key=itemgetter(0))
        i=1
        exit_code=0
        for ch, status in sort_result:
            print("echo -en \"travis_fold:start:rpg-{}\\\\r\"".format(ch))
            if (status == "succeeded"):
                print("echo \"{}  $(tput setaf 2)succeeded $(tput sgr0)\"".format(ch))
            else:
                print("echo \"{}  $(tput setaf 1){} $(tput sgr0)\"".format(ch,status))
                exit_code += 1
            url="https://copr-be.cloud.fedoraproject.org/results/xvican01/"+sys.argv[4]+"/"+ch+"/"+'0'*(8-len(str(build_id)))+str(build_id)+"-rpg/build.log.gz"
            logfile = urllib2.urlopen(url)
            output = open("/home/travis/build"+str(i)+".log.gz",'wb')
            output.write(logfile.read())
            output.close()
            print("zcat "+"build"+str(i)+".log.gz")
            i += 1  
            print("echo -en \"travis_fold:end:rpg-{}\\\\r\"".format(ch))
        print("exit {}".format(exit_code))
Пример #2
0
def get_auto_prune_status(front_url, username, projectname):
    client = CoprClient(copr_url=front_url)
    result = client.get_project_details(projectname, username)

    if "auto_prune" in result.data["detail"]:
        return bool(result.data["detail"]["auto_prune"])
    return True
Пример #3
0
def uses_devel_repo(front_url, username, projectname):
    client = CoprClient(copr_url=front_url)
    result = client.get_project_details(projectname, username)

    if "auto_createrepo" in result.data["detail"]:
        return not bool(result.data["detail"]["auto_createrepo"])
    return False
Пример #4
0
 def copr_set_config(self, username, login, token):
     """ Logs into copr with username, login and token.
         This has to be called before copr_create_project and copr_build
         To sign up on copr go here: http://copr.fedoraproject.org """
     self.cl = CoprClient(username,
                          login,
                          token,
                          copr_url="http://copr.fedoraproject.org")
Пример #5
0
def get_persistent_status(front_url, username, projectname):
    client = CoprClient(copr_url=front_url)
    result = client.get_project_details(projectname, username)

    if "persistent" in result.data["detail"]:
        return bool(result.data["detail"]["persistent"])
    else:
        return True
Пример #6
0
def test_list_project_no_username2(mock_cc, capsys):
    mock_cc.create_from_file_config.return_value = CoprClient()

    with pytest.raises(SystemExit) as err:
        main.main(argv=["list"])

    assert err.value.code == 6
    out, err = capsys.readouterr()
    assert "Pass username to command or add it to `~/.config/copr`" in out
Пример #7
0
def test_list_project(mock_cc, capsys):
    response_data = json.loads(read_res('list_projects_response.json'))
    expected_output = read_res('list_projects_expected.txt')

    # no config
    mock_cc.create_from_file_config.side_effect = CoprNoConfException()
    mocked_client = MagicMock(CoprClient(no_config=True))

    control_response = CoprResponse(client=None, method="", data=response_data,
                                    parsers=[ProjectListParser, CommonMsgErrorOutParser])
    mocked_client.get_projects_list.return_value = control_response
    mock_cc.return_value = mocked_client

    main.main(argv=["list", "rhscl"])

    out, err = capsys.readouterr()
    assert expected_output in out

    expected_warning = no_config_warning
    assert expected_warning in out
Пример #8
0
    for project in result:
        if project.projectname == project_name:
            found_project = True
            break
    if not found_project:
        chroot = [
            "fedora-21-x86_64", "fedora-21-i386", "fedora-22-x86_64",
            "fedora-22-i386", "fedora-rawhide-i386", "fedora-rawhide-x86_64"
        ]
        copr_client.create_project(project_name, chroots=chroot)
    result = cl.create_new_build(project_name, pkgs=[sys.argv[3]])
    return result


cl = CoprClient(username="******",
                login=sys.argv[1],
                token=sys.argv[2],
                copr_url="http://copr.fedoraproject.org")
results = build_project(sys.argv[4], cl)
for bw in results.builds_list:
    build_id = bw.build_id
    while True:
        count_chroot = 6
        for ch, status in bw.handle.get_build_details().data["chroots"].items(
        ):
            if status in ["skipped", "failed", "succeeded"]:
                count_chroot -= 1
                time.sleep(10)
                if count_chroot == 0:
                    break
    sort_result = sorted(bw.handle.get_build_details().data["chroots"].items(),
                         key=itemgetter(0))
Пример #9
0
 def copr_set_config(self, username, login, token):
     self.cl = CoprClient(username,
                          login,
                          token,
                          copr_url="http://copr.fedoraproject.org")