diff options
author | Alexey Efimov <xeno@ydb.tech> | 2025-02-04 12:02:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-04 12:02:40 +0100 |
commit | e367c3b04ac98e3ab690729d31fc59c31a2b3a4d (patch) | |
tree | 1c69d59c99e5908efd1384bbdb1cc2ed0688405f | |
parent | 28ed3dfcdf9d2f488f627bf7f296018ae2fad605 (diff) | |
download | ydb-e367c3b04ac98e3ab690729d31fc59c31a2b3a4d.tar.gz |
fix flaky tests in viewer (#14184)
-rw-r--r-- | ydb/core/viewer/tests/canondata/result.json | 20 | ||||
-rw-r--r-- | ydb/core/viewer/tests/test.py | 27 |
2 files changed, 31 insertions, 16 deletions
diff --git a/ydb/core/viewer/tests/canondata/result.json b/ydb/core/viewer/tests/canondata/result.json index ba8a5b9312..b1a21da9ff 100644 --- a/ydb/core/viewer/tests/canondata/result.json +++ b/ydb/core/viewer/tests/canondata/result.json @@ -52,7 +52,7 @@ "StorageGroups": [ { "AllocationUnits": "0", - "Available": "0", + "Available": "not-zero-number-text", "DiskSpaceUsage": "not-zero-number", "ErasureSpecies": "none", "GroupGeneration": "1", @@ -60,7 +60,7 @@ "LatencyGetFast": "accepted-value", "LatencyPutTabletLog": "accepted-value", "LatencyPutUserData": "accepted-value", - "Limit": "0", + "Limit": "not-zero-number-text", "MissingDisks": "0", "Overall": "Green", "PoolName": "static", @@ -141,7 +141,7 @@ }, { "AllocationUnits": "0", - "Available": "0", + "Available": "not-zero-number-text", "DiskSpaceUsage": "not-zero-number", "ErasureSpecies": "none", "GroupGeneration": "1", @@ -150,7 +150,7 @@ "LatencyGetFast": "accepted-value", "LatencyPutTabletLog": "accepted-value", "LatencyPutUserData": "accepted-value", - "Limit": "0", + "Limit": "not-zero-number-text", "MediaType": "ROT,Kind:0", "MissingDisks": "0", "Overall": "Green", @@ -232,7 +232,7 @@ }, { "AllocationUnits": "0", - "Available": "0", + "Available": "not-zero-number-text", "DiskSpaceUsage": "not-zero-number", "ErasureSpecies": "none", "GroupGeneration": "1", @@ -241,7 +241,7 @@ "LatencyGetFast": "accepted-value", "LatencyPutTabletLog": "accepted-value", "LatencyPutUserData": "accepted-value", - "Limit": "0", + "Limit": "not-zero-number-text", "MediaType": "ROT,Kind:0", "MissingDisks": "0", "Overall": "Green", @@ -323,7 +323,7 @@ }, { "AllocationUnits": "30", - "Available": "0", + "Available": "not-zero-number-text", "DiskSpaceUsage": "not-zero-number", "ErasureSpecies": "none", "GroupGeneration": "2", @@ -332,7 +332,7 @@ "LatencyGetFast": "accepted-value", "LatencyPutTabletLog": "accepted-value", "LatencyPutUserData": "accepted-value", - "Limit": "0", + "Limit": "not-zero-number-text", "MediaType": "ROT", "MissingDisks": "0", "Overall": "Green", @@ -414,7 +414,7 @@ }, { "AllocationUnits": "48", - "Available": "0", + "Available": "not-zero-number-text", "DiskSpaceUsage": "not-zero-number", "ErasureSpecies": "none", "GroupGeneration": "2", @@ -423,7 +423,7 @@ "LatencyGetFast": "accepted-value", "LatencyPutTabletLog": "accepted-value", "LatencyPutUserData": "accepted-value", - "Limit": "0", + "Limit": "not-zero-number-text", "MediaType": "ROT", "MissingDisks": "0", "Overall": "Green", diff --git a/ydb/core/viewer/tests/test.py b/ydb/core/viewer/tests/test.py index e2e4333163..743399bd04 100644 --- a/ydb/core/viewer/tests/test.py +++ b/ydb/core/viewer/tests/test.py @@ -71,7 +71,7 @@ def get_viewer_db(url, params=None): wait_good = False wait_time = 0 -max_wait_time = 120 +max_wait_time = 300 def wait_for_cluster_ready(): @@ -109,6 +109,13 @@ def wait_for_cluster_ready(): time.sleep(1) wait_time += 1 for database in databases: + if database != domain_name: + call_viewer("/viewer/query", { + 'database': database, + 'query': 'create table table1(id int64, name text, primary key(id)))', + 'schema': 'multi' + }) + for database in databases: while wait_time < max_wait_time: all_good = False print("Waiting for database %s to be ready" % database) @@ -132,15 +139,23 @@ def wait_for_cluster_ready(): while wait_time < max_wait_time: all_good = False while True: - result = get_result(requests.get("http://localhost:%s/storage/groups?fields_required=all" % (cluster.nodes[1].mon_port))) # force connect between nodes + result = call_viewer("/viewer/query", { + 'database': domain_name, + 'query': 'SELECT * FROM `.sys/ds_vslots`', + }) if 'status_code' in result and result['status_code'] != 200: break bad = 0 - for group in result['StorageGroups']: - if group['Available'] == 0 or group['Limit'] == 0: + for vslot in result: + if 'State' not in vslot or vslot['State'] != 'OK': bad += 1 if bad > 0: break + result = get_result(requests.get("http://localhost:%s/storage/groups?fields_required=all" % (cluster.nodes[1].mon_port))) # force connect between nodes + if 'status_code' in result and result['status_code'] != 200: + break + if len(result['StorageGroups']) < 5: + break result = get_result(requests.get("http://localhost:%s/viewer/cluster" % (cluster.nodes[1].mon_port))) # force connect between nodes if 'status_code' in result and result['status_code'] != 200: break @@ -421,9 +436,9 @@ def test_viewer_nodes(): def test_storage_groups(): - return get_viewer_normalized("/storage/groups", { + return normalize_result(get_viewer("/storage/groups", { 'fields_required': 'all' - }) + })) def test_viewer_sysinfo(): |