Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: [M3-8953] - Object Storage Gen2 Updates and Improvements #11355

Merged
merged 22 commits into from
Dec 4, 2024

Conversation

jaalah-akamai
Copy link
Contributor

@jaalah-akamai jaalah-akamai commented Dec 3, 2024

Changes 🔄

  • AccessKey: Updated the "Regions/S3 Hostnames" view to align with the new design guidelines, improving how we display multiple region hostnames.
  • Non-Gen2 Capability Users: Fixed the Properties tab visibility to respect Object Storage capabilities instead of relying on feature flags.
    • Added new e2e bucket-details.spec.ts to cover this
  • getAllBucketsFromEndpoints: Fixed issue where duplicate buckets were being displayed for regions with more than one endpoint
  • 🐛 Removed CORS toggle at the object-level. This was a bug that was doing nothing.

Target release date 🗓️

12/10

Preview 📷

Before After
Screenshot 2024-12-02 at 4 37 04 PM Screenshot 2024-12-03 at 9 34 05 AM
Screenshot 2024-12-02 at 4 07 24 PM Screenshot 2024-12-02 at 4 07 09 PM
Screenshot 2024-12-04 at 12 05 09 PM Screenshot 2024-12-04 at 12 06 49 PM

How to test 🧪

Verification steps

  1. Access Key
  • Log in to dev account
  • Go to /object-storage/
  • Go to /object-storage/access-keys and observe new "Regions/S3 Hostnames" format | +x regions | Show All {copy icon}
  1. Non-Gen2 Capabilities
  • Log into a dev test account 007
  • Go to /object-storage/ and go to any bucket detail page
  • Observe that you can no longer see the properties tab (Gen 2 feature)
  1. Landing page and Create Access Key
  • Confirm that duplicate buckets no longer appear in the landing page and in the drawer to create an access key (for Newark buckets)
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


  • I have read and considered all applicable items listed above.

As an Author, before moving this PR from Draft to Open, I confirmed ✅

  • All unit tests are passing
  • TypeScript compilation succeeded without errors
  • Code passes all linting rules

@jaalah-akamai jaalah-akamai changed the title feat: [M3-8953] - OBJ Gen2 Updates feat: [M3-8953] - Enhance multi-region hostname display for Object Storage endpoints Dec 3, 2024
@coliu-akamai coliu-akamai self-requested a review December 3, 2024 15:43
@jaalah-akamai jaalah-akamai changed the title feat: [M3-8953] - Enhance multi-region hostname display for Object Storage endpoints feat: [M3-8953] - Object Storage Gen2 Updates and Improvements Dec 3, 2024
@jaalah-akamai jaalah-akamai marked this pull request as ready for review December 3, 2024 23:07
@jaalah-akamai jaalah-akamai requested review from a team as code owners December 3, 2024 23:07
@jaalah-akamai jaalah-akamai requested review from jdamore-linode, bnussman-akamai and coliu-akamai and removed request for a team December 3, 2024 23:07
@@ -356,9 +353,6 @@ describe('Object Storage Gen2 create bucket tests', () => {
.click();
});

// Wait for the newly 'created' mocked bucket to appear
cy.wait(['@getBuckets']);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this was the culprit. We need to investigate why this wasn't an issue beforehand. 🤔

@coliu-akamai
Copy link
Contributor

without the gen2 account capability: sometimes, when I'm on a gen1 bucket, I first see the Bucket Rate Limits table in the SSL/TLS tab. It goes back to the expected SSL/TLS content after I reload. Is anyone else seeing this?

image

this happens when the obj gen2 flag status is { enabled: true, beta: true }
(I don't see the rate limits table in the SSL/TLS tab when flag.enabled = false)

Copy link
Contributor

@dwiley-akamai dwiley-akamai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When there's only one access key region, it looks like we have an extra copy icon displaying:

Screenshot 2024-12-04 at 1 57 40 PM

When there are two access key regions, we're showing +1 regions when it should be singular:

Screenshot 2024-12-04 at 1 58 16 PM

jaalah-akamai and others added 4 commits December 4, 2024 14:49
…339445.md

Co-authored-by: Dajahi Wiley <114682940+dwiley-akamai@users.noreply.github.com>
…339445.md

Co-authored-by: Dajahi Wiley <114682940+dwiley-akamai@users.noreply.github.com>
Copy link
Contributor

@coliu-akamai coliu-akamai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tested obj gen 2 throughout this week + confirming bugs listed here are fixed - thanks Jaalah!

heads up, there are some failing unit tests with HostnameTableCell and AccessSelect that need to be resolved

@@ -47,10 +47,10 @@ export const AccessSelect = React.memo((props: Props) => {

const { close: closeDialog, isOpen, open: openDialog } = useOpenClose();
const label = capitalize(variant);

// CORS is only available at a bucket level, not at an object level.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this fix! 🙏

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't test this super thoroughly, but logic looks okay

…ccessKeyTable/HostNameTableCell.tsx

Co-authored-by: Banks Nussman <115251059+bnussman-akamai@users.noreply.github.com>
Copy link
Contributor

@abailly-akamai abailly-akamai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Logic and UI look good on my end ✅

Access Keys queries ran extremely slow but I'll attribute this to alpha

@jaalah-akamai
Copy link
Contributor Author

Screenshot 2024-12-04 at 3 34 51 PM @bnussman-akamai thanks looks better

Copy link
Contributor

@jdamore-linode jdamore-linode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could not figure out what caused those cy.wait('@getBuckets') calls to start triggering test failures 🤔 hoping to revisit soon but didn't want to waste anymore time holding this up

@coliu-akamai coliu-akamai added the Approved Multiple approvals and ready to merge! label Dec 4, 2024
@linode-gh-bot
Copy link
Collaborator

Cloud Manager UI test results

🔺 2 failing tests on test run #18 ↗︎

❌ Failing✅ Passing↪️ Skipped🕐 Duration
2 Failing464 Passing2 Skipped108m 33s

Details

Failing Tests
SpecTest
bucket-object-gen2.spec.tsObject Storage Gen2 bucket object tests » can check Object details drawer with E0 endpoint type
bucket-object-gen2.spec.tsObject Storage Gen2 bucket object tests » can check Object details drawer with E1 endpoint type

Troubleshooting

Use this command to re-run the failing tests:

yarn cy:run -s "cypress/e2e/core/objectStorageGen2/bucket-object-gen2.spec.ts,cypress/e2e/core/objectStorageGen2/bucket-object-gen2.spec.ts"

@jaalah-akamai jaalah-akamai merged commit 7609507 into linode:develop Dec 4, 2024
18 of 21 checks passed
@jaalah-akamai
Copy link
Contributor Author

E2E Unit Unit
Screenshot 2024-12-04 at 4 29 15 PM Screenshot 2024-12-04 at 4 31 09 PM Screenshot 2024-12-04 at 4 30 40 PM

Copy link

github-actions bot commented Dec 4, 2024

Coverage Report:
Base Coverage: 86.85%
Current Coverage: 86.85%

Copy link

cypress bot commented Dec 4, 2024

Cloud Manager E2E    Run #6921

Run Properties:  status check passed Passed #6921  •  git commit 760950743b: feat: [M3-8953] - Object Storage Gen2 Updates and Improvements (#11355)
Project Cloud Manager E2E
Branch Review develop
Run status status check passed Passed #6921
Run duration 29m 51s
Commit git commit 760950743b: feat: [M3-8953] - Object Storage Gen2 Updates and Improvements (#11355)
Committer Jaalah Ramos
View all properties for this run ↗︎

Test results
Tests that failed  Failures 0
Tests that were flaky  Flaky 3
Tests that did not run due to a developer annotating a test with .skip  Pending 2
Tests that did not run due to a failure in a mocha hook  Skipped 0
Tests that passed  Passing 466
View all changes introduced in this branch ↗︎

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Approved Multiple approvals and ready to merge! Object Storage Gen2 Ready for Review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants