pub struct SeedAuthority { /* private fields */ }Expand description
A seed member’s authority to admit join candidates.
It owns the cluster’s ClusterId, the operator-provisioned allowlist of
who may join, and the live MembershipCatalog. evaluate_join runs the
full handshake and, on success, mutates the catalog to include the new
member.
Implementations§
Source§impl SeedAuthority
impl SeedAuthority
Sourcepub fn new(
catalog: MembershipCatalog,
allowlist: impl IntoIterator<Item = (NodeIdentity, MemberKind)>,
) -> Self
pub fn new( catalog: MembershipCatalog, allowlist: impl IntoIterator<Item = (NodeIdentity, MemberKind)>, ) -> Self
Build a seed authority over catalog with the given operator
allowlist of identities permitted to join (and the kind each is
permitted to join as). Existing members are implicitly allow-listed.
pub fn cluster_id(&self) -> &ClusterId
pub fn catalog(&self) -> &MembershipCatalog
Sourcepub fn evaluate_join(
&mut self,
request: JoinRequest,
) -> Result<JoinGrant, JoinRejection>
pub fn evaluate_join( &mut self, request: JoinRequest, ) -> Result<JoinGrant, JoinRejection>
Run the join handshake for request. On success the candidate is now an
authorized member of the catalog and the returned JoinGrant carries
the control-plane snapshot to adopt; on failure the catalog is
unchanged and the JoinRejection says which check failed.
Trait Implementations§
Source§impl Clone for SeedAuthority
impl Clone for SeedAuthority
Source§fn clone(&self) -> SeedAuthority
fn clone(&self) -> SeedAuthority
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for SeedAuthority
impl RefUnwindSafe for SeedAuthority
impl Send for SeedAuthority
impl Sync for SeedAuthority
impl Unpin for SeedAuthority
impl UnsafeUnpin for SeedAuthority
impl UnwindSafe for SeedAuthority
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request