aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorqyryq <qyryq@ydb.tech>2025-03-07 13:27:18 +0300
committerGitHub <noreply@github.com>2025-03-07 13:27:18 +0300
commit301cd78747dc6b6be44a82f11d08b0672c19b94e (patch)
tree868023b8b0052ce4bd457ad969712eecaf0e36dc
parent12373797b2eecb994bb24516f5dea74dd6004447 (diff)
downloadydb-301cd78747dc6b6be44a82f11d08b0672c19b94e.tar.gz
YMQ: Update format of labels in search events (#15421)
-rw-r--r--ydb/core/ymq/actor/index_events_processor.cpp30
-rw-r--r--ydb/core/ymq/actor/yc_search_ut/index_events_processor_ut.cpp22
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) {