簡體   English   中英

使用 jenkins API 時,在 reconfig_job 上失敗

[英]While using jenkins API, getting a failure on reconfig_job

我正在使用 jenkins rest API 來遞歸作業,然后重新配置這個。 除了一種方法外,所有方法都有效。 他是我的代碼:

def get_server_instance():
    jenkins_url = 'xxxx'
    #server = Jenkins(jenkins_url, username = '', password = '')
    # Connect to instance - username and password are optional
    server = jenkins.Jenkins(jenkins_url, username = '', password = '')
    return server


def get_job_details():
    # Refer Example #1 for definition of function 'get_server_instance'
    server = get_server_instance()
    for job in server.get_jobs_list():
        if job == "GithubMigration":
            configuration = server.get_job(job).get_config().encode('utf-8')
            #server.reconfig_job(job, configuration)
            if server.has_job("GithubMigration"):
                server.reconfig_job('GithubMigration', config_xml)

它獲取了我的 configuration.xml,也找到了工作,但在server.reconfig_job('GithubMigration', config_xml)上失敗並出現錯誤,AttributeError: 'Jenkins' object has no attribute 'reconfig_job'

當顯然這個函數存在於 jenkins rest API 中時,是的,我正在導入 jenkins, from jenkinsapi.jenkins import Jenkins 。

編輯 1 - 我卸載了 Jenkinsapi 並且只有 python-jenkins 模塊,現在它甚至在說之前就失敗了

AttributeError: 'module' 對象沒有屬性 'Jenkins' 行:AttributeError: 'module' 對象沒有屬性 'Jenkins'

有任何想法嗎?

編輯2:

我只嘗試了 python-jenkins API 並嘗試了他們自己的例子,正如你在這里看到的http://python-jenkins.readthedocs.org/en/latest/example.html

import jenkins
j = jenkins.Jenkins('http://your_url_here', 'username', 'password')
j.get_jobs()
j.create_job('empty', jenkins.EMPTY_CONFIG_XML)
j.disable_job('empty')
j.copy_job('empty', 'empty_copy')
j.enable_job('empty_copy')
j.reconfig_job('empty_copy', jenkins.RECONFIG_XML)

即使這在 jenkins.Jenkins 上失敗,在 Jenkins 上出現屬性錯誤 - 沒有模塊。

我很確定 API 已損壞。

您的腳本可能導入了錯誤的模塊。 您可以按如下方式檢查:

import jenkins
print jenkins.__file__

如果打印的路徑不是 jenkins 模塊的安裝路徑(例如C:\\Python27_32\\lib\\site-packages\\jenkins\\__init__.pyc ),那么你應該檢查 pythonpath:

import sys
print sys.path

常見問題是當前目錄中存在與導入模塊同名的python腳本,該腳本位於搜索路徑''的首位。

有關導入順序的更多信息,請參閱模塊搜索路徑

@Chemik answer 之后,我意識到我編寫的腳本名為jenkins.py並且它與 python-jenkins 導入沖突。

圖書館沒有壞。 檢查您的腳本名稱。

必須添加另一個解決方案,同時運行相同的命令

server = jenkins.Jenkins(jenkins_url, username = '', password = '')

我得到了錯誤:

'jenkins' has no attribute 'Jenkins'

我的錯誤是在安裝軟件包時,我安裝了軟件包“jenkins”,而我需要的軟件包是“python-jenkins”。 可以找到文檔: python-jenkins docs

所以我要做的就是

pip install python-jenkins

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM