Description of problem: When a client has the primary interface on a bond the bond0 is not in the interfaces list when the client is uploads the facts thorugh the puppet ENC. The root cuase is the foreman code to initialize a new host initializes the primary interface as a NIC::Managed class: def build_required_interfaces(attrs = {}) self.interfaces.build(attrs.merge(:primary => true, :type => 'Nic::Managed')) if self.primary_interface.nil? self.primary_interface.provision = true if self.provision_interface.nil? end This is wrong, because for a bond it must be the sub class Nic::Bond Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. create a host with a bond0 interface mode=0 with the ip address and add one slave (enough to test) 2. delete the host in foreman 3. run puppet to upload the facts, this should create through the puppet ENC the host in foreman 4. check the interfaces of the host, the bond0 is missing Actual results: Expected results: Additional info: There is a warning inside the code 'Saving bond0 NIC for host xxx.xxx failed, skipping because:' but this is not emitted to the log file, i have created a separate https://bugzilla.redhat.com/show_bug.cgi?id=1503052 for this
Created attachment 1339798 [details] Proposed patch Attached is a proposed patch that parses the facts and then gives the suggested primary interface to the new host creation process. Based on this suggested primary interface the right Nic subclass is then instantiated
Created attachment 1357863 [details] Proposed patch - foreman 1.15 Updated patch for foreman 1.15.6
Hi folks, Looks like it's been a month with no updates. We need to push this and provide a meaningful update, please. I'm setting the customer escalation flag.
Any news? At least todays code on github https://github.com/theforeman/foreman/blob/develop/app/models/host/base.rb#L391 is still broken as it creates always NIC::Managed instead of the result of interface_class(name) as defined in https://github.com/theforeman/foreman/blob/develop/app/models/host/base.rb#L503
Created attachment 1560530 [details] Proposed patch for sat650beta foreman1.20 Rebased patch for foreman 1.20 part of sat6.5.0beta
Hi Peter! Thanks for updating the (proposed) patch against RHSAT6.5 / Foreman 1.20. Since I wasn't able to find this addressed upstream, I took the opportunity to move this upstream: https://github.com/theforeman/foreman/pull/6731 That could mean I get back to you with additional questions, should the pop up there. Kind regards, Oliver
Foreman issue for the same: https://projects.theforeman.org/issues/26727
Moving this bug to POST for triage into Satellite 6 since the upstream issue https://projects.theforeman.org/issues/26727 has been resolved.
Please note that my initial fix was enhanced by Timo Goebel with https://github.com/theforeman/foreman/pull/6933 and this one was merged.
Hello While testing: Bug 1769898 - Unable to register a machine with bonded primary interface Bug 1766344 - Unable to register a machine with bonded primary interface I raised: Identifier is blank when registering over a bond https://projects.theforeman.org/issues/28376 As https://projects.theforeman.org/issues/26727 is attached to this bug and Bug 1766344, does that not mean this is a duplicate of Bug 1766344? Thank you
Hello taking QA role as requested by rplevka
(In reply to Stephen Wadeley from comment #35) <snip> > > As https://projects.theforeman.org/issues/26727 is attached to this bug and > Bug 1766344, does that not mean this is a duplicate of Bug 1766344? > lzap says no, because "Although some code is shared, one is rhsm client and the other is puppet client."
Hello Testing with latest snap [root@dell-r330-12 ~]# rpm -q satellite satellite-6.7.0-5.beta.el7sat.noarch ------------------------------------------------------------- On a RHEl7 host: [root@bond-test ~]# hostname bond-test.gsslab.brq.redhat.com [root@bond-test ~]# nmcli con add type bond ifname bond0 Connection 'bond-bond0' (5b8bf287-8190-46f0-872d-29c9011eee06) successfully added. mode=0 is balance-rr and is the default. --------------------------------------- [root@bond-test ~]# nmcli -f bond.options con show bond-bond0 bond.options: mode=balance-rr [root@bond-test ~]# nmcli con add type ethernet ifname eth1 master bond0 Connection 'bond-slave-eth1' (08c2a961-1c9c-4112-aafe-95c644432ebb) successfully added. [root@bond-test ~]# nmcli -f IP4.ADDRESS con show bond-bond0 IP4.ADDRESS[1]: 192.168.100.11/24 log out and back in over the bond ----------------------------------- [root@dell-r330-12 ~]# ssh root.100.11 The authenticity of host '192.168.100.11 (192.168.100.11)' can't be established. ECDSA key fingerprint is SHA256:iL/V+VXlq/SbcNURCBaICzIbEssSIXYRoSwbWa9+5X0. ECDSA key fingerprint is MD5:88:fa:ad:31:de:ec:7a:ec:06:0b:f8:4d:12:aa:21:96. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.100.11' (ECDSA) to the list of known hosts. root.100.11's password: Last login: Wed Jan 29 20:42:33 2020 from gateway Set down the other interface ----------------------------------- [root@bond-test ~]# ifdown eth0 Device 'eth0' successfully disconnected [root@bond-test ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:7b:25:77 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000 link/ether 52:54:00:34:3a:85 brd ff:ff:ff:ff:ff:ff 4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00:34:3a:85 brd ff:ff:ff:ff:ff:ff inet 192.168.100.11/24 brd 192.168.100.255 scope global noprefixroute dynamic bond0 valid_lft 42512sec preferred_lft 42512sec inet6 fe80::cd34:feab:77eb:2d3b/64 scope link noprefixroute valid_lft forever preferred_lft forever [root@bond-test ~]# Test starts here ---------------- comment 0 does not mention registration but thats implied (otherwise how would you delete it) [root@bond-test ~]# rpm -Uvh http://dell-r330-12.gsslab.brq.redhat.com/pub/katello-ca-consumer-latest.noarch.rpm Retrieving http://dell-r330-12.gsslab.brq.redhat.com/pub/katello-ca-consumer-latest.noarch.rpm Preparing... ################################# [100%] Updating / installing... 1:katello-ca-consumer-dell-r330-12.################################# [100%] [root@bond-test ~]# [root@bond-test ~]# subscription-manager register --org="Default_Organization" --activationkey="ak-rhel-7" --force Unregistering from: dell-r330-12.gsslab.brq.redhat.com:443/rhsm The system with UUID 66cd5a9e-5f24-46f0-b9ec-4a3c03aa757c has been unregistered All local data removed The system has been registered with ID: f337e645-1a40-4b89-b171-87170ba0cedb The registered system name is: bond-test.gsslab.brq.redhat.com [root@bond-test ~]# yum install puppet-agent [root@bond-test ~]# vi /etc/puppetlabs/puppet/puppet.conf # as per guide [1] [root@bond-test ~]# puppet agent -t # sign the cert in web UI [root@bond-test ~]# puppet agent -t Delete the host in Satellite ---------------------------- [root@dell-r330-12 ~]# hammer host list 2 | bond-test.gsslab.brq.redhat.com | RedHat 7.7 | | 192.168.100.11 | 52:54:00:34:3a:85 [root@dell-r330-12 ~]# hammer host delete --id 2 Host deleted. Run puppet again ------------------- [root@bond-test ~]# puppet agent -t Warning: Unable to fetch my node definition, but the agent run will continue: Warning: Error 500 on SERVER: Server Error: Failed to find bond-test.gsslab.brq.redhat.com via exec: Execution of '/etc/puppetlabs/puppet/node.rb bond-test.gsslab.brq.redhat.com' returned 1: [root@dell-r330-12 ~]# hammer host list 3 | bond-test.gsslab.brq.redhat.com | RedHat 7.7 | | 192.168.100.11 | 52:54:00:34:3a:85 [root@dell-r330-12 ~]# hammer host info --id 3 Id: 3 Name: bond-test.gsslab.brq.redhat.com Organisation: Default Organization Location: Default Location Puppet Environment: production Puppet CA Proxy: dell-r330-12.gsslab.brq.redhat.com Puppet Master Proxy: dell-r330-12.gsslab.brq.redhat.com Cert name: bond-test.gsslab.brq.redhat.com Managed: no Installed at: Last report: 2020/01/29 21:06:39 Uptime (seconds): 9193 Status: Global Status: OK Network: IPv4 address: 192.168.100.11 MAC: 52:54:00:34:3a:85 Domain: gsslab.brq.redhat.com Network interfaces: 1) Id: 8 Identifier: bond0 Type: bond (primary, provision) MAC address: 52:54:00:34:3a:85 IPv4 address: 192.168.100.11 FQDN: bond-test.gsslab.brq.redhat.com 2) Id: 9 Identifier: eth0 Type: interface MAC address: 52:54:00:7b:25:77 FQDN: 3) Id: 10 Identifier: eth1 Type: interface MAC address: 52:54:00:34:3a:85 FQDN: Operating system: Architecture: x86_64 Operating System: RedHat 7.7 Build: no Custom partition table: Parameters: All parameters: enable-puppet5 => true enable-epel => false In the web UI I can see bond0 entry. Screen capture will be attached next. [1] https://access.redhat.com/documentation/en-us/red_hat_satellite/6.6/html/managing_hosts/registering_hosts#installing-and-configuring-the-puppet-agent
Created attachment 1656401 [details] bond0 shown correctly in web UI
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2020:1454