AsyncOpenStack

Struct AsyncOpenStack 

Source
pub struct AsyncOpenStack { /* private fields */ }
Expand description

Asynchronous client for the OpenStack API for a single user

Separate Identity (not the scope) should use separate instances of this.

use openstack_sdk::api::{paged, Pagination, QueryAsync};
use openstack_sdk::{AsyncOpenStack, config::ConfigFile, OpenStackError};
use openstack_sdk::types::ServiceType;
use openstack_sdk::api::compute::v2::flavor::list;

async fn list_flavors() -> Result<(), OpenStackError> {
    // Get the builder for the listing Flavors Endpoint
    let mut ep_builder = list::Request::builder();
    // Set the `min_disk` query param
    ep_builder.min_disk("15");
    let ep = ep_builder.build().unwrap();

    let cfg = ConfigFile::new().unwrap();
    // Get connection config from clouds.yaml/secure.yaml
    let profile = cfg.get_cloud_config("devstack").unwrap().unwrap();
    // Establish connection
    let mut session = AsyncOpenStack::new(&profile).await?;

    // Invoke service discovery when desired.
    session.discover_service_endpoint(&ServiceType::Compute).await?;

    // Execute the call with pagination limiting maximum amount of entries to 1000
    let data: Vec<serde_json::Value> = paged(ep, Pagination::Limit(1000))
        .query_async(&session)
        .await.unwrap();

    println!("Data = {:?}", data);
    Ok(())
}

Implementations§

Source§

impl AsyncOpenStack

Source

pub async fn new(config: &CloudConfig) -> Result<Self, OpenStackError>

Create a new OpenStack API session from CloudConfig

Source

pub async fn new_with_authentication_helper( config: &CloudConfig, auth_helper: &mut impl AuthHelper, renew_auth: bool, ) -> Result<Self, OpenStackError>

Create a new OpenStack API session from CloudConfig

Source

pub async fn new_interactive( config: &CloudConfig, renew_auth: bool, ) -> Result<Self, OpenStackError>

👎Deprecated since 0.22.0: please use new_with_authentication_helper instead

Create a new OpenStack API session from CloudConfig

Source

pub async fn authorize( &mut self, scope: Option<AuthTokenScope>, interactive: bool, renew_auth: bool, ) -> Result<(), OpenStackError>

Authorize against the cloud using provided credentials and get the session token.

Source

pub async fn authorize_with_auth_helper<A>( &mut self, scope: Option<AuthTokenScope>, auth_helper: &mut A, renew_auth: bool, ) -> Result<(), OpenStackError>
where A: AuthHelper,

Authorize against the cloud using provided credentials and get the session token with the auth helper that may be invoked to interactively ask for the credentials.

Source

pub async fn discover_service_endpoint( &mut self, service_type: &ServiceType, ) -> Result<(), OpenStackError>

Perform version discovery of a service

Source

pub fn get_token_catalog(&self) -> Option<Vec<ServiceEndpoints>>

Return catalog information given in the token

Source

pub fn get_auth_info(&self) -> Option<AuthResponse>

Return current authentication information

Source

pub fn get_auth_state(&self, offset: Option<TimeDelta>) -> Option<AuthState>

Return current authentication status

Offset can be used to calculate imminent expiration.

Source

pub fn get_auth_token(&self) -> Option<String>

Return current authentication token

Source

pub async fn fetch_token_info<S: AsRef<str>>( &self, token: S, ) -> Result<AuthResponse, OpenStackError>

Perform token introspection call

Trait Implementations§

Source§

impl AsyncClient for AsyncOpenStack

Source§

fn rest_read_body_async<'life0, 'async_trait>( &'life0 self, request: Builder, body: BoxedAsyncRead, ) -> Pin<Box<dyn Future<Output = Result<HttpResponse<Bytes>, ApiError<<Self as RestClient>::Error>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Perform REST request with the body read from AsyncRead

Source§

fn download_async<'life0, 'async_trait>( &'life0 self, request: Builder, body: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(HeaderMap, BoxedAsyncRead), ApiError<<Self as RestClient>::Error>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Download result of HTTP operation.

Source§

fn rest_async<'life0, 'async_trait>( &'life0 self, request: Builder, body: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<HttpResponse<Bytes>, ApiError<<Self as RestClient>::Error>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Send a REST query asynchronously.
Source§

impl Clone for AsyncOpenStack

Source§

fn clone(&self) -> AsyncOpenStack

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AsyncOpenStack

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl RestClient for AsyncOpenStack

Source§

fn get_service_endpoint( &self, service_type: &ServiceType, version: Option<&ApiVersion>, ) -> Result<&ServiceEndpoint, ApiError<Self::Error>>

Get service endpoint from the catalog

Source§

fn get_current_project(&self) -> Option<Project>

Get project id from the current scope

Source§

type Error = RestError

The errors which may occur for this client.

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 T
where 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<C> PruneAsyncExt for C
where C: AsyncClient<Error = RestError> + Sync,

Source§

fn object_store_container_prune_async<'life0, 'async_trait, S1, S2, S3>( &'life0 self, account: S1, container: S2, prefix: Option<S3>, ) -> Pin<Box<dyn Future<Output = Result<(), OpenStackError>> + Send + 'async_trait>>
where 'life0: 'async_trait, S1: 'async_trait + AsRef<str> + Send + Sync, S2: 'async_trait + AsRef<str> + Send + Sync, S3: 'async_trait + AsRef<str> + Send + Sync, C: 'async_trait,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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