count=$(cd $dir; ls | wc -l); [ $count -le 1 ];
}
-##############################
-function check_yum_installed () {
- package=$1; shift
- rpm -q $package >& /dev/null || yum -y install $package
-}
-
-function check_yumgroup_installed () {
- group="$1"; shift
- yum grouplist "$group" | grep -q Installed || { yum -y groupinstall "$group" ; }
-}
-
##############################
function fedora_install() {
set -x
set -e
cache=/var/cache/lxc/fedora/$arch/$release
+ mkdir -p $cache
- mkdir -p /var/lock/subsys/
(
- flock -n -x 200 || { echo "Cache repository is busy." ; return 1 ; }
+ flock --exclusive --timeout 60 200 || { echo "Cache repository is busy." ; return 1 ; }
if [ ! -e "$cache/rootfs" ]; then
echo "Getting cache download in $cache/rootfs ... "
- fedora_download || { echo "Failed to download 'fedora base'"; return 1; }
+ fedora_download $cache || { echo "Failed to download 'fedora base'"; return 1; }
else
echo "Updating cache $cache/rootfs ..."
if ! yum --installroot $cache/rootfs -y --nogpgcheck update ; then
fi
fi
- echo "Copy $cache/rootfs to $lxc_root ... "
+ echo "Filling $lxc_root from $cache/rootfs ... "
rsync -a $cache/rootfs/ $lxc_root/
return 0
- ) 200>/var/lock/subsys/lxc
+ ) 200> $cache/lock
return $?
}
function fedora_download() {
set -x
+
+ cache=$1; shift
+
# check the mini fedora was not already downloaded
INSTALL_ROOT=$cache/partial
echo $INSTALL_ROOT
esac
# Enable cgroup -- xxx -- is this really useful ?
- mkdir $lxc_root/cgroup
+ [ -d $lxc_root/cgroup ] || mkdir $lxc_root/cgroup
# set up resolv.conf
cp /etc/resolv.conf $lxc_root/etc/resolv.conf
masklen=$(ip addr show $PUBLIC_BRIDGE | grep -v inet6 | grep inet | awk '{print $2;}' | cut -d/ -f2)
NETMASK=$(masklen_to_netmask $masklen)
GATEWAY=$(ip route show | grep default | awk '{print $3}' | head -1)
- VIF_HOST="i$(echo $GUEST_HOSTNAME | cut -d. -f1)"
+ VIF_HOST="vif$(echo $GUEST_HOSTNAME | cut -d. -f1)"
fi
setup_lxc $lxc $fcdistro $pldistro $personality