PluginMonitorLink to PluginMonitor


def instances=[
   "localhost","http://localhost:8090/ws/rest/info/full?token=03073dd256c643de9de8b2f2441abaf0",
   "test01","https://test01/ws/rest/info/full?token=b174f5d903d146d0b875acf5323ca585"
   ]

i=0
while (i<instances.size()) {
   // Get the status information json
   url=instances[i+1]
   instance=instances[i]
   gtwinfo=option.http.get(url)
   gmsg=api.newMessage("PluginStatus")
   info=slurper.slurp(gtwinfo)
   info.mainplugins.each() { plugin ->
       if (plugin.active=="true") {
           key=instance+"/"+plugin.name
           value=info.status.info[plugin.name]?.CurrentState
           gmsg.put(key,value)
           if (value=="error") api.sendAlarm(instance,plugin.name,"plugin","Plugin \""+plugin.name+"\" is in error state.",instance+"/"+plugin.name,4);
       } else {
           key="localhost/"+plugin.name
           state=info.status.info[plugin.name]?.CurrentState
           if (state==null) state="inactive"
           value=state.toLowerCase()+" (manual)"
           gmsg.put(key,value)
       }
   }
   println gmsg.toJson()
   api.publish(gmsg)
   i+=2
}
return null