使用 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' 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 坏了。
您的脚本可能导入了错误的模块。您可以通过以下方式查看:
import jenkins
print jenkins.__file__
如果打印的路径不是jenkins模块的安装路径(例如C:\Python27_32\lib\site-packages\jenkins\__init__.pyc
),那么你应该检查pythonpath:
import sys
print sys.path
常见问题是当前目录中存在与导入模块同名的 python 脚本,该脚本位于搜索路径 ''
.
的第一位
有关导入订单的详细信息,请参阅 module search path
跟着,我发现我写的脚本名为jenkins.py
,它与python-jenkins import冲突。
库没有损坏。检查您的脚本名称。
必须添加另一个解决方案,而 运行 相同的命令
server = jenkins.Jenkins(jenkins_url, username = '', password = '')
我收到错误:
'jenkins' has no attribute 'Jenkins'
我的错误是在安装包时,我安装了包 "jenkins" 而我需要的包是 "python-jenkins"。
可以找到文档:
python-jenkins docs
所以我要做的只是
pip install python-jenkins
我正在使用 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' 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 坏了。
您的脚本可能导入了错误的模块。您可以通过以下方式查看:
import jenkins
print jenkins.__file__
如果打印的路径不是jenkins模块的安装路径(例如C:\Python27_32\lib\site-packages\jenkins\__init__.pyc
),那么你应该检查pythonpath:
import sys
print sys.path
常见问题是当前目录中存在与导入模块同名的 python 脚本,该脚本位于搜索路径 ''
.
有关导入订单的详细信息,请参阅 module search path
跟着jenkins.py
,它与python-jenkins import冲突。
库没有损坏。检查您的脚本名称。
必须添加另一个解决方案,而 运行 相同的命令
server = jenkins.Jenkins(jenkins_url, username = '', password = '')
我收到错误:
'jenkins' has no attribute 'Jenkins'
我的错误是在安装包时,我安装了包 "jenkins" 而我需要的包是 "python-jenkins"。 可以找到文档: python-jenkins docs
所以我要做的只是
pip install python-jenkins