[−][src]Struct openstack::Cloud
OpenStack cloud API.
Provides high-level API for working with OpenStack clouds.
Implementations
impl Cloud
[src]
pub fn new<Auth: AuthType + 'static>(auth_type: Auth) -> Cloud
[src]
Create a new cloud object with a given authentication plugin.
See auth
module for details on how to authenticate
against OpenStack clouds.
Example
fn cloud() -> openstack::Result<openstack::Cloud> { let scope = openstack::auth::Scope::Project { project: openstack::IdOrName::from_name("project1"), domain: Some(openstack::IdOrName::from_name("Default")), }; let auth = openstack::auth::Password::new( "https://cloud.example.com", "user1", "pa$$word", "Default") .expect("Invalid authentication URL") .with_scope(scope); Ok(openstack::Cloud::new(auth)) }
See Also
- from_config to create a Cloud from clouds.yaml
- from_env to create a Cloud from environment variables
pub fn from_config<S: AsRef<str>>(cloud_name: S) -> Result<Cloud>
[src]
Create a new cloud object from a configuration file
Example
let os = openstack::Cloud::from_config("cloud-1")?;
pub fn from_env() -> Result<Cloud>
[src]
Create a new cloud object from environment variables.
Example
let os = openstack::Cloud::from_env()?;
pub fn endpoint_filters(&self) -> &EndpointFilters
[src]
Endpoint filters for this cloud.
pub fn endpoint_filters_mut(&mut self) -> &mut EndpointFilters
[src]
Modify endpoint filters for this cloud.
Example
fn cloud_from_env() -> openstack::Result<openstack::Cloud> { let mut cloud = openstack::Cloud::from_env()?; { let mut filters = cloud.endpoint_filters_mut(); filters.set_region("internal-1"); // Give priority to internal endpoints. filters.set_interfaces(&[ openstack::InterfaceType::Internal, openstack::InterfaceType::Public, ][..]) } Ok(cloud) }
Removes cached endpoint information and detaches this object from a shared Session
.
pub fn with_endpoint_interface(self, endpoint_interface: InterfaceType) -> Cloud
[src]
Convert this cloud into one using the given endpoint interface.
Example
fn cloud_from_env() -> openstack::Result<openstack::Cloud> { openstack::Cloud::from_env() .map(|os| os.with_endpoint_interface(openstack::InterfaceType::Internal)) }
Removes cached endpoint information and detaches this object from a shared Session
.
pub fn with_endpoint_filters(self, endpoint_filters: EndpointFilters) -> Cloud
[src]
Convert this cloud into one using the given endpoint filters.
Removes cached endpoint information and detaches this object from a shared Session
.
pub fn refresh(&mut self) -> Result<()>
[src]
Refresh this Cloud
object (renew token, refetch service catalog, etc).
pub fn create_container<Id: AsRef<str>>(&self, name: Id) -> Result<Container>
[src]
Create a new container.
If the container already exists, this call returns successfully.
pub fn create_object<C, Id, R>(
&self,
container: C,
name: Id,
body: R
) -> Result<Object> where
C: Into<ContainerRef>,
Id: AsRef<str>,
R: Read + Sync + Send + 'static,
[src]
&self,
container: C,
name: Id,
body: R
) -> Result<Object> where
C: Into<ContainerRef>,
Id: AsRef<str>,
R: Read + Sync + Send + 'static,
Create a new object.
pub fn find_containers(&self) -> ContainerQuery
[src]
Build a query against container list.
The returned object is a builder that should be used to construct the query.
pub fn find_objects<C>(&self, container: C) -> ObjectQuery where
C: Into<ContainerRef>,
[src]
C: Into<ContainerRef>,
Build a query against object list.
The returned object is a builder that should be used to construct the query.
pub fn find_flavors(&self) -> FlavorQuery
[src]
Build a query against flavor list.
The returned object is a builder that should be used to construct the query.
pub fn find_floating_ips(&self) -> FloatingIpQuery
[src]
Build a query against floating IP list.
The returned object is a builder that should be used to construct the query.
pub fn find_images(&self) -> ImageQuery
[src]
Build a query against image list.
The returned object is a builder that should be used to construct the query.
pub fn find_keypairs(&self) -> KeyPairQuery
[src]
Build a query against key pairs list.
The returned object is a builder that should be used to construct the query.
pub fn find_networks(&self) -> NetworkQuery
[src]
Build a query against network list.
The returned object is a builder that should be used to construct the query.
pub fn find_ports(&self) -> PortQuery
[src]
Build a query against port list.
The returned object is a builder that should be used to construct the query.
pub fn find_routers(&self) -> RouterQuery
[src]
Build a query against router list.
The returned object is a builder that should be used to construct the query.
pub fn find_servers(&self) -> ServerQuery
[src]
Build a query against server list.
The returned object is a builder that should be used to construct the query.
Example
Sorting servers by access_ip_v4
and getting first 5 results:
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let sorting = openstack::compute::ServerSortKey::AccessIpv4; let server_list = os.find_servers() .sort_by(openstack::Sort::Asc(sorting)).with_limit(5) .all().expect("Unable to fetch servers");
pub fn find_subnets(&self) -> SubnetQuery
[src]
Build a query against subnet list.
The returned object is a builder that should be used to construct the query.
pub fn get_container<Id: AsRef<str>>(&self, name: Id) -> Result<Container>
[src]
Get object container metadata by its name.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let ctr = os.get_container("www").expect("Unable to get a container");
pub fn get_object<C, Id>(&self, container: C, name: Id) -> Result<Object> where
C: Into<ContainerRef>,
Id: AsRef<str>,
[src]
C: Into<ContainerRef>,
Id: AsRef<str>,
Get object metadata by its name.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let obj = os.get_object("www", "/foo/bar").expect("Unable to get an object");
pub fn get_flavor<Id: AsRef<str>>(&self, id_or_name: Id) -> Result<Flavor>
[src]
Find a flavor by its name or ID.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server = os.get_flavor("m1.medium").expect("Unable to get a flavor");
pub fn get_floating_ip<Id: AsRef<str>>(&self, id: Id) -> Result<FloatingIp>
[src]
Find a floating IP by its ID.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server = os.get_floating_ip("031e08c7-2ca7-4c0b-9923-030c8d946ba4") .expect("Unable to get a floating IP");
pub fn get_image<Id: AsRef<str>>(&self, id_or_name: Id) -> Result<Image>
[src]
Find an image by its name or ID.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server = os.get_image("centos7").expect("Unable to get a image");
pub fn get_keypair<Id: AsRef<str>>(&self, name: Id) -> Result<KeyPair>
[src]
Find a key pair by its name or ID.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server = os.get_keypair("default").expect("Unable to get a key pair");
pub fn get_network<Id: AsRef<str>>(&self, id_or_name: Id) -> Result<Network>
[src]
Find an network by its name or ID.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server = os.get_network("centos7").expect("Unable to get a network");
pub fn get_port<Id: AsRef<str>>(&self, id_or_name: Id) -> Result<Port>
[src]
Find an port by its name or ID.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server = os.get_port("4d9c1710-fa02-49f9-8218-291024ef4140") .expect("Unable to get a port");
pub fn get_router<Id: AsRef<str>>(&self, id_or_name: Id) -> Result<Router>
[src]
Find a router by its name or ID.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let router = os.get_router("router_name").expect("Unable to get a router");
pub fn get_server<Id: AsRef<str>>(&self, id_or_name: Id) -> Result<Server>
[src]
Find a server by its name or ID.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server = os.get_server("8a1c355b-2e1e-440a-8aa8-f272df72bc32") .expect("Unable to get a server");
pub fn get_subnet<Id: AsRef<str>>(&self, id_or_name: Id) -> Result<Subnet>
[src]
Find an subnet by its name or ID.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server = os.get_subnet("private-subnet") .expect("Unable to get a subnet");
pub fn list_containers(&self) -> Result<Vec<Container>>
[src]
List all containers.
This call can yield a lot of results, use the find_containers call to limit the number of containers to receive.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server_list = os.list_containers().expect("Unable to fetch containers");
pub fn list_objects<C>(&self, container: C) -> Result<Vec<Object>> where
C: Into<ContainerRef>,
[src]
C: Into<ContainerRef>,
List all objects.
This call can yield a lot of results, use the find_objects call to limit the number of objects to receive.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server_list = os.list_objects("www").expect("Unable to fetch objects");
pub fn list_flavors(&self) -> Result<Vec<FlavorSummary>>
[src]
List all flavors.
This call can yield a lot of results, use the find_flavors call to limit the number of flavors to receive.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server_list = os.list_flavors().expect("Unable to fetch flavors");
pub fn list_floating_ips(&self) -> Result<Vec<FloatingIp>>
[src]
List all floating IPs
This call can yield a lot of results, use the find_floating_ips call to limit the number of networks to receive.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server_list = os.list_floating_ips().expect("Unable to fetch floating IPs");
pub fn list_images(&self) -> Result<Vec<Image>>
[src]
List all images.
This call can yield a lot of results, use the find_images call to limit the number of images to receive.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server_list = os.list_images().expect("Unable to fetch images");
pub fn list_keypairs(&self) -> Result<Vec<KeyPair>>
[src]
List all key pairs.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let result = os.list_keypairs().expect("Unable to fetch key pairs");
pub fn list_networks(&self) -> Result<Vec<Network>>
[src]
List all networks.
This call can yield a lot of results, use the find_networks call to limit the number of networks to receive.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server_list = os.list_networks().expect("Unable to fetch networks");
pub fn list_ports(&self) -> Result<Vec<Port>>
[src]
List all ports.
This call can yield a lot of results, use the find_ports call to limit the number of ports to receive.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server_list = os.list_ports().expect("Unable to fetch ports");
pub fn list_routers(&self) -> Result<Vec<Router>>
[src]
List all routers.
This call can yield a lot of results, use the find_routers call to limit the number of routers to receive.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let router_list = os.list_routers().expect("Unable to fetch routers");
pub fn list_servers(&self) -> Result<Vec<ServerSummary>>
[src]
List all servers.
This call can yield a lot of results, use the find_servers call to limit the number of servers to receive.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server_list = os.list_servers().expect("Unable to fetch servers");
pub fn list_subnets(&self) -> Result<Vec<Subnet>>
[src]
List all subnets.
This call can yield a lot of results, use the find_subnets call to limit the number of subnets to receive.
Example
use openstack; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let server_list = os.list_subnets().expect("Unable to fetch subnets");
pub fn new_object<C, O, B>(
&self,
container: C,
object: O,
body: B
) -> NewObject<B> where
C: Into<ContainerRef>,
O: Into<String>,
B: Read + Sync + Send + 'static,
[src]
&self,
container: C,
object: O,
body: B
) -> NewObject<B> where
C: Into<ContainerRef>,
O: Into<String>,
B: Read + Sync + Send + 'static,
Prepare a new object for creation.
This call returns a NewObject
object, which is a builder
to create object in object storage.
pub fn new_floating_ip<N>(&self, floating_network: N) -> NewFloatingIp where
N: Into<NetworkRef>,
[src]
N: Into<NetworkRef>,
Prepare a new floating IP for creation.
This call returns a NewFloatingIp
object, which is a builder
to populate floating IP fields.
pub fn new_keypair<S>(&self, name: S) -> NewKeyPair where
S: Into<String>,
[src]
S: Into<String>,
Prepare a new key pair for creation.
This call returns a NewKeyPair
object, which is a builder to populate
key pair fields.
pub fn new_network(&self) -> NewNetwork
[src]
Prepare a new network for creation.
This call returns a NewNetwork
object, which is a builder to populate
network fields.
pub fn new_port<N>(&self, network: N) -> NewPort where
N: Into<NetworkRef>,
[src]
N: Into<NetworkRef>,
Prepare a new port for creation.
This call returns a NewPort
object, which is a builder to populate
port fields.
pub fn new_router(&self) -> NewRouter
[src]
Prepare a new router for creation.
This call returns a NewRouter
object, which is a builder to populate
router fields.
pub fn new_server<S, F>(&self, name: S, flavor: F) -> NewServer where
S: Into<String>,
F: Into<FlavorRef>,
[src]
S: Into<String>,
F: Into<FlavorRef>,
Prepare a new server for creation.
This call returns a NewServer
object, which is a builder to populate
server fields.
pub fn new_subnet<N>(&self, network: N, cidr: IpNet) -> NewSubnet where
N: Into<NetworkRef>,
[src]
N: Into<NetworkRef>,
Prepare a new subnet for creation.
This call returns a NewSubnet
object, which is a builder to populate
subnet fields.
Example
extern crate ipnet; extern crate openstack; use std::net; let os = openstack::Cloud::from_env().expect("Unable to authenticate"); let cidr = ipnet::Ipv4Net::new(net::Ipv4Addr::new(192, 168, 1, 0), 24) .unwrap().into(); let new_subnet = os.new_subnet("private-net", cidr) .with_name("private-subnet") .create().expect("Unable to create subnet");
Trait Implementations
impl Clone for Cloud
[src]
impl Debug for Cloud
[src]
impl From<Session> for Cloud
[src]
impl From<SyncSession> for Cloud
[src]
fn from(value: SyncSession) -> Cloud
[src]
Auto Trait Implementations
impl !RefUnwindSafe for Cloud
impl !Send for Cloud
impl !Sync for Cloud
impl Unpin for Cloud
impl !UnwindSafe for Cloud
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]
fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]
fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,