Example #1
0
def test_annotate_updates_available_is_reboot(
        mock_subprocess, mock_annotate, mock_name
):
    mock_name.return_value = 'mynode'

    mock_process = Mock()
    mock_process.communicate.return_value = (
        b'<stream><update-status><update-list><update interactive="reboot">'
        b'</update></update-list></update-status></stream>', b''
    )
    mock_process.returncode = 0
    mock_subprocess.return_value = mock_process

    annotate_updates_available()
    assert mock_subprocess.call_args_list == [
        call(
            ['zypper', '--non-interactive', '--xmlout', 'list-patches'],
            stdout=-1, stderr=-1, env=ANY
        )
    ]
    assert mock_annotate.call_args_list == [
        call('node', 'mynode', KUBE_UPDATES_KEY, 'yes'),
        call('node', 'mynode', KUBE_SECURITY_UPDATES_KEY, 'no'),
        call('node', 'mynode', KUBE_DISRUPTIVE_UPDATES_KEY, 'yes')
    ]
Example #2
0
def test_annotate_updates_available(mock_subprocess, mock_open, mock_name):
    mock_name.return_value = 'mynode'

    mock_process = Mock()
    mock_process.communicate.return_value = (
        b'<stream><update-status><update-list><update interactive="message">'
        b'</update></update-list></update-status></stream>', b''
    )
    mock_process.returncode = 0
    mock_subprocess.return_value = mock_process

    annotate_updates_available()

    assert mock_subprocess.call_args_list == [
        call(
            ['zypper', '--non-interactive', '--xmlout', 'list-patches'],
            stdout=-1, stderr=-1, env=ANY
        ),
        call(
            ["kubectl", "annotate", "--overwrite", "node",
             "mynode", "caasp.suse.com/has-updates=yes"],
            stdout=-1, stderr=-1, env=ANY
        ),
        call(
            ["kubectl", "annotate", "--overwrite", "node",
             "mynode", "caasp.suse.com/has-security-updates=no"],
            stdout=-1, stderr=-1, env=ANY
        ),
        call(
            ["kubectl", "annotate", "--overwrite", "node",
             "mynode", "caasp.suse.com/has-disruptive-updates=yes"],
            stdout=-1, stderr=-1, env=ANY
        )
    ]