Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cherry-pick #25080 to 7.13: New option in filestream: include_files && check after symlink is resolved #25245

Merged
merged 1 commit into from
Apr 23, 2021

Conversation

kvch
Copy link
Contributor

@kvch kvch commented Apr 22, 2021

Cherry-pick of PR #25080 to 7.13 branch. Original message:

What does this PR do?

This PR adds support for a new feature in filestream input named include_files. This option is the counterpart of exclude_files. It expects a list of regexes and it only includes files that match the regexes.

The PR also adds one more check after symlinks are resolved, the original file is tested again with the regexes in include_files and exclude_files.

Why is it important?

exclude_files was not enough for disallowing files.

Checklist

  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
    - [ ] I have made corresponding changes to the documentation
  • I have made corresponding change to the default configuration files
  • I have added tests that prove my fix is effective or that my feature works
    - [ ] I have added an entry in CHANGELOG.next.asciidoc or CHANGELOG-developer.next.asciidoc.

… resolved (elastic#25080)

## What does this PR do?

This PR adds support for a new feature in `filestream` input named `include_files`. This option is the counterpart of `exclude_files`. It expects a list of regexes and it only includes files that match the regexes.

The PR also adds one more check after symlinks are resolved, the original file is tested again with the regexes in `include_files` and `exclude_files`.

## Why is it important?

`exclude_files` was not enough for disallowing files.

(cherry picked from commit dfb98b2)
@elasticmachine
Copy link
Collaborator

Pinging @elastic/agent (Team:Agent)

@botelastic botelastic bot added needs_team Indicates that the issue/PR needs a Team:* label and removed needs_team Indicates that the issue/PR needs a Team:* label labels Apr 22, 2021
@elasticmachine
Copy link
Collaborator

💔 Tests Failed

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview

Expand to view the summary

Build stats

  • Build Cause: Pull request #25245 opened

  • Start Time: 2021-04-22T17:01:56.171+0000

  • Duration: 64 min 50 sec

  • Commit: e9b4a28

Test stats 🧪

Test Results
Failed 165
Passed 13508
Skipped 2299
Total 15972

Trends 🧪

Image of Build Times

Image of Tests

Test errors 165

Expand to view the tests failures

> Show only the first 10 test failures

Build&Test / filebeat-build / test_fileset_file_000_traefik – filebeat.tests.system.test_modules.Test
    Expand to view the error details

     AssertionError: The following expected object doesn't match:    Diff:   {'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region_name']], 'values_changed': {"root['source.geo.location.lon']": {'new_value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}, full object:    {'log.offset': 280, 'traefik.access.user_identifier': '-', 'traefik.access.frontend_name': 'Host-host1', 'traefik.access.backend_url': 'http://172.19.0.3:5601', 'traefik.access.request_count': 271, 'source.geo.continent_name': 'Europe', 'source.geo.country_iso_code': 'DE', 'source.geo.country_name': 'Germany', 'source.geo.location.lon': 9.491, 'source.geo.location.lat': 51.2993, 'source.as.number': 6805, 'source.as.organization.name': 'Telefonica Germany', 'source.address': '85.181.35.98', 'source.ip': '85.181.35.98', 'fileset.name': 'access', 'url.original': '/ui/favicons/favicon.ico', 'input.type': 'log', '@timestamp': '2017-10-02T20:22:08.000Z', 'related.ip': ['85.181.35.98'], 'service.type': 'traefik', 'http.request.referrer': 'http://example.com/login', 'http.request.method': 'GET', 'http.response.status_code': 304, 'http.response.body.bytes': 0, 'http.version': '1.1', 'event.duration': 3000000, 'event.kind': 'event', 'event.module': 'traefik', 'event.category': ['web'], 'event.type': ['access'], 'event.dataset': 'traefik.access', 'event.outcome': 'success', 'user.name': '-', 'user_agent.original': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36', 'user_agent.os.name': 'Linux', 'user_agent.name': 'Chrome', 'user_agent.device.name': 'Other', 'user_agent.version': '61.0.3163.100'} assert 2 == 0  +  where 2 = len({'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region...value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}) 
    

    Expand to view the stacktrace

     a = (<test_modules.Test testMethod=test_fileset_file_000_traefik>,)
    
        @wraps(func)
        def standalone_func(*a):
    >       return func(*(a + p.args), **p.kwargs)
    
    ../build/ve/docker/lib/python3.7/site-packages/parameterized/parameterized.py:518: 
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    tests/system/test_modules.py:107: in test_fileset_file
        cfgfile=cfgfile)
    tests/system/test_modules.py:193: in run_on_file
        self._test_expected_events(test_file, objects)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    
    self = <test_modules.Test testMethod=test_fileset_file_000_traefik>
    test_file = '/go/src/github.com/elastic/beats/filebeat/module/traefik/access/test/test.log'
    objects = [{'@timestamp': '2017-10-02T20:22:07.000Z', 'agent': {'ephemeral_id': '51999b1d-c8ea-48cd-af2b-731b5fac051e', 'hostnam...ry': ['web'], 'created': '2021-04-22T17:32:50.860Z', 'dataset': 'traefik.access', 'duration': 8000000, ...}, ...}, ...]
    
        def _test_expected_events(self, test_file, objects):
        
            # Generate expected files if GENERATE env variable is set
            if os.getenv("GENERATE"):
                with open(test_file + "-expected.json", 'w') as f:
                    # Flatten an cleanup objects
                    # This makes sure when generated on different machines / version the expected.json stays the same.
                    for k, obj in enumerate(objects):
                        objects[k] = self.flatten_object(obj, {}, "")
                        clean_keys(objects[k])
        
                    json.dump(objects, f, indent=4, separators=(',', ': '), sort_keys=True)
        
            with open(test_file + "-expected.json", "r") as f:
                expected = json.load(f)
        
            assert len(expected) == len(objects), "expected {} events to compare but got {}".format(
                len(expected), len(objects))
        
            for idx in range(len(expected)):
                ev = expected[idx]
                obj = objects[idx]
        
                # Flatten objects for easier comparing
                obj = self.flatten_object(obj, {}, "")
                clean_keys(obj)
                clean_keys(ev)
        
                d = DeepDiff(ev, obj, ignore_order=True)
        
    >           assert len(d) == 0, "The following expected object doesn't match:\n Diff:\n{}, full object: \n{}".format(d, obj)
    E           AssertionError: The following expected object doesn't match:
    E              Diff:
    E             {'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region_name']], 'values_changed': {"root['source.geo.location.lon']": {'new_value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}, full object: 
    E             {'log.offset': 280, 'traefik.access.user_identifier': '-', 'traefik.access.frontend_name': 'Host-host1', 'traefik.access.backend_url': 'http://172.19.0.3:5601', 'traefik.access.request_count': 271, 'source.geo.continent_name': 'Europe', 'source.geo.country_iso_code': 'DE', 'source.geo.country_name': 'Germany', 'source.geo.location.lon': 9.491, 'source.geo.location.lat': 51.2993, 'source.as.number': 6805, 'source.as.organization.name': 'Telefonica Germany', 'source.address': '85.181.35.98', 'source.ip': '85.181.35.98', 'fileset.name': 'access', 'url.original': '/ui/favicons/favicon.ico', 'input.type': 'log', '@timestamp': '2017-10-02T20:22:08.000Z', 'related.ip': ['85.181.35.98'], 'service.type': 'traefik', 'http.request.referrer': 'http://example.com/login', 'http.request.method': 'GET', 'http.response.status_code': 304, 'http.response.body.bytes': 0, 'http.version': '1.1', 'event.duration': 3000000, 'event.kind': 'event', 'event.module': 'traefik', 'event.category': ['web'], 'event.type': ['access'], 'event.dataset': 'traefik.access', 'event.outcome': 'success', 'user.name': '-', 'user_agent.original': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36', 'user_agent.os.name': 'Linux', 'user_agent.name': 'Chrome', 'user_agent.device.name': 'Other', 'user_agent.version': '61.0.3163.100'}
    E           assert 2 == 0
    E            +  where 2 = len({'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region...value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}})
    
    tests/system/test_modules.py:225: AssertionError 
    

Build&Test / filebeat-build / test_fileset_file_007_iis – filebeat.tests.system.test_modules.Test
    Expand to view the error details

     AssertionError: The following expected object doesn't match:    Diff:   {'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region_name']], 'values_changed': {"root['source.geo.location.lon']": {'new_value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}, full object:    {'log.offset': 257, 'destination.address': '127.0.0.1', 'destination.port': 80, 'destination.ip': '127.0.0.1', 'source.geo.continent_name': 'Europe', 'source.geo.country_iso_code': 'DE', 'source.geo.country_name': 'Germany', 'source.geo.location.lon': 9.491, 'source.geo.location.lat': 51.2993, 'source.as.number': 6805, 'source.as.organization.name': 'Telefonica Germany', 'source.address': '85.181.35.98', 'source.ip': '85.181.35.98', 'fileset.name': 'access', 'url.path': '/', 'url.query': 'q=100', 'input.type': 'log', 'iis.access.sub_status': 0, 'iis.access.win32_status': 0, '@timestamp': '2018-01-01T08:09:10.000Z', 'related.ip': ['85.181.35.98', '127.0.0.1'], 'service.type': 'iis', 'http.request.method': 'GET', 'http.response.status_code': 200, 'event.duration': 123000000, 'event.kind': 'event', 'event.module': 'iis', 'event.category': ['web', 'network'], 'event.type': ['connection'], 'event.dataset': 'iis.access', 'event.outcome': 'success', 'user_agent.original': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0', 'user_agent.os.name': 'Windows', 'user_agent.os.version': '7', 'user_agent.os.full': 'Windows 7', 'user_agent.name': 'Firefox', 'user_agent.device.name': 'Other', 'user_agent.version': '57.0.'} assert 2 == 0  +  where 2 = len({'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region...value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}) 
    

    Expand to view the stacktrace

     a = (<test_modules.Test testMethod=test_fileset_file_007_iis>,)
    
        @wraps(func)
        def standalone_func(*a):
    >       return func(*(a + p.args), **p.kwargs)
    
    ../build/ve/docker/lib/python3.7/site-packages/parameterized/parameterized.py:518: 
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    tests/system/test_modules.py:107: in test_fileset_file
        cfgfile=cfgfile)
    tests/system/test_modules.py:193: in run_on_file
        self._test_expected_events(test_file, objects)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    
    self = <test_modules.Test testMethod=test_fileset_file_007_iis>
    test_file = '/go/src/github.com/elastic/beats/filebeat/module/iis/access/test/test.log'
    objects = [{'@timestamp': '2018-01-01T08:09:10.000Z', 'agent': {'ephemeral_id': '783f8870-9a5f-4c09-bab9-e359df614bd6', 'hostnam..., ...}, 'destination': {'address': '10.44.0.136', 'ip': '10.44.0.136', 'port': 443}, 'ecs': {'version': '1.9.0'}, ...}]
    
        def _test_expected_events(self, test_file, objects):
        
            # Generate expected files if GENERATE env variable is set
            if os.getenv("GENERATE"):
                with open(test_file + "-expected.json", 'w') as f:
                    # Flatten an cleanup objects
                    # This makes sure when generated on different machines / version the expected.json stays the same.
                    for k, obj in enumerate(objects):
                        objects[k] = self.flatten_object(obj, {}, "")
                        clean_keys(objects[k])
        
                    json.dump(objects, f, indent=4, separators=(',', ': '), sort_keys=True)
        
            with open(test_file + "-expected.json", "r") as f:
                expected = json.load(f)
        
            assert len(expected) == len(objects), "expected {} events to compare but got {}".format(
                len(expected), len(objects))
        
            for idx in range(len(expected)):
                ev = expected[idx]
                obj = objects[idx]
        
                # Flatten objects for easier comparing
                obj = self.flatten_object(obj, {}, "")
                clean_keys(obj)
                clean_keys(ev)
        
                d = DeepDiff(ev, obj, ignore_order=True)
        
    >           assert len(d) == 0, "The following expected object doesn't match:\n Diff:\n{}, full object: \n{}".format(d, obj)
    E           AssertionError: The following expected object doesn't match:
    E              Diff:
    E             {'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region_name']], 'values_changed': {"root['source.geo.location.lon']": {'new_value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}, full object: 
    E             {'log.offset': 257, 'destination.address': '127.0.0.1', 'destination.port': 80, 'destination.ip': '127.0.0.1', 'source.geo.continent_name': 'Europe', 'source.geo.country_iso_code': 'DE', 'source.geo.country_name': 'Germany', 'source.geo.location.lon': 9.491, 'source.geo.location.lat': 51.2993, 'source.as.number': 6805, 'source.as.organization.name': 'Telefonica Germany', 'source.address': '85.181.35.98', 'source.ip': '85.181.35.98', 'fileset.name': 'access', 'url.path': '/', 'url.query': 'q=100', 'input.type': 'log', 'iis.access.sub_status': 0, 'iis.access.win32_status': 0, '@timestamp': '2018-01-01T08:09:10.000Z', 'related.ip': ['85.181.35.98', '127.0.0.1'], 'service.type': 'iis', 'http.request.method': 'GET', 'http.response.status_code': 200, 'event.duration': 123000000, 'event.kind': 'event', 'event.module': 'iis', 'event.category': ['web', 'network'], 'event.type': ['connection'], 'event.dataset': 'iis.access', 'event.outcome': 'success', 'user_agent.original': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0', 'user_agent.os.name': 'Windows', 'user_agent.os.version': '7', 'user_agent.os.full': 'Windows 7', 'user_agent.name': 'Firefox', 'user_agent.device.name': 'Other', 'user_agent.version': '57.0.'}
    E           assert 2 == 0
    E            +  where 2 = len({'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region...value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}})
    
    tests/system/test_modules.py:225: AssertionError 
    

Build&Test / filebeat-build / test_fileset_file_010_iis – filebeat.tests.system.test_modules.Test
    Expand to view the error details

     AssertionError: The following expected object doesn't match:    Diff:   {'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region_name']], 'values_changed': {"root['source.geo.location.lon']": {'new_value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}, full object:    {'log.offset': 286, 'destination.address': '127.0.0.1', 'destination.port': 80, 'destination.ip': '127.0.0.1', 'source.geo.continent_name': 'Europe', 'source.geo.country_iso_code': 'DE', 'source.geo.country_name': 'Germany', 'source.geo.location.lon': 9.491, 'source.geo.location.lat': 51.2993, 'source.as.number': 6805, 'source.as.organization.name': 'Telefonica Germany', 'source.address': '85.181.35.98', 'source.port': 2780, 'source.ip': '85.181.35.98', 'fileset.name': 'error', 'url.original': '/ThisIsMyUrl.htm', 'input.type': 'log', 'iis.error.reason_phrase': 'Hostname', '@timestamp': '2018-01-01T09:10:11.000Z', 'related.ip': ['85.181.35.98', '127.0.0.1'], 'service.type': 'iis', 'http.request.method': 'GET', 'http.response.status_code': 400, 'http.version': '1.1', 'event.kind': 'event', 'event.module': 'iis', 'event.category': ['web', 'network'], 'event.type': ['connection'], 'event.dataset': 'iis.error', 'event.outcome': 'failure'} assert 2 == 0  +  where 2 = len({'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region...value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}) 
    

    Expand to view the stacktrace

     a = (<test_modules.Test testMethod=test_fileset_file_010_iis>,)
    
        @wraps(func)
        def standalone_func(*a):
    >       return func(*(a + p.args), **p.kwargs)
    
    ../build/ve/docker/lib/python3.7/site-packages/parameterized/parameterized.py:518: 
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    tests/system/test_modules.py:107: in test_fileset_file
        cfgfile=cfgfile)
    tests/system/test_modules.py:193: in run_on_file
        self._test_expected_events(test_file, objects)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    
    self = <test_modules.Test testMethod=test_fileset_file_010_iis>
    test_file = '/go/src/github.com/elastic/beats/filebeat/module/iis/error/test/test.log'
    objects = [{'@timestamp': '2018-01-01T08:09:10.000Z', 'agent': {'ephemeral_id': 'c756ff00-1913-4802-a548-cacf3732a02a', 'hostnam...3266', ...}, 'destination': {'address': '127.0.0.1', 'ip': '127.0.0.1', 'port': 80}, 'ecs': {'version': '1.9.0'}, ...}]
    
        def _test_expected_events(self, test_file, objects):
        
            # Generate expected files if GENERATE env variable is set
            if os.getenv("GENERATE"):
                with open(test_file + "-expected.json", 'w') as f:
                    # Flatten an cleanup objects
                    # This makes sure when generated on different machines / version the expected.json stays the same.
                    for k, obj in enumerate(objects):
                        objects[k] = self.flatten_object(obj, {}, "")
                        clean_keys(objects[k])
        
                    json.dump(objects, f, indent=4, separators=(',', ': '), sort_keys=True)
        
            with open(test_file + "-expected.json", "r") as f:
                expected = json.load(f)
        
            assert len(expected) == len(objects), "expected {} events to compare but got {}".format(
                len(expected), len(objects))
        
            for idx in range(len(expected)):
                ev = expected[idx]
                obj = objects[idx]
        
                # Flatten objects for easier comparing
                obj = self.flatten_object(obj, {}, "")
                clean_keys(obj)
                clean_keys(ev)
        
                d = DeepDiff(ev, obj, ignore_order=True)
        
    >           assert len(d) == 0, "The following expected object doesn't match:\n Diff:\n{}, full object: \n{}".format(d, obj)
    E           AssertionError: The following expected object doesn't match:
    E              Diff:
    E             {'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region_name']], 'values_changed': {"root['source.geo.location.lon']": {'new_value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}, full object: 
    E             {'log.offset': 286, 'destination.address': '127.0.0.1', 'destination.port': 80, 'destination.ip': '127.0.0.1', 'source.geo.continent_name': 'Europe', 'source.geo.country_iso_code': 'DE', 'source.geo.country_name': 'Germany', 'source.geo.location.lon': 9.491, 'source.geo.location.lat': 51.2993, 'source.as.number': 6805, 'source.as.organization.name': 'Telefonica Germany', 'source.address': '85.181.35.98', 'source.port': 2780, 'source.ip': '85.181.35.98', 'fileset.name': 'error', 'url.original': '/ThisIsMyUrl.htm', 'input.type': 'log', 'iis.error.reason_phrase': 'Hostname', '@timestamp': '2018-01-01T09:10:11.000Z', 'related.ip': ['85.181.35.98', '127.0.0.1'], 'service.type': 'iis', 'http.request.method': 'GET', 'http.response.status_code': 400, 'http.version': '1.1', 'event.kind': 'event', 'event.module': 'iis', 'event.category': ['web', 'network'], 'event.type': ['connection'], 'event.dataset': 'iis.error', 'event.outcome': 'failure'}
    E           assert 2 == 0
    E            +  where 2 = len({'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region...value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}})
    
    tests/system/test_modules.py:225: AssertionError 
    

Build&Test / filebeat-build / test_fileset_file_013_haproxy – filebeat.tests.system.test_modules.Test
    Expand to view the error details

     AssertionError: The following expected object doesn't match:    Diff:   {'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region_name']], 'values_changed': {"root['source.geo.location.lon']": {'new_value': 143.2104, 'old_value': 37.6172}, "root['source.geo.continent_name']": {'new_value': 'Oceania', 'old_value': 'Europe'}, "root['source.geo.location.lat']": {'new_value': -33.494, 'old_value': 55.7527}, "root['source.geo.country_name']": {'new_value': 'Australia', 'old_value': 'Russia'}, "root['source.geo.country_iso_code']": {'new_value': 'AU', 'old_value': 'RU'}}}, full object:    {'process.name': 'haproxy', 'process.pid': 32450, 'log.offset': 0, 'source.geo.continent_name': 'Oceania', 'source.geo.country_iso_code': 'AU', 'source.geo.country_name': 'Australia', 'source.geo.location.lon': 143.2104, 'source.geo.location.lat': -33.494, 'source.address': '1.2.3.4', 'source.port': 38862, 'source.ip': '1.2.3.4', 'fileset.name': 'log', 'input.type': 'log', 'related.ip': ['1.2.3.4'], 'service.type': 'haproxy', 'haproxy.server_name': 'docs', 'haproxy.backend_queue': 0, 'haproxy.total_waiting_time_ms': 0, 'haproxy.termination_state': '----', 'haproxy.connection_wait_time_ms': 1, 'haproxy.backend_name': 'docs_microservice', 'haproxy.http.request.raw_request_line': 'GET /component---src-pages-index-js-4b15624544f97cf0bb8f.js HTTP/1.1', 'haproxy.http.request.captured_cookie': '-', 'haproxy.http.request.captured_headers': ['docs.example.internal'], 'haproxy.http.request.time_wait_ms': 0, 'haproxy.http.request.time_wait_without_data_ms': 0, 'haproxy.http.response.captured_cookie': '-', 'haproxy.http.response.captured_headers': [], 'haproxy.frontend_name': 'incoming~', 'haproxy.server_queue': 0, 'haproxy.bytes_read': 168, 'haproxy.connections.server': 0, 'haproxy.connections.retries': 0, 'haproxy.connections.active': 6, 'haproxy.connections.backend': 0, 'haproxy.connections.frontend': 6, 'http.response.status_code': 304, 'http.response.bytes': 168, 'event.duration': 2000000, 'event.timezone': '-02:00', 'event.kind': 'event', 'event.module': 'haproxy', 'event.category': ['web'], 'event.dataset': 'haproxy.log', 'event.outcome': 'success'} assert 2 == 0  +  where 2 = len({'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region...': 'Australia', 'old_value': 'Russia'}, "root['source.geo.country_iso_code']": {'new_value': 'AU', 'old_value': 'RU'}}}) 
    

    Expand to view the stacktrace

     a = (<test_modules.Test testMethod=test_fileset_file_013_haproxy>,)
    
        @wraps(func)
        def standalone_func(*a):
    >       return func(*(a + p.args), **p.kwargs)
    
    ../build/ve/docker/lib/python3.7/site-packages/parameterized/parameterized.py:518: 
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    tests/system/test_modules.py:107: in test_fileset_file
        cfgfile=cfgfile)
    tests/system/test_modules.py:193: in run_on_file
        self._test_expected_events(test_file, objects)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    
    self = <test_modules.Test testMethod=test_fileset_file_013_haproxy>
    test_file = '/go/src/github.com/elastic/beats/filebeat/module/haproxy/log/test/haproxy.log'
    objects = [{'@timestamp': '2018-07-30T09:03:52.726-02:00', 'agent': {'ephemeral_id': 'dd1864be-5a2f-4aec-993a-73e8adc1530e', 'ho...ory': ['web'], 'dataset': 'haproxy.log', 'duration': 2000000, 'ingested': '2021-04-22T17:33:19.115335585Z', ...}, ...}]
    
        def _test_expected_events(self, test_file, objects):
        
            # Generate expected files if GENERATE env variable is set
            if os.getenv("GENERATE"):
                with open(test_file + "-expected.json", 'w') as f:
                    # Flatten an cleanup objects
                    # This makes sure when generated on different machines / version the expected.json stays the same.
                    for k, obj in enumerate(objects):
                        objects[k] = self.flatten_object(obj, {}, "")
                        clean_keys(objects[k])
        
                    json.dump(objects, f, indent=4, separators=(',', ': '), sort_keys=True)
        
            with open(test_file + "-expected.json", "r") as f:
                expected = json.load(f)
        
            assert len(expected) == len(objects), "expected {} events to compare but got {}".format(
                len(expected), len(objects))
        
            for idx in range(len(expected)):
                ev = expected[idx]
                obj = objects[idx]
        
                # Flatten objects for easier comparing
                obj = self.flatten_object(obj, {}, "")
                clean_keys(obj)
                clean_keys(ev)
        
                d = DeepDiff(ev, obj, ignore_order=True)
        
    >           assert len(d) == 0, "The following expected object doesn't match:\n Diff:\n{}, full object: \n{}".format(d, obj)
    E           AssertionError: The following expected object doesn't match:
    E              Diff:
    E             {'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region_name']], 'values_changed': {"root['source.geo.location.lon']": {'new_value': 143.2104, 'old_value': 37.6172}, "root['source.geo.continent_name']": {'new_value': 'Oceania', 'old_value': 'Europe'}, "root['source.geo.location.lat']": {'new_value': -33.494, 'old_value': 55.7527}, "root['source.geo.country_name']": {'new_value': 'Australia', 'old_value': 'Russia'}, "root['source.geo.country_iso_code']": {'new_value': 'AU', 'old_value': 'RU'}}}, full object: 
    E             {'process.name': 'haproxy', 'process.pid': 32450, 'log.offset': 0, 'source.geo.continent_name': 'Oceania', 'source.geo.country_iso_code': 'AU', 'source.geo.country_name': 'Australia', 'source.geo.location.lon': 143.2104, 'source.geo.location.lat': -33.494, 'source.address': '1.2.3.4', 'source.port': 38862, 'source.ip': '1.2.3.4', 'fileset.name': 'log', 'input.type': 'log', 'related.ip': ['1.2.3.4'], 'service.type': 'haproxy', 'haproxy.server_name': 'docs', 'haproxy.backend_queue': 0, 'haproxy.total_waiting_time_ms': 0, 'haproxy.termination_state': '----', 'haproxy.connection_wait_time_ms': 1, 'haproxy.backend_name': 'docs_microservice', 'haproxy.http.request.raw_request_line': 'GET /component---src-pages-index-js-4b15624544f97cf0bb8f.js HTTP/1.1', 'haproxy.http.request.captured_cookie': '-', 'haproxy.http.request.captured_headers': ['docs.example.internal'], 'haproxy.http.request.time_wait_ms': 0, 'haproxy.http.request.time_wait_without_data_ms': 0, 'haproxy.http.response.captured_cookie': '-', 'haproxy.http.response.captured_headers': [], 'haproxy.frontend_name': 'incoming~', 'haproxy.server_queue': 0, 'haproxy.bytes_read': 168, 'haproxy.connections.server': 0, 'haproxy.connections.retries': 0, 'haproxy.connections.active': 6, 'haproxy.connections.backend': 0, 'haproxy.connections.frontend': 6, 'http.response.status_code': 304, 'http.response.bytes': 168, 'event.duration': 2000000, 'event.timezone': '-02:00', 'event.kind': 'event', 'event.module': 'haproxy', 'event.category': ['web'], 'event.dataset': 'haproxy.log', 'event.outcome': 'success'}
    E           assert 2 == 0
    E            +  where 2 = len({'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region...': 'Australia', 'old_value': 'Russia'}, "root['source.geo.country_iso_code']": {'new_value': 'AU', 'old_value': 'RU'}}})
    
    tests/system/test_modules.py:225: AssertionError 
    

Build&Test / filebeat-build / test_fileset_file_014_haproxy – filebeat.tests.system.test_modules.Test
    Expand to view the error details

     AssertionError: The following expected object doesn't match:    Diff:   {'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region_name']], 'values_changed': {"root['source.geo.location.lon']": {'new_value': 143.2104, 'old_value': 37.6172}, "root['source.geo.continent_name']": {'new_value': 'Oceania', 'old_value': 'Europe'}, "root['source.geo.location.lat']": {'new_value': -33.494, 'old_value': 55.7527}, "root['source.geo.country_name']": {'new_value': 'Australia', 'old_value': 'Russia'}, "root['source.geo.country_iso_code']": {'new_value': 'AU', 'old_value': 'RU'}}}, full object:    {'process.name': 'haproxy', 'process.pid': 24551, 'log.offset': 0, 'destination.port': 5000, 'destination.ip': '1.2.3.4', 'source.geo.continent_name': 'Oceania', 'source.geo.country_iso_code': 'AU', 'source.geo.country_name': 'Australia', 'source.geo.location.lon': 143.2104, 'source.geo.location.lat': -33.494, 'source.address': '1.2.3.4', 'source.port': 40780, 'source.ip': '1.2.3.4', 'fileset.name': 'log', 'input.type': 'log', 'related.ip': ['1.2.3.4', '1.2.3.4'], 'service.type': 'haproxy', 'haproxy.mode': 'HTTP', 'haproxy.frontend_name': 'main', 'haproxy.source': '1.2.3.4', 'event.timezone': '-02:00', 'event.kind': 'event', 'event.module': 'haproxy', 'event.category': ['web', 'network'], 'event.type': ['connection'], 'event.dataset': 'haproxy.log'} assert 2 == 0  +  where 2 = len({'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region...': 'Australia', 'old_value': 'Russia'}, "root['source.geo.country_iso_code']": {'new_value': 'AU', 'old_value': 'RU'}}}) 
    

    Expand to view the stacktrace

     a = (<test_modules.Test testMethod=test_fileset_file_014_haproxy>,)
    
        @wraps(func)
        def standalone_func(*a):
    >       return func(*(a + p.args), **p.kwargs)
    
    ../build/ve/docker/lib/python3.7/site-packages/parameterized/parameterized.py:518: 
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    tests/system/test_modules.py:107: in test_fileset_file
        cfgfile=cfgfile)
    tests/system/test_modules.py:193: in run_on_file
        self._test_expected_events(test_file, objects)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    
    self = <test_modules.Test testMethod=test_fileset_file_014_haproxy>
    test_file = '/go/src/github.com/elastic/beats/filebeat/module/haproxy/log/test/default.log'
    objects = [{'@timestamp': '2021-09-20T15:42:59.000-02:00', 'agent': {'ephemeral_id': 'a89b21ae-4785-4475-bb9f-80c07c9e3702', 'ho...429d', 'name': 'ec69708b3266', ...}, 'destination': {'ip': '1.2.3.4', 'port': 5000}, 'ecs': {'version': '1.9.0'}, ...}]
    
        def _test_expected_events(self, test_file, objects):
        
            # Generate expected files if GENERATE env variable is set
            if os.getenv("GENERATE"):
                with open(test_file + "-expected.json", 'w') as f:
                    # Flatten an cleanup objects
                    # This makes sure when generated on different machines / version the expected.json stays the same.
                    for k, obj in enumerate(objects):
                        objects[k] = self.flatten_object(obj, {}, "")
                        clean_keys(objects[k])
        
                    json.dump(objects, f, indent=4, separators=(',', ': '), sort_keys=True)
        
            with open(test_file + "-expected.json", "r") as f:
                expected = json.load(f)
        
            assert len(expected) == len(objects), "expected {} events to compare but got {}".format(
                len(expected), len(objects))
        
            for idx in range(len(expected)):
                ev = expected[idx]
                obj = objects[idx]
        
                # Flatten objects for easier comparing
                obj = self.flatten_object(obj, {}, "")
                clean_keys(obj)
                clean_keys(ev)
        
                d = DeepDiff(ev, obj, ignore_order=True)
        
    >           assert len(d) == 0, "The following expected object doesn't match:\n Diff:\n{}, full object: \n{}".format(d, obj)
    E           AssertionError: The following expected object doesn't match:
    E              Diff:
    E             {'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region_name']], 'values_changed': {"root['source.geo.location.lon']": {'new_value': 143.2104, 'old_value': 37.6172}, "root['source.geo.continent_name']": {'new_value': 'Oceania', 'old_value': 'Europe'}, "root['source.geo.location.lat']": {'new_value': -33.494, 'old_value': 55.7527}, "root['source.geo.country_name']": {'new_value': 'Australia', 'old_value': 'Russia'}, "root['source.geo.country_iso_code']": {'new_value': 'AU', 'old_value': 'RU'}}}, full object: 
    E             {'process.name': 'haproxy', 'process.pid': 24551, 'log.offset': 0, 'destination.port': 5000, 'destination.ip': '1.2.3.4', 'source.geo.continent_name': 'Oceania', 'source.geo.country_iso_code': 'AU', 'source.geo.country_name': 'Australia', 'source.geo.location.lon': 143.2104, 'source.geo.location.lat': -33.494, 'source.address': '1.2.3.4', 'source.port': 40780, 'source.ip': '1.2.3.4', 'fileset.name': 'log', 'input.type': 'log', 'related.ip': ['1.2.3.4', '1.2.3.4'], 'service.type': 'haproxy', 'haproxy.mode': 'HTTP', 'haproxy.frontend_name': 'main', 'haproxy.source': '1.2.3.4', 'event.timezone': '-02:00', 'event.kind': 'event', 'event.module': 'haproxy', 'event.category': ['web', 'network'], 'event.type': ['connection'], 'event.dataset': 'haproxy.log'}
    E           assert 2 == 0
    E            +  where 2 = len({'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region...': 'Australia', 'old_value': 'Russia'}, "root['source.geo.country_iso_code']": {'new_value': 'AU', 'old_value': 'RU'}}})
    
    tests/system/test_modules.py:225: AssertionError 
    

Build&Test / filebeat-build / test_fileset_file_065_auditd – filebeat.tests.system.test_modules.Test
    Expand to view the error details

     AssertionError: The following expected object doesn't match:    Diff:   {'values_changed': {"root['source.geo.city_name']": {'new_value': 'Ashburn', 'old_value': 'Aldie'}, "root['source.geo.location.lon']": {'new_value': -77.5342, 'old_value': -77.6099}, "root['source.as.organization.name']": {'new_value': 'UUNET', 'old_value': 'MCI Communications Services, Inc. d/b/a Verizon Business'}, "root['source.geo.location.lat']": {'new_value': 39.0127, 'old_value': 38.9637}}}, full object:    {'process.pid': 28281, 'process.executable': '/usr/sbin/sshd', 'log.offset': 1640, 'source.geo.continent_name': 'North America', 'source.geo.region_iso_code': 'US-VA', 'source.geo.city_name': 'Ashburn', 'source.geo.country_iso_code': 'US', 'source.geo.country_name': 'United States', 'source.geo.region_name': 'Virginia', 'source.geo.location.lon': -77.5342, 'source.geo.location.lat': 39.0127, 'source.as.number': 701, 'source.as.organization.name': 'UUNET', 'source.address': '96.241.146.97', 'source.ip': '96.241.146.97', 'fileset.name': 'log', 'auditd.log.ses': '6793', 'auditd.log.op': 'destroy', 'auditd.log.laddr': '107.170.139.210', 'auditd.log.kind': 'session', 'auditd.log.rport': 58994, 'auditd.log.lport': 50022, 'auditd.log.spid': '28282', 'auditd.log.record_type': 'CRYPTO_KEY_USER', 'auditd.log.sequence': 19623788, 'auditd.log.direction': 'both', 'input.type': 'log', '@timestamp': '2017-03-16T04:02:40.070Z', 'service.type': 'auditd', 'event.original': 'type=CRYPTO_KEY_USER msg=audit(1489636960.070:19623788): user pid=28281 uid=0 auid=700 ses=6793 msg=\'op=destroy kind=session fp=? direction=both spid=28282 suid=74 rport=58994 laddr=107.170.139.210 lport=50022  exe="/usr/sbin/sshd" hostname=? addr=96.241.146.97 terminal=? res=success\'', 'event.kind': 'event', 'event.module': 'auditd', 'event.action': ['negotiated-crypto-key'], 'event.category': ['process'], 'event.type': ['info'], 'event.dataset': 'auditd.log', 'event.outcome': 'success', 'user.saved.id': '74', 'user.audit.id': '700', 'user.id': '0'} assert 1 == 0  +  where 1 = len({'values_changed': {"root['source.geo.city_name']": {'new_value': 'Ashburn', 'old_value': 'Aldie'}, "root['source.geo....vices, Inc. d/b/a Verizon Business'}, "root['source.geo.location.lat']": {'new_value': 39.0127, 'old_value': 38.9637}}}) 
    

    Expand to view the stacktrace

     a = (<test_modules.Test testMethod=test_fileset_file_065_auditd>,)
    
        @wraps(func)
        def standalone_func(*a):
    >       return func(*(a + p.args), **p.kwargs)
    
    ../build/ve/docker/lib/python3.7/site-packages/parameterized/parameterized.py:518: 
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    tests/system/test_modules.py:107: in test_fileset_file
        cfgfile=cfgfile)
    tests/system/test_modules.py:193: in run_on_file
        self._test_expected_events(test_file, objects)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    
    self = <test_modules.Test testMethod=test_fileset_file_065_auditd>
    test_file = '/go/src/github.com/elastic/beats/filebeat/module/auditd/log/test/audit-rhel6.log'
    objects = [{'@timestamp': '2017-03-14T19:20:30.178Z', 'agent': {'ephemeral_id': 'd0b70164-44c6-4b3d-bdc9-d54dfb8450be', 'hostnam...'op': 'SPD-add', 'sequence': 19600354, 'ses': '4294967295', ...}}, 'destination': {'address': '10.100.4.0'}, ...}, ...]
    
        def _test_expected_events(self, test_file, objects):
        
            # Generate expected files if GENERATE env variable is set
            if os.getenv("GENERATE"):
                with open(test_file + "-expected.json", 'w') as f:
                    # Flatten an cleanup objects
                    # This makes sure when generated on different machines / version the expected.json stays the same.
                    for k, obj in enumerate(objects):
                        objects[k] = self.flatten_object(obj, {}, "")
                        clean_keys(objects[k])
        
                    json.dump(objects, f, indent=4, separators=(',', ': '), sort_keys=True)
        
            with open(test_file + "-expected.json", "r") as f:
                expected = json.load(f)
        
            assert len(expected) == len(objects), "expected {} events to compare but got {}".format(
                len(expected), len(objects))
        
            for idx in range(len(expected)):
                ev = expected[idx]
                obj = objects[idx]
        
                # Flatten objects for easier comparing
                obj = self.flatten_object(obj, {}, "")
                clean_keys(obj)
                clean_keys(ev)
        
                d = DeepDiff(ev, obj, ignore_order=True)
        
    >           assert len(d) == 0, "The following expected object doesn't match:\n Diff:\n{}, full object: \n{}".format(d, obj)
    E           AssertionError: The following expected object doesn't match:
    E              Diff:
    E             {'values_changed': {"root['source.geo.city_name']": {'new_value': 'Ashburn', 'old_value': 'Aldie'}, "root['source.geo.location.lon']": {'new_value': -77.5342, 'old_value': -77.6099}, "root['source.as.organization.name']": {'new_value': 'UUNET', 'old_value': 'MCI Communications Services, Inc. d/b/a Verizon Business'}, "root['source.geo.location.lat']": {'new_value': 39.0127, 'old_value': 38.9637}}}, full object: 
    E             {'process.pid': 28281, 'process.executable': '/usr/sbin/sshd', 'log.offset': 1640, 'source.geo.continent_name': 'North America', 'source.geo.region_iso_code': 'US-VA', 'source.geo.city_name': 'Ashburn', 'source.geo.country_iso_code': 'US', 'source.geo.country_name': 'United States', 'source.geo.region_name': 'Virginia', 'source.geo.location.lon': -77.5342, 'source.geo.location.lat': 39.0127, 'source.as.number': 701, 'source.as.organization.name': 'UUNET', 'source.address': '96.241.146.97', 'source.ip': '96.241.146.97', 'fileset.name': 'log', 'auditd.log.ses': '6793', 'auditd.log.op': 'destroy', 'auditd.log.laddr': '107.170.139.210', 'auditd.log.kind': 'session', 'auditd.log.rport': 58994, 'auditd.log.lport': 50022, 'auditd.log.spid': '28282', 'auditd.log.record_type': 'CRYPTO_KEY_USER', 'auditd.log.sequence': 19623788, 'auditd.log.direction': 'both', 'input.type': 'log', '@timestamp': '2017-03-16T04:02:40.070Z', 'service.type': 'auditd', 'event.original': 'type=CRYPTO_KEY_USER msg=audit(1489636960.070:19623788): user pid=28281 uid=0 auid=700 ses=6793 msg=\'op=destroy kind=session fp=? direction=both spid=28282 suid=74 rport=58994 laddr=107.170.139.210 lport=50022  exe="/usr/sbin/sshd" hostname=? addr=96.241.146.97 terminal=? res=success\'', 'event.kind': 'event', 'event.module': 'auditd', 'event.action': ['negotiated-crypto-key'], 'event.category': ['process'], 'event.type': ['info'], 'event.dataset': 'auditd.log', 'event.outcome': 'success', 'user.saved.id': '74', 'user.audit.id': '700', 'user.id': '0'}
    E           assert 1 == 0
    E            +  where 1 = len({'values_changed': {"root['source.geo.city_name']": {'new_value': 'Ashburn', 'old_value': 'Aldie'}, "root['source.geo....vices, Inc. d/b/a Verizon Business'}, "root['source.geo.location.lat']": {'new_value': 39.0127, 'old_value': 38.9637}}})
    
    tests/system/test_modules.py:225: AssertionError 
    

Build&Test / filebeat-build / test_fileset_file_068_auditd – filebeat.tests.system.test_modules.Test
    Expand to view the error details

     AssertionError: The following expected object doesn't match:    Diff:   {'values_changed': {"root['source.geo.city_name']": {'new_value': 'Ashburn', 'old_value': 'Aldie'}, "root['source.geo.location.lon']": {'new_value': -77.5342, 'old_value': -77.6099}, "root['source.as.organization.name']": {'new_value': 'UUNET', 'old_value': 'MCI Communications Services, Inc. d/b/a Verizon Business'}, "root['source.geo.location.lat']": {'new_value': 39.0127, 'old_value': 38.9637}}}, full object:    {'process.pid': 1298, 'process.executable': '/usr/sbin/sshd', 'log.offset': 783, 'source.geo.continent_name': 'North America', 'source.geo.region_iso_code': 'US-VA', 'source.geo.city_name': 'Ashburn', 'source.geo.country_iso_code': 'US', 'source.geo.country_name': 'United States', 'source.geo.region_name': 'Virginia', 'source.geo.location.lon': -77.5342, 'source.geo.location.lat': 39.0127, 'source.as.number': 701, 'source.as.organization.name': 'UUNET', 'source.address': '96.241.146.97', 'source.ip': '96.241.146.97', 'fileset.name': 'log', 'auditd.log.laddr': '10.142.0.2', 'auditd.log.rport': 63927, 'auditd.log.lport': 22, 'auditd.log.spid': '1299', 'auditd.log.subj': 'system_u:system_r:sshd_t:s0-s0:c0.c1023', 'auditd.log.direction': 'from-server', 'auditd.log.ses': '4294967295', 'auditd.log.cipher': 'chacha20-poly1305@openssh.com', 'auditd.log.op': 'start', 'auditd.log.record_type': 'CRYPTO_SESSION', 'auditd.log.sequence': 406, 'auditd.log.ksize': 512, 'auditd.log.pfs': 'curve25519-sha256@libssh.org', 'input.type': 'log', '@timestamp': '2016-12-07T02:17:21.515Z', 'service.type': 'auditd', 'event.original': 'type=CRYPTO_SESSION msg=audit(1481077041.515:406): pid=1298 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg=\'op=start direction=from-server cipher=chacha20-poly1305@openssh.com ksize=512 mac= pfs=curve25519-sha256@libssh.org spid=1299 suid=74 rport=63927 laddr=10.142.0.2 lport=22  exe="/usr/sbin/sshd" hostname=? addr=96.241.146.97 terminal=? res=success\'', 'event.kind': 'event', 'event.module': 'auditd', 'event.action': ['started-crypto-session'], 'event.category': ['process'], 'event.type': ['info'], 'event.dataset': 'auditd.log', 'event.outcome': 'success', 'user.saved.id': '74', 'user.audit.id': '4294967295', 'user.id': '0'} assert 1 == 0  +  where 1 = len({'values_changed': {"root['source.geo.city_name']": {'new_value': 'Ashburn', 'old_value': 'Aldie'}, "root['source.geo....vices, Inc. d/b/a Verizon Business'}, "root['source.geo.location.lat']": {'new_value': 39.0127, 'old_value': 38.9637}}}) 
    

    Expand to view the stacktrace

     a = (<test_modules.Test testMethod=test_fileset_file_068_auditd>,)
    
        @wraps(func)
        def standalone_func(*a):
    >       return func(*(a + p.args), **p.kwargs)
    
    ../build/ve/docker/lib/python3.7/site-packages/parameterized/parameterized.py:518: 
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    tests/system/test_modules.py:107: in test_fileset_file
        cfgfile=cfgfile)
    tests/system/test_modules.py:193: in run_on_file
        self._test_expected_events(test_file, objects)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    
    self = <test_modules.Test testMethod=test_fileset_file_068_auditd>
    test_file = '/go/src/github.com/elastic/beats/filebeat/module/auditd/log/test/test.log'
    objects = [{'@timestamp': '2017-01-31T20:17:14.891Z', 'agent': {'ephemeral_id': 'efcb3683-157c-4c50-8e60-16140716ede4', 'hostnam...9708b3266', ...}, 'auditd': {'log': {'proctitle': 'bash', 'sequence': 194438}}, 'ecs': {'version': '1.9.0'}, ...}, ...]
    
        def _test_expected_events(self, test_file, objects):
        
            # Generate expected files if GENERATE env variable is set
            if os.getenv("GENERATE"):
                with open(test_file + "-expected.json", 'w') as f:
                    # Flatten an cleanup objects
                    # This makes sure when generated on different machines / version the expected.json stays the same.
                    for k, obj in enumerate(objects):
                        objects[k] = self.flatten_object(obj, {}, "")
                        clean_keys(objects[k])
        
                    json.dump(objects, f, indent=4, separators=(',', ': '), sort_keys=True)
        
            with open(test_file + "-expected.json", "r") as f:
                expected = json.load(f)
        
            assert len(expected) == len(objects), "expected {} events to compare but got {}".format(
                len(expected), len(objects))
        
            for idx in range(len(expected)):
                ev = expected[idx]
                obj = objects[idx]
        
                # Flatten objects for easier comparing
                obj = self.flatten_object(obj, {}, "")
                clean_keys(obj)
                clean_keys(ev)
        
                d = DeepDiff(ev, obj, ignore_order=True)
        
    >           assert len(d) == 0, "The following expected object doesn't match:\n Diff:\n{}, full object: \n{}".format(d, obj)
    E           AssertionError: The following expected object doesn't match:
    E              Diff:
    E             {'values_changed': {"root['source.geo.city_name']": {'new_value': 'Ashburn', 'old_value': 'Aldie'}, "root['source.geo.location.lon']": {'new_value': -77.5342, 'old_value': -77.6099}, "root['source.as.organization.name']": {'new_value': 'UUNET', 'old_value': 'MCI Communications Services, Inc. d/b/a Verizon Business'}, "root['source.geo.location.lat']": {'new_value': 39.0127, 'old_value': 38.9637}}}, full object: 
    E             {'process.pid': 1298, 'process.executable': '/usr/sbin/sshd', 'log.offset': 783, 'source.geo.continent_name': 'North America', 'source.geo.region_iso_code': 'US-VA', 'source.geo.city_name': 'Ashburn', 'source.geo.country_iso_code': 'US', 'source.geo.country_name': 'United States', 'source.geo.region_name': 'Virginia', 'source.geo.location.lon': -77.5342, 'source.geo.location.lat': 39.0127, 'source.as.number': 701, 'source.as.organization.name': 'UUNET', 'source.address': '96.241.146.97', 'source.ip': '96.241.146.97', 'fileset.name': 'log', 'auditd.log.laddr': '10.142.0.2', 'auditd.log.rport': 63927, 'auditd.log.lport': 22, 'auditd.log.spid': '1299', 'auditd.log.subj': 'system_u:system_r:sshd_t:s0-s0:c0.c1023', 'auditd.log.direction': 'from-server', 'auditd.log.ses': '4294967295', 'auditd.log.cipher': 'chacha20-poly1305@openssh.com', 'auditd.log.op': 'start', 'auditd.log.record_type': 'CRYPTO_SESSION', 'auditd.log.sequence': 406, 'auditd.log.ksize': 512, 'auditd.log.pfs': 'curve25519-sha256@libssh.org', 'input.type': 'log', '@timestamp': '2016-12-07T02:17:21.515Z', 'service.type': 'auditd', 'event.original': 'type=CRYPTO_SESSION msg=audit(1481077041.515:406): pid=1298 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg=\'op=start direction=from-server cipher=chacha20-poly1305@openssh.com ksize=512 mac= pfs=curve25519-sha256@libssh.org spid=1299 suid=74 rport=63927 laddr=10.142.0.2 lport=22  exe="/usr/sbin/sshd" hostname=? addr=96.241.146.97 terminal=? res=success\'', 'event.kind': 'event', 'event.module': 'auditd', 'event.action': ['started-crypto-session'], 'event.category': ['process'], 'event.type': ['info'], 'event.dataset': 'auditd.log', 'event.outcome': 'success', 'user.saved.id': '74', 'user.audit.id': '4294967295', 'user.id': '0'}
    E           assert 1 == 0
    E            +  where 1 = len({'values_changed': {"root['source.geo.city_name']": {'new_value': 'Ashburn', 'old_value': 'Aldie'}, "root['source.geo....vices, Inc. d/b/a Verizon Business'}, "root['source.geo.location.lat']": {'new_value': 39.0127, 'old_value': 38.9637}}})
    
    tests/system/test_modules.py:225: AssertionError 
    

Build&Test / filebeat-build / test_fileset_file_072_nginx – filebeat.tests.system.test_modules.Test
    Expand to view the error details

     AssertionError: The following expected object doesn't match:    Diff:   {'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region_name']], 'values_changed': {"root['source.geo.location.lon']": {'new_value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}, full object:    {'nginx.access.remote_ip_list': ['10.0.0.2', '10.0.0.1', '85.181.35.98'], 'log.offset': 365, 'destination.domain': 'example.com', 'source.geo.continent_name': 'Europe', 'source.geo.country_iso_code': 'DE', 'source.geo.country_name': 'Germany', 'source.geo.location.lon': 9.491, 'source.geo.location.lat': 51.2993, 'source.as.number': 6805, 'source.as.organization.name': 'Telefonica Germany', 'source.address': '85.181.35.98', 'source.ip': '85.181.35.98', 'fileset.name': 'access', 'url.original': '/ocelot', 'input.type': 'log', '@timestamp': '2016-12-07T10:05:07.000Z', 'related.ip': ['85.181.35.98'], 'service.type': 'nginx', 'http.request.method': 'GET', 'http.response.status_code': 200, 'http.response.body.bytes': 571, 'http.version': '1.1', 'event.timezone': '-02:00', 'event.kind': 'event', 'event.module': 'nginx', 'event.category': ['web'], 'event.type': ['access'], 'event.dataset': 'nginx.access', 'event.outcome': 'success', 'user_agent.original': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0', 'user_agent.os.name': 'Mac OS X', 'user_agent.os.version': '10.12', 'user_agent.os.full': 'Mac OS X 10.12', 'user_agent.name': 'Firefox', 'user_agent.device.name': 'Mac', 'user_agent.version': '49.0.'} assert 2 == 0  +  where 2 = len({'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region...value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}) 
    

    Expand to view the stacktrace

     a = (<test_modules.Test testMethod=test_fileset_file_072_nginx>,)
    
        @wraps(func)
        def standalone_func(*a):
    >       return func(*(a + p.args), **p.kwargs)
    
    ../build/ve/docker/lib/python3.7/site-packages/parameterized/parameterized.py:518: 
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    tests/system/test_modules.py:107: in test_fileset_file
        cfgfile=cfgfile)
    tests/system/test_modules.py:193: in run_on_file
        self._test_expected_events(test_file, objects)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    
    self = <test_modules.Test testMethod=test_fileset_file_072_nginx>
    test_file = '/go/src/github.com/elastic/beats/filebeat/module/nginx/access/test/test-with-host.log'
    objects = [{'@timestamp': '2016-12-07T10:05:07.000Z', 'agent': {'ephemeral_id': '820f6412-e1ea-47b0-a498-11381cc19884', 'hostnam...-40ddf45f429d', 'name': 'ec69708b3266', ...}, 'destination': {'ip': '1.2.3.4'}, 'ecs': {'version': '1.9.0'}, ...}, ...]
    
        def _test_expected_events(self, test_file, objects):
        
            # Generate expected files if GENERATE env variable is set
            if os.getenv("GENERATE"):
                with open(test_file + "-expected.json", 'w') as f:
                    # Flatten an cleanup objects
                    # This makes sure when generated on different machines / version the expected.json stays the same.
                    for k, obj in enumerate(objects):
                        objects[k] = self.flatten_object(obj, {}, "")
                        clean_keys(objects[k])
        
                    json.dump(objects, f, indent=4, separators=(',', ': '), sort_keys=True)
        
            with open(test_file + "-expected.json", "r") as f:
                expected = json.load(f)
        
            assert len(expected) == len(objects), "expected {} events to compare but got {}".format(
                len(expected), len(objects))
        
            for idx in range(len(expected)):
                ev = expected[idx]
                obj = objects[idx]
        
                # Flatten objects for easier comparing
                obj = self.flatten_object(obj, {}, "")
                clean_keys(obj)
                clean_keys(ev)
        
                d = DeepDiff(ev, obj, ignore_order=True)
        
    >           assert len(d) == 0, "The following expected object doesn't match:\n Diff:\n{}, full object: \n{}".format(d, obj)
    E           AssertionError: The following expected object doesn't match:
    E              Diff:
    E             {'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region_name']], 'values_changed': {"root['source.geo.location.lon']": {'new_value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}, full object: 
    E             {'nginx.access.remote_ip_list': ['10.0.0.2', '10.0.0.1', '85.181.35.98'], 'log.offset': 365, 'destination.domain': 'example.com', 'source.geo.continent_name': 'Europe', 'source.geo.country_iso_code': 'DE', 'source.geo.country_name': 'Germany', 'source.geo.location.lon': 9.491, 'source.geo.location.lat': 51.2993, 'source.as.number': 6805, 'source.as.organization.name': 'Telefonica Germany', 'source.address': '85.181.35.98', 'source.ip': '85.181.35.98', 'fileset.name': 'access', 'url.original': '/ocelot', 'input.type': 'log', '@timestamp': '2016-12-07T10:05:07.000Z', 'related.ip': ['85.181.35.98'], 'service.type': 'nginx', 'http.request.method': 'GET', 'http.response.status_code': 200, 'http.response.body.bytes': 571, 'http.version': '1.1', 'event.timezone': '-02:00', 'event.kind': 'event', 'event.module': 'nginx', 'event.category': ['web'], 'event.type': ['access'], 'event.dataset': 'nginx.access', 'event.outcome': 'success', 'user_agent.original': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0', 'user_agent.os.name': 'Mac OS X', 'user_agent.os.version': '10.12', 'user_agent.os.full': 'Mac OS X 10.12', 'user_agent.name': 'Firefox', 'user_agent.device.name': 'Mac', 'user_agent.version': '49.0.'}
    E           assert 2 == 0
    E            +  where 2 = len({'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region...value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}})
    
    tests/system/test_modules.py:225: AssertionError 
    

Build&Test / filebeat-build / test_fileset_file_073_nginx – filebeat.tests.system.test_modules.Test
    Expand to view the error details

     AssertionError: The following expected object doesn't match:    Diff:   {'values_changed': {"root['source.geo.city_name']": {'new_value': 'Frankfurt am Main', 'old_value': 'Germersheim'}, "root['source.geo.location.lon']": {'new_value': 8.6119, 'old_value': 8.3639}, "root['source.geo.region_name']": {'new_value': 'Hesse', 'old_value': 'Rheinland-Pfalz'}, "root['source.geo.location.lat']": {'new_value': 50.1234, 'old_value': 49.2231}, "root['source.geo.region_iso_code']": {'new_value': 'DE-HE', 'old_value': 'DE-RP'}}}, full object:    {'nginx.access.remote_ip_list': ['77.179.66.156'], 'log.offset': 0, 'source.geo.continent_name': 'Europe', 'source.geo.region_iso_code': 'DE-HE', 'source.geo.city_name': 'Frankfurt am Main', 'source.geo.country_iso_code': 'DE', 'source.geo.country_name': 'Germany', 'source.geo.region_name': 'Hesse', 'source.geo.location.lon': 8.6119, 'source.geo.location.lat': 50.1234, 'source.as.number': 6805, 'source.as.organization.name': 'Telefonica Germany', 'source.address': '77.179.66.156', 'source.ip': '77.179.66.156', 'fileset.name': 'access', 'url.original': '/', 'input.type': 'log', '@timestamp': '2016-10-25T12:49:33.000Z', 'related.ip': ['77.179.66.156'], 'service.type': 'nginx', 'http.request.method': 'GET', 'http.response.status_code': 200, 'http.response.body.bytes': 612, 'http.version': '1.1', 'event.timezone': '-02:00', 'event.kind': 'event', 'event.module': 'nginx', 'event.category': ['web'], 'event.type': ['access'], 'event.dataset': 'nginx.access', 'event.outcome': 'success', 'user_agent.original': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36', 'user_agent.os.name': 'Mac OS X', 'user_agent.os.version': '10.12.0', 'user_agent.os.full': 'Mac OS X 10.12.0', 'user_agent.name': 'Chrome', 'user_agent.device.name': 'Mac', 'user_agent.version': '54.0.2840.59'} assert 1 == 0  +  where 1 = len({'values_changed': {"root['source.geo.city_name']": {'new_value': 'Frankfurt am Main', 'old_value': 'Germersheim'}, "r...': 50.1234, 'old_value': 49.2231}, "root['source.geo.region_iso_code']": {'new_value': 'DE-HE', 'old_value': 'DE-RP'}}}) 
    

    Expand to view the stacktrace

     a = (<test_modules.Test testMethod=test_fileset_file_073_nginx>,)
    
        @wraps(func)
        def standalone_func(*a):
    >       return func(*(a + p.args), **p.kwargs)
    
    ../build/ve/docker/lib/python3.7/site-packages/parameterized/parameterized.py:518: 
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    tests/system/test_modules.py:107: in test_fileset_file
        cfgfile=cfgfile)
    tests/system/test_modules.py:193: in run_on_file
        self._test_expected_events(test_file, objects)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    
    self = <test_modules.Test testMethod=test_fileset_file_073_nginx>
    test_file = '/go/src/github.com/elastic/beats/filebeat/module/nginx/access/test/access.log'
    objects = [{'@timestamp': '2016-10-25T12:49:33.000Z', 'agent': {'ephemeral_id': 'b0dd448a-ac3b-4629-b2f4-ddaa3a2759a2', 'hostnam...: '2021-04-22T17:35:46.746Z', 'dataset': 'nginx.access', 'ingested': '2021-04-22T17:35:47.858651800Z', ...}, ...}, ...]
    
        def _test_expected_events(self, test_file, objects):
        
            # Generate expected files if GENERATE env variable is set
            if os.getenv("GENERATE"):
                with open(test_file + "-expected.json", 'w') as f:
                    # Flatten an cleanup objects
                    # This makes sure when generated on different machines / version the expected.json stays the same.
                    for k, obj in enumerate(objects):
                        objects[k] = self.flatten_object(obj, {}, "")
                        clean_keys(objects[k])
        
                    json.dump(objects, f, indent=4, separators=(',', ': '), sort_keys=True)
        
            with open(test_file + "-expected.json", "r") as f:
                expected = json.load(f)
        
            assert len(expected) == len(objects), "expected {} events to compare but got {}".format(
                len(expected), len(objects))
        
            for idx in range(len(expected)):
                ev = expected[idx]
                obj = objects[idx]
        
                # Flatten objects for easier comparing
                obj = self.flatten_object(obj, {}, "")
                clean_keys(obj)
                clean_keys(ev)
        
                d = DeepDiff(ev, obj, ignore_order=True)
        
    >           assert len(d) == 0, "The following expected object doesn't match:\n Diff:\n{}, full object: \n{}".format(d, obj)
    E           AssertionError: The following expected object doesn't match:
    E              Diff:
    E             {'values_changed': {"root['source.geo.city_name']": {'new_value': 'Frankfurt am Main', 'old_value': 'Germersheim'}, "root['source.geo.location.lon']": {'new_value': 8.6119, 'old_value': 8.3639}, "root['source.geo.region_name']": {'new_value': 'Hesse', 'old_value': 'Rheinland-Pfalz'}, "root['source.geo.location.lat']": {'new_value': 50.1234, 'old_value': 49.2231}, "root['source.geo.region_iso_code']": {'new_value': 'DE-HE', 'old_value': 'DE-RP'}}}, full object: 
    E             {'nginx.access.remote_ip_list': ['77.179.66.156'], 'log.offset': 0, 'source.geo.continent_name': 'Europe', 'source.geo.region_iso_code': 'DE-HE', 'source.geo.city_name': 'Frankfurt am Main', 'source.geo.country_iso_code': 'DE', 'source.geo.country_name': 'Germany', 'source.geo.region_name': 'Hesse', 'source.geo.location.lon': 8.6119, 'source.geo.location.lat': 50.1234, 'source.as.number': 6805, 'source.as.organization.name': 'Telefonica Germany', 'source.address': '77.179.66.156', 'source.ip': '77.179.66.156', 'fileset.name': 'access', 'url.original': '/', 'input.type': 'log', '@timestamp': '2016-10-25T12:49:33.000Z', 'related.ip': ['77.179.66.156'], 'service.type': 'nginx', 'http.request.method': 'GET', 'http.response.status_code': 200, 'http.response.body.bytes': 612, 'http.version': '1.1', 'event.timezone': '-02:00', 'event.kind': 'event', 'event.module': 'nginx', 'event.category': ['web'], 'event.type': ['access'], 'event.dataset': 'nginx.access', 'event.outcome': 'success', 'user_agent.original': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36', 'user_agent.os.name': 'Mac OS X', 'user_agent.os.version': '10.12.0', 'user_agent.os.full': 'Mac OS X 10.12.0', 'user_agent.name': 'Chrome', 'user_agent.device.name': 'Mac', 'user_agent.version': '54.0.2840.59'}
    E           assert 1 == 0
    E            +  where 1 = len({'values_changed': {"root['source.geo.city_name']": {'new_value': 'Frankfurt am Main', 'old_value': 'Germersheim'}, "r...': 50.1234, 'old_value': 49.2231}, "root['source.geo.region_iso_code']": {'new_value': 'DE-HE', 'old_value': 'DE-RP'}}})
    
    tests/system/test_modules.py:225: AssertionError 
    

Build&Test / filebeat-build / test_fileset_file_074_nginx – filebeat.tests.system.test_modules.Test
    Expand to view the error details

     AssertionError: The following expected object doesn't match:    Diff:   {'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region_name']], 'values_changed': {"root['source.geo.location.lon']": {'new_value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}, full object:    {'nginx.access.remote_ip_list': ['10.0.0.2', '10.0.0.1', '85.181.35.98'], 'log.offset': 341, 'source.geo.continent_name': 'Europe', 'source.geo.country_iso_code': 'DE', 'source.geo.country_name': 'Germany', 'source.geo.location.lon': 9.491, 'source.geo.location.lat': 51.2993, 'source.as.number': 6805, 'source.as.organization.name': 'Telefonica Germany', 'source.address': '85.181.35.98', 'source.ip': '85.181.35.98', 'fileset.name': 'access', 'url.original': '/ocelot', 'input.type': 'log', '@timestamp': '2016-12-07T10:05:07.000Z', 'related.ip': ['85.181.35.98'], 'service.type': 'nginx', 'http.request.method': 'GET', 'http.response.status_code': 200, 'http.response.body.bytes': 571, 'http.version': '1.1', 'event.timezone': '-02:00', 'event.kind': 'event', 'event.module': 'nginx', 'event.category': ['web'], 'event.type': ['access'], 'event.dataset': 'nginx.access', 'event.outcome': 'success', 'user_agent.original': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0', 'user_agent.os.name': 'Mac OS X', 'user_agent.os.version': '10.12', 'user_agent.os.full': 'Mac OS X 10.12', 'user_agent.name': 'Firefox', 'user_agent.device.name': 'Mac', 'user_agent.version': '49.0.'} assert 2 == 0  +  where 2 = len({'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region...value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}) 
    

    Expand to view the stacktrace

     a = (<test_modules.Test testMethod=test_fileset_file_074_nginx>,)
    
        @wraps(func)
        def standalone_func(*a):
    >       return func(*(a + p.args), **p.kwargs)
    
    ../build/ve/docker/lib/python3.7/site-packages/parameterized/parameterized.py:518: 
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    tests/system/test_modules.py:107: in test_fileset_file
        cfgfile=cfgfile)
    tests/system/test_modules.py:193: in run_on_file
        self._test_expected_events(test_file, objects)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    
    self = <test_modules.Test testMethod=test_fileset_file_074_nginx>
    test_file = '/go/src/github.com/elastic/beats/filebeat/module/nginx/access/test/test.log'
    objects = [{'@timestamp': '2016-12-07T10:05:07.000Z', 'agent': {'ephemeral_id': '9cdbccf4-ae5e-450d-b4bf-774d3f790187', 'hostnam...: '2021-04-22T17:35:49.039Z', 'dataset': 'nginx.access', 'ingested': '2021-04-22T17:35:50.122313179Z', ...}, ...}, ...]
    
        def _test_expected_events(self, test_file, objects):
        
            # Generate expected files if GENERATE env variable is set
            if os.getenv("GENERATE"):
                with open(test_file + "-expected.json", 'w') as f:
                    # Flatten an cleanup objects
                    # This makes sure when generated on different machines / version the expected.json stays the same.
                    for k, obj in enumerate(objects):
                        objects[k] = self.flatten_object(obj, {}, "")
                        clean_keys(objects[k])
        
                    json.dump(objects, f, indent=4, separators=(',', ': '), sort_keys=True)
        
            with open(test_file + "-expected.json", "r") as f:
                expected = json.load(f)
        
            assert len(expected) == len(objects), "expected {} events to compare but got {}".format(
                len(expected), len(objects))
        
            for idx in range(len(expected)):
                ev = expected[idx]
                obj = objects[idx]
        
                # Flatten objects for easier comparing
                obj = self.flatten_object(obj, {}, "")
                clean_keys(obj)
                clean_keys(ev)
        
                d = DeepDiff(ev, obj, ignore_order=True)
        
    >           assert len(d) == 0, "The following expected object doesn't match:\n Diff:\n{}, full object: \n{}".format(d, obj)
    E           AssertionError: The following expected object doesn't match:
    E              Diff:
    E             {'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region_name']], 'values_changed': {"root['source.geo.location.lon']": {'new_value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}}, full object: 
    E             {'nginx.access.remote_ip_list': ['10.0.0.2', '10.0.0.1', '85.181.35.98'], 'log.offset': 341, 'source.geo.continent_name': 'Europe', 'source.geo.country_iso_code': 'DE', 'source.geo.country_name': 'Germany', 'source.geo.location.lon': 9.491, 'source.geo.location.lat': 51.2993, 'source.as.number': 6805, 'source.as.organization.name': 'Telefonica Germany', 'source.address': '85.181.35.98', 'source.ip': '85.181.35.98', 'fileset.name': 'access', 'url.original': '/ocelot', 'input.type': 'log', '@timestamp': '2016-12-07T10:05:07.000Z', 'related.ip': ['85.181.35.98'], 'service.type': 'nginx', 'http.request.method': 'GET', 'http.response.status_code': 200, 'http.response.body.bytes': 571, 'http.version': '1.1', 'event.timezone': '-02:00', 'event.kind': 'event', 'event.module': 'nginx', 'event.category': ['web'], 'event.type': ['access'], 'event.dataset': 'nginx.access', 'event.outcome': 'success', 'user_agent.original': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0', 'user_agent.os.name': 'Mac OS X', 'user_agent.os.version': '10.12', 'user_agent.os.full': 'Mac OS X 10.12', 'user_agent.name': 'Firefox', 'user_agent.device.name': 'Mac', 'user_agent.version': '49.0.'}
    E           assert 2 == 0
    E            +  where 2 = len({'dictionary_item_removed': [root['source.geo.city_name'], root['source.geo.region_iso_code'], root['source.geo.region...value': 9.491, 'old_value': 13.4531}, "root['source.geo.location.lat']": {'new_value': 51.2993, 'old_value': 52.4473}}})
    
    tests/system/test_modules.py:225: AssertionError 
    

Steps errors 3

Expand to view the steps failures

filebeat-build - mage build test
  • Took 21 min 42 sec . View more details on here
  • Description: mage build test
x-pack/filebeat-build - mage build test
  • Took 43 min 52 sec . View more details on here
  • Description: mage build test
Error signal
  • Took 0 min 0 sec . View more details on here
  • Description: Error 'hudson.AbortException: script returned exit code 1'

Log output

Expand to view the last 100 lines of log output

[2021-04-22T18:03:00.312Z]   Git commit:       46229ca
[2021-04-22T18:03:00.312Z]   Built:            Fri Jan 29 14:31:25 2021
[2021-04-22T18:03:00.312Z]   OS/Arch:          linux/amd64
[2021-04-22T18:03:00.312Z]   Experimental:     false
[2021-04-22T18:03:00.312Z]  containerd:
[2021-04-22T18:03:00.312Z]   Version:          1.4.4
[2021-04-22T18:03:00.312Z]   GitCommit:        05f951a3781f4f2c1911b05e61c160e9c30eaa8e
[2021-04-22T18:03:00.312Z]  runc:
[2021-04-22T18:03:00.312Z]   Version:          1.0.0-rc93
[2021-04-22T18:03:00.312Z]   GitCommit:        12644e614e25b05da6fd08a38ffa0cfe1903fdec
[2021-04-22T18:03:00.312Z]  docker-init:
[2021-04-22T18:03:00.312Z]   Version:          0.19.0
[2021-04-22T18:03:00.312Z]   GitCommit:        de40ad0
[2021-04-22T18:03:00.312Z] Change ownership of all files inside the specific folder from root/root to current user/group
[2021-04-22T18:03:00.312Z] Unable to find image 'alpine:3.4' locally
[2021-04-22T18:03:01.256Z] 3.4: Pulling from library/alpine
[2021-04-22T18:03:01.518Z] c1e54eec4b57: Pulling fs layer
[2021-04-22T18:03:01.778Z] c1e54eec4b57: Verifying Checksum
[2021-04-22T18:03:01.778Z] c1e54eec4b57: Download complete
[2021-04-22T18:03:02.039Z] c1e54eec4b57: Pull complete
[2021-04-22T18:03:02.039Z] Digest: sha256:b733d4a32c4da6a00a84df2ca32791bb03df95400243648d8c539e7b4cce329c
[2021-04-22T18:03:02.039Z] Status: Downloaded newer image for alpine:3.4
[2021-04-22T18:03:04.582Z] Change permissions with write access of all files inside the specific folder
[2021-04-22T18:03:05.566Z] Running in /var/lib/jenkins/workspace/PR-25245-1-35addc27-91d5-4016-ba08-fef297a8d79d/src/github.com/elastic/beats/build
[2021-04-22T18:03:05.897Z] + rm -rf ve
[2021-04-22T18:03:05.897Z] + find . -type d -name vendor -exec rm -r {} ;
[2021-04-22T18:03:06.276Z] + python .ci/scripts/pre_archive_test.py
[2021-04-22T18:03:09.578Z] Copy ./x-pack/filebeat/build into build/x-pack/filebeat/build
[2021-04-22T18:03:09.611Z] Running in /var/lib/jenkins/workspace/PR-25245-1-35addc27-91d5-4016-ba08-fef297a8d79d/src/github.com/elastic/beats/build
[2021-04-22T18:03:09.668Z] Recording test results
[2021-04-22T18:03:11.392Z] [Checks API] No suitable checks publisher found.
[2021-04-22T18:03:11.735Z] + tar --version
[2021-04-22T18:03:12.104Z] + tar --exclude=test-build-artifacts-x-pack-filebeat-build-tgz -czf test-build-artifacts-x-pack-filebeat-build-tgz .
[2021-04-22T18:04:20.292Z] + gsutil --version
[2021-04-22T18:04:20.292Z] /var/lib/jenkins/workspace/PR-25245-1-35addc27-91d5-4016-ba08-fef297a8d79d/src/github.com/elastic/beats/build@tmp/durable-6a5a8848/script.sh: 1: /var/lib/jenkins/workspace/PR-25245-1-35addc27-91d5-4016-ba08-fef297a8d79d/src/github.com/elastic/beats/build@tmp/durable-6a5a8848/script.sh: gsutil: not found
[2021-04-22T18:04:20.371Z] Running in /var/lib/jenkins/workspace/PR-25245-1-35addc27-91d5-4016-ba08-fef297a8d79d/src/github.com/elastic/beats/build@tmp
[2021-04-22T18:04:20.742Z] + wget --version
[2021-04-22T18:04:21.147Z] + wget -q -O gsutil.tar.gz https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-319.0.0-linux-x86_64.tar.gz
[2021-04-22T18:04:22.116Z] + tar -xpf gsutil.tar.gz --strip-components=1
[2021-04-22T18:04:24.923Z] Masking supported pattern matches of $FILE_CREDENTIAL
[2021-04-22T18:04:25.349Z] + gcloud auth activate-service-account --key-file ****
[2021-04-22T18:04:27.264Z] Activated service account credentials for: [beats-ci-gcs-plugin@elastic-ci-prod.iam.gserviceaccount.com]
[2021-04-22T18:04:27.665Z] + gsutil -m -q cp -a public-read test-build-artifacts-x-pack-filebeat-build-tgz gs://beats-ci-temp/Beats/beats/PR-25245-1
[2021-04-22T18:04:34.727Z] + python .ci/scripts/search_system_tests.py
[2021-04-22T18:04:34.786Z] [INFO] system-tests='build/x-pack/filebeat/build/system-tests'. If no empty then let's create a tarball
[2021-04-22T18:04:35.151Z] + tar --version
[2021-04-22T18:04:35.517Z] + tar --exclude=x-pack-filebeat--system-tests-linux-tgz -czf x-pack-filebeat--system-tests-linux-tgz build/x-pack/filebeat/build/system-tests
[2021-04-22T18:05:14.729Z] + gsutil --version
[2021-04-22T18:05:14.730Z] /var/lib/jenkins/workspace/PR-25245-1-35addc27-91d5-4016-ba08-fef297a8d79d/src/github.com/elastic/beats@tmp/durable-9c1186b7/script.sh: 1: /var/lib/jenkins/workspace/PR-25245-1-35addc27-91d5-4016-ba08-fef297a8d79d/src/github.com/elastic/beats@tmp/durable-9c1186b7/script.sh: gsutil: not found
[2021-04-22T18:05:14.794Z] Running in /var/lib/jenkins/workspace/PR-25245-1-35addc27-91d5-4016-ba08-fef297a8d79d/src/github.com/elastic/beats@tmp
[2021-04-22T18:05:15.157Z] + wget --version
[2021-04-22T18:05:15.537Z] + wget -q -O gsutil.tar.gz https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-319.0.0-linux-x86_64.tar.gz
[2021-04-22T18:05:16.177Z] + tar -xpf gsutil.tar.gz --strip-components=1
[2021-04-22T18:05:19.596Z] Masking supported pattern matches of $FILE_CREDENTIAL
[2021-04-22T18:05:19.961Z] + gcloud auth activate-service-account --key-file ****
[2021-04-22T18:05:21.877Z] Activated service account credentials for: [beats-ci-gcs-plugin@elastic-ci-prod.iam.gserviceaccount.com]
[2021-04-22T18:05:22.434Z] + gsutil -m -q cp -a public-read x-pack-filebeat--system-tests-linux-tgz gs://beats-ci-temp/Beats/beats/PR-25245-1
[2021-04-22T18:05:28.273Z] + go clean -modcache
[2021-04-22T18:05:31.964Z] Cleaning up /var/lib/jenkins/workspace/PR-25245-1-35addc27-91d5-4016-ba08-fef297a8d79d
[2021-04-22T18:05:31.964Z] Client: Docker Engine - Community
[2021-04-22T18:05:31.964Z]  Version:           20.10.3
[2021-04-22T18:05:31.964Z]  API version:       1.41
[2021-04-22T18:05:31.964Z]  Go version:        go1.13.15
[2021-04-22T18:05:31.964Z]  Git commit:        48d30b5
[2021-04-22T18:05:31.964Z]  Built:             Fri Jan 29 14:33:13 2021
[2021-04-22T18:05:31.964Z]  OS/Arch:           linux/amd64
[2021-04-22T18:05:31.964Z]  Context:           default
[2021-04-22T18:05:31.964Z]  Experimental:      true
[2021-04-22T18:05:31.964Z] 
[2021-04-22T18:05:31.964Z] Server: Docker Engine - Community
[2021-04-22T18:05:31.964Z]  Engine:
[2021-04-22T18:05:31.964Z]   Version:          20.10.3
[2021-04-22T18:05:31.964Z]   API version:      1.41 (minimum version 1.12)
[2021-04-22T18:05:31.964Z]   Go version:       go1.13.15
[2021-04-22T18:05:31.964Z]   Git commit:       46229ca
[2021-04-22T18:05:31.964Z]   Built:            Fri Jan 29 14:31:25 2021
[2021-04-22T18:05:31.964Z]   OS/Arch:          linux/amd64
[2021-04-22T18:05:31.964Z]   Experimental:     false
[2021-04-22T18:05:31.964Z]  containerd:
[2021-04-22T18:05:31.964Z]   Version:          1.4.4
[2021-04-22T18:05:31.964Z]   GitCommit:        05f951a3781f4f2c1911b05e61c160e9c30eaa8e
[2021-04-22T18:05:31.964Z]  runc:
[2021-04-22T18:05:31.964Z]   Version:          1.0.0-rc93
[2021-04-22T18:05:31.964Z]   GitCommit:        12644e614e25b05da6fd08a38ffa0cfe1903fdec
[2021-04-22T18:05:31.964Z]  docker-init:
[2021-04-22T18:05:31.964Z]   Version:          0.19.0
[2021-04-22T18:05:31.964Z]   GitCommit:        de40ad0
[2021-04-22T18:05:31.964Z] Change ownership of all files inside the specific folder from root/root to current user/group
[2021-04-22T18:05:36.165Z] Change permissions with write access of all files inside the specific folder
[2021-04-22T18:05:36.473Z] Running in /var/lib/jenkins/workspace/PR-25245-1-35addc27-91d5-4016-ba08-fef297a8d79d
[2021-04-22T18:05:43.734Z] Failed in branch x-pack/filebeat-build
[2021-04-22T18:05:44.474Z] Stage "Packaging" skipped due to earlier failure(s)
[2021-04-22T18:05:44.880Z] Running in /var/lib/jenkins/workspace/Beats_beats_PR-25245/src/github.com/elastic/beats
[2021-04-22T18:05:45.269Z] Running on Jenkins in /var/lib/jenkins/workspace/Beats_beats_PR-25245
[2021-04-22T18:05:45.376Z] [INFO] getVaultSecret: Getting secrets
[2021-04-22T18:05:45.473Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2021-04-22T18:05:46.488Z] + chmod 755 generate-build-data.sh
[2021-04-22T18:05:46.488Z] + ./generate-build-data.sh https://beats-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/Beats/beats/PR-25245/ https://beats-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/Beats/beats/PR-25245/runs/1 FAILURE 3830035
[2021-04-22T18:05:46.739Z] INFO: curl https://beats-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/Beats/beats/PR-25245/runs/1/steps/?limit=10000 -o steps-info.json
[2021-04-22T18:05:48.082Z] INFO: curl https://beats-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/Beats/beats/PR-25245/runs/1/tests/?status=FAILED -o tests-errors.json

🐛 Flaky test report

❕ There are test failures but not known flaky tests.

Expand to view the summary

Test stats 🧪

Test Results
Failed 165
Passed 13508
Skipped 2299
Total 15972

Genuine test errors 100

💔 There are test failures but not known flaky tests, most likely a genuine test failure.

  • Name: Build&Test / filebeat-build / test_fileset_file_000_traefik – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / filebeat-build / test_fileset_file_007_iis – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / filebeat-build / test_fileset_file_010_iis – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / filebeat-build / test_fileset_file_013_haproxy – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / filebeat-build / test_fileset_file_014_haproxy – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / filebeat-build / test_fileset_file_065_auditd – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / filebeat-build / test_fileset_file_068_auditd – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / filebeat-build / test_fileset_file_072_nginx – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / filebeat-build / test_fileset_file_073_nginx – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / filebeat-build / test_fileset_file_074_nginx – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / filebeat-build / test_fileset_file_103_apache – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / filebeat-build / test_fileset_file_105_apache – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / filebeat-build / test_fileset_file_110_apache – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / filebeat-build / test_fileset_file_134_system – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / filebeat-build / test_fileset_file_137_system – filebeat.tests.system.test_modules.Test
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_001_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_002_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_003_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_004_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_005_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_006_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_007_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_008_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_009_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_010_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_011_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_012_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_013_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_014_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_015_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_016_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_017_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_018_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_019_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_020_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_021_gsuite – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_024_azure – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_027_azure – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_032_fortinet – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_036_juniper – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_037_juniper – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_038_juniper – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_039_juniper – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_040_juniper – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_046_zeek – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_053_zeek – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_059_zeek – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_060_zeek – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_061_zeek – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_064_zeek – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_065_zeek – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_068_zeek – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_069_zeek – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_077_zeek – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_079_zeek – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_082_checkpoint – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_083_sonicwall – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_093_gcp – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_095_gcp – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_113_panw – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_114_panw – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_115_panw – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_116_panw – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_117_panw – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_119_squid – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_123_o365 – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_124_o365 – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_128_o365 – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_131_o365 – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_132_o365 – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_135_o365 – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_136_o365 – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_138_o365 – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_141_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_142_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_143_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_144_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_145_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_146_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_147_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_148_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_149_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_150_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_151_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_152_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_153_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_154_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_155_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_156_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_157_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_158_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_159_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_160_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_161_google_workspace – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_167_iptables – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_169_okta – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_172_cyberarkpas – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_173_cyberarkpas – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_176_cyberarkpas – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest
  • Name: Build&Test / x-pack/filebeat-build / test_fileset_file_177_cyberarkpas – x-pack.filebeat.tests.system.test_xpack_modules.XPackTest

@kvch kvch merged commit adb38f4 into elastic:7.13 Apr 23, 2021
@zube zube bot removed the [zube]: Done label Jul 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport Team:Elastic-Agent Label for the Agent team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants