Replace flatten_tree with extract_tree_levels

This commit is contained in:
Vitaliy Filippov
2023-05-18 17:44:00 +03:00
parent 57feb7f390
commit c1d470522c
4 changed files with 24 additions and 64 deletions
+12 -17
View File
@@ -1112,27 +1112,23 @@ class Mon
filter_osds_by_tags(orig_tree, flat_tree, tags)
{
if (!tags)
{
return;
}
return 1;
for (const tag of (tags instanceof Array ? tags : [ tags ]))
{
for (const host in flat_tree)
for (const item in flat_tree)
{
let found = 0;
for (const osd in flat_tree[host])
if (flat_tree[item] instanceof Object)
{
if (!orig_tree[osd].tags || !orig_tree[osd].tags[tag])
delete flat_tree[host][osd];
else
found++;
}
if (!found)
{
delete flat_tree[host];
if (!filter_osds_by_tags(orig_tree, flat_tree[item], tags))
delete flat_tree[item];
}
else if (!orig_tree[item].tags || !orig_tree[item].tags[tag])
delete flat_tree[item];
}
}
for (const item in flat_tree)
return 1;
return 0;
}
get_affinity_osds(pool_cfg, up_osds, osd_tree)
@@ -1191,9 +1187,8 @@ class Mon
{
continue;
}
let pool_tree = osd_tree[pool_cfg.root_node || ''];
pool_tree = pool_tree ? pool_tree.children : [];
pool_tree = LPOptimizer.flatten_tree(pool_tree, levels, pool_cfg.failure_domain, 'osd');
let pool_tree = osd_tree[pool_cfg.root_node || ''] || {};
pool_tree = LPOptimizer.extract_tree_levels(pool_tree, [ pool_cfg.failure_domain, 'osd' ], levels);
this.filter_osds_by_tags(osd_tree, pool_tree, pool_cfg.osd_tags);
// These are for the purpose of building history.osd_sets
const real_prev_pgs = [];