HAL has been deprecated, and this patch removes all HAL specific calls from the configuration scripts.
HAL is still present in the Python scripts, but will be removed in a different patch. Signed-off-by: Darryl L. Pierce <[email protected]> --- ChangeLog | 3 + configure.ac | 2 - ovirt-node.spec.in | 1 - scripts/ovirt-config-networking | 18 ++++---- scripts/ovirt-config-storage | 99 ++++++++++++++------------------------- 5 files changed, 48 insertions(+), 75 deletions(-) diff --git a/ChangeLog b/ChangeLog index 49d57ad..b57763a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,9 @@ CHANGELOG ========= +Version 1.9.3: + * Removed HAL dependencies from the firstboot scripts. + Version 1.9.2: * Fixed the autoconf setup to cover more prerequisites. diff --git a/configure.ac b/configure.ac index abe97cc..18cf789 100644 --- a/configure.ac +++ b/configure.ac @@ -10,9 +10,7 @@ fi # TODO need a way to check for python-setuptools -AC_CHECK_LIB(dbus-1, main, , AC_MSG_ERROR([Cannot find DBus development libraries.])) AC_CHECK_LIB(virt, main, , AC_MSG_ERROR([Cannot find libvirt development libraries.])) -AC_CHECK_LIB(hal, main, , AC_MSG_ERROR([Cannot find HAL development libraries.])) AC_CHECK_LIB(python2.6, main, , AC_MSG_ERROR([Cannot find python development libraries.])) AC_CONFIG_HEADERS([config.h]) diff --git a/ovirt-node.spec.in b/ovirt-node.spec.in index 28d8719..45de24c 100644 --- a/ovirt-node.spec.in +++ b/ovirt-node.spec.in @@ -17,7 +17,6 @@ URL: http://www.ovirt.org/ Requires(post): /sbin/chkconfig Requires(preun): /sbin/chkconfig BuildRequires: libvirt-devel >= 0.5.1 -BuildRequires: dbus-devel hal-devel BuildRequires: python-devel BuildRequires: python-setuptools Requires: libvirt >= 0.6.3 diff --git a/scripts/ovirt-config-networking b/scripts/ovirt-config-networking index 4d412ac..1cfc2db 100755 --- a/scripts/ovirt-config-networking +++ b/scripts/ovirt-config-networking @@ -460,16 +460,16 @@ set ${ntproot}/keys /etc/ntp/keys\n\ function setup_menu { NICS="" - udi_list=$(hal-find-by-capability --capability net.80203) - if [ -n "$udi_list" ]; then - for d in $udi_list; do - if [[ ! "$(hal-get-property --udi $d --key net.physical_device)" =~ computer ]]; then - NICS="$NICS $(hal-get-property --udi "$d" --key net.interface)" - fi - done - fi + nics=$(ls -bd /sys/class/net/*) + for nic in $nics; do + nic=$(basename $nic) + address=$(systool -c net -d $nic -A address | awk '/address\ += "(.*)"/ { print $3; }') + if [[ ! "$address" =~ '00:00:00:00' ]]; then + NICS="$NICS $nic" + fi + done - # Add virtio NICs that were possibly not detected by hal + # Add virtio NICs that were possibly not detected by other means NICS="$(ifconfig -a | awk '/Ethernet/ {print $1}'|xargs)" NICS=$(echo $NICS | tr ' ' '\n' | sort -u | xargs) diff --git a/scripts/ovirt-config-storage b/scripts/ovirt-config-storage index ce9707c..5b2c1e9 100755 --- a/scripts/ovirt-config-storage +++ b/scripts/ovirt-config-storage @@ -111,41 +111,11 @@ get_drive_size() local drive="$1" local space_var="$2" - local size= - local udi=$(hal-find-by-property --key block.device --string "$drive") - # if more than one UDI was found then iterate over them to find the base device - if [[ "${udi}" =~ \$ ]]; then - udi=$(echo "$udi" | sed 's/\$/ /g') - for found in ${udi}; do - if [[ "false" == $(hal-get-property --udi "$found" --key block.is_volume) ]]; then - udi="$found" - break - fi - done - fi - if [ -z "$udi" ]; then - # If hal didn't find the device, it could be a virtio block device - # or a multipath device - # In this case, use sfdisk -s to get the size - size=$(sfdisk -s "$drive" 2>/dev/null) - if [ -z "$size" ]; then - size=0 - fi - size=$(echo "scale=0; $size * 1024" | bc -l) - else - size=$(hal-get-property --udi "$udi" --key storage.size) - if [[ "${size}" == "0" ]]; then - # disk is probably hot-swappable, use different HAL key - # but first check that it is removeable media and that media is present - if [[ "true" == "$(hal-get-property --udi "$udi" --key storage.removable.media_available)" ]]; then - size=$(hal-get-property --udi "$udi" --key storage.removable.media_size) - fi - fi - fi + local size=$(sfdisk -s $drive) + size=$(echo "scale=0; $size / 1024" | bc -l) - size=$(echo "scale=0; $size / (1024 * 1024)" | bc -l) echo "$drive ($size MB)" - test -z "$udi" || echo "Disk Identifier: $(basename "$udi")" + echo "Disk Identifier: $drive" if [ -n "$space_var" ]; then eval $space_var="$size" fi @@ -210,8 +180,10 @@ check_partition_sizes() printf "\n" printf "There appears to already be an installation on another device:\n" for device in $devices; do - udi=$(hal-find-by-property --key block.device --string $device) - printf "\t$device ($(basename "$udi"))\n" + local uuid + + get_uuid $device uuid + printf "\t$device ${uuid}\n" done printf "We cannot proceed until either device is removed from the system\n" printf "or until the HostVG volume group is removed.\n" @@ -260,40 +232,19 @@ manual_input() # Sample output: /dev/sda get_dev_name() { - local udi_list=$(hal-find-by-capability --capability storage) local byid_list=$(find /dev/disk/by-id -mindepth 1 -not -name '*-part*' 2>/dev/null) - if test -z "$udi_list" -a -z "$byid_list"; then - warn "ERROR: no usable storage devices detected" - return 1 - fi + local devices="" - local d devices sizes - for d in $udi_list; do - local drive_type=$(hal-get-property --udi "$d" --key storage.drive_type) - test "X$drive_type" = Xdisk || continue - local block_dev=$(hal-get-property --udi "$d" --key block.device) - # Must start with a '/'. - case "$block_dev" in - *' '*) - # we use space as separator - warn "block device name '$block_dev' contains space; skipping"; - continue;; - /*) ;; - *) warn "block device name $block_dev doesn't start with '/';" \ - " skipping"; continue;; - esac - test -z "$devices" \ - && devices="$block_dev" \ - || devices="$devices $block_dev" + for drive in $(ls -db /sys/block/[hsv]d*); do + drive="/dev/$(basename $drive)" + test -z "$devices" && devices="$drive" || devices="$devices $drive" done + d="" for d in $byid_list; do devices="$devices $(readlink -f "$d")"; done - # FIXME: workaround for detecting virtio block devices - devices="$devices $(ls /dev/vd? 2> /dev/null | xargs)" - # FIXME: workaround for detecting cciss devices for dev in $(ls /dev/cciss 2>/dev/null); do if [[ ! "$dev" =~ p[0-9]+\$ ]]; then @@ -518,6 +469,26 @@ EOF return ${is_negative-0} } +# Retrieves the UUID for the specified device. +# $1 - the device +# $2 - the variable to be set +get_uuid() +{ + local device=${1-} + local envvar=${2-} + local rootname + + if [[ "$device" =~ "^.*[0-9]?$" ]]; then + rootname="${device:0:${#device}-1}" + fi + local uuid=$( + udevadm info --path=/sys/block/$rootname/$device --query=property | + awk '/ID_FS_UUID=/ { match($0, "ID_FS_UUID=(.*)", data); print data[1]; }' + ) + + eval $envvar="$uuid" +} + #Check for an existing HostVG on any device on the system. # Return 0 if then is a HostVG found, unless only one found is on $1 # Return 1 if no HostVG found or only found on $1 @@ -537,10 +508,12 @@ check_existing_hostvg() printf "\n" printf "There appears to already be an installation on another device:\n" for device in $devices; do + local uuid + get_multipath_devices ${device%p[0-9]} sd_dev sd_dev=$(echo "$sd_dev" | awk '{print $1}') - udi=$(hal-find-by-property --key block.device --string /dev/${sd_dev}) - printf "\t$device ($(basename "$udi"))\n" + get_uuid $sd_dev uuid + printf "\t$device ($uuid)\n" done printf "The installation cannot proceed until the device is removed\n" printf "from the system of the HostVG volume group is removed.\n" -- 1.6.6.1 _______________________________________________ Ovirt-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/ovirt-devel
