diff --git a/conf/mount_disk.sh b/conf/mount_disk.sh index c72071d..dd14c41 100755 --- a/conf/mount_disk.sh +++ b/conf/mount_disk.sh @@ -8,7 +8,7 @@ then do i=$(( i + 1 )) done - echo $i + echo $i > $datadir/nbd_index modprobe nbd max_part=$(( i + 1 )) qemu-nbd --connect /dev/nbd$i $datadir/garage_data.qcow2 if [[ "$format" = "true" ]] diff --git a/conf/systemd.service b/conf/systemd.service index c6a7b82..b3f3e89 100644 --- a/conf/systemd.service +++ b/conf/systemd.service @@ -8,7 +8,7 @@ User=__APP__ Environment='RUST_LOG=garage=info' 'VIRTUALISATION=__VIRTUALISATION__' 'RUST_BACKTRACE=1' ExecStartPre=+__FINALPATH__/mount_disk.sh ExecStart=__FINALPATH__/garage -c __FINALPATH__/garage.toml server -ExecStopPost=+__FINALPATH__/umount_disk.sh __NBD_INDEX__ +ExecStopPost=+__FINALPATH__/umount_disk.sh WorkingDirectory=__FINALPATH__/ StandardOutput=append:/var/log/__APP__/__APP__.log StandardError=inherit diff --git a/conf/umount_disk.sh b/conf/umount_disk.sh index 7cc5880..c5a69ce 100755 --- a/conf/umount_disk.sh +++ b/conf/umount_disk.sh @@ -1,7 +1,8 @@ #!/bin/bash if [ "$VIRTUALISATION" = "true" ] then - nbd=$1 + datadir=__DATADIR__ + nbd=$(cat $datadir/nbd_index) umount /dev/nbd$nbd qemu-nbd --disconnect /dev/nbd$nbd fi diff --git a/scripts/install b/scripts/install index 88b9fbb..b8df9e6 100755 --- a/scripts/install +++ b/scripts/install @@ -130,8 +130,6 @@ ynh_app_setting_set --app=$app --key=port --value=$port port_api=$(ynh_find_port --port=5000) ynh_app_setting_set --app=$app --key=port_api --value=$port_api -nbd_index=127 - # Optional: Expose this port publicly # (N.B.: you only need to do this if the app actually needs to expose the port publicly. @@ -273,8 +271,7 @@ if [ "$virtualisation" = "true" ] then # to be sure to not exceed size limit, i use a virtual disk with a fix size to have a max limit size. qemu-img create -f qcow2 $datadir/garage_data.qcow2 "$weight"G - nbd_index=$($final_path/mount_disk.sh true) - ynh_app_setting_set --app=$app --key=nbd_index --value=$nbd_index + $final_path/mount_disk.sh true fi # FIXME: this should be managed by the core in the future @@ -289,7 +286,7 @@ chown -R $app:$app "$datadir" if [ "$virtualisation" = "true" ] then - $final_path/umount_disk.sh $nbd_index + $final_path/umount_disk.sh fi #================================================= diff --git a/scripts/remove b/scripts/remove index 83d917e..4058727 100755 --- a/scripts/remove +++ b/scripts/remove @@ -28,7 +28,6 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path) virtualisation=$(ynh_app_setting_get --app=$app --key=virtualisation) if [ "$virtualisation" = "true" ] then - nbd_index=$(ynh_app_setting_get --app=$app --key=nbd_index) export VIRTUALISTATION=true fi #================================================= @@ -81,7 +80,7 @@ then ynh_script_progression --message="umount virtual disk..." --weight=1 # Remove the app directory securely - $final_path/umount_disk.sh $nbd_index + $final_path/umount_disk.sh fi #================================================= # REMOVE APP MAIN DIR diff --git a/scripts/restore b/scripts/restore index e199ed4..eea7182 100755 --- a/scripts/restore +++ b/scripts/restore @@ -83,12 +83,11 @@ then ynh_install_app_dependencies $pkg_dependencies_virtualisation # to be sure to not exceed size limit, i use a virtual disk with a fix size to have a max limit size. qemu-img create -f qcow2 $datadir/garage_data.qcow2 "$weight"G - nbd_index=$($final_path/mount_disk.sh "$datadir" true) - ynh_app_setting_set --app=$app --key=nbd_index --value=$nbd_index + $final_path/mount_disk.sh true fi -# FIXME: this should be managed by the core in the future +# # FIXME: this should be managed by the core in the future # Here, as a packager, you may have to tweak the ownerhsip/permissions # such that the appropriate users (e.g. maybe www-data) can access # files in some cases.