示例#1
0
def test_rest_successful_sign(mock_request, mock_fail, mock_exit):
    mock_exit.side_effect = exit_json
    mock_fail.side_effect = fail_json
    mock_request.side_effect = [
        SRR['is_rest'],
        SRR['get_uuid'],  # get certificate -> found
        SRR['empty_good'],
        SRR['end_of_sequence']
    ]
    data = {'vserver': 'abc', 'signing_request': 'CSR'}
    data.update(set_default_args())
    set_module_args(data)
    my_obj = my_module()
    with pytest.raises(AnsibleExitJson) as exc:
        my_obj.apply()
    assert exc.value.args[0]['changed']
示例#2
0
def test_rest_successful_create(mock_request, mock_fail, mock_exit):
    mock_exit.side_effect = exit_json
    mock_fail.side_effect = fail_json
    mock_request.side_effect = [
        SRR['is_rest'],
        SRR['empty_records'],  # get certificate -> not found
        SRR['empty_good'],
        SRR['end_of_sequence']
    ]
    data = {'type': 'client_ca', 'vserver': 'abc', 'common_name': 'cname'}
    data.update(set_default_args())
    set_module_args(data)
    my_obj = my_module()
    with pytest.raises(AnsibleExitJson) as exc:
        my_obj.apply()
    assert exc.value.args[0]['changed']
示例#3
0
def test_rest_failed_sign_missing_ca(mock_request, mock_fail, mock_exit):
    mock_exit.side_effect = exit_json
    mock_fail.side_effect = fail_json
    mock_request.side_effect = [
        SRR['is_rest'],
        SRR['empty_records'],  # get certificate -> not found
        SRR['empty_good'],
        SRR['end_of_sequence']
    ]
    data = {'vserver': 'abc', 'signing_request': 'CSR'}
    data.update(set_default_args())
    set_module_args(data)
    my_obj = my_module()
    with pytest.raises(AnsibleFailJson) as exc:
        my_obj.apply()
    msg = "signing certificate with name '%s' not found on svm: %s" % (
        data['name'], data['vserver'])
    assert exc.value.args[0]['msg'] == msg
示例#4
0
def test_rest_idempotent_delete(mock_request, mock_fail, mock_exit):
    mock_exit.side_effect = exit_json
    mock_fail.side_effect = fail_json
    mock_request.side_effect = [
        SRR['is_rest'],
        SRR['empty_records'],  # get certificate -> not found
        SRR['empty_good'],
        SRR['end_of_sequence']
    ]
    data = {
        'state': 'absent',
    }
    data.update(set_default_args())
    set_module_args(data)
    my_obj = my_module()
    with pytest.raises(AnsibleExitJson) as exc:
        my_obj.apply()
    assert not exc.value.args[0]['changed']
示例#5
0
def test_rest_create_failed(mock_request, mock_fail, mock_exit):
    mock_exit.side_effect = exit_json
    mock_fail.side_effect = fail_json
    mock_request.side_effect = [
        SRR['is_rest'],
        SRR['empty_records'],  # get certificate -> not found
        SRR['empty_good'],
        SRR['end_of_sequence']
    ]
    data = {
        'type': 'client_ca',
        'vserver': 'abc',
    }
    data.update(set_default_args())
    set_module_args(data)
    my_obj = my_module()
    with pytest.raises(AnsibleFailJson) as exc:
        my_obj.apply()
    msg = 'Error creating or installing certificate: one or more of the following options are missing:'
    assert exc.value.args[0]['msg'].startswith(msg)
def test_rest_cannot_ignore_name_error_no_common_name(mock_request, mock_fail,
                                                      mock_exit):
    mock_exit.side_effect = exit_json
    mock_fail.side_effect = fail_json
    mock_request.side_effect = [
        SRR['is_rest'],
        SRR['error_unexpected_name'],  # get certificate -> error
        SRR['end_of_sequence']
    ]
    data = {
        'vserver': 'abc',
        'signing_request': 'CSR',
        'state': 'absent',
    }
    data.update(set_default_args())
    set_module_args(data)
    my_obj = my_module()
    with pytest.raises(AnsibleFailJson) as exc:
        my_obj.apply()
    assert exc.value.args[0]['msg'] == NAME_ERROR
示例#7
0
def test_rest_ignore_name_error(mock_request, mock_fail, mock_exit):
    mock_exit.side_effect = exit_json
    mock_fail.side_effect = fail_json
    mock_request.side_effect = [
        SRR['is_rest'],
        SRR['error_unexpected_name'],  # get certificate -> error
        SRR['get_uuid'],  # get certificate -> found
        SRR['end_of_sequence']
    ]
    data = {
        'vserver': 'abc',
        'signing_request': 'CSR',
        'state': 'absent',
        'common_name': 'common_name',
        'type': 'root_ca'
    }
    data.update(set_default_args())
    set_module_args(data)
    my_obj = my_module()
    with pytest.raises(AnsibleFailJson) as exc:
        my_obj.apply()
    msg = "'signing_request' is not supported with 'state' set to 'absent'"
    assert exc.value.args[0]['msg'] == msg
示例#8
0
def test_rest_failed_on_name(mock_request, mock_fail, mock_exit):
    mock_exit.side_effect = exit_json
    mock_fail.side_effect = fail_json
    mock_request.side_effect = [
        SRR['is_rest'],
        SRR['error_unexpected_name'],  # get certificate -> error
        SRR['end_of_sequence']
    ]
    data = {
        'vserver': 'abc',
        'signing_request': 'CSR',
        'state': 'absent',
        'ignore_name_if_not_supported': False,
        'common_name': 'common_name',
        'type': 'root_ca'
    }
    data.update(set_default_args())
    set_module_args(data)
    my_obj = my_module()
    with pytest.raises(AnsibleFailJson) as exc:
        my_obj.apply()
    msg = "ONTAP 9.6 and 9.7 do not support 'name'.  Use 'common_name' and 'type' as a work-around."
    assert exc.value.args[0]['msg'] == msg