Exemplo n.º 1
0
def test_cert_warning_seconds(aggregator,
                              instance_remote_cert_warning_seconds):
    c = TLSCheck('tls', {}, [instance_remote_cert_warning_seconds])
    c.check(None)

    aggregator.assert_service_check(c.SERVICE_CHECK_CAN_CONNECT,
                                    status=c.OK,
                                    tags=c._tags,
                                    count=1)
    aggregator.assert_service_check(c.SERVICE_CHECK_VERSION,
                                    status=c.OK,
                                    tags=c._tags,
                                    count=1)
    aggregator.assert_service_check(c.SERVICE_CHECK_VALIDATION,
                                    status=c.OK,
                                    tags=c._tags,
                                    count=1)
    aggregator.assert_service_check(c.SERVICE_CHECK_EXPIRATION,
                                    status=c.WARNING,
                                    tags=c._tags,
                                    count=1)

    aggregator.assert_metric('tls.days_left', count=1)
    aggregator.assert_metric('tls.seconds_left', count=1)
    aggregator.assert_all_metrics_covered()
Exemplo n.º 2
0
def test_version_init_config_default(aggregator,
                                     instance_remote_version_default_1_1):
    c = TLSCheck('tls', {'allowed_versions': ['1.1']},
                 [instance_remote_version_default_1_1])
    c.check(None)

    aggregator.assert_service_check(c.SERVICE_CHECK_CAN_CONNECT,
                                    status=c.OK,
                                    tags=c._tags,
                                    count=1)
    aggregator.assert_service_check(c.SERVICE_CHECK_VERSION,
                                    status=c.OK,
                                    tags=c._tags,
                                    count=1)
    aggregator.assert_service_check(c.SERVICE_CHECK_VALIDATION,
                                    status=c.OK,
                                    tags=c._tags,
                                    count=1)
    aggregator.assert_service_check(c.SERVICE_CHECK_EXPIRATION,
                                    status=c.OK,
                                    tags=c._tags,
                                    count=1)

    aggregator.assert_metric('tls.days_left', count=1)
    aggregator.assert_metric('tls.seconds_left', count=1)
    aggregator.assert_all_metrics_covered()
Exemplo n.º 3
0
def test_cert_bad(aggregator, instance_local_cert_bad):
    c = TLSCheck('tls', {}, [instance_local_cert_bad])
    c.check(None)

    aggregator.assert_service_check(c.SERVICE_CHECK_CAN_CONNECT, count=0)
    aggregator.assert_service_check(c.SERVICE_CHECK_VERSION, count=0)
    aggregator.assert_service_check(c.SERVICE_CHECK_VALIDATION, status=c.CRITICAL, tags=c._tags, count=1)
    aggregator.assert_service_check(c.SERVICE_CHECK_EXPIRATION, count=0)

    aggregator.assert_all_metrics_covered()
Exemplo n.º 4
0
def test_hostname_mismatch(aggregator, instance_local_hostname_mismatch):
    c = TLSCheck('tls', {}, [instance_local_hostname_mismatch])
    c.check(None)

    aggregator.assert_service_check(c.SERVICE_CHECK_CAN_CONNECT, count=0)
    aggregator.assert_service_check(c.SERVICE_CHECK_VERSION, count=0)
    aggregator.assert_service_check(c.SERVICE_CHECK_VALIDATION, status=c.CRITICAL, tags=c._tags, count=1)
    aggregator.assert_service_check(c.SERVICE_CHECK_EXPIRATION, status=c.OK, tags=c._tags, count=1)

    aggregator.assert_metric('tls.days_left', count=1)
    aggregator.assert_metric('tls.seconds_left', count=1)
    aggregator.assert_all_metrics_covered()
Exemplo n.º 5
0
def test_no_connect_port_in_host(aggregator, instance_remote_no_connect_port_in_host):
    c = TLSCheck('tls', {}, [instance_remote_no_connect_port_in_host])
    c.check(None)

    aggregator.assert_service_check(c.SERVICE_CHECK_CAN_CONNECT, status=c.CRITICAL, tags=c._tags, count=1)
    aggregator.assert_service_check(c.SERVICE_CHECK_VERSION, count=0)
    aggregator.assert_service_check(c.SERVICE_CHECK_VALIDATION, count=0)
    aggregator.assert_service_check(c.SERVICE_CHECK_EXPIRATION, count=0)

    message = 'Unable to resolve host, check your DNS'
    assert message not in aggregator.service_checks(c.SERVICE_CHECK_CAN_CONNECT)[0].message

    aggregator.assert_all_metrics_covered()
Exemplo n.º 6
0
def test_cert_expired(aggregator, mock_dns, instance_remote_cert_expired):
    c = TLSCheck('tls', {}, [instance_remote_cert_expired])
    c.check(None)

    aggregator.assert_service_check(c.SERVICE_CHECK_CAN_CONNECT, status=c.OK, tags=c._tags, count=1)
    aggregator.assert_service_check(c.SERVICE_CHECK_VALIDATION, status=c.CRITICAL, tags=c._tags, count=1)
    if PY2:
        aggregator.assert_service_check(c.SERVICE_CHECK_VERSION, count=0)
        aggregator.assert_service_check(c.SERVICE_CHECK_EXPIRATION, count=0)
    else:
        aggregator.assert_service_check(c.SERVICE_CHECK_VERSION, count=0)
        aggregator.assert_service_check(
            c.SERVICE_CHECK_EXPIRATION, status=c.CRITICAL, tags=c._tags, message='Certificate has expired', count=1
        )

    aggregator.assert_all_metrics_covered()
Exemplo n.º 7
0
def test_no_connect_ipv6(aggregator, instance_remote_no_connect):
    c = TLSCheck('tls', {}, [instance_remote_no_connect])
    with mock.patch('socket.getaddrinfo', return_value=()):
        c.check(None)

    aggregator.assert_service_check(
        c.SERVICE_CHECK_CAN_CONNECT,
        status=c.CRITICAL,
        tags=c._tags,
        message='No valid addresses found, try checking your IPv6 connectivity',
        count=1,
    )
    aggregator.assert_service_check(c.SERVICE_CHECK_VERSION, count=0)
    aggregator.assert_service_check(c.SERVICE_CHECK_VALIDATION, count=0)
    aggregator.assert_service_check(c.SERVICE_CHECK_EXPIRATION, count=0)

    aggregator.assert_all_metrics_covered()
Exemplo n.º 8
0
def test_ok_der(aggregator, instance_local_ok_der):
    c = TLSCheck('tls', {}, [instance_local_ok_der])
    c.check(None)

    aggregator.assert_service_check(SERVICE_CHECK_CAN_CONNECT, count=0)
    aggregator.assert_service_check(SERVICE_CHECK_VERSION, count=0)
    aggregator.assert_service_check(SERVICE_CHECK_VALIDATION,
                                    status=c.OK,
                                    tags=c._tags,
                                    count=1)
    aggregator.assert_service_check(SERVICE_CHECK_EXPIRATION,
                                    status=c.OK,
                                    tags=c._tags,
                                    count=1)

    aggregator.assert_metric('tls.days_left', count=1)
    aggregator.assert_metric('tls.seconds_left', count=1)
    aggregator.assert_all_metrics_covered()
Exemplo n.º 9
0
def test_no_server_hostname(instance_local_no_server_hostname):
    c = TLSCheck('tls', {}, [instance_local_no_server_hostname])

    with pytest.raises(ConfigurationError):
        c.check(None)
Exemplo n.º 10
0
def test_no_server(instance_remote_no_server):
    c = TLSCheck('tls', {}, [instance_remote_no_server])

    with pytest.raises(ConfigurationError):
        c.check(None)