diff --git a/lib/ansible/modules/packaging/os/rhn_register.py b/lib/ansible/modules/packaging/os/rhn_register.py index 44267c39b9..3bb07132b8 100644 --- a/lib/ansible/modules/packaging/os/rhn_register.py +++ b/lib/ansible/modules/packaging/os/rhn_register.py @@ -292,6 +292,8 @@ class Rhn(redhat.RegistrationBase): os.unlink(self.config['systemIdPath']) def subscribe(self, channels): + if not channels: + return if self._is_hosted(): current_channels = self.api('channel.software.listSystemChannels', self.systemid) new_channels = [item['channel_label'] for item in current_channels] diff --git a/test/units/modules/packaging/os/test_rhn_register.py b/test/units/modules/packaging/os/test_rhn_register.py index 7900115e74..0cf4548a16 100644 --- a/test/units/modules/packaging/os/test_rhn_register.py +++ b/test/units/modules/packaging/os/test_rhn_register.py @@ -110,9 +110,9 @@ def test_without_required_parameters(capfd, patch_rhn): TESTED_MODULE = rhn_register.__name__ TEST_CASES = [ [ - # Registering an unregistered host + # Registering an unregistered host and subscribing to one channel { - 'activationkey': 'key', + 'channels': 'rhel-x86_64-server-6', 'username': 'user', 'password': 'pass', }, @@ -136,6 +136,26 @@ TEST_CASES = [ 'unlink.call_count': 0, } ], + [ + # Registering an unregistered host with only an activationkey and without subscribing any channels + { + 'activationkey': 'key', + }, + { + 'calls': [ + ], + 'is_registered': False, + 'is_registered.call_count': 1, + 'enable.call_count': 1, + 'systemid.call_count': 0, + 'changed': True, + 'msg': "System successfully registered to 'rhn.redhat.com'.", + 'run_command.call_count': 1, + 'run_command.call_args': '/usr/sbin/rhnreg_ks', + 'request_called': False, + 'unlink.call_count': 0, + } + ], [ # Register an host already registered, check that result is unchanged {