Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何在python中获取Jenkins挂起的构建id_Django_Python 2.7_Jenkins - Fatal编程技术网

Django 如何在python中获取Jenkins挂起的构建id

Django 如何在python中获取Jenkins挂起的构建id,django,python-2.7,jenkins,Django,Python 2.7,Jenkins,视图.py 在这里,我可以获得当前正在运行的jenkins作业构建的所有信息。但当用户再次运行或触发同一作业时,它将在jenkins上生成队列,但作为挂起的构建。 所以我得到了当前正在运行的作业的构建id,而不是挂起的jenkins构建的id。实际上,我需要挂起生成的生成id。 try: print "in try.." jenkinsStream = urllib2.ur

视图.py

在这里,我可以获得当前正在运行的jenkins作业构建的所有信息。但当用户再次运行或触发同一作业时,它将在jenkins上生成队列,但作为挂起的构建。 所以我得到了当前正在运行的作业的构建id,而不是挂起的jenkins构建的id。实际上,我需要挂起生成的生成id。

  try:
                             print "in try.."
                             jenkinsStream   = urllib2.urlopen( "http://10.211.213.138:8080/job/TE-mobius/lastBuild/api/json?pretty=true" )
                             print "after fetching url"
                        except urllib2.HTTPError, e:
                             print "URL Error: " + str(e.code)
                             print "      (job name [" + jobName + "] probably wrong)"


                        try:
                            print "Before loading json"
                            buildStatusJson = json.load( jenkinsStream )
                            print "After loading json"
                        except:
                            print "Failed to parse json"
                        print "before while.."
                        print buildStatusJson["building"]
                       #print "[" + jobName + "] duration: " + str(buildStatusJson["duration"])
                        print buildStatusJson.has_key( "result" )
                        if buildStatusJson.has_key( "result" )==True:
                            print "in if"
                            print "[" + jobname + "] duration: " + str(buildStatusJson["duration"])
                            print "[" + jobname + "] building: " + str(buildStatusJson["building"])
                            print "[" + jobname + "] timestamp: " + str(buildStatusJson["timestamp"])
                            print "[" + jobname + "] url: " + str(buildStatusJson["url"])
                            print "[" + jobname + "] result: " + str(buildStatusJson["result"])
                            print "[" + jobname + "] build number: " + str(buildStatusJson["number"])
                            print "[" + jobname + "] JobName: " + str(buildStatusJson["fullDisplayName"])

http://10.211.213.138:8080/job/TE-mobius/api/json?pretty=true
具有
nextBuildNumber

它也有

"queueItem" : {
    "blocked" : false,
    "buildable" : true,
    "id" : 119,
    "inQueueSince" : 1401783373284,
    "params" : "",
    "stuck" : false,
    "task" : {
      "name" : "YourJobName",
      "url" : "http://jenkins/job/YourJobName/"
    },
    "url" : "queue/item/119/",
    "why" : "Waiting for next available executor",
    "buildableStartMilliseconds" : 1401783373290,
    "pending" : false
  }
提供有关该挂起构建的一些基本信息。在构建开始之前,您试图在代码中打印的一些构建信息不会存在于Jenkins中

不幸的是,这只会让您获得下一个待定版本的版本号。如果一个作业的队列中有一个参数化生成和多个生成,我不知道有什么方法可以获取其他挂起生成的生成号。如果需要的话,你可能需要写一个插件