From dc43fd0c8804aeb0bbc8a7906a823b388b7be262 Mon Sep 17 00:00:00 2001
From: Kurdakov Alexander <kusancho12@gmail.com>
Date: Sat, 13 Jul 2024 01:04:09 +0300
Subject: [PATCH] fix: remove default tier from cluster configuration

default tier persisted only in the absence of configuration file

This partially reverts commit 6f0cee6339a4058a1b65b9373d6ea52bbec0e406.
---
 src/config.rs                | 12 +++++-------
 test/int/test_config_file.py | 26 +++-----------------------
 2 files changed, 8 insertions(+), 30 deletions(-)

diff --git a/src/config.rs b/src/config.rs
index 7bb9c397f1..db407f0098 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -783,20 +783,18 @@ pub struct ClusterConfig {
 
 impl ClusterConfig {
     pub fn tiers(&self) -> HashMap<String, Tier> {
-        let mut tier_defs = HashMap::with_capacity(self.tier.len());
-
-        let contains_default_tier_definition = self.tier.contains_key(DEFAULT_TIER);
-        if !contains_default_tier_definition {
-            tier_defs.insert(
-                DEFAULT_TIER.into(),
+        if self.tier.is_empty() {
+            return HashMap::from([(
+                DEFAULT_TIER.to_string(),
                 Tier {
                     name: DEFAULT_TIER.into(),
                     replication_factor: self.default_replication_factor(),
                     can_vote: true,
                 },
-            );
+            )]);
         }
 
+        let mut tier_defs = HashMap::with_capacity(self.tier.len());
         for (name, info) in &self.tier {
             let replication_factor = info
                 .replication_factor
diff --git a/test/int/test_config_file.py b/test/int/test_config_file.py
index 091a1dd10d..55875704c4 100644
--- a/test/int/test_config_file.py
+++ b/test/int/test_config_file.py
@@ -403,27 +403,7 @@ def test_picodata_default_config(cluster: Cluster):
     i.wait_online()
 
 
-def test_default_tier_without_default_replication_factor(cluster: Cluster):
-    # default tier wasn't created only in case of explicit configuration file
-    cluster.set_config_file(
-        yaml="""
-cluster:
-    cluster_id: test
-    tier:
-        not_default:
-"""
-    )
-
-    instance = cluster.add_instance()
-
-    dql = instance.sql(
-        'select "replication_factor" from "_pico_tier" where "name" = \'default\'',
-        sudo=True,
-    )
-    assert dql[0][0] == 1
-
-
-def test_default_tier_with_default_replication_factor(cluster: Cluster):
+def test_default_tier_is_not_created_with_configuration_file(cluster: Cluster):
     # default tier wasn't created only in case of explicit configuration file
     cluster.set_config_file(
         yaml="""
@@ -435,10 +415,10 @@ cluster:
 """
     )
 
-    instance = cluster.add_instance()
+    instance = cluster.add_instance(tier="not_default")
 
     dql = instance.sql(
         'select "replication_factor" from "_pico_tier" where "name" = \'default\'',
         sudo=True,
     )
-    assert dql[0][0] == 3
+    assert dql == []
-- 
GitLab