Skip to content

Commit

Permalink
feat: start the service through configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
Kree0 authored and roseboy-liu committed Nov 24, 2023
1 parent eb0287c commit b2c4729
Show file tree
Hide file tree
Showing 10 changed files with 166 additions and 123 deletions.
1 change: 0 additions & 1 deletion common/models/src/meta_data.rs
Expand Up @@ -65,7 +65,6 @@ impl From<String> for NodeAttribute {
pub struct NodeInfo {
pub id: NodeId,
pub grpc_addr: String,
pub http_addr: String,
pub attribute: NodeAttribute,
}

Expand Down
11 changes: 9 additions & 2 deletions common/models/src/utils.rs
Expand Up @@ -99,6 +99,13 @@ impl SeqIdGenerator {
}
}

pub fn build_address(address: String, port: u16) -> String {
format!("{}:{}", address, port)
pub fn build_address(address: &str, port: u16) -> String {
format!("{address}:{port}")
}

pub fn build_address_with_optional_addr(address: &str, port: Option<u16>) -> String {
match port {
Some(p) => format!("{address}:{p}"),
None => format!("{address}:null"),
}
}
90 changes: 48 additions & 42 deletions config/src/cluster_config.rs
Expand Up @@ -13,15 +13,15 @@ pub struct ClusterConfig {
#[serde(default = "ClusterConfig::default_meta_service_addr")]
pub meta_service_addr: Vec<String>,

#[serde(default = "ClusterConfig::default_http_listen_port")]
pub http_listen_port: u16,
#[serde(default = "ClusterConfig::default_grpc_listen_port")]
pub grpc_listen_port: u16,
#[serde(default = "ClusterConfig::default_flight_rpc_listen_port")]
pub flight_rpc_listen_port: u16,
#[serde(default = "ClusterConfig::default_tcp_listen_port")]
pub tcp_listen_port: u16,
#[serde(default = "ClusterConfig::default_vector_listen_port")]
#[serde(default)]
pub http_listen_port: Option<u16>,
#[serde(default)]
pub grpc_listen_port: Option<u16>,
#[serde(default)]
pub flight_rpc_listen_port: Option<u16>,
#[serde(default)]
pub tcp_listen_port: Option<u16>,
#[serde(default)]
pub vector_listen_port: Option<u16>,
}

Expand All @@ -34,20 +34,20 @@ impl ClusterConfig {
vec!["127.0.0.1:8901".to_string()]
}

fn default_http_listen_port() -> u16 {
8902
fn default_http_listen_port() -> Option<u16> {
Some(8902)
}

fn default_grpc_listen_port() -> u16 {
8903
fn default_grpc_listen_port() -> Option<u16> {
Some(8903)
}

fn default_flight_rpc_listen_port() -> u16 {
8904
fn default_flight_rpc_listen_port() -> Option<u16> {
Some(8904)
}

fn default_tcp_listen_port() -> u16 {
8905
fn default_tcp_listen_port() -> Option<u16> {
Some(8905)
}

fn default_vector_listen_port() -> Option<u16> {
Expand All @@ -68,19 +68,19 @@ impl ClusterConfig {
}

if let Ok(port) = std::env::var("CNOSDB_HTTP_LISTEN_PORT") {
self.http_listen_port = port.parse::<u16>().unwrap();
self.http_listen_port = Some(port.parse::<u16>().unwrap());
}

if let Ok(port) = std::env::var("CNOSDB_GRPC_LISTEN_PORT") {
self.grpc_listen_port = port.parse::<u16>().unwrap();
self.grpc_listen_port = Some(port.parse::<u16>().unwrap());
}

if let Ok(port) = std::env::var("CNOSDB_FLIGHT_RPC_LISTEN_PORT") {
self.flight_rpc_listen_port = port.parse::<u16>().unwrap();
self.flight_rpc_listen_port = Some(port.parse::<u16>().unwrap());
}

if let Ok(port) = std::env::var("CNOSDB_TCP_LISTEN_PORT") {
self.flight_rpc_listen_port = port.parse::<u16>().unwrap();
self.flight_rpc_listen_port = Some(port.parse::<u16>().unwrap());
}

if let Ok(port) = std::env::var("CNOSDB_VECTOR_LISTEN_PORT") {
Expand Down Expand Up @@ -126,31 +126,37 @@ impl CheckConfig for ClusterConfig {
}
}

let default_http_addr = format!("{}:{}", &config.host, self.http_listen_port);
if let Err(e) = default_http_addr.to_socket_addrs() {
ret.add_error(CheckConfigItemResult {
config: config_name.clone(),
item: default_http_addr,
message: format!("Cannot resolve 'http_listen_addr': {}", e),
});
if let Some(port) = self.http_listen_port {
let default_http_addr = format!("{}:{}", &config.host, port);
if let Err(e) = default_http_addr.to_socket_addrs() {
ret.add_error(CheckConfigItemResult {
config: config_name.clone(),
item: default_http_addr,
message: format!("Cannot resolve 'http_listen_addr': {}", e),
});
}
}

let default_grpc_addr = format!("{}:{}", &config.host, self.grpc_listen_port);
if let Err(e) = default_grpc_addr.to_socket_addrs() {
ret.add_error(CheckConfigItemResult {
config: config_name.clone(),
item: default_grpc_addr,
message: format!("Cannot resolve 'grpc_listen_addr': {}", e),
});
if let Some(port) = self.grpc_listen_port {
let default_grpc_addr = format!("{}:{}", &config.host, port);
if let Err(e) = default_grpc_addr.to_socket_addrs() {
ret.add_error(CheckConfigItemResult {
config: config_name.clone(),
item: default_grpc_addr,
message: format!("Cannot resolve 'grpc_listen_addr': {}", e),
});
}
}

let default_flight_rpc_addr = format!("{}:{}", &config.host, self.flight_rpc_listen_port);
if let Err(e) = default_flight_rpc_addr.to_socket_addrs() {
ret.add_error(CheckConfigItemResult {
config: config_name.clone(),
item: default_flight_rpc_addr,
message: format!("Cannot resolve 'flight_rpc_listen_addr': {}", e),
});
if let Some(port) = self.flight_rpc_listen_port {
let default_flight_rpc_addr = format!("{}:{}", &config.host, port);
if let Err(e) = default_flight_rpc_addr.to_socket_addrs() {
ret.add_error(CheckConfigItemResult {
config: config_name.clone(),
item: default_flight_rpc_addr,
message: format!("Cannot resolve 'flight_rpc_listen_addr': {}", e),
});
}
}

let default_vector_addr = self
Expand Down

0 comments on commit b2c4729

Please sign in to comment.