import groovy.json.JsonBuilder import groovyx.net.http.RESTClient import static groovy.json.JsonOutput.prettyPrint import static groovy.json.JsonOutput.toJson import static groovyx.net.http.ContentType.JSON @Grab(group='org.codehaus.groovy.modules.http-builder',module='http-builder',version='0.7.1') def processorName ='GetFile1' def host = '' def port = 8083 def nifi = new RESTClient("http://$host:$port/nifi-api/") def pid= '1234' //println 'Looking up a component to update...' def resp = nifi.get( path: 'controller/search-results', query: [q: processorName] ) assert resp.status == 200 assert resp.data.searchResultsDTO.processorResults.size() == 1 def processorId = resp.data.searchResultsDTO.processorResults[0].id def processGroup= resp.data.searchResultsDTO.processorResults[0].groupId println "id/group: $processorId/$processGroup" resp = nifi.get(path: 'controller/revision') assert resp.status == 200 def builder2 = new JsonBuilder() builder2 { revision { clientId 'CID' version resp.data.revision.version } component { name "newgetfileproc" type "GetFile" state "STOPPED" description "value" } id '1234' permissions { canRead true canWrite true } } println(builder2.toPrettyString()) try { resp = nifi.post( path: "/controller/process-groups/7d15606e-8d9b-492a-811a-d2da391eed91", requestContentType: JSON, body: builder2.toPrettyString() ) println ("success ") } catch (Exception e) { e.printStackTrace() }