diff --git a/install.sh b/install.sh index c5c3e1e379..3e85e71f06 100755 --- a/install.sh +++ b/install.sh @@ -94,6 +94,7 @@ if [ -z "$ROOT" ] ; then ETC_LOCATION="/etc/one" LOG_LOCATION="/var/log/one" VAR_LOCATION="/var/lib/one" + IMAGES_LOCATION="$VAR_LOCATION/images" RUN_LOCATION="/var/run/one" LOCK_LOCATION="/var/lock/one" INCLUDE_LOCATION="/usr/include" @@ -102,7 +103,7 @@ if [ -z "$ROOT" ] ; then if [ "$CLIENT" = "no" ]; then MAKE_DIRS="$BIN_LOCATION $LIB_LOCATION $ETC_LOCATION $VAR_LOCATION \ $INCLUDE_LOCATION $SHARE_LOCATION \ - $LOG_LOCATION $RUN_LOCATION $LOCK_LOCATION" + $LOG_LOCATION $RUN_LOCATION $LOCK_LOCATION $IMAGES_LOCATION" DELETE_DIRS="$LIB_LOCATION $ETC_LOCATION $LOG_LOCATION $VAR_LOCATION \ $RUN_LOCATION $SHARE_DIRS" @@ -121,12 +122,13 @@ else LIB_LOCATION="$ROOT/lib" ETC_LOCATION="$ROOT/etc" VAR_LOCATION="$ROOT/var" + IMAGES_LOCATION="$VAR_LOCATION/images" INCLUDE_LOCATION="$ROOT/include" SHARE_LOCATION="$ROOT/share" if [ "$CLIENT" = "no" ]; then MAKE_DIRS="$BIN_LOCATION $LIB_LOCATION $ETC_LOCATION $VAR_LOCATION \ - $INCLUDE_LOCATION $SHARE_LOCATION" + $INCLUDE_LOCATION $SHARE_LOCATION $IMAGES_LOCATION" DELETE_DIRS="$MAKE_DIRS" @@ -481,7 +483,8 @@ TM_EXAMPLE_SHARE_FILES="share/examples/tm/tm_clone.sh \ HOOK_SHARE_FILES="share/hooks/ebtables-xen \ share/hooks/ebtables-kvm \ - share/hooks/ebtables-flush" + share/hooks/ebtables-flush \ + share/hooks/image.rb" #------------------------------------------------------------------------------- # Common Cloud Files @@ -638,9 +641,16 @@ else done fi +# --- Set correct permissions for Image Repository --- + +IMAGES_LOCATION=$(cd $IMAGES_LOCATION;pwd) +chown 3770 $IMAGES_LOCATION + # --- Substitute variables --- -if [ $INSTALL_ETC="yes" ]; then - HOOK_LOCATION=$(cd $SHARE_LOCATION/hooks;pwd) - sed -i "s%\[ONE_HOOKS\]%$HOOK_LOCATION%" $ETC_LOCATION/oned.conf +if [ "$CLIENT" = "no" -a $INSTALL_ETC="yes" ]; then + HOOKS_LOCATION=$(cd $SHARE_LOCATION/hooks;pwd) + sed -i -e "s%\[HOOKS_LOCATION\]%$HOOKS_LOCATION%" $ETC_LOCATION/oned.conf + sed -i -e "s%\[IMAGES_LOCATION\]%$IMAGES_LOCATION%" $ETC_LOCATION/oned.conf fi + diff --git a/share/etc/oned.conf b/share/etc/oned.conf index ae8ab9a13c..7834e187d4 100644 --- a/share/etc/oned.conf +++ b/share/etc/oned.conf @@ -82,7 +82,7 @@ MAC_PREFIX = "02:00" # vd KVM virtual disk #******************************************************************************* -#IMAGE_REPOSITORY_PATH = +IMAGE_REPOSITORY_PATH = [IMAGES_LOCATION] DEFAULT_IMAGE_TYPE = "OS" DEFAULT_DEVICE_PREFIX = "hd" @@ -266,7 +266,7 @@ HM_MAD = [ VM_HOOK = [ name = "image", on = "SHUTDOWN", - command = "[ONE_HOOKS]/image.rb", + command = "[HOOKS_LOCATION]/image.rb", arguments = "$VMID" ] #------------------------------------------------------------------------------- diff --git a/src/oca/ruby/OpenNebula/Image.rb b/src/oca/ruby/OpenNebula/Image.rb index 94fe628ed0..3d64c49131 100644 --- a/src/oca/ruby/OpenNebula/Image.rb +++ b/src/oca/ruby/OpenNebula/Image.rb @@ -206,6 +206,7 @@ module OpenNebula begin FileUtils.move(path, source) + FileUtils.chmod(0660, source) rescue Exception => e return OpenNebula::Error.new(e.message) end