- Fixed restarting bundles Resolves: RHEL-79033 - Fixed deletion of misconfigured bundles Resolves: RHEL-79090 - Fixed filtering of resource clones in web console Resolves: RHEL-78654 - Updated bundled rubygem rack Resolves: RHEL-79676
83 lines
3.0 KiB
Diff
83 lines
3.0 KiB
Diff
From e949ae0e2fc350ed1e74ce48b50ac812efd92f30 Mon Sep 17 00:00:00 2001
|
|
From: Ivan Devat <idevat@redhat.com>
|
|
Date: Mon, 20 Jan 2025 12:13:25 +0100
|
|
Subject: [PATCH] fix: filter clones by agent name in resource tree
|
|
|
|
---
|
|
.../src/app/view/cluster/resources/tree/filter.ts | 13 +++++++------
|
|
.../test/src/test/scenes/resources/tree.test.ts | 14 +++++++++++---
|
|
2 files changed, 18 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/packages/app/src/app/view/cluster/resources/tree/filter.ts b/packages/app/src/app/view/cluster/resources/tree/filter.ts
|
|
index 118e6cc2..b047a094 100644
|
|
--- a/packages/app/src/app/view/cluster/resources/tree/filter.ts
|
|
+++ b/packages/app/src/app/view/cluster/resources/tree/filter.ts
|
|
@@ -1,4 +1,4 @@
|
|
-import {Resource} from "app/view/cluster/types";
|
|
+import type {FenceDevice, Resource} from "app/view/cluster/types";
|
|
|
|
type Group = Extract<Resource, {itemType: "group"}>;
|
|
type Clone = Extract<Resource, {itemType: "clone"}>;
|
|
@@ -14,13 +14,14 @@ const createResourceFilter = (filter: string) => {
|
|
const match = (searchable: string) =>
|
|
searchable.toLowerCase().includes(filter.toLowerCase());
|
|
|
|
+ const matchPrimitive = (primitive: Primitive | FenceDevice) =>
|
|
+ match(primitive.id) || match(primitive.agentName);
|
|
+
|
|
const filterPrimitive = (primitive: Primitive) =>
|
|
- match(primitive.id) || match(primitive.agentName) ? primitive : null;
|
|
+ matchPrimitive(primitive) ? primitive : null;
|
|
|
|
const filterGroup = (group: Group): Group | null => {
|
|
- const primitives = group.resources.filter(
|
|
- primitive => match(primitive.id) || match(primitive.agentName),
|
|
- );
|
|
+ const primitives = group.resources.filter(matchPrimitive);
|
|
return match(group.id) || primitives.length > 0
|
|
? {...group, resources: primitives}
|
|
: null;
|
|
@@ -34,7 +35,7 @@ const createResourceFilter = (filter: string) => {
|
|
: null;
|
|
}
|
|
|
|
- if (match(clone.member.id)) {
|
|
+ if (matchPrimitive(clone.member)) {
|
|
return clone;
|
|
}
|
|
|
|
diff --git a/packages/test/src/test/scenes/resources/tree.test.ts b/packages/test/src/test/scenes/resources/tree.test.ts
|
|
index f9b118f8..19190955 100644
|
|
--- a/packages/test/src/test/scenes/resources/tree.test.ts
|
|
+++ b/packages/test/src/test/scenes/resources/tree.test.ts
|
|
@@ -19,7 +19,15 @@ const resourceList = [
|
|
"Clone1",
|
|
cs.group("Group2", [cs.primitive("ResourceD"), cs.primitive("ResourceE")]),
|
|
),
|
|
- cs.clone("Clone2", cs.primitive("ResourceF")),
|
|
+ cs.clone(
|
|
+ "Clone2",
|
|
+ cs.primitive("ResourceF", {
|
|
+ agentname: "ocf:heartbeat:apache",
|
|
+ provider: "heartbeat",
|
|
+ class: "ocf",
|
|
+ type: "apache",
|
|
+ }),
|
|
+ ),
|
|
];
|
|
|
|
const primitiveItem = (id: string) =>
|
|
@@ -129,7 +137,7 @@ describe("Resource tree filter", () => {
|
|
await isAbsent(groupItem("Group2"));
|
|
await isAbsent(primitiveItem("ResourceD"));
|
|
await isAbsent(primitiveItem("ResourceE"));
|
|
- await isAbsent(cloneItem("Clone2"));
|
|
- await isAbsent(primitiveItem("ResourceF"));
|
|
+ await isVisible(cloneItem("Clone2"));
|
|
+ await isVisible(primitiveItem("ResourceF"));
|
|
});
|
|
});
|
|
--
|
|
2.48.1
|
|
|