Problem:
I am unable to join a machine with bonded primary interface. I get this error when using subscription-manager. HTTP error (422 - Unknown): Validation failed: Attached to can’t be blank
I traced through the logs - I think it is an issue that it can’t tell what the slave ethernet devices are. However I’m unsure if there is a way that I can specify that. Can anyone help me with this?
Expected outcome:
Join successfully using subscription-manager register to Katello
Foreman and Proxy versions:
foreman 1.22
Foreman and Proxy plugin versions:
Other relevant data:
this is from the /var/log/foreman/production.log
2019-07-10T10:29:32 [I|app|a25781d5] Import facts for '<redacted system name>' completed. Added: 220, Updated: 0, Deleted 0 facts
2019-07-10T10:29:32 [I|aud|a25781d5] Nic::Managed (834) update event on mac , <redacted>
2019-07-10T10:29:32 [I|aud|a25781d5] Nic::Managed (834) update event on virtual false, true
2019-07-10T10:29:32 [I|aud|a25781d5] Nic::Managed (834) update event on identifier , bond0
2019-07-10T10:29:32 [W|app|a25781d5] Not queueing Nic::Managed: ["Attached to can't be blank"]
2019-07-10T10:29:32 [W|app|a25781d5] Not queueing Nic::Managed: ["Attached to can't be blank"]
2019-07-10T10:29:32 [W|app|a25781d5] Not queueing Nic::Managed: ["Attached to can't be blank"]
If RHSM does not provide information about how interfaces are attached each other, then we can’t figure it out easily. Then we need a BZ for subscription-manager first to send the data over to us.
I do want to say that this used to work on an older version of Katello, version 3.8. I have older clients that have bonded primary interfaces that I was able to join using that version.
The way this works for puppet facts is that we try to do “educated guess” on the input data because facter also does not provide “attached to” information (at least the legacy versions). The code in fact_parser.rb is in set_additional_attributes.
This needs some debugging with the fact input provided, RHSM overrides most of the core functionality so some refactoring is probably needed to avoid code copying.