私はjenkins rest APIを使用してジョブを再帰し、これを再構成しています。1 つを除いて、すべての方法が機能します。彼は私のコードです:
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に存在し、はい、 jenkinsapi.jenkins import Jenkins からジェンキンをインポートしています。
編集 1 - Jenkinsapi をアンインストールし、python-jenkins モジュールしか持っていないのに、言う前に失敗するようになりました
AttributeError: 'module' object has no attribute 'Jenkins' for line : AttributeError: 'module' object has no attribute '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が壊れていると確信しています。