From 292a298205c69b1e557c7b0368f5a8c98b7e4c16411c89cf45d183786fe7708b Mon Sep 17 00:00:00 2001 From: raven <7156279+RavenX8@users.noreply.github.com> Date: Wed, 29 Jan 2025 14:25:53 -0500 Subject: [PATCH] - update: grab version info to register from the cargo package - update: docker volume to persist the registered service IDs - update: consul service id function to store the service id in the services folder --- api-service/src/main.rs | 3 ++- auth-service/src/main.rs | 3 ++- character-service/src/main.rs | 3 ++- database-service/src/main.rs | 3 ++- docker-compose.yml | 17 ++++++++++++++++- packet-service/src/main.rs | 3 ++- session-service/src/main.rs | 3 ++- utils/src/consul_registration.rs | 3 ++- world-service/src/main.rs | 3 ++- 9 files changed, 32 insertions(+), 9 deletions(-) diff --git a/api-service/src/main.rs b/api-service/src/main.rs index 6e883c0..0fc72a8 100644 --- a/api-service/src/main.rs +++ b/api-service/src/main.rs @@ -35,7 +35,8 @@ async fn main() -> Result<(), Box> { // Register service with Consul let service_id = consul_registration::get_or_generate_service_id(env!("CARGO_PKG_NAME")); - let tags = vec!["version-1.0".to_string()]; + let version = env!("CARGO_PKG_VERSION").to_string(); + let tags = vec![version]; let meta = HashMap::new(); consul_registration::register_service( &consul_url, diff --git a/auth-service/src/main.rs b/auth-service/src/main.rs index 50b2803..3d2fcd8 100644 --- a/auth-service/src/main.rs +++ b/auth-service/src/main.rs @@ -39,7 +39,8 @@ async fn main() -> Result<(), Box> { // Register service with Consul let service_id = consul_registration::get_or_generate_service_id(env!("CARGO_PKG_NAME")); - let tags = vec!["version-1.0".to_string()]; + let version = env!("CARGO_PKG_VERSION").to_string(); + let tags = vec![version]; let mut meta = HashMap::new(); consul_registration::register_service( &consul_url, diff --git a/character-service/src/main.rs b/character-service/src/main.rs index ab3041f..1e111ae 100644 --- a/character-service/src/main.rs +++ b/character-service/src/main.rs @@ -39,7 +39,8 @@ async fn main() -> Result<(), Box> { // Register service with Consul let service_id = consul_registration::get_or_generate_service_id(env!("CARGO_PKG_NAME")); - let tags = vec!["version-1.0".to_string()]; + let version = env!("CARGO_PKG_VERSION").to_string(); + let tags = vec![version]; let mut meta = HashMap::new(); meta.insert("name".to_string(), "Rose".to_string()); consul_registration::register_service( diff --git a/database-service/src/main.rs b/database-service/src/main.rs index e847f9e..7b3f828 100644 --- a/database-service/src/main.rs +++ b/database-service/src/main.rs @@ -37,7 +37,8 @@ async fn main() -> Result<(), Box> { // Register service with Consul let service_id = consul_registration::get_or_generate_service_id(env!("CARGO_PKG_NAME")); - let tags = vec!["version-1.0".to_string()]; + let version = env!("CARGO_PKG_VERSION").to_string(); + let tags = vec![version]; let meta = HashMap::new(); consul_registration::register_service( &consul_url, diff --git a/docker-compose.yml b/docker-compose.yml index 43be603..3603fd7 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,6 +29,8 @@ - session-service - database-service - consul + volumes: + - service_ids:/services api-service: build: @@ -44,6 +46,8 @@ depends_on: - auth-service - consul + volumes: + - service_ids:/services database-service: build: @@ -58,6 +62,8 @@ depends_on: - db - consul + volumes: + - service_ids:/services character-service: build: @@ -72,6 +78,8 @@ depends_on: - auth-service - consul + volumes: + - service_ids:/services world-service: build: @@ -86,6 +94,8 @@ depends_on: - auth-service - consul + volumes: + - service_ids:/services packet-service: build: @@ -100,6 +110,8 @@ depends_on: - auth-service - consul + volumes: + - service_ids:/services session-service: build: @@ -113,6 +125,8 @@ - .env depends_on: - consul + volumes: + - service_ids:/services db: image: postgres:17 @@ -135,4 +149,5 @@ - ./scripts/consul.json:/consul/config/cors.json volumes: - db_data: \ No newline at end of file + db_data: + service_ids: diff --git a/packet-service/src/main.rs b/packet-service/src/main.rs index b75c9c5..e03b680 100644 --- a/packet-service/src/main.rs +++ b/packet-service/src/main.rs @@ -73,7 +73,8 @@ async fn main() -> Result<(), Box> { // Register service with Consul let service_id = consul_registration::get_or_generate_service_id(env!("CARGO_PKG_NAME")); - let tags = vec!["version-1.0".to_string()]; + let version = env!("CARGO_PKG_VERSION").to_string(); + let tags = vec![version]; let mut meta = HashMap::new(); consul_registration::register_service( &consul_url, diff --git a/session-service/src/main.rs b/session-service/src/main.rs index 8a3720c..86f21d1 100644 --- a/session-service/src/main.rs +++ b/session-service/src/main.rs @@ -40,7 +40,8 @@ async fn main() -> Result<(), Box> { // Register service with Consul let service_id = consul_registration::get_or_generate_service_id(env!("CARGO_PKG_NAME")); - let tags = vec!["version-1.0".to_string()]; + let version = env!("CARGO_PKG_VERSION").to_string(); + let tags = vec![version]; let meta = HashMap::new(); consul_registration::register_service( &consul_url, diff --git a/utils/src/consul_registration.rs b/utils/src/consul_registration.rs index 8a1a40a..3871d8b 100644 --- a/utils/src/consul_registration.rs +++ b/utils/src/consul_registration.rs @@ -32,8 +32,9 @@ pub fn generate_service_id() -> String { } pub fn get_or_generate_service_id(package_name: &str) -> String { // let package_name = env!("CARGO_PKG_NAME"); - let file_name = format!("{}_service_id.txt", package_name); + let file_name = format!("/services/{}_service_id.txt", package_name); let path = Path::new(&file_name); + let _ = fs::create_dir_all("/services"); // make sure the folders exist if path.exists() { // Read the service ID from the file diff --git a/world-service/src/main.rs b/world-service/src/main.rs index 6b01d3b..5985d99 100644 --- a/world-service/src/main.rs +++ b/world-service/src/main.rs @@ -29,7 +29,8 @@ async fn main() -> Result<(), Box> { // Register service with Consul let service_id = consul_registration::get_or_generate_service_id(env!("CARGO_PKG_NAME")); - let tags = vec!["version-1.0".to_string()]; + let version = env!("CARGO_PKG_VERSION").to_string(); + let tags = vec![version]; let mut meta = HashMap::new(); meta.insert("name".to_string(), "Athena".to_string()); consul_registration::register_service(