[ovirt-users] webhook

Barak Azulay bazulay at redhat.com
Tue Nov 4 11:15:35 EST 2014



----- Original Message -----
> From: "Vojtech Szocs" <vszocs at redhat.com>
> To: "Einav Cohen" <ecohen at redhat.com>
> Cc: "Oved Ourfali" <ovedo at redhat.com>, users at ovirt.org
> Sent: Tuesday, November 4, 2014 2:12:05 PM
> Subject: Re: [ovirt-users] webhook
> 
> 
> 
> ----- Original Message -----
> > From: "Einav Cohen" <ecohen at redhat.com>
> > To: "Vojtech Szocs" <vszocs at redhat.com>
> > Cc: "Oved Ourfali" <ovedo at redhat.com>, users at ovirt.org
> > Sent: Friday, October 31, 2014 8:01:34 PM
> > Subject: Re: [ovirt-users] webhook
> > 
> > > ----- Original Message -----
> > > From: "Vojtech Szocs" <vszocs at 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 at redhat.com>
> > > > To: "Yair Zaslavsky" <yzaslavs at redhat.com>
> > > > Cc: "Koen Vanoppen" <vanoppen.koen at gmail.com>, users at ovirt.org,
> > > > "Vojtech
> > > > Szocs" <vszocs at 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 at redhat.com>
> > > > > To: "Koen Vanoppen" <vanoppen.koen at gmail.com>
> > > > > Cc: "Oved Ourfali" <ovedo at redhat.com>, users at 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 at gmail.com>
> > > > > > To: users at 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 at ovirt.org
> > > > > > http://lists.ovirt.org/mailman/listinfo/users
> > > > > > 
> > > > > _______________________________________________
> > > > > Users mailing list
> > > > > Users at ovirt.org
> > > > > http://lists.ovirt.org/mailman/listinfo/users
> > > > > 
> > > > 
> > > _______________________________________________
> > > Users mailing list
> > > Users at ovirt.org
> > > http://lists.ovirt.org/mailman/listinfo/users
> > > 
> > 
> _______________________________________________
> Users mailing list
> Users at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
> 
> 
> 


More information about the Users mailing list