[Engine-devel] [ANN] New development environment for ovirt-engine

snmishra at linux.vnet.ibm.com snmishra at linux.vnet.ibm.com
Wed May 15 20:28:31 UTC 2013


Has anyone tried using this setup with eclipse and running jboss  
server from eclipse?

Thanks
Sharad Mishra

Quoting Barak Azulay <bazulay at redhat.com>:

> Good work guys,
>
> Thanks
> Barak Azulay
>
>
>
> On May 12, 2013, at 14:52, Alon Bar-Lev <alonbl at redhat.com> wrote:
>
>> Hello all ovirt-engine developers,
>>
>> When I first joined the ovirt project, it took me about two weeks  
>> to setup a development environment, I needed to work on a bug  
>> related to host-deploy so I needed an environment that could use  
>> the ssh, PKI, vdsm-bootstrap and communicate with vdsm using SSL,  
>> this was virtually impossible to do so without tweaking the product  
>> in a way that it is so different from production use, that I cannot  
>> guarantee that whatever tested in development will actually work in  
>> production.
>>
>> I peeked at the installation script in a hope that I can create  
>> partial environment similar to production, but I found that the  
>> packaging implementation makes to much assumption and is very  
>> difficult to adopt. The fact that I do not use fedora/rhel for my  
>> development made it even worse.
>>
>> I had no other option than to create rpms after each of my changes  
>> and test each in real production like setup.
>>
>> It was obvious to me that the manual customization of developers to  
>> achieve working product will eventually break as product grow and  
>> move away from being developer friendly to production friendly. For  
>> example, product defaults cannot be these which serve developers,  
>> but these which serve production the best, or having a valid PKI  
>> setup cannot be optional any more as components do need to use it.  
>> Same for location of files and configuration, for example, if we  
>> write a pluggable infrastructure for branding, we cannot damage the  
>> interface just because developers runs the product in their own  
>> manual customization.
>>
>> I took the opportunity handed to me to port the ovirt-engine to  
>> other distributions in order to provide a development environment  
>> that is similar to production setup. Together with Sandro Bonazzola  
>> and Alex Lourie we re-wrote the whole installation of the product  
>> which can also be used to setup the desired development environment.
>>
>> Within this environment the product is set up using the same tools  
>> and configuration as in production, while the process does not  
>> require special privileges nor changes the state of the developer  
>> machine.
>>
>> A complete documentation is available[1], I preferred to use README  
>> within the source tree as wiki tend to quickly become obsolete,  
>> while documentation within source tree can be modified by the  
>> commit that introduces a change. I will redirect to this file from  
>> the current wiki once the site will be up.
>>
>> In a nut shell, after installing prerequisites, build and install  
>> the product using:
>>
>> $ make clean install-dev PREFIX=$HOME/ovirt-engine
>>
>> This will run maven and create product installation at $HOME/ovirt-engine
>> Next, a setup phase is required just like in production, to  
>> initialize configuration and database:
>>
>> $ $HOME/ovirt-engine/bin/engine-setup-2
>>
>> You have now fully functional product, including PKI, SSL,  
>> host-deploy, tools.
>> No manual database updates are required, no lose of functionality.
>>
>> All that is left is to start the engine service:
>>
>> $ $HOME/ovirt-engine/share/ovirt-engine/services/ovirt-engine.py start
>>
>> Access to application:
>>   http://localhost:8080
>>   https://localhost:8443
>> Debugging port is opened at port 8787.
>>
>> Farther information exists in the documentation[1].
>>
>> There are several inherit benefits of the new environment, the  
>> major one is the ability to manage several environments in parallel  
>> on the same host. For example, if we develop two separate features  
>> on two branches we can install the product into  
>> $HOME/ovirt-engine-feature1 and $HOME/ovirt-engine-feature-2 and  
>> have a separate database for each, if we modify the ports jboss is  
>> listening to we can run two instances of engine at the same time!
>>
>> We will be happy to work with all developers to assist in porting  
>> into the new development environment, the simplest is to create a  
>> new database for this effort. Moti has a sequence of converting the  
>> existing database owned by postgres to be owned by the engine,  
>> Moti, can you please share that?
>>
>> We are sure there are missing bits, we will be happy to know these  
>> so we can improve.
>>
>> I am aware that developers (especially java) are conservative, but  
>> I ask you to give us a chance, so that we make it easy for  
>> developers to join the project, and to allow us to drop the  
>> parallel effort of packaging to production and fixing the broken  
>> development environment.
>>
>> A special thanks to developers who took the time to test and  
>> provide feedback before the merged:
>> - Yaniv Bronheim
>> - Moti Asayag
>> - Limor Gavish
>> - Sharad Mishra
>> - Ofer Schreiber
>>
>> We are hoping that after migration you will be find this  
>> environment useful and friendly,
>>
>> Sandro Bonazzola,
>> Alex Lourie,
>> Alon Bar-Lev.
>>
>> [1]  
>> http://gerrit.ovirt.org/gitweb?p=ovirt-engine.git;a=blob;f=README.developer;hb=HEAD
>> _______________________________________________
>> Arch mailing list
>> Arch at ovirt.org
>> http://lists.ovirt.org/mailman/listinfo/arch
>>
>>
> _______________________________________________
> Engine-devel mailing list
> Engine-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/engine-devel






More information about the Devel mailing list