Skip to content

Commit 77dc86f

Browse files
self in cluster info
1 parent d1b1f30 commit 77dc86f

File tree

3 files changed

+34
-87
lines changed

3 files changed

+34
-87
lines changed

src/handlers/http/cluster/mod.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,20 @@ pub async fn send_retention_cleanup_request(
540540
}
541541

542542
pub async fn get_cluster_info() -> Result<impl Responder, StreamError> {
543-
// Get ingestor and indexer metadata concurrently
543+
let self_info = utils::ClusterInfo::new(
544+
&PARSEABLE.options.address,
545+
true,
546+
PARSEABLE
547+
.options
548+
.staging_dir()
549+
.to_string_lossy()
550+
.to_string(),
551+
PARSEABLE.storage.get_endpoint(),
552+
None,
553+
Some(String::from("200 OK")),
554+
&PARSEABLE.options.mode.to_node_type(),
555+
);
556+
// Get querier, ingestor and indexer metadata concurrently
544557
let (querier_result, ingestor_result, indexer_result) = future::join3(
545558
get_node_info("querier"),
546559
get_node_info("ingestor"),
@@ -585,6 +598,7 @@ pub async fn get_cluster_info() -> Result<impl Responder, StreamError> {
585598
infos.extend(querier_infos?);
586599
infos.extend(ingestor_infos?);
587600
infos.extend(indexer_infos?);
601+
infos.push(self_info);
588602

589603
Ok(actix_web::HttpResponse::Ok().json(infos))
590604
}

src/handlers/http/modal/mod.rs

Lines changed: 7 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -200,14 +200,14 @@ pub async fn load_on_init() -> anyhow::Result<()> {
200200
}
201201

202202
#[derive(Debug, Serialize, Deserialize, Clone, Eq, PartialEq, Default)]
203+
#[serde(rename_all = "lowercase")]
203204
pub enum NodeType {
204205
#[default]
205-
#[serde(rename = "ingestor")]
206206
Ingestor,
207-
#[serde(rename = "indexer")]
208207
Indexer,
209-
#[serde(rename = "querier")]
210208
Querier,
209+
Prism,
210+
All,
211211
}
212212

213213
impl NodeType {
@@ -216,6 +216,8 @@ impl NodeType {
216216
NodeType::Ingestor => "ingestor",
217217
NodeType::Indexer => "indexer",
218218
NodeType::Querier => "querier",
219+
NodeType::Prism => "prism",
220+
NodeType::All => "all",
219221
}
220222
}
221223

@@ -224,6 +226,8 @@ impl NodeType {
224226
NodeType::Ingestor => Mode::Ingest,
225227
NodeType::Indexer => Mode::Index,
226228
NodeType::Querier => Mode::Query,
229+
NodeType::Prism => Mode::Prism,
230+
NodeType::All => Mode::All,
227231
}
228232
}
229233
}
@@ -532,89 +536,6 @@ pub type IngestorMetadata = NodeMetadata;
532536
pub type IndexerMetadata = NodeMetadata;
533537
pub type QuerierMetadata = NodeMetadata;
534538

535-
// Helper functions for creating specific node types
536-
pub fn create_ingestor_metadata(
537-
port: String,
538-
domain_name: String,
539-
bucket_name: String,
540-
username: &str,
541-
password: &str,
542-
ingestor_id: String,
543-
flight_port: String,
544-
) -> NodeMetadata {
545-
NodeMetadata::new(
546-
port,
547-
domain_name,
548-
bucket_name,
549-
username,
550-
password,
551-
ingestor_id,
552-
flight_port,
553-
NodeType::Ingestor,
554-
)
555-
}
556-
557-
pub fn load_ingestor_metadata(
558-
options: &Options,
559-
storage: &dyn ObjectStorageProvider,
560-
) -> Arc<NodeMetadata> {
561-
NodeMetadata::load(options, storage, NodeType::Ingestor)
562-
}
563-
564-
pub fn create_indexer_metadata(
565-
port: String,
566-
domain_name: String,
567-
bucket_name: String,
568-
username: &str,
569-
password: &str,
570-
indexer_id: String,
571-
flight_port: String,
572-
) -> NodeMetadata {
573-
NodeMetadata::new(
574-
port,
575-
domain_name,
576-
bucket_name,
577-
username,
578-
password,
579-
indexer_id,
580-
flight_port,
581-
NodeType::Indexer,
582-
)
583-
}
584-
585-
pub fn load_indexer_metadata(
586-
options: &Options,
587-
storage: &dyn ObjectStorageProvider,
588-
) -> Arc<NodeMetadata> {
589-
NodeMetadata::load(options, storage, NodeType::Indexer)
590-
}
591-
592-
pub fn create_querier_metadata(
593-
port: String,
594-
domain_name: String,
595-
bucket_name: String,
596-
username: &str,
597-
password: &str,
598-
querier_id: String,
599-
flight_port: String,
600-
) -> NodeMetadata {
601-
NodeMetadata::new(
602-
port,
603-
domain_name,
604-
bucket_name,
605-
username,
606-
password,
607-
querier_id,
608-
flight_port,
609-
NodeType::Querier,
610-
)
611-
}
612-
pub fn load_querier_metadata(
613-
options: &Options,
614-
storage: &dyn ObjectStorageProvider,
615-
) -> Arc<NodeMetadata> {
616-
NodeMetadata::load(options, storage, NodeType::Querier)
617-
}
618539
#[cfg(test)]
619540
mod test {
620541
use actix_web::body::MessageBody;

src/option.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
use parquet::basic::{BrotliLevel, GzipLevel, ZstdLevel};
1919
use serde::{Deserialize, Serialize};
2020

21+
use crate::handlers::http::modal::NodeType;
22+
2123
#[derive(Debug, Default, Eq, PartialEq, Clone, Copy, Serialize, Deserialize)]
2224
pub enum Mode {
2325
Query,
@@ -41,6 +43,16 @@ impl Mode {
4143

4244
Ok(())
4345
}
46+
47+
pub fn to_node_type(&self) -> NodeType {
48+
match self {
49+
Mode::Ingest => NodeType::Ingestor,
50+
Mode::Index => NodeType::Indexer,
51+
Mode::Query => NodeType::Querier,
52+
Mode::Prism => NodeType::Prism,
53+
Mode::All => NodeType::All,
54+
}
55+
}
4456
}
4557

4658
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Deserialize)]

0 commit comments

Comments
 (0)