Skip to content

Commit 301cd78

Browse files
authored
YMQ: Update format of labels in search events (#15421)
1 parent 1237379 commit 301cd78

File tree

2 files changed

+38
-14
lines changed

2 files changed

+38
-14
lines changed

ydb/core/ymq/actor/index_events_processor.cpp

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -362,20 +362,32 @@ void TSearchEventsProcessor::SaveQueueEvent(
362362
writer.Write("resource_id", queueName);
363363
writer.Write("name", event.CustomName);
364364
writer.Write("service", "message-queue");
365-
if (event.Type == EQueueEventType::Deleted)
365+
if (event.Type == EQueueEventType::Deleted) {
366366
writer.Write("deleted", tsIsoString);
367-
if (event.Type == EQueueEventType::Existed)
367+
}
368+
if (event.Type == EQueueEventType::Existed) {
368369
writer.Write("reindex_timestamp", nowIsoString);
370+
}
369371
writer.Write("permission", "ymq.queues.list");
370372
writer.Write("cloud_id", event.CloudId);
371373
writer.Write("folder_id", event.FolderId);
372-
writer.Write("labels", event.Labels);
373-
writer.OpenArray("resource_path");
374-
writer.OpenMap();
375-
writer.Write("resource_type", "resource-manager.folder");
376-
writer.Write("resource_id", event.FolderId);
377-
writer.CloseMap();
378-
writer.CloseArray(); // resource_path
374+
375+
{
376+
writer.OpenArray("resource_path");
377+
{
378+
writer.OpenMap();
379+
writer.Write("resource_type", "resource-manager.folder");
380+
writer.Write("resource_id", event.FolderId);
381+
writer.CloseMap();
382+
}
383+
writer.CloseArray();
384+
}
385+
386+
if (!event.Labels.empty() && event.Labels != "{}") {
387+
writer.OpenMap("attributes");
388+
writer.UnsafeWrite("labels", event.Labels);
389+
writer.CloseMap();
390+
}
379391
}
380392
writer.CloseMap();
381393
writer.Flush();

ydb/core/ymq/actor/yc_search_ut/index_events_processor_ut.cpp

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -293,12 +293,24 @@ class TIndexProcesorTests : public TTestBase {
293293
UNIT_ASSERT_VALUES_EQUAL(res_path.size(), 1);
294294
UNIT_ASSERT_VALUES_EQUAL(res_path[0].GetMap().size(), 2);
295295

296-
if (labels.empty()) {
297-
UNIT_ASSERT(map.find("labels") == map.end());
296+
if (labels.empty() || labels == "{}") {
297+
auto it1 = map.find("attributes");
298+
if (it1 != map.end()) {
299+
auto& attributes = it1->second.GetMap();
300+
auto it2 = attributes.find("labels");
301+
if (it2 != attributes.end()) {
302+
UNIT_ASSERT(it2->second.GetMap().empty());
303+
}
304+
}
298305
} else {
299-
auto it = map.find("labels");
300-
UNIT_ASSERT(it != map.end());
301-
UNIT_ASSERT_VALUES_EQUAL(it->second.GetString(), labels);
306+
NJson::TJsonMap labelsMap;
307+
NJson::ReadJsonTree(labels, &labelsMap);
308+
auto it1 = map.find("attributes");
309+
UNIT_ASSERT(it1 != map.end());
310+
auto& attributes = it1->second.GetMap();
311+
auto it2 = attributes.find("labels");
312+
UNIT_ASSERT(it2 != attributes.end());
313+
UNIT_ASSERT_VALUES_EQUAL(it2->second.GetMap(), labelsMap.GetMap());
302314
}
303315

304316
switch (type) {

0 commit comments

Comments
 (0)