pub struct KeyManager<T, D>where
D: Delegate<Id = T::Id, Address = <T::Resolver as AddressResolver>::ResolvedAddress>,
T: Transport,{ /* private fields */ }encryption only.Expand description
KeyManager encapsulates all functionality within Serf for handling
encryption keyring changes across a cluster.
Implementations§
Source§impl<T, D> KeyManager<T, D>where
D: Delegate<Id = T::Id, Address = <T::Resolver as AddressResolver>::ResolvedAddress>,
T: Transport,
impl<T, D> KeyManager<T, D>where
D: Delegate<Id = T::Id, Address = <T::Resolver as AddressResolver>::ResolvedAddress>,
T: Transport,
Sourcepub async fn install_key(
&self,
key: SecretKey,
opts: Option<KeyRequestOptions>,
) -> Result<KeyResponse<T::Id>, Error<T, D>>
pub async fn install_key( &self, key: SecretKey, opts: Option<KeyRequestOptions>, ) -> Result<KeyResponse<T::Id>, Error<T, D>>
Handles broadcasting a query to all members and gathering responses from each of them, returning a list of messages from each node and any applicable error conditions.
Sourcepub async fn use_key(
&self,
key: SecretKey,
opts: Option<KeyRequestOptions>,
) -> Result<KeyResponse<T::Id>, Error<T, D>>
pub async fn use_key( &self, key: SecretKey, opts: Option<KeyRequestOptions>, ) -> Result<KeyResponse<T::Id>, Error<T, D>>
Handles broadcasting a primary key change to all members in the cluster, and gathering any response messages. If successful, there should be an empty KeyResponse returned.
Sourcepub async fn remove_key(
&self,
key: SecretKey,
opts: Option<KeyRequestOptions>,
) -> Result<KeyResponse<T::Id>, Error<T, D>>
pub async fn remove_key( &self, key: SecretKey, opts: Option<KeyRequestOptions>, ) -> Result<KeyResponse<T::Id>, Error<T, D>>
Handles broadcasting a key to the cluster for removal. Each member will receive this event, and if they have the key in their keyring, remove it. If any errors are encountered, RemoveKey will collect and relay them.
Sourcepub async fn list_keys(&self) -> Result<KeyResponse<T::Id>, Error<T, D>>
pub async fn list_keys(&self) -> Result<KeyResponse<T::Id>, Error<T, D>>
Used to collect installed keys from members in a Serf cluster and return an aggregated list of all installed keys. This is useful to operators to ensure that there are no lingering keys installed on any agents. Since having multiple keys installed can cause performance penalties in some cases, it’s important to verify this information and remove unneeded keys.
Auto Trait Implementations§
impl<T, D> !Freeze for KeyManager<T, D>
impl<T, D> !RefUnwindSafe for KeyManager<T, D>
impl<T, D> Send for KeyManager<T, D>
impl<T, D> Sync for KeyManager<T, D>
impl<T, D> Unpin for KeyManager<T, D>
impl<T, D> !UnwindSafe for KeyManager<T, D>
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
Source§impl<K, Q> Comparable<Q> for K
impl<K, Q> Comparable<Q> for K
Source§impl<K, Q> Equivalent<Q> for K
impl<K, Q> Equivalent<Q> for K
Source§fn equivalent(&self, key: &Q) -> bool
fn equivalent(&self, key: &Q) -> bool
key and return true if they are equal.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>
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>
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.