La documentazione fornita è un po 'confuso, e la soluzione ho lavorato è stato derivato dal api nifi distribuire lo script Groovy a https://github.com/aperepel/nifi-api-deploy
In definitiva, Inserisci direttamente un modello, è possibile utilizzare il seguente in Python richiede
requests.post("%s/nifi-api/controller/templates"%(url,), files={"template":open(filename, 'rb')})
Dove nomefile è il nome file del modello e url è il percorso dell'istanza nifi. Non l'ho capito in ricciolo direttamente ma questo dovrebbe sperare di ottenere gente con una domanda simile iniziata!
Modifica: Si noti inoltre che non è possibile caricare un modello con lo stesso nome di un modello esistente. Assicurati di eliminare il modello esistente prima di provare a ricaricare. Utilizzando la libreria Districare per analizzare il codice XML del modello, il seguente script funziona bene:
import untangle, sys, requests
def deploy_template(filename, url):
p = untangle.parse(filename)
new_template_name=p.template.name.cdata
r=requests.get("%s/nifi-api/controller/templates"%(url,), headers={"Accept":"application/json"})
for each in r.json()["templates"]:
if each["name"]==new_template_name:
requests.delete(each["uri"])
requests.post("%s/nifi-api/controller/templates"%(url,), files={"template":open(filename, 'rb')})
if __name__=="__main__":
deploy_template(sys.argv[1], sys.argv[2])
fonte
2016-07-18 21:56:59
Questo endpoint resto è per nifi 0,6 .. come possiamo farlo in 1.0 ? –