Spinnaker Jenkins Integration 无法从 Jenkins 获取作业
Spinnaker Jenkins Integration unable to fetch jobs from Jenkins
我们已经完成了 hello-spinnaker 示例中描述的所有步骤below.We已经使用 AWS spinnaker 镜像直接在 AWS 中配置 spinnaker。
www.spinnaker.io/docs/hello-spinnaker.
我正在尝试创建上面提到的示例管道 example.But 当我在第一步和 select jenkins 中创建触发器时,作业没有被填充并且低于错误在浏览器中。
GET http://localhost:8084/v2/builds/Jenkins/jobs 429(请求太多)
实际问题看起来是在改造试图将 jenkins getjobs 的响应映射到 JobList 时 class 它在 jenkins 响应 xml 中找到一个属性 _class 并且它是不存在于 JobList groovy class.Below 是我们试图找到问题的方式
1) 登录 AWS Spinnaker 实例
2)Gate服务暴露在8084端口
卷曲 http://localhost:8084/v2/builds/Jenkins/jobs.
{"failureCause":"retrofit.RetrofitError: 429 Too Many Requests","error":"Too Many Requests","message":"429 Too Many Requests","status":429,"url":"http://localhost:8088/jobs/Jenkins","timestamp":1462793944530}
3)Igor服务暴露在8088端口
卷曲 http://localhost:8088/jobs/Jenkins
{"fallbackException":"java.lang.UnsupportedOperationException: No fallback available.","failureType":"COMMAND_EXCEPTION","failureCause":"retrofit.converter.ConversionException: org.simpleframework.xml.core.AttributeException: Attribute '_class' does not have a match in class com.netflix.spinnaker.igor.jenkins.client.model.JobList at line 1","error":"Hystrix Failure","message":"jenkins-Jenkins-getJobs failed and no fallback available.","status":429,"timestamp":1462793896853}
当我检查 igor 日志时,在 jenkins poll 的 getprojects 期间发生了一些异常
Caused by: retrofit.converter.ConversionException: org.simpleframework.xml.core.AttributeException: Attribute '_class' does not have a match in class com.netflix.spinnaker.igor.jenkins.client.model.ProjectsList at line 2
at retrofit.converter.SimpleXMLConverter.fromBody(SimpleXMLConverter.java:38)
at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:367)
... 39 common frames omitted
Caused by: org.simpleframework.xml.core.AttributeException: Attribute '_class' does not have a match in class com.netflix.spinnaker.igor.jenkins.client.model.ProjectsList at line 2
4) 连接到 jenkins 并在 spinnaker 代码中完成作业 https://github.com/spinnaker/igor/blob/master/igor-web/src/main/groovy/com/netflix/spinnaker/igor/jenkins/client/JenkinsClient.groovy
resp = requests.get('http://jenkinserverip:8080/api/xml?tree=jobs[name,jobs[name,jobs[name,jobs[name,jobs[name,jobs[name,jobs[name,jobs[name,jobs[name,jobs[name]]]]]]]]]]',auth=('admin','password'))
打印 resp.text
<hudson _class='hudson.model.Hudson'><job _class='hudson.model.FreeStyleProject'><name>Hello Build</name></job><job _class='hudson.model.FreeStyleProject'><name>Hello Poll</name></job></hudson>
因此,由于 jenkins 响应具有 _class 属性,改造在此行抛出错误 http://grepcode.com/file/repo1.maven.org/maven2/com.squareup.retrofit/retrofit/1.9.0/retrofit/RestAdapter.java#383
我想看看我们如何才能快速解决这个问题,因为它看起来像某个兼容 jenkins 的版本。
这是关于 jenkins api 更高版本的错误。我相信 2.2 是最后一个兼容版本,我们内部 运行 1.6。
我在 spinnaker 1.8.5 中发现了类似的问题。我不得不将 jenkins url 从 myjenkins.server.com:8080
重新格式化为 http://myjenkins.server.com/
并纠正了问题。
我们已经完成了 hello-spinnaker 示例中描述的所有步骤below.We已经使用 AWS spinnaker 镜像直接在 AWS 中配置 spinnaker。
www.spinnaker.io/docs/hello-spinnaker.
我正在尝试创建上面提到的示例管道 example.But 当我在第一步和 select jenkins 中创建触发器时,作业没有被填充并且低于错误在浏览器中。
GET http://localhost:8084/v2/builds/Jenkins/jobs 429(请求太多)
实际问题看起来是在改造试图将 jenkins getjobs 的响应映射到 JobList 时 class 它在 jenkins 响应 xml 中找到一个属性 _class 并且它是不存在于 JobList groovy class.Below 是我们试图找到问题的方式
1) 登录 AWS Spinnaker 实例
2)Gate服务暴露在8084端口
卷曲 http://localhost:8084/v2/builds/Jenkins/jobs.
{"failureCause":"retrofit.RetrofitError: 429 Too Many Requests","error":"Too Many Requests","message":"429 Too Many Requests","status":429,"url":"http://localhost:8088/jobs/Jenkins","timestamp":1462793944530}
3)Igor服务暴露在8088端口
卷曲 http://localhost:8088/jobs/Jenkins
{"fallbackException":"java.lang.UnsupportedOperationException: No fallback available.","failureType":"COMMAND_EXCEPTION","failureCause":"retrofit.converter.ConversionException: org.simpleframework.xml.core.AttributeException: Attribute '_class' does not have a match in class com.netflix.spinnaker.igor.jenkins.client.model.JobList at line 1","error":"Hystrix Failure","message":"jenkins-Jenkins-getJobs failed and no fallback available.","status":429,"timestamp":1462793896853}
当我检查 igor 日志时,在 jenkins poll 的 getprojects 期间发生了一些异常
Caused by: retrofit.converter.ConversionException: org.simpleframework.xml.core.AttributeException: Attribute '_class' does not have a match in class com.netflix.spinnaker.igor.jenkins.client.model.ProjectsList at line 2
at retrofit.converter.SimpleXMLConverter.fromBody(SimpleXMLConverter.java:38)
at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:367)
... 39 common frames omitted
Caused by: org.simpleframework.xml.core.AttributeException: Attribute '_class' does not have a match in class com.netflix.spinnaker.igor.jenkins.client.model.ProjectsList at line 2
4) 连接到 jenkins 并在 spinnaker 代码中完成作业 https://github.com/spinnaker/igor/blob/master/igor-web/src/main/groovy/com/netflix/spinnaker/igor/jenkins/client/JenkinsClient.groovy
resp = requests.get('http://jenkinserverip:8080/api/xml?tree=jobs[name,jobs[name,jobs[name,jobs[name,jobs[name,jobs[name,jobs[name,jobs[name,jobs[name,jobs[name]]]]]]]]]]',auth=('admin','password'))
打印 resp.text
<hudson _class='hudson.model.Hudson'><job _class='hudson.model.FreeStyleProject'><name>Hello Build</name></job><job _class='hudson.model.FreeStyleProject'><name>Hello Poll</name></job></hudson>
因此,由于 jenkins 响应具有 _class 属性,改造在此行抛出错误 http://grepcode.com/file/repo1.maven.org/maven2/com.squareup.retrofit/retrofit/1.9.0/retrofit/RestAdapter.java#383
我想看看我们如何才能快速解决这个问题,因为它看起来像某个兼容 jenkins 的版本。
这是关于 jenkins api 更高版本的错误。我相信 2.2 是最后一个兼容版本,我们内部 运行 1.6。
我在 spinnaker 1.8.5 中发现了类似的问题。我不得不将 jenkins url 从 myjenkins.server.com:8080
重新格式化为 http://myjenkins.server.com/
并纠正了问题。