Struct openstack::Cloud

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

OpenStack cloud API.

Provides high-level API for working with OpenStack clouds.

Implementations

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 auth = openstack::auth::Password::new(
            "https://cloud.example.com",
            "user1", "pa$$word", "Default")
        .expect("Invalid authentication URL")
        .with_project_scope("project1", "Default");
    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

Create a new cloud object from a configuration file

Example
let os = openstack::Cloud::from_config("cloud-1")?;

Create a new cloud object from environment variables.

Example
let os = openstack::Cloud::from_env()?;

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("internal"))
}

Refresh this Cloud object (renew token, refetch service catalog, etc).

Build a query against flavor list.

The returned object is a builder that should be used to construct the query.

Build a query against floating IP list.

The returned object is a builder that should be used to construct the query.

Build a query against image list.

The returned object is a builder that should be used to construct the query.

Build a query against key pairs list.

The returned object is a builder that should be used to construct the query.

Build a query against network list.

The returned object is a builder that should be used to construct the query.

Build a query against port list.

The returned object is a builder that should be used to construct the query.

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");

Build a query against subnet list.

The returned object is a builder that should be used to construct the query.

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");

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");

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");

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");

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");

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");

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");

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");

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");

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");

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");

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");

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");

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");

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");

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");

Prepare a new floating IP for creation.

This call returns a NewFloatingIp object, which is a builder to populate floating IP fields.

Prepare a new key pair for creation.

This call returns a NewKeyPair object, which is a builder to populate key pair fields.

Prepare a new network for creation.

This call returns a NewNetwork object, which is a builder to populate network fields.

Prepare a new port for creation.

This call returns a NewPort object, which is a builder to populate port fields.

Prepare a new server for creation.

This call returns a NewServer object, which is a builder to populate server fields.

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

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.