72 lines
2.3 KiB
Bash
72 lines
2.3 KiB
Bash
#!/bin/bash
|
|
#=================================================
|
|
# GENERIC STARTING
|
|
#=================================================
|
|
# IMPORT GENERIC HELPERS
|
|
#=================================================
|
|
|
|
source _common.sh
|
|
source /usr/share/yunohost/helpers
|
|
|
|
ynh_abort_if_errors
|
|
|
|
#=================================================
|
|
# RETRIEVE ARGUMENTS
|
|
#=================================================
|
|
|
|
final_path=$(ynh_app_setting_get $app final_path)
|
|
node_id=$(ynh_app_setting_get $app node_id)
|
|
virtualisation=$(ynh_app_setting_get $app virtualisation)
|
|
datadir=$(ynh_app_setting_get $app datadir)
|
|
nbd_index=$(ynh_app_setting_get $app nbd_index)
|
|
command="$final_path/garage -c $final_path/garage.toml"
|
|
|
|
get__weight() {
|
|
ynh_app_setting_get --app=$app --key=weight
|
|
}
|
|
|
|
set__weight() {
|
|
if [ "$virtualisation" = "true" ]
|
|
then
|
|
systemctl stop $YNH_APP_INSTANCE_NAME
|
|
old_weight="$ynh_app_setting_get --app=$app --key=weight"
|
|
if [ $old_weight -le $weight }
|
|
then
|
|
$final_path/umount_disk.sh $nbd_index
|
|
qemu-img resize $datadir/$datadir/garage_data.qcow2 $weightG
|
|
qemu-nbd --connect /dev/nbd$nbd_index $datadir/garage.qcow2
|
|
e2fsck -f /dev/nbd$nbd_index
|
|
resize2fs /dev/nbd$nbd_index
|
|
mount /dev/nbd$nbd_index $datadir/data/
|
|
else
|
|
umount /dev/nbd$nbd_index
|
|
e2fsck -f /dev/nbd$nbd_index
|
|
resize2fs /dev/nbd$nbd_index $weightG
|
|
qemu-nbd --disconnect /dev/nbd$nbd_index
|
|
qemu-img resize $datadir/$datadir/garage_data.qcow2 $weightG
|
|
$nbd_index=$(final_path/mount_disk.sh false)
|
|
ynh_app_setting_set --app=$app --key=nbd_index --value=$nbd_index
|
|
fi
|
|
systemctl start $YNH_APP_INSTANCE_NAME
|
|
fi
|
|
$command layout assign $node_id -c $weight 2>/dev/null
|
|
apply_layout "$command"
|
|
ynh_app_setting_set --app=$app --key=weight --value=$weight
|
|
}
|
|
|
|
|
|
get__bootstrap_peers() {
|
|
ynh_app_setting_get --app=$app --key=bootstrap_peers
|
|
}
|
|
|
|
set__bootstrap_peers() {
|
|
garage_connect "$command" "$bootstrap_peers" 2>/dev/null
|
|
apply_layout "$command"
|
|
ynh_app_setting_set --app=$app --key=bootstrap_peers --value=$bootstrap_peers
|
|
}
|
|
|
|
#=================================================
|
|
# GENERIC FINALIZATION
|
|
#=================================================
|
|
ynh_app_config_run $1
|