Bug #22676
Fact importing with location set resets Domain even if domain isn't set or updated if domain isn't in the selected location
Description
Recently in katello we started noticing an issue where domain_id was being set to nil on interface during subscription-manager registration. To reproduce:
1. Have a host check in via puppet (domain is created with no org or location)
2. Register the same host with subscription-manager using an activation key.
sub-man register does a fact import using the Rhsm Fact Importer and Parser. This does NOT attempt to set a domain. Even though it doens't set the domain, it does provide other interface attributes which causes an update on the existing interfaces. Anytime an interface is updated this code gets called:
https://github.com/theforeman/foreman/blob/develop/app/models/nic/interface.rb#L108-L110
This line " if domain.nil? && name.include?('.') && changed_attributes['domain_id'].blank?" tries to detect if a domain is or is not set for the host. However since its calling 'domain.nil?' it requires that the current taxonomies be able to resolve the domain. Since location.current is set, and the domain is not in that location, domain always return nil.
Associated revisions
History
#1
Updated by The Foreman Bot over 4 years ago
- Status changed from New to Ready For Testing
- Pull request https://github.com/theforeman/foreman/pull/5272 added
#2
Updated by Marek Hulán over 4 years ago
- Legacy Backlogs Release (now unused) set to 330
#3
Updated by Justin Sherrill over 4 years ago
- % Done changed from 0 to 100
- Status changed from Ready For Testing to Closed
Applied in changeset 3c660dd2e636a533788d1b46dc8550006b6fb304.
#4
Updated by Anonymous over 4 years ago
- Legacy Backlogs Release (now unused) changed from 330 to 296
#5
Updated by The Foreman Bot over 4 years ago
- Pull request https://github.com/theforeman/foreman/pull/5303 added
Fixes #22676 - domain checking should ignore scoping