Fix for "cannot marshal None unless.." (#33660)

when using only an activation key without any channels.
As already suggested by mattclay in
https://github.com/ansible/ansible/pull/25079

and also patch unit test for rhn_register and
add test case for activationkey only
This commit is contained in:
photoninger 2018-08-22 18:25:58 +02:00 committed by ansibot
parent 5b19d67873
commit d68c734ae2
2 changed files with 24 additions and 2 deletions

View file

@ -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]

View file

@ -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
{