mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-15 01:12:56 +00:00
This is the first step towards representing all of Pageserver configuration as clean `serde::Serialize`able Rust structs in `pageserver_api`. The `neon_local` code will then use those structs instead of the crude `toml_edit` / string concatenation that it does today. refs https://github.com/neondatabase/neon/issues/7555 --------- Co-authored-by: Alex Chi Z <iskyzh@gmail.com>
32 lines
1.1 KiB
Rust
32 lines
1.1 KiB
Rust
use std::collections::HashMap;
|
|
|
|
use const_format::formatcp;
|
|
|
|
#[cfg(test)]
|
|
mod tests;
|
|
|
|
pub const DEFAULT_PG_LISTEN_PORT: u16 = 64000;
|
|
pub const DEFAULT_PG_LISTEN_ADDR: &str = formatcp!("127.0.0.1:{DEFAULT_PG_LISTEN_PORT}");
|
|
pub const DEFAULT_HTTP_LISTEN_PORT: u16 = 9898;
|
|
pub const DEFAULT_HTTP_LISTEN_ADDR: &str = formatcp!("127.0.0.1:{DEFAULT_HTTP_LISTEN_PORT}");
|
|
|
|
// Certain metadata (e.g. externally-addressable name, AZ) is delivered
|
|
// as a separate structure. This information is not neeed by the pageserver
|
|
// itself, it is only used for registering the pageserver with the control
|
|
// plane and/or storage controller.
|
|
//
|
|
#[derive(PartialEq, Eq, Debug, serde::Serialize, serde::Deserialize)]
|
|
pub struct NodeMetadata {
|
|
#[serde(rename = "host")]
|
|
pub postgres_host: String,
|
|
#[serde(rename = "port")]
|
|
pub postgres_port: u16,
|
|
pub http_host: String,
|
|
pub http_port: u16,
|
|
|
|
// Deployment tools may write fields to the metadata file beyond what we
|
|
// use in this type: this type intentionally only names fields that require.
|
|
#[serde(flatten)]
|
|
pub other: HashMap<String, serde_json::Value>,
|
|
}
|