Skip to content

Commit 3c9e18f

Browse files
upcoming: [DI-28270] - Remove firewall filtering and region filter dependency (#13111)
* upcoming: [DI-28270] - Remove firewall filtering and region filter depdency * upcoming: [DI-28270] - Remove typo * upcoming: [DI-28270] - Add condition in error text * upcoming: [DI-28270] - Add changeset
1 parent 6b0b083 commit 3c9e18f

File tree

7 files changed

+48
-141
lines changed

7 files changed

+48
-141
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@linode/manager": Upcoming Features
3+
---
4+
5+
CloudPulse-Metrics: Remove filtering of firewalls and region filter dependency on firewall-select in Firewalls ([#13111](https://github.com/linode/manager/pull/13111))

packages/manager/src/features/CloudPulse/Utils/FilterBuilder.test.ts

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -147,26 +147,20 @@ it('test getResourceSelectionProperties method for linode-firewall', () => {
147147
expect(resourceSelectionConfig).toBeDefined();
148148

149149
if (resourceSelectionConfig) {
150-
const {
151-
disabled,
152-
handleResourcesSelection,
153-
label,
154-
savePreferences,
155-
filterFn,
156-
} = getResourcesProperties(
157-
{
158-
config: resourceSelectionConfig,
159-
dashboard: { ...mockDashboard, id: 4 },
160-
isServiceAnalyticsIntegration: true,
161-
},
162-
vi.fn()
163-
);
150+
const { disabled, handleResourcesSelection, label, savePreferences } =
151+
getResourcesProperties(
152+
{
153+
config: resourceSelectionConfig,
154+
dashboard: { ...mockDashboard, id: 4 },
155+
isServiceAnalyticsIntegration: true,
156+
},
157+
vi.fn()
158+
);
164159
const { name } = resourceSelectionConfig.configuration;
165160
expect(handleResourcesSelection).toBeDefined();
166161
expect(savePreferences).toEqual(false);
167162
expect(disabled).toEqual(false);
168163
expect(label).toEqual(name);
169-
expect(filterFn).toBeDefined();
170164
}
171165
});
172166

packages/manager/src/features/CloudPulse/Utils/FilterBuilder.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ export const getRegionProperties = (
143143
dashboard
144144
),
145145
xFilter: filterBasedOnConfig(config, dependentFilters ?? {}),
146-
selectedEntities: (dependentFilters?.[RESOURCE_ID] ?? []) as string[],
147146
};
148147
};
149148

packages/manager/src/features/CloudPulse/Utils/FilterConfig.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ import {
1111
RESOURCE_ID,
1212
} from './constants';
1313
import { CloudPulseAvailableViews, CloudPulseSelectTypes } from './models';
14-
import { filterFirewallResources, filterKubernetesClusters } from './utils';
14+
import { filterKubernetesClusters } from './utils';
1515

1616
import type { CloudPulseServiceTypeFilterMap } from './models';
17-
import type { Firewall, KubernetesCluster } from '@linode/api-v4';
17+
import type { KubernetesCluster } from '@linode/api-v4';
1818

1919
const TIME_DURATION = 'Time Range';
2020

@@ -234,7 +234,6 @@ export const FIREWALL_CONFIG: Readonly<CloudPulseServiceTypeFilterMap> = {
234234
{
235235
configuration: {
236236
filterKey: 'resource_id',
237-
children: [PARENT_ENTITY_REGION],
238237
filterType: 'string',
239238
isFilterable: true,
240239
isMetricsFilter: true,
@@ -244,14 +243,11 @@ export const FIREWALL_CONFIG: Readonly<CloudPulseServiceTypeFilterMap> = {
244243
placeholder: 'Select Firewalls',
245244
priority: 1,
246245
associatedEntityType: 'linode',
247-
filterFn: (resources: Firewall[]) =>
248-
filterFirewallResources(resources, 'linode'),
249246
},
250247
name: 'Firewalls',
251248
},
252249
{
253250
configuration: {
254-
dependency: ['resource_id'],
255251
filterKey: PARENT_ENTITY_REGION,
256252
filterType: 'string',
257253
isFilterable: true,
@@ -339,7 +335,7 @@ export const FIREWALL_NODEBALANCER_CONFIG: Readonly<CloudPulseServiceTypeFilterM
339335
{
340336
configuration: {
341337
filterKey: RESOURCE_ID,
342-
children: [PARENT_ENTITY_REGION, NODEBALANCER_ID],
338+
children: [NODEBALANCER_ID],
343339
filterType: 'string',
344340
isFilterable: true,
345341
isMetricsFilter: true,
@@ -349,14 +345,11 @@ export const FIREWALL_NODEBALANCER_CONFIG: Readonly<CloudPulseServiceTypeFilterM
349345
placeholder: 'Select a Firewall',
350346
priority: 1,
351347
apiV4QueryKey: queryFactory.resources('firewall'),
352-
filterFn: (resources: Firewall[]) =>
353-
filterFirewallResources(resources, 'nodebalancer'),
354348
},
355349
name: 'Firewall',
356350
},
357351
{
358352
configuration: {
359-
dependency: [RESOURCE_ID],
360353
children: [NODEBALANCER_ID],
361354
filterKey: PARENT_ENTITY_REGION,
362355
filterType: 'string',

packages/manager/src/features/CloudPulse/Utils/utils.test.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -361,14 +361,12 @@ describe('getEnabledServiceTypes', () => {
361361
const resourcesFilterConfig = getResourcesFilterConfig(4);
362362
expect(resourcesFilterConfig).toBeDefined();
363363
expect(resourcesFilterConfig?.associatedEntityType).toBe('linode');
364-
expect(resourcesFilterConfig?.filterFn).toBeDefined();
365364
});
366365

367366
it('should return the resources filter configuration for the nodebalancer-firewall dashboard', () => {
368367
const resourcesFilterConfig = getResourcesFilterConfig(8);
369368
expect(resourcesFilterConfig).toBeDefined();
370369
expect(resourcesFilterConfig?.associatedEntityType).toBe('nodebalancer');
371-
expect(resourcesFilterConfig?.filterFn).toBeDefined();
372370
});
373371
});
374372

packages/manager/src/features/CloudPulse/shared/CloudPulseRegionSelect.test.tsx

Lines changed: 15 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,7 @@ import { screen } from '@testing-library/react';
88
import userEvent from '@testing-library/user-event';
99
import * as React from 'react';
1010

11-
import {
12-
dashboardFactory,
13-
databaseInstanceFactory,
14-
firewallFactory,
15-
} from 'src/factories';
11+
import { dashboardFactory, databaseInstanceFactory } from 'src/factories';
1612
import { renderWithTheme } from 'src/utilities/testHelpers';
1713

1814
import { NO_REGION_MESSAGE } from '../Utils/constants';
@@ -24,7 +20,6 @@ import type { useRegionsQuery } from '@linode/queries';
2420

2521
const props: CloudPulseRegionSelectProps = {
2622
filterKey: 'region',
27-
selectedEntities: [],
2823
handleRegionChange: vi.fn(),
2924
label: 'Region',
3025
selectedDashboard: undefined,
@@ -327,26 +322,10 @@ describe('CloudPulseRegionSelect', () => {
327322
id: 'ap-west',
328323
label: 'IN, Mumbai',
329324
capabilities: [capabilityServiceTypeMapping['firewall']],
330-
}),
331-
],
332-
isError: false,
333-
isLoading: false,
334-
});
335-
queryMocks.useResourcesQuery.mockReturnValue({
336-
data: [
337-
firewallFactory.build({
338-
id: 1,
339-
entities: [{ id: 1, type: 'linode' }],
340-
}),
341-
],
342-
isError: false,
343-
isLoading: false,
344-
});
345-
queryMocks.useAllLinodesQuery.mockReturnValue({
346-
data: [
347-
linodeFactory.build({
348-
id: 1,
349-
region: 'ap-west',
325+
monitors: {
326+
metrics: [capabilityServiceTypeMapping['firewall']],
327+
alerts: [],
328+
},
350329
}),
351330
],
352331
isError: false,
@@ -362,7 +341,6 @@ describe('CloudPulseRegionSelect', () => {
362341
service_type: 'firewall',
363342
id: 4,
364343
})}
365-
selectedEntities={['1']}
366344
/>
367345
);
368346
await user.click(screen.getByRole('button', { name: 'Open' }));
@@ -378,31 +356,16 @@ describe('CloudPulseRegionSelect', () => {
378356
id: 'ap-west',
379357
label: 'IN, Mumbai',
380358
capabilities: [capabilityServiceTypeMapping['firewall']],
359+
monitors: {
360+
metrics: [capabilityServiceTypeMapping['firewall']],
361+
alerts: [],
362+
},
381363
}),
382364
],
383365
isError: false,
384366
isLoading: false,
385367
});
386-
queryMocks.useResourcesQuery.mockReturnValue({
387-
data: [
388-
firewallFactory.build({
389-
id: 1,
390-
entities: [{ id: 1, type: 'linode' }],
391-
}),
392-
],
393-
isError: false,
394-
isLoading: false,
395-
});
396-
queryMocks.useAllLinodesQuery.mockReturnValue({
397-
data: [
398-
linodeFactory.build({
399-
id: 1,
400-
region: 'ap-west',
401-
}),
402-
],
403-
isError: false,
404-
isLoading: false,
405-
});
368+
406369
renderWithTheme(
407370
<CloudPulseRegionSelect
408371
{...props}
@@ -412,7 +375,6 @@ describe('CloudPulseRegionSelect', () => {
412375
service_type: 'firewall',
413376
id: 4,
414377
})}
415-
selectedEntities={['1']}
416378
/>
417379
);
418380
expect(screen.getByDisplayValue('IN, Mumbai (ap-west)')).toBeVisible();
@@ -424,31 +386,16 @@ describe('CloudPulseRegionSelect', () => {
424386
id: 'ap-west',
425387
label: 'IN, Mumbai',
426388
capabilities: [capabilityServiceTypeMapping['firewall']],
389+
monitors: {
390+
metrics: [capabilityServiceTypeMapping['firewall']],
391+
alerts: [],
392+
},
427393
}),
428394
],
429395
isError: false,
430396
isLoading: false,
431397
});
432-
queryMocks.useResourcesQuery.mockReturnValue({
433-
data: [
434-
firewallFactory.build({
435-
id: 1,
436-
entities: [{ id: 1, type: 'nodebalancer' }],
437-
}),
438-
],
439-
isError: false,
440-
isLoading: false,
441-
});
442-
queryMocks.useAllNodeBalancersQuery.mockReturnValue({
443-
data: [
444-
nodeBalancerFactory.build({
445-
id: 1,
446-
region: 'ap-west',
447-
}),
448-
],
449-
isError: false,
450-
isLoading: false,
451-
});
398+
452399
renderWithTheme(
453400
<CloudPulseRegionSelect
454401
{...props}
@@ -458,7 +405,6 @@ describe('CloudPulseRegionSelect', () => {
458405
service_type: 'firewall',
459406
id: 8,
460407
})}
461-
selectedEntities={['1']}
462408
/>
463409
);
464410
expect(screen.getByDisplayValue('IN, Mumbai (ap-west)')).toBeVisible();

0 commit comments

Comments
 (0)