Jenkins Extended choice parameter和Active Choices param 之Groovy Script使用


Groovy Script調用python腳本返回值,方法如下:

添加Extended Choice Parameter參數 pp01,逗號分隔,items數量可多不可少:

1.編寫Python腳本test.py,內容如下:

#!/usr/bin/env python3
#coding=utf-8
import sys
a="aabbcc1" mm2="%s,%s,%s"%(a,333,"cccc") print(mm2)

python3 test.py返回結果如下,Extended choice parameter要求返回以逗號為分隔符的字符串:

aabbcc1,333,cccc

2.編寫Groovy腳本,內容如下:

def retobj2 = "/usr/local/python3/bin/python3 /data/script/py/test.py".execute().text.readLines()
retobj2.each{
  println it
}

 

 ========== ============================================================= ================================================================================================================

添加Active Choices Parameter參數pp03

 Active Choices接受Groovy Script返回結果為:java.util.List, an Array or a java.util.Map

 

小1方法:Groovy Script返回json格式結果:

python3 test4.py腳本內容如下:

#!/usr/bin/env python
#coding=utf-8import json
jd = {"name":"fulei.sssyang","age":"18"} #dict對象 #jj要求返回json格式
jj = json.dumps(jd)
print(jj)

python3 test4.py結果返回為json格式字符串,如下:

{"name": "fulei.sssyang", "age": "18"}

Groovy腳本內容如下:

def respText = "/usr/local/python3/bin/python3 /data/script/py/test4.py".execute().text
def slurper = new groovy.json.JsonSlurper() 
def branchs = slurper.parseText(respText) //parseText將json字符串轉換為Map對象;JsonOutput類用於將Groovy對象轉換為JSON字符串
//println branchs.getClass() //輸出結果:class groovy.json.internal.LazyMap
return branchs

branchs打印結果為java.map對象: {name=fulei.sssyang, age=18},最終顯示的為各個Value

 

小2方法:  Groovy Script返回分行字符串

/usr/local/python3/bin/python3 /script/py/SaltAPI2.py 10.10.3.2 http://10.10.3.2:80/ADDGroup_GetGroup.ps1 zhangsan   結果返回格式為:

組1(zu1@x.com)
組2(zu2@x.com)
組3(zu3@x.com)

則Groovy腳本內容如下:

import hudson.model.User
//def cuser='zhangsan'
def cuser=User.current().getId()
//def retobj2 = """/usr/local/python3/bin/python3 /data/script/py/test.py $cuser""".execute().text.readLines()
def retobj2 = """ /usr/local/python3/bin/python3 /script/py/SaltAPI2.py 10.10.3.2 http://10.10.3.2:80/ADDGroup_GetGroup.ps1 $cuser""".execute().text.readLines()

retobj2.each{
  println it
}

 

 

小3方法: Groovy Script返回 java.util.List 格式數據:

方法1)Groovy Script腳本內容如下:

def jlisttxt = "/usr/local/python3/bin/python3 /data/script/py/test5.py".execute().text
def jlist = new groovy.json.JsonSlurper().parseText(jlisttxt)
def jj=jlist['list']
return jj

jj輸出結果為java.util.ArrayList對象:[a, b, c1]

test5.py腳本內容:

#!/usr/bin/env python
#coding=utf-8
import sys,json
mmlist={"list":["a","b","c1"]}
listj = json.dumps(mmlist)
print(listj)

 python3 test5.py輸出結果:

['a2', 'b2', 'c2']

==================================================

方法2)

test6.py內容:

#!/usr/bin/env python
#coding=utf-8
mm3=['a2','b2','c2']
print(mm3)

python3 test6.py輸出結果:['a2', 'b2', 'c2']

Groovy Script內容如下:

def ids = "/usr/local/python3/bin/python3 /data/script/py/test6.py".execute().text
def idList = Eval.me(ids) //格式為ArrayList
return idList

println idList結果:[a2, b2, c2],此為class java.util.ArrayList對象

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM