Struct ServerBuilder

Source
pub struct ServerBuilder<'a> { /* private fields */ }
Expand description

Builder for Server.

Implementations§

Source§

impl<'a> ServerBuilder<'a>

Source

pub fn access_ipv4<VALUE: Into<Cow<'a, str>>>( &mut self, value: VALUE, ) -> &mut Self

IPv4 address that should be used to access this server.

Source

pub fn access_ipv6<VALUE: Into<Cow<'a, str>>>( &mut self, value: VALUE, ) -> &mut Self

IPv6 address that should be used to access this server.

Source

pub fn admin_pass<VALUE: Into<Cow<'a, str>>>( &mut self, value: VALUE, ) -> &mut Self

The administrative password of the server. If you omit this parameter, the operation generates a new password.

Source

pub fn availability_zone<VALUE: Into<Cow<'a, str>>>( &mut self, value: VALUE, ) -> &mut Self

A target cell name. Schedule the server in a host in the cell specified. It is available when TargetCellFilter is available on cloud side that is cell v1 environment.

Source

pub fn block_device_mapping<VALUE: Into<Vec<BlockDeviceMapping<'a>>>>( &mut self, value: VALUE, ) -> &mut Self

Source

pub fn block_device_mapping_v2<VALUE: Into<Vec<BlockDeviceMappingV2<'a>>>>( &mut self, value: VALUE, ) -> &mut Self

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

Source

pub fn config_drive<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self

Indicates whether a config drive enables metadata injection. The config_drive setting provides information about a drive that the instance can mount at boot time. The instance reads files from the drive to get information that is normally available through the metadata service. This metadata is different from the user data. Not all cloud providers enable the config_drive. Read more in the OpenStack End User Guide.

Source

pub fn description<VALUE: Into<Option<Cow<'a, str>>>>( &mut self, value: VALUE, ) -> &mut Self

A free form description of the server. Limited to 255 characters in length. Before microversion 2.19 this was set to the server name.

New in version 2.19

Source

pub fn flavor_ref<VALUE: Into<Cow<'a, str>>>( &mut self, value: VALUE, ) -> &mut Self

The flavor reference, as an ID (including a UUID) or full URL, for the flavor for your server instance.

Source

pub fn image_ref<VALUE: Into<Cow<'a, str>>>( &mut self, value: VALUE, ) -> &mut Self

The UUID of the image to use for your server instance. This is not required in case of boot from volume. In all other cases it is required and must be a valid UUID otherwise API will return 400.

Source

pub fn key_name<VALUE: Into<Cow<'a, str>>>(&mut self, value: VALUE) -> &mut Self

A target cell name. Schedule the server in a host in the cell specified. It is available when TargetCellFilter is available on cloud side that is cell v1 environment.

Source

pub fn max_count<VALUE: Into<i32>>(&mut self, value: VALUE) -> &mut Self

Source

pub fn min_count<VALUE: Into<i32>>(&mut self, value: VALUE) -> &mut Self

Source

pub fn name<VALUE: Into<Cow<'a, str>>>(&mut self, value: VALUE) -> &mut Self

A target cell name. Schedule the server in a host in the cell specified. It is available when TargetCellFilter is available on cloud side that is cell v1 environment.

Source

pub fn networks<VALUE: Into<ServerNetworks<'a>>>( &mut self, value: VALUE, ) -> &mut Self

A list of network object. Required parameter when there are multiple networks defined for the tenant. When you do not specify the networks parameter, the server attaches to the only network created for the current tenant. Optionally, you can create one or more NICs on the server. To provision the server instance with a NIC for a network, specify the UUID of the network in the uuid attribute in a networks object. To provision the server instance with a NIC for an already existing port, specify the port-id in the port attribute in a networks object.

If multiple networks are defined, the order in which they appear in the guest operating system will not necessarily reflect the order in which they are given in the server boot request. Guests should therefore not depend on device order to deduce any information about their network devices. Instead, device role tags should be used: introduced in 2.32, broken in 2.37, and re-introduced and fixed in 2.42, the tag is an optional, string attribute that can be used to assign a tag to a virtual network interface. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that network interface, such as bus (ex: PCI), bus address (ex: 0000:00:02.0), and MAC address.

A bug has caused the tag attribute to no longer be accepted starting with version 2.37. Therefore, network interfaces could only be tagged in versions 2.32 to 2.36 inclusively. Version 2.42 has restored the tag attribute.

Starting with microversion 2.37, this field is required and the special string values auto and none can be specified for networks. auto tells the Compute service to use a network that is available to the project, if one exists. If one does not exist, the Compute service will attempt to automatically allocate a network for the project (if possible). none tells the Compute service to not allocate a network for the instance. The auto and none values cannot be used with any other network values, including other network uuids, ports, fixed IPs or device tags. These are requested as strings for the networks value, not in a list. See the associated example.

Source

pub fn os_dcf_disk_config(&mut self, value: OsDcfDiskConfig) -> &mut Self

Controls how the API partitions the disk when you create, rebuild, or resize servers. A server inherits the OS-DCF:diskConfig value from the image from which it was created, and an image inherits the OS-DCF:diskConfig value from the server from which it was created. To override the inherited setting, you can include this attribute in the request body of a server create, rebuild, or resize request. If the OS-DCF:diskConfig value for an image is MANUAL, you cannot create a server from that image and set its OS-DCF:diskConfig value to AUTO. A valid value is:

  • AUTO. The API builds the server with a single partition the size of the target flavor disk. The API automatically adjusts the file system to fit the entire partition.
  • MANUAL. The API builds the server by using whatever partition scheme and file system is in the source image. If the target flavor disk is larger, the API does not partition the remaining disk space.
Source

pub fn return_reservation_id<VALUE: Into<bool>>( &mut self, value: VALUE, ) -> &mut Self

Indicates whether a config drive enables metadata injection. The config_drive setting provides information about a drive that the instance can mount at boot time. The instance reads files from the drive to get information that is normally available through the metadata service. This metadata is different from the user data. Not all cloud providers enable the config_drive. Read more in the OpenStack End User Guide.

Source

pub fn security_groups<VALUE: Into<Vec<SecurityGroups<'a>>>>( &mut self, value: VALUE, ) -> &mut Self

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

Source

pub fn tags<VALUE: Into<Vec<Cow<'a, str>>>>( &mut self, value: VALUE, ) -> &mut Self

A list of tags. Tags have the following restrictions:

  • Tag is a Unicode bytestring no longer than 60 characters.
  • Tag is a non-empty string.
  • ‘/’ is not allowed to be in a tag name
  • Comma is not allowed to be in a tag name in order to simplify requests that specify lists of tags
  • All other characters are allowed to be in a tag name
  • Each server can have up to 50 tags.

New in version 2.52

Source

pub fn trusted_image_certificates<VALUE: Into<Vec<Cow<'a, str>>>>( &mut self, value: VALUE, ) -> &mut Self

A list of trusted certificate IDs, which are used during image signature verification to verify the signing certificate. The list is restricted to a maximum of 50 IDs. This parameter is optional in server create requests if allowed by policy, and is not supported for volume-backed instances.

New in version 2.63

Source

pub fn user_data<VALUE: Into<Cow<'a, str>>>( &mut self, value: VALUE, ) -> &mut Self

Configuration information or scripts to use upon launch. Must be Base64 encoded. Restricted to 65535 bytes.

Note

The null value allowed in Nova legacy v2 API, but due to the strict input validation, it isn’t allowed in Nova v2.1 API.

Source

pub fn build(&self) -> Result<Server<'a>, ServerBuilderError>

Builds a new Server.

§Errors

If a required field has not been initialized.

Source§

impl<'a> ServerBuilder<'a>

Source

pub fn metadata<I, K, V>(&mut self, iter: I) -> &mut Self
where I: Iterator<Item = (K, V)>, K: Into<Cow<'a, str>>, V: Into<Cow<'a, str>>,

Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each.

Trait Implementations§

Source§

impl<'a> Clone for ServerBuilder<'a>

Source§

fn clone(&self) -> ServerBuilder<'a>

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<'a> Default for ServerBuilder<'a>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for ServerBuilder<'a>

§

impl<'a> RefUnwindSafe for ServerBuilder<'a>

§

impl<'a> Send for ServerBuilder<'a>

§

impl<'a> Sync for ServerBuilder<'a>

§

impl<'a> Unpin for ServerBuilder<'a>

§

impl<'a> UnwindSafe for ServerBuilder<'a>

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

impl<T> ErasedDestructor for T
where T: 'static,