Возьмите несколько переменных в виде комбинации из файла Excel, запросив его динамически в Rundeck - PullRequest
0 голосов
/ 06 августа 2020

с некоторыми частями, серийными номерами и идентификаторами конфигурации в файле Excel

Part    - Serial  - Config.  
223-234 -   345   - PLU9.   
904-567 -   987   - GJK0.   
232-589 -   890   - LOM7.  
230-978 -   356   - GJK0.  

Я хочу проверять эти числа с помощью API динамически, предоставляя этот файл в качестве входных данных в rundeck

https://prcmf.uslp07.app.xvz.com/api/c7/parts?include=name&selector=name,price,country&part=223-234&serial=345&config=PLU9

Я хочу, чтобы часть, серийный номер и конфигурация динамически изменялись и выполнялись поиск, и чтобы получить результат, используя python в Rundeck

https://prcmf.uslp07.app.xvz.com/api/c7/partsinclude=name&selector=name,price,country&part=@option.part@&serial=@option.serial@&config=@option.config@

Как я могу использовать это в Rundeck?

1 Ответ

0 голосов
/ 07 августа 2020

Этот пример кода python можно использовать для передачи любого значения любым параметрам задания Rundeck. Просто измените «строковые» переменные на свои значения из любого источника (другой вызов API, fuzzytable output, et c).

import requests

# host definition
rdeck_instance = "localhost"
rdeck_port = "4440"
rdeck_api = "35"
rdeck_token = "lL4CwBiHHmxirZtTUHDJEHu4ZGTontjX"
jobid = "f68e73cb-54e5-483e-b451-b7ae484c54fe"

# variable strings (for testing, in this case, you can put from the result from any source: another API call, fuzzy table output, etc.)
string1="one"
string2="two"
string3="three"

s = requests.Session()
r = s.post("http://" + rdeck_instance +  ":" + rdeck_port +"/api/" + rdeck_api + "/job/" + jobid + "/run?authtoken=" + rdeck_token, 
headers = {"Accept" : "application/json"}, 
data = { "argString" : "-opt1 {} -opt2 {} -opt3 {}".format(string1, string2, string3)})

# print data (for debug)
print ('######################')
print (r.status_code)
print (r.url)
print ('######################')

# json response
print(r.json()) 
...