made deboco more generic by adding the python-path option
this allowed me to successfully install debops controller on mazinger.ipr too in addition to graffy-ws2 work related to https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=2713
This commit is contained in:
parent
bcf8310c59
commit
9def80af12
|
@ -95,6 +95,32 @@ replace_in_file()
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
is_version_greater_than()
|
||||||
|
{
|
||||||
|
|
||||||
|
first_value="${1}"
|
||||||
|
value_to_compare="${2}"
|
||||||
|
|
||||||
|
## Return False by default
|
||||||
|
return_is_version_greater_than="1"
|
||||||
|
|
||||||
|
log 'debug' "is_version_greater_than - Is first value (${first_value}) greater than the second value (${value_to_compare})."
|
||||||
|
|
||||||
|
if printf '%s\n' "${first_value}" "${value_to_compare}" | sort --check=quiet --version-sort; then
|
||||||
|
log 'debug' "${debug_prefix}is_version_greater_than - ${first_value} <= ${value_to_compare} ."
|
||||||
|
return_is_version_greater_than="1"
|
||||||
|
else
|
||||||
|
log 'debug' "${debug_prefix}is_version_greater_than - ${first_value} > ${value_to_compare} ."
|
||||||
|
return_is_version_greater_than="0"
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset first_value
|
||||||
|
unset value_to_compare
|
||||||
|
|
||||||
|
return "${return_is_version_greater_than}"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
controller__get_local_repos_path()
|
controller__get_local_repos_path()
|
||||||
{
|
{
|
||||||
local debops_controller_path="$1"
|
local debops_controller_path="$1"
|
||||||
|
@ -178,9 +204,18 @@ deboco__init()
|
||||||
if [ "$bug_3715_is_fixed" = 'false' ]
|
if [ "$bug_3715_is_fixed" = 'false' ]
|
||||||
then
|
then
|
||||||
# make sure that the python version is at least 3.10 so that ansible>=2.15 is installed (as debops 3.1 requires ansible>=2.15)
|
# make sure that the python version is at least 3.10 so that ansible>=2.15 is installed (as debops 3.1 requires ansible>=2.15)
|
||||||
|
local python_version=$(${PYTHON_PATH} --version | cut --delimiter=" " --fields=2 --)
|
||||||
|
log 'debug' "python_version=$python_version"
|
||||||
|
|
||||||
|
if is_version_greater_than "3.10" "${python_version}"
|
||||||
|
then
|
||||||
|
log 'error' "debops only works with python version 3.10 or more, and your version of python is $python_version"
|
||||||
|
return $RETURNCODE_ERROR
|
||||||
|
fi
|
||||||
|
|
||||||
replace_in_file "$debops_update_script_path" \
|
replace_in_file "$debops_update_script_path" \
|
||||||
'virtualenv --quiet -- ' \
|
'virtualenv --quiet -- ' \
|
||||||
'/usr/bin/python3.10 -m venv '
|
"${PYTHON_PATH} -m venv "
|
||||||
if [ $? != "$RETURNCODE_SUCCESS" ]
|
if [ $? != "$RETURNCODE_SUCCESS" ]
|
||||||
then
|
then
|
||||||
return $RETURNCODE_ERROR
|
return $RETURNCODE_ERROR
|
||||||
|
@ -313,9 +348,13 @@ deboco_print_usage()
|
||||||
echo "$0 performs a debops controller operation"
|
echo "$0 performs a debops controller operation"
|
||||||
echo
|
echo
|
||||||
echo "usage:"
|
echo "usage:"
|
||||||
echo " $0 <command>"
|
echo " $0 [options] <command>"
|
||||||
echo
|
echo
|
||||||
echo "where:"
|
echo "where:"
|
||||||
|
echo " [options] is a set of:"
|
||||||
|
echo " --python-path <python-path>"
|
||||||
|
echo " specifies the python executable to use (must be python 3.10 or above). Default is $DEFAULT_PYTHON_PATH"
|
||||||
|
echo
|
||||||
echo " <command> is one of:"
|
echo " <command> is one of:"
|
||||||
echo " init <debobs-controller-path>"
|
echo " init <debobs-controller-path>"
|
||||||
echo " creates a debops controller in <debobs-controller-path>"
|
echo " creates a debops controller in <debobs-controller-path>"
|
||||||
|
@ -332,21 +371,31 @@ deboco_print_usage()
|
||||||
echo " configure_machine <debobs-controller-path> <machine-fqdn>"
|
echo " configure_machine <debobs-controller-path> <machine-fqdn>"
|
||||||
echo " configures the machine <machine-fqdn> using the debops controller in <debobs-controller-path>". Equivivalent to a init_machine followed by update_machine
|
echo " configures the machine <machine-fqdn> using the debops controller in <debobs-controller-path>". Equivivalent to a init_machine followed by update_machine
|
||||||
echo
|
echo
|
||||||
|
echo "example:"
|
||||||
|
echo " deboco --python-path /usr/bin/python3.10 init ~/work/debops/constrollers/alambix"
|
||||||
}
|
}
|
||||||
|
|
||||||
deboco()
|
deboco()
|
||||||
{
|
{
|
||||||
local command_name="$1"
|
PYTHON_PATH="$DEFAULT_PYTHON_PATH"
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
local arg="$1"
|
||||||
shift
|
shift
|
||||||
if type "deboco__${command_name}" >/dev/null 2>&1
|
if [ "$arg" = '--python-path' ]
|
||||||
then
|
then
|
||||||
"deboco__${command_name}" "$@"
|
PYTHON_PATH="$1"
|
||||||
|
shift
|
||||||
|
elif type "deboco__${arg}" >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
"deboco__${arg}" "$@"
|
||||||
return $?
|
return $?
|
||||||
else
|
else
|
||||||
log 'error' "unknown command: ${command_name}"
|
log 'error' "unhandled argument: ${arg}"
|
||||||
deboco_print_usage
|
deboco_print_usage
|
||||||
return "$RETURNCODE_ERROR"
|
return "$RETURNCODE_ERROR"
|
||||||
fi
|
fi
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue