buscompose: the assigner may read the controller's lease, to choose where grants are read from (issue 774)
This commit is contained in:
@@ -439,7 +439,7 @@ func TestTheCopiedComposerComposesAsTheControllers(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
announced := map[string]announce.States{ControllerSeat: ControllerAnnouncement("novox")}
|
announced := map[string]announce.States{ControllerSeat: ControllerAnnouncement("novox")}
|
||||||
for reader, want := range map[string]bool{VaultSeat: true, GrantsModule: true, "mesh-delivery-view": false} {
|
for reader, want := range map[string]bool{VaultSeat: true, GrantsModule: true, AssignerModule: true, "mesh-delivery-view": false} {
|
||||||
granted, _ := ReadsAnnouncedBy(reader, []string{ControllerLease}, announced)
|
granted, _ := ReadsAnnouncedBy(reader, []string{ControllerLease}, announced)
|
||||||
if (len(granted) == 1) != want {
|
if (len(granted) == 1) != want {
|
||||||
t.Errorf("%s reads the lease: %v, want %v", reader, granted, want)
|
t.Errorf("%s reads the lease: %v, want %v", reader, granted, want)
|
||||||
|
|||||||
@@ -79,9 +79,13 @@ const VaultBusAccounts = "mesh-vault.bus-accounts"
|
|||||||
|
|
||||||
// NamedReaders are the states only the modules named may read, by `<owner>.<name>`: the grants part's wanted accounts
|
// NamedReaders are the states only the modules named may read, by `<owner>.<name>`: the grants part's wanted accounts
|
||||||
// are read by the vault alone (novox/hq ADR 0561 §2).
|
// are read by the vault alone (novox/hq ADR 0561 §2).
|
||||||
// The controller's lease is read by the two parts that turn on at its write (ADR 0561 §3, §6).
|
// The controller's lease is read by the two parts that turn on at its write (ADR 0561 §3, §6) and by the assigner, which
|
||||||
|
// reads the grants from the grants part from then on (ADR 0547 §4, §5; delivery.GrantSource).
|
||||||
var NamedReaders = map[string][]string{VaultBusAccounts: {GrantsModule}, GrantsAccounts: {VaultSeat},
|
var NamedReaders = map[string][]string{VaultBusAccounts: {GrantsModule}, GrantsAccounts: {VaultSeat},
|
||||||
ControllerLease: {VaultSeat, GrantsModule}}
|
ControllerLease: {VaultSeat, GrantsModule, AssignerModule}}
|
||||||
|
|
||||||
|
// AssignerModule is the assigner, which reads the lease to choose the source of the grants.
|
||||||
|
const AssignerModule = "mesh-delivery-assigner"
|
||||||
|
|
||||||
// ReaderMay says whether module may read the state read (`<owner>.<name>`) by the named readers: always, for a state
|
// ReaderMay says whether module may read the state read (`<owner>.<name>`) by the named readers: always, for a state
|
||||||
// that names none.
|
// that names none.
|
||||||
|
|||||||
Reference in New Issue
Block a user