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 \
|
||||
&& _PREINSTALL \
|
||||
&& _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
|
||||
# Or uses an existing snapshot
|
||||
log_info "(Reusing existing snapshot $snapname)" \
|
||||
|
@ -372,7 +372,7 @@ TEST_INSTALL () {
|
|||
[ "$install_type" != "private" ] \
|
||||
&& ! ynh_lxc_snapshot_exists --name=$LXC_NAME --snapname=$snapname \
|
||||
&& 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_APP \
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
source lib/ynh_lxd
|
||||
source lib/ynh_lxd_package_check
|
||||
source lib/tests.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
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"
|
||||
}
|
||||
|
||||
# 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
|
||||
#
|
||||
# usage: _ynh_lxc_restart_container --name=name
|
||||
|
@ -293,18 +324,16 @@ ynh_lxc_launch (){
|
|||
-c security.nesting=true \
|
||||
-c security.privileged=true \
|
||||
-c limits.memory=80% \
|
||||
-c limits.cpu.allowance=80% \
|
||||
>>/proc/self/fd/3
|
||||
-c limits.cpu.allowance=80% | tee -a /proc/self/fd/3
|
||||
# Check if we can launch container from a local image
|
||||
elif lxc image list $image | grep -q -w $image; then
|
||||
lxc launch $image $name \
|
||||
-c security.nesting=true \
|
||||
-c security.privileged=true \
|
||||
-c limits.memory=80% \
|
||||
-c limits.cpu.allowance=80% \
|
||||
>>/proc/self/fd/3
|
||||
-c limits.cpu.allowance=80% | tee -a /proc/self/fd/3
|
||||
else
|
||||
log_critical "Can't find base image $image, run ./package_check.sh --rebuild"
|
||||
log_critical "Can't find base image $image"
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -472,6 +501,44 @@ ynh_lxc_snapshot_load () {
|
|||
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
|
||||
#
|
||||
# usage: ynh_lxc_reset --name=name
|
||||
|
|
Loading…
Add table
Reference in a new issue