Native alarm ack: surface Galaxy ack-credential refusal as a synchronous OPC UA status #760
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to #749.
#749 makes the Galaxy driver refuse a native alarm acknowledge when neither the session's API key has a Galaxy ack identity nor the driver has an
AlarmAckfallback account (DriverOperationRefusedException; nothing is sent to mxaccessgw, never an empty operator_user). The refusal is excluded from the resilience breaker and logged byDriverInstanceActorwith the fix.Gap: the native-ack path is fire-and-forget after the Part 9
Acknowledgemethod returns (OtOpcUaNodeManager.HandleNativeAlarmAck->NativeAlarmAckRouter->DriverHostActor->DriverInstanceActor), so the OPC UA call still returnsGoodand the local condition shows Acknowledged while Galaxy was never acked. The same is true of any async gateway rejection (wrong password -> non-zero hresult).Options:
BadUserAccessDeniedwith a reason when neither applies. Racy against just-made changes, but covers the static misconfiguration case.DriverInstanceActorreports a refused/failed ack back toDriverHostActor, which un-marks the projector and re-reports the condition Unacknowledged (mirrors write-outcome self-correction). Covers async gateway failures too, but the client still seesGoodon the call.Recommendation: 2 (covers every failure class), optionally plus 1 for a clear status on the common misconfiguration.