Struct sozu_command_lib::state::ConfigState
source · pub struct ConfigState {
pub clusters: BTreeMap<ClusterId, Cluster>,
pub backends: BTreeMap<ClusterId, Vec<Backend>>,
pub http_listeners: BTreeMap<String, HttpListenerConfig>,
pub https_listeners: BTreeMap<String, HttpsListenerConfig>,
pub tcp_listeners: BTreeMap<String, TcpListenerConfig>,
pub http_fronts: BTreeMap<String, HttpFrontend>,
pub https_fronts: BTreeMap<String, HttpFrontend>,
pub tcp_fronts: HashMap<ClusterId, Vec<TcpFrontend>>,
pub certificates: HashMap<SocketAddr, HashMap<Fingerprint, CertificateAndKey>>,
pub request_counts: BTreeMap<String, i32>,
}
Expand description
The ConfigState
represents the state of Sōzu’s business, which is to forward traffic
from frontends to backends. Hence, it contains all details about:
- listeners (socket addresses, for TCP and HTTP connections)
- frontends (bind to a listener)
- backends (to forward connections to)
- clusters (routing rules from frontends to backends)
- TLS certificates
Fields§
§clusters: BTreeMap<ClusterId, Cluster>
§backends: BTreeMap<ClusterId, Vec<Backend>>
§http_listeners: BTreeMap<String, HttpListenerConfig>
socket address -> HTTP listener
https_listeners: BTreeMap<String, HttpsListenerConfig>
socket address -> HTTPS listener
tcp_listeners: BTreeMap<String, TcpListenerConfig>
socket address -> TCP listener
http_fronts: BTreeMap<String, HttpFrontend>
HTTP frontends, indexed by a summary of each front’s address;hostname;path, for uniqueness.
For example: "0.0.0.0:8080;lolcatho.st;P/api"
https_fronts: BTreeMap<String, HttpFrontend>
indexed by (address, hostname, path)
tcp_fronts: HashMap<ClusterId, Vec<TcpFrontend>>
§certificates: HashMap<SocketAddr, HashMap<Fingerprint, CertificateAndKey>>
§request_counts: BTreeMap<String, i32>
A census of requests that were received. Name of the request -> number of occurences
Implementations§
source§impl ConfigState
impl ConfigState
pub fn new() -> Self
pub fn dispatch(&mut self, request: &Request) -> Result<()>
pub fn get_request_counts(&self) -> RequestCounts
pub fn generate_requests(&self) -> Vec<Request>
pub fn generate_activate_requests(&self) -> Vec<Request>
pub fn diff(&self, other: &ConfigState) -> Vec<Request>
pub fn hash_state(&self) -> BTreeMap<ClusterId, u64>
sourcepub fn cluster_state(&self, cluster_id: &str) -> ClusterInformation
pub fn cluster_state(&self, cluster_id: &str) -> ClusterInformation
Gives details about a given cluster.
Types like HttpFrontend
are converted into protobuf ones, like RequestHttpFrontend
pub fn count_backends(&self) -> usize
pub fn count_frontends(&self) -> usize
pub fn get_cluster_ids_by_domain( &self, hostname: String, path: Option<String> ) -> HashSet<ClusterId>
pub fn get_certificates( &self, filters: QueryCertificatesFilters ) -> BTreeMap<String, CertificateAndKey>
pub fn list_frontends(&self, filters: FrontendFilters) -> ListedFrontends
pub fn list_listeners(&self) -> ListenersList
Trait Implementations§
source§impl Clone for ConfigState
impl Clone for ConfigState
source§fn clone(&self) -> ConfigState
fn clone(&self) -> ConfigState
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for ConfigState
impl Debug for ConfigState
source§impl Default for ConfigState
impl Default for ConfigState
source§fn default() -> ConfigState
fn default() -> ConfigState
Returns the “default value” for a type. Read more
source§impl<'de> Deserialize<'de> for ConfigState
impl<'de> Deserialize<'de> for ConfigState
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl PartialEq<ConfigState> for ConfigState
impl PartialEq<ConfigState> for ConfigState
source§fn eq(&self, other: &ConfigState) -> bool
fn eq(&self, other: &ConfigState) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl Serialize for ConfigState
impl Serialize for ConfigState
impl Eq for ConfigState
impl StructuralEq for ConfigState
impl StructuralPartialEq for ConfigState
Auto Trait Implementations§
impl RefUnwindSafe for ConfigState
impl Send for ConfigState
impl Sync for ConfigState
impl Unpin for ConfigState
impl UnwindSafe for ConfigState
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.