Skip to content

UI: expose network ACL replacement from VPC tiers - #13794

Draft
Dogface2k wants to merge 3 commits into
apache:mainfrom
Dogface2k:draft/ui-vpc-tier-acl
Draft

UI: expose network ACL replacement from VPC tiers#13794
Dogface2k wants to merge 3 commits into
apache:mainfrom
Dogface2k:draft/ui-vpc-tier-acl

Conversation

@Dogface2k

@Dogface2k Dogface2k commented Aug 4, 2026

Copy link
Copy Markdown

Summary

Expose the existing replaceNetworkACLList operation directly from the VPC tiers overview.

This is an additional UI entry point. The existing replace-ACL action on an individual tier's detail page remains unchanged.

Scope

  • VPC tier UI only
  • Existing replaceNetworkACLList API; no server, API, schema, or ACL-semantics changes
  • ACL choices are loaded for the VPC that owns the selected tier
  • The action is disabled when replaceNetworkACLList is unavailable to the current user
  • Existing default-allow/default-deny warnings and asynchronous-job messages are reused

Behaviour

The overview action opens a dedicated replacement form preselected with the tier's current ACL. The replacement flow has its own form reference, form data, validation rules, ACL list, selected ACL, target VPC and tier identifiers, and loading state. It does not reuse or mutate the create-tier form state.

showReplaceAclModal remains the modal visibility state. User cancellation is handled by handleCloseReplaceAclModal, which hides the modal and invalidates the cancelled interaction. A validated submission hides the modal without cancelling its captured operation.

Each interaction captures its VPC and tier identifiers. Closing the modal, opening another tier, or navigating to another VPC invalidates older ACL-list or validation completions, so stale asynchronous responses cannot overwrite a newer modal or the create-tier form.

A validated submission uses the identifiers and form state captured for that interaction. An older submission completing later cannot clear a newer interaction's loading state or substitute its identifiers. Successful asynchronous completion refreshes the parent VPC only when that VPC is still being viewed.

The existing create-tier ACL-loading and selection path remains unchanged.

Validation

Focused tests in VpcTiersTab.spec.js cover:

  • replacement state remaining isolated from the create-tier form;
  • an older tier ACL request not overwriting a newer tier interaction;
  • invalidation when the parent VPC changes;
  • preservation of the existing create-tier ACL-loading behaviour;
  • cancellation while form validation is pending;
  • captured ACL, VPC and tier identifiers across overlapping submissions;
  • an older completion not clearing a newer interaction;
  • the replacement form reference remaining outside reactive data() and resolving to the mounted form instance;
  • the encoded POST payload containing the selected aclid and captured networkid;
  • the overview action remaining disabled without API permission.

The full repository UI workflow should be reviewed on the current head before merge.

@DaanHoogland

Copy link
Copy Markdown
Contributor

@blueorangutan ui

@blueorangutan

Copy link
Copy Markdown

@DaanHoogland a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 19.64%. Comparing base (4f11707) to head (1da4322).

Additional details and impacted files
@@             Coverage Diff              @@
##               main   #13794      +/-   ##
============================================
- Coverage     19.65%   19.64%   -0.01%     
+ Complexity    19792    19788       -4     
============================================
  Files          6368     6368              
  Lines        574881   574901      +20     
  Branches      70351    70352       +1     
============================================
- Hits         112970   112946      -24     
- Misses       449639   449688      +49     
+ Partials      12272    12267       -5     
Flag Coverage Δ
uitests 3.41% <ø> (-0.01%) ⬇️
unittests 20.92% <ø> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@weizhouapache

Copy link
Copy Markdown
Member

@Dogface2k
can you share a screenshot ?

there is already an icon to replace ACL list
image

@blueorangutan

Copy link
Copy Markdown

UI build: ✔️
Live QA URL: https://qa.cloudstack.cloud/simulator/pr/13794 (QA-JID-970)

@DaanHoogland

DaanHoogland commented Aug 5, 2026

Copy link
Copy Markdown
Contributor
Screenshot 2026-08-05 at 11 42 42

@weizhouapache there is now also a button in the vpc tiers overview list. I think that is fine as well.

(edit: your sshot is from the tiers details page, this is extra)

@Dogface2k

Copy link
Copy Markdown
Author

isolating VPC tier ACL replacement state

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants