feat(controller-status): allow ctrlstatus through ha_dispatch_gate in all roles incl no-quorum (task 2.2)
This commit is contained in:
parent
a6e03d87ab
commit
e56409cbd4
3 changed files with 89 additions and 3 deletions
|
|
@ -2088,6 +2088,10 @@ int ha_dispatch_gate(ha_state_t *ha, int opcode)
|
|||
/* Read-only queries */
|
||||
case OPCode_get:
|
||||
case OPCode_probeConfigTag:
|
||||
/* Read-only controller status (controller-status 7.1, 7.2):
|
||||
* answers the local identity/health view even without quorum —
|
||||
* precisely when an operator most wants it. */
|
||||
case OPCode_ctrlstatus:
|
||||
/* Fact-bearing ops — reports of events that already happened
|
||||
* (worker job transitions/rusage, scheduler pend reasons).
|
||||
* Rejecting them loses the fact forever: the reporter never
|
||||
|
|
@ -2118,7 +2122,10 @@ int ha_dispatch_gate(ha_state_t *ha, int opcode)
|
|||
opcode == OPCode_nop ||
|
||||
opcode == OPCode_replConfigPush ||
|
||||
opcode == OPCode_walCatchupEntry ||
|
||||
opcode == OPCode_snapshotTransfer)
|
||||
opcode == OPCode_snapshotTransfer ||
|
||||
/* Read-only controller status — answerable in every role
|
||||
* (controller-status 7.1, 7.2). */
|
||||
opcode == OPCode_ctrlstatus)
|
||||
return 0;
|
||||
return -XCE_ERR_NOT_READY;
|
||||
|
||||
|
|
@ -2136,7 +2143,10 @@ int ha_dispatch_gate(ha_state_t *ha, int opcode)
|
|||
opcode == OPCode_nop ||
|
||||
opcode == OPCode_replConfigPush ||
|
||||
opcode == OPCode_walCatchupEntry ||
|
||||
opcode == OPCode_snapshotTransfer)
|
||||
opcode == OPCode_snapshotTransfer ||
|
||||
/* Read-only controller status — answerable in every role
|
||||
* (controller-status 7.1, 7.2). */
|
||||
opcode == OPCode_ctrlstatus)
|
||||
return 0;
|
||||
return -XCE_ERR_NOT_READY;
|
||||
|
||||
|
|
@ -2164,6 +2174,9 @@ int ha_dispatch_gate(ha_state_t *ha, int opcode)
|
|||
case OPCode_upgradeConfigAck:
|
||||
case OPCode_snapshotTransfer:
|
||||
case OPCode_walCatchupEntry:
|
||||
/* Read-only controller status — a standby answers with its local
|
||||
* view (it reports the primary it knows) (controller-status 7.1, 7.2). */
|
||||
case OPCode_ctrlstatus:
|
||||
return 0;
|
||||
default:
|
||||
return -XCE_ERR_STANDBY;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue