Vorrei creare un lavoro Jenkins in cui eseguo il backup e l'implementazione di determinati database in un'istanza MongoDB remota. Mi piacerebbe che questa build fosse parametrizzata in modo che al momento della compilazione l'utente scelga da un elenco di nomi host MongoDB validi e quindi, una volta che l'utente seleziona il nome host DB valido, una seconda casella di scelta del parametro elenco verrà popolata dinamicamente con tutti i nomi di database validi su quel nome di host. Quindi, una volta che l'utente ha selezionato il nome del DB, questo verrà memorizzato in un parametro "DB" che può essere passato a uno script "Execute Shell" del passo Build per eseguire il lavoro effettivo.Come eseguire un comando shell per compilare un plug-in Jenkins Dynamic Choice Parameter
Il mio problema è che ho bisogno di un modo per eseguire uno script nel plug-in Jenkins Dynamic Parameter (Cascading) che eseguirà uno script shell (o idealmente python) che restituirà un elenco di nomi DB validi su l'host selezionato. Non riesco ad ottenere una porzione di script groovy del plug-in per eseguire comandi di shell sul sistema operativo locale (come fa il passo di build "Execute Shell").
Idealmente mi piacerebbe correre qualcosa come questo dove "MONGOHOST" è il primo parametro scelto dall'utente:
#!/usr/bin/env python
from pymongo import MongoClient
client = MongoClient('mongodb://${MONGOHOST}:27017/')
choicelist = client.database_names()
client.close()
avrei poi, come "listaScelte" per essere presentati in modo tale da vengono popolati come le scelte disponibili per un parametro "DB".
Come posso ottenere questo risultato, soprattutto perché il parametro Scelta dinamica accetta solo script groovy e non python nativo?
So che questo è stato chiesto un anno fa, ma perché non eseguire lo script python dallo script groovy? –
Ho la stessa domanda, sei riuscito a farlo? Come? – mmoossen