Skip to content

Commit f884c99

Browse files
dwiley-akamaicorya-akamai
authored andcommitted
feat: [M3-6945] – Support VPC and Subnet events (linode#9530)
1 parent 8639dd0 commit f884c99

File tree

23 files changed

+166
-110
lines changed

23 files changed

+166
-110
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@linode/api-v4": Added
3+
---
4+
5+
VPC- and Subnet-related event types ([#9530](https://github.com/linode/manager/pull/9530))

packages/api-v4/src/account/types.ts

+38-32
Original file line numberDiff line numberDiff line change
@@ -239,8 +239,8 @@ export interface Entity {
239239
}
240240

241241
export type EventAction =
242-
| 'account_update'
243242
| 'account_settings_update'
243+
| 'account_update'
244244
| 'backups_cancel'
245245
| 'backups_enable'
246246
| 'backups_restore'
@@ -249,18 +249,24 @@ export type EventAction =
249249
| 'community_question_reply'
250250
| 'credit_card_updated'
251251
| 'database_low_disk_space_remaining'
252+
| 'database_backup_restore'
253+
| 'database_create'
254+
| 'database_credentials_reset'
255+
| 'database_delete'
256+
| 'database_update_failed'
257+
| 'database_update'
252258
| 'disk_create'
253-
| 'disk_update'
254259
| 'disk_delete'
255260
| 'disk_duplicate'
256261
| 'disk_imagize'
257262
| 'disk_resize'
263+
| 'disk_update'
258264
| 'domain_create'
259-
| 'domain_update'
260265
| 'domain_delete'
261266
| 'domain_record_create'
262-
| 'domain_record_updated'
263267
| 'domain_record_delete'
268+
| 'domain_record_updated'
269+
| 'domain_update'
264270
| 'entity_transfer_accept'
265271
| 'entity_transfer_cancel'
266272
| 'entity_transfer_create'
@@ -274,73 +280,73 @@ export type EventAction =
274280
| 'firewall_enable'
275281
| 'firewall_update'
276282
| 'host_reboot'
283+
| 'image_delete'
277284
| 'image_update'
278285
| 'image_upload'
279-
| 'image_delete'
280286
| 'lassie_reboot'
281287
| 'linode_addip'
282288
| 'linode_boot'
283289
| 'linode_clone'
290+
| 'linode_config_create'
291+
| 'linode_config_delete'
292+
| 'linode_config_update'
284293
| 'linode_create'
285-
| 'linode_update'
286294
| 'linode_delete'
287295
| 'linode_deleteip'
288-
| 'linode_migrate'
289-
| 'linode_reboot'
290-
| 'linode_resize'
291-
| 'linode_resize_create'
292296
| 'linode_migrate_datacenter_create'
293297
| 'linode_migrate_datacenter'
294-
| 'linode_mutate'
298+
| 'linode_migrate'
295299
| 'linode_mutate_create'
300+
| 'linode_mutate'
301+
| 'linode_reboot'
296302
| 'linode_rebuild'
303+
| 'linode_resize_create'
304+
| 'linode_resize'
297305
| 'linode_shutdown'
298306
| 'linode_snapshot'
299-
| 'linode_config_create'
300-
| 'linode_config_update'
301-
| 'linode_config_delete'
307+
| 'linode_update'
302308
| 'lke_node_create'
303309
| 'longviewclient_create'
304310
| 'longviewclient_delete'
305311
| 'longviewclient_update'
306312
| 'nodebalancer_config_create'
307-
| 'nodebalancer_config_update'
308313
| 'nodebalancer_config_delete'
314+
| 'nodebalancer_config_update'
309315
| 'nodebalancer_create'
310-
| 'nodebalancer_update'
311316
| 'nodebalancer_delete'
317+
| 'nodebalancer_update'
312318
| 'password_reset'
313319
| 'profile_update'
314320
| 'stackscript_create'
315-
| 'stackscript_update'
316321
| 'stackscript_delete'
317322
| 'stackscript_publicize'
318323
| 'stackscript_revise'
319-
| 'tfa_enabled'
324+
| 'stackscript_update'
325+
| 'subnet_create'
326+
| 'subnet_delete'
327+
| 'subnet_update'
320328
| 'tfa_disabled'
329+
| 'tfa_enabled'
321330
| 'ticket_attachment_upload'
322331
| 'ticket_update'
332+
| 'token_create'
333+
| 'token_delete'
334+
| 'token_update'
323335
| 'user_ssh_key_add'
324-
| 'user_ssh_key_update'
325336
| 'user_ssh_key_delete'
337+
| 'user_ssh_key_update'
338+
| 'volume_attach'
339+
| 'volume_clone'
326340
| 'volume_create'
327-
| 'volume_update'
328341
| 'volume_delete'
329342
| 'volume_detach'
330-
| 'volume_attach'
331-
| 'volume_resize'
332-
| 'volume_clone'
333343
| 'volume_migrate_scheduled'
334344
| 'volume_migrate'
335-
| 'database_create'
336-
| 'database_delete'
337-
| 'database_update'
338-
| 'database_update_failed'
339-
| 'database_backup_restore'
340-
| 'database_credentials_reset'
341-
| 'token_create'
342-
| 'token_update'
343-
| 'token_delete';
345+
| 'volume_resize'
346+
| 'volume_update'
347+
| 'vpc_create'
348+
| 'vpc_delete'
349+
| 'vpc_update';
344350

345351
export type EventStatus =
346352
| 'scheduled'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@linode/manager": Added
3+
---
4+
5+
Support for VPC and subnet events ([#9530](https://github.com/linode/manager/pull/9530))

packages/manager/cypress/e2e/core/notificationsAndEvents/events.spec.ts

+19-19
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,28 @@ import { containsClick, getClick } from 'support/helpers';
66
import { apiMatcher } from 'support/util/intercepts';
77

88
const eventActions: RecPartial<EventAction>[] = [
9-
'backups_enable',
109
'backups_cancel',
10+
'backups_enable',
1111
'backups_restore',
12-
'community_question_reply',
1312
'community_like',
13+
'community_question_reply',
1414
'disk_create',
1515
'disk_delete',
16-
'disk_update',
1716
'disk_duplicate',
18-
// 'disk_imagize',
1917
'disk_resize',
18+
'disk_update',
2019
'entity_transfer_accept',
2120
'entity_transfer_cancel',
2221
'entity_transfer_create',
2322
'entity_transfer_fail',
2423
'entity_transfer_stale',
2524
'firewall_create',
2625
'firewall_delete',
26+
'firewall_device_add',
27+
'firewall_device_remove',
2728
'firewall_disable',
2829
'firewall_enable',
2930
'firewall_update',
30-
'firewall_device_add',
31-
'firewall_device_remove',
3231
'host_reboot',
3332
'image_delete',
3433
'image_update',
@@ -37,9 +36,11 @@ const eventActions: RecPartial<EventAction>[] = [
3736
'linode_addip',
3837
'linode_boot',
3938
'linode_clone',
39+
'linode_config_create',
40+
'linode_config_delete',
41+
'linode_config_update',
4042
'linode_create',
4143
'linode_delete',
42-
'linode_update',
4344
'linode_deleteip',
4445
'linode_migrate',
4546
'linode_migrate_datacenter',
@@ -49,38 +50,37 @@ const eventActions: RecPartial<EventAction>[] = [
4950
'linode_resize',
5051
'linode_shutdown',
5152
'linode_snapshot',
52-
'linode_config_create',
53-
'linode_config_delete',
54-
'linode_config_update',
53+
'linode_update',
5554
'lke_node_create',
5655
'longviewclient_create',
5756
'longviewclient_delete',
5857
'longviewclient_update',
59-
'nodebalancer_create',
60-
'nodebalancer_delete',
61-
'nodebalancer_update',
6258
'nodebalancer_config_create',
6359
'nodebalancer_config_delete',
6460
'nodebalancer_config_update',
61+
'nodebalancer_create',
62+
'nodebalancer_delete',
63+
'nodebalancer_update',
6564
'stackscript_create',
6665
'stackscript_delete',
67-
'stackscript_update',
6866
'stackscript_publicize',
6967
'stackscript_revise',
68+
'stackscript_update',
69+
'subnet_create',
70+
'subnet_delete',
71+
'subnet_update',
7072
'tfa_disabled',
7173
'tfa_enabled',
72-
'ticket_attachment_upload',
7374
'user_ssh_key_add',
7475
'user_ssh_key_delete',
7576
'user_ssh_key_update',
7677
'volume_clone',
7778
'volume_create',
78-
'volume_update',
7979
'volume_detach',
8080
'volume_resize',
81-
'account_update',
82-
'account_settings_update',
83-
'credit_card_updated',
81+
'vpc_create',
82+
'vpc_delete',
83+
'vpc_update',
8484
// 'linode_migrate_datacenter_create',
8585
// 'linode_mutate_create',
8686
// 'linode_resize_create',

packages/manager/cypress/e2e/core/vpc/vpc-details-page.spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ describe('VPC details page', () => {
4444
mockUpdateVPC(mockVPC.id, mockVPCUpdated).as('updateVPC');
4545
mockDeleteVPC(mockVPC.id).as('deleteVPC');
4646

47-
cy.visitWithLogin(`/vpc/${mockVPC.id}`);
47+
cy.visitWithLogin(`/vpcs/${mockVPC.id}`);
4848
cy.wait(['@getFeatureFlags', '@getClientStream', '@getVPC']);
4949

5050
// Confirm that VPC details are displayed.
@@ -112,7 +112,7 @@ describe('VPC details page', () => {
112112
cy.wait(['@deleteVPC', '@getVPCs']);
113113

114114
// Confirm that user is redirected to VPC landing page.
115-
cy.url().should('endWith', '/vpc');
115+
cy.url().should('endWith', '/vpcs');
116116
cy.findByText('Create a private and isolated network.');
117117
});
118118
});

packages/manager/cypress/e2e/core/vpc/vpc-landing-page.spec.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
mockGetVPCs,
88
mockDeleteVPC,
99
mockUpdateVPC,
10-
} from 'support/intercepts/vpc';
10+
} from 'support/intercepts/vpcs';
1111
import { vpcFactory } from '@src/factories';
1212
import { ui } from 'support/ui';
1313
import { randomLabel, randomPhrase } from 'support/util/random';
@@ -26,7 +26,7 @@ describe('VPC landing page', () => {
2626
mockGetFeatureFlagClientstream().as('getClientStream');
2727
mockGetVPCs(mockVPCs).as('getVPCs');
2828

29-
cy.visitWithLogin('/vpc');
29+
cy.visitWithLogin('/vpcs');
3030
cy.wait(['@getFeatureFlags', '@getClientStream', '@getVPCs']);
3131

3232
// Confirm each VPC is listed with expected data.
@@ -61,7 +61,7 @@ describe('VPC landing page', () => {
6161
mockGetFeatureFlagClientstream().as('getClientStream');
6262
mockGetVPCs([]).as('getVPCs');
6363

64-
cy.visitWithLogin('/vpc');
64+
cy.visitWithLogin('/vpcs');
6565
cy.wait(['@getFeatureFlags', '@getClientStream', '@getVPCs']);
6666

6767
// Confirm that empty state is shown and that each section is present.
@@ -79,7 +79,7 @@ describe('VPC landing page', () => {
7979
.should('be.enabled')
8080
.click();
8181

82-
cy.url().should('endWith', '/vpc/create');
82+
cy.url().should('endWith', '/vpcs/create');
8383
});
8484

8585
/*
@@ -106,7 +106,7 @@ describe('VPC landing page', () => {
106106
mockGetVPCs([mockVPC]).as('getVPCs');
107107
mockUpdateVPC(mockVPC.id, mockUpdatedVPC).as('updateVPC');
108108

109-
cy.visitWithLogin('/vpc');
109+
cy.visitWithLogin('/vpcs');
110110
cy.wait(['@getFeatureFlags', '@getClientStream', '@getVPCs']);
111111

112112
// Find mocked VPC and click its "Edit" button.
@@ -194,7 +194,7 @@ describe('VPC landing page', () => {
194194
mockGetVPCs(mockVPCs).as('getVPCs');
195195
mockDeleteVPC(mockVPCs[0].id).as('deleteVPC');
196196

197-
cy.visitWithLogin('/vpc');
197+
cy.visitWithLogin('/vpcs');
198198
cy.wait(['@getFeatureFlags', '@getClientStream', '@getVPCs']);
199199

200200
// Delete first VPC.
@@ -283,7 +283,7 @@ describe('VPC landing page', () => {
283283
}).as('getFeatureFlags');
284284
mockGetFeatureFlagClientstream().as('getClientStream');
285285

286-
cy.visitWithLogin('/vpc');
286+
cy.visitWithLogin('/vpcs');
287287
cy.wait(['@getFeatureFlags', '@getClientStream']);
288288

289289
cy.findByText('Not Found').should('be.visible');

packages/manager/cypress/e2e/core/vpc/vpc-navigation.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ describe('VPC navigation', () => {
2626

2727
ui.nav.findItemByTitle('VPC').should('be.visible').click();
2828

29-
cy.url().should('endWith', '/vpc');
29+
cy.url().should('endWith', '/vpcs');
3030
});
3131

3232
/*

packages/manager/src/GoTo.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ const GoTo = (props: Props) => {
9393
{
9494
display: 'VPC',
9595
hide: !flags.vpc,
96-
href: '/vpc',
96+
href: '/vpcs',
9797
},
9898
{
9999
display: 'NodeBalancers',

packages/manager/src/MainContent.tsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,9 @@ const MainContent = (props: CombinedProps) => {
358358
{flags.selfServeBetas ? (
359359
<Route component={BetaRoutes} path="/betas" />
360360
) : null}
361-
{flags.vpc && <Route component={VPC} path="/vpc" />}
361+
{flags.vpc && (
362+
<Route component={VPC} path="/vpcs" />
363+
)}
362364
<Redirect exact from="/" to={defaultRoot} />
363365
{/** We don't want to break any bookmarks. This can probably be removed eventually. */}
364366
<Redirect from="/dashboard" to={defaultRoot} />

packages/manager/src/components/PrimaryNav/PrimaryNav.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ export const PrimaryNav = (props: Props) => {
178178
{
179179
display: 'VPC',
180180
hide: !flags.vpc,
181-
href: '/vpc',
181+
href: '/vpcs',
182182
icon: <VPC />,
183183
isBeta: true,
184184
},

packages/manager/src/features/Events/EventRow.tsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ export interface RowProps {
5454
| 'linode'
5555
| 'nodebalancer'
5656
| 'stackscript'
57-
| 'volume';
57+
| 'subnet'
58+
| 'volume'
59+
| 'vpc';
5860
username: null | string;
5961
}
6062

0 commit comments

Comments
 (0)