Bug #6216

Trying to delete a subnet that is associated with a host group throws foreign key error

Added by Dominic Cleal over 3 years ago. Updated over 3 years ago.

Status:Closed
Priority:Low
Assigned To:Joseph Magen
Category:Rails
Target version:Sprint 25
Difficulty: Bugzilla link:1109315
Found in release: Pull request:
Story points-
Velocity based estimate-
Release1.5.2Release relationshipAuto

Description

Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1109315
Description of problem:

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. Manually create a subnet ('mysubnet', 192.168.100.1, 255.255.255.0)
2. Associate this subnet with a hostgroup
3. Try to delete the subnet

Actual results:
Oops, we're sorry but something went wrong

×
Error

ERROR: update or delete on table "subnets" violates foreign key constraint "hostgroups_subnet_id_fk" on table "hostgroups" DETAIL: Key (id)=(2) is still referenced from table "hostgroups".
If you feel this is an error with Foreman itself, please open a new issue with Foreman ticketing system, You would probably need to attach the Full trace and relevant log entries.

Expected results:
A handled exception and perhaps a UI block on trying to delete a subnet that is already associated.

Additional info:

Associated revisions

Revision e0d618ef
Added by Joseph Magen over 3 years ago

fixes #6216, #4416 - avoid foreign key errors when deleting some objects in use

Revision 3d5d2c5c
Added by Joseph Magen over 3 years ago

fixes #6216, #4416 - avoid foreign key errors when deleting some objects in use

(cherry picked from commit e0d618efa6a8c02b46000bfcb9ded5eb672a6e13)

History

#1 Updated by Dominic Cleal over 3 years ago

  • Category set to Rails

Missing an EnsureNotUsedBy.new(:hostgroups) on the subnet. Worth double checking all other foreign keys have similar before_destroy hooks for friendly errors.

#2 Updated by Joseph Magen over 3 years ago

  • Status changed from New to Assigned
  • Assigned To set to Joseph Magen
  • Target version set to Sprint 25

#3 Updated by Joseph Magen over 3 years ago

  • Status changed from Assigned to Ready For Testing

https://github.com/theforeman/foreman/pull/1513

I suggest to have Ori review other places foreign keys are missing before_destroy EnsureNotUsedBy.new

#4 Updated by Dominic Cleal over 3 years ago

  • Release set to 1.5.2

#5 Updated by Joseph Magen over 3 years ago

  • Status changed from Ready For Testing to Closed
  • % Done changed from 0 to 100

Also available in: Atom PDF