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對象