pub struct StorageHosts<T> {
    pub build_info: &'static BuildInfo,
    orchestrator: Arc<dyn NamespacedOrchestrator>,
    storaged_image: String,
    hosts: HashMap<String, StorageHost<T>>,
    objects: HashMap<GlobalId, String>,
}
Expand description

Manages provisioning of storage hosts and assignment of storage objects to those hosts.

See the module documentation for details.

Fields

build_info: &'static BuildInfo

The build information for this process.

orchestrator: Arc<dyn NamespacedOrchestrator>

An orchestrator to start and stop storage hosts.

storaged_image: String

The storaged image to use when starting new storage hosts.

hosts: HashMap<String, StorageHost<T>>

The known storage hosts, identified by network address.

objects: HashMap<GlobalId, String>

The assignment of storage objects to storage hosts.

Implementations

Constructs a new StorageHosts from its configuration.

Provisions a storage host for the storage object with the specified ID.

If remote_addr is Some, then the specified storage host is used. Otherwise, a storage host is assigned automatically.

At present, the policy for storage host assignment creates a new storage host for each storage object. This policy is subject to change.

Returns a client to the provisioned host. The client may be retrieved in the future via the client method.

Panics

Panics if id is already provisioned.

Deprovisions the storage host for the storage object with the specified ID.

Panics

Panics if the provided id has not been provisioned.

Retrives the client for the storage host for the given ID, if the ID is currently provisioned.

Returns an iterator over clients for all known storage hosts.

Starts a orchestrated storage host for the specified ID.

Stops an orchestrated storage host for the specified ID.

Trait Implementations

Formats the value using the given formatter. Read more

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.

Attaches the provided Context to this type, returning a WithContext wrapper. Read more

Attaches the current Context to this type, returning a WithContext wrapper. Read more

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

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

Calls U::from(self).

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

Wrap the input message T in a tonic::Request

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

Should always be Self

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.

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

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