Improve sensor proxy socket verification
This commit is contained in:
parent
7cfe998fca
commit
e708727725
1 changed files with 44 additions and 18 deletions
|
|
@ -85,6 +85,7 @@ GITHUB_REPO="rcourtman/Pulse"
|
||||||
LATEST_RELEASE_TAG=""
|
LATEST_RELEASE_TAG=""
|
||||||
REQUESTED_VERSION=""
|
REQUESTED_VERSION=""
|
||||||
INSTALLER_CACHE_REASON=""
|
INSTALLER_CACHE_REASON=""
|
||||||
|
DEFER_SOCKET_VERIFICATION=false
|
||||||
|
|
||||||
cleanup_local_authorized_keys() {
|
cleanup_local_authorized_keys() {
|
||||||
local auth_keys_file="/root/.ssh/authorized_keys"
|
local auth_keys_file="/root/.ssh/authorized_keys"
|
||||||
|
|
@ -1347,6 +1348,29 @@ fi
|
||||||
|
|
||||||
print_info "Socket ready at $SOCKET_PATH"
|
print_info "Socket ready at $SOCKET_PATH"
|
||||||
|
|
||||||
|
# If socket verification was deferred because the runtime directory was
|
||||||
|
# missing earlier, test the container mount now that the proxy is running.
|
||||||
|
if [[ "$STANDALONE" == false && "$DEFER_SOCKET_VERIFICATION" = true ]]; then
|
||||||
|
print_info "Validating container socket visibility now that host proxy is running..."
|
||||||
|
if pct exec "$CTID" -- test -S "${MOUNT_TARGET}/pulse-sensor-proxy.sock"; then
|
||||||
|
print_info "✓ Secure socket communication ready"
|
||||||
|
DEFER_SOCKET_VERIFICATION=false
|
||||||
|
[ -n "$LXC_CONFIG_BACKUP" ] && rm -f "$LXC_CONFIG_BACKUP"
|
||||||
|
else
|
||||||
|
print_error "Socket not visible at ${MOUNT_TARGET}/pulse-sensor-proxy.sock"
|
||||||
|
print_error "Bind mount exists but container still cannot access the proxy socket"
|
||||||
|
print_error "This usually indicates the container needs a restart or the mount failed to attach"
|
||||||
|
|
||||||
|
if [ -n "$LXC_CONFIG_BACKUP" ] && [ -f "$LXC_CONFIG_BACKUP" ]; then
|
||||||
|
print_warn "Rolling back container configuration changes..."
|
||||||
|
cp "$LXC_CONFIG_BACKUP" "$LXC_CONFIG"
|
||||||
|
rm -f "$LXC_CONFIG_BACKUP"
|
||||||
|
print_info "Container configuration restored to previous state"
|
||||||
|
fi
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Validate HTTP endpoint if HTTP mode is enabled
|
# Validate HTTP endpoint if HTTP mode is enabled
|
||||||
if [[ "$HTTP_MODE" == true ]]; then
|
if [[ "$HTTP_MODE" == true ]]; then
|
||||||
print_info "Validating HTTP endpoint..."
|
print_info "Validating HTTP endpoint..."
|
||||||
|
|
@ -2049,31 +2073,33 @@ if [[ "$HOTPLUG_FAILED" = true && "$CT_RUNNING" = true ]]; then
|
||||||
print_warn "Please restart container and verify socket manually:"
|
print_warn "Please restart container and verify socket manually:"
|
||||||
print_warn " pct stop $CTID && sleep 2 && pct start $CTID"
|
print_warn " pct stop $CTID && sleep 2 && pct start $CTID"
|
||||||
print_warn " pct exec $CTID -- test -S ${MOUNT_TARGET}/pulse-sensor-proxy.sock && echo 'Socket OK'"
|
print_warn " pct exec $CTID -- test -S ${MOUNT_TARGET}/pulse-sensor-proxy.sock && echo 'Socket OK'"
|
||||||
# Keep backup in this case since we can't verify
|
|
||||||
[ -n "$LXC_CONFIG_BACKUP" ] && rm -f "$LXC_CONFIG_BACKUP"
|
|
||||||
elif [[ "$SKIP_RESTART" = true && "$CT_RUNNING" = false ]]; then
|
elif [[ "$SKIP_RESTART" = true && "$CT_RUNNING" = false ]]; then
|
||||||
print_warn "Socket verification deferred. Start container $CTID and run:"
|
print_warn "Socket verification deferred. Start container $CTID and run:"
|
||||||
print_warn " pct exec $CTID -- test -S ${MOUNT_TARGET}/pulse-sensor-proxy.sock && echo 'Socket OK'"
|
print_warn " pct exec $CTID -- test -S ${MOUNT_TARGET}/pulse-sensor-proxy.sock && echo 'Socket OK'"
|
||||||
[ -n "$LXC_CONFIG_BACKUP" ] && rm -f "$LXC_CONFIG_BACKUP"
|
|
||||||
else
|
else
|
||||||
print_info "Verifying secure communication channel..."
|
if [[ ! -S "$SOCKET_PATH" ]]; then
|
||||||
if pct exec "$CTID" -- test -S "${MOUNT_TARGET}/pulse-sensor-proxy.sock"; then
|
print_warn "Host proxy socket not available yet; deferring container verification until service starts."
|
||||||
print_info "✓ Secure socket communication ready"
|
DEFER_SOCKET_VERIFICATION=true
|
||||||
# Clean up backup since verification succeeded
|
|
||||||
[ -n "$LXC_CONFIG_BACKUP" ] && rm -f "$LXC_CONFIG_BACKUP"
|
|
||||||
else
|
else
|
||||||
print_error "Socket not visible at ${MOUNT_TARGET}/pulse-sensor-proxy.sock"
|
print_info "Verifying secure communication channel..."
|
||||||
print_error "Mount configuration verified but socket not accessible in container"
|
if pct exec "$CTID" -- test -S "${MOUNT_TARGET}/pulse-sensor-proxy.sock"; then
|
||||||
print_error "This indicates a mount or restart issue"
|
print_info "✓ Secure socket communication ready"
|
||||||
|
# Clean up backup since verification succeeded
|
||||||
|
[ -n "$LXC_CONFIG_BACKUP" ] && rm -f "$LXC_CONFIG_BACKUP"
|
||||||
|
else
|
||||||
|
print_error "Socket not visible at ${MOUNT_TARGET}/pulse-sensor-proxy.sock"
|
||||||
|
print_error "Mount configuration verified but socket not accessible in container"
|
||||||
|
print_error "This indicates a mount or restart issue"
|
||||||
|
|
||||||
# Rollback container config changes
|
# Rollback container config changes
|
||||||
if [ -n "$LXC_CONFIG_BACKUP" ] && [ -f "$LXC_CONFIG_BACKUP" ]; then
|
if [ -n "$LXC_CONFIG_BACKUP" ] && [ -f "$LXC_CONFIG_BACKUP" ]; then
|
||||||
print_warn "Rolling back container configuration changes..."
|
print_warn "Rolling back container configuration changes..."
|
||||||
cp "$LXC_CONFIG_BACKUP" "$LXC_CONFIG"
|
cp "$LXC_CONFIG_BACKUP" "$LXC_CONFIG"
|
||||||
rm -f "$LXC_CONFIG_BACKUP"
|
rm -f "$LXC_CONFIG_BACKUP"
|
||||||
print_info "Container configuration restored to previous state"
|
print_info "Container configuration restored to previous state"
|
||||||
|
fi
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue