• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

noironetworks / aci-containers / 11634
63%
master: 63%

Build:
Build:
LAST BUILD BRANCH: unowned-del-fix
DEFAULT BRANCH: master
Ran 19 Feb 2026 10:47AM UTC
Jobs 1
Files 48
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

19 Feb 2026 10:30AM UTC coverage: 62.867% (+0.02%) from 62.843%
11634

push

travis-pro

jeffinkottaram
Prevent deletion of APIC objects not owned by this controller

This commit adds tag-based ownership verification before deleting APIC objects,
preventing accidental deletion of resources managed by other controllers or
created manually.

Changes:

1. Add isOwnedByController() to verify sync tag before deletion
   - Fetches object from APIC with tagAnnotation child
   - Checks if tag matches controller's prefix pattern
   - Returns false if object doesn't exist or lacks controller's tag
   - Protects against race conditions in subscription notification callbacks

2. Introduce pendingChangeSyncDelete for sync-initiated deletions
   - Sync/reconcile operations already verify ownership before queueing deletes
   - Bypass redundant GET request by using pendingChangeSyncDelete kind
   - Subscription-triggered deletes without desired state still check ownership

3. Optimize websocket notification filtering
   - Probe AciNameForKey at initialization to detect prefix embedding behavior
   - Filter notifications under vrfTenant lacking controller's prefix
   - Bypass filter for subscriptions with hooks (e.g., fvSubnet tracking all BDs)
   - Use inline string concatenation instead of pre-computed fields

This fix addresses incorrect deletion of resources in multi-controller and
manually-managed scenarios while maintaining performance through intelligent
filtering and eliminating redundant APIC lookups where ownership is already known.

63 of 89 new or added lines in 3 files covered. (70.79%)

3 existing lines in 2 files now uncovered.

13495 of 21466 relevant lines covered (62.87%)

0.72 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
26
64.24
-0.05% pkg/apicapi/apicapi.go

Uncovered Existing Lines

Lines Coverage ∆ File
1
64.24
-0.05% pkg/apicapi/apicapi.go
2
57.53
-0.08% pkg/controller/services.go
Jobs
ID Job ID Ran Files Coverage
1 11634.1 (DEFAULT_BRANCH=master GOPROXY=https://proxy.golang.org,https://goproxy.io,direct) 19 Feb 2026 10:47AM UTC 48
62.87
Travis Job 11634.1
Source Files on build 11634
  • Tree
  • List 48
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Travis Build #11634
  • 042ede93 on github
  • Prev Build on unowned-del-fix (#11632)
  • Next Build on unowned-del-fix (#11635)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc