On 11/25/2011 02:48 PM, David Curylo wrote:
> In our use case, we are trying to get real time notifications of events into our own application tier, so there would only be one or two of our application servers connected at a time. It need not be REST or HTTP - a persistent TCP connection will work just as well for us, the importance is that we are notified as quickly as possible. We have a similar need for real time notifications throughout our system and our architecture can be summarized as follows:
> Application server(s) --> AMQP topic exchange --> AMQP queue topic binding --> Web server(s)
> I will share more of our usage scenarios and a little about our architecture as it pertains to the discussion:
> When our application tier is notified of events, it performs other actions. For example, for Red Hat certification, we track the power off and power on events so we can provide a report of OS usage - polling every minute or so would work fine here. We also need to notify server monitoring systems that a system was powered off so they can stop monitoring rather than alerting of an outage - in this case, we need to be notified ASAP. Additionally, we need to notify any connected clients that a system has changed state (any event). Those clients are connected to web servers, which we notify by a message queuing infrastructure. All events are published to an AMQP topic exchange, to which web servers (and other systems) may subscribe based on their connected client's needs. The transport and scalability requirements no longer need to be handled by our application tier.
> The web servers, in the end, have to support a lot of client scenarios that include polling, long polling, sending HTTP requests, maintaining a TCP channel for streaming events, etc. We can easily scale up web servers, and we need to provide transports that are suitable for whatever our clients may need.
> I hope this helps explain our usage scenarios and suggest an additional technology to consider.
(moving the discussion to the new upstream mailing list)
do you care about all events, or specific ones?
the event notifier is about sending registered events per user.
maybe extend it to send the amqp events directly / extend the list of
events it cares about?
> -----Original Message-----
> From: Yaniv Kaul [mailto:email@example.com]
> Sent: Thursday, November 24, 2011 8:56 AM
> To: Geert Jansen
> Cc: Itamar Heim; rhevm-api(a)lists.fedorahosted.org; David Curylo
> Subject: Re: [rhevm-api] Event notifications in RHEVM 3
> On 11/24/2011 03:14 PM, Geert Jansen wrote:
>> On 11/24/2011 01:18 PM, Itamar Heim wrote:
>>> On 11/24/2011 01:37 PM, David Curylo wrote:
>>>> I don't know the capabilities of this daemon. Can it do other notifications besides email, such as execute curl to send a request to my system? I would like to get notifications as close to real time as possible.
>>> I think it's every 5 minutes right now, but can be configured (in 3.0).
>> I don't believe though, that out notification service suits this use
>> case. The use case is to get almost real-time notifications via an API
>> when a change has been made.
>> In my view, the best way to do this in HTTP/REST, is so-called long
>> polling. It's not perfect, and not terribly scalable (i takes up one
>> TCP connection, and in the simplest implementation, one app server slot).
>> But on the other side, i do not see a need for 100s of clients polling
>> a single RHEV systems. Typically, a customer may have 1-2 ISV packages
>> on top of RHEV that need events. In my view, 10s of clients should be
>> easily doable with long polling.
> - A single persistent TCP connection is "cheaper" to everyone than open-request-response-close-open-request-response-close ....
> - This is widely used over HTTP with "100 continue" messages that never actually complete with a 200. It's neat and takes very little bandwidth, actually.
>> If we want to scale higher than this, probably a different
>> architecture like e.g. a pub/sub architecture using a protocol
>> optimized for binary messaging would make sense. But again, for now, i
>> have not seen this need so for 3.1 i think we need to focus on the
>> simplest solution that will satisfy 95% of the requirements.
>> rhevm-api mailing list
We successfully installed Ovirt-engine & VDSM (on the same host!) from
the ovirt's repository.
The Steps were as following:
1. add a repository to /etc/yum.repo.d (will be replaced by a RPM
package containing all the needed information)
2. execute: "yum install -y ovirt-engine; yum install -y vdsm*"
3. disable NetworkManager and activating the network service
4. create a bridge interface named "engine"
5. change configuration in /etc/libvirt/qeum.conf
/etc/libvirt/libvirtd.conf & /etc/vdsm/vdsm.conf
6. configure postgresql for first time installation
7. execute /usr/share/ovirt-engine/dbscripts/create_db_devel.sh
8. change vdc_options option 'EmulatedMachine' from 'rhel6.2.0' to
'pc-0.14' (known bug in ovirt-engine, patch already submitted)
9. start vdsm & jboss services
After those steps were carried, we were able to:
1. add new data center, cluster & host
2. configure storage
3. create and run a new VM
a wiki page containing all the necessary information will be delivered
Following the oVirt-engine-core meeting today, and the introduction of
the Quota feature,
a few open issues were discussed, and are described as follow:
1. Grace limit - We relinquish the grace limit property, since the
threshold property should be good enough, for the alert functionality,
the administrator needs.
2. Email notifications - The administrator will use the notification
service for the Quota threshold event messages, to configure which
users, will get notification email on Quota that exceeded the threshold.
(We should consider using postponed notifications, to avoid flood).
3, Quota feature scope - Just to clarify, Quota is not designed from
hardware point of view, but more from the billing POV.
It will only be managed in the ovirt-engine scope.
I see that the "ovirt-manage-domains" tool updates the "users" and
"permissions" table to make the user given in the "-user" option a super
user. Is this by design? Shouldn't it just add the domain and leave the
"permissions" and "users" table untouched?
Thanks in advance,
Is there any plan making part of the REST api accessible for non-admin accounts?
How can I request and track such a feature? Is ovirt still using
bugzilla.redhat.com for bugs?
We've published 2 guides that describe how to install & configure
ovirt-engine & VDSM from a nightly build placed on ovirt.org's repository.
Please note the following:
1. At the time, nightly builds are not going to be carried out "nightly",
we will publish new versions from time to time until we'll establish
a mature and working release process
2. The installation process contains interim steps and will change as we
mature the ovirt-engine product's
deployment and may change significantly between revisions.
---------- Forwarded message ----------
From: Thierry Carrez <thierry(a)openstack.org>
Date: Wed, Nov 23, 2011 at 2:48 PM
Subject: [Openstack] FOSDEM 2012: Open source Virtualization and Cloud
devroom: Call for speakers
Cc: devrooms(a)fosdem.org, Lars Kurth <lars.kurth(a)xen.org>,
"openstack(a)lists.launchpad.net" <openstack(a)lists.launchpad.net>, Renzo
The devroom named "Open Source Virtualization and Cloud" (OSVC2012)
scheduled at FOSDEM on both days, February 4-5 2012, is a meeting
opportunity for the developers of all the innovative open source
projects around virtualization and cloud computing.
OSVC2012 will include:
* state-of-the-art presentations of virtualization/cloud projects
* workshops to brainstorm and discuss new user requests, new developer
ideas, and the possible synergies between projects
All information about the devroom will be posted on the wiki at:
All developers who want to present their ideas and software at OSVC2012
are welcome, provided that:
* Their project is related to virtualization or cloud computing
* They join the devroom as developers. Developers working for companies,
public/private agencies or universities speak for themselves and not for
their employer. OSVC2012 is about how to develop more effective
virtualizing/cloud solutions (ideas and code, not marketing)
* The code for their project must have been released under a free
software or open source license (its license must meet the FSF
definition of Free Software or the OSI definition of Open Source)
Call for Presentations and Workshops
All submissions must be sent to osvc(a)cs.unibo.it and include the
* Type of submission: Presentation or Workshop
* Desired length: "20min presentation + 5min Q&A", "45min presentation +
10min Q&A", or "no preference"
* Abstract / Description
* Speaker / Moderator bio
* Comments: scheduling constraints, remarks...
* Links to the project (including its source code)
* Related projects
* Deadline for submission: December 18, 2011
* Notification of accepted submissions: January 5, 2012
Mailing list: https://launchpad.net/~openstack
Post to : openstack(a)lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help : https://help.launchpad.net/ListHelp
By far the most common query that I have seen posed in the IRC channel since the workshop has been around how to successfully add an NFS storage domain. I know there are a host of reasons that this can fail (NFSv4 instead of NFSv3, path is not chown'd 36:36, firewall/server not reachable, bad export configuration) but it's still a pretty obvious pain point and it can be difficult to walk people through troubleshooting all of these possibilities on IRC.
I haven't filed a bug around this (yet) but I thought it might be worth trying to come with some ideas for what, if anything, we can change code wise to make this easier for people (and more obvious exactly what is actually wrong when it doesn't work) and then maybe some bugs can be raised from that?
I have also created the following page to attempt to collate the requirements for an NFS share to be used by oVirt and how to troubleshoot this issue, please feel free to contribute:
-------- Original Message --------
Subject: Re: Classifying engine errors
Date: Mon, 21 Nov 2011 09:32:10 -0500 (EST)
From: Jon Choate <jchoate(a)redhat.com>
To: Michael Pasternak <mpastern(a)redhat.com>
----- Original Message -----
> From: "Michael Pasternak" <mpastern(a)redhat.com>
> Sent: Monday, November 21, 2011 9:10:46 AM
> Subject: Classifying engine errors
> i would like to suggest classifying engine errors (VdcBllMessages)
> using these categories:
> 100-199. entity not found
> 200-300. missing parameters
> 300-399. no resources available
> 400-499. can't perform - user error
> 500-599. can't perform - server error
> 600-699. Unauthorized
> 700-x. Forbidden
> this way rest api will be able mapping them to HTTP errors
> e.g any error returned by engine CAN_DO_ACTION 100 < x < 200 will be
> to HTTP 404 with CAN_DO_ACTION message detail
> - this can be easily done by assigning id to each VdcBllMessages
> enum member in range of one of mentioned categories.
> Michael Pasternak
> RedHat, ENG-Virtualization R&D
Wouldn't it make more sense for this mapping to happen within the REST API since that is the component that cares about HTTP codes? The engine core should be agnostic to
any particular client to ensure its flexibility and separation of concern.
RedHat, ENG-Virtualization R&D
i would like to suggest classifying engine errors (VdcBllMessages)
using these categories:
100-199. entity not found
200-300. missing parameters
300-399. no resources available
400-499. can't perform - user error
500-599. can't perform - server error
this way rest api will be able mapping them to HTTP errors
e.g any error returned by engine CAN_DO_ACTION 100 < x < 200 will be converted
to HTTP 404 with CAN_DO_ACTION message detail
- this can be easily done by assigning id to each VdcBllMessages
enum member in range of one of mentioned categories.
RedHat, ENG-Virtualization R&D
RedHat, ENG-Virtualization R&D