
----- Original Message -----
From: "Vojtech Szocs" <vszocs@redhat.com> To: "Einav Cohen" <ecohen@redhat.com> Cc: "Oved Ourfali" <ovedo@redhat.com>, users@ovirt.org Sent: Tuesday, November 4, 2014 2:12:05 PM Subject: Re: [ovirt-users] webhook
----- Original Message -----
From: "Einav Cohen" <ecohen@redhat.com> To: "Vojtech Szocs" <vszocs@redhat.com> Cc: "Oved Ourfali" <ovedo@redhat.com>, users@ovirt.org Sent: Friday, October 31, 2014 8:01:34 PM Subject: Re: [ovirt-users] webhook
----- Original Message ----- From: "Vojtech Szocs" <vszocs@redhat.com> Sent: Friday, October 31, 2014 11:51:53 AM
Hi,
if I get this correctly, you'd like to be notified when certain event happens (VM created/deleted/etc.) and react upon that. I see multiple possible approaches here:
0, improve Engine extension API (refer to Alon Bar-Lev for details) - if extensions can be packaged as JARs and these JARs could include web fragments [1] it would mean the possibility to deploy custom servlets onto existing Engine instance (in context of webapp that processes extensions) - your custom Java servlet could query REST interface (or be notified once something happens, but AFAIK we don't have that implemented yet) and do whatever logic is needed - once I asked Alon about ^^ but never got response from him - IMHO this would be a nice way to deploy custom Java code on Engine
[1] https://blogs.oracle.com/swchan/entry/servlet_3_0_web_fragment
1, improve UI plugin API - add "VirtualMachineDataLoaded" event fired upon each refresh of VM data in UI table (generalization -> "{Entity}DataLoaded") - this is similar to existing "{Entity}SelectionChange" events
relying on changes in the UI table is a bad idea:
(1) potentially missing events: the UI displays paginated data; if my VMs are sorted by name, and I have 1000 VMs in my setup, and I just added a VM named "z", it will be added to the last "page" which is not displayed right now, so I wouldn't even be aware that something was added.
(2) potentially "creating" "fake" events: changes in the displayed data in the UI can occur due to change in the Search query; if I have 50 VMs in my setup, and I initially had the "Vms:" search query, and now I change it to "VMs: name = a*", which results in displaying only 10 VMs, this may falsely hint on removal of 40 VMs from the system.
Agreed, that was a bad idea :) UI data is constrained by things like search query, pagination, sorting etc. Scratch my previous idea.
As mentioned before, notification of relevant events occuring in system should be the way to go. Either Engine will provide mechanism to notify other systems (i.e. email notifier) or other system will poll/listen-to changes in Engine (i.e. via REST API).
Idea for consideration, if every change to oVirt system would be sent to some event bus, we could easily implement different notification mechanisms (like websocket in addition to email), and web apps living in Engine EAR context could also register to that event bus (imagine WebAdmin servlet that listens for changes and pushes them to clients).
This can/should be done through the notification service, currently it supports email & snmp traps ... but it could be extended (very easily)
2, write UI plugin that uses oVirtJS to periodically check VM events
not sure if this is referring to VM-related events in the code (e.g. hooking to the click on "OK" within the New VM / Remove VM dialog, or hooking to the "Success" callback of the action response, or something similar), or to the VM-related "Events" (i.e. the ones that are displayed in the GUI within the Events main-tab / bottom section). If the former: can be done, I assume, though not sure how complex it would be to implement the infrastructure for that. If the latter: this will "catch" actions that were performed either via the GUI or outside the GUI; in this case, it would probably be better to use an Engine extension API (solution "0" above) rather than a UI plugin, since it will be more reliable, will be active even when the GUI is not in use, etc.
It was meant simply as polling Engine via oVirtJS / REST API.
But then again, any UI plugin-based solution has the drawback that web GUI must be active (open) in order for plugin to be active.
The disadvantage of 1, and 2, is that WebAdmin GUI must be open. In any case, if you'd like to explore the possibility of doing this via UI plugin, I'm here to help.
Vojtech
----- Original Message -----
From: "Oved Ourfali" <ovedo@redhat.com> To: "Yair Zaslavsky" <yzaslavs@redhat.com> Cc: "Koen Vanoppen" <vanoppen.koen@gmail.com>, users@ovirt.org, "Vojtech Szocs" <vszocs@redhat.com> Sent: Thursday, October 30, 2014 2:10:12 PM Subject: Re: [ovirt-users] webhook
Hi
CC-ing also Vojtech, the "father" of the UI plugins.
Anyway, the only way to accomplish that via UI plugins at the moment is via adding a new "action menu item", that in the background deleted the VM, and reports to Foreman. I would be nice to have a "hook" for different UI action items, but it isn't available at the moment. There are plenty code samples for UI plugins, most of them available at: http://www.ovirt.org/Features/UIPlugins
I must say that I'm not sure webhooks are the right approach for that, as I guess it is relevant only in environments in which one doesn't use the API/CLI/SDK.... but.. it will be a cool feature!
Regards, Oved
----- Original Message -----
From: "Yair Zaslavsky" <yzaslavs@redhat.com> To: "Koen Vanoppen" <vanoppen.koen@gmail.com> Cc: "Oved Ourfali" <ovedo@redhat.com>, users@ovirt.org Sent: Thursday, October 30, 2014 1:44:38 PM Subject: Re: [ovirt-users] webhook
Oved - can we implement something like this using ui-plugins?
----- Original Message -----
From: "Koen Vanoppen" <vanoppen.koen@gmail.com> To: users@ovirt.org Sent: Monday, October 27, 2014 4:06:40 PM Subject: [ovirt-users] webhook
Hi all,
Just a quick question. Is it possible to set a webhook on the removal and creation of a new vm? So we can send to foreman a delete action when the VM is deleted...
Kind regards,
Koen
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users