【问题标题】:Python-jenkins API call to reconfig job not workingPython-jenkins API 调用重新配置作业不起作用
【发布时间】:2017-01-13 03:02:37
【问题描述】:

我目前正在使用 jenkins-python API 连接到我的 jenkins 服务器,获取作业信息,并通过此 API 成功获取作业配置 xml。我正在尝试编辑该配置 xml 的一部分,然后将其推送回 Jenkins……但是,这不起作用。对此的 API 调用存在于 reconfig_job,但是当我使用以下内容时:

jenkinsServer.reconfig_job('jobname', 'xmlFile.xml')

我运行它没有得到任何输出,没有失败,没有异常,什么都没有......但是当我去看我的詹金斯工作时,配置没有改变。由于此处没有消息,因此不确定问题是什么。

我尝试用于新配置的 XML 应该没问题,因为我可以使用 curl 将新的配置 XML 向上推送并成功更新 jenkins 作业。

提前谢谢各位!

【问题讨论】:

    标签: python api jenkins jenkins-api


    【解决方案1】:

    reconfig_job 中的 config_xml 应该是 xml 字符串,而不是 xml 文件

    所以在你的情况下,做:

    with open('xmlFile.xml', 'r') as xml_file:
        config_data = xml_file.read()
    jenkinsServer.reconfig_job('jobname', config_data)
    

    (顺便说一句,检查您是否打算将字符串 'jobname'jobname 放在具有作业名称的变量中。)

    【讨论】:

    • 看起来我在同一条船上改变时,仍然没有输出或错误,工作仍然没有更新。我可以打印 config_data,它是正确的 XML 以及我想要进行的更改。也是的,我正在传递我的工作名称的字符串参数。
    • 知道了,问题是我使用 http 而不是 https 作为我的 Jenkins 服务器 url。这对于我正在做的其他调用似乎并不重要,但对于推高配置确实如此。更改此问题解决了它,并且作业配置现在正确更新。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多