diff options
author | qyryq <qyryq@ydb.tech> | 2025-03-07 13:27:18 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-07 13:27:18 +0300 |
commit | 301cd78747dc6b6be44a82f11d08b0672c19b94e (patch) | |
tree | 868023b8b0052ce4bd457ad969712eecaf0e36dc | |
parent | 12373797b2eecb994bb24516f5dea74dd6004447 (diff) | |
download | ydb-301cd78747dc6b6be44a82f11d08b0672c19b94e.tar.gz |
YMQ: Update format of labels in search events (#15421)
-rw-r--r-- | ydb/core/ymq/actor/index_events_processor.cpp | 30 | ||||
-rw-r--r-- | ydb/core/ymq/actor/yc_search_ut/index_events_processor_ut.cpp | 22 |
2 files changed, 38 insertions, 14 deletions
diff --git a/ydb/core/ymq/actor/index_events_processor.cpp b/ydb/core/ymq/actor/index_events_processor.cpp index 77c2beffde7..4f7288e488a 100644 --- a/ydb/core/ymq/actor/index_events_processor.cpp +++ b/ydb/core/ymq/actor/index_events_processor.cpp @@ -362,20 +362,32 @@ void TSearchEventsProcessor::SaveQueueEvent( writer.Write("resource_id", queueName); writer.Write("name", event.CustomName); writer.Write("service", "message-queue"); - if (event.Type == EQueueEventType::Deleted) + if (event.Type == EQueueEventType::Deleted) { writer.Write("deleted", tsIsoString); - if (event.Type == EQueueEventType::Existed) + } + if (event.Type == EQueueEventType::Existed) { writer.Write("reindex_timestamp", nowIsoString); + } writer.Write("permission", "ymq.queues.list"); writer.Write("cloud_id", event.CloudId); writer.Write("folder_id", event.FolderId); - writer.Write("labels", event.Labels); - writer.OpenArray("resource_path"); - writer.OpenMap(); - writer.Write("resource_type", "resource-manager.folder"); - writer.Write("resource_id", event.FolderId); - writer.CloseMap(); - writer.CloseArray(); // resource_path + + { + writer.OpenArray("resource_path"); + { + writer.OpenMap(); + writer.Write("resource_type", "resource-manager.folder"); + writer.Write("resource_id", event.FolderId); + writer.CloseMap(); + } + writer.CloseArray(); + } + + if (!event.Labels.empty() && event.Labels != "{}") { + writer.OpenMap("attributes"); + writer.UnsafeWrite("labels", event.Labels); + writer.CloseMap(); + } } writer.CloseMap(); writer.Flush(); diff --git a/ydb/core/ymq/actor/yc_search_ut/index_events_processor_ut.cpp b/ydb/core/ymq/actor/yc_search_ut/index_events_processor_ut.cpp index c0520cc5e42..846e6fbe74f 100644 --- a/ydb/core/ymq/actor/yc_search_ut/index_events_processor_ut.cpp +++ b/ydb/core/ymq/actor/yc_search_ut/index_events_processor_ut.cpp @@ -293,12 +293,24 @@ private: UNIT_ASSERT_VALUES_EQUAL(res_path.size(), 1); UNIT_ASSERT_VALUES_EQUAL(res_path[0].GetMap().size(), 2); - if (labels.empty()) { - UNIT_ASSERT(map.find("labels") == map.end()); + if (labels.empty() || labels == "{}") { + auto it1 = map.find("attributes"); + if (it1 != map.end()) { + auto& attributes = it1->second.GetMap(); + auto it2 = attributes.find("labels"); + if (it2 != attributes.end()) { + UNIT_ASSERT(it2->second.GetMap().empty()); + } + } } else { - auto it = map.find("labels"); - UNIT_ASSERT(it != map.end()); - UNIT_ASSERT_VALUES_EQUAL(it->second.GetString(), labels); + NJson::TJsonMap labelsMap; + NJson::ReadJsonTree(labels, &labelsMap); + auto it1 = map.find("attributes"); + UNIT_ASSERT(it1 != map.end()); + auto& attributes = it1->second.GetMap(); + auto it2 = attributes.find("labels"); + UNIT_ASSERT(it2 != attributes.end()); + UNIT_ASSERT_VALUES_EQUAL(it2->second.GetMap(), labelsMap.GetMap()); } switch (type) { |