upcoming: [M3-10105] - Tie up loose ends for Public IP address tooltip#12408
upcoming: [M3-10105] - Tie up loose ends for Public IP address tooltip#12408coliu-akamai merged 14 commits intolinode:developfrom
Conversation
|
planning to close this PR in favor of a v2 that I think makes more sense |
| <StyledColumnLabelGrid> | ||
| {title}{' '} | ||
| {isDisabled && ( | ||
| {showDisabledPublicIPTooltip && ( |
There was a problem hiding this comment.
I've aligned the disabling of the public IP addresses' access table with the IP Addresses table, but this leaves some cases where the copy doesn't align with the disabling (implies multiple IPs disabled but only one is). We could potentially:
- update the copy to have the correct tense (but may need to clarify what "The noted IP Address" means - maybe use disabled instead)?
- show the tooltip at the individual IP level
- show tooltip at individual level only if one is IP is disabled, and if both disabled, keep tooltip at the top?
I think the second option is more clear/flexible - thoughts?
Also would we need to get UX approval for either option?
| Current | options |
|---|---|
![]() |
![]() |
![]() |
(forgot to mask the IPs - Linode deleted)
There was a problem hiding this comment.
I like the idea of putting the tooltip at the individual IP level.
if both disabled, keep tooltip at the top?
We could do this, but to keep the code simple, I honestly think it would be okay to just keep the tooltips at the individual IP level because this UI (hopefully) won't be show often
mjac0bs
left a comment
There was a problem hiding this comment.
Nothing like a Friday to do a "bit of light reading" on IP addressing. (This PR gets further into the weeds of VPC and Linode Interfaces than I'm familiar with.) Did anyone from the API side end up checking if the cases in the internal ticket seem current? I read the thread from 2023, but couldn't access the other one.
Code and test coverage for the cases looks good overall, with consistency between the IP Addresses table on the Networking tab vs. the IP addresses in the table in the summary section at the top.
Approving pending what looks like one issue in a unit test issue is fixed.
Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com>
|
thanks @mjac0bs! added screenshots of the relevant conversation from theother thread to the ticket |
Cloud Manager UI test results🎉 670 passing tests on test run #14 ↗︎
|



Description 📝
Improves accuracy for when a public IPv4 or IPv6 should be disabled or not in the AccessTable/IP addresses table. See internal ticket for linked slack threads discussing when public IPv4/IPv6 should be disabled.
note: while working on this I've been seeing some inconsistencies/bugs with the IP Address table, especially for Linode Interfaces (default routing stuff, showing the nat_1_1 twice) - will look into it more in a separate ticket/pr.
I'm thinking this PR moves us closer in terms of correctly showing when IPs should be disabled or not though
Changes 🔄
useVPCInterfacehooks touseDetermineUnreachableIPs, as their scope/purpose has changed, and add test cases for new hook. Updated return values to explicitly determine if an IP is unreachable (this is what useVPCInterface used to do for IPv4 - it returned "isVPCOnlyLinode", which was used to disable the public IPv4)Target release date 🗓️
Preview 📷
How to test 🧪
Have Linode Interfaces customer tag and feature flag enabled
verification:
Confirm logic/interpretations for when IPv4/IPv6 should be disabled makes sense (see linked slack thread discussions in ticket) - this is how I interpreted the cases while also noting that currently, our IP address table automatically hides the public IPv4 and shows the Nat_1_1 address if a VPC interface has nat_1_1
for Linode Interfaces:
For Config interfaces it's a bit more complicated since if the Linode has no interfaces, the API automatically provides public connectivity - so:
Some test cases I've run through
Linode interfaces
Legacy Interfaces
In general my understanding is that the config legacy interface cases should match Linode Interfaces (although there's the special case with no interfaces)
Author Checklists
As an Author, to speed up the review process, I considered 🤔
👀 Doing a self review
❔ Our contribution guidelines
🤏 Splitting feature into small PRs
➕ Adding a changeset
🧪 Providing/improving test coverage
🔐 Removing all sensitive information from the code and PR description
🚩 Using a feature flag to protect the release
👣 Providing comprehensive reproduction steps
📑 Providing or updating our documentation
🕛 Scheduling a pair reviewing session
📱 Providing mobile support
♿ Providing accessibility support
As an Author, before moving this PR from Draft to Open, I confirmed ✅