From jboggs at redhat.com Thu Sep 1 02:05:43 2011 From: jboggs at redhat.com (Joey Boggs) Date: Wed, 31 Aug 2011 22:05:43 -0400 Subject: [Ovirt-devel] [PATCH] block manual setup runs when dropped to shell In-Reply-To: <1314832598.4058.31.camel@beelzebub.mburnsfire.net> References: <1314732046-10265-1-git-send-email-jboggs@redhat.com> <1314832598.4058.31.camel@beelzebub.mburnsfire.net> Message-ID: <4E5EE877.80703@redhat.com> On 08/31/2011 07:16 PM, Mike Burns wrote: > NACK -- see comments inline > > On Tue, 2011-08-30 at 15:20 -0400, Joey Boggs wrote: >> rhbz#733589 >> >> Signed-off-by: Joey Boggs >> --- >> scripts/ovirt-config-setup.py | 7 +++++-- >> scripts/ovirtfunctions.py | 9 +++++++++ >> 2 files changed, 14 insertions(+), 2 deletions(-) >> >> diff --git a/scripts/ovirt-config-setup.py b/scripts/ovirt-config-setup.py >> index 09c21ec..00df6fa 100755 >> --- a/scripts/ovirt-config-setup.py >> +++ b/scripts/ovirt-config-setup.py >> @@ -1661,8 +1661,11 @@ if __name__ == "__main__": >> print "Unable to run setup in rescue mode" >> sys.exit(1) >> elif is_booted_from_local_disk() or "--force" in sys.argv: >> - screen = NodeConfigScreen() >> - screen.start() >> + if manual_setup and "--force" not in sys.argv: >> + print "Unable to run setup manually, Run \"exit\" to return to setup" >> + else: >> + screen = NodeConfigScreen() >> + screen.start() >> else: >> print "Setup must be run after installation and reboot" >> sys.exit(1) >> diff --git a/scripts/ovirtfunctions.py b/scripts/ovirtfunctions.py >> index 1bacb3f..09facaf 100644 >> --- a/scripts/ovirtfunctions.py >> +++ b/scripts/ovirtfunctions.py >> @@ -191,6 +191,15 @@ def is_rescue_mode(): >> return True >> return False >> >> +def manual_setup(): >> + manual_cmd = "ps -ed|grep ovirt-admin" > on first login, it fails. > > I installed using rootpw to setup root password, then > edited /usr/libexec/ovirt-admin-shell to be this: > > #!/bin/bash > . /etc/profile > # Hide kernel messages on the console > sudo dmesg -n 1 > echo $$ > ps -ed | grep ovirt-admin > sudo /usr/libexec/ovirt-config-setup > read x > > Then logged out and tried login as admin: > > localhost.localdomain login: admin > Password: > Last login: Wed Aug 31 22:59:45 on tty1 > 1938 > 1938 ttyS0 00:00:00 ovirt-admin-she > Unable to run setup manually, Run "exit" to return to setup > > There are a couple of things that could be done: > > ps -ed | grep ovirt-admin | grep -v $$ > > look for ovirt-config-setup already running (also need to filter out > current process from results) > > Look at PPID of ovirt-config-setup and if that is ovirt-admin-shell, > then continue with login > >> + manual = subprocess.Popen(manual_cmd, shell=True, stdout=PIPE, stderr=STDOUT) >> + manual_output = manual.stdout.read().strip() >> + if len(manual_output): >> + return True >> + else: >> + return False >> + >> # was firstboot menu already shown? >> # state is stored in persistent config partition >> def is_firstboot(): > What about just creating a lock file in /var/run/lock/subsys? From mburns at redhat.com Thu Sep 1 02:14:08 2011 From: mburns at redhat.com (Mike Burns) Date: Wed, 31 Aug 2011 22:14:08 -0400 Subject: [Ovirt-devel] [PATCH] block manual setup runs when dropped to shell In-Reply-To: <4E5EE877.80703@redhat.com> References: <1314732046-10265-1-git-send-email-jboggs@redhat.com> <1314832598.4058.31.camel@beelzebub.mburnsfire.net> <4E5EE877.80703@redhat.com> Message-ID: <1314843249.2335.3.camel@mburns-laptop.usersys.redhat.com> On Wed, 2011-08-31 at 22:05 -0400, Joey Boggs wrote: > On 08/31/2011 07:16 PM, Mike Burns wrote: > > NACK -- see comments inline > > > > On Tue, 2011-08-30 at 15:20 -0400, Joey Boggs wrote: > >> rhbz#733589 > >> > >> Signed-off-by: Joey Boggs > >> --- > >> scripts/ovirt-config-setup.py | 7 +++++-- > >> scripts/ovirtfunctions.py | 9 +++++++++ > >> 2 files changed, 14 insertions(+), 2 deletions(-) > >> > >> diff --git a/scripts/ovirt-config-setup.py b/scripts/ovirt-config-setup.py > >> index 09c21ec..00df6fa 100755 > >> --- a/scripts/ovirt-config-setup.py > >> +++ b/scripts/ovirt-config-setup.py > >> @@ -1661,8 +1661,11 @@ if __name__ == "__main__": > >> print "Unable to run setup in rescue mode" > >> sys.exit(1) > >> elif is_booted_from_local_disk() or "--force" in sys.argv: > >> - screen = NodeConfigScreen() > >> - screen.start() > >> + if manual_setup and "--force" not in sys.argv: > >> + print "Unable to run setup manually, Run \"exit\" to return to setup" > >> + else: > >> + screen = NodeConfigScreen() > >> + screen.start() > >> else: > >> print "Setup must be run after installation and reboot" > >> sys.exit(1) > >> diff --git a/scripts/ovirtfunctions.py b/scripts/ovirtfunctions.py > >> index 1bacb3f..09facaf 100644 > >> --- a/scripts/ovirtfunctions.py > >> +++ b/scripts/ovirtfunctions.py > >> @@ -191,6 +191,15 @@ def is_rescue_mode(): > >> return True > >> return False > >> > >> +def manual_setup(): > >> + manual_cmd = "ps -ed|grep ovirt-admin" > > on first login, it fails. > > > > I installed using rootpw to setup root password, then > > edited /usr/libexec/ovirt-admin-shell to be this: > > > > #!/bin/bash > > . /etc/profile > > # Hide kernel messages on the console > > sudo dmesg -n 1 > > echo $$ > > ps -ed | grep ovirt-admin > > sudo /usr/libexec/ovirt-config-setup > > read x > > > > Then logged out and tried login as admin: > > > > localhost.localdomain login: admin > > Password: > > Last login: Wed Aug 31 22:59:45 on tty1 > > 1938 > > 1938 ttyS0 00:00:00 ovirt-admin-she > > Unable to run setup manually, Run "exit" to return to setup > > > > There are a couple of things that could be done: > > > > ps -ed | grep ovirt-admin | grep -v $$ > > > > look for ovirt-config-setup already running (also need to filter out > > current process from results) > > > > Look at PPID of ovirt-config-setup and if that is ovirt-admin-shell, > > then continue with login > > > >> + manual = subprocess.Popen(manual_cmd, shell=True, stdout=PIPE, stderr=STDOUT) > >> + manual_output = manual.stdout.read().strip() > >> + if len(manual_output): > >> + return True > >> + else: > >> + return False > >> + > >> # was firstboot menu already shown? > >> # state is stored in persistent config partition > >> def is_firstboot(): > > > What about just creating a lock file in /var/run/lock/subsys? > Sure that would work too. > _______________________________________________ > Ovirt-devel mailing list > Ovirt-devel at redhat.com > https://www.redhat.com/mailman/listinfo/ovirt-devel From apevec at gmail.com Thu Sep 1 16:27:59 2011 From: apevec at gmail.com (Alan Pevec) Date: Thu, 1 Sep 2011 18:27:59 +0200 Subject: [Ovirt-devel] [PATCH node] fix install when VG exists on disk In-Reply-To: <1314832949-2147-1-git-send-email-mburns@redhat.com> References: <1314832949-2147-1-git-send-email-mburns@redhat.com> Message-ID: On Thu, Sep 1, 2011 at 1:22 AM, Mike Burns wrote: > - ? ? ? ? ? ?pvs = system("pvscan -o pv_name,vg_uuid --noheadings | grep \"%s\" | egrep -v -q \"%s%s[0-9]+|%s \"") % (vg, dev, part_delim, dev) > - ? ? ? ? ? ?if pvs > 0: > + ? ? ? ? ? ?pvs_cmd = "pvs -o pv_name,vg_uuid --noheadings | grep \"%s\" | egrep -v -q \"%s%s[0-9]+|%s \"" % (vg, dev, part_delim, dev) > + ? ? ? ? ? ?pvs = subprocess.Popen(pvs_cmd, shell=True, stdout=PIPE, stderr=STDOUT) > + ? ? ? ? ? ?pvs_output = pvs.stdout.read() > + ? ? ? ? ? ?if pvs_output > 0: pvs_output is command output, for checking return code use if pvs.wait() > 0: > - ? ? ? ? ? ?wipe_volume_group(vg) > + ? ? ? ? ? ?vg_name_cmd = "vgs -o vg_name,vg_uuid --noheadings 2>/dev/null | grep -w \"" + vg + "\" | awk '{print $1}'" > + ? ? ? ? ? ?vg_name = subprocess.Popen(vg_name_cmd, shell=True, stdout=PIPE, stderr=STDOUT) > + ? ? ? ? ? ?vg_name_output = vg_name.stdout.read() > + ? ? ? ? ? ?system("vgchange -an " + vg_name_output) This should be moved to wipe_volume_group > + ? ? ? ? ? ?wipe_volume_group(vg_name_output) This whole trouble of converting vg_uuid to vg_name could be masked in wipe_volume_group But can someone remind me why don't we just take vg_name instead of vg_uuid in the first place? Alan From apevec at gmail.com Thu Sep 1 16:37:52 2011 From: apevec at gmail.com (Alan Pevec) Date: Thu, 1 Sep 2011 18:37:52 +0200 Subject: [Ovirt-devel] [PATCH node] fix install when VG exists on disk In-Reply-To: References: <1314832949-2147-1-git-send-email-mburns@redhat.com> Message-ID: > But can someone remind me why don't we just take vg_name instead of > vg_uuid in the first place? Found it: http://git.fedorahosted.org/git/?p=ovirt/node.git;a=commitdiff;h=5953376306165820ae5895479ba571c35d2f53a1 So question is now, why not just change wipe_volume_group to accept uuid instead of name? From mburns at redhat.com Thu Sep 1 17:50:40 2011 From: mburns at redhat.com (Mike Burns) Date: Thu, 01 Sep 2011 13:50:40 -0400 Subject: [Ovirt-devel] [PATCH node] fix install when VG exists on disk In-Reply-To: References: <1314832949-2147-1-git-send-email-mburns@redhat.com> Message-ID: <1314899440.4058.47.camel@beelzebub.mburnsfire.net> On Thu, 2011-09-01 at 18:27 +0200, Alan Pevec wrote: > On Thu, Sep 1, 2011 at 1:22 AM, Mike Burns wrote: > > - pvs = system("pvscan -o pv_name,vg_uuid --noheadings | grep \"%s\" | egrep -v -q \"%s%s[0-9]+|%s \"") % (vg, dev, part_delim, dev) > > - if pvs > 0: > > + pvs_cmd = "pvs -o pv_name,vg_uuid --noheadings | grep \"%s\" | egrep -v -q \"%s%s[0-9]+|%s \"" % (vg, dev, part_delim, dev) > > + pvs = subprocess.Popen(pvs_cmd, shell=True, stdout=PIPE, stderr=STDOUT) > > + pvs_output = pvs.stdout.read() > > + if pvs_output > 0: > > pvs_output is command output, for checking return code use > if pvs.wait() > 0: It's not return code that should be checked. It's whether there is any output. in bash: if [ -n "$pvs" ]; then I just don't know how to translate that to python. > > > > - wipe_volume_group(vg) > > + vg_name_cmd = "vgs -o vg_name,vg_uuid --noheadings 2>/dev/null | grep -w \"" + vg + "\" | awk '{print $1}'" > > + vg_name = subprocess.Popen(vg_name_cmd, shell=True, stdout=PIPE, stderr=STDOUT) > > + vg_name_output = vg_name.stdout.read() > > + system("vgchange -an " + vg_name_output) > This should be moved to wipe_volume_group I put it here because vgchange -an HostVG fails. It might be doable after all the unmount_logging and other logic though. And considering we don't support reinstall using the TUI, HostVG shouldn't be there anyway. > > > + wipe_volume_group(vg_name_output) > This whole trouble of converting vg_uuid to vg_name could be masked in > wipe_volume_group > But can someone remind me why don't we just take vg_name instead of > vg_uuid in the first place? > > Alan Mostly, I did it the way I did to mimic the ovirt-config-storage script since I know that logic works. Mike From mburns at redhat.com Wed Sep 7 21:03:17 2011 From: mburns at redhat.com (Mike Burns) Date: Wed, 7 Sep 2011 17:03:17 -0400 Subject: [Ovirt-devel] [PATCH node] enable verify_udev_operations rule in lvm Message-ID: <1315429397-25524-1-git-send-email-mburns@redhat.com> This is a workaround for rhbz#736486 rhbz#736357 Signed-off-by: Mike Burns --- recipe/rhevh6-post.ks | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-) diff --git a/recipe/rhevh6-post.ks b/recipe/rhevh6-post.ks index a5be9ef..ff7476a 100644 --- a/recipe/rhevh6-post.ks +++ b/recipe/rhevh6-post.ks @@ -289,3 +289,18 @@ set /files/etc/sysctl.conf/net.ipv4.ip_local_reserved_ports 54321 save EOF_sysctl +# patch lvm.conf to enable verify_udev_operations rule +# rhbz#736357 +patch -d /etc/lvm -p0 << \EOF_lvm_conf +--- lvm.conf.orig 2011-09-07 19:27:11.308017651 +0000 ++++ lvm.conf 2011-09-07 19:27:15.781006848 +0000 +@@ -463,7 +463,7 @@ + # additional checks (and if necessary, repairs) on entries in the device + # directory after udev has completed processing its events. + # Useful for diagnosing problems with LVM2/udev interactions. +- verify_udev_operations = 0 ++ verify_udev_operations = 1 + + # How to fill in missing stripes if activating an incomplete volume. + # Using "error" will make inaccessible parts of the device return +EOF_lvm_conf -- 1.7.4.4 From mburns at redhat.com Thu Sep 8 12:36:09 2011 From: mburns at redhat.com (Mike Burns) Date: Thu, 8 Sep 2011 08:36:09 -0400 Subject: [Ovirt-devel] [PATCH node] don't blacklist /etc/pki/tls/openssl.cnf Message-ID: <1315485369-8394-1-git-send-email-mburns@redhat.com> rhbz#736686 Signed-off-by: Mike Burns --- recipe/common-minimizer.ks | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/recipe/common-minimizer.ks b/recipe/common-minimizer.ks index 0b33be7..4151f49 100644 --- a/recipe/common-minimizer.ks +++ b/recipe/common-minimizer.ks @@ -296,6 +296,7 @@ keep /lib/firmware/aic94xx-seq.fw drop /lib/kbd/consolefonts drop /etc/pki/tls +keep /etc/pki/tls/openssl.cnf drop /etc/pki/java drop /etc/pki/nssdb drop /etc/pki/rpm-gpg -- 1.7.4.4 From mburns at redhat.com Fri Sep 9 19:11:41 2011 From: mburns at redhat.com (Mike Burns) Date: Fri, 9 Sep 2011 15:11:41 -0400 Subject: [Ovirt-devel] [PATCH node] only wipe HostVG if storage_init is not passed in dracut Message-ID: <1315595501-17227-1-git-send-email-mburns@redhat.com> rhbz#736971 Signed-off-by: Mike Burns --- dracut/ovirt-cleanup.sh | 15 ++++++++++----- 1 files changed, 10 insertions(+), 5 deletions(-) diff --git a/dracut/ovirt-cleanup.sh b/dracut/ovirt-cleanup.sh index c96d6fe..e9674d8 100755 --- a/dracut/ovirt-cleanup.sh +++ b/dracut/ovirt-cleanup.sh @@ -48,11 +48,16 @@ fi # Check for HostVG lvm pvscan >/dev/null 2>&1 -for hostvg in $(lvm pvs --noheadings -o vg_name,pv_name 2>/dev/null | awk '/^ HostVG/{print $2}'); do - storage_init="$hostvg,$storage_init" - info "Found HostVG on $hostvg" -done - +if [ -z "$storage_init" ]; then + for hostvg in $(lvm pvs --noheadings -o vg_name,pv_name 2>/dev/null | awk '/^ HostVG/{print $2}'); do + if [ -z "$storage_init" ]; then + storage_init="$hostvg" + else + storage_init="$hostvg,$storage_init" + fi + info "Found HostVG on $hostvg" + done +fi # storage_init is passed in a specific format # A comma separated list of HostVG devices -- 1.7.4.4 From mburns at redhat.com Mon Sep 12 23:16:48 2011 From: mburns at redhat.com (Mike Burns) Date: Mon, 12 Sep 2011 19:16:48 -0400 Subject: [Ovirt-devel] [PATCH node] handle list of variables to ignore Message-ID: <1315869408-12351-1-git-send-email-mburns@redhat.com> rhbz#723115 Signed-off-by: Mike Burns --- ovirt-node.spec.in | 4 ++++ scripts/ovirt-early | 6 +++++- 2 files changed, 9 insertions(+), 1 deletions(-) diff --git a/ovirt-node.spec.in b/ovirt-node.spec.in index 2d8a4bf..8321ba7 100644 --- a/ovirt-node.spec.in +++ b/ovirt-node.spec.in @@ -180,6 +180,9 @@ echo "# File where default configuration is kept" > %{buildroot}/%{_sysconfdir}/ # ovirt-early vendor hook dir %{__install} -d -m0755 %{buildroot}%{_sysconfdir}/ovirt-early.d +# ovirt-early vendor commandline variables +%{__install} -d -m0755 %{buildroot}%{_sysconfdir}/ovirt-commandline.d + %clean %{__rm} -rf %{buildroot} @@ -299,6 +302,7 @@ fi %{_initrddir}/ovirt %{_initrddir}/ovirt-post %{_sysconfdir}/ovirt-early.d +%{_sysconfdir}/ovirt-commandline.d %changelog * Mon Jun 20 2011 Alan Pevec 2.0.0-1 diff --git a/scripts/ovirt-early b/scripts/ovirt-early index 0f617f7..322e16d 100755 --- a/scripts/ovirt-early +++ b/scripts/ovirt-early @@ -644,7 +644,11 @@ start_ovirt_early () { done ;; *) - bootparams="$bootparams $i" + # check the params to be ignored before adding to bootparams + varname=${i%=*} + if ! grep -qw /etc/ovirt-commandline.d/*; then + bootparams="$bootparams $i" + fi ;; esac done -- 1.7.4.4 From mburns at redhat.com Tue Sep 13 10:55:04 2011 From: mburns at redhat.com (Mike Burns) Date: Tue, 13 Sep 2011 06:55:04 -0400 Subject: [Ovirt-devel] [PATCH node] handle list of variables to ignore In-Reply-To: <1315869408-12351-1-git-send-email-mburns@redhat.com> References: <1315869408-12351-1-git-send-email-mburns@redhat.com> Message-ID: <1315911304.4591.12.camel@beelzebub.mburnsfire.net> On Mon, 2011-09-12 at 19:16 -0400, Mike Burns wrote: > rhbz#723115 > > Signed-off-by: Mike Burns > --- > ovirt-node.spec.in | 4 ++++ > scripts/ovirt-early | 6 +++++- > 2 files changed, 9 insertions(+), 1 deletions(-) > > diff --git a/ovirt-node.spec.in b/ovirt-node.spec.in > index 2d8a4bf..8321ba7 100644 > --- a/ovirt-node.spec.in > +++ b/ovirt-node.spec.in > @@ -180,6 +180,9 @@ echo "# File where default configuration is kept" > %{buildroot}/%{_sysconfdir}/ > # ovirt-early vendor hook dir > %{__install} -d -m0755 %{buildroot}%{_sysconfdir}/ovirt-early.d > > +# ovirt-early vendor commandline variables > +%{__install} -d -m0755 %{buildroot}%{_sysconfdir}/ovirt-commandline.d > + > > %clean > %{__rm} -rf %{buildroot} > @@ -299,6 +302,7 @@ fi > %{_initrddir}/ovirt > %{_initrddir}/ovirt-post > %{_sysconfdir}/ovirt-early.d > +%{_sysconfdir}/ovirt-commandline.d > > %changelog > * Mon Jun 20 2011 Alan Pevec 2.0.0-1 > diff --git a/scripts/ovirt-early b/scripts/ovirt-early > index 0f617f7..322e16d 100755 > --- a/scripts/ovirt-early > +++ b/scripts/ovirt-early > @@ -644,7 +644,11 @@ start_ovirt_early () { > done > ;; > *) > - bootparams="$bootparams $i" > + # check the params to be ignored before adding to bootparams > + varname=${i%=*} > + if ! grep -qw /etc/ovirt-commandline.d/*; then Thanks to Alan: - if ! grep -qw /etc/ovirt-commandline.d/*; then + if ! grep -qw $varname /etc/ovirt-commandline.d/*; then That's what i get for trying to get patch out before Monday Night Football... > + bootparams="$bootparams $i" > + fi > ;; > esac > done From mburns at redhat.com Thu Sep 15 19:13:45 2011 From: mburns at redhat.com (Mike Burns) Date: Thu, 15 Sep 2011 15:13:45 -0400 Subject: [Ovirt-devel] [PATCH node] Wipe disk containing Root if uninstall passed Message-ID: <1316114025-5643-1-git-send-email-mburns@redhat.com> rhbz#738182 Signed-off-by: Mike Burns --- scripts/ovirt-early | 2 +- scripts/ovirt-functions | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletions(-) diff --git a/scripts/ovirt-early b/scripts/ovirt-early index a0ebe1c..419acb2 100755 --- a/scripts/ovirt-early +++ b/scripts/ovirt-early @@ -672,7 +672,7 @@ start_ovirt_early () { oldIFS=$IFS log "Found uninstall arg, wiping mbr from init disks" IFS=$SEP - for init_disk in $init $init_app; do + for init_disk in $init $init_app $(get_boot_disk); do echo "Wiping $init_disk" wipe_mbr "$init_disk" done diff --git a/scripts/ovirt-functions b/scripts/ovirt-functions index 26f66c8..c0f9949 100644 --- a/scripts/ovirt-functions +++ b/scripts/ovirt-functions @@ -1104,6 +1104,30 @@ autoinstall_failed(){ plymouth --show-splash } +get_base_device() { + dev=$1 + if [ -e "${dev%?}" ]; then + echo "${dev%?}" + return 0 + elif [ -e "${dev%p?}" ]; then + echo "${dev%p?}" + return 0 + else + return 1 + fi +} + +get_boot_device() { + ROOT=$(get_base_device $(findfs LABEL=Root)) + ROOTBACKUP=$(get_base_device $(findfs LABEL=RootBackup)) + if [ "$ROOT" = "$ROOTBACKUP" ]; then + echo "$ROOT" + return 0 + else + return 1 + fi +} + # execute a function if called as a script, e.g. # ovirt-functions ovirt_store_config /etc/hosts -- 1.7.4.4 From pmyers at redhat.com Tue Sep 20 12:40:25 2011 From: pmyers at redhat.com (Perry Myers) Date: Tue, 20 Sep 2011 08:40:25 -0400 Subject: [Ovirt-devel] Migration of ovirt-devel to new lists @ovirt.org Message-ID: <4E7889B9.8010105@redhat.com> oVirt Community, You might have noticed that the ovirt.org website is undergoing some fairly drastic changes [1]. These changes are part of the launching of the new oVirt site and expanding the community to include the open sourcing of the Red Hat Enterprise Virtualization stack. Some of the groundwork for these changes were discussed earlier on list: https://www.redhat.com/archives/ovirt-devel/2011-January/msg00000.html https://www.redhat.com/archives/ovirt-devel/2011-June/msg00000.html So, while it has been quiet around here lately, expect a lot more activity and noise on the relaunched and re-invigorated ovirt.org site and mailing lists in the very near future. The ovirt-devel at redhat.com mailing list will transition to several mailing lists, to more clearly differentiate the various components of the stack. oVirt Node development is still on-going as oVirt Node makes up the RHEV Hypervisor portion of the Red Hat RHEV stack. Upstream development for oVirt Node will happen here: http://lists.ovirt.org/mailman/listinfo/node-devel http://lists.ovirt.org/mailman/listinfo/node-commits oVirt Server will be replaced by the upstreaming of the RHEV Manager which will be renamed to oVirt Engine and will include several other sub-projects. oVirt Engine mailing lists are here: http://lists.ovirt.org/mailman/listinfo/engine-devel http://lists.ovirt.org/mailman/listinfo/engine-patches http://lists.ovirt.org/mailman/listinfo/engine-commits Invites will be sent to all users of ovirt-devel to join both the main engine-devel and node-devel mailing lists as a matter of convenience. Thanks for continuing to follow the oVirt project, and we look forward to your continued participation on the oVirt Node project, and new participation on the newly launched oVirt Engine and related projects. Best regards, Perry [1] - As you've probably noticed the ovirt.org site as it stands right now is not fully functional. We're just waiting for some DNS changes to be made for the site to be fully up at this point. Once the site is up, check out the following link for information about the various projects and users of oVirt: http://www.ovirt.org/project/community/