Drop old code that tested the old configpanel/actions mechanism

This commit is contained in:
Alexandre Aubin 2022-12-19 19:17:06 +01:00
parent 711cfe5141
commit 63d32001ea
2 changed files with 0 additions and 298 deletions

View file

@ -685,291 +685,3 @@ TEST_CHANGE_URL () {
return 0
}
ACTIONS_CONFIG_PANEL () {
test_type=$1
# Define a function to split a file in multiple parts. Used for actions and config-panel toml
splitterAA()
{
local bound="$1"
local file="$2"
# If $2 is a real file
if [ -e "$file" ]
then
# Replace name of the file by its content
file="$(cat "$file")"
fi
local file_lenght=$(echo "$file" | wc --lines | awk '{print $1}')
bounds=($(echo "$file" | grep --line-number --extended-regexp "$bound" | cut -d':' -f1))
# Go for each line number (boundary) into the array
for line_number in $(seq 0 $(( ${#bounds[@]} -1 )))
do
# The first bound is the next line number in the array
# That the low bound on which we cut
first_bound=$(( ${bounds[$line_number+1]} - 1 ))
# If there's no next cell in the array, we got -1, in such case, use the lenght of the file.
# We cut at the end of the file
test $first_bound -lt 0 && first_bound=$file_lenght
# The second bound is the current line number in the array minus the next one.
# The the upper bound in the file.
second_bound=$(( ${bounds[$line_number]} - $first_bound - 1 ))
# Cut the file a first time from the beginning to the first bound
# And a second time from the end, back to the second bound.
parts[line_number]="$(echo "$file" | head --lines=$first_bound \
| tail --lines=$second_bound)"
done
}
if [ "$test_type" == "actions" ]
then
start_test "Actions"
toml_file="$package_path/actions.toml"
if [ ! -e "$toml_file" ]
then
log_error "No actions.toml found!"
return 1
fi
elif [ "$test_type" == "config_panel" ]
then
start_test "Config-panel"
toml_file="$package_path/config_panel.toml"
if [ ! -e "$toml_file" ]
then
log_error "No config_panel.toml found!"
return 1
fi
fi
# Check if an install have previously work
at_least_one_install_succeeded || return 1
# Install the application in a LXC container
log_small_title "Preliminary install..."
local check_path="$(default_install_path)"
_LOAD_SNAPSHOT_OR_INSTALL_APP "$check_path"
local main_result=0
# List first, then execute
local ret=0
local i=0
for i in $(seq 1 2)
do
# Do a test if the installation succeed
if [ $ret -ne 0 ]
then
log_error "The previous test has failed..."
continue
fi
if [ $i -eq 1 ]
then
if [ "$test_type" == "actions" ]
then
log_info "> List the available actions..."
# List the actions
_RUN_YUNOHOST_CMD "app action list $app_id"
local ret=$?
[ $ret -eq 0 ] || main_result=1
break_before_continue
elif [ "$test_type" == "config_panel" ]
then
log_info "> Show the config panel..."
# Show the config-panel
_RUN_YUNOHOST_CMD "app config show-panel $app_id"
local ret=$?
[ $ret -eq 0 ] || main_result=1
break_before_continue
fi
elif [ $i -eq 2 ]
then
local parts
if [ "$test_type" == "actions" ]
then
log_info "> Execute the actions..."
# Split the actions.toml file to separate each actions
splitterAA "^[[:blank:]]*\[[^.]*\]" "$toml_file"
elif [ "$test_type" == "config_panel" ]
then
log_info "> Apply configurations..."
# Split the config_panel.toml file to separate each configurations
splitterAA "^[[:blank:]]*\[.*\]" "$toml_file"
fi
# Read each part, each action, one by one
for part in $(seq 0 $(( ${#parts[@]} -1 )))
do
local action_config_argument_name=""
local action_config_argument_type=""
local action_config_argument_default=""
local actions_config_arguments_specifics=""
local nb_actions_config_arguments_specifics=1
# Ignore part of the config_panel which are only titles
if [ "$test_type" == "config_panel" ]
then
# A real config_panel part should have a `ask = ` line. Ignore the part if not.
if ! echo "${parts[$part]}" | grep --quiet --extended-regexp "^[[:blank:]]*ask ="
then
continue
fi
# Get the name of the config. ask = "Config ?"
local action_config_name="$(echo "${parts[$part]}" | grep "ask *= *" | sed 's/^.* = \"\(.*\)\"/\1/')"
# Get the config argument name "YNH_CONFIG_part1_part2.part3.partx"
local action_config_argument_name="$(echo "${parts[$part]}" | grep "^[[:blank:]]*\[.*\]$")"
# Remove []
action_config_argument_name="${action_config_argument_name//[\[\]]/}"
# And remove spaces
action_config_argument_name="${action_config_argument_name// /}"
elif [ "$test_type" == "actions" ]
then
# Get the name of the action. name = "Name of the action"
local action_config_name="$(echo "${parts[$part]}" | grep "name" | sed 's/^.* = \"\(.*\)\"/\1/')"
# Get the action. [action]
local action_config_action="$(echo "${parts[$part]}" | grep "^\[.*\]$" | sed 's/\[\(.*\)\]/\1/')"
fi
# Check if there's any [action.arguments]
# config_panel always have arguments.
if echo "${parts[$part]}" | grep --quiet "$action_config_action\.arguments" || [ "$test_type" == "config_panel" ]
then local action_config_has_arguments=1
else local action_config_has_arguments=0
fi
# If there's arguments for this action.
if [ $action_config_has_arguments -eq 1 ]
then
if [ "$test_type" == "actions" ]
then
# Get the argument [action.arguments.name_of_the_argument]
action_config_argument_name="$(echo "${parts[$part]}" | grep "$action_config_action\.arguments\." | sed 's/.*\.\(.*\)]/\1/')"
fi
# Get the type of the argument. type = "type"
action_config_argument_type="$(echo "${parts[$part]}" | grep "type" | sed 's/^.* = \"\(.*\)\"/\1/')"
# Get the default value of this argument. default = true
action_config_argument_default="$(echo "${parts[$part]}" | grep "default" | sed 's/^.* = \(.*\)/\1/')"
# Do not use true or false, use 1/0 instead
if [ "$action_config_argument_default" == "true" ] && [ "$action_config_argument_type" == "boolean" ]; then
action_config_argument_default=1
elif [ "$action_config_argument_default" == "false" ] && [ "$action_config_argument_type" == "boolean" ]; then
action_config_argument_default=0
fi
if [ "$test_type" == "config_panel" ]
then
check_process_arguments=""
while read line
do
# Remove all double quotes
add_arg="${line//\"/}"
# Then add this argument and follow it by :
check_process_arguments="${check_process_arguments}${add_arg}:"
done < <(jq -r '.extra.configpanel' $current_test_infos)
elif [ "$test_type" == "actions" ]
then
local check_process_arguments=""
while read line
do
# Remove all double quotes
add_arg="${line//\"/}"
# Then add this argument and follow it by :
check_process_arguments="${check_process_arguments}${add_arg}:"
done < <(jq -r '.extra.actions' $current_test_infos)
fi
# Look for arguments into the check_process
if echo "$check_process_arguments" | grep --quiet "$action_config_argument_name"
then
# If there's arguments for this actions into the check_process
# Isolate the values
actions_config_arguments_specifics="$(echo "$check_process_arguments" | sed "s/.*$action_config_argument_name=\(.*\)/\1/")"
# And remove values of the following action
actions_config_arguments_specifics="${actions_config_arguments_specifics%%\:*}"
nb_actions_config_arguments_specifics=$(( $(echo "$actions_config_arguments_specifics" | tr --complement --delete "|" | wc --chars) + 1 ))
fi
if [ "$test_type" == "config_panel" ]
then
# Finish to format the name
# Remove . by _
action_config_argument_name="${action_config_argument_name//./_}"
# Move all characters to uppercase
action_config_argument_name="${action_config_argument_name^^}"
# Add YNH_CONFIG_
action_config_argument_name="YNH_CONFIG_$action_config_argument_name"
fi
fi
# Loop on the number of values into the check_process.
# Or loop once for the default value
for j in $(seq 1 $nb_actions_config_arguments_specifics)
do
local action_config_argument_built=""
if [ $action_config_has_arguments -eq 1 ]
then
# If there's values into the check_process
if [ -n "$actions_config_arguments_specifics" ]
then
# Build the argument from a value from the check_process
local action_config_actual_argument="$(echo "$actions_config_arguments_specifics" | cut -d'|' -f $j)"
action_config_argument_built="--args \"$action_config_argument_name=$action_config_actual_argument\""
elif [ -n "$action_config_argument_default" ]
then
# Build the argument from the default value
local action_config_actual_argument="$action_config_argument_default"
action_config_argument_built="--args \"$action_config_argument_name=$action_config_actual_argument\""
else
log_warning "> No argument into the check_process to use or default argument for \"$action_config_name\"..."
action_config_actual_argument=""
fi
if [ "$test_type" == "config_panel" ]
then
log_info "> Apply the configuration for \"$action_config_name\" with the argument \"$action_config_actual_argument\"..."
elif [ "$test_type" == "actions" ]
then
log_info "> Execute the action \"$action_config_name\" with the argument \"$action_config_actual_argument\"..."
fi
else
log_info "> Execute the action \"$action_config_name\"..."
fi
if [ "$test_type" == "config_panel" ]
then
# Aply a configuration
_RUN_YUNOHOST_CMD "app config apply $app_id $action_config_action $action_config_argument_built"
ret=$?
elif [ "$test_type" == "actions" ]
then
# Execute an action
_RUN_YUNOHOST_CMD "app action run $app_id $action_config_action $action_config_argument_built"
ret=$?
fi
[ $ret -eq 0 ] || main_result=1
break_before_continue
done
done
fi
done
return $main_result
}

View file

@ -81,8 +81,6 @@ parse_check_process() {
local install_args=$( extract_check_process_section "^; Manifest" "^; " $test_serie_rawconf | sed 's/\s*(.*)$//g' | tr -d '"' | tr '\n' '&')
local preinstall_template=$(extract_check_process_section "^; pre-install" "^; " $test_serie_rawconf)
local preupgrade_template=$(extract_check_process_section "^; pre-upgrade" "^; " $test_serie_rawconf)
local action_infos=$( extract_check_process_section "^; Actions" "^; " $test_serie_rawconf)
local configpanel_infos=$( extract_check_process_section "^; Config_panel" "^; " $test_serie_rawconf)
# Add (empty) special args if they ain't provided in check_process
echo "$install_args" | tr '&' '\n' | grep -q "^domain=" ||install_args+="domain=&"
@ -118,12 +116,6 @@ parse_check_process() {
local upgrade_name="$test_arg"
fi
extra="$(jq -n --arg upgrade_name "$upgrade_name" '{ $upgrade_name }')"
elif [[ "$test_type" == "ACTIONS_CONFIG_PANEL" ]] && [[ "$test_arg" == "actions" ]]
then
extra="$(jq -n --arg actions "$action_infos" '{ $actions }')"
elif [[ "$test_type" == "ACTIONS_CONFIG_PANEL" ]] && [[ "$test_arg" == "config_panel" ]]
then
extra="$(jq -n --arg configpanel "$configpanel_infos" '{ $configpanel }')"
fi
jq -n \
@ -158,8 +150,6 @@ parse_check_process() {
# "Advanced" features
is_test_enabled change_url && add_test "TEST_CHANGE_URL"
is_test_enabled actions && add_test "ACTIONS_CONFIG_PANEL" "actions"
is_test_enabled config_panel && add_test "ACTIONS_CONFIG_PANEL" "config_panel"
# Port already used ... do we really need this ...