From 3a7211e4d8b11ac8f16f678e8dc386d11b69a4da Mon Sep 17 00:00:00 2001 From: ecarrill Date: Tue, 23 Apr 2024 09:00:26 -0700 Subject: [PATCH 1/3] upcoming: [M3-7932] - Placement Groups copy updates --- .../manager/src/components/DetailsPanel/DetailsPanel.tsx | 1 + .../PlacementGroupsAffinityTypeSelect.tsx | 8 +++++--- .../PlacementGroupsAssignLinodesDrawer.tsx | 2 +- .../PlacementGroups/PlacementGroupsCreateDrawer.tsx | 2 +- .../PlacementGroups/PlacementGroupsDetailPanel.tsx | 7 +++---- .../PlacementGroupsLanding/PlacementGroupsLanding.tsx | 4 ++-- .../PlacementGroupsLandingEmptyState.tsx | 2 +- .../PlacementGroupsLandingEmptyStateData.ts | 2 +- .../manager/src/features/PlacementGroups/constants.ts | 9 ++++----- 9 files changed, 19 insertions(+), 18 deletions(-) diff --git a/packages/manager/src/components/DetailsPanel/DetailsPanel.tsx b/packages/manager/src/components/DetailsPanel/DetailsPanel.tsx index e1e09ef6645..20dfcbb1a5c 100644 --- a/packages/manager/src/components/DetailsPanel/DetailsPanel.tsx +++ b/packages/manager/src/components/DetailsPanel/DetailsPanel.tsx @@ -58,6 +58,7 @@ export const DetailsPanel = (props: DetailsPanelProps) => { /> {tagsInputProps && } + {isPlacementGroupsEnabled && ( { textFieldProps={{ tooltipText: ( - Linodes in a placement group that use ‘Affinity’ always exist on the - same host. This can help with performance. Linodes in a placement - group that use ‘Anti-affinity: Host’ are never on the same host. Use + Linodes in a placement group that use Affinity are physically closer + together, possibly on the same hardware. This can help with + performance. Linodes in a placement group that use Anti-affinity are + in separate fault domains, but still in the same data center. Use this to support a high-availability model.
+ {/* TODO VM_Placement: Add link path or determine if removal desired */} Learn more.
), diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsAssignLinodesDrawer.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsAssignLinodesDrawer.tsx index 8b34fdf99d7..592397e4807 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsAssignLinodesDrawer.tsx +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsAssignLinodesDrawer.tsx @@ -162,7 +162,7 @@ export const PlacementGroupsAssignLinodesDrawer = ( /> )} - A Linode can only be assigned to a single Placement Group. + A Linode can only be assigned to one placement group. { variant="warning" > - Select a region above to see available Placement Groups. + Select a Region for your Linode to see existing placement groups. )} @@ -93,8 +93,7 @@ export const PlacementGroupsDetailPanel = (props: Props) => { variant="warning" > - The selected region does not currently have Placement Group - capabilities. Only these{' '} + Currently, only specific{' '} { displayText="regions" minWidth={225} />{' '} - support Placement Groups. + support placement groups. )} diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLanding.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLanding.tsx index d5187a39c5c..e2720dff10d 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLanding.tsx +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLanding.tsx @@ -195,9 +195,9 @@ export const PlacementGroupsLanding = React.memo(() => { }} debounceTime={250} hideLabel - label="Filter" + label="Search" onChange={(e) => setQuery(e.target.value)} - placeholder="Filter" + placeholder="Search Placement Groups" sx={{ mb: 4 }} value={query} /> diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLandingEmptyState.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLandingEmptyState.tsx index 51d5ab5902a..623719cbf02 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLandingEmptyState.tsx +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLandingEmptyState.tsx @@ -23,7 +23,7 @@ export const PlacementGroupsLandingEmptyState = ({ { sendEvent({ diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLandingEmptyStateData.ts b/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLandingEmptyStateData.ts index 4b0993874c3..bedf6296fc6 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLandingEmptyStateData.ts +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLandingEmptyStateData.ts @@ -8,7 +8,7 @@ import type { export const headers: ResourcesHeaders = { description: - 'Control the physical placement or distribution of virtual machines (VMs) instances within a data center or availability zone.', + 'Control the physical placement or distribution of Linodes instances within a data center or availability zone.', subtitle: '', title: PLACEMENT_GROUP_LABEL, }; diff --git a/packages/manager/src/features/PlacementGroups/constants.ts b/packages/manager/src/features/PlacementGroups/constants.ts index 7921b9d712a..96451573d93 100644 --- a/packages/manager/src/features/PlacementGroups/constants.ts +++ b/packages/manager/src/features/PlacementGroups/constants.ts @@ -7,12 +7,11 @@ export const MAX_NUMBER_OF_LINODES_IN_PLACEMENT_GROUP_MESSAGE = export const PLACEMENT_GROUP_LINODES_ERROR_MESSAGE = 'There was an error loading Linodes for this Placement Group.'; -export const PLACEMENT_GROUP_TOOLTIP_TEXT = `The Affinity Type and Region determine the maximum number of VMs per group.`; +export const PLACEMENT_GROUP_TOOLTIP_TEXT = `The Affinity Type and Region you selected determine the maximum number of Linodes per placement group.`; export const PLACEMENT_GROUP_SELECT_TOOLTIP_COPY = ` -Add your virtual machine (VM) to a group to best meet your needs. -You may want to group VMs closer together to help improve performance, or further apart to enable high-availability configurations. -Learn more.`; +Add your Linode to a group to best meet your needs. +You may want to group Linodes closer together to help improve performance, or further apart to enable high-availability configurations.`; export const PLACEMENT_GROUP_HAS_NO_CAPACITY = - 'This Placement Group does not have any capacity.'; + 'This placement group has reached the maximum Linode capacity.'; From dd0236c599a7a40914a4f8b43a5603cc2beae929 Mon Sep 17 00:00:00 2001 From: ecarrill Date: Tue, 23 Apr 2024 09:12:22 -0700 Subject: [PATCH 2/3] Add changeset --- .../.changeset/pr-10399-upcoming-features-1713888729255.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/manager/.changeset/pr-10399-upcoming-features-1713888729255.md diff --git a/packages/manager/.changeset/pr-10399-upcoming-features-1713888729255.md b/packages/manager/.changeset/pr-10399-upcoming-features-1713888729255.md new file mode 100644 index 00000000000..bcf107580cc --- /dev/null +++ b/packages/manager/.changeset/pr-10399-upcoming-features-1713888729255.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Upcoming Features +--- + +Placement Groups text copy updates ([#10399](https://github.com/linode/manager/pull/10399)) From f39f362fcab71f02438eafda77fd2fe76a98199e Mon Sep 17 00:00:00 2001 From: ecarrill Date: Wed, 24 Apr 2024 09:40:28 -0700 Subject: [PATCH 3/3] Fix failing tests --- .../placementGroups/placement-groups-landing-page.spec.ts | 2 +- .../features/Linodes/LinodeCreatev2/Details/Details.test.tsx | 4 +++- .../LinodeCreatev2/Details/PlacementGroupPanel.test.tsx | 4 +++- .../features/PlacementGroups/PlacementGroupsCreateDrawer.tsx | 2 +- .../PlacementGroups/PlacementGroupsDetailPanel.test.tsx | 2 +- .../PlacementGroupsLanding/PlacementGroupsLanding.test.tsx | 2 +- .../PlacementGroupsLandingEmptyStateData.ts | 2 +- 7 files changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/manager/cypress/e2e/core/placementGroups/placement-groups-landing-page.spec.ts b/packages/manager/cypress/e2e/core/placementGroups/placement-groups-landing-page.spec.ts index 7709b82b298..74a3c4fab91 100644 --- a/packages/manager/cypress/e2e/core/placementGroups/placement-groups-landing-page.spec.ts +++ b/packages/manager/cypress/e2e/core/placementGroups/placement-groups-landing-page.spec.ts @@ -39,7 +39,7 @@ describe('VM Placement landing page', () => { }); ui.button - .findByTitle('Create Placement Groups') + .findByTitle('Create Placement Group') .should('be.visible') .should('be.enabled') .click(); diff --git a/packages/manager/src/features/Linodes/LinodeCreatev2/Details/Details.test.tsx b/packages/manager/src/features/Linodes/LinodeCreatev2/Details/Details.test.tsx index 153792f7441..e9d5d8985ac 100644 --- a/packages/manager/src/features/Linodes/LinodeCreatev2/Details/Details.test.tsx +++ b/packages/manager/src/features/Linodes/LinodeCreatev2/Details/Details.test.tsx @@ -46,7 +46,9 @@ describe('Linode Create Details', () => { await waitFor(() => { expect( - getByText('Select a region above to see available Placement Groups.') + getByText( + 'Select a Region for your Linode to see existing placement groups.' + ) ).toBeVisible(); }); }); diff --git a/packages/manager/src/features/Linodes/LinodeCreatev2/Details/PlacementGroupPanel.test.tsx b/packages/manager/src/features/Linodes/LinodeCreatev2/Details/PlacementGroupPanel.test.tsx index ad7ffd19860..a46491a903b 100644 --- a/packages/manager/src/features/Linodes/LinodeCreatev2/Details/PlacementGroupPanel.test.tsx +++ b/packages/manager/src/features/Linodes/LinodeCreatev2/Details/PlacementGroupPanel.test.tsx @@ -21,7 +21,9 @@ describe('PlacementGroupPanel', () => { }); expect( - getByText('Select a region above to see available Placement Groups.') + getByText( + 'Select a Region for your Linode to see existing placement groups.' + ) ).toBeVisible(); }); diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsCreateDrawer.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsCreateDrawer.tsx index 464cd2b85e4..f1802e33f8c 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsCreateDrawer.tsx +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsCreateDrawer.tsx @@ -149,7 +149,7 @@ export const PlacementGroupsCreateDrawer = ( items={[ { description: `${selectedRegion.label} (${selectedRegion.id})`, - title: 'Region:', + title: 'Region', }, ]} sx={{ my: 2 }} diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsDetailPanel.test.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsDetailPanel.test.tsx index fc3802b1b27..0db8b4a5385 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsDetailPanel.test.tsx +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsDetailPanel.test.tsx @@ -112,7 +112,7 @@ describe('PlacementGroupsDetailPanel', () => { expect(getByRole('combobox')).toBeDisabled(); expect(getByTestId('notice-warning')).toHaveTextContent( - 'The selected region does not currently have Placement Group capabilities.' + 'Currently, only specific regions support placement groups.' ); expect( queryByRole('button', { name: /create placement group/i }) diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLanding.test.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLanding.test.tsx index 6e579a4552f..8a6f4e8d6f2 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLanding.test.tsx +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLanding.test.tsx @@ -89,7 +89,7 @@ describe('PlacementGroupsLanding', () => { expect( getByText( - 'Control the physical placement or distribution of virtual machines (VMs) instances within a data center or availability zone.' + 'Control the physical placement or distribution of Linode instances within a data center or availability zone.' ) ).toBeInTheDocument(); }); diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLandingEmptyStateData.ts b/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLandingEmptyStateData.ts index bedf6296fc6..9555f6dbb20 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLandingEmptyStateData.ts +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLandingEmptyStateData.ts @@ -8,7 +8,7 @@ import type { export const headers: ResourcesHeaders = { description: - 'Control the physical placement or distribution of Linodes instances within a data center or availability zone.', + 'Control the physical placement or distribution of Linode instances within a data center or availability zone.', subtitle: '', title: PLACEMENT_GROUP_LABEL, };