update
This commit is contained in:
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
action="${1:-}"
|
action="${1:-}"
|
||||||
FOLDER='/opt/idssys/ta-proxmenu'
|
FOLDER='/opt/idssys/ta-proxmenu'
|
||||||
VERS='2026.7.25-54'
|
VERS='2026.7.25-55'
|
||||||
|
|
||||||
noupdate=' '
|
noupdate=' '
|
||||||
|
|
||||||
|
|||||||
@@ -561,6 +561,41 @@ json.dump(data, sys.stdout, separators=(",", ":"))
|
|||||||
'
|
'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TAPM_PULSE_CREATE_PVE_AUTO_REGISTER_TOKEN() {
|
||||||
|
local token_name="$1"
|
||||||
|
local output_variable="$2"
|
||||||
|
local status_variable="$3"
|
||||||
|
local command_output=''
|
||||||
|
local command_status=0
|
||||||
|
|
||||||
|
if command_output="$(
|
||||||
|
pveum user token add pulse-monitor@pve "$token_name" \
|
||||||
|
--privsep 1 --output-format json 2>&1
|
||||||
|
)"; then
|
||||||
|
command_status=0
|
||||||
|
else
|
||||||
|
command_status=$?
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Older pveum versions reject --output-format and require table parsing.
|
||||||
|
if (( command_status != 0 )) &&
|
||||||
|
grep -Eqi \
|
||||||
|
'unknown option|unknown command|no such option|unable to parse option|output-format' \
|
||||||
|
<<<"$command_output"; then
|
||||||
|
if command_output="$(
|
||||||
|
pveum user token add pulse-monitor@pve "$token_name" \
|
||||||
|
--privsep 1 2>&1
|
||||||
|
)"; then
|
||||||
|
command_status=0
|
||||||
|
else
|
||||||
|
command_status=$?
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf -v "$output_variable" '%s' "$command_output"
|
||||||
|
printf -v "$status_variable" '%s' "$command_status"
|
||||||
|
}
|
||||||
|
|
||||||
TAPM_PULSE_REGISTER_CLUSTER() {
|
TAPM_PULSE_REGISTER_CLUSTER() {
|
||||||
local ctid="$1"
|
local ctid="$1"
|
||||||
local container_ip="$2"
|
local container_ip="$2"
|
||||||
@@ -582,6 +617,12 @@ TAPM_PULSE_REGISTER_CLUSTER() {
|
|||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
source "$installer"
|
source "$installer"
|
||||||
IN_CONTAINER=false
|
IN_CONTAINER=false
|
||||||
|
# Pulse v6.1.1's helper shadows the caller's token_output and
|
||||||
|
# token_status variables, discarding a successful pveum result.
|
||||||
|
# Override only that helper so auto_register_pve_node receives them.
|
||||||
|
create_pve_auto_register_token() {
|
||||||
|
TAPM_PULSE_CREATE_PVE_AUTO_REGISTER_TOKEN "$@"
|
||||||
|
}
|
||||||
# Pulse v6.1.1's installer omits backup_perms from its expected
|
# Pulse v6.1.1's installer omits backup_perms from its expected
|
||||||
# artifact URLs even when it requests backupPerms=true. That causes it
|
# artifact URLs even when it requests backupPerms=true. That causes it
|
||||||
# to reject Pulse's otherwise valid response as "missing setup token."
|
# to reject Pulse's otherwise valid response as "missing setup token."
|
||||||
|
|||||||
@@ -92,6 +92,28 @@ assert_failure "Pulse v6.1.1 compatibility rejects missing setup token" \
|
|||||||
TAPM_PULSE_NORMALIZE_V611_SETUP_ARTIFACT \
|
TAPM_PULSE_NORMALIZE_V611_SETUP_ARTIFACT \
|
||||||
'{"type":"pve","host":"https://pve1:8006"}' 'http://10.10.2.30:7655'
|
'{"type":"pve","host":"https://pve1:8006"}' 'http://10.10.2.30:7655'
|
||||||
|
|
||||||
|
test_pve_token_output_assignment() {
|
||||||
|
local token_output=''
|
||||||
|
local token_status=99
|
||||||
|
|
||||||
|
pveum() {
|
||||||
|
printf '%s\n' \
|
||||||
|
'{"full-tokenid":"pulse-monitor@pve!pulse-test","value":"secret-value"}'
|
||||||
|
}
|
||||||
|
TAPM_PULSE_CREATE_PVE_AUTO_REGISTER_TOKEN \
|
||||||
|
'pulse-test' token_output token_status || return 1
|
||||||
|
unset -f pveum
|
||||||
|
|
||||||
|
assert_equal \
|
||||||
|
'{"full-tokenid":"pulse-monitor@pve!pulse-test","value":"secret-value"}' \
|
||||||
|
"$token_output" \
|
||||||
|
"Pulse receives pveum token output"
|
||||||
|
assert_equal 0 "$token_status" "Pulse receives pveum token status"
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_success "Pulse v6.1.1 pveum output-shadowing workaround" \
|
||||||
|
test_pve_token_output_assignment
|
||||||
|
|
||||||
nodes_json='[
|
nodes_json='[
|
||||||
{"node":"pve3","status":"offline"},
|
{"node":"pve3","status":"offline"},
|
||||||
{"node":"pve2","status":"online"},
|
{"node":"pve2","status":"online"},
|
||||||
|
|||||||
Reference in New Issue
Block a user