Struct fluvio::FluvioAdmin

source ·
pub struct FluvioAdmin { /* private fields */ }
Expand description

An interface for managing a Fluvio cluster

Most applications will not require administrator functionality. The FluvioAdmin interface is used to create, edit, and manage Topics and other operational items. Think of the difference between regular clients of a Database and its administrators. Regular clients may be applications which are reading and writing data to and from tables that exist in the database. Database administrators would be the ones actually creating, editing, or deleting tables. The same thing goes for Fluvio administrators.

If you are writing an application whose purpose is to manage a Fluvio cluster for you, you can gain access to the FluvioAdmin client via the regular Fluvio client, or through the connect or connect_with_config functions.

Example

Note that this may fail if you are not authorized as a Fluvio administrator for the cluster you are connected to.

let admin = fluvio.admin().await;

Implementations§

source§

impl FluvioAdmin

source

pub async fn connect() -> Result<Self>

Creates a new admin connection using the current profile from ~/.fluvio/config

This will attempt to read a Fluvio cluster configuration from your ~/.fluvio/config file, or create one with default settings if you don’t have one. If you want to specify a configuration, see connect_with_config instead.

The admin interface requires you to have administrator privileges on the cluster which you are connecting to. If you don’t have the appropriate privileges, this connection will fail.

Example
let admin = FluvioAdmin::connect().await?;
source

pub async fn connect_with_config(config: &FluvioConfig) -> Result<Self>

Creates a new admin connection using custom configurations

The admin interface requires you to have administrator privileges on the cluster which you are connecting to. If you don’t have the appropriate privileges, this connection will fail.

Example
use fluvio::config::ConfigFile;
let config_file = ConfigFile::load_default_or_new()?;
let fluvio_config = config_file.config().current_cluster().unwrap();
let admin = FluvioAdmin::connect_with_config(fluvio_config).await?;
source

pub async fn create<S>( &self, name: String, dry_run: bool, spec: S ) -> Result<()>where S: CreatableAdminSpec + Sync + Send,

Create new object

source

pub async fn create_with_config<S>( &self, config: CommonCreateRequest, spec: S ) -> Result<()>where S: CreatableAdminSpec + Sync + Send,

source

pub async fn delete<S, K>(&self, key: K) -> Result<()>where S: DeletableAdminSpec + Sync + Send, K: Into<S::DeleteKey>,

Delete object by key key is depend on spec, most are string but some allow multiple types

source

pub async fn all<S>(&self) -> Result<Vec<Metadata<S>>>where S: AdminSpec, S::Status: Encoder + Decoder + Debug,

return all instance of this spec

source

pub async fn list<S, F>(&self, filters: Vec<F>) -> Result<Vec<Metadata<S>>>where S: AdminSpec, ListFilter: From<F>, S::Status: Encoder + Decoder + Debug,

return all instance of this spec by filter

source

pub async fn list_with_params<S, F>( &self, filters: Vec<F>, summary: bool ) -> Result<Vec<Metadata<S>>>where S: AdminSpec, ListFilter: From<F>, S::Status: Encoder + Decoder + Debug,

source

pub async fn watch<S>( &self ) -> Result<impl Stream<Item = Result<WatchResponse<S>, IoError>>>where S: AdminSpec, S::Status: Encoder + Decoder,

Watch stream of changes for metadata There is caching, this is just pass through

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> AsyncConnector for Twhere T: Send + Sync,