Skip to content

Commit cadb44e

Browse files
Added changeset
1 parent 1ed9c65 commit cadb44e

5 files changed

Lines changed: 12 additions & 10 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@linode/manager": Changed
3+
---
4+
5+
Make firewall selection mandatory while creating linode and its interfaces ([#13410](https://github.com/linode/manager/pull/13410))

packages/manager/cypress/e2e/core/stackscripts/smoke-community-stackscripts.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ describe('Community Stackscripts integration tests', () => {
401401

402402
// Select a firewall
403403
linodeCreatePage.selectFirewall(
404-
mockFirewall.label,
404+
'No firewall - traffic is unprotected (not recommended)',
405405
'Public Interface Firewall'
406406
);
407407

packages/manager/src/features/Firewalls/components/FirewallSelect.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ export const FirewallSelect = <DisableClearable extends boolean>(
6767
hideDefaultChips,
6868
label,
6969
loading,
70+
options,
7071
showNoFirewallOption = true,
7172
value,
7273
warningMessageForNoFirewallOption,
@@ -78,12 +79,12 @@ export const FirewallSelect = <DisableClearable extends boolean>(
7879
const { defaultNumEntities, isDefault, tooltipText } =
7980
useDefaultFirewallChipInformation(value, hideDefaultChips);
8081

81-
const options = useMemo(
82+
const firewallOptions = useMemo(
8283
() => [
83-
...(firewalls ?? []),
84+
...(options ? options : (firewalls ?? [])),
8485
...(showNoFirewallOption ? [noFirewallOption] : []),
8586
],
86-
[firewalls, showNoFirewallOption]
87+
[firewalls, options, showNoFirewallOption]
8788
);
8889

8990
const selectedFirewall = useMemo(
@@ -102,7 +103,7 @@ export const FirewallSelect = <DisableClearable extends boolean>(
102103
label={label ?? 'Firewall'}
103104
loading={isLoading || loading}
104105
noMarginTop
105-
options={options}
106+
options={firewallOptions}
106107
placeholder="Select a Firewall"
107108
renderOption={({ key, ...props }, option, state) => (
108109
<FirewallSelectOption

packages/manager/src/features/Linodes/LinodeCreate/resolvers.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,6 @@ export const getLinodeCreateResolver = (
3838
values.linodeInterfaces = values.linodeInterfaces.map(
3939
getCleanedLinodeInterfaceValues
4040
);
41-
if (tab === 'Clone Linode' && !values.firewall_id) {
42-
// The Clone Linode flow does not have the firewall_id field under interfaces object, so we set firewall_id to -1 to bypass the firewall requirement in the validation schema.
43-
values.firewall_id = -1;
44-
}
4541
if (
4642
values.interface_generation === 'legacy_config' ||
4743
tab === 'Clone Linode'

packages/validation/src/linodes.schema.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -872,7 +872,7 @@ export const CreateLinodeSchema = object({
872872
}),
873873
}),
874874
metadata: MetadataSchema.notRequired().default(undefined),
875-
firewall_id: number().nullable(),
875+
firewall_id: number().nullable().notRequired(),
876876
placement_group: PlacementGroupPayloadSchema.notRequired().default(undefined),
877877
disk_encryption: DiskEncryptionSchema,
878878
maintenance_policy: string()

0 commit comments

Comments
 (0)