Esempio n. 1
0
def test_process_inotify_event_flock_error(
    firewall_flock_mock,
    active_service_groups_mock,
    ensure_service_chains_mock,
    log_mock,
):
    active_service_groups_mock.return_value = {
        firewall.ServiceGroup('myservice', 'myinstance'):
        {'00:00:00:00:00:00'},
        firewall.ServiceGroup('anotherservice', 'instance'):
        {'11:11:11:11:11:11'},
        firewall.ServiceGroup('thirdservice', 'instance'):
        {'22:22:22:22:22:22'},
    }

    services_by_dependencies = {
        'mydep.depinstance': {('myservice', 'myinstance'),
                              ('anotherservice', 'instance')},
    }
    soa_dir = mock.Mock()
    synapse_service_dir = mock.Mock()
    firewall_update.process_inotify_event(
        (None, None, None, b'mydep.depinstance.json'),
        services_by_dependencies,
        soa_dir,
        synapse_service_dir,
    )
    assert log_mock.debug.call_count == 1
    assert log_mock.error.call_count == 1
Esempio n. 2
0
def test_process_inotify_event_flock_error(
    firewall_flock_mock,
    active_service_groups_mock,
    ensure_service_chains_mock,
    log_mock,
):
    active_service_groups_mock.return_value = {
        firewall.ServiceGroup("myservice", "myinstance"): {"00:00:00:00:00:00"},
        firewall.ServiceGroup("anotherservice", "instance"): {"11:11:11:11:11:11"},
        firewall.ServiceGroup("thirdservice", "instance"): {"22:22:22:22:22:22"},
    }

    services_by_dependencies = {
        "mydep.depinstance": {
            ("myservice", "myinstance"),
            ("anotherservice", "instance"),
        }
    }
    soa_dir = mock.Mock()
    synapse_service_dir = mock.Mock()
    firewall_update.process_inotify_event(
        (None, None, None, b"mydep.depinstance.json"),
        services_by_dependencies,
        soa_dir,
        synapse_service_dir,
    )
    assert log_mock.debug.call_count == 1
    assert log_mock.error.call_count == 1
Esempio n. 3
0
def test_process_inotify_event(
    firewall_flock_mock,
    active_service_groups_mock,
    ensure_service_chains_mock,
    log_mock,
):
    active_service_groups_mock.return_value = {
        firewall.ServiceGroup("myservice", "myinstance"):
        {"00:00:00:00:00:00"},
        firewall.ServiceGroup("anotherservice", "instance"):
        {"11:11:11:11:11:11"},
        firewall.ServiceGroup("thirdservice", "instance"):
        {"22:22:22:22:22:22"},
    }

    services_by_dependencies = {
        "mydep.depinstance": {
            ("myservice", "myinstance"),
            ("anotherservice", "instance"),
        }
    }
    soa_dir = mock.Mock()
    synapse_service_dir = mock.Mock()
    firewall_update.process_inotify_event(
        (None, None, None, b"mydep.depinstance.json"),
        services_by_dependencies,
        soa_dir,
        synapse_service_dir,
    )
    assert log_mock.debug.call_count == 3
    log_mock.debug.assert_any_call("Updated ('myservice', 'myinstance')")
    log_mock.debug.assert_any_call("Updated ('anotherservice', 'instance')")
    assert ensure_service_chains_mock.mock_calls == [
        mock.call(
            {
                firewall.ServiceGroup("myservice", "myinstance"):
                {"00:00:00:00:00:00"},
                firewall.ServiceGroup("anotherservice", "instance"):
                {"11:11:11:11:11:11"},
            },
            soa_dir,
            synapse_service_dir,
        )
    ]

    assert firewall_flock_mock.return_value.__enter__.called is True

    # Verify that tmp writes do not apply
    log_mock.reset_mock()
    ensure_service_chains_mock.reset_mock()
    firewall_update.process_inotify_event(
        (None, None, None, b"mydep.depinstance.tmp"),
        services_by_dependencies,
        soa_dir,
        synapse_service_dir,
    )
    assert log_mock.debug.call_count == 1
    assert ensure_service_chains_mock.call_count == 0
Esempio n. 4
0
def test_process_inotify_event(log_mock):
    # TODO: test something more meaningful than the log function once we have actual iptables
    services_by_dependencies = {
        'mydep.depinstance': {('myservice', 'myinstance'),
                              ('anotherservice', 'instance')}
    }
    firewall_update.process_inotify_event(
        (None, None, None, 'mydep.depinstance.json'), services_by_dependencies)
    assert log_mock.debug.call_count == 2
    log_mock.debug.assert_any_call('Update ', ('myservice', 'myinstance'))
    log_mock.debug.assert_any_call('Update ', ('anotherservice', 'instance'))

    # Verify that tmp writes do not apply
    log_mock.reset_mock()
    firewall_update.process_inotify_event(
        (None, None, None, 'mydep.depinstance.tmp'), services_by_dependencies)
    assert log_mock.debug.call_count == 0
Esempio n. 5
0
def test_process_inotify_event(firewall_flock_mock, active_service_groups_mock,
                               ensure_service_chains_mock, log_mock):
    active_service_groups_mock.return_value = {
        firewall.ServiceGroup('myservice', 'myinstance'):
        {'00:00:00:00:00:00'},
        firewall.ServiceGroup('anotherservice', 'instance'):
        {'11:11:11:11:11:11'},
        firewall.ServiceGroup('thirdservice', 'instance'):
        {'22:22:22:22:22:22'},
    }

    services_by_dependencies = {
        'mydep.depinstance': {('myservice', 'myinstance'),
                              ('anotherservice', 'instance')}
    }
    soa_dir = mock.Mock()
    synapse_service_dir = mock.Mock()
    firewall_update.process_inotify_event(
        (None, None, None, 'mydep.depinstance.json'), services_by_dependencies,
        soa_dir, synapse_service_dir)
    assert log_mock.debug.call_count == 2
    log_mock.debug.assert_any_call('Updated ', ('myservice', 'myinstance'))
    log_mock.debug.assert_any_call('Updated ', ('anotherservice', 'instance'))
    assert ensure_service_chains_mock.mock_calls == [
        mock.call(
            {
                firewall.ServiceGroup('myservice', 'myinstance'):
                {'00:00:00:00:00:00'},
                firewall.ServiceGroup('anotherservice', 'instance'):
                {'11:11:11:11:11:11'},
            }, soa_dir, synapse_service_dir)
    ]

    assert firewall_flock_mock.return_value.__enter__.called is True

    # Verify that tmp writes do not apply
    log_mock.reset_mock()
    ensure_service_chains_mock.reset_mock()
    firewall_update.process_inotify_event(
        (None, None, None, 'mydep.depinstance.tmp'), services_by_dependencies,
        soa_dir, synapse_service_dir)
    assert log_mock.debug.call_count == 0
    assert ensure_service_chains_mock.call_count == 0