From 07eea1df2272aa3e1d9fa71600eefcdc005e937e Mon Sep 17 00:00:00 2001 From: Dajahi Wiley Date: Wed, 11 Sep 2024 10:46:45 -0400 Subject: [PATCH 1/5] Replace instances of blockstorage_encryption capability with 'Block Storage Encryption' --- .../manager/cypress/e2e/core/volumes/create-volume.spec.ts | 4 ++-- packages/manager/src/features/Volumes/VolumeCreate.tsx | 2 +- .../features/Volumes/VolumeDrawer/LinodeVolumeAddDrawer.tsx | 2 +- .../features/Volumes/VolumeDrawer/LinodeVolumeAttachForm.tsx | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/manager/cypress/e2e/core/volumes/create-volume.spec.ts b/packages/manager/cypress/e2e/core/volumes/create-volume.spec.ts index 654bfa0ddb2..ff4d3deb0dd 100644 --- a/packages/manager/cypress/e2e/core/volumes/create-volume.spec.ts +++ b/packages/manager/cypress/e2e/core/volumes/create-volume.spec.ts @@ -140,7 +140,7 @@ describe('volume create flow', () => { .click(); // @TODO BSE: once BSE is fully rolled out, check for the notice (selected linode doesn't have - // blockstorage_encryption capability + user checked "Encrypt Volume" checkbox) instead of the absence of it + // "Block Storage Encryption" capability + user checked "Encrypt Volume" checkbox) instead of the absence of it cy.findByText(CLIENT_LIBRARY_UPDATE_COPY).should('not.exist'); cy.findByText('Create Volume').click(); @@ -247,7 +247,7 @@ describe('volume create flow', () => { const mockLinode = linodeFactory.build({ region: mockRegions[0].id, id: 123456, - capabilities: ['blockstorage_encryption'], + capabilities: ['Block Storage Encryption'], }); mockGetAccount(mockAccount).as('getAccount'); diff --git a/packages/manager/src/features/Volumes/VolumeCreate.tsx b/packages/manager/src/features/Volumes/VolumeCreate.tsx index d1f4de80ca2..7f85d730786 100644 --- a/packages/manager/src/features/Volumes/VolumeCreate.tsx +++ b/packages/manager/src/features/Volumes/VolumeCreate.tsx @@ -249,7 +249,7 @@ export const VolumeCreate = () => { ); const linodeSupportsBlockStorageEncryption = Boolean( - linode?.capabilities?.includes('blockstorage_encryption') + linode?.capabilities?.includes('Block Storage Encryption') ); const linodeError = touched.linode_id ? errors.linode_id : undefined; diff --git a/packages/manager/src/features/Volumes/VolumeDrawer/LinodeVolumeAddDrawer.tsx b/packages/manager/src/features/Volumes/VolumeDrawer/LinodeVolumeAddDrawer.tsx index a0125cb16b2..cb0c40d646f 100644 --- a/packages/manager/src/features/Volumes/VolumeDrawer/LinodeVolumeAddDrawer.tsx +++ b/packages/manager/src/features/Volumes/VolumeDrawer/LinodeVolumeAddDrawer.tsx @@ -33,7 +33,7 @@ export const LinodeVolumeAddDrawer = (props: Props) => { } = useIsBlockStorageEncryptionFeatureEnabled(); const linodeSupportsBlockStorageEncryption = Boolean( - linode.capabilities?.includes('blockstorage_encryption') + linode.capabilities?.includes('Block Storage Encryption') ); const toggleMode = (mode: 'attach' | 'create') => { diff --git a/packages/manager/src/features/Volumes/VolumeDrawer/LinodeVolumeAttachForm.tsx b/packages/manager/src/features/Volumes/VolumeDrawer/LinodeVolumeAttachForm.tsx index 62ffa076e4e..8aa76a1345a 100644 --- a/packages/manager/src/features/Volumes/VolumeDrawer/LinodeVolumeAttachForm.tsx +++ b/packages/manager/src/features/Volumes/VolumeDrawer/LinodeVolumeAttachForm.tsx @@ -102,7 +102,7 @@ export const LinodeVolumeAttachForm = (props: Props) => { const linodeRequiresClientLibraryUpdate = volume?.encryption === 'enabled' && - Boolean(!linode.capabilities?.includes('blockstorage_encryption')); + Boolean(!linode.capabilities?.includes('Block Storage Encryption')); React.useEffect(() => { // When the volume is encrypted but the linode requires a client library update, we want to show the client library copy From 9ffffd8fe43ae0d017ca9b72696b66499b712cb6 Mon Sep 17 00:00:00 2001 From: Dajahi Wiley Date: Wed, 11 Sep 2024 10:56:46 -0400 Subject: [PATCH 2/5] Add condition to prevent unnecessary API call on Volume Create page when user hasn't selected a Linode --- packages/manager/src/features/Volumes/VolumeCreate.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/manager/src/features/Volumes/VolumeCreate.tsx b/packages/manager/src/features/Volumes/VolumeCreate.tsx index 7f85d730786..aadec8974d9 100644 --- a/packages/manager/src/features/Volumes/VolumeCreate.tsx +++ b/packages/manager/src/features/Volumes/VolumeCreate.tsx @@ -245,7 +245,7 @@ export const VolumeCreate = () => { const { data: linode } = useLinodeQuery( linode_id ?? -1, - isBlockStorageEncryptionFeatureEnabled + isBlockStorageEncryptionFeatureEnabled && linode_id !== null ); const linodeSupportsBlockStorageEncryption = Boolean( From d1b2ed241171927273ef42cc9a40ddd49aeddcb4 Mon Sep 17 00:00:00 2001 From: Dajahi Wiley Date: Wed, 11 Sep 2024 11:20:30 -0400 Subject: [PATCH 3/5] Added changeset: Update BSE capability for Linodes to be `Block Storage Encryption` instead of `blockstorage_encryption` --- .../.changeset/pr-10920-upcoming-features-1726068029277.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/manager/.changeset/pr-10920-upcoming-features-1726068029277.md diff --git a/packages/manager/.changeset/pr-10920-upcoming-features-1726068029277.md b/packages/manager/.changeset/pr-10920-upcoming-features-1726068029277.md new file mode 100644 index 00000000000..058c2fbf6d7 --- /dev/null +++ b/packages/manager/.changeset/pr-10920-upcoming-features-1726068029277.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Upcoming Features +--- + +Update BSE capability for Linodes to be `Block Storage Encryption` instead of `blockstorage_encryption` ([#10920](https://github.com/linode/manager/pull/10920)) From a75495ba4f4a92c6632f63e79c6684031484054d Mon Sep 17 00:00:00 2001 From: Dajahi Wiley Date: Wed, 11 Sep 2024 12:05:30 -0400 Subject: [PATCH 4/5] Add LinodeCapabilities type --- packages/api-v4/src/linodes/types.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/api-v4/src/linodes/types.ts b/packages/api-v4/src/linodes/types.ts index dcc4eaebba2..aa74b71ac70 100644 --- a/packages/api-v4/src/linodes/types.ts +++ b/packages/api-v4/src/linodes/types.ts @@ -19,7 +19,7 @@ export interface Linode { id: number; alerts: LinodeAlerts; backups: LinodeBackups; - capabilities?: string[]; // @TODO BSE: Remove optionality once BSE is fully rolled out + capabilities?: LinodeCapabilities[]; // @TODO BSE: Remove optionality once BSE is fully rolled out created: string; disk_encryption?: EncryptionStatus; // @TODO LDE: Remove optionality once LDE is fully rolled out region: string; @@ -54,6 +54,8 @@ export interface LinodeBackups { last_successful: string | null; } +export type LinodeCapabilities = 'Block Storage Encryption'; + export type Window = | 'Scheduling' | 'W0' From 992c2c4989a54906c94d1c24f4c7287ea9fb1bd9 Mon Sep 17 00:00:00 2001 From: Dajahi Wiley Date: Wed, 11 Sep 2024 12:07:58 -0400 Subject: [PATCH 5/5] Added changeset: LinodeCapabilities type used for `capabilities` property of Linode interface --- packages/api-v4/.changeset/pr-10920-added-1726070878408.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/api-v4/.changeset/pr-10920-added-1726070878408.md diff --git a/packages/api-v4/.changeset/pr-10920-added-1726070878408.md b/packages/api-v4/.changeset/pr-10920-added-1726070878408.md new file mode 100644 index 00000000000..003c71787b7 --- /dev/null +++ b/packages/api-v4/.changeset/pr-10920-added-1726070878408.md @@ -0,0 +1,5 @@ +--- +"@linode/api-v4": Added +--- + +LinodeCapabilities type used for `capabilities` property of Linode interface ([#10920](https://github.com/linode/manager/pull/10920))