def test_send_event_if_under_replication_critical():
    service = 'test_service'
    instance = 'worker'
    cluster = 'fake_cluster'
    crit = 90
    expected_count = 100
    available = 89
    soa_dir = '/dne'
    with contextlib.nested(
        mock.patch('paasta_tools.check_marathon_services_replication.send_event', autospec=True),
    ) as (
        mock_send_event,
    ):
        check_marathon_services_replication.send_event_if_under_replication(
            service=service,
            instance=instance,
            cluster=cluster,
            crit_threshold=crit,
            expected_count=expected_count,
            num_available=available,
            soa_dir=soa_dir)
        mock_send_event.assert_called_once_with(
            service=service,
            namespace=instance,
            cluster=cluster,
            soa_dir=soa_dir,
            status=2,
            output=mock.ANY)
def test_send_event_if_under_replication_critical(instance_config):
    with mock.patch(
            'paasta_tools.check_marathon_services_replication.send_event',
            autospec=True,
    ) as mock_send_event:
        check_marathon_services_replication.send_event_if_under_replication(
            instance_config=instance_config,
            expected_count=100,
            num_available=89,
        )
        mock_send_event.assert_called_once_with(
            instance_config=instance_config,
            status=2,
            output=mock.ANY,
        )
        _, send_event_kwargs = mock_send_event.call_args
        alert_output = send_event_kwargs["output"]
        assert (
            "{} has 89 out of 100 expected instances available!\n(threshold: 90%)"
            .format(instance_config.job_id)) in alert_output
        assert ("paasta status -s {} -i {} -c {} -vv".format(
            instance_config.service,
            instance_config.instance,
            instance_config.cluster,
        )) in alert_output
示例#3
0
def test_send_event_if_under_replication_critical():
    service = 'test_service'
    instance = 'worker'
    cluster = 'fake_cluster'
    crit = 90
    expected_count = 100
    available = 89
    soa_dir = '/dne'
    with contextlib.nested(
            mock.patch(
                'paasta_tools.check_marathon_services_replication.send_event',
                autospec=True), ) as (mock_send_event, ):
        check_marathon_services_replication.send_event_if_under_replication(
            service=service,
            instance=instance,
            cluster=cluster,
            crit_threshold=crit,
            expected_count=expected_count,
            num_available=available,
            soa_dir=soa_dir)
        mock_send_event.assert_called_once_with(service=service,
                                                namespace=instance,
                                                cluster=cluster,
                                                soa_dir=soa_dir,
                                                status=2,
                                                output=mock.ANY)
def test_send_event_if_under_replication_good():
    service = 'test_service'
    instance = 'worker'
    cluster = 'fake_cluster'
    crit = 90
    expected_count = 100
    available = 100
    soa_dir = '/dne'
    with mock.patch(
            'paasta_tools.check_marathon_services_replication.send_event',
            autospec=True,
    ) as mock_send_event, mock.patch(
            'paasta_tools.marathon_tools.load_marathon_service_config',
            autospec=True,
    ) as mock_load_marathon_service_config:
        mock_service_job_config = mock.MagicMock(
            spec_set=MarathonServiceConfig)
        mock_service_job_config.get_replication_crit_percentage.return_value = crit
        mock_load_marathon_service_config.return_value = mock_service_job_config

        check_marathon_services_replication.send_event_if_under_replication(
            service, instance, cluster, expected_count, available, soa_dir)
        mock_send_event.assert_called_once_with(
            service=service,
            namespace=instance,
            cluster=cluster,
            soa_dir=soa_dir,
            status=0,
            output=mock.ANY,
        )
        _, send_event_kwargs = mock_send_event.call_args
        alert_output = send_event_kwargs["output"]
        assert "test_service.worker has 100 out of 100 expected instances available!\n(threshold: 90%)" in alert_output
def test_send_event_if_under_replication_good():
    service = 'test_service'
    instance = 'worker'
    cluster = 'fake_cluster'
    crit = 90
    expected_count = 100
    available = 100
    soa_dir = '/dne'
    with contextlib.nested(
        mock.patch('paasta_tools.check_marathon_services_replication.send_event', autospec=True),
        mock.patch('paasta_tools.marathon_tools.load_marathon_service_config', autospec=True),
    ) as (
        mock_send_event,
        mock_load_marathon_service_config,
    ):
        mock_service_job_config = mock.MagicMock(spec_set=MarathonServiceConfig)
        mock_service_job_config.get_replication_crit_percentage.return_value = crit
        mock_load_marathon_service_config.return_value = mock_service_job_config

        check_marathon_services_replication.send_event_if_under_replication(
            service, instance, cluster, expected_count, available, soa_dir)
        mock_send_event.assert_called_once_with(
            service=service,
            namespace=instance,
            cluster=cluster,
            soa_dir=soa_dir,
            status=0,
            output=mock.ANY,
        )
        _, send_event_kwargs = mock_send_event.call_args
        alert_output = send_event_kwargs["output"]
        assert "test_service.worker has 100 out of 100 expected instances available!\n(threshold: 90%)" in alert_output
示例#6
0
def test_send_event_if_under_replication_critical():
    service = 'test_service'
    instance = 'worker'
    cluster = 'fake_cluster'
    crit = 90
    expected_count = 100
    available = 89
    soa_dir = '/dne'
    with contextlib.nested(
        mock.patch('paasta_tools.check_marathon_services_replication.send_event', autospec=True),
        mock.patch('paasta_tools.marathon_tools.load_marathon_service_config', autospec=True),
    ) as (
        mock_send_event,
        mock_load_marathon_service_config,
    ):
        mock_service_job_config = mock.MagicMock(spec_set=MarathonServiceConfig)
        mock_service_job_config.get_replication_crit_percentage.return_value = crit
        mock_load_marathon_service_config.return_value = mock_service_job_config

        check_marathon_services_replication.send_event_if_under_replication(
            service=service,
            instance=instance,
            cluster=cluster,
            expected_count=expected_count,
            num_available=available,
            soa_dir=soa_dir)
        mock_send_event.assert_called_once_with(
            service=service,
            namespace=instance,
            cluster=cluster,
            soa_dir=soa_dir,
            status=2,
            output=mock.ANY)
def test_send_event_if_under_replication_critical():
    service = "test_service"
    instance = "worker"
    cluster = "fake_cluster"
    crit = 90
    expected_count = 100
    available = 89
    soa_dir = "/dne"
    with contextlib.nested(
        mock.patch("paasta_tools.check_marathon_services_replication.send_event", autospec=True),
        mock.patch("paasta_tools.marathon_tools.load_marathon_service_config", autospec=True),
    ) as (mock_send_event, mock_load_marathon_service_config):
        mock_service_job_config = mock.MagicMock(spec_set=MarathonServiceConfig)
        mock_service_job_config.get_replication_crit_percentage.return_value = crit
        mock_load_marathon_service_config.return_value = mock_service_job_config

        check_marathon_services_replication.send_event_if_under_replication(
            service=service,
            instance=instance,
            cluster=cluster,
            expected_count=expected_count,
            num_available=available,
            soa_dir=soa_dir,
        )
        mock_send_event.assert_called_once_with(
            service=service, namespace=instance, cluster=cluster, soa_dir=soa_dir, status=2, output=mock.ANY
        )
        _, send_event_kwargs = mock_send_event.call_args
        alert_output = send_event_kwargs["output"]
        assert "test_service.worker has 89 out of 100 expected instances available!\n(threshold: 90%)" in alert_output
        assert "paasta status -s test_service -i worker -c fake_cluster -vv" in alert_output
def test_send_event_if_under_replication_handles_0_expected(instance_config):
    with mock.patch(
        'paasta_tools.check_marathon_services_replication.send_event', autospec=True,
    ) as mock_send_event:
        check_marathon_services_replication.send_event_if_under_replication(
            instance_config=instance_config,
            expected_count=0,
            num_available=0,
        )
        mock_send_event.assert_called_once_with(
            instance_config=instance_config,
            status=0,
            output=mock.ANY,
        )
        _, send_event_kwargs = mock_send_event.call_args
        alert_output = send_event_kwargs["output"]
        assert ("{} has 0 out of 0 expected instances available!\n(threshold: 90%)"
                .format(instance_config.job_id)) in alert_output