mirror of
https://github.com/YunoHost/package_check.git
synced 2024-09-03 20:06:20 +02:00
Few fixes
This commit is contained in:
parent
81b89dc3ce
commit
41f0704d77
3 changed files with 75 additions and 7 deletions
|
@ -132,7 +132,7 @@ _LOAD_SNAPSHOT_OR_INSTALL_APP () {
|
||||||
ynh_lxc_snapshot_load --name=$LXC_NAME --snapname=snap0 \
|
ynh_lxc_snapshot_load --name=$LXC_NAME --snapname=snap0 \
|
||||||
&& _PREINSTALL \
|
&& _PREINSTALL \
|
||||||
&& _INSTALL_APP "path=$check_path" \
|
&& _INSTALL_APP "path=$check_path" \
|
||||||
&& ynh_lxc_pc_snapshot_create --name=LXC_NAME --snapname=$snapname
|
&& ynh_lxc_pc_snapshot_create --name=$LXC_NAME --snapname=$snapname
|
||||||
else
|
else
|
||||||
# Or uses an existing snapshot
|
# Or uses an existing snapshot
|
||||||
log_info "(Reusing existing snapshot $snapname)" \
|
log_info "(Reusing existing snapshot $snapname)" \
|
||||||
|
@ -372,7 +372,7 @@ TEST_INSTALL () {
|
||||||
[ "$install_type" != "private" ] \
|
[ "$install_type" != "private" ] \
|
||||||
&& ! ynh_lxc_snapshot_exists --name=$LXC_NAME --snapname=$snapname \
|
&& ! ynh_lxc_snapshot_exists --name=$LXC_NAME --snapname=$snapname \
|
||||||
&& log_debug "Create a snapshot after app install" \
|
&& log_debug "Create a snapshot after app install" \
|
||||||
&& ynh_lxc_pc_snapshot_create --name=LXC_NAME --snapname=$snapname
|
&& ynh_lxc_pc_snapshot_create --name=$LXC_NAME --snapname=$snapname
|
||||||
|
|
||||||
# Remove and reinstall the application
|
# Remove and reinstall the application
|
||||||
_REMOVE_APP \
|
_REMOVE_APP \
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
source lib/ynh_lxd
|
source lib/ynh_lxd
|
||||||
source lib/ynh_lxd_package_check
|
source lib/ynh_lxd_package_check
|
||||||
source lib/tests.sh
|
source lib/tests.sh
|
||||||
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
readonly complete_log="./Complete-${WORKER_ID}.log"
|
readonly complete_log="./Complete-${WORKER_ID}.log"
|
||||||
|
|
||||||
|
|
77
lib/ynh_lxd
77
lib/ynh_lxd
|
@ -178,6 +178,37 @@ ynh_lxc_run_inside () {
|
||||||
lxc exec $name -- /bin/bash -c "$command"
|
lxc exec $name -- /bin/bash -c "$command"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Check an LXC container can start
|
||||||
|
#
|
||||||
|
# usage: ynh_lxc_check_container_start --name=name
|
||||||
|
# | arg: -n, --name= - name of the LXC
|
||||||
|
#
|
||||||
|
# Requires YunoHost version *.*.* or higher.
|
||||||
|
ynh_lxc_check_container_start () {
|
||||||
|
# Declare an array to define the options of this helper.
|
||||||
|
local legacy_args=n
|
||||||
|
local -A args_array=([n]=name=)
|
||||||
|
local name
|
||||||
|
# Manage arguments with getopts
|
||||||
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
|
ynh_print_info --message="Test du conteneur $name"
|
||||||
|
ynh_lxc_start --name=$name # Démarre le conteneur
|
||||||
|
|
||||||
|
wait_period=0
|
||||||
|
while ! ynh_lxc_is_started --name=$name
|
||||||
|
do
|
||||||
|
wait_period=$(($wait_period+10))
|
||||||
|
if [ $wait_period -gt 20 ];then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
sleep 5
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
ynh_lxc_is_started --name=$name
|
||||||
|
}
|
||||||
|
|
||||||
# Restart a container
|
# Restart a container
|
||||||
#
|
#
|
||||||
# usage: _ynh_lxc_restart_container --name=name
|
# usage: _ynh_lxc_restart_container --name=name
|
||||||
|
@ -293,18 +324,16 @@ ynh_lxc_launch (){
|
||||||
-c security.nesting=true \
|
-c security.nesting=true \
|
||||||
-c security.privileged=true \
|
-c security.privileged=true \
|
||||||
-c limits.memory=80% \
|
-c limits.memory=80% \
|
||||||
-c limits.cpu.allowance=80% \
|
-c limits.cpu.allowance=80% | tee -a /proc/self/fd/3
|
||||||
>>/proc/self/fd/3
|
|
||||||
# Check if we can launch container from a local image
|
# Check if we can launch container from a local image
|
||||||
elif lxc image list $image | grep -q -w $image; then
|
elif lxc image list $image | grep -q -w $image; then
|
||||||
lxc launch $image $name \
|
lxc launch $image $name \
|
||||||
-c security.nesting=true \
|
-c security.nesting=true \
|
||||||
-c security.privileged=true \
|
-c security.privileged=true \
|
||||||
-c limits.memory=80% \
|
-c limits.memory=80% \
|
||||||
-c limits.cpu.allowance=80% \
|
-c limits.cpu.allowance=80% | tee -a /proc/self/fd/3
|
||||||
>>/proc/self/fd/3
|
|
||||||
else
|
else
|
||||||
log_critical "Can't find base image $image, run ./package_check.sh --rebuild"
|
log_critical "Can't find base image $image"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -472,6 +501,44 @@ ynh_lxc_snapshot_load () {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Clone an LXC container
|
||||||
|
#
|
||||||
|
# usage: ynh_lxc_clone --source=source --destination=destination
|
||||||
|
# | arg: -s, --source= - source LXC
|
||||||
|
# | arg: -d, --destination= - destination LXC
|
||||||
|
#
|
||||||
|
# Requires YunoHost version *.*.* or higher.
|
||||||
|
ynh_lxc_clone () {
|
||||||
|
# Declare an array to define the options of this helper.
|
||||||
|
local legacy_args=sd
|
||||||
|
local -A args_array=([s]=source= [d]=destination=)
|
||||||
|
local source
|
||||||
|
local destination
|
||||||
|
# Manage arguments with getopts
|
||||||
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
|
if ynh_lxc_exists --name=$destination
|
||||||
|
then
|
||||||
|
ynh_print_info --message="Deleting LXC container $destination"
|
||||||
|
ynh_secure_remove --file="/var/lib/lxd/snapshots/$destination/snap0.tar.gz"
|
||||||
|
ynh_lxc_reset --name=$destination
|
||||||
|
fi
|
||||||
|
|
||||||
|
ynh_print_info --message="Cloning LXC container from $source to $destination"
|
||||||
|
lxc copy "$source" "$destination"
|
||||||
|
|
||||||
|
ynh_lxc_check_container_start --name=$destination
|
||||||
|
STATUS=$?
|
||||||
|
if [ $STATUS -eq 1 ]; then
|
||||||
|
ynh_print_info --message="LXC container $destination is broken."
|
||||||
|
else
|
||||||
|
ynh_print_info --message=" LXC container $destination is working."
|
||||||
|
ynh_print_info --message= "Creating snapshot of LXC container $destination"
|
||||||
|
ynh_lxc_snapshot_create --name="$destination" --snapname="snap0"
|
||||||
|
fi
|
||||||
|
return $STATUS
|
||||||
|
}
|
||||||
|
|
||||||
# Reset an LXC container
|
# Reset an LXC container
|
||||||
#
|
#
|
||||||
# usage: ynh_lxc_reset --name=name
|
# usage: ynh_lxc_reset --name=name
|
||||||
|
|
Loading…
Add table
Reference in a new issue