----- Original Message -----
From: "Vojtech Szocs" <vszocs(a)redhat.com>
To: "Yair Zaslavsky" <yzaslavs(a)redhat.com>
Cc: "Barak Azulay" <bazulay(a)redhat.com>, "Oved Ourfali"
<ovedo(a)redhat.com>, users(a)ovirt.org
Sent: Friday, November 7, 2014 5:16:48 PM
Subject: Re: [ovirt-users] webhook
----- Original Message -----
> From: "Yair Zaslavsky" <yzaslavs(a)redhat.com>
> To: "Vojtech Szocs" <vszocs(a)redhat.com>
> Cc: "Barak Azulay" <bazulay(a)redhat.com>, "Oved Ourfali"
<ovedo(a)redhat.com>,
> users(a)ovirt.org
> Sent: Thursday, November 6, 2014 2:59:53 PM
> Subject: Re: [ovirt-users] webhook
>
>
>
> ----- Original Message -----
> > From: "Vojtech Szocs" <vszocs(a)redhat.com>
> > To: "Barak Azulay" <bazulay(a)redhat.com>
> > Cc: "Oved Ourfali" <ovedo(a)redhat.com>, users(a)ovirt.org
> > Sent: Thursday, November 6, 2014 3:38:56 PM
> > Subject: Re: [ovirt-users] webhook
> >
> >
> >
> > ----- Original Message -----
> > > From: "Barak Azulay" <bazulay(a)redhat.com>
> > > To: "Vojtech Szocs" <vszocs(a)redhat.com>
> > > Cc: "Einav Cohen" <ecohen(a)redhat.com>, "Oved
Ourfali"
> > > <ovedo(a)redhat.com>,
> > > users(a)ovirt.org
> > > Sent: Tuesday, November 4, 2014 5:15:35 PM
> > > Subject: Re: [ovirt-users] webhook
> > >
> > >
> > >
> > > ----- Original Message -----
> > > > From: "Vojtech Szocs" <vszocs(a)redhat.com>
> > > > To: "Einav Cohen" <ecohen(a)redhat.com>
> > > > Cc: "Oved Ourfali" <ovedo(a)redhat.com>,
users(a)ovirt.org
> > > > Sent: Tuesday, November 4, 2014 2:12:05 PM
> > > > Subject: Re: [ovirt-users] webhook
> > > >
> > > >
> > > >
> > > > ----- Original Message -----
> > > > > From: "Einav Cohen" <ecohen(a)redhat.com>
> > > > > To: "Vojtech Szocs" <vszocs(a)redhat.com>
> > > > > Cc: "Oved Ourfali" <ovedo(a)redhat.com>,
users(a)ovirt.org
> > > > > Sent: Friday, October 31, 2014 8:01:34 PM
> > > > > Subject: Re: [ovirt-users] webhook
> > > > >
> > > > > > ----- Original Message -----
> > > > > > From: "Vojtech Szocs" <vszocs(a)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)
> >
> > Cool, maybe something we could do in future as part of UX improvement,
> > i.e. change notification (push changes to client) to drive UI data
> > update,
> > instead of periodic polling.
>
> Bare ind mind the notification service works with audit log (the user marks
> what will be notified).
> I think you might be after for something else? Or did you refer to audit
> log/events only?
You're right, I was after a general "system has been modified in some way"
event. Basically, whenever you execute backend "command", it might modify
the state of oVirt system (i.e. metadata persisted into postgres DB) and
I was referring to (existing/missing?) infra to broadcast such notifications.
It's similar to pushing events about system state change within CQRS
architecture [1]. More generally, letting others know that system state
has changed.
[1]
http://martinfowler.com/bliki/CQRS.html
Ah, just met a friend over a cup of coffree with this, and he was talking about Martin
Fowler, audit logs and how to use audit log to reconstruct your state or something like
that -
http://martinfowler.com/eaaDev/EventSourcing.html
I think it can be used maybe with your above suggestion,
What do you think?
>
>
> >
> > >
> > >
> > > >
> > > > >
> > > > > >
> > > > > > 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(a)redhat.com>
> > > > > > > To: "Yair Zaslavsky"
<yzaslavs(a)redhat.com>
> > > > > > > Cc: "Koen Vanoppen"
<vanoppen.koen(a)gmail.com>, users(a)ovirt.org,
> > > > > > > "Vojtech
> > > > > > > Szocs" <vszocs(a)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(a)redhat.com>
> > > > > > > > To: "Koen Vanoppen"
<vanoppen.koen(a)gmail.com>
> > > > > > > > Cc: "Oved Ourfali"
<ovedo(a)redhat.com>, users(a)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(a)gmail.com>
> > > > > > > > > To: users(a)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(a)ovirt.org
> > > > > > > > >
http://lists.ovirt.org/mailman/listinfo/users
> > > > > > > > >
> > > > > > > > _______________________________________________
> > > > > > > > Users mailing list
> > > > > > > > Users(a)ovirt.org
> > > > > > > >
http://lists.ovirt.org/mailman/listinfo/users
> > > > > > > >
> > > > > > >
> > > > > > _______________________________________________
> > > > > > Users mailing list
> > > > > > Users(a)ovirt.org
> > > > > >
http://lists.ovirt.org/mailman/listinfo/users
> > > > > >
> > > > >
> > > > _______________________________________________
> > > > Users mailing list
> > > > Users(a)ovirt.org
> > > >
http://lists.ovirt.org/mailman/listinfo/users
> > > >
> > > >
> > > >
> > >
> > _______________________________________________
> > Users mailing list
> > Users(a)ovirt.org
> >
http://lists.ovirt.org/mailman/listinfo/users
> >
>