From a7e582ace6f799cad03d849443f970c8cbcb8f45 Mon Sep 17 00:00:00 2001 From: Claudio Lorina Date: Mon, 20 Jun 2022 14:49:59 +0200 Subject: [PATCH 01/82] Fix linting warnings Signed-off-by: Claudio Lorina Signed-off-by: jefvantongerloo --- suzieq/cli/sqcmds/command.py | 1 - suzieq/sqobjects/network.py | 1 - 2 files changed, 2 deletions(-) diff --git a/suzieq/cli/sqcmds/command.py b/suzieq/cli/sqcmds/command.py index d684bed943..873102d404 100644 --- a/suzieq/cli/sqcmds/command.py +++ b/suzieq/cli/sqcmds/command.py @@ -274,7 +274,6 @@ def _pager_print(self, df: pd.DataFrame) -> None: else: print(df) - # pylint: disable=too-many-statements def _gen_output(self, df: pd.DataFrame, json_orient: str = "records", dont_strip_cols: bool = False, sort: bool = True): diff --git a/suzieq/sqobjects/network.py b/suzieq/sqobjects/network.py index 085b371f68..9f6bbe4ca8 100644 --- a/suzieq/sqobjects/network.py +++ b/suzieq/sqobjects/network.py @@ -1,5 +1,4 @@ from ipaddress import ip_address -import re import pandas as pd from suzieq.sqobjects.basicobj import SqObject From 57a9b02915e3fbd2f695771b0be835be54d8d5da Mon Sep 17 00:00:00 2001 From: Dinesh Dutt Date: Mon, 20 Jun 2022 06:35:26 -0700 Subject: [PATCH 02/82] Bump version to 0.18.0 Signed-off-by: Dinesh Dutt Signed-off-by: jefvantongerloo --- pyproject.toml | 2 +- suzieq/version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2e4b679c5a..dc65bf8c4e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "suzieq" -version = "0.18.0rc2" +version = "0.18.0" description = "A framework and application for network observability" readme = 'README.md' repository = 'https://github.com/netenglabs/suzieq' diff --git a/suzieq/version.py b/suzieq/version.py index 0c6be74101..a1a486e842 100755 --- a/suzieq/version.py +++ b/suzieq/version.py @@ -2,7 +2,7 @@ """Store the Suzieq version string.""" -SUZIEQ_VERSION = "0.18.0rc2" +SUZIEQ_VERSION = "0.18.0" if __name__ == '__main__': print(SUZIEQ_VERSION) From 93ada58496101f87b67998c62f9109d10b39c9fe Mon Sep 17 00:00:00 2001 From: Dinesh Dutt Date: Tue, 21 Jun 2022 03:37:38 -0700 Subject: [PATCH 03/82] Updated release notes for 0.18.0 Signed-off-by: Dinesh Dutt Signed-off-by: jefvantongerloo --- docs/release-notes.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs/release-notes.md b/docs/release-notes.md index dbdd0cc1c7..23382ba673 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -1,5 +1,28 @@ # Release Notes +## 0.18.0 (June 21, 2022) + +This 18th release of SuzieQ contains significant improvements to all the various NOS parsers, but especially IOSXE (more versions and more platforms supported now) and versions of NXOS older than 9.3.x. We've also added support for throttling the rate of requests SuzieQ poller issues to prevent overrunning AAA Servers. A more detailed list of features and critical bug fixes follows: + +* **Improved support for IOSXE** (more versions, more platforms). +* **Support for all NXOS versions**, those before 9.3.x which had no ```json native``` support. +* **Improved parsing support for most NOS**. +* **Support for rate limiting requests to AAA Servers**. See the poller documentation for details. +* **Additional fields for device table added**. You can now get a distriubution of the common causes for device reboots. +* **Fixed bug in supporting multiple schema versions of a table**. This was only a bug in reading, writing was correct. +* **New command, namespace, to get information about namespaces**. This deprecates network show/summarize/unique/top. Endpoint tracker is still at network find. +* **Improved OSPF assert**, to handle non-p2p interfaces better. +* **Removed all commands that required use of Linux shell on NOS**. This is for NXOS and EOS. +* **Vastly improved Node discovery**. We wouldn't reattempt node discovery if it failed more than twice, improved log messages and more. +* **Improved Path Support**. We now handle recursive routes more effectively and so can be used in more than EVPN scenarios. +* **Vastly faster endpoint tracker**. +* Support accepting MAC in any format (such as 00-AA-BB-CC-DD-EE or 00AA:BBCC:DDEE etc.) +* Added tons of new tests including importantly to catch more parsing errors +* Updated libraries including those with security updates. + +The one person to thank from the user community for this release is Andy Miller. Thanks Andy, this release wouldn't have been what it is, if it wasn't for you. + + ## 0.17.2 (Apr 28, 2022) This is the second patch release of the 17th release. The main issues that are fixed in this release are: From 4e475c7c857b4040dc627d9ad09e857ab2e5ea54 Mon Sep 17 00:00:00 2001 From: Dinesh Dutt Date: Tue, 21 Jun 2022 04:00:25 -0700 Subject: [PATCH 04/82] Add document about throttling requests to AAA servers Signed-off-by: Dinesh Dutt Signed-off-by: jefvantongerloo --- docs/rate-limiting-AAA.md | 75 +++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 76 insertions(+) create mode 100644 docs/rate-limiting-AAA.md diff --git a/docs/rate-limiting-AAA.md b/docs/rate-limiting-AAA.md new file mode 100644 index 0000000000..d6b1c77e5c --- /dev/null +++ b/docs/rate-limiting-AAA.md @@ -0,0 +1,75 @@ +# Rate Limiting AAA Server Requests + +Many AAA servers (such as TACACS, Radius) cannot handle the rate at which SuzieQ can issue requests. This is especially true in larger installations, those with older AAA servers, or when command authorization is used in addition to authentication. The most common symptom of this problem is the authentication failed error message. To avoid user lockout, we stopped retrying on authentication failures. To fix this, we added three new parameters to the poller configuration. A consequence of throttling is of course that it takes longer to collect the data. + +* **max-cmd-pipeline**: This is an integer value that ensures that no more than this number of requests are sent to a device in a second. Thus a value of 9 implies that we never have more than 9 outstanding commands or logins. If you use distributed pollers, you need to ensure that this number is a multiple of the number of pollers. Thus with a value of 9, you can use either 1 or 3 pollers. With 8, you can use 1, 2, or 4 pollers and so on. This is **specified in the suzieq-cfg.yml** file. The default is 0 i.e. no limits. + +* **per-cmd-auth**: This is a boolean to specify whether need to throttle logins as well as commands sent to a device. This is required in installations where commands are authorized before execution. True means use it for commands as well as logins. This is specified in the devices section of the poller inventory file. The default is False. + +* **retries-on-auth-fail**: Some older AAA servers fail even at low rates. In certain installations, a maximum of 3 authentication failures are tolerated before the user account is locked, and in some installations it can be anything more than a single failure. This parameter now enables us to support both types of installations. This is specified in the devices section of the poller inventory file. The default is 0, i.e. we never retry on authentication failure. + +Here's a sample suzieq-cfg.yml file with the max-cmd-pipeline parameter (see the poller section). +``` +data-directory: tests/data/parquet +coalescer: + period: 1h + archive-directory: + logging-level: DEBUG +rest: +# Uncomment these lines if you're using your own files for the REST server +# The certificates listed below are provided purely to get started, In any +# secure deployment, these must be generated specifically for the site and +# these lines uncommented and containing the location of the site-specific file. +# rest_certfile: /suzieq/cert.pem +# rest_keyfile: /suzieq/key.pem +# + API_KEY: 496157e6e869ef7f3d6ecb24a6f6d847b224ee4f + logging-level: WARNING + address: 127.0.0.1 + port: 8000 + # no-https: True + log-stdout: True + # rest-certfile: /secrets/cert.pem + # rest-keyfile: /secrets/key.pem + # logfile: /tmp/sq-rest-server.log + # log-stdout: True + +poller: + connect-timeout: 60 + period: 60 + logsize: 10000000 + logging-level: WARNING + log-stdout: True + max-cmd-pipeline: 4 + +ux: + engine: pandas + +analyzer: + timezone: America/Los_Angeles +``` + +Here's a sample inventory file with per-cmd-auth and retries-on-auth-fail set: +``` +--- +sources: + - name: ans + type: ansible + path: /tmp/ansinv + +devices: + - name: default + per-cmd-auth: False + retries-on-auth-fail: 2 + ignore-known-hosts: true + +auths: + - name: default + username: vagrant + password: vagrant + +namespaces: + - name: demo + source: ans + device: default +``` diff --git a/mkdocs.yml b/mkdocs.yml index 6b3b0862ac..26f5bc24ae 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -16,6 +16,7 @@ nav: - Gathering Data: - Poller: poller.md - Inventory File: inventory.md + - Rate Limiting AAA Server Requests: rate-limiting-AAA.md - Tables: tables.md - Transports: transports.md - Polling From a Local Folder: simnode.md From 76872339c7ce75a7e3f55a5dc54e63d013e63508 Mon Sep 17 00:00:00 2001 From: Claudio Lorina Date: Sun, 26 Jun 2022 17:12:07 +0200 Subject: [PATCH 05/82] Fix services init tests Signed-off-by: Claudio Lorina Signed-off-by: jefvantongerloo --- .../unit/poller/controller/test_controller.py | 18 +++++++++--------- .../unit/poller/worker/test_service_manager.py | 6 ++++-- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/tests/unit/poller/controller/test_controller.py b/tests/unit/poller/controller/test_controller.py index 4c463ced24..01e43360ab 100644 --- a/tests/unit/poller/controller/test_controller.py +++ b/tests/unit/poller/controller/test_controller.py @@ -51,7 +51,7 @@ 'outputs': 'parquet', 'output_dir': 'outdir', 'run_once': None, - 'service_only': 'topmem routes', + 'service_only': 'bgp routes', 'ssh_config_file': 'config/file', 'update_period': 100, 'workers': 3 @@ -66,7 +66,7 @@ 'outputs': 'parquet', 'output_dir': 'outdir', 'run_once': None, - 'service_only': 'topmem routes', + 'service_only': 'mlag routes', 'ssh_config_file': 'config/file', 'update_period': 100, 'workers': 3 @@ -81,7 +81,7 @@ 'outputs': 'parquet', 'output_dir': 'outdir', 'run_once': 'gather', - 'service_only': 'topmem routes', + 'service_only': 'interfaces routes', 'ssh_config_file': 'config/file', 'update_period': 100, 'workers': 3 @@ -96,7 +96,7 @@ 'outputs': 'parquet', 'output_dir': 'outdir', 'run_once': None, - 'service_only': 'topmem routes', + 'service_only': 'device routes', 'ssh_config_file': 'config/file', 'update_period': 100, 'workers': 3 @@ -114,7 +114,7 @@ 'outputs': 'parquet', 'output_dir': 'outdir', 'run_once': None, - 'service_only': 'topmem routes', + 'service_only': 'bgp routes', 'ssh_config_file': 'config/file', 'update_period': 100, 'workers': 3 @@ -129,7 +129,7 @@ 'outputs': 'parquet', 'output_dir': 'outdir', 'run_once': None, - 'service_only': 'topmem routes', + 'service_only': 'mlag routes', 'ssh_config_file': 'config/file', 'update_period': 100, 'workers': 3 @@ -144,7 +144,7 @@ 'outputs': 'parquet', 'output_dir': 'outdir', 'run_once': None, - 'service_only': 'topmem routes', + 'service_only': 'interfaces routes', 'ssh_config_file': 'config/file', 'update_period': 100, 'workers': -1 @@ -159,7 +159,7 @@ 'outputs': 'parquet', 'output_dir': 'outdir', 'run_once': None, - 'service_only': 'topmem routes', + 'service_only': 'device routes', 'ssh_config_file': 'config/file', 'update_period': -1, 'workers': 3 @@ -174,7 +174,7 @@ 'outputs': 'parquet', 'output_dir': 'outdir', 'run_once': None, - 'service_only': 'topmem routes', + 'service_only': 'bgp routes', 'ssh_config_file': 'config/file', 'update_period': 100, 'workers': 4 diff --git a/tests/unit/poller/worker/test_service_manager.py b/tests/unit/poller/worker/test_service_manager.py index 5c1ac73693..606413c554 100644 --- a/tests/unit/poller/worker/test_service_manager.py +++ b/tests/unit/poller/worker/test_service_manager.py @@ -2,7 +2,6 @@ ServiceManager component unit tests """ import asyncio -import os from pathlib import Path from typing import Callable, Dict from unittest.mock import patch @@ -17,13 +16,16 @@ SERVICE_DIR = './suzieq/config' SCHEMA_DIR = f'{SERVICE_DIR}/schema' +BLACKLIST_SERVICES = ['ifCounters', 'topmem', 'topcpu'] def _get_services(): """Get the entire list of available services """ svcs = list(Path(SERVICE_DIR).glob('*.yml')) - all_svcs = [os.path.basename(x).split('.')[0] for x in svcs] + all_svcs = [svc_name for s in svcs + if (svc_name := Path(s).stem) + not in BLACKLIST_SERVICES] return all_svcs From 176e77fd82a8b12a7f8d49504298471a4ad35b2b Mon Sep 17 00:00:00 2001 From: Dinesh Dutt Date: Sat, 25 Jun 2022 08:08:22 -0700 Subject: [PATCH 06/82] Interfaces: bug fix to handle unique when specifying vlan filter Signed-off-by: Dinesh Dutt Signed-off-by: jefvantongerloo --- suzieq/engines/pandas/interfaces.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/suzieq/engines/pandas/interfaces.py b/suzieq/engines/pandas/interfaces.py index 3d702fd2e1..49bdd42261 100644 --- a/suzieq/engines/pandas/interfaces.py +++ b/suzieq/engines/pandas/interfaces.py @@ -56,8 +56,8 @@ def get(self, **kwargs): if df.empty: return df - if portmode or any(x in fields - for x in ['vlan', 'vlanList', 'portmode']): + if vlan or portmode or any(x in fields + for x in ['vlan', 'vlanList', 'portmode']): for x in ['ipAddressList', 'ip6AddressList']: if x in columns or '*' in columns: continue From 5e6bfba4d23e8865e356dba4e2fb67c730860805 Mon Sep 17 00:00:00 2001 From: Dinesh Dutt Date: Sat, 25 Jun 2022 14:46:20 -0700 Subject: [PATCH 07/82] Update tests to test the bug fix Signed-off-by: Dinesh Dutt Signed-off-by: jefvantongerloo --- .../sqcmds/cumulus-samples/interface.yml | 16 ++++++++++++++++ .../sqcmds/eos-samples/interface.yml | 18 ++++++++++++++++++ .../sqcmds/junos-samples/interface.yml | 16 ++++++++++++++++ .../sqcmds/nxos-samples/interface.yml | 18 ++++++++++++++++++ 4 files changed, 68 insertions(+) diff --git a/tests/integration/sqcmds/cumulus-samples/interface.yml b/tests/integration/sqcmds/cumulus-samples/interface.yml index ff2e2965ad..2952474898 100644 --- a/tests/integration/sqcmds/cumulus-samples/interface.yml +++ b/tests/integration/sqcmds/cumulus-samples/interface.yml @@ -3667,3 +3667,19 @@ tests: data-directory: tests/data/parquet/ marks: interface assert cumulus output: '[]' +- command: interface unique --columns=hostname --vlan='13 24' --namespace=ospf-ibgp + --format=json + data-directory: tests/data/parquet/ + marks: interface unique cumulus + output: '[{"hostname": "leaf01"}, {"hostname": "leaf02"}, {"hostname": "leaf03"}, + {"hostname": "leaf04"}]' +- command: interface unique --columns=hostname --vlan='24' --namespace=ospf-ibgp --format=json + data-directory: tests/data/parquet/ + marks: interface unique cumulus + output: '[{"hostname": "leaf01"}, {"hostname": "leaf02"}, {"hostname": "leaf03"}, + {"hostname": "leaf04"}]' +- command: interface unique --columns=hostname --vlan='540' --namespace=ospf-ibgp + --format=json + data-directory: tests/data/parquet/ + marks: interface unique cumulus + output: '[]' diff --git a/tests/integration/sqcmds/eos-samples/interface.yml b/tests/integration/sqcmds/eos-samples/interface.yml index 057ad225f1..a0e10e6f5b 100644 --- a/tests/integration/sqcmds/eos-samples/interface.yml +++ b/tests/integration/sqcmds/eos-samples/interface.yml @@ -1011,3 +1011,21 @@ tests: "adminState": "up", "type": "vlan", "mtu": 9164, "vlan": 30, "master": "evpn-vrf", "ipAddressList": ["0.0.0.0/0", "172.16.3.254/24"], "ip6AddressList": [], "timestamp": 1623025176024}]' +- command: interface unique --columns=hostname --vlan=10 --namespace=eos --format=json + data-directory: tests/data/parquet/ + marks: interface unique eos + output: '[{"hostname": "leaf01"}, {"hostname": "leaf02"}]' +- command: interface unique --columns=hostname --vlan='10 20' --namespace=eos --format=json + data-directory: tests/data/parquet/ + marks: interface unique eos + output: '[{"hostname": "leaf01"}, {"hostname": "leaf02"}, {"hostname": "leaf03"}, + {"hostname": "leaf04"}]' +- command: interface unique --columns=hostname --vlan='30' --namespace=eos --format=json + data-directory: tests/data/parquet/ + marks: interface unique eos + output: '[{"hostname": "leaf01"}, {"hostname": "leaf02"}, {"hostname": "leaf03"}, + {"hostname": "leaf04"}]' +- command: interface unique --columns=hostname --vlan='540' --namespace=eos --format=json + data-directory: tests/data/parquet/ + marks: interface unique eos + output: '[]' diff --git a/tests/integration/sqcmds/junos-samples/interface.yml b/tests/integration/sqcmds/junos-samples/interface.yml index cf8929de04..e69f0ae79f 100644 --- a/tests/integration/sqcmds/junos-samples/interface.yml +++ b/tests/integration/sqcmds/junos-samples/interface.yml @@ -3271,3 +3271,19 @@ tests: {"namespace": "junos", "hostname": "leaf01", "ifname": "jsrv", "state": "up", "adminState": "up", "type": "internal", "mtu": 1514, "vlan": 0, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": 1623025803099}]' +- command: interface unique --columns=hostname --vlan=10 --namespace=junos --format=json + data-directory: tests/data/parquet/ + marks: interface unique junos + output: '[{"hostname": "leaf01"}]' +- command: interface unique --columns=hostname --vlan='10 20' --namespace=junos --format=json + data-directory: tests/data/parquet/ + marks: interface unique junos + output: '[{"hostname": "leaf01"}, {"hostname": "leaf02"}]' +- command: interface unique --columns=hostname --vlan='30' --namespace=junos --format=json + data-directory: tests/data/parquet/ + marks: interface unique junos + output: '[{"hostname": "leaf01"}, {"hostname": "leaf02"}]' +- command: interface unique --columns=hostname --vlan='540' --namespace=junos --format=json + data-directory: tests/data/parquet/ + marks: interface unique junos + output: '[]' diff --git a/tests/integration/sqcmds/nxos-samples/interface.yml b/tests/integration/sqcmds/nxos-samples/interface.yml index 07cb59608f..4675374ece 100644 --- a/tests/integration/sqcmds/nxos-samples/interface.yml +++ b/tests/integration/sqcmds/nxos-samples/interface.yml @@ -2662,3 +2662,21 @@ tests: data-directory: tests/data/parquet/ marks: interface show nxos output: '[]' +- command: interface unique --columns=hostname --vlan=10 --namespace=nxos --format=json + data-directory: tests/data/parquet/ + marks: interface unique nxos + output: '[{"hostname": "leaf01"}, {"hostname": "leaf02"}]' +- command: interface unique --columns=hostname --vlan='10 20' --namespace=nxos --format=json + data-directory: tests/data/parquet/ + marks: interface unique nxos + output: '[{"hostname": "leaf01"}, {"hostname": "leaf02"}, {"hostname": "leaf03"}, + {"hostname": "leaf04"}]' +- command: interface unique --columns=hostname --vlan='30' --namespace=nxos --format=json + data-directory: tests/data/parquet/ + marks: interface unique nxos + output: '[{"hostname": "leaf01"}, {"hostname": "leaf02"}, {"hostname": "leaf03"}, + {"hostname": "leaf04"}]' +- command: interface unique --columns=hostname --vlan='540' --namespace=nxos --format=json + data-directory: tests/data/parquet/ + marks: interface unique nxos + output: '[]' From 007cfa9384453a6db876d186e92200a17ef0b5b9 Mon Sep 17 00:00:00 2001 From: Dinesh Dutt Date: Wed, 29 Jun 2022 21:01:47 -0700 Subject: [PATCH 08/82] Updating task list, cleaning out obsolete stuff Signed-off-by: Dinesh Dutt Signed-off-by: jefvantongerloo --- docs/2020-priority.md | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/docs/2020-priority.md b/docs/2020-priority.md index 5433ce630c..7ff3056459 100644 --- a/docs/2020-priority.md +++ b/docs/2020-priority.md @@ -1,6 +1,6 @@ # Suzieq Priorities -(last updated August 2021) +(last updated June 2022) This roadmap represents our best guess at broad priorities. The point is to demonstrate what we think we should work on and the general @@ -11,18 +11,6 @@ it more useful to you, please let us know. The best way is to We are trying to provide a mix of adding new collection, new analysis, and making Suzieq a better platform to build on. -So far Suzieq is focused on datacenter, but we if we hear of -interest in the ISP/WAN space (or any other), then we can pivot -towards that. There's nothing inherent in Suzieq that makes it just -for one part of the network than the others, we just started in the -datacenter. The current version will be useful anywhere, it's just -that we aren't collecting everything we'd need to do a great job -in other places and we don't have asserts tuned towards other use cases. - -First release (0.1), was focused on good fundamentals and a good -representation of what Suzieq can be used for. Second release (0.2) -was focused on NXOS and Junos support. - ## Areas of Development There are six major areas that Suzieq development can be broken down into. @@ -59,30 +47,17 @@ Given the categories, here is a rough list of tasks we will be tackling. We welc ~~ * maybe be able to just start with one IP address and then discover everything that must be polled by suzieq * ~~support augmenting columns (like adding peerHostname in OSPF when all we have is peerIP)~~ -* change gen_schema to ignore _ fields * ~~make column manipulation at higher level than engine.py~~ * ~~Schema evolution and versioning to make suzieq less brittle to changes in the schema~~ -* Network wide summarize to take advantage of data across all commands ~~* Web-based GUI-- -- * ~Do you have a framework you'd like the GUI to use?~~ --- * For what functions would you use a GUI?~~ - * caching and performance -~~* suzieq as a daemon-- - * do we need suzieq as a daemon -- what are the use cases * ~~REST API~~ -* Create tags or other ways to group in a hierarchical way - * possibly reuse ansible grouping * Kubernetes * understand topology, pod and cluster * calico, cilium, vxlan * asserts * Better unit tests with mocking instead of just end-to-end with real data. -* Integration with performance analysis - * integration with prometheus and influxdb - * what do we want to be able to do with this? * ~~Arista EVPN~~ -* Integration with systems for notification of events - * slack * ??? * ~~Users can do their own queries~~ * ~~pandas or pandas sql query~~ ~~* Great expectations or some other way of better verifying data output @@ -93,8 +68,6 @@ Given the categories, here is a rough list of tasks we will be tackling. We welc * ~~Support for Cisco's IOS-XR~~ * Temperature and power collection * Cloud integration such as VPC from cloud providers -* Kafka integration for streaming telemetry -* Redundancy -- some way of making sure that one poller is always running * BMP to collect BGP data for realtime BGP analysis * Understand BGP routing policy and route maps / etc * ISIS From fa575a389194e2f5337f2a6a1c64341203298286 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 11:54:34 +0200 Subject: [PATCH 09/82] Add `show arp` textfsm template Signed-off-by: jefvantongerloo --- .../config/textfsm_templates/aos_show_arp.tfsm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 suzieq/config/textfsm_templates/aos_show_arp.tfsm diff --git a/suzieq/config/textfsm_templates/aos_show_arp.tfsm b/suzieq/config/textfsm_templates/aos_show_arp.tfsm new file mode 100644 index 0000000000..dbfb0066e0 --- /dev/null +++ b/suzieq/config/textfsm_templates/aos_show_arp.tfsm @@ -0,0 +1,17 @@ +Value ip_address ((?:[0-9]{1,3}\.){3}[0-9]{1,3}) +Value hardware_addr (([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]){2}) +Value type (DYNAMIC|STATIC) +Value flags ([PAVBHIM]*) +Value port (((\d+\/\d+\/\d+(\w)?)|(\d\/\d+)|(\d+))) +Value interface (\S*) +Value name (\S*) + +Start + ^Total \d+ arp entries$$ + ^Flags (P=Proxy, A=Authentication, V=VRRP, B=BFD, H=HAVLAN, I=INTF, M=Managed)$$ + ^IP Addr\s+Hardware Addr\s+Type\s+Flags\s+Port\s+Interface\s+Name$$ + ^[-+\+]+\s*$$ -> Arp + +Arp + ^\s+${ip_address}\s+${hardware_addr}\s+${type}\s*${flags}\s*${port}\s*${interface}\s*${name}\s*$$ -> Record +# ^. -> Error From 7411854b8f3d2c42c651a1c2b0785c99bd559038 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 11:57:56 +0200 Subject: [PATCH 10/82] Add `show chassis` textfsm template Signed-off-by: jefvantongerloo --- .../textfsm_templates/aos_show_chassis.tfsm | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 suzieq/config/textfsm_templates/aos_show_chassis.tfsm diff --git a/suzieq/config/textfsm_templates/aos_show_chassis.tfsm b/suzieq/config/textfsm_templates/aos_show_chassis.tfsm new file mode 100644 index 0000000000..cced793d12 --- /dev/null +++ b/suzieq/config/textfsm_templates/aos_show_chassis.tfsm @@ -0,0 +1,30 @@ +Value Key,Required chassis ([1-8]) +Value model_name (.+) +Value model_type (.+) +Value description (.+) +Value part_number (\d+-\d+) +Value hardware_revision (\w+) +Value serial_number (.+) +Value manufacture_date (\w{3}\s+\d{1,2}\s\d{4}) +Value admin_status (.+) +Value operational_status ([A-Z]+) +Value number_of_resets (\d+) +Value mac_address (([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]){2}) + +Start + ^Local\sChassis\sID\s${chassis}\s\(Master\)$$ -> Chassis + ^Remote\sChassis\sID\s${chassis}\s\(Slave\)$$ -> Chassis + +Chassis + ^\s{2}Model Name:\s+${model_name},$$ + ^\s{2}Module Type:\s+${model_type},$$ + ^\s{2}Description:\s+${description},$$ + ^\s{2}Part Number:\s+${part_number},$$ + ^\s{2}Hardware Revision:\s+${hardware_revision},$$ + ^\s{2}Serial Number:\s+${serial_number},$$ + ^\s{2}Manufacture Date:\s+${manufacture_date},$$ + ^\s{2}Admin Status:\s+${admin_status},$$ + ^\s{2}Operational Status:\s+${operational_status},$$ + ^\s{2}Number Of Resets:\s+${number_of_resets},$$ + ^\s{2}MAC Address:\s+${mac_address}$$ -> Record Start +# ^. -> Error From cb7d9db309f25ec2e2ba6db52e25d60749f94dc5 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 11:58:13 +0200 Subject: [PATCH 11/82] Add `show interfaces` textfsm template Signed-off-by: jefvantongerloo --- .../aos_show_interfaces_status.tfsm | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm diff --git a/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm b/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm new file mode 100644 index 0000000000..f68cf3cc42 --- /dev/null +++ b/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm @@ -0,0 +1,23 @@ +Value Key,Required chassis_slot_port (\d/\d+/\d+[\w]*) +Value admin_status (-|en|dis) +Value autonego (-|en|dis) +Value detected_speed (-|Auto|10|100|1000|2500|5000|10000|21000|25000|40000|50000|100000) +Value detected_duplex (-|Half|Full|Auto) +Value detected_pause (-|Rx-N-Tx|Rx|Tx) +Value detected_fec (-|FC|RS|DIS) +Value configured_speed (-|Auto|10|100|1000|2500|5000|10000|21000|25000|40000|50000|100000) +Value configured_duplex (-|Half|Full|Auto) +Value configured_pause (-|Rx-N-Tx|Rx|Tx) +Value configured_fec (AUTO|DIS|FC|RS) +Value trap_linkupdown (-|en|dis) +Value eee (en[a]*|dis) + +Start + ^\s*Chas/\s+DETECTED-VALUES\s+CONFIGURED-VALUES\s*$$ + ^\s*Slot/\s+Admin\s+Auto\s+Speed\s+Duplex\s+Pause\s+FEC\s+Speed\s+Duplex\s+Pause\s+FEC\s+Link\s*$$ + ^\s*Port\s+Status\s+Nego\s+(Mbps)\s+Det\s+(Mbps)\s+Cfg\s+Trap\s+EEE\s*$$ + ^[-+\+]+\s*$$ -> Interfaces + +Interfaces + ^\s*${chassis_slot_port}\s+${admin_status}\s+${autonego}\s+${detected_speed}\s+${detected_duplex}\s+${detected_pause}\s+${detected_fec}\s+${configured_speed}\s+${configured_duplex}\s+${configured_pause}\s+${configured_fec}\s+${trap_linkupdown}\s+${eee}\s*$$ -> Record +# ^. -> Error \ No newline at end of file From 6c11ddc33b1592af964cfe323d04e1b458e25a9e Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 11:58:35 +0200 Subject: [PATCH 12/82] Add `show interfaces` textfsm template Signed-off-by: jefvantongerloo --- .../aos_show_interfaces.tfsm | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 suzieq/config/textfsm_templates/aos_show_interfaces.tfsm diff --git a/suzieq/config/textfsm_templates/aos_show_interfaces.tfsm b/suzieq/config/textfsm_templates/aos_show_interfaces.tfsm new file mode 100644 index 0000000000..cdec3f069e --- /dev/null +++ b/suzieq/config/textfsm_templates/aos_show_interfaces.tfsm @@ -0,0 +1,72 @@ +Value Key,Required chassis_slot_port (\d\/\d+\/\d+[\w]*) +Value operation_status (up|down|dormant) +Value port_down_violation_reason (.+\s*) +Value last_time_link_changed (.+\s*) +Value number_of_status_change (\d+) +Value type (Ethernet|Fast Ethernet|Gigabit Ethernet) +Value sfp_xfp (.+\s*) +Value interface_type (Copper|Fiber|Combo-copper|Combo-Fiber) +Value epp (Enabled|Disabled) +Value link_quality (GOOD|FAIR|POOR|N/A) +Value mac_address (([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]){2}) +Value bandwidth (\d+|-) +Value duplex (Half|Full|Auto|-) +Value autonegotiation (.+\s*) +Value long_frame_size (\d+) +Value inter_frame_gap (\d+) +Value loopback_mode (N/A|SPB-VPN) +Value bytes_received (\d+) +Value rx_unicast_frames (\d+) +Value rx_broadcast_frames (\d+) +Value rx_mcast_frames (\d+) +Value rx_undersize_frames (\d+) +Value rx_oversize_frames (\d+) +Value rx_lost_frames (\d+) +Value rx_error_frames (\d+) +Value rx_crc_error_frames (\d+) +Value rx_alignments_err (\d+) +Value bytes_xmitted (\d+) +Value tx_unicast_frames (\d+) +Value tx_broadcast_frames (\d+) +Value tx_mcast_frames (\d+) +Value tx_undersize_frames (\d+) +Value tx_oversize_frames (\d+) +Value tx_lost_frames (\d+) +Value tx_collided_frames (\d+) +Value tx_error_frames (\d+) +Value collisions (\d+) +Value late_collisions (\d+) +Value exc_collisions (\d+) + +Start + ^Chassis\/Slot\/Port\s*:?\s${chassis_slot_port}\s+:?$$ + ^\sOperational Status\s*:\s${operation_status},$$ + ^\sPort-Down\/Violation Reason:\s${port_down_violation_reason},$$ + ^\sLast Time Link Changed\s*:\s${last_time_link_changed},$$ + ^\sNumber of Status Change\s*:\s${number_of_status_change},$$ + ^\sType\s*:\s${type},$$ + ^\sSFP/XFP\s*:\s${sfp_xfp},$$ + ^\sInterface Type\s*:\s${interface_type},$$ + ^\sEPP\s*:\s${epp},$$ + ^\sLink-Quality\s*:\s${link_quality},$$ + ^\sMAC address\s*:\s${mac_address},$$ + ^\sBandWidth \(Megabits\)\s*:\s+${bandwidth}\s*,\s+Duplex\s+:\s${duplex}\s*,$$ + ^\sAutonegotiation\s*:\s+${autonegotiation},$$ + ^\sLong Frame Size\(Bytes\)\s*:\s${long_frame_size},$$ + ^\sInter Frame Gap\(Bytes\)\s*:\s${inter_frame_gap},$$ + ^\sloopback mode\s*:\s${loopback_mode},$$ + ^\sRx\s*:$$ + ^\sBytes Received\s*:\s+${bytes_received}, Unicast Frames\s*:\s+${rx_unicast_frames},$$ + ^\sBroadcast Frames\s*:\s+${rx_broadcast_frames}, M-cast Frames\s*:\s+${rx_mcast_frames},$$ + ^\sUnderSize Frames\s*:\s+${rx_undersize_frames}, OverSize Frames\s*:\s+${rx_oversize_frames},$$ + ^\sLost Frames\s*:\s+${rx_lost_frames}, Error Frames\s*:\s+${rx_error_frames},$$ + ^\sCRC Error Frames\s*:\s+${rx_crc_error_frames}, Alignments Err\s*:\s+${rx_alignments_err},$$ + ^\sTx\s+:$$ + ^\sBytes Xmitted\s*:\s+${bytes_xmitted},\s*Unicast Frames\s*:\s+${tx_unicast_frames},$$ + ^\sBroadcast Frames\s*:\s+${tx_broadcast_frames}, M-cast Frames\s*:\s+${tx_mcast_frames},$$ + ^\sUnderSize Frames\s*:\s+${tx_undersize_frames}, OverSize Frames\s*:\s+${tx_oversize_frames},$$ + ^\sLost Frames\s*:\s+${tx_lost_frames},\s*Collided Frames\s*:\s+${tx_collided_frames},$$ + ^\sError Frames\s*:\s+${tx_error_frames},\s*Collisions\s*:\s+${collisions},$$ + ^\sError Frames\s*:\s+${tx_error_frames}\s*$$ -> Record Start + ^\sLate collisions\s*:\s+${late_collisions},\s*Exc-Collisions\s*:\s+${exc_collisions}$$ -> Record Start +# ^. -> Error \ No newline at end of file From 1d75cbf1ca2a5e9ddb6a3c5e2e88a4cbb1013cc7 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 11:58:45 +0200 Subject: [PATCH 13/82] Add `show ip routes` textfsm template Signed-off-by: jefvantongerloo --- .../textfsm_templates/aos_show_ip_routes.tfsm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 suzieq/config/textfsm_templates/aos_show_ip_routes.tfsm diff --git a/suzieq/config/textfsm_templates/aos_show_ip_routes.tfsm b/suzieq/config/textfsm_templates/aos_show_ip_routes.tfsm new file mode 100644 index 0000000000..5915dd3d24 --- /dev/null +++ b/suzieq/config/textfsm_templates/aos_show_ip_routes.tfsm @@ -0,0 +1,15 @@ +Value Filldown dest_addr ((?:[0-9]{1,3}\.){3}[0-9]{1,3}\/[0-9]{1,2}) +Value Required gateway_addr ((?:[0-9]{1,3}\.){3}[0-9]{1,3}) +Value age ((\d+:\d+:\d+)|(\d+d\s*\d+h)) +Value protocol (\w+) + +Start + ^\+ = Equal cost multipath routes$$ + ^ Total (\d) routes$$ + ^ Dest Address Gateway Addr Age Protocol $$ + ^[-+\+]+\s*$$ -> Routes + +Routes + ^\s+${dest_addr}\s+(\+)*${gateway_addr}\s+${age}\s+${protocol}\s*$$ -> Record + ^\s+(\+)*${gateway_addr}\s+${age}\s+${protocol}\s*$$ -> Record +# ^. -> Error \ No newline at end of file From e7b1aee851b8a0cf0b3eb613eb2346c44d09233b Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 11:59:00 +0200 Subject: [PATCH 14/82] Add `show mac-learning` textfsm template Signed-off-by: jefvantongerloo --- .../aos_show_mac_learning.tfsm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 suzieq/config/textfsm_templates/aos_show_mac_learning.tfsm diff --git a/suzieq/config/textfsm_templates/aos_show_mac_learning.tfsm b/suzieq/config/textfsm_templates/aos_show_mac_learning.tfsm new file mode 100644 index 0000000000..3dfe6e799e --- /dev/null +++ b/suzieq/config/textfsm_templates/aos_show_mac_learning.tfsm @@ -0,0 +1,17 @@ +Value domain (VLAN|SPB|VXLAN|L2GRE) +Value id (([\d]+(:[\d+]+)?)) +Value mac_address (([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]){2}) +Value type (dynamic|static|bmac) +Value operation (bridging|filtering|servicing|quarantined) +Value interface ((sap:|sdp:)?((\d+\/\d+\/\d+(\w)?)|(\d\/\d+)|(\d+))(:\d+)?) + +Start + ^Legend: Mac Address: \* = address not valid,$$ + ^\s+ Mac Address: \& = duplicate static address,$$ + ^ Domain Vlan/SrvcId[ISId/vnId] Mac Address Type Operation Interface$$ + ^[-+\+]+\s*$$ -> Mac + +Mac + ^\s+${domain}\s+${id}\s+${mac_address}\s+${type}\s+${operation}\s+${interface}\s*$$ -> Record + ^\s+Total number of Valid MAC addresses above = (\d+) +# ^. -> Error \ No newline at end of file From 3321e7264cc41253da62ae48aadcf8226a50efe9 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 11:59:12 +0200 Subject: [PATCH 15/82] Add `show system` textfsm template Signed-off-by: jefvantongerloo --- .../textfsm_templates/aos_show_system.tfsm | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 suzieq/config/textfsm_templates/aos_show_system.tfsm diff --git a/suzieq/config/textfsm_templates/aos_show_system.tfsm b/suzieq/config/textfsm_templates/aos_show_system.tfsm new file mode 100644 index 0000000000..58ed384e1b --- /dev/null +++ b/suzieq/config/textfsm_templates/aos_show_system.tfsm @@ -0,0 +1,30 @@ +Value description (.+) +Value object_id (.+) +Value up_time (.+) +Value contact (.+) +Value name (.+) +Value location (.+) +Value services (.+) +Value date_time (.+) +Value available (\d*) +Value comments (\w+) + +Start + ^System: -> System + +System + ^\s+Description:\s+${description},$$ + ^\s+Object\sID:\s+${object_id},$$ + ^\s+Up\sTime:\s+${up_time},$$ + ^\s+Contact:\s+${contact},$$ + ^\s+Name:\s+${name},$$ + ^\s+Location:\s+${location},$$ + ^\s+Services:\s+${services},$$ + ^\s+Date & Time:\s+${date_time}$$ + ^Flash Space: -> FlashSpace + +FlashSpace + ^\s+Available \(bytes\):\s+${available},$$ + ^\s+Comments\s+:\s+${comments}$$ + ^\s+Primary CMM:$$ +# ^. -> Error \ No newline at end of file From 95a9d3457bdd30f575e8055c4ce9a88b1173781a Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 11:59:30 +0200 Subject: [PATCH 16/82] Add `show vlan members` textfsm template Signed-off-by: jefvantongerloo --- .../textfsm_templates/aos_show_vlan_members.tfsm | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm diff --git a/suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm b/suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm new file mode 100644 index 0000000000..4e92545948 --- /dev/null +++ b/suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm @@ -0,0 +1,12 @@ +Value vlan (\d+) +Value port ((\d{1,2}\/)+\d*) +Value type (default|qtagged|dynamic|mirror|mirrored|spb|unpUntag|unpQntag) +Value status (inactive|forwarding|blocking) + +Start + ^\s*vlan\s+port\s+type\s+status\s*$$ + ^[-+\+]+\s*$$ -> MEMBERS + +MEMBERS + ^\s+${vlan}\s+${port}\s+${type}\s+${status}$$ -> Record +# ^. -> Error \ No newline at end of file From 66fc0311e0d8e1ec940837bd4d693118b98692f3 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 11:59:42 +0200 Subject: [PATCH 17/82] Add `show vlan` textfsm template Signed-off-by: jefvantongerloo --- .../config/textfsm_templates/aos_show_vlan.tfsm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 suzieq/config/textfsm_templates/aos_show_vlan.tfsm diff --git a/suzieq/config/textfsm_templates/aos_show_vlan.tfsm b/suzieq/config/textfsm_templates/aos_show_vlan.tfsm new file mode 100644 index 0000000000..69a83a5f5a --- /dev/null +++ b/suzieq/config/textfsm_templates/aos_show_vlan.tfsm @@ -0,0 +1,15 @@ +Value vlannumber (\d+) +Value vlantype (std|vstk|router|mvrp|ipmv|pvlan-p|pvlan-c|pvlan-i|fcoe|vcm) +Value vlanadmstatus (Ena|Dis) +Value vlanoperstatus (Ena|Dis) +Value vlanrouterstatus (Ena|Dis) +Value vlanmtu (\d+) +Value vlandescription ((\S+\s*)+\S+) + +Start + ^\s*vlan\s+type\s+admin\s+oper\s+ip\s+mtu\s+name\s$$ + ^[-+\+]+\s*$$ -> VLAN + +VLAN + ^\s*${vlannumber}\s+${vlantype}\s+${vlanadmstatus}\s+${vlanoperstatus}\s+${vlanrouterstatus}\s+${vlanmtu}\s+${vlandescription}\s*$$ -> Record +# ^. -> Error \ No newline at end of file From d6414c8af688f482da876e8a62d8c14ab0786a99 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:00:23 +0200 Subject: [PATCH 18/82] Add `aos` namespace/nos Signed-off-by: jefvantongerloo --- pytest.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/pytest.ini b/pytest.ini index 0c898b8ed1..f8ca54dd73 100644 --- a/pytest.ini +++ b/pytest.ini @@ -121,6 +121,7 @@ markers = parsing # namespaces/nosses + aos broken cumulus eos From 7362db511b82b25056944074d63d349a8b2ae487 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:02:27 +0200 Subject: [PATCH 19/82] Add Alcatel-Lucent Enterpise AOS8 support Signed-off-by: jefvantongerloo --- suzieq/config/arpnd.yml | 5 ++ suzieq/config/device.yml | 10 ++++ suzieq/config/interfaces.yml | 14 +++++ suzieq/config/inventory.yml | 11 ++++ suzieq/config/macs.yml | 6 +++ suzieq/config/routes.yml | 6 +++ suzieq/config/vlan.yml | 11 ++++ suzieq/poller/worker/nodes/node.py | 55 +++++++++++++++++-- suzieq/poller/worker/services/arpnd.py | 10 ++++ suzieq/poller/worker/services/device.py | 30 +++++++++++ suzieq/poller/worker/services/interfaces.py | 59 +++++++++++++++++++++ suzieq/poller/worker/services/inventory.py | 46 ++++++++++++++++ suzieq/poller/worker/services/macs.py | 34 ++++++++++++ suzieq/poller/worker/services/routes.py | 16 ++++++ suzieq/poller/worker/services/vlan.py | 33 ++++++++++++ suzieq/shared/utils.py | 2 +- tests/integration/test_update_data.py | 9 ++++ 17 files changed, 352 insertions(+), 5 deletions(-) diff --git a/suzieq/config/arpnd.yml b/suzieq/config/arpnd.yml index 57c38a80f6..ec348ac790 100644 --- a/suzieq/config/arpnd.yml +++ b/suzieq/config/arpnd.yml @@ -11,6 +11,11 @@ show-fields: - remote apply: + aos: + version: all + command: show arp + textfsm: textfsm_templates/aos_show_arp.tfsm + cumulus: version: all command: ip neigh show diff --git a/suzieq/config/device.yml b/suzieq/config/device.yml index 1e4c06db8d..2802782abe 100644 --- a/suzieq/config/device.yml +++ b/suzieq/config/device.yml @@ -10,6 +10,16 @@ show-fields: - address - bootupTimestamp apply: + aos: + version: all + command: + - command: show system + textfsm: textfsm_templates/aos_show_system.tfsm + # _entryType: system + # - command: show hardware-info + # textfsm: textfsm_templates/aos_show_hardware-info.tfsm + # _entryType: hardware + eos: version: all command: show version diff --git a/suzieq/config/interfaces.yml b/suzieq/config/interfaces.yml index 332493131d..b6fd05b888 100644 --- a/suzieq/config/interfaces.yml +++ b/suzieq/config/interfaces.yml @@ -13,6 +13,20 @@ show-fields: - ip6AddressList apply: + aos: + version: all + merge: false + command: + - command: show interfaces status + textfsm: textfsm_templates/aos_show_interfaces_status.tfsm + _entryType: interfaces_status + - command: show interfaces + textfsm: textfsm_templates/aos_show_interfaces.tfsm + _entryType: interfaces + - command: show vlan members + textfsm: textfsm_templates/aos_show_vlan_members.tfsm + _entryType: members + cumulus: version: all command: sudo vtysh -c "show int vrf all"; ip -d address show diff --git a/suzieq/config/inventory.yml b/suzieq/config/inventory.yml index 3baa809c23..80a4580534 100644 --- a/suzieq/config/inventory.yml +++ b/suzieq/config/inventory.yml @@ -11,6 +11,17 @@ show-fields: - description apply: + aos: + version: all + merge: False + command: + - command: show chassis + textfsm: textfsm_templates/aos_show_chassis.tfsm + _entryType: chassis + - command: show system + textfsm: textfsm_templates/aos_show_system.tfsm + _entryType: system + eos: version: all command: show inventory diff --git a/suzieq/config/macs.yml b/suzieq/config/macs.yml index 88bde3a676..36812056f0 100644 --- a/suzieq/config/macs.yml +++ b/suzieq/config/macs.yml @@ -14,6 +14,12 @@ show-fields: - flags apply: + aos: + version: all + merge: False + command: show mac-learning + textfsm: textfsm_templates/aos_show_mac_learning.tfsm + cumulus: version: all command: /sbin/bridge fdb show diff --git a/suzieq/config/routes.yml b/suzieq/config/routes.yml index 5a014517a6..b2d334b3d3 100644 --- a/suzieq/config/routes.yml +++ b/suzieq/config/routes.yml @@ -16,6 +16,12 @@ show-fields: - action apply: + aos: + version: all + merge: False + command: show ip routes + textfsm: textfsm_templates/aos_show_ip_routes.tfsm + cumulus: version: all command: ip route show table all diff --git a/suzieq/config/vlan.yml b/suzieq/config/vlan.yml index 7d8d60a886..2bad37e4a6 100644 --- a/suzieq/config/vlan.yml +++ b/suzieq/config/vlan.yml @@ -8,6 +8,17 @@ show-fields: - interfaces apply: + aos: + version: all + merge: False + command: + - command: show vlan + textfsm: textfsm_templates/aos_show_vlan.tfsm + _entryType: vlan + - command: show vlan members + textfsm: textfsm_templates/aos_show_vlan_members.tfsm + _entryType: members + cumulus: version: all command: /sbin/bridge -c vlan show diff --git a/suzieq/poller/worker/nodes/node.py b/suzieq/poller/worker/nodes/node.py index 2ab27cc6a5..c422334998 100644 --- a/suzieq/poller/worker/nodes/node.py +++ b/suzieq/poller/worker/nodes/node.py @@ -357,7 +357,9 @@ async def _parse_device_type_hostname(self, output, _) -> None: data = output[0]["data"] version_str = data - if 'Arista' in data or 'vEOS' in data: + if 'Alcatel-Lucent' in data: + devtype = "aos" + elif 'Arista' in data or 'vEOS' in data: devtype = "eos" elif "JUNOS " in data: model = re.search(r'Model:\s+(\S+)', data) @@ -389,7 +391,10 @@ async def _parse_device_type_hostname(self, output, _) -> None: f'{self.address}: Got unrecognized device show version: ' f'{data}') - if devtype.startswith("junos"): + if devtype == "aos": + # We'll fill in the hostname when the node gets re-init + hostname = None + elif devtype.startswith("junos"): hmatch = re.search(r'Hostname:\s+(\S+)\n', data) if hmatch: hostname = hmatch.group(1) @@ -494,7 +499,8 @@ async def _get_device_type_hostname(self): # setup time. show version works on most networking boxes and # hostnamectl on Linux systems. That's all we support today. await self._exec_cmd(self._parse_device_type_hostname, - ["show version", + ["show system", + "show version", "cat /etc/os-release && hostname"], None, 'text', only_one=True) @@ -516,7 +522,9 @@ def _set_devtype(self, devtype: str, version_str: str) -> None: if self.devtype != devtype: self.devtype = devtype - if self.devtype == "cumulus": + if self.devtype == "aos": + self.__class__ = AosNode + elif self.devtype == "cumulus": self.__class__ = CumulusNode elif self.devtype == "eos": self.__class__ = EosNode @@ -1277,6 +1285,45 @@ def _extract_nos_version(self, data) -> None: else: self.version = data['version'] +class AosNode(Node): + '''Alcatel AOS Node-specific implementation''' + + async def _parse_init_dev_data(self, output, cb_token) -> None: + + if output[0]['status'] == 0: + data = output[0]['data'] + + # Extract hostname + hname = re.search('\s+Name:\s+(\S+),', data) + hostname = hname.group(1) + self.logger.debug("AosNode hostname:\n %s", hostname) + + if hostname: + self._set_hostname(hostname) + + uptime_result = re.search('\s+Up Time:\s+(\d{1,3})\sdays\s(\d{1,2})\shours\s(\d{1,2})\sminutes\sand\s(\d{1,2})\sseconds,', data) + days = uptime_result.group(1).strip() + hours = uptime_result.group(2).strip() + minutes = uptime_result.group(3).strip() + seconds = uptime_result.group(4).strip() + upsecs = 86400 * int(days) + 3600 * int(hours) + \ + 60 * int(minutes) + int(seconds) + self.bootupTimestamp = int( + int(time.time()*1000) - float(upsecs)*1000) + self.logger.debug("AosNode uptime:\n %s", self.bootupTimestamp) + + self._extract_nos_version(data) + + async def _fetch_init_dev_data(self): + """Fill in the boot time of the node by executing certain cmds""" + await self._exec_cmd(self._parse_init_dev_data, + ["show system"], None, 'text') + + def _extract_nos_version(self, data: str) -> None: + version_result = re.search('((\d+\.){3,}.*?(?=,))', data) + version = version_result.group(1) + self.version = version + self.logger.debug("AosNode version:\n %s", version) class CumulusNode(Node): '''Cumulus Node specific implementation''' diff --git a/suzieq/poller/worker/services/arpnd.py b/suzieq/poller/worker/services/arpnd.py index 0045a9aa57..20c328d712 100644 --- a/suzieq/poller/worker/services/arpnd.py +++ b/suzieq/poller/worker/services/arpnd.py @@ -10,6 +10,16 @@ class ArpndService(Service): """arpnd service. Different class because minor munging of output""" + def _clean_aos_data(self, processed_data, _): + + entry, = processed_data + + entry['ipAddress'] = entry.get('ip_address', '-1') + entry['macaddr'] = entry.get('hardware_addr', '-1') + entry['oif'] = entry.get('port', '-1') # or 'port' for physical interface + + return processed_data + def _clean_linux_data(self, processed_data, _): for entry in processed_data: entry["remote"] = entry["remote"] == "offload" diff --git a/suzieq/poller/worker/services/device.py b/suzieq/poller/worker/services/device.py index 2629b88586..b5016334dd 100644 --- a/suzieq/poller/worker/services/device.py +++ b/suzieq/poller/worker/services/device.py @@ -26,6 +26,36 @@ def _common_data_cleaner(self, processed_data, raw_data): return processed_data + def _clean_aos_data(self, processed_data, raw_data): + + entry, = processed_data + + description_result = re.search('^Alcatel-Lucent\sEnterprise\s(\S+)\s((\d+\.){3,}.*?(?=,)),\s\w+\s\d{1,2},\s\d{4,}.', entry['description']) + model = description_result.group(1) + version = description_result.group(2) + + # sample output: '0 days 0 hours 3 minutes and 28 seconds' + uptime_result = re.search('(\d+) days (\d{1,2}) hours (\d{1,2}) minutes and (\d{1,2}) seconds', entry['up_time']) + days = uptime_result.group(1) + hours = uptime_result.group(2) + minutes = uptime_result.group(3) + seconds = uptime_result.group(4) + + upsecs = (24*3600*int(days) + + 3600*int(hours) + + 60*int(minutes) + + int(seconds)) + + if upsecs: + bootupTimestamp = int(int(raw_data[0]["timestamp"])/1000 - upsecs) + + entry['vendor'] = "Alcatel-Lucent Enterprise" + entry['model'] = model + entry['version'] = version + entry['bootupTimestamp'] = bootupTimestamp + + return self._common_data_cleaner(processed_data, raw_data) + def _clean_linux_data(self, processed_data, raw_data): for entry in processed_data: diff --git a/suzieq/poller/worker/services/interfaces.py b/suzieq/poller/worker/services/interfaces.py index 2932b0d8ab..d6c970b9ac 100644 --- a/suzieq/poller/worker/services/interfaces.py +++ b/suzieq/poller/worker/services/interfaces.py @@ -65,6 +65,65 @@ def _textfsm_valid_speed_value(self, entry): """Return speed value or a missing value for textfsm retrieved data""" return self._speed_field_check(entry, '') + def _clean_aos_data(self, processed_data, _): + + entry_new = [] + entry_interfaces_status = [] + entry_interfaces = [] + entry_vlan_members = [] + + entry_interfaces_status = [item for item in processed_data if item.get('_entryType') == 'interfaces_status'] + entry_interfaces = [item for item in processed_data if item.get('_entryType') == 'interfaces'] + entry_vlan_members = [item for item in processed_data if item.get('_entryType') == 'members'] + + for interfaces_status, interfaces in zip(entry_interfaces_status, entry_interfaces): + + entry_dict = {} + + adminState = interfaces_status.get('admin_status', -1) + ifname = interfaces_status.get('chassis_slot_port', -1) + interfaceMac = interfaces.get('mac_address', -1) + mtu = interfaces.get('long_frame_size', -1) + numChanges = interfaces.get('number_of_status_change', -1) + reason = interfaces.get('port_down_violation_reason', -1) + speed = interfaces_status.get('detected_speed', -1) + state = interfaces.get('operation_status', -1) + type = interfaces.get('type', -1) + + vlans = [vlan_member['vlan'] for vlan_member in entry_vlan_members if vlan_member['port'] == ifname if vlan_member['type'] == 'default'] + vlanList = [vlan_member['vlan'] for vlan_member in entry_vlan_members if vlan_member['port'] == ifname if vlan_member['type'] == 'unpUntag'] + + if len(vlans) < 1: + vlan = "None" + else: + vlan = vlans[0] + + if len(vlanList) < 1: + vlanList = "None" + + if adminState == "en": + adminState = "up" + else: + adminState = "down" + + entry_dict = { + 'adminState': adminState, + 'ifname': ifname, + 'interfaceMac': interfaceMac, + 'mtu': mtu, + 'numChanges': numChanges, + 'reason': reason, + 'speed': speed, + 'state': state, + 'type': type, + 'vlan': vlan, + 'vlanList' : vlanList + } + + entry_new.append(entry_dict) + + return entry_new + def _clean_eos_data(self, processed_data, _): """Clean up EOS interfaces output""" diff --git a/suzieq/poller/worker/services/inventory.py b/suzieq/poller/worker/services/inventory.py index 847d6c6d06..dd58b1b068 100644 --- a/suzieq/poller/worker/services/inventory.py +++ b/suzieq/poller/worker/services/inventory.py @@ -11,6 +11,52 @@ class InventoryService(Service): def _clean_data_common(self, processed_data, _): return processed_data + def _clean_aos_data(self, processed_data, _): + + entry_new = [] + entry_chassis = [] + entry_system = [] + + entry_chassis = [item for item in processed_data if item.get('_entryType') == 'chassis'] + entry_system = [item for item in processed_data if item.get('_entryType') == 'system'] + + # extract single list item (dict) + system, = entry_system + + for index, entry in enumerate(entry_chassis): + + entry_dict = {} + + model = entry.get('model_name', -1) + serial = entry.get('serial_number', -1) + partNum = entry.get('part_number', -1) + vendor = "Alcatel-Lucent Enterprise" + type = entry.get('description', -1) + partType = entry.get('model_type', -1) + + version_result = re.search('(\d+\.){3,}.*?(?=,)', system.get('description')) + version = version_result.group(0) + + if entry.get('admin_status') == 'POWER ON' and entry.get('operational_status') == 'UP': + status = 'up' + else: + status = 'down' + + entry_dict = { + 'model': model, + 'status': status, + 'serial': serial, + 'partNum': partNum, + 'vendor': vendor, + 'type': type, + 'partType': partType, + 'version': version, + } + + entry_new.append(entry_dict) + + return entry_new + def _clean_eos_data(self, processed_data, _): new_data = [] for entry in processed_data: diff --git a/suzieq/poller/worker/services/macs.py b/suzieq/poller/worker/services/macs.py index 0bed8260f1..00027ba3d3 100644 --- a/suzieq/poller/worker/services/macs.py +++ b/suzieq/poller/worker/services/macs.py @@ -52,6 +52,40 @@ def _add_mackey_protocol(self, entry): else: entry['mackey'] = '0' + def _clean_aos_data(self, processed_data, _): + + entry_new = [] + + for entry in processed_data: + + entry_dict = {} + + protocol = entry.get('domain', -1) + vlan = entry.get('id', -1) + macaddr = entry.get('mac_address', -1) + #Where does this parameter go? + entry.get('type', -1) + flags = entry.get('operation', -1) + oif = entry.get('interface', -1) + + if entry.get('vlanadmstatus') == 'Ena' and entry.get('vlanoperstatus') == 'Ena': + state = 'active' + else: + state = 'suspended' + + entry_dict = { + 'protocol': protocol, + 'vlan': vlan, + 'macaddr': macaddr, + 'flags': flags, + 'oif': oif, + 'type': type + } + + entry_new.append(entry_dict) + + return entry_new + def _clean_linux_data(self, processed_data, _): drop_indices = [] macentries = {} diff --git a/suzieq/poller/worker/services/routes.py b/suzieq/poller/worker/services/routes.py index 4ea057b53d..acec60522e 100644 --- a/suzieq/poller/worker/services/routes.py +++ b/suzieq/poller/worker/services/routes.py @@ -36,6 +36,22 @@ def _common_data_cleaner(self, processed_data, _): return processed_data + def _clean_aos_data(self, processed_data, _): + + entry_new = [] + + for entry in processed_data: + + entry_dict = { + 'prefix': entry['dest_addr'], + 'nexthopIps': [entry['gateway_addr']], + 'protocol': entry['protocol'], + } + + entry_new.append(entry_dict) + + return entry_new + def _clean_eos_data(self, processed_data, _): '''Massage EVPN routes''' for entry in processed_data: diff --git a/suzieq/poller/worker/services/vlan.py b/suzieq/poller/worker/services/vlan.py index c33d3857ce..38167322a3 100644 --- a/suzieq/poller/worker/services/vlan.py +++ b/suzieq/poller/worker/services/vlan.py @@ -15,6 +15,39 @@ def clean_json_input(self, data): return data['data'] + def _clean_aos_data(self, processed_data, _): + + entry_new = [] + entry_vlan = [] + entry_vlan_members = [] + + entry_vlan = [item for item in processed_data if item.get('_entryType') == 'vlan'] + entry_vlan_members = [item for item in processed_data if item.get('_entryType') == 'members'] + + for entry in entry_vlan: + + entry_dict = {} + + vlan = entry.get('vlannumber', -1) + vlanName = entry.get('vlandescription', -1) + + interfaces = [member.get('port') for member in entry_vlan_members if member.get('vlan') == vlan] + + if entry.get('vlanadmstatus') == 'Ena' and entry.get('vlanoperstatus') == 'Ena': + state = 'active' + else: + state = 'suspended' + + entry_dict = {'vlanName': vlanName, + 'state': state, + 'vlan': vlan, + 'interfaces': interfaces, + } + + entry_new.append(entry_dict) + + return entry_new + def _clean_eos_data(self, processed_data, _): '''Massage the interface output''' diff --git a/suzieq/shared/utils.py b/suzieq/shared/utils.py index b9ecef904a..11ab7a1869 100644 --- a/suzieq/shared/utils.py +++ b/suzieq/shared/utils.py @@ -754,7 +754,7 @@ def init_logger(logname: str, def known_devtypes() -> list: """Returns the list of known dev types""" - return(['cumulus', 'eos', 'iosxe', 'iosxr', 'ios', 'junos-mx', 'junos-qfx', + return(['aos', 'cumulus', 'eos', 'iosxe', 'iosxr', 'ios', 'junos-mx', 'junos-qfx', 'junos-qfx10k', 'junos-ex', 'junos-es', 'linux', 'nxos', 'sonic', 'panos']) diff --git a/tests/integration/test_update_data.py b/tests/integration/test_update_data.py index 4c60ece59e..2bf3ab2fbe 100644 --- a/tests/integration/test_update_data.py +++ b/tests/integration/test_update_data.py @@ -321,6 +321,15 @@ def _update_test_data_common_fn(self, nos, tmp_path, device_cnt): if os.environ.get('SUZIEQ_POLLER', None) != 'data': update_sqcmds(glob.glob(f'{sqcmds_dir}/{nos}-samples/*.yml')) + @pytest.mark.test_update + @pytest.mark.update_data + @pytest.mark.aos + @pytest.mark.skipif(not os.environ.get('SUZIEQ_POLLER', None), + reason='Not updating data') + def test_update_aos_data(self, tmp_path): + '''Update AOS test data''' + self._update_test_data_common_fn('aos', tmp_path, '2') + @pytest.mark.test_update @pytest.mark.update_data @pytest.mark.eos From 609886ea4a1d32d00a4ecb341a08833707824ddd Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:02:58 +0200 Subject: [PATCH 20/82] Add vlan.yml Signed-off-by: jefvantongerloo --- tests/integration/sqcmds/aos-samples/vlan.yml | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tests/integration/sqcmds/aos-samples/vlan.yml diff --git a/tests/integration/sqcmds/aos-samples/vlan.yml b/tests/integration/sqcmds/aos-samples/vlan.yml new file mode 100644 index 0000000000..b6327403a5 --- /dev/null +++ b/tests/integration/sqcmds/aos-samples/vlan.yml @@ -0,0 +1,51 @@ +description: 'Testing verbs for vlan: show summarize unique' +tests: +- command: vlan show --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: vlan show aos + output: '[{"namespace": "aos", "hostname": "net-lab-swi-001-1", "vlanName": "VLAN + 1", "state": "suspended", "interfaces": ["1/1/1", "1/1/2", "1/1/3", "1/1/4", "1/1/5", + "1/1/6", "1/1/7", "1/1/8", "1/1/9", "1/1/10", "1/1/11", "1/1/12", "1/1/13", "1/1/14", + "1/1/15", "1/1/16", "1/1/17", "1/1/18", "1/1/19", "1/1/20", "1/1/21", "1/1/22", + "1/1/23", "1/1/24", "1/1/26", "1/1/27", "1/1/28"], "vlan": 1, "timestamp": 1656668007924}, + {"namespace": "aos", "hostname": "net-lab-swi-001-1", "vlanName": "LAB-zone-mgmt", + "state": "active", "interfaces": ["0/1"], "vlan": 2099, "timestamp": 1656668007924}, + {"namespace": "aos", "hostname": "net-lab-swi-001-1", "vlanName": "VCM IPC", "state": + "suspended", "interfaces": [], "vlan": 4094, "timestamp": 1656668007924}, {"namespace": + "aos", "hostname": "net-lab-swi-dist", "vlanName": "VLAN 1", "state": "active", + "interfaces": ["1/1/2", "1/1/3", "1/1/4", "1/1/5", "1/1/6", "1/1/7", "1/1/8", + "1/1/9", "1/1/10", "1/1/11", "1/1/12", "1/1/13", "1/1/14", "1/1/15", "1/1/16", + "1/1/17", "1/1/18", "1/1/19", "1/1/20", "1/1/21", "1/1/22", "1/1/23", "1/1/24", + "1/1/25", "1/1/26", "1/1/27", "1/1/28", "1/1/29", "1/1/30", "0/19"], "vlan": 1, + "timestamp": 1656668008637}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "vlanName": "VLAN 2000", "state": "active", "interfaces": ["0/1"], "vlan": 2000, + "timestamp": 1656668008637}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "vlanName": "VLAN 2001", "state": "active", "interfaces": ["0/1"], "vlan": 2001, + "timestamp": 1656668008637}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "vlanName": "VLAN 2002", "state": "active", "interfaces": ["0/1"], "vlan": 2002, + "timestamp": 1656668008637}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "vlanName": "VLAN 2003", "state": "active", "interfaces": ["0/1"], "vlan": 2003, + "timestamp": 1656668008637}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "vlanName": "VLAN 2004", "state": "active", "interfaces": ["0/1"], "vlan": 2004, + "timestamp": 1656668008637}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "vlanName": "VLAN 2008", "state": "active", "interfaces": ["0/1"], "vlan": 2008, + "timestamp": 1656668008637}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "vlanName": "VLAN 2012", "state": "active", "interfaces": ["0/1"], "vlan": 2012, + "timestamp": 1656668008637}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "vlanName": "VLAN 2016", "state": "active", "interfaces": ["0/1"], "vlan": 2016, + "timestamp": 1656668008637}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "vlanName": "LAB-zone-mgmt", "state": "active", "interfaces": ["0/1", "0/19"], + "vlan": 2099, "timestamp": 1656668008637}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "vlanName": "VCM IPC", "state": "suspended", "interfaces": [], "vlan": 4094, "timestamp": + 1656668008637}]' +- command: vlan summarize --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: vlan show aos + output: '{"aos": {"deviceCnt": 2, "uniqueVlanCnt": 11, "activeVlanCnt": 10, "suspendedVlanCnt": + 0, "vlanPerDeviceStat": [3, 11, 7.0], "ifPerVlanStat": [1, 2, 1.0]}}' +- command: vlan unique --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: vlan show aos + output: '[{"vlan": 1}, {"vlan": 2000}, {"vlan": 2001}, {"vlan": 2002}, {"vlan": + 2003}, {"vlan": 2004}, {"vlan": 2008}, {"vlan": 2012}, {"vlan": 2016}, {"vlan": + 2099}, {"vlan": 4094}]' From 03c28630787a7d8a65d129f7b6ffaf5d764e5209 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:03:10 +0200 Subject: [PATCH 21/82] Add route.yml Signed-off-by: jefvantongerloo --- .../integration/sqcmds/aos-samples/route.yml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tests/integration/sqcmds/aos-samples/route.yml diff --git a/tests/integration/sqcmds/aos-samples/route.yml b/tests/integration/sqcmds/aos-samples/route.yml new file mode 100644 index 0000000000..215a2de679 --- /dev/null +++ b/tests/integration/sqcmds/aos-samples/route.yml @@ -0,0 +1,34 @@ +description: 'Testing verbs for route: show summarize unique' +tests: +- command: route show --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: route show aos + output: '[{"namespace": "aos", "hostname": "net-lab-swi-001-1", "vrf": "", "prefix": + "0.0.0.0/0", "nexthopIps": ["10.20.99.1"], "oifs": [], "protocol": "STATIC", "source": + "", "preference": 0, "ipvers": 0, "action": "", "timestamp": 1656668007417}, {"namespace": + "aos", "hostname": "net-lab-swi-001-1", "vrf": "", "prefix": "10.20.99.0/24", + "nexthopIps": ["10.20.99.11"], "oifs": [], "protocol": "LOCAL", "source": "", + "preference": 0, "ipvers": 0, "action": "", "timestamp": 1656668007417}, {"namespace": + "aos", "hostname": "net-lab-swi-001-1", "vrf": "", "prefix": "127.0.0.1/32", "nexthopIps": + ["127.0.0.1"], "oifs": [], "protocol": "LOCAL", "source": "", "preference": 0, + "ipvers": 0, "action": "", "timestamp": 1656668007417}, {"namespace": "aos", "hostname": + "net-lab-swi-dist", "vrf": "", "prefix": "0.0.0.0/0", "nexthopIps": ["10.20.99.1"], + "oifs": [], "protocol": "STATIC", "source": "", "preference": 0, "ipvers": 0, + "action": "", "timestamp": 1656668007948}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "vrf": "", "prefix": "10.20.99.0/24", "nexthopIps": ["10.20.99.10"], "oifs": [], + "protocol": "LOCAL", "source": "", "preference": 0, "ipvers": 0, "action": "", + "timestamp": 1656668007948}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "vrf": "", "prefix": "127.0.0.1/32", "nexthopIps": ["127.0.0.1"], "oifs": [], + "protocol": "LOCAL", "source": "", "preference": 0, "ipvers": 0, "action": "", + "timestamp": 1656668007948}]' +- command: route summarize --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: route show aos + output: '{"aos": {"deviceCnt": 2, "uniquePrefixCnt": 3, "uniqueVrfsCnt": 1, "ifRoutesCnt": + 0, "hostRoutesCnt": 2, "totalV4RoutesinNs": 0, "totalV6RoutesinNs": 0, "routingProtocolCnt": + {"LOCAL": 4, "STATIC": 2}, "nexthopCnt": {"1": 6}, "routesPerHostStat": [3, 3, + 3.0], "routesperVrfStat": [6, 6, 6.0], "deviceWithNoDefRoute": true}}' +- command: route unique --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: route show aos + output: '[{"prefix": "0.0.0.0/0"}, {"prefix": "10.20.99.0/24"}, {"prefix": "127.0.0.1/32"}]' From e1baa0f98063295e3d6c797113482eb290525958 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:03:19 +0200 Subject: [PATCH 22/82] Add mac.yml Signed-off-by: jefvantongerloo --- tests/integration/sqcmds/aos-samples/mac.yml | 33 ++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 tests/integration/sqcmds/aos-samples/mac.yml diff --git a/tests/integration/sqcmds/aos-samples/mac.yml b/tests/integration/sqcmds/aos-samples/mac.yml new file mode 100644 index 0000000000..392c848560 --- /dev/null +++ b/tests/integration/sqcmds/aos-samples/mac.yml @@ -0,0 +1,33 @@ +description: 'Testing verbs for mac: show summarize unique' +tests: +- command: mac show --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: mac show aos + output: '[{"namespace": "aos", "hostname": "net-lab-swi-001-1", "vlan": 2099, "macaddr": + "00:09:0f:09:01:26", "oif": "0/1", "remoteVtepIp": "", "bd": "", "flags": "bridging", + "timestamp": 1656668007300}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", + "vlan": 2099, "macaddr": "94:24:e1:37:e6:9f", "oif": "0/1", "remoteVtepIp": "", + "bd": "", "flags": "bridging", "timestamp": 1656668007300}, {"namespace": "aos", + "hostname": "net-lab-swi-001-1", "vlan": 2099, "macaddr": "94:24:e1:37:e6:a6", + "oif": "0/1", "remoteVtepIp": "", "bd": "", "flags": "bridging", "timestamp": + 1656668007300}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "vlan": 1, + "macaddr": "94:24:e1:83:4f:6b", "oif": "0/19", "remoteVtepIp": "", "bd": "", "flags": + "bridging", "timestamp": 1656668007879}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "vlan": 2099, "macaddr": "94:24:e1:35:6c:27", "oif": "0/1", "remoteVtepIp": "", + "bd": "", "flags": "bridging", "timestamp": 1656668007879}, {"namespace": "aos", + "hostname": "net-lab-swi-dist", "vlan": 2099, "macaddr": "94:24:e1:35:6c:46", + "oif": "0/1", "remoteVtepIp": "", "bd": "", "flags": "bridging", "timestamp": + 1656668007879}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "vlan": 2099, + "macaddr": "00:09:0f:09:01:26", "oif": "0/19", "remoteVtepIp": "", "bd": "", "flags": + "bridging", "timestamp": 1656668007879}]' +- command: mac summarize --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: mac show eos + output: '{"aos": {"deviceCnt": 2, "totalMacsinNSCnt": 7, "uniqueMacCnt": 6, "uniqueVlanperHostStat": + [1, 2, 1.5]}}' +- command: mac unique --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: mac show eos + output: '[{"macaddr": "00:09:0f:09:01:26"}, {"macaddr": "94:24:e1:35:6c:27"}, {"macaddr": + "94:24:e1:35:6c:46"}, {"macaddr": "94:24:e1:37:e6:9f"}, {"macaddr": "94:24:e1:37:e6:a6"}, + {"macaddr": "94:24:e1:83:4f:6b"}]' From bafb8c1114da4c5ecf3e15f7124a13044145670e Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:04:05 +0200 Subject: [PATCH 23/82] Add interface.yml Signed-off-by: jefvantongerloo --- .../sqcmds/aos-samples/interface.yml | 208 ++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 tests/integration/sqcmds/aos-samples/interface.yml diff --git a/tests/integration/sqcmds/aos-samples/interface.yml b/tests/integration/sqcmds/aos-samples/interface.yml new file mode 100644 index 0000000000..cfe994f544 --- /dev/null +++ b/tests/integration/sqcmds/aos-samples/interface.yml @@ -0,0 +1,208 @@ +description: 'Testing verbs for interface: show summarize unique' +tests: +- command: interface show --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: interface show aos + output: '[{"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": "1/1/1", + "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, "vlan": + 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": 1656668007878}, + {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": "1/1/30", "state": + "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, "vlan": 0, "master": + "", "ipAddressList": [], "ip6AddressList": [], "timestamp": 1656668007878}, {"namespace": + "aos", "hostname": "net-lab-swi-001-1", "ifname": "1/1/29", "state": "down", "adminState": + "up", "type": "Ethernet", "mtu": 9216, "vlan": 0, "master": "", "ipAddressList": + [], "ip6AddressList": [], "timestamp": 1656668007878}, {"namespace": "aos", "hostname": + "net-lab-swi-001-1", "ifname": "1/1/28", "state": "down", "adminState": "up", + "type": "Ethernet", "mtu": 9216, "vlan": 1, "master": "", "ipAddressList": [], + "ip6AddressList": [], "timestamp": 1656668007878}, {"namespace": "aos", "hostname": + "net-lab-swi-001-1", "ifname": "1/1/27", "state": "down", "adminState": "up", + "type": "Ethernet", "mtu": 9216, "vlan": 1, "master": "", "ipAddressList": [], + "ip6AddressList": [], "timestamp": 1656668007878}, {"namespace": "aos", "hostname": + "net-lab-swi-001-1", "ifname": "1/1/26", "state": "down", "adminState": "up", + "type": "Ethernet", "mtu": 9216, "vlan": 1, "master": "", "ipAddressList": [], + "ip6AddressList": [], "timestamp": 1656668007878}, {"namespace": "aos", "hostname": + "net-lab-swi-001-1", "ifname": "1/1/25", "state": "up", "adminState": "up", "type": + "Ethernet", "mtu": 9216, "vlan": 0, "master": "", "ipAddressList": [], "ip6AddressList": + [], "timestamp": 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", + "ifname": "1/1/24", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": + 9216, "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/22", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/21", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/20", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/19", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/18", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/17", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/16", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/23", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/14", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/15", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/2", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/3", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/4", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/6", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/7", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/5", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/9", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/10", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/11", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/12", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/13", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": + "1/1/8", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668007878}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/19", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/24", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/20", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/21", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/22", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/23", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/25", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/32", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 0, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/27", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/28", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/29", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/30", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/31", "state": "up", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 0, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/18", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/26", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/17", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/2", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/15", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/1", "state": "up", "adminState": "up", "type": "Ethernet", "mtu": 9216, "vlan": + 0, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": 1656668008721}, + {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": "1/1/33", "state": + "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, "vlan": 0, "master": + "", "ipAddressList": [], "ip6AddressList": [], "timestamp": 1656668008721}, {"namespace": + "aos", "hostname": "net-lab-swi-dist", "ifname": "1/1/3", "state": "down", "adminState": + "up", "type": "Ethernet", "mtu": 9216, "vlan": 1, "master": "", "ipAddressList": + [], "ip6AddressList": [], "timestamp": 1656668008721}, {"namespace": "aos", "hostname": + "net-lab-swi-dist", "ifname": "1/1/4", "state": "down", "adminState": "up", "type": + "Ethernet", "mtu": 9216, "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": + [], "timestamp": 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "ifname": "1/1/5", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": + 9216, "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/6", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/16", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/7", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/9", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/10", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/11", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/12", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/13", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/14", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/8", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": + "1/1/34", "state": "down", "adminState": "up", "type": "Ethernet", "mtu": 9216, + "vlan": 0, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": + 1656668008721}]' +- command: interface summarize --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: interface show aos + output: '{"aos": {"deviceCnt": 2, "interfaceCnt": 64, "devicesWithL2Cnt": 0, "devicesWithVxlanCnt": + 0, "ifDownCnt": 61, "ifAdminDownCnt": 0, "ifWithMultipleIPCnt": 0, "uniqueMTUCnt": + {"9216": 64}, "uniqueIfTypesCnt": {"Ethernet": 64}, "speedCnt": {"0": 61, "1000": + 2, "10000": 1}, "ifChangesStat": [0, 15, 0.0], "ifPerDeviceStat": [30, 34, 32.0], + "uniqueIPv4AddrCnt": 0, "uniqueIPv6AddrCnt": 0}}' +- command: interface unique --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: interface show aos + output: '[{"type": "Ethernet"}]' From 3d5ed8652ea8b5d8ed3ec31205344fefe7c13f3c Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:04:15 +0200 Subject: [PATCH 24/82] Add device.yml Signed-off-by: jefvantongerloo --- .../integration/sqcmds/aos-samples/device.yml | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tests/integration/sqcmds/aos-samples/device.yml diff --git a/tests/integration/sqcmds/aos-samples/device.yml b/tests/integration/sqcmds/aos-samples/device.yml new file mode 100644 index 0000000000..3a15b8ed48 --- /dev/null +++ b/tests/integration/sqcmds/aos-samples/device.yml @@ -0,0 +1,23 @@ +description: 'Testing verbs for device: show summarize unique' +tests: +- command: device show --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: device show aos + output: '[{"namespace": "aos", "hostname": "net-lab-swi-001-1", "model": "OS6560-P24X4", + "version": "8.6.289.R01 GA", "vendor": "Alcatel-Lucent Enterprise", "architecture": + "", "status": "alive", "address": "10.20.99.11", "bootupTimestamp": 1623163238.0, + "timestamp": 1656668007847}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "model": "OS6860E-U28", "version": "8.6.289.R01 GA", "vendor": "Alcatel-Lucent + Enterprise", "architecture": "", "status": "alive", "address": "10.20.99.10", + "bootupTimestamp": 1656441950.0, "timestamp": 1656668008673}]' +- command: device summarize --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: device show aos + output: '{"aos": {"deviceCnt": 2, "downDeviceCnt": 0, "unpolledDeviceCnt": 0, "vendorCnt": + {"Alcatel-Lucent Enterprise": 2}, "modelCnt": {"OS6560-P24X4": 1, "OS6860E-U28": + 1}, "archCnt": {"": 2}, "versionCnt": {"8.6.289.R01 GA": 2}, "upTimeStat": [226058673, + 33504769847, 16865414260]}}' +- command: device unique --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: device show aos + output: '[{"model": "OS6560-P24X4"}, {"model": "OS6860E-U28"}]' From af53570d305d3f398bbc6d995e4c580492b61d74 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:04:25 +0200 Subject: [PATCH 25/82] Add arpnd.yml Signed-off-by: jefvantongerloo --- .../integration/sqcmds/aos-samples/arpnd.yml | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 tests/integration/sqcmds/aos-samples/arpnd.yml diff --git a/tests/integration/sqcmds/aos-samples/arpnd.yml b/tests/integration/sqcmds/aos-samples/arpnd.yml new file mode 100644 index 0000000000..8f08a3f0e2 --- /dev/null +++ b/tests/integration/sqcmds/aos-samples/arpnd.yml @@ -0,0 +1,22 @@ +description: 'Testing verbs for arpnd: show summarize unique' +tests: +- command: arpnd show --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: arpnd show aos + output: '[{"namespace": "aos", "hostname": "net-lab-swi-001-1", "ipAddress": "10.20.99.1", + "oif": "0/1", "macaddr": "00:09:0f:09:01:26", "state": "", "remote": false, "timestamp": + 1656668007429}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ipAddress": + "10.20.99.1", "oif": "0/19", "macaddr": "00:09:0f:09:01:26", "state": "", "remote": + false, "timestamp": 1656668007923}]' +- command: arpnd summarize --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: arpnd show aos + output: '{"aos": {"deviceCnt": 2, "arpNdEntriesCnt": 2, "uniqueArpEntriesCnt": 1, + "uniqueOifCnt": 2, "arpEntriesCnt": 2, "v6NDEntriesCnt": 0, "v6NDGlobalEntriesCnt": + 0, "v6NDLLAEntriesCnt": 0, "remoteV4EntriesCnt": 0, "staticV4EntriesCnt": 0, "remoteV6EntriesCnt": + 0, "staticV6EntriesCnt": 0, "failedEntriesCnt": 0, "failedV4EntriesCnt": 0, "failedV6EntriesCnt": + 0}}' +- command: arpnd unique --format=json --namespace=aos + data-directory: tests/data/parquet/ + marks: arpnd show aos + output: '[{"hostname": "net-lab-swi-001-1"}, {"hostname": "net-lab-swi-dist"}]' From e50fe67d3f5713696ef530e9dbf2d652ee7c52a5 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:04:40 +0200 Subject: [PATCH 26/82] Add arpnd.output Signed-off-by: jefvantongerloo --- .../integration/sqcmds/aos-input/arpnd.output | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tests/integration/sqcmds/aos-input/arpnd.output diff --git a/tests/integration/sqcmds/aos-input/arpnd.output b/tests/integration/sqcmds/aos-input/arpnd.output new file mode 100644 index 0000000000..7c7f355cc0 --- /dev/null +++ b/tests/integration/sqcmds/aos-input/arpnd.output @@ -0,0 +1,25 @@ +[ + { + "status": 0, + "timestamp": 1656668007429, + "cmd": "show arp", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-001-1", + "address": "10.20.99.11", + "version": "8.6.289.R01 GA", + "data": "\nTotal 1 arp entries\n Flags (P=Proxy, A=Authentication, V=VRRP, B=BFD, H=HAVLAN, I=INTF, M=Managed)\n\n IP Addr Hardware Addr Type Flags Port Interface Name\n-----------------+-------------------+----------+-------+-----------------+-----------+---------------------------------\n 10.20.99.1 00:09:0f:09:01:26 DYNAMIC 0/1 vlan2099ip \n\n\n" + } +][ + { + "status": 0, + "timestamp": 1656668007923, + "cmd": "show arp", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-dist", + "address": "10.20.99.10", + "version": "8.6.289.R01 GA", + "data": "\nTotal 1 arp entries\n Flags (P=Proxy, A=Authentication, V=VRRP, B=BFD, H=HAVLAN, I=INTF, M=Managed)\n\n IP Addr Hardware Addr Type Flags Port Interface Name\n-----------------+-------------------+----------+-------+-----------------+-----------+---------------------------------\n 10.20.99.1 00:09:0f:09:01:26 DYNAMIC 0/19 vlan2099 \n\n\n" + } +] \ No newline at end of file From 9d4235ee6c1143a7d3fb0161008f55b67a9e3b7f Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:04:51 +0200 Subject: [PATCH 27/82] Add device.output Signed-off-by: jefvantongerloo --- .../sqcmds/aos-input/device.output | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tests/integration/sqcmds/aos-input/device.output diff --git a/tests/integration/sqcmds/aos-input/device.output b/tests/integration/sqcmds/aos-input/device.output new file mode 100644 index 0000000000..edf4fce864 --- /dev/null +++ b/tests/integration/sqcmds/aos-input/device.output @@ -0,0 +1,25 @@ +[ + { + "status": 0, + "timestamp": 1656668007847, + "cmd": "show system", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-001-1", + "address": "10.20.99.11", + "version": "8.6.289.R01 GA", + "data": "System:\n Description: Alcatel-Lucent Enterprise OS6560-P24X4 8.6.289.R01 GA, July 13, 2019.,\n Object ID: 1.3.6.1.4.1.6486.801.1.1.2.1.14.1.10,\n Up Time: 387 days 18 hours 52 minutes and 49 seconds,\n Contact: Alcatel-Lucent, http://enterprise.alcatel-lucent.com,\n Name: net-lab-swi-001-1,\n Location: Unknown,\n Services: 78,\n Date & Time: MON MAY 27 2030 12:50:45 (UTC)\nFlash Space:\n Primary CMM:\n Available (bytes): 456454144,\n Comments : None\n\n" + } +][ + { + "status": 0, + "timestamp": 1656668008673, + "cmd": "show system", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-dist", + "address": "10.20.99.10", + "version": "8.6.289.R01 GA", + "data": "System:\n Description: Alcatel-Lucent Enterprise OS6860E-U28 8.6.289.R01 GA, July 13, 2019.,\n Object ID: 1.3.6.1.4.1.6486.801.1.1.2.1.11.1.9,\n Up Time: 2 days 14 hours 47 minutes and 38 seconds,\n Contact: Alcatel-Lucent, http://enterprise.alcatel-lucent.com,\n Name: net-lab-swi-dist,\n Location: Unknown,\n Services: 78,\n Date & Time: FRI JUL 01 2022 09:33:28 (UTC)\nFlash Space:\n Primary CMM:\n Available (bytes): 1299349504,\n Comments : None\n\n" + } +] \ No newline at end of file From 1baaabb37118611528cff0a0a54b72afedff3b26 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:05:01 +0200 Subject: [PATCH 28/82] Add inventory.output Signed-off-by: jefvantongerloo --- .../sqcmds/aos-input/inventory.output | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 tests/integration/sqcmds/aos-input/inventory.output diff --git a/tests/integration/sqcmds/aos-input/inventory.output b/tests/integration/sqcmds/aos-input/inventory.output new file mode 100644 index 0000000000..12cd3bde37 --- /dev/null +++ b/tests/integration/sqcmds/aos-input/inventory.output @@ -0,0 +1,47 @@ +[ + { + "status": 0, + "timestamp": 1656668007438, + "cmd": "show chassis", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-001-1", + "address": "10.20.99.11", + "version": "8.6.289.R01 GA", + "data": "Local Chassis ID 1 (Master)\n Model Name: OS6560-P24X4,\n Module Type: 0x90e220b,\n Description: Chassis,\n Part Number: 904036-90,\n Hardware Revision: 07,\n Serial Number: Y5181962,\n Manufacture Date: Dec 22 2019,\n Admin Status: POWER ON,\n Operational Status: UP,\n Number Of Resets: 1,\n MAC Address: 94:24:e1:35:6c:27\n\n\n" + }, + { + "status": 0, + "timestamp": 1656668007811, + "cmd": "show system", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-001-1", + "address": "10.20.99.11", + "version": "8.6.289.R01 GA", + "data": "System:\n Description: Alcatel-Lucent Enterprise OS6560-P24X4 8.6.289.R01 GA, July 13, 2019.,\n Object ID: 1.3.6.1.4.1.6486.801.1.1.2.1.14.1.10,\n Up Time: 387 days 18 hours 52 minutes and 49 seconds,\n Contact: Alcatel-Lucent, http://enterprise.alcatel-lucent.com,\n Name: net-lab-swi-001-1,\n Location: Unknown,\n Services: 78,\n Date & Time: MON MAY 27 2030 12:50:45 (UTC)\nFlash Space:\n Primary CMM:\n Available (bytes): 456454144,\n Comments : None\n\n" + } +][ + { + "status": 0, + "timestamp": 1656668007520, + "cmd": "show chassis", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-dist", + "address": "10.20.99.10", + "version": "8.6.289.R01 GA", + "data": "Local Chassis ID 1 (Master)\n Model Name: OS6860E-U28,\n Module Type: 0x6062205,\n Description: Chassis,\n Part Number: 903712-90,\n Hardware Revision: 15,\n Serial Number: DDG200700152,\n Manufacture Date: Feb 22 2020,\n Admin Status: POWER ON,\n Operational Status: UP,\n Number Of Resets: 3,\n MAC Address: 94:24:e1:37:e6:9f\n\n\n" + }, + { + "status": 0, + "timestamp": 1656668008219, + "cmd": "show system", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-dist", + "address": "10.20.99.10", + "version": "8.6.289.R01 GA", + "data": "System:\n Description: Alcatel-Lucent Enterprise OS6860E-U28 8.6.289.R01 GA, July 13, 2019.,\n Object ID: 1.3.6.1.4.1.6486.801.1.1.2.1.11.1.9,\n Up Time: 2 days 14 hours 47 minutes and 37 seconds,\n Contact: Alcatel-Lucent, http://enterprise.alcatel-lucent.com,\n Name: net-lab-swi-dist,\n Location: Unknown,\n Services: 78,\n Date & Time: FRI JUL 01 2022 09:33:28 (UTC)\nFlash Space:\n Primary CMM:\n Available (bytes): 1299349504,\n Comments : None\n\n" + } +] \ No newline at end of file From d56bda348b6357fa7d38c70a84e202936fe6f9fa Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:05:11 +0200 Subject: [PATCH 29/82] Add macs.output Signed-off-by: jefvantongerloo --- .../integration/sqcmds/aos-input/macs.output | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tests/integration/sqcmds/aos-input/macs.output diff --git a/tests/integration/sqcmds/aos-input/macs.output b/tests/integration/sqcmds/aos-input/macs.output new file mode 100644 index 0000000000..5c6b0c0ca4 --- /dev/null +++ b/tests/integration/sqcmds/aos-input/macs.output @@ -0,0 +1,25 @@ +[ + { + "status": 0, + "timestamp": 1656668007300, + "cmd": "show mac-learning", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-001-1", + "address": "10.20.99.11", + "version": "8.6.289.R01 GA", + "data": "Legend: Mac Address: * = address not valid,\n\n Mac Address: & = duplicate static address,\n\n Domain Vlan/SrvcId[ISId/vnId] Mac Address Type Operation Interface\n------------+----------------------+-------------------+------------------+-------------+-------------------------\n VLAN 2099 00:09:0f:09:01:26 dynamic bridging 0/1 \n VLAN 2099 94:24:e1:37:e6:9f dynamic bridging 0/1 \n VLAN 2099 94:24:e1:37:e6:a6 dynamic bridging 0/1 \n\n Total number of Valid MAC addresses above = 3\n\n\n" + } +][ + { + "status": 0, + "timestamp": 1656668007879, + "cmd": "show mac-learning", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-dist", + "address": "10.20.99.10", + "version": "8.6.289.R01 GA", + "data": "Legend: Mac Address: * = address not valid,\n\n Mac Address: & = duplicate static address,\n\n Domain Vlan/SrvcId[ISId/vnId] Mac Address Type Operation Interface\n------------+----------------------+-------------------+------------------+-------------+-------------------------\n VLAN 1 94:24:e1:83:4f:6b dynamic bridging 0/19 \n VLAN 2099 94:24:e1:35:6c:27 dynamic bridging 0/1 \n VLAN 2099 94:24:e1:35:6c:46 dynamic bridging 0/1 \n VLAN 2099 00:09:0f:09:01:26 dynamic bridging 0/19 \n\n Total number of Valid MAC addresses above = 4\n\n\n" + } +] \ No newline at end of file From 8315e25c1ea520e3b0f036b05959f697a1efd6b1 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:05:20 +0200 Subject: [PATCH 30/82] Add routes.output Signed-off-by: jefvantongerloo --- .../sqcmds/aos-input/routes.output | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tests/integration/sqcmds/aos-input/routes.output diff --git a/tests/integration/sqcmds/aos-input/routes.output b/tests/integration/sqcmds/aos-input/routes.output new file mode 100644 index 0000000000..f5edb71d40 --- /dev/null +++ b/tests/integration/sqcmds/aos-input/routes.output @@ -0,0 +1,25 @@ +[ + { + "status": 0, + "timestamp": 1656668007417, + "cmd": "show ip routes", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-001-1", + "address": "10.20.99.11", + "version": "8.6.289.R01 GA", + "data": "\n + = Equal cost multipath routes\n Total 3 routes\n\n Dest Address Gateway Addr Age Protocol \n------------------+-------------------+----------+-----------\n 0.0.0.0/0 10.20.99.1 2d14h STATIC \n 10.20.99.0/24 10.20.99.11 2d14h LOCAL \n 127.0.0.1/32 127.0.0.1 387d18h LOCAL \n\n" + } +][ + { + "status": 0, + "timestamp": 1656668007948, + "cmd": "show ip routes", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-dist", + "address": "10.20.99.10", + "version": "8.6.289.R01 GA", + "data": "\n + = Equal cost multipath routes\n Total 3 routes\n\n Dest Address Gateway Addr Age Protocol \n------------------+-------------------+----------+-----------\n 0.0.0.0/0 10.20.99.1 2d14h STATIC \n 10.20.99.0/24 10.20.99.10 2d14h LOCAL \n 127.0.0.1/32 127.0.0.1 2d14h LOCAL \n\n" + } +] \ No newline at end of file From 6093199c6791fb551ca795eed0bd6e39a77274de Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:05:29 +0200 Subject: [PATCH 31/82] Add vlan.output Signed-off-by: jefvantongerloo --- .../integration/sqcmds/aos-input/vlan.output | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 tests/integration/sqcmds/aos-input/vlan.output diff --git a/tests/integration/sqcmds/aos-input/vlan.output b/tests/integration/sqcmds/aos-input/vlan.output new file mode 100644 index 0000000000..9d091dbb63 --- /dev/null +++ b/tests/integration/sqcmds/aos-input/vlan.output @@ -0,0 +1,47 @@ +[ + { + "status": 0, + "timestamp": 1656668007924, + "cmd": "show vlan", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-001-1", + "address": "10.20.99.11", + "version": "8.6.289.R01 GA", + "data": " vlan type admin oper ip mtu name\n------+-------+-------+------+------+------+------------------\n1 std Ena Dis Dis 1500 VLAN 1 \n2099 std Ena Ena Ena 1500 LAB-zone-mgmt \n4094 vcm Ena Dis Dis 1500 VCM IPC \n\n" + }, + { + "status": 0, + "timestamp": 1656668008199, + "cmd": "show vlan members", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-001-1", + "address": "10.20.99.11", + "version": "8.6.289.R01 GA", + "data": " vlan port type status\n--------+------------+------------+--------------\n 1 1/1/1 default inactive\n 1 1/1/2 default inactive\n 1 1/1/3 default inactive\n 1 1/1/4 default inactive\n 1 1/1/5 default inactive\n 1 1/1/6 default inactive\n 1 1/1/7 default inactive\n 1 1/1/8 default inactive\n 1 1/1/9 default inactive\n 1 1/1/10 default inactive\n 1 1/1/11 default inactive\n 1 1/1/12 default inactive\n 1 1/1/13 default inactive\n 1 1/1/14 default inactive\n 1 1/1/15 default inactive\n 1 1/1/16 default inactive\n 1 1/1/17 default inactive\n 1 1/1/18 default inactive\n 1 1/1/19 default inactive\n 1 1/1/20 default inactive\n 1 1/1/21 default inactive\n 1 1/1/22 default inactive\n 1 1/1/23 default inactive\n 1 1/1/24 default inactive\n 1 1/1/26 default inactive\n 1 1/1/27 default inactive\n 1 1/1/28 default inactive\n 2099 0/1 default forwarding\n\n" + } +][ + { + "status": 0, + "timestamp": 1656668008637, + "cmd": "show vlan", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-dist", + "address": "10.20.99.10", + "version": "8.6.289.R01 GA", + "data": " vlan type admin oper ip mtu name\n------+-------+-------+------+------+------+------------------\n1 std Ena Ena Dis 1500 VLAN 1 \n2000 std Ena Ena Dis 1500 VLAN 2000 \n2001 std Ena Ena Dis 1500 VLAN 2001 \n2002 std Ena Ena Dis 1500 VLAN 2002 \n2003 std Ena Ena Dis 1500 VLAN 2003 \n2004 std Ena Ena Dis 1500 VLAN 2004 \n2008 std Ena Ena Dis 1500 VLAN 2008 \n2012 std Ena Ena Dis 1500 VLAN 2012 \n2016 std Ena Ena Dis 1500 VLAN 2016 \n2099 std Ena Ena Ena 1500 LAB-zone-mgmt \n4094 vcm Ena Dis Dis 1500 VCM IPC \n\n" + }, + { + "status": 0, + "timestamp": 1656668009094, + "cmd": "show vlan members", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-dist", + "address": "10.20.99.10", + "version": "8.6.289.R01 GA", + "data": " vlan port type status\n--------+------------+------------+--------------\n 1 1/1/2 default inactive\n 1 1/1/3 default inactive\n 1 1/1/4 default inactive\n 1 1/1/5 default inactive\n 1 1/1/6 default inactive\n 1 1/1/7 default inactive\n 1 1/1/8 default inactive\n 1 1/1/9 default inactive\n 1 1/1/10 default inactive\n 1 1/1/11 default inactive\n 1 1/1/12 default inactive\n 1 1/1/13 default inactive\n 1 1/1/14 default inactive\n 1 1/1/15 default inactive\n 1 1/1/16 default inactive\n 1 1/1/17 default inactive\n 1 1/1/18 default inactive\n 1 1/1/19 default inactive\n 1 1/1/20 default inactive\n 1 1/1/21 default inactive\n 1 1/1/22 default inactive\n 1 1/1/23 default inactive\n 1 1/1/24 default inactive\n 1 1/1/25 default inactive\n 1 1/1/26 default inactive\n 1 1/1/27 default inactive\n 1 1/1/28 default inactive\n 1 1/1/29 default inactive\n 1 1/1/30 default inactive\n 1 0/19 default forwarding\n 2000 0/1 qtagged forwarding\n 2001 0/1 qtagged forwarding\n 2002 0/1 qtagged forwarding\n 2003 0/1 qtagged forwarding\n 2004 0/1 qtagged forwarding\n 2008 0/1 qtagged forwarding\n 2012 0/1 qtagged forwarding\n 2016 0/1 qtagged forwarding\n 2099 0/1 default forwarding\n 2099 0/19 qtagged forwarding\n\n" + } +] \ No newline at end of file From c44a3c8442acef44a8ee791bbf1d65702d129389 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:05:40 +0200 Subject: [PATCH 32/82] Add interfaces.output Signed-off-by: jefvantongerloo --- .../sqcmds/aos-input/interfaces.output | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 tests/integration/sqcmds/aos-input/interfaces.output diff --git a/tests/integration/sqcmds/aos-input/interfaces.output b/tests/integration/sqcmds/aos-input/interfaces.output new file mode 100644 index 0000000000..fb4e93a29a --- /dev/null +++ b/tests/integration/sqcmds/aos-input/interfaces.output @@ -0,0 +1,69 @@ +[ + { + "status": 0, + "timestamp": 1656668007878, + "cmd": "show interfaces status", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-001-1", + "address": "10.20.99.11", + "version": "8.6.289.R01 GA", + "data": " Chas/ DETECTED-VALUES CONFIGURED-VALUES \n Slot/ Admin Auto Speed Duplex Pause FEC Speed Duplex Pause FEC Link\n Port Status Nego (Mbps) Det (Mbps) Cfg Trap EEE\n--------+------+----+--------+------+-------+----+--------+------+-------+-----+-----+---\n 1/1/1 en en - - - - Auto Auto - AUTO en dis\n 1/1/2 en en - - - - Auto Auto - AUTO en dis\n 1/1/3 en en - - - - Auto Auto - AUTO en dis\n 1/1/4 en en - - - - Auto Auto - AUTO en dis\n 1/1/5 en en - - - - Auto Auto - AUTO en dis\n 1/1/6 en en - - - - Auto Auto - AUTO en dis\n 1/1/7 en en - - - - Auto Auto - AUTO en dis\n 1/1/8 en en - - - - Auto Auto - AUTO en dis\n 1/1/9 en en - - - - Auto Auto - AUTO en dis\n 1/1/10 en en - - - - Auto Auto - AUTO en dis\n 1/1/11 en en - - - - Auto Auto - AUTO en dis\n 1/1/12 en en - - - - Auto Auto - AUTO en dis\n 1/1/13 en en - - - - Auto Auto - AUTO en dis\n 1/1/14 en en - - - - Auto Auto - AUTO en dis\n 1/1/15 en en - - - - Auto Auto - AUTO en dis\n 1/1/16 en en - - - - Auto Auto - AUTO en dis\n 1/1/17 en en - - - - Auto Auto - AUTO en dis\n 1/1/18 en en - - - - Auto Auto - AUTO en dis\n 1/1/19 en en - - - - Auto Auto - AUTO en dis\n 1/1/20 en en - - - - Auto Auto - AUTO en dis\n 1/1/21 en en - - - - Auto Auto - AUTO en dis\n 1/1/22 en en - - - - Auto Auto - AUTO en dis\n 1/1/23 en en - - - - Auto Auto - AUTO en dis\n 1/1/24 en en - - - - Auto Auto - AUTO en dis\n 1/1/25 en en 1000 Full - DIS 1000 Full - AUTO en dis\n 1/1/26 en en - - - - 1000 Full - AUTO en dis\n 1/1/27 en dis - - - - 10000 Full - AUTO en dis\n 1/1/28 en dis - - - - 10000 Full - AUTO en dis\n 1/1/29 en dis - - - - 10000 Full - AUTO en dis\n 1/1/30 en dis - - - - 10000 Full - AUTO en dis\n\n" + }, + { + "status": 0, + "timestamp": 1656668008166, + "cmd": "show interfaces", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-001-1", + "address": "10.20.99.11", + "version": "8.6.289.R01 GA", + "data": "Chassis/Slot/Port 1/1/1 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:2e,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/2 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:2f,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/3 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:30,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/4 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:31,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/5 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:32,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/6 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:33,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/7 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:34,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/8 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:35,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/9 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:36,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/10 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:37,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/11 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:38,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/12 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:39,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/13 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:3a,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/14 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:3b,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/15 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:3c,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/16 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:3d,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/17 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:3e,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/18 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:3f,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/19 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:40,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/20 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:41,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/21 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:42,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/22 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:43,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/23 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:44,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/24 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:45,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/25 :\n Operational Status : up,\n Last Time Link Changed : Fri May 24 22:06:01 2030,\n Number of Status Change: 15,\n Type : Ethernet,\n SFP/XFP : Unknown,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:46,\n BandWidth (Megabits) : 1000, \t\tDuplex : Full,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 14170313739, Unicast Frames : 113697,\n Broadcast Frames: 304766, M-cast Frames : 179189096,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 5847880103, Unicast Frames : 8954,\n Broadcast Frames: 181001, M-cast Frames : 57740620,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/26 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:47,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/27 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:48,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/28 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:49,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/29 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:4a,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/30 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:4b,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\n\n" + }, + { + "status": 0, + "timestamp": 1656668008397, + "cmd": "show vlan members", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-001-1", + "address": "10.20.99.11", + "version": "8.6.289.R01 GA", + "data": " vlan port type status\n--------+------------+------------+--------------\n 1 1/1/1 default inactive\n 1 1/1/2 default inactive\n 1 1/1/3 default inactive\n 1 1/1/4 default inactive\n 1 1/1/5 default inactive\n 1 1/1/6 default inactive\n 1 1/1/7 default inactive\n 1 1/1/8 default inactive\n 1 1/1/9 default inactive\n 1 1/1/10 default inactive\n 1 1/1/11 default inactive\n 1 1/1/12 default inactive\n 1 1/1/13 default inactive\n 1 1/1/14 default inactive\n 1 1/1/15 default inactive\n 1 1/1/16 default inactive\n 1 1/1/17 default inactive\n 1 1/1/18 default inactive\n 1 1/1/19 default inactive\n 1 1/1/20 default inactive\n 1 1/1/21 default inactive\n 1 1/1/22 default inactive\n 1 1/1/23 default inactive\n 1 1/1/24 default inactive\n 1 1/1/26 default inactive\n 1 1/1/27 default inactive\n 1 1/1/28 default inactive\n 2099 0/1 default forwarding\n\n" + } +][ + { + "status": 0, + "timestamp": 1656668008721, + "cmd": "show interfaces status", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-dist", + "address": "10.20.99.10", + "version": "8.6.289.R01 GA", + "data": " Chas/ DETECTED-VALUES CONFIGURED-VALUES \n Slot/ Admin Auto Speed Duplex Pause FEC Speed Duplex Pause FEC Link\n Port Status Nego (Mbps) Det (Mbps) Cfg Trap EEE\n--------+------+----+--------+------+-------+----+--------+------+-------+-----+-----+---\n 1/1/1 en en 1000 Full - DIS 1000 Full - AUTO en dis\n 1/1/2 en en - - - - 1000 Full - AUTO en dis\n 1/1/3 en en - - - - 1000 Full - AUTO en dis\n 1/1/4 en en - - - - 1000 Full - AUTO en dis\n 1/1/5 en en - - - - 1000 Full - AUTO en dis\n 1/1/6 en en - - - - 1000 Full - AUTO en dis\n 1/1/7 en en - - - - 1000 Full - AUTO en dis\n 1/1/8 en en - - - - 1000 Full - AUTO en dis\n 1/1/9 en en - - - - 1000 Full - AUTO en dis\n 1/1/10 en en - - - - 1000 Full - AUTO en dis\n 1/1/11 en en - - - - 1000 Full - AUTO en dis\n 1/1/12 en en - - - - 1000 Full - AUTO en dis\n 1/1/13 en en - - - - 1000 Full - AUTO en dis\n 1/1/14 en en - - - - 1000 Full - AUTO en dis\n 1/1/15 en en - - - - 1000 Full - AUTO en dis\n 1/1/16 en en - - - - 1000 Full - AUTO en dis\n 1/1/17 en en - - - - 1000 Full - AUTO en dis\n 1/1/18 en en - - - - 1000 Full - AUTO en dis\n 1/1/19 en en - - - - 1000 Full - AUTO en dis\n 1/1/20 en en - - - - 1000 Full - AUTO en dis\n 1/1/21 en en - - - - 1000 Full - AUTO en dis\n 1/1/22 en en - - - - 1000 Full - AUTO en dis\n 1/1/23 en en - - - - 1000 Full - AUTO en dis\n 1/1/24 en en - - - - 1000 Full - AUTO en dis\n 1/1/25 en en - - - - 1000 Full - AUTO en dis\n 1/1/26 en en - - - - 1000 Full - AUTO en dis\n 1/1/27 en en - - - - 1000 Full - AUTO en dis\n 1/1/28 en en - - - - 1000 Full - AUTO en dis\n 1/1/29 en dis - - - - 10000 Full - AUTO en dis\n 1/1/30 en dis - - - - 10000 Full - AUTO en dis\n 1/1/31 en dis 10000 Full - DIS 10000 Full - AUTO en dis\n 1/1/32 en dis - - - - 10000 Full - AUTO en dis\n 1/1/33 en dis - - - - 21000 Full - AUTO en dis\n 1/1/34 en dis - - - - 21000 Full - AUTO en dis\n\n" + }, + { + "status": 0, + "timestamp": 1656668009234, + "cmd": "show interfaces", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-dist", + "address": "10.20.99.10", + "version": "8.6.289.R01 GA", + "data": "Chassis/Slot/Port 1/1/1 :\n Operational Status : up,\n Last Time Link Changed : Tue Jun 28 18:48:44 2022,\n Number of Status Change: 1,\n Type : Ethernet,\n SFP/XFP : Unknown,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:a6,\n BandWidth (Megabits) : 1000, \t\tDuplex : Full,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 38749106, Unicast Frames : 7563,\n Broadcast Frames: 1002, M-cast Frames : 360904,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 92747757, Unicast Frames : 8297,\n Broadcast Frames: 1832, M-cast Frames : 1151180,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/2 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:a7,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/3 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:a8,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/4 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:a9,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/5 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:aa,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/6 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:ab,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/7 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:ac,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/8 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:ad,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/9 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:ae,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/10 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:af,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/11 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b0,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/12 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b1,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/13 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b2,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/14 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b3,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/15 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b4,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/16 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b5,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/17 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b6,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/18 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b7,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/19 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b8,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/20 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b9,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/21 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:ba,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/22 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:bb,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/23 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:bc,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/24 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:bd,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/25 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:be,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/26 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:bf,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/27 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c0,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/28 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c1,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/29 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c2,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/30 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c3,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/31 :\n Operational Status : up,\n Last Time Link Changed : Tue Jun 28 18:48:44 2022,\n Number of Status Change: 1,\n Type : Ethernet,\n SFP/XFP : SFP_PLUS_COPPER,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c4,\n BandWidth (Megabits) : 10000, \t\tDuplex : Full,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 97356313, Unicast Frames : 28108,\n Broadcast Frames: 139, M-cast Frames : 247910,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 50357915, Unicast Frames : 26570,\n Broadcast Frames: 2698, M-cast Frames : 473727,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/32 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c5,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/33 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c6,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/34 :\n Operational Status : down,\n Last Time Link Changed : Tue Jun 28 18:47:55 2022,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c7,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\n\n" + }, + { + "status": 0, + "timestamp": 1656668009655, + "cmd": "show vlan members", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-dist", + "address": "10.20.99.10", + "version": "8.6.289.R01 GA", + "data": " vlan port type status\n--------+------------+------------+--------------\n 1 1/1/2 default inactive\n 1 1/1/3 default inactive\n 1 1/1/4 default inactive\n 1 1/1/5 default inactive\n 1 1/1/6 default inactive\n 1 1/1/7 default inactive\n 1 1/1/8 default inactive\n 1 1/1/9 default inactive\n 1 1/1/10 default inactive\n 1 1/1/11 default inactive\n 1 1/1/12 default inactive\n 1 1/1/13 default inactive\n 1 1/1/14 default inactive\n 1 1/1/15 default inactive\n 1 1/1/16 default inactive\n 1 1/1/17 default inactive\n 1 1/1/18 default inactive\n 1 1/1/19 default inactive\n 1 1/1/20 default inactive\n 1 1/1/21 default inactive\n 1 1/1/22 default inactive\n 1 1/1/23 default inactive\n 1 1/1/24 default inactive\n 1 1/1/25 default inactive\n 1 1/1/26 default inactive\n 1 1/1/27 default inactive\n 1 1/1/28 default inactive\n 1 1/1/29 default inactive\n 1 1/1/30 default inactive\n 1 0/19 default forwarding\n 2000 0/1 qtagged forwarding\n 2001 0/1 qtagged forwarding\n 2002 0/1 qtagged forwarding\n 2003 0/1 qtagged forwarding\n 2004 0/1 qtagged forwarding\n 2008 0/1 qtagged forwarding\n 2012 0/1 qtagged forwarding\n 2016 0/1 qtagged forwarding\n 2099 0/1 default forwarding\n 2099 0/19 qtagged forwarding\n\n" + } +] \ No newline at end of file From 485c37533d39e1da4621c9f27c86b15b3e71ba44 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:05:58 +0200 Subject: [PATCH 33/82] Correct services file location Signed-off-by: jefvantongerloo --- docs/developer/adding-a-new-nos.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/developer/adding-a-new-nos.md b/docs/developer/adding-a-new-nos.md index cc9bd1ed6d..55d39f79de 100644 --- a/docs/developer/adding-a-new-nos.md +++ b/docs/developer/adding-a-new-nos.md @@ -106,7 +106,7 @@ Tar this directory and supply it to one of the developers, Dinesh or Justin, at ## Massaging the Output Gathered -All data stored by Suzieq is structured and has a schema. This schema is stored in config/schema. In many cases, it is not possible for the command output to fit into the schema directly. In such cases, its required to massage the output to fit the schema. Each file in config/*.yml has a corresponding python file under suzieq/poller/services/ directory that contains the code to massage the output. For example, suzieq/poller/services/bgp.py contains code that massages the output for the BGP commands from different NOS. Look at an existing file to determine how to add support for your NOS. +All data stored by Suzieq is structured and has a schema. This schema is stored in config/schema. In many cases, it is not possible for the command output to fit into the schema directly. In such cases, its required to massage the output to fit the schema. Each file in config/*.yml has a corresponding python file under suzieq/poller/worker/services/ directory that contains the code to massage the output. For example, suzieq/poller/worker/services/bgp.py contains code that massages the output for the BGP commands from different NOS. Look at an existing file to determine how to add support for your NOS. ## Adding the NOS to the List of Known NOS From 979c8a83cd699863ba3a0422f2da9a8022c234d8 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 12:06:24 +0200 Subject: [PATCH 34/82] Fix missing : in ip:port log Signed-off-by: jefvantongerloo --- suzieq/poller/worker/inventory/inventory.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/suzieq/poller/worker/inventory/inventory.py b/suzieq/poller/worker/inventory/inventory.py index 353a4641d0..53c69e1a96 100644 --- a/suzieq/poller/worker/inventory/inventory.py +++ b/suzieq/poller/worker/inventory/inventory.py @@ -153,7 +153,7 @@ async def _init_nodes(self, inventory_list: if newnode.devtype == "unsupported": logger.error( f'Unsupported device type for ' - f'{newnode.address}.{newnode.port}' + f'{newnode.address}:{newnode.port}' ) elif not newnode.devtype: logger.warning('Unable to determine device type for ' From dad00ecd1978fb03eeff2659823e38c64858fbdc Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 13:33:04 +0200 Subject: [PATCH 35/82] Add Alcatel-Lucent Enterpise AOS8 Signed-off-by: jefvantongerloo --- docs/index.md | 2 +- docs/tables.md | 40 ++++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/index.md b/docs/index.md index 3300616a91..75cf621e0e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -8,7 +8,7 @@ system goes well beyond what is normally considered monitoring and alerting. Suz Suzieq does multiple things: -* We [gather data](https://suzieq.readthedocs.io/en/latest/poller/) using an agentless model using either SSH or REST API as the transport. We gather data from routers, bridges and Linux servers. We support gathering data from Arista EOS, Cisco's IOS, IOS-XE, and IOS-XR platforms, Cisco's NXOS (N7K with versions 8.4.4 or higher, and N9K with versions 9.3.1 or higher), Cumulus Linux, Juniper's Junos(QFX, EX, MX and SRX platforms), Palo Alto's Panos (version 8.0 or higher) and SoNIC devices, besides Linux servers. +* We [gather data](https://suzieq.readthedocs.io/en/latest/poller/) using an agentless model using either SSH or REST API as the transport. We gather data from routers, bridges and Linux servers. We support gathering data from Alcatel-Lucent Enterprise AOS8, Arista EOS, Cisco's IOS, IOS-XE, and IOS-XR platforms, Cisco's NXOS (N7K with versions 8.4.4 or higher, and N9K with versions 9.3.1 or higher), Cumulus Linux, Juniper's Junos(QFX, EX, MX and SRX platforms), Palo Alto's Panos (version 8.0 or higher) and SoNIC devices, besides Linux servers. * We normalize the data into a vendor-agnostic format. * We store all data in files using the popular big data format, [Parquet](https://parquet.apache.org/). * All the analysis are exposed either via a CLI, [GUI](https://suzieq.readthedocs.io/en/latest/gui/), a [REST API](https://suzieq.readthedocs.io/en/latest/rest-server/), or via Python. The output can be rendered in various formats from plain text to JSON and CSV. diff --git a/docs/tables.md b/docs/tables.md index 77d4f89d60..02fad18e8d 100644 --- a/docs/tables.md +++ b/docs/tables.md @@ -6,26 +6,26 @@ is the BGP data that the bgp service collects from routers. To see what information is collected for each table, you can use the ```table describe table=``` via suzieq-cli to get the details. To see the list of tables, you can type ```help``` in suzieq-cli or run ```suzieq-cli --help```. -| | Cumulus Linux | Arista EOS | Linux | Cisco NXOS | Juniper JunOS | SONIC | IOSXR | IOS | IOSXE | PanOS | -| :---------: | :---------------: | :------------: | :-------: | :------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | -| Arpnd | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | -| BGP | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | -| Device | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | -| EvpnVni | yes | yes | no | yes* | yes | yes | no | no | no | no | -| Filesystem (fs) | yes | yes | yes | yes | no | yes | no | no | no | no | -| IfCounters | yes | yes | yes | no | no | yes | no | no | no | no | -| Interfaces | yes | yes | yes| yes | yes | yes | yes | yes | yes | yes | -| Inventory | no | yes | no | yes | yes | no | no | no | no | no | -| LLDP | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | -| CDP | no | no | no | yes | no | no | no | yes | yes | no | -| Macs |yes | yes | yes | yes | yes | yes | no | yes | yes | no | -| MLAG | yes | yes | no | yes | no | no | no | no | no | no | -| Ospf |yes | yes | yes | yes | yes | yes | no | yes | yes | no | -| Routes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | -| sqPoller | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | -| Topcpu | yes | yes | yes | yes | no | yes | no | no | no | no | -| Topmem | yes | yes | yes | no | no | yes | no | no | no | no | -| VLAN | yes | yes | yes | yes | yes | yes | no | yes | yes | no | +| | Cumulus Linux | Alcatel AOS8 | Arista EOS | Linux | Cisco NXOS | Juniper JunOS | SONIC | IOSXR | IOS | IOSXE | PanOS | +| :---------: | :---------: | :---------------: | :------------: | :-------: | :------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: | +| Arpnd | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | +| BGP | yes | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | +| Device | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | +| EvpnVni | no | yes | yes | no | yes* | yes | yes | no | no | no | no | +| Filesystem (fs) | yes | no | yes | yes | yes | no | yes | no | no | no | no | +| IfCounters | yes | no | yes | yes | no | no | yes | no | no | no | no | +| Interfaces | yes | yes | yes | yes| yes | yes | yes | yes | yes | yes | yes | +| Inventory | no | yes | yes | no | yes | yes | no | no | no | no | no | +| LLDP | yes | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | +| CDP | no | no | no | no | yes | no | no | no | yes | yes | no | +| Macs |yes | yes | yes | yes | yes | yes | yes | no | yes | yes | no | +| MLAG | yes | no | yes | no | yes | no | no | no | no | no | no | +| Ospf |yes | no | yes | yes | yes | yes | yes | no | yes | yes | no | +| Routes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | +| sqPoller | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | +| Topcpu | yes | no | yes | yes | yes | no | yes | no | no | no | no | +| Topmem | yes | no | yes | yes | no | no | yes | no | no | no | no | +| VLAN | yes | yes | yes | yes | yes | yes | yes | no | yes | yes | no | !!!Important EVPN support for NXOS requires version 9.3.3 or above From 9a935993e76230d0c1b1542bff8f9a96d91241a6 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 1 Jul 2022 13:46:59 +0200 Subject: [PATCH 36/82] Remove debug logger lines Signed-off-by: jefvantongerloo --- suzieq/poller/worker/nodes/node.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/suzieq/poller/worker/nodes/node.py b/suzieq/poller/worker/nodes/node.py index c422334998..f203cc7224 100644 --- a/suzieq/poller/worker/nodes/node.py +++ b/suzieq/poller/worker/nodes/node.py @@ -1296,7 +1296,6 @@ async def _parse_init_dev_data(self, output, cb_token) -> None: # Extract hostname hname = re.search('\s+Name:\s+(\S+),', data) hostname = hname.group(1) - self.logger.debug("AosNode hostname:\n %s", hostname) if hostname: self._set_hostname(hostname) @@ -1310,7 +1309,6 @@ async def _parse_init_dev_data(self, output, cb_token) -> None: 60 * int(minutes) + int(seconds) self.bootupTimestamp = int( int(time.time()*1000) - float(upsecs)*1000) - self.logger.debug("AosNode uptime:\n %s", self.bootupTimestamp) self._extract_nos_version(data) @@ -1323,7 +1321,6 @@ def _extract_nos_version(self, data: str) -> None: version_result = re.search('((\d+\.){3,}.*?(?=,))', data) version = version_result.group(1) self.version = version - self.logger.debug("AosNode version:\n %s", version) class CumulusNode(Node): '''Cumulus Node specific implementation''' From 9d9de04a53264ef8c1ebd3fbecc0cd6e93a44ef3 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Mon, 4 Jul 2022 11:47:51 +0200 Subject: [PATCH 37/82] Add namespace aos Signed-off-by: jefvantongerloo --- .../1d5c0a46d2df4b4196f26ae819ebe832.parquet | Bin 0 -> 4902 bytes .../d77df9a635bf4b699ce7596b6421153e.parquet | Bin 0 -> 4911 bytes .../b5ee4be9cee74f0e81572441071fb334.parquet | Bin 0 -> 8771 bytes .../38cc839fa8494ad9a4329a1a074ee68c.parquet | Bin 0 -> 8764 bytes .../f3a2b23d30244e74accfa7b0792506e2.parquet | Bin 0 -> 16371 bytes .../b76efc4dc2684d8dac9bea467eaa1367.parquet | Bin 0 -> 16419 bytes .../6f46bc2044d44a8cbb5aac8cbad5b758.parquet | Bin 0 -> 7487 bytes .../629ddb052964484393ff940c3ce92e63.parquet | Bin 0 -> 7508 bytes .../1e1aa390dea44fbcace5b830da9c978f.parquet | Bin 0 -> 6705 bytes .../307f4cdc3bde47e589a1e4ae3ae706ff.parquet | Bin 0 -> 6738 bytes .../d0f7e5b68d9d46efb3b96bd4c9fddb5b.parquet | Bin 0 -> 12151 bytes .../3f2ad21afa294e278a35e628a03eccb1.parquet | Bin 0 -> 12151 bytes .../0cb3ea7c295845f5ae609cf82abb2ce3.parquet | Bin 0 -> 10592 bytes .../6c97bc87063047dcb3db068ad44f2e7b.parquet | Bin 0 -> 10578 bytes .../8c5fc938bdfe4c59989c52e7541ac7b6.parquet | Bin 0 -> 10592 bytes .../97e8b3fbaecd4cc2b2e4d14fa9e5e666.parquet | Bin 0 -> 10585 bytes .../a46cd9e1735d4863870bcab9be1707b5.parquet | Bin 0 -> 10620 bytes .../ab4c3cfbafc74feea978c4e4ff06ddca.parquet | Bin 0 -> 10613 bytes .../de8b290d3ea5451bb3db22143870c12d.parquet | Bin 0 -> 10578 bytes .../009897b213f44df0abcfe32013b6186d.parquet | Bin 0 -> 10620 bytes .../1d4804687bda4721be154062eb88c308.parquet | Bin 0 -> 10592 bytes .../6b6f1196e1bb46afb3faf777c1d248bc.parquet | Bin 0 -> 10585 bytes .../8176cbfd61614098909f081559065064.parquet | Bin 0 -> 10578 bytes .../c7e97a2750874af196d01066da06de4e.parquet | Bin 0 -> 10592 bytes .../d14f9cf70c97465bba0a422654baf878.parquet | Bin 0 -> 10578 bytes .../dbd4ab449ce14d4b855b1477c9632863.parquet | Bin 0 -> 10613 bytes .../c4c42713d8a040198dfa43785ae04039.parquet | Bin 0 -> 4798 bytes .../4bbc757ce69e4ac9a1cf244fccf8a1c2.parquet | Bin 0 -> 4903 bytes 28 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/1d5c0a46d2df4b4196f26ae819ebe832.parquet create mode 100644 tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/d77df9a635bf4b699ce7596b6421153e.parquet create mode 100644 tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/b5ee4be9cee74f0e81572441071fb334.parquet create mode 100644 tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/38cc839fa8494ad9a4329a1a074ee68c.parquet create mode 100644 tests/data/parquet/interfaces/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/f3a2b23d30244e74accfa7b0792506e2.parquet create mode 100644 tests/data/parquet/interfaces/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/b76efc4dc2684d8dac9bea467eaa1367.parquet create mode 100644 tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/6f46bc2044d44a8cbb5aac8cbad5b758.parquet create mode 100644 tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/629ddb052964484393ff940c3ce92e63.parquet create mode 100644 tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/1e1aa390dea44fbcace5b830da9c978f.parquet create mode 100644 tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/307f4cdc3bde47e589a1e4ae3ae706ff.parquet create mode 100644 tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/d0f7e5b68d9d46efb3b96bd4c9fddb5b.parquet create mode 100644 tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/3f2ad21afa294e278a35e628a03eccb1.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/0cb3ea7c295845f5ae609cf82abb2ce3.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/6c97bc87063047dcb3db068ad44f2e7b.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/8c5fc938bdfe4c59989c52e7541ac7b6.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/97e8b3fbaecd4cc2b2e4d14fa9e5e666.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/a46cd9e1735d4863870bcab9be1707b5.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/ab4c3cfbafc74feea978c4e4ff06ddca.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/de8b290d3ea5451bb3db22143870c12d.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/009897b213f44df0abcfe32013b6186d.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/1d4804687bda4721be154062eb88c308.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/6b6f1196e1bb46afb3faf777c1d248bc.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/8176cbfd61614098909f081559065064.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/c7e97a2750874af196d01066da06de4e.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/d14f9cf70c97465bba0a422654baf878.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/dbd4ab449ce14d4b855b1477c9632863.parquet create mode 100644 tests/data/parquet/vlan/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/c4c42713d8a040198dfa43785ae04039.parquet create mode 100644 tests/data/parquet/vlan/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/4bbc757ce69e4ac9a1cf244fccf8a1c2.parquet diff --git a/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/1d5c0a46d2df4b4196f26ae819ebe832.parquet b/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/1d5c0a46d2df4b4196f26ae819ebe832.parquet new file mode 100644 index 0000000000000000000000000000000000000000..1bf4bd7cf9768fb970eb59b20f0e30b30da4d969 GIT binary patch literal 4902 zcmcgw&u`mw6#qKw`eQ0vH{mFONR)_K6Lf8oHe;yRWL1HBc@d+SD@GThQ{b?8DiI%!Y&>e+8rgoGe6=6`>IPhS3G`bWCD|cG3{@XeLIZ=y{y6>9(S`hAF!qmYDl9S0?sHK^A_7 z8GDny;&Gh*8lkh;@x*!}v!2)^_vCu&Qb6L)`h+5Wl7rV z|Du>5=9oW8rTO&*nFxsC6clCLPaemc0^vY?o+7TmHB zWlQbZCmEN;k7uAPJo`Om5xtj2k?D@yP;`+#jp+IFp^l|i<4_dUfI(jH1{*61hoZ6QohR={%=73K%u^ojCqApp^FA`nizwnJuF3F& znQ#bdA^h>&%Lql6BGaa5)WuHZ)7jf`)u=0nH|3Vr)s0Skeer`2mlosp>rKK_2=#W{ z5OoFkMpx57Voz1H`b{s*)_T(#m{>60HB`A(SK=UTbaituVzi{DB3qcQE0$OnEfK_T z#}xy_RbwCTEx*5c@pAm`T^EcOMVt&*til7tB|jAw?Bm@ffHd?kJ{p#OiyqdqwF=F^ zZ*NF^wwCO{=QrlkC+tbBmWIW>iFK%BY4wG2II#S-#uyXE9?s z2m8<;Wl$L5;*4TKsFpNN#Xi=|8h?0DO{E(WUk2T*Dz9QYHZD283GvxHs;-vOGSD!; z&ZkXm8*pO3yLCR)>d&mhe=7-no`P%HPlKqn;ws)lq%e+ z@x_Ggb5g74H=#aDjZyt z3Oy;+530FiVv}qLsm+7h7Dx63;IRb02>CA!h>tHSXGY1C_{tH)(~@mp{kikY1m)0_ zjNMf6*m!B(`iAg0`D+NPC9|&E=PMvy9{w}WUj^zZS7^$51IVF!YL1f2e7)Q8cC08tD-`H`b1} zo4e{BboeZ8%^SEaZ;&QEfLFGFmxROOZfrO4jms;&l@-j$HV6?nZM@OB@^}IDln|>m z4fJ)eeBnCG6Rd8RBlDy{q@B^ivN^om8mkAw-v>x|PRMMIyyF`lNuYnEuS}E>qoYwZ zM4cbiJzK`|YfZRahTT{5crf8%hF|c_zR3J>&Mx4=@^AIwX8T(rQe}J}^A{kptd!Dp zws3?+%M2Sr{p o#rCbPVqKI?^CJ0fgMDM`grv6{_+i8TZ!+*&B1!M#L82|tP literal 0 HcmV?d00001 diff --git a/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/d77df9a635bf4b699ce7596b6421153e.parquet b/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/d77df9a635bf4b699ce7596b6421153e.parquet new file mode 100644 index 0000000000000000000000000000000000000000..57d8088296ba20d23f75f0dcea4a0e63f38478ad GIT binary patch literal 4911 zcmcgw-EZ4e6u-{8eoR%@O*l%R5+!2R1YMh?OO|aqJ?tb#oj0`kZsm`JIn@ zPTDQDn4m}Kar(^-Iz*$(2wnYg;h))&cM!Q~L|>-godec1JxY(xETgL^f;mKLfD+y zl>~r7^b|ddQ-(;&A{2t(FuF>fj@7ZWlRCtFIX*+9=oOr|(T1Yedx_f$OU$FO8$l=|w0D&wfu?L?5P5WV9*Q6kVjJ5IuP%)awXW(8dhdA{6%&4pMQ^JMReg z^(xZd;^f*97y$t{V2~HQ!N!Whq3BHX-ivo7=2dhI=H<`#3m;eJRi7H>b=2_-mu2|- zv2X~=A^c$C4TPd|kx^4Ls$w(pVEk@OHLA+du3Xnzy3vfS%zpaW+-%H#-6cGQQ18YJ zQCEO(v@{JQ_Ebfy?s{pq)?KS>V!>F;Q0016iGj4y(#>w4QI`%B*}`;PvBauqi6DMA zrWhcu8vA(f&L?ZvuE$PJTrge~F*0Sb3J(yM{8Cu3k0)~gspns;KQ;XpJ*=~}3jM%u zuSYyvOZM#Z8*}MH_N01U!{Xk=I@E!*`a;>8S$0u37RSj!- z$?s#I{9jJmjo5F`r4Jc%BKQB|NlryW5v_WIoE%M+8e*f1502Rt8;yDgn{F$Ordl^J zH8mffkH?^-V?DbAyu|$C{8H=$MJCx|@fN>g53k5C7Z>oAX4hDj-G&doK4#e^HnWdu z`)qcf&@vehzk`W4`}~`DO+Gy-!sl4F!@@pz5+(3-galY+Is%_M6v~^huEYM!2b`|8 zD!I~9Iaz2+>m^GvHq~2dMk?R#>~ngLrln0uFKSAzbj%&p_xZ)9D(P!hsp8C&F0&JZfe5fw$0~Dae*(^s=1pOAK)&vgk<_qX;suq2h}X$Ta|LL20G$GKVC=ajV$)TwJDY}nM$tMt&|JL zr{VI+oPAuum!sw$9_@P0AJb`t>-(56YjQr`wX9n}FQq z+fuRvS(S3tZx{4>vA3F;}EKalkjobhxQ*BR7$Q{?kqp`1^V zUSecYuRi9>*&QsubO5*Ou={2X4<Q~xjeZ3>|+_*dD#t&$2G literal 0 HcmV?d00001 diff --git a/tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/b5ee4be9cee74f0e81572441071fb334.parquet b/tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/b5ee4be9cee74f0e81572441071fb334.parquet new file mode 100644 index 0000000000000000000000000000000000000000..76cbe16439ad1b4dbbfd764c721ae4a4167d0602 GIT binary patch literal 8771 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 KVbrnaA!E*DmTV4XBp=F-_8GVZc1Q! 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 literal 0 HcmV?d00001 diff --git a/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/6f46bc2044d44a8cbb5aac8cbad5b758.parquet b/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/6f46bc2044d44a8cbb5aac8cbad5b758.parquet new file mode 100644 index 0000000000000000000000000000000000000000..9a221e44168f1a1adbf5356103e84342befcb311 GIT binary patch literal 7487 zcmcgxL2TRR6(%)DwihSx(vp)hck_gX2v*yoWXZ9DbpRz>5*0_Wl~|NC3;{_o5*?CK zB}%d!n@7^1FFD|Co%)9;YX_n0N;)#wJ8 zBd8Dow^jH<5b(TCC4J^s-zJC^VBNdFlip!B50j}{Dgergmml#x1w(xC6&Ki9LNI-b&Z!NAze0V}2S1#!;xgz4fDR415%>fH{At()819>*Ip|}A zCjE?L{&vW@<7Moe2=6*gm`|H`S&uy>+12U3`BgJI`AQW?H>dY1?!w9i>9J&9t>o~FxU4D zQ|WbkYF`QPAUabxGMg3b;eW2W9)^dC(d_iFgP)T0`yuATE6j@(;D_xwhEvtNj3X7j0I=Sp>WC?lsqy1#{fB%E!AT{dEqt#~0UY zKPHH)V19RNXDhjz*{ZOK^#T`w`>J0ea_%|UgMWVA^BniLpI{xe6TFgwEA@j@E z)+i!+19if%D4XigO6EgaV*a%D-E;3pK^A_jRv7(rnuvt^a$C_wiYBO)8zHNi-XIRv zz!WA}t;$8{S)IcxIt{PqvK7C%oB*(o(Cv6yo|oheA!;h%(WXb^KMqm1@{JKZUvl~dwpeIUcF;3q5^&4fFsVu}Ics?kF4 z9zV!$?#7-zb;0;iSZL1Um{7kI66E324FF_&7sKBX5L}poJ*gxJ=`Gz z>`mzNwP%mu(*`|^`C7C_;%S2}eZKba0hme`hdN(d&fq!iotHCToA#(UZPLS-uf@qs zH*M3$I%ici%$*c^#b19WWKa2-I`r1WHf_(PpED+PI@+`?hkD)=E^IwTG&?<9{4`bS ziM=tZeciFx>vcv*mlIH+rnlHFHU@PmX501f5?k9_sn}B@vcgp=_k`QlM zc#h+a;DfF^9GBvv~1SLA0gtt%Reeu&v3_DFduY|ICu~KVkO81dI_#N ze6pjukbYdR-Q~EuEZEB4;&pA%C{$CmWO*nRtEOb!Rqv@;sdj(V;&q#*WxA4H(Ud~< zj6dnLgzdg6>3OqppWopN>4a1m_4!;$7lmrSk>q4d7EbJqEfV(=V zCo_*lA#EUAyjDG~sBDTi5*Z(M+aG0In&9H~bXyWEyA55_q(bG<#Gjlkr@j>2gQjrW ze+04h<4Hgqs(l{W)EnJ~aQe8Gv@qUNAvQwhaYGp4ILL)O>{tG*wp~ff5Ie+g3h6G2 z1;h>Q1K3E6l&UAzdPWuX>Pa()`DUY5X@d^7KH0z1%s~#t)U_#ZL#&Ii-!m}z`19Z2 z;5Zp&P1d!xWce|bZ@iyx=X%+jQwd4ePNZZ-v;2bGt!2~RSW3y#TMePiTKt68Eac(5 zRN9k#F0y^T=*j;O;oZ@&=2V`T@G7QHQ_Ng0`RCMYF&$ zdd?le^Ii(^&(N)e=7TIA5}^CTg@%S~JwA-b(IVSMG(04r`N6r+jKMi^12G=Sw+?T` z<4DsHk0*~3mc~oG%AsYk(v^hj8Prcx#?%(KhvyQR%i(8qgAoL-;Y8mtR)URAMk5<_ zaS|)8hveUQ@J2ko3vch|@qA;sW{o;nE1G{`-htYT&o0)yhyC3@g!v2OpJ5NZU&J*5 zYvPdn*$Ldd_V9e=v4`g?r=~*uk$k2FH!HpstO^Nv<6A_}xCWvAaFjhl^6KZ|L#B&% zFNCFnAp^nWNir9uDz literal 0 HcmV?d00001 diff --git a/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/629ddb052964484393ff940c3ce92e63.parquet b/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/629ddb052964484393ff940c3ce92e63.parquet new file mode 100644 index 0000000000000000000000000000000000000000..5b5fba2b2b21ad4276c3a0e991b4602ecf86504f GIT binary patch literal 7508 zcmcgx&2Qt@5r0%2*^a#%cN-E?;-s#SB^HQnQL<%Qi>3f2TN1Tit*u?_t0=Z4#g*tK zDMg|r%Zokal0%V8gFOUA(L;|xf#%Q_EwCtpq9}T3dnkgQatL}T+W(*k+Mx3uDUr0O z1WmN2Et+p;IP;r%^JYf7M|?3x&(RC?ONVrTM%NI!@yqCc*XF*3$VDUi8vWWjuvX|G z9bDZ(H&6(3h}5EhPyiMIiV7h13AIWuhZ8F(7!J)DqOQ=(On_-J?@;V_*oD!n;dL;F z=m3J-3j9F`*00i>$NURJgqDDH=kCtl4tKC|65sPdvgBfi+zWqvAAQZi_nh9UD;fd# zKE?cnV*eUo-wt4mZarS5zQ~v9S3SssF)Jj!wh!PyuN{JqKfHH?4!mI36wO|j;4_)` zDE1f6v7gRicq0|QVAklk2h7S_2rYxP{rzm5<90bNmWcbnT6Xh8o|Qk;e=fM8Djij{ zLiqv3d_=K-pJ$)UW2_!c7xen#e~DiA;J>0GvAH=P_?=mS)gcakMlnAPu%BFE|GkVIoUZosEcyn3 zp>KEsuvA589>ArWVz;YyecYY5S)tK`zbhYHb6lA-hi$8xyh|~^qS)Vlo&9tLJ2Fz? z=<)?QEw8w<9d0Kc=Mp|J7st$y^XL!tZQ6mlfb;6!2(Fb_@4U$V{u?B*e0BOlevRJo z#P!+_5xNTI_cnJn<9o@?A{SfB@;^*8U#+Amn&3-&Z4_nVf?s%@{2k$%PmX&d z`^Q&SX%xPW8)HzEO|@?&^ARJl|5*L@h4;fC3qMw84F4&CLcy-wRCJMM5WRdoVD;AP z=x`NG5rWms+!VWicuAyAyGf%O=%(3K!%ZTm&rKNTxSKdin-OgekUBd69>Lmn9x;LN zYWV4w9vIl!cXIZtc3<|H^h9>nEsMS64#Cc>jI%SZvh1^~dhBJ?p)Xxlm_J-$0&x16 z4_97P%+?1uil^eCblb>-~7+|qiw(T&_(`|kJF*CN*PKH({Z`Y3`YeBc{B zO#_Jss-o5Jduf)|`?z_7V5DcLGEChOkT!aHdpKsaq*FyUF_L3epo=kEi`HN~Y0#n1)*d+k6X`Od&eqmw{G9a8&6%xDdtjV2>0->* z;&`%~wCQ18u&Ns7&NhCK!#DRqhTNf^O5aWLwgU znvyM@3#Y9{d8?~Rdd95X6?TMdA|_=AT_K&<#d4`z%Orc%a!kW=l2PhPY0zV&n(%&8 zjwLyzk|I38DD}j0pUOX{~L#ZoZn|iHXE1x~A#4U_>RESME`LI?VkT}TM4D46tys}kH$Phcs zua^^T91DmW-UqM|8z?1Lto5WS>ZQ|qn()n9rPu@=Ty?yEXUW4fj;Ui)-hx=?V85qe z^6+QBzy5JD3Yx5IP08|OBHsir-_G@dJEvljuANHpqGtI8xm!sk+_9A6`8R9j0%!4K zT0NVA^HOY%^EtQQlIQM0{!WcmHZ!arfGul(E(=$@24`K`5=h?odT?2Iz|OFqaqRlUiR^F5s!JI6*Goe=uJt9A zoa@WN#febg@%fi3{IuMfkn!73sNG!Q)UNN7^}j6{$MM4dQM0OWZpBK?KHHOZ)Wi3y zS$e)N#jQH)(~ndsp0sPUUtNgRao$$9@*32OzN|uT#C0O8sj{9KD!A4{?kMHVP}Y-h zDsg|QX|hphOYv<|#|wA22ZyJ;iu;4BXU1!zJivYK^q_ZpxXlR$hnxB#z9n#nztw=Y zpW4H-zzJTbk72#Pjrr&JmdEo!iVO+R{o%qxL#i6>N2B;5)xtU z#OQc5vQg*8vEn;e{`GsWN27c2_CbcsH--9EVzX<** z_VD{TQWJ8)VNPAhs`Hd2sp!&zCT- z0)CQG$Bt9e_5*J~ip*f}02g`16~8y$K%sBK*P}Okin$@T+Z$xwUb6@4H8N?3pTa-4 Qe*Q1|IgQW}{D12I0G*Ah#{d8T literal 0 HcmV?d00001 diff --git a/tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/1e1aa390dea44fbcace5b830da9c978f.parquet b/tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/1e1aa390dea44fbcace5b830da9c978f.parquet new file mode 100644 index 0000000000000000000000000000000000000000..ca1fc1214878bde0c68998635936282eaf4f30b9 GIT binary patch literal 6705 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 GN&g24_r{|D literal 0 HcmV?d00001 diff --git a/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/d0f7e5b68d9d46efb3b96bd4c9fddb5b.parquet b/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/d0f7e5b68d9d46efb3b96bd4c9fddb5b.parquet new file mode 100644 index 0000000000000000000000000000000000000000..49e335fad51e3dc33907e2c3574b9aea0d33ac0c GIT binary patch literal 12151 zcmdT~O>7&-6<*3REh}>3$XSL;lty9fg&W)ApQwmIE=x-M3r$Ou#J@Cf_fO=?yGxo} zlA;110_0E>J_J1kXb=QFw?>gmfiwuvpobtRf}VORatewf=%MJbEz+WIW_P)}+@)$; zl+aSrYG>Y?dEa~U-kUcgZPLXsIZYDed>$UeJV9LjRq$U+gol6@`5bxuI_V`Z!jE@x z)l2Bq3nD>GLBp#(Jp^^%vq(-a#4Zxvg|%~iL992_&a@$LUL@xHF>+iDJVQR0C#Ou$nSKfIzz5*Zlb3Dq2|ps>r9YoF zmfqtfsQ2cEApPD>v)kqbyz&j-eGm2N6V$s;AXI4hi9vY(NecvqQ^lrYLiqdw_2UaC z4&lR#CWM)Gv#Sa_Ox*9zMvLws|IdT{ATLrlUaKk=FJXM2n!^4lt-TKw`Gl6pWM3F9Ieu!Y79 zjr?ExjE0AQ#-NyQKH{oNFYvj9(EAI+O~CIJTRoxO!4~_(Y0?=Uv1OFu>15J7D3&^y`WS$NCeO44XA8;yLg#^OJV8C*0tdYh4Dfj1rU z&o59Pzwkff2|s_y;t8^#wnfh33HO(%-@kZlPdH7_{@rC$AF=~6*zF`6j8YeNL|K5g z+_I?m;AQHsf&VM@estATZx&TOLR(Pu{Z9+tzfjZz>O^$<$1k4$^*dU%X^U9@j6pHq zP@-`5x`Z<9=O14)bvm!QEYnY3q5klFP{}#r7%?tEPLNNMOQ^meaE0vmc;Fj`up+eGiBx1)SO=e5g z_E1AKky;g{&!Tl{RgJZ4SY=qGnfw03OGEp!bzaMUX>=o#==+jplwpcDIFRZtY1Sa) z3AA*k8Q47+Xf#V8X&t5)!m1)Dngb9%@5183ck{vXc8L~D`5l=I%U5pD(dRWTMvl|>3Z)vK-2XMXqRSA zp=SSx%ty0H zQ}$T42|_XNES&P~v|^347bVQjN0A$I%n8oi@ogiDFGz^KhO zE;l5RZ8Plwsy12!rrmD#(Ol?W7ydMXdSmEMZvoiN#Hjg1kWn`B>L5I>`t|Elcv|#V0_}$tSohF>C#FiQs}XnlFBMK#am*6t!($} zSy}Is;w@G#NXL8EKEtNPRqSGS{ohEvXva(&*(< zs9G*I`1A(C2e?b!Y9xM#DaRBfD=U?Di(+UctAyh=?7BX}AUDL7Rd|Uh^G!Z;6VF|f zC5cTJ_l7zpbJ1E^QkYEfFe{G1FCVnHXpsf^p~8NV$9yu_qLPSJqQw{odfgI1uSo80 zty~Cc^svOIQ(*sMV`!gDsFTfD?3v847TI#XlxOKJB_1sag#^`WOC+PnJHd+eR zO5l^@{7uRA_)1YKrBe!)dwTXd+=Vz{Hc;$qdC4VrK%PrLo@(4=Dtg?z;nVZSFjh+; zEzdn#9&}$<0Ga;n3Wi#w1XLwepiEqpC5QpHCClAzh2e%aOWOxTYr0< zGA2H8EQGmGp$YYv0=cdQ7!JYrRZd$^=N_y4*D-EBVD&whI>4&e!`CLYN={;r+RHLI zsV0{OwQ_9#h*+L9wh#k#C)8vOwnC4K8wZb@58Bpq0`Xjh`j4s9#^yd7-PQkcJtG&m z)X7j|#ygsCyRBiEM|D{>nv)>^_Bau0c2sYsC6SX;0|C{1P;(09)PR%YQEfj(`LNJp zBP+OuEo`s!^ZT@j>IX|L9|1o&WXka_uD|y;x;FxIarlO%H zf|?lO4eDmpu5BI$gZK@OXYgqm?X4_6d1Y{~ag+ls5R^;;{2%Oy&nX~3XW*q1n6qHC zHX$}sBj3Sm zR_E8pCyaI?QAC_Hw!g(b+o%(;3~Cv^0lIC0&nVzWD$EJINgBH&pC4qeprV|lPuF`qLKiD_;Z(^@N-fZ|E8mjptmRGG5wjlPJJLnt)qzW1z z9*)=LjruR1q{XL8Dw>$iB7E2AU{71$G5X>2KCDR?#_d+iSbe&K(u_ViW%5{y*VC>cjv5 literal 0 HcmV?d00001 diff --git a/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/3f2ad21afa294e278a35e628a03eccb1.parquet b/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/3f2ad21afa294e278a35e628a03eccb1.parquet new file mode 100644 index 0000000000000000000000000000000000000000..08df78dce3f685d71ca44a117a07bc2040cfee8b GIT binary patch literal 12151 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 literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/0cb3ea7c295845f5ae609cf82abb2ce3.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/0cb3ea7c295845f5ae609cf82abb2ce3.parquet new file mode 100644 index 0000000000000000000000000000000000000000..3276e6694c6bcb5f4136c2acdd3641cde6857a21 GIT binary patch literal 10592 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 literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/6c97bc87063047dcb3db068ad44f2e7b.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/6c97bc87063047dcb3db068ad44f2e7b.parquet new file mode 100644 index 0000000000000000000000000000000000000000..a689b31c963dc02b177a4dcb63d1ab7865f509b3 GIT binary patch literal 10578 zcmc&)-EZ606{j3Sak4DU(om3Ft?{&m2#~~*)R;l5ET0pilNxk9*Ut)dkBVMD|YVXhe(lh z;?#E7n&Q3Z-gAEE^B%I@q|0$~nw%lu+90P$;xa*8|J}m>=BB?zz!hOgf_#UJ-6VtL zCHMymKWPIY0&et3r2LCT-$M9#=K3`H> zBX83`4N~9JU2O85ka7g{G1?1#j7I2Vw9eNY9ftl-=f~*J4!Zu}pPZw<)Fa1aJ0au< z;2+=d0{{390{{4q&et3r2L9>S$KcN?Z9(*h|Cv=p2>wHuB@0TLvc_Wq2b`R1+O;jiH_*o$Id4PKI2KD@6WXyE@ zfu zHzVW)U5W77zSvb;Z3RluROp9+&~F3Oe=bu`FGoC>c|!E{0mz;NXcz$~<0s1;j#+Qu ze+xy(X#@D1owg*c9q_`Y*lo21rrlFCti;nm=(7OzN0R#TifMlbYafBHUAdpWHC8UD zYOK~%ZTdV9Q%}PuqE7&w1JFX0Jg{7Y?$#*6Qnq+zfHlkFUQEo9+8&VJ-Zl_iMBNeLG2ngDT$?WtNN($*Hid zD+CC^jrT!faypDp7S!y`T$>8xP7y60H(@VcYjr#?UTU@%FJ3u5%U`_KJS06=p10H@ zFTkUD7F{DYB47Y=8s@ypyiPG{q&}D^F!o6+I|*Hg5%zW=r>os7b2r6+fW7NO1UiM)p9Wl>`V zR%2oLgQ%#$@|LoT_HJ)wZmmQgJ{*H_qKJ+^&mcYyG!wK5ROn;QhdWZ6)fN*Uy(BiI z^TV3}(a<+)eO_@3caTm(w)t(uE!s{w3CYHH4Yyz$;Uwf*pCsIp9i)?xZG1a$OSTbw zJvZ(tQ?9AZaPu@)FwY%zJCvmi8_f`Wv-d@_7Cj zg*jh$-9p{;;}&jpy*|Pn^kWombk}aFHo}CsuNYs}8=+gKgES%43Yu4lCH;NREpI$O zA&hIcCA8cr%bcAITYNZmMOJHf@c|~axGvirqVuaWWV_w=0P!*t7G{(4vH4gOPLil0 z*G7xaFU~JT9}?jUbh&)D`kwyU8GbakfUn&Rnx;$ehprE3dWlZ&(ixiGrI}qkmrgtA z12nm2(F?ol`WWt*3#R92dO*WI_{B`%7jJ@l9sbgTdNsLUuN7!IzXto$w{x=8Yh)`+ zwM4PctyeToDYWjk(p>G{U^gclb5g3q$z@5*Rz|tK_HK1iZE(HGW;% z5!R&v=F8;!b-5$e7fU+5T8Y)G<))BbL-+u9rB_d+_StGuL9%jEWxL#pE#;JW%7NX` zM;zuYTsc_)K23?2${nt%%Wue%#AVAnmR?L=sn^QwMlHY1B7IsuddLSIezD9o3?CQmwp7_#F;-19R4$Q;6-Idh z>m!5jYUyNcv7F?=4|iMOheZD4Mzt8z>2V3CD5q@cviW^N>5;X zad$YSlql+Ss3q}%Sh3YwsPV#T{b)Iz&BTOS0oO8*+Bkx`VA1((2F{So$X-XFF2{;{ zM(uXjb~|3J0rds;$LiL3a**0!P>mnQ7AL3n8?|By*|Jdudnh_@4{SZ;KR%xBbJ+t4 zY<-$`(`CmRO}6Tg?K&GlHO>wR9sx$WZI*xp3))&hi!TtW=je8-z?sYB_jtJieM@SH&SK~jRJNKQ)@%7B?theY5}t?LB9Hml zYTa^<$;CJJ=w5-zLta6hw(_+BaZrT%vV`k*;oj0{19El;_mfM|FERyaC+Q6u`o+S4 zLH#3YE7wqaxlw{PlgXjpvxM4GdH~~9yi_5C6D|L4@W%xJa?O)`&v~@<)^ymhx&n@(I zeOA+$i_O27i>@{HPkyPSNU;XIyWBD3~B5m;%1jfE3QrcZI z+$AZ}FyID7Q53xtD0=EK=b{I

Y}_ilFGR$07&{AA0a1=b$KBqyNl4xXay@Uy{6u zmNWCu%>Vt*`Dc?&x*R8`$rtv9;0Dr+q zcp8oB?+|g-)`RJI<@q5&OhM;V5WRz^0zrcMTOdNt%q1@n!MR&!cUY|{cJH-haawAr z+H^}3WpXwY4E;I~`g4H#AvJRtm$~bJmLR7HcwK-Wg78I8dZH&WdXmx6o4v!(e=$8q ze@1I-tmF&+kEf^~pTh9XjVIW=1bmRpL-_=Oluta;_ceQm!T-zYG5i^|&zIEJ$XoRX zLF!Z8#OA&eTwVhGliObCpWH_1pWN2>HG7Al|I^tq`qP81KlsOIsAsz8nA=V;c?s~3 zJi$N0;2#;_&E8?)557GHe@1BwqCfoK%u@gU7WN!-V;#QPBRt_>Aft}3ouL5^dai!z z7GcJugsm3vu-fBMv>qh^uTcKyg$Q}p2<6k={q#^1)rmO%A`p5SpdO#6zBv~eZ#r)I zF!dDh5=l7(JX?aC0{CJJ@mmWqaIuTzd)Fax>Dg(8xEjhQr6hS?G zD?-ldLWEEE#je_FE0BVwLO&0LejA|vbCEi@81dN56QZvTfcGRoLkU0`w=8uyM!kW5 z8H$k82Jp8!ZAn_&=Y>tN+iD9;yQgSah=V}rs{r*mNjff=o55qSu+%MlA3l~&1 zR_m!YdASH*6>#f$d%k5UIw9RCxWy|C(k){Fe%M_|!OfZ-XFGHxL=yGOl&e@Ts1e@256 z3c^J0*rMd~E7Y_1K&n~=anxs5KY+#d^>Z*6{?RM9x&OYCB*HlV@CXdUp=g+ljpXX0C3ytT`9G~jXpKBhMo-@x{Vv)1ZG*6`~ z#6|=ZKu*J$SHjmRMz+*D6RE~NXvHa^GcjD>&SdOWU?pH`7?cQ2%|+(EKHf^6I^If~ zI@U^I?1Z;2&*sZWa}a7*eew3#A*iW#7=SQ=uTVeB+kEAKF&ga|4wKM zGGyrY`YvEvrRRmTI|Kj|EXiE{q{rh}d>dA^4eSiL=kFU>1_3nL46Y=PSsKUx3 z(3PGf!Hn&eC<*tSWBRW5wP6QMjP{fk55;8^W-C3pGqeb8Zdc?rG%kx8E3g_1(;q}d z1*W%@9kh1qUgpNF=);F&FisTF@y8mpj|0sFZ2}egwDZxn)MmA%#K$j)4axlQIzTk! zjanaD+{_)M?w}tbbECp`bF~pB*uAEIS+_zrPX}p&tK~GW;7j_Q&&_W) z$;%v_bX$BlbwyTdckuxxwYVhXY2lZ-luU;$Abbbxir*GzDsn^I>mTQS(pIfhJ zoKk4rX{EW^-N8;yHpZk>hm*^an5~R*yX~FolG@_rjMliDTghdUaV|Shb4*@ls};48 zN%iX0xP<0$N=4-u*hfh>VSSU2r($9)jcGZh(qpT|ej~fp+FgHX=IZslHUw>D5ZCUM)9;>>9!cxGTMSBDKd>lM3RMlPX)~R%|(^#8VFJhCJdhZ{f)O;_SA9CJ;$(d(XLCCtrcU{L__5gnOI?z7qC1s*shjN z)|Sdi9_(vHZN0=xZxElHggB@iu0!{nleY6vT+1f~lmk#K$c;{;y1!RTB%3IP zkniwHlM!oWi63HLeJ;M@ZuuzvFafbTVymg1A3i~@48c$PT+0_YI~^l0K^ zz$Nz8a;>@B$fPA+mimpgVqd5xjTrOLV>YF7YnA1CqFe%*I)G=DTdMQ~#us;oQ%Z@V zPKR6)ABYuOu7w;gtkz#Hrn8xtP%GeE=8+pmkQXdEpUuD-k{Q|a2;}8hao5P*?%Zz2 zt2H3M!1`F-I#2df8w|?vW8dQB)Lx@jEFoPss-O==-`fLQ58028r~6!XUjkj9q~3Ji zu||`vI(WOzMvx7~{HQEvI$XB0S4tTE;B{6y?B~we4qZFXNuP72DDg_8Q&0Hj!x8vh z0?udueEoXow+}9K9#@cWX}s>sZoMh4IbM0j?q5d{56${gxg+?W9}c=#Jk;e>pYx5+ ze4k4Uyy_fXPZcApTzZ#l1@T<$Sv`BA6u?l$uYV3 z#xC6}FnNe8$kSH5Hoy;xkYAQ@{w~~I9&JF(ZsU4#8R|u*0OcgTK|{S*7%-@QL}ld~ zDla!mP-ZeYRC|_CSxOI}zlv8%(4(`s{=`Ko5NLXR_txU#EoiJ|(QH)gq7HiL53Wy5 zJwio%59VLnS=?M)1bUio;#oX;x6)&R4ee-Z76c$9LODK5&b z(jT;jRFT#5!4}H>Mm_-jZlS9JP-%J#z0&I9wnHCCX?A^J(V!k}3hR{-?7Ze&&+rrL z)rs}@P@nfZfAGCxK!Yma?ttxwmt&#stfmb6X1wi-OqaIKXqp~fgZa6|zAn#d8t-DW zFWyC$8rvtoTvDW11MV(&kbOt@(0bT&ZPl9}+ArOKdPPGZX@)cA=jgiWAEg1_-)0Z& zTDpJiq4n6lM(v0;*+O{ttn~#9TAz=bh?8!QEMTq1aDS(7_+yE=_2TkcH7k7+@w>MB za`G0t=6pJ1`s1PUB73ICwLBIlokRXpw${IxyhYHF?(gY=;eTnvzSwE>_{CPk{>va< z>$bZN>VJ3-mO}i)gMiWd@YXM}c7Mm4uuyYy7%y|znqPpJ*Zre_vjApd#4no5-~<8p zZkleuoruj=hWMTZG{6V@;tfkQ_$Bx|n3$(m(PW*7S};Y|2fBzG^KnaeBGdkLV?7oX x=xa0)zT9EEpY%lS2H)x2z~2?-jSmO&_>02a*YKZWU+`bzt9J=v6aL@I{{u+yLU{lH literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/97e8b3fbaecd4cc2b2e4d14fa9e5e666.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/97e8b3fbaecd4cc2b2e4d14fa9e5e666.parquet new file mode 100644 index 0000000000000000000000000000000000000000..3c1f8b9c59b79f7dc700863f019d51069a88e7e4 GIT binary patch literal 10585 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 O@!4Ahu>t>6<^KV=-bif# literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/a46cd9e1735d4863870bcab9be1707b5.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/a46cd9e1735d4863870bcab9be1707b5.parquet new file mode 100644 index 0000000000000000000000000000000000000000..198f51eb0eb612928c80f6b080777bf5e18f0b6a GIT binary patch literal 10620 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 Df^JQ< literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/ab4c3cfbafc74feea978c4e4ff06ddca.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/ab4c3cfbafc74feea978c4e4ff06ddca.parquet new file mode 100644 index 0000000000000000000000000000000000000000..013e34dd866da6ea81df162058ecdc692d4e871f GIT binary patch literal 10613 zcmc&)-EZ606{j3Sv9q+z(om3Ft@YG}NRc#_WXp|;Vi-kRvQ$g4lvrOy5%9|vZIWU| zO0rZ0=!QP*VJ`!QJ{5Z!_BiaJ1F~TlhN2kyCk(}~hhh(X=yOpNTd{L5KSYY8^HJMj zYl`=td(Ziu&wI#rhpwl|d2)e#VVj&IiOU3W?N2NJTb}344+an?n{v|T$N!tY);GpY+4}a#f z|AI}4J5M0Pd7jR~y3kbq_oW1R!Aj-x{iFQY5cQcn{xlN%GD3a)9QF0Hi7C_RQ;5(& z1+S2lN5Km4Cs^Fy((OFb1z&|K_Sk=P$2)VG(Z2bU88%mN{X`T%6l0|yw;QD%_Cme5&Ke4V0r`9z)C!b#Qqhb{z_8cU9s)&VI3mysVn!J7pBTZb%Qkq zx=Ww0!8c;ESnNvu%D3a?C0q$Y{m)Wjk1q_G}Y%>l>Pb+cuW)+kDoqF zQ2%@p^zw5Jk@eL5^q=Kfy$Y=4)9W8EQ@?!qd;9AJ@`fk>pOFY+5zH;ALs2z){qd~R z)`@G24lzD`40h4Cueb_Om3}f+-(2%SZOa?+1xL{~R1V z3pT!BQ>IVI>;Bnb_}@@dPb?bHQ9;%ynk#8Oze;^{6`bH_7$PP>C4zjGTt+pPFgw6V zBp!*tcKmDOI-hguEA_iq6C|;86`H+xl;sU+Xqt2<#!;VKdlNRh_b<0OUN(1=W9(ViiwwFjINllTO+arVuLu+(M>N z1zrN7mP3iy+)`rctJ7`lsncz|sZ(u?sncv+sncyNsk3bIPOurH&bB?GPQ78F&a8!? z&g@X9PWsHH&f*k&;zKR=#Sde1P$y%bkyi+KiHk=yRux!1{_E%7OG>IB9^K=6@<37b zL|M4!oin-KGsYTPm>j4Q4;^O`R;vR= z8#{y^cOdcxnpZ@F6)Ze&HU{X~?!epZG<)DW@UX`t;!!>>`|oT<5EW zU$TdE8nUg=3x3HiLa5yJwI_}+>x+P2u8S}u_wn-07t;Z+@_y+di)N5Ws zI=@dBXnLP!_VHXk@1c*-~EQ4xMMDuUZUv{4g261Gl5^c3GQw9%a7X4>|wiA zq3QA_?9abmQshCW*jQ_2szYw8VQ^|ix-I3o)}7IQNwMbSoW?12Su8dtrGwsnb5)l( zrC@aKl-5hdY?>>M^b%86*k(iT6mo-hGcBWaoZ8Si2KcD?F6{5}>0C-|gL^02LFa(lIA(wmJ`yIJoF#Z80{a5o0+Ozx0vW>qAs zBsX^JQfjTFrgI+bmOkRR?BFUX0`Td|yj<6~rYXOp$TC-~?>TxgWwqU^_d2ceE{pV$ zLiA9MG=8!gx z1F#K{|M+x%$Q6%du=QEm&6J($blIjyw(o2N-B8X?>PkW5ijBis#)^lav(n=~f6eyT z+IvohoGVqCS36oe6Iu@^5O*0kpTq0*_dCBsaG~?Kfnv+x%~Id+pTgI z_djYr3(sS2mB)NswQjw{l+xP=^q|6&A+MlLJNepyIH*E>S;O_aa%XL_4LQ4q`^h!v z7nusQlk_$X{bFUrp#BlHm7A!&+^#{J$&^sE(J>8*oX zD=W9)VY7% z{h<|)HRjf%>+AHa^y^68^@GRLx7xSY(*-*okJT6XGe7O+u{!w@il4f(|IzfVf{o00 z&yTG5%Uk}%L1X4G_8N{~2FcoTz3ZUyTX$hAp7<~kH^Ci|D@0bY-Jtv3pGIyNy z707urJ}S5hU?EoiqO}Yz5b)kj(;avxVvCJ2e$N6L-~+yxVU32kgm?!R^YjKF! Q@n7PLmk449{)fx|0}y9RCIA2c literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/de8b290d3ea5451bb3db22143870c12d.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/de8b290d3ea5451bb3db22143870c12d.parquet new file mode 100644 index 0000000000000000000000000000000000000000..098559f5d9740cf026f3967042b91995f36b8697 GIT binary patch literal 10578 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 F{{iw#J^=s# literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/009897b213f44df0abcfe32013b6186d.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/009897b213f44df0abcfe32013b6186d.parquet new file mode 100644 index 0000000000000000000000000000000000000000..24a72a61c2556aec28e799886126d6a3e191f830 GIT binary patch literal 10620 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 GyZk>+D{8<1 literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/1d4804687bda4721be154062eb88c308.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/1d4804687bda4721be154062eb88c308.parquet new file mode 100644 index 0000000000000000000000000000000000000000..01e32e57eceadfe02198b1e3755aba87a7446ca8 GIT binary patch literal 10592 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 literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/6b6f1196e1bb46afb3faf777c1d248bc.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/6b6f1196e1bb46afb3faf777c1d248bc.parquet new file mode 100644 index 0000000000000000000000000000000000000000..18f4659c136cb418efde1b637217b3fc0a9c9fca GIT binary patch literal 10585 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 LO%UtwKUMx8S;t1d literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/8176cbfd61614098909f081559065064.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/8176cbfd61614098909f081559065064.parquet new file mode 100644 index 0000000000000000000000000000000000000000..aeda9343a3064f091b01555b2b5ce4b4982a4b16 GIT binary patch literal 10578 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 literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/dbd4ab449ce14d4b855b1477c9632863.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/dbd4ab449ce14d4b855b1477c9632863.parquet new file mode 100644 index 0000000000000000000000000000000000000000..385de388f304988adec019110ddfba74e28b243d GIT binary patch literal 10613 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 Date: Mon, 4 Jul 2022 11:51:17 +0200 Subject: [PATCH 38/82] Add aos Signed-off-by: jefvantongerloo --- tests/integration/test_sqcmds.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/integration/test_sqcmds.py b/tests/integration/test_sqcmds.py index 54d5cbde4c..38692250ff 100644 --- a/tests/integration/test_sqcmds.py +++ b/tests/integration/test_sqcmds.py @@ -436,6 +436,15 @@ def _test_sqcmds(testvar, context_config): raise Exception(f"either xfail or output requried {error}") +@ pytest.mark.smoke +@ pytest.mark.sqcmds +@ pytest.mark.parametrize( + "testvar", + load_up_the_tests(os.scandir(os.path.abspath(os.curdir) + + '/tests/integration/sqcmds/aos-samples'))) +def test_aos_sqcmds(testvar, create_context_config): + _test_sqcmds(testvar, create_context_config) + @ pytest.mark.smoke @ pytest.mark.sqcmds @ pytest.mark.parametrize( From 145528276aa21c416944040e405aa488b62fdedf Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 7 Jul 2022 19:37:06 +0200 Subject: [PATCH 39/82] Regex as raw string Signed-off-by: jefvantongerloo --- suzieq/poller/worker/nodes/node.py | 6 +++--- suzieq/poller/worker/services/device.py | 4 ++-- suzieq/poller/worker/services/inventory.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/suzieq/poller/worker/nodes/node.py b/suzieq/poller/worker/nodes/node.py index f203cc7224..fa8c0d9fc9 100644 --- a/suzieq/poller/worker/nodes/node.py +++ b/suzieq/poller/worker/nodes/node.py @@ -1294,13 +1294,13 @@ async def _parse_init_dev_data(self, output, cb_token) -> None: data = output[0]['data'] # Extract hostname - hname = re.search('\s+Name:\s+(\S+),', data) + hname = re.search(r'\s+Name:\s+(\S+),', data) hostname = hname.group(1) if hostname: self._set_hostname(hostname) - uptime_result = re.search('\s+Up Time:\s+(\d{1,3})\sdays\s(\d{1,2})\shours\s(\d{1,2})\sminutes\sand\s(\d{1,2})\sseconds,', data) + uptime_result = re.search(r'\s+Up Time:\s+(\d{1,3})\sdays\s(\d{1,2})\shours\s(\d{1,2})\sminutes\sand\s(\d{1,2})\sseconds,', data) days = uptime_result.group(1).strip() hours = uptime_result.group(2).strip() minutes = uptime_result.group(3).strip() @@ -1318,7 +1318,7 @@ async def _fetch_init_dev_data(self): ["show system"], None, 'text') def _extract_nos_version(self, data: str) -> None: - version_result = re.search('((\d+\.){3,}.*?(?=,))', data) + version_result = re.search(r'((\d+\.){3,}.*?(?=,))', data) version = version_result.group(1) self.version = version diff --git a/suzieq/poller/worker/services/device.py b/suzieq/poller/worker/services/device.py index b5016334dd..d1c5197666 100644 --- a/suzieq/poller/worker/services/device.py +++ b/suzieq/poller/worker/services/device.py @@ -30,12 +30,12 @@ def _clean_aos_data(self, processed_data, raw_data): entry, = processed_data - description_result = re.search('^Alcatel-Lucent\sEnterprise\s(\S+)\s((\d+\.){3,}.*?(?=,)),\s\w+\s\d{1,2},\s\d{4,}.', entry['description']) + description_result = re.search(r'^Alcatel-Lucent\sEnterprise\s(\S+)\s((\d+\.){3,}.*?(?=,)),\s\w+\s\d{1,2},\s\d{4,}.', entry['description']) model = description_result.group(1) version = description_result.group(2) # sample output: '0 days 0 hours 3 minutes and 28 seconds' - uptime_result = re.search('(\d+) days (\d{1,2}) hours (\d{1,2}) minutes and (\d{1,2}) seconds', entry['up_time']) + uptime_result = re.search(r'(\d+) days (\d{1,2}) hours (\d{1,2}) minutes and (\d{1,2}) seconds', entry['up_time']) days = uptime_result.group(1) hours = uptime_result.group(2) minutes = uptime_result.group(3) diff --git a/suzieq/poller/worker/services/inventory.py b/suzieq/poller/worker/services/inventory.py index dd58b1b068..867e202966 100644 --- a/suzieq/poller/worker/services/inventory.py +++ b/suzieq/poller/worker/services/inventory.py @@ -34,7 +34,7 @@ def _clean_aos_data(self, processed_data, _): type = entry.get('description', -1) partType = entry.get('model_type', -1) - version_result = re.search('(\d+\.){3,}.*?(?=,)', system.get('description')) + version_result = re.search(r'(\d+\.){3,}.*?(?=,)', system.get('description')) version = version_result.group(0) if entry.get('admin_status') == 'POWER ON' and entry.get('operational_status') == 'UP': From 8d298082f21e57fe6d4330dfbf4d5bbaa67cf0d0 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 7 Jul 2022 19:56:33 +0200 Subject: [PATCH 40/82] Adjust `detected_speed` key to `speed` Signed-off-by: jefvantongerloo --- .../config/textfsm_templates/aos_show_interfaces_status.tfsm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm b/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm index f68cf3cc42..567a90f538 100644 --- a/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm +++ b/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm @@ -1,7 +1,7 @@ Value Key,Required chassis_slot_port (\d/\d+/\d+[\w]*) Value admin_status (-|en|dis) Value autonego (-|en|dis) -Value detected_speed (-|Auto|10|100|1000|2500|5000|10000|21000|25000|40000|50000|100000) +Value speed (-|Auto|10|100|1000|2500|5000|10000|21000|25000|40000|50000|100000) Value detected_duplex (-|Half|Full|Auto) Value detected_pause (-|Rx-N-Tx|Rx|Tx) Value detected_fec (-|FC|RS|DIS) @@ -19,5 +19,5 @@ Start ^[-+\+]+\s*$$ -> Interfaces Interfaces - ^\s*${chassis_slot_port}\s+${admin_status}\s+${autonego}\s+${detected_speed}\s+${detected_duplex}\s+${detected_pause}\s+${detected_fec}\s+${configured_speed}\s+${configured_duplex}\s+${configured_pause}\s+${configured_fec}\s+${trap_linkupdown}\s+${eee}\s*$$ -> Record + ^\s*${chassis_slot_port}\s+${admin_status}\s+${autonego}\s+${speed}\s+${detected_duplex}\s+${detected_pause}\s+${detected_fec}\s+${configured_speed}\s+${configured_duplex}\s+${configured_pause}\s+${configured_fec}\s+${trap_linkupdown}\s+${eee}\s*$$ -> Record # ^. -> Error \ No newline at end of file From c86265087a72b38a284d84d1d3238af80297af4f Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 7 Jul 2022 19:57:07 +0200 Subject: [PATCH 41/82] Call dict value directly instead of .get Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/arpnd.py | 6 +++--- suzieq/poller/worker/services/interfaces.py | 18 +++++++++--------- suzieq/poller/worker/services/inventory.py | 10 +++++----- suzieq/poller/worker/services/macs.py | 12 ++++++------ suzieq/poller/worker/services/vlan.py | 4 ++-- 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/suzieq/poller/worker/services/arpnd.py b/suzieq/poller/worker/services/arpnd.py index 20c328d712..e382fca021 100644 --- a/suzieq/poller/worker/services/arpnd.py +++ b/suzieq/poller/worker/services/arpnd.py @@ -14,9 +14,9 @@ def _clean_aos_data(self, processed_data, _): entry, = processed_data - entry['ipAddress'] = entry.get('ip_address', '-1') - entry['macaddr'] = entry.get('hardware_addr', '-1') - entry['oif'] = entry.get('port', '-1') # or 'port' for physical interface + entry['ipAddress'] = entry['ip_address'] + entry['macaddr'] = entry['hardware_addr'] + entry['oif'] = entry['port'] return processed_data diff --git a/suzieq/poller/worker/services/interfaces.py b/suzieq/poller/worker/services/interfaces.py index d6c970b9ac..18475844a5 100644 --- a/suzieq/poller/worker/services/interfaces.py +++ b/suzieq/poller/worker/services/interfaces.py @@ -80,15 +80,15 @@ def _clean_aos_data(self, processed_data, _): entry_dict = {} - adminState = interfaces_status.get('admin_status', -1) - ifname = interfaces_status.get('chassis_slot_port', -1) - interfaceMac = interfaces.get('mac_address', -1) - mtu = interfaces.get('long_frame_size', -1) - numChanges = interfaces.get('number_of_status_change', -1) - reason = interfaces.get('port_down_violation_reason', -1) - speed = interfaces_status.get('detected_speed', -1) - state = interfaces.get('operation_status', -1) - type = interfaces.get('type', -1) + adminState = interfaces_status['admin_status'] + ifname = interfaces_status['chassis_slot_port'] + interfaceMac = interfaces['mac_address'] + mtu = interfaces['long_frame_size'] + numChanges = interfaces['number_of_status_change'] + reason = interfaces['port_down_violation_reason'] + speed = self._textfsm_valid_speed_value(interfaces_status) + state = interfaces['operation_status'] + type = interfaces['type'] vlans = [vlan_member['vlan'] for vlan_member in entry_vlan_members if vlan_member['port'] == ifname if vlan_member['type'] == 'default'] vlanList = [vlan_member['vlan'] for vlan_member in entry_vlan_members if vlan_member['port'] == ifname if vlan_member['type'] == 'unpUntag'] diff --git a/suzieq/poller/worker/services/inventory.py b/suzieq/poller/worker/services/inventory.py index 867e202966..7d8566e2f1 100644 --- a/suzieq/poller/worker/services/inventory.py +++ b/suzieq/poller/worker/services/inventory.py @@ -27,12 +27,12 @@ def _clean_aos_data(self, processed_data, _): entry_dict = {} - model = entry.get('model_name', -1) - serial = entry.get('serial_number', -1) - partNum = entry.get('part_number', -1) + model = entry['model_name'] + serial = entry['serial_number'] + partNum = entry['part_number'] vendor = "Alcatel-Lucent Enterprise" - type = entry.get('description', -1) - partType = entry.get('model_type', -1) + type = entry['description'] + partType = entry['model_type'] version_result = re.search(r'(\d+\.){3,}.*?(?=,)', system.get('description')) version = version_result.group(0) diff --git a/suzieq/poller/worker/services/macs.py b/suzieq/poller/worker/services/macs.py index 00027ba3d3..a4c871a84b 100644 --- a/suzieq/poller/worker/services/macs.py +++ b/suzieq/poller/worker/services/macs.py @@ -60,13 +60,13 @@ def _clean_aos_data(self, processed_data, _): entry_dict = {} - protocol = entry.get('domain', -1) - vlan = entry.get('id', -1) - macaddr = entry.get('mac_address', -1) + protocol = entry['domain'] + vlan = entry['id'] + macaddr = entry['mac_address'] #Where does this parameter go? - entry.get('type', -1) - flags = entry.get('operation', -1) - oif = entry.get('interface', -1) + entry['type'] + flags = entry['operation'] + oif = entry['interface'] if entry.get('vlanadmstatus') == 'Ena' and entry.get('vlanoperstatus') == 'Ena': state = 'active' diff --git a/suzieq/poller/worker/services/vlan.py b/suzieq/poller/worker/services/vlan.py index 38167322a3..74d534723a 100644 --- a/suzieq/poller/worker/services/vlan.py +++ b/suzieq/poller/worker/services/vlan.py @@ -28,8 +28,8 @@ def _clean_aos_data(self, processed_data, _): entry_dict = {} - vlan = entry.get('vlannumber', -1) - vlanName = entry.get('vlandescription', -1) + vlan = entry['vlannumber'] + vlanName = entry['vlandescription'] interfaces = [member.get('port') for member in entry_vlan_members if member.get('vlan') == vlan] From de18f216a7db57e4957acacf279698c4fcafc792 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 7 Jul 2022 20:00:17 +0200 Subject: [PATCH 42/82] Regex as raw string Signed-off-by: jefvantongerloo --- suzieq/poller/worker/nodes/node.py | 6 +++--- suzieq/poller/worker/services/device.py | 4 ++-- suzieq/poller/worker/services/inventory.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/suzieq/poller/worker/nodes/node.py b/suzieq/poller/worker/nodes/node.py index fa8c0d9fc9..f203cc7224 100644 --- a/suzieq/poller/worker/nodes/node.py +++ b/suzieq/poller/worker/nodes/node.py @@ -1294,13 +1294,13 @@ async def _parse_init_dev_data(self, output, cb_token) -> None: data = output[0]['data'] # Extract hostname - hname = re.search(r'\s+Name:\s+(\S+),', data) + hname = re.search('\s+Name:\s+(\S+),', data) hostname = hname.group(1) if hostname: self._set_hostname(hostname) - uptime_result = re.search(r'\s+Up Time:\s+(\d{1,3})\sdays\s(\d{1,2})\shours\s(\d{1,2})\sminutes\sand\s(\d{1,2})\sseconds,', data) + uptime_result = re.search('\s+Up Time:\s+(\d{1,3})\sdays\s(\d{1,2})\shours\s(\d{1,2})\sminutes\sand\s(\d{1,2})\sseconds,', data) days = uptime_result.group(1).strip() hours = uptime_result.group(2).strip() minutes = uptime_result.group(3).strip() @@ -1318,7 +1318,7 @@ async def _fetch_init_dev_data(self): ["show system"], None, 'text') def _extract_nos_version(self, data: str) -> None: - version_result = re.search(r'((\d+\.){3,}.*?(?=,))', data) + version_result = re.search('((\d+\.){3,}.*?(?=,))', data) version = version_result.group(1) self.version = version diff --git a/suzieq/poller/worker/services/device.py b/suzieq/poller/worker/services/device.py index d1c5197666..b5016334dd 100644 --- a/suzieq/poller/worker/services/device.py +++ b/suzieq/poller/worker/services/device.py @@ -30,12 +30,12 @@ def _clean_aos_data(self, processed_data, raw_data): entry, = processed_data - description_result = re.search(r'^Alcatel-Lucent\sEnterprise\s(\S+)\s((\d+\.){3,}.*?(?=,)),\s\w+\s\d{1,2},\s\d{4,}.', entry['description']) + description_result = re.search('^Alcatel-Lucent\sEnterprise\s(\S+)\s((\d+\.){3,}.*?(?=,)),\s\w+\s\d{1,2},\s\d{4,}.', entry['description']) model = description_result.group(1) version = description_result.group(2) # sample output: '0 days 0 hours 3 minutes and 28 seconds' - uptime_result = re.search(r'(\d+) days (\d{1,2}) hours (\d{1,2}) minutes and (\d{1,2}) seconds', entry['up_time']) + uptime_result = re.search('(\d+) days (\d{1,2}) hours (\d{1,2}) minutes and (\d{1,2}) seconds', entry['up_time']) days = uptime_result.group(1) hours = uptime_result.group(2) minutes = uptime_result.group(3) diff --git a/suzieq/poller/worker/services/inventory.py b/suzieq/poller/worker/services/inventory.py index 7d8566e2f1..7f12435066 100644 --- a/suzieq/poller/worker/services/inventory.py +++ b/suzieq/poller/worker/services/inventory.py @@ -34,7 +34,7 @@ def _clean_aos_data(self, processed_data, _): type = entry['description'] partType = entry['model_type'] - version_result = re.search(r'(\d+\.){3,}.*?(?=,)', system.get('description')) + version_result = re.search('(\d+\.){3,}.*?(?=,)', system.get('description')) version = version_result.group(0) if entry.get('admin_status') == 'POWER ON' and entry.get('operational_status') == 'UP': From 040ee096cc6be18c3e42eb6da6a22db93f6362ff Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 7 Jul 2022 19:37:06 +0200 Subject: [PATCH 43/82] Regex as raw string Signed-off-by: jefvantongerloo --- suzieq/poller/worker/nodes/node.py | 6 +++--- suzieq/poller/worker/services/device.py | 4 ++-- suzieq/poller/worker/services/inventory.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/suzieq/poller/worker/nodes/node.py b/suzieq/poller/worker/nodes/node.py index f203cc7224..fa8c0d9fc9 100644 --- a/suzieq/poller/worker/nodes/node.py +++ b/suzieq/poller/worker/nodes/node.py @@ -1294,13 +1294,13 @@ async def _parse_init_dev_data(self, output, cb_token) -> None: data = output[0]['data'] # Extract hostname - hname = re.search('\s+Name:\s+(\S+),', data) + hname = re.search(r'\s+Name:\s+(\S+),', data) hostname = hname.group(1) if hostname: self._set_hostname(hostname) - uptime_result = re.search('\s+Up Time:\s+(\d{1,3})\sdays\s(\d{1,2})\shours\s(\d{1,2})\sminutes\sand\s(\d{1,2})\sseconds,', data) + uptime_result = re.search(r'\s+Up Time:\s+(\d{1,3})\sdays\s(\d{1,2})\shours\s(\d{1,2})\sminutes\sand\s(\d{1,2})\sseconds,', data) days = uptime_result.group(1).strip() hours = uptime_result.group(2).strip() minutes = uptime_result.group(3).strip() @@ -1318,7 +1318,7 @@ async def _fetch_init_dev_data(self): ["show system"], None, 'text') def _extract_nos_version(self, data: str) -> None: - version_result = re.search('((\d+\.){3,}.*?(?=,))', data) + version_result = re.search(r'((\d+\.){3,}.*?(?=,))', data) version = version_result.group(1) self.version = version diff --git a/suzieq/poller/worker/services/device.py b/suzieq/poller/worker/services/device.py index b5016334dd..d1c5197666 100644 --- a/suzieq/poller/worker/services/device.py +++ b/suzieq/poller/worker/services/device.py @@ -30,12 +30,12 @@ def _clean_aos_data(self, processed_data, raw_data): entry, = processed_data - description_result = re.search('^Alcatel-Lucent\sEnterprise\s(\S+)\s((\d+\.){3,}.*?(?=,)),\s\w+\s\d{1,2},\s\d{4,}.', entry['description']) + description_result = re.search(r'^Alcatel-Lucent\sEnterprise\s(\S+)\s((\d+\.){3,}.*?(?=,)),\s\w+\s\d{1,2},\s\d{4,}.', entry['description']) model = description_result.group(1) version = description_result.group(2) # sample output: '0 days 0 hours 3 minutes and 28 seconds' - uptime_result = re.search('(\d+) days (\d{1,2}) hours (\d{1,2}) minutes and (\d{1,2}) seconds', entry['up_time']) + uptime_result = re.search(r'(\d+) days (\d{1,2}) hours (\d{1,2}) minutes and (\d{1,2}) seconds', entry['up_time']) days = uptime_result.group(1) hours = uptime_result.group(2) minutes = uptime_result.group(3) diff --git a/suzieq/poller/worker/services/inventory.py b/suzieq/poller/worker/services/inventory.py index 7f12435066..7d8566e2f1 100644 --- a/suzieq/poller/worker/services/inventory.py +++ b/suzieq/poller/worker/services/inventory.py @@ -34,7 +34,7 @@ def _clean_aos_data(self, processed_data, _): type = entry['description'] partType = entry['model_type'] - version_result = re.search('(\d+\.){3,}.*?(?=,)', system.get('description')) + version_result = re.search(r'(\d+\.){3,}.*?(?=,)', system.get('description')) version = version_result.group(0) if entry.get('admin_status') == 'POWER ON' and entry.get('operational_status') == 'UP': From 356bdb0716a6a7b56dd6412945fabf925d67f6cd Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 7 Jul 2022 20:00:17 +0200 Subject: [PATCH 44/82] Regex as raw string Signed-off-by: jefvantongerloo --- suzieq/poller/worker/nodes/node.py | 6 +++--- suzieq/poller/worker/services/device.py | 4 ++-- suzieq/poller/worker/services/inventory.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/suzieq/poller/worker/nodes/node.py b/suzieq/poller/worker/nodes/node.py index fa8c0d9fc9..f203cc7224 100644 --- a/suzieq/poller/worker/nodes/node.py +++ b/suzieq/poller/worker/nodes/node.py @@ -1294,13 +1294,13 @@ async def _parse_init_dev_data(self, output, cb_token) -> None: data = output[0]['data'] # Extract hostname - hname = re.search(r'\s+Name:\s+(\S+),', data) + hname = re.search('\s+Name:\s+(\S+),', data) hostname = hname.group(1) if hostname: self._set_hostname(hostname) - uptime_result = re.search(r'\s+Up Time:\s+(\d{1,3})\sdays\s(\d{1,2})\shours\s(\d{1,2})\sminutes\sand\s(\d{1,2})\sseconds,', data) + uptime_result = re.search('\s+Up Time:\s+(\d{1,3})\sdays\s(\d{1,2})\shours\s(\d{1,2})\sminutes\sand\s(\d{1,2})\sseconds,', data) days = uptime_result.group(1).strip() hours = uptime_result.group(2).strip() minutes = uptime_result.group(3).strip() @@ -1318,7 +1318,7 @@ async def _fetch_init_dev_data(self): ["show system"], None, 'text') def _extract_nos_version(self, data: str) -> None: - version_result = re.search(r'((\d+\.){3,}.*?(?=,))', data) + version_result = re.search('((\d+\.){3,}.*?(?=,))', data) version = version_result.group(1) self.version = version diff --git a/suzieq/poller/worker/services/device.py b/suzieq/poller/worker/services/device.py index d1c5197666..b5016334dd 100644 --- a/suzieq/poller/worker/services/device.py +++ b/suzieq/poller/worker/services/device.py @@ -30,12 +30,12 @@ def _clean_aos_data(self, processed_data, raw_data): entry, = processed_data - description_result = re.search(r'^Alcatel-Lucent\sEnterprise\s(\S+)\s((\d+\.){3,}.*?(?=,)),\s\w+\s\d{1,2},\s\d{4,}.', entry['description']) + description_result = re.search('^Alcatel-Lucent\sEnterprise\s(\S+)\s((\d+\.){3,}.*?(?=,)),\s\w+\s\d{1,2},\s\d{4,}.', entry['description']) model = description_result.group(1) version = description_result.group(2) # sample output: '0 days 0 hours 3 minutes and 28 seconds' - uptime_result = re.search(r'(\d+) days (\d{1,2}) hours (\d{1,2}) minutes and (\d{1,2}) seconds', entry['up_time']) + uptime_result = re.search('(\d+) days (\d{1,2}) hours (\d{1,2}) minutes and (\d{1,2}) seconds', entry['up_time']) days = uptime_result.group(1) hours = uptime_result.group(2) minutes = uptime_result.group(3) diff --git a/suzieq/poller/worker/services/inventory.py b/suzieq/poller/worker/services/inventory.py index 7d8566e2f1..7f12435066 100644 --- a/suzieq/poller/worker/services/inventory.py +++ b/suzieq/poller/worker/services/inventory.py @@ -34,7 +34,7 @@ def _clean_aos_data(self, processed_data, _): type = entry['description'] partType = entry['model_type'] - version_result = re.search(r'(\d+\.){3,}.*?(?=,)', system.get('description')) + version_result = re.search('(\d+\.){3,}.*?(?=,)', system.get('description')) version = version_result.group(0) if entry.get('admin_status') == 'POWER ON' and entry.get('operational_status') == 'UP': From 3464466fc8aa6f839490bc4ee7ddb853845269b3 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 7 Jul 2022 20:14:20 +0200 Subject: [PATCH 45/82] =?UTF-8?q?Remove=20=C2=B4type=C2=B4=20entry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/macs.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/suzieq/poller/worker/services/macs.py b/suzieq/poller/worker/services/macs.py index a4c871a84b..af795d6a5d 100644 --- a/suzieq/poller/worker/services/macs.py +++ b/suzieq/poller/worker/services/macs.py @@ -63,8 +63,6 @@ def _clean_aos_data(self, processed_data, _): protocol = entry['domain'] vlan = entry['id'] macaddr = entry['mac_address'] - #Where does this parameter go? - entry['type'] flags = entry['operation'] oif = entry['interface'] @@ -79,7 +77,6 @@ def _clean_aos_data(self, processed_data, _): 'macaddr': macaddr, 'flags': flags, 'oif': oif, - 'type': type } entry_new.append(entry_dict) From 46acc11ee3e95e709b70ead3e3d91b829f4a54d9 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 7 Jul 2022 20:53:50 +0200 Subject: [PATCH 46/82] Linting (Flake8 + Pylint) Signed-off-by: jefvantongerloo --- suzieq/poller/worker/nodes/node.py | 21 +++++++++++++----- suzieq/poller/worker/services/device.py | 12 +++++------ suzieq/poller/worker/services/interfaces.py | 4 ++-- suzieq/poller/worker/services/inventory.py | 8 +++---- suzieq/poller/worker/services/macs.py | 24 ++++++++++----------- suzieq/poller/worker/services/vlan.py | 16 +++++++------- suzieq/restServer/query.py | 2 +- 7 files changed, 48 insertions(+), 39 deletions(-) diff --git a/suzieq/poller/worker/nodes/node.py b/suzieq/poller/worker/nodes/node.py index f203cc7224..ff0f19bd7a 100644 --- a/suzieq/poller/worker/nodes/node.py +++ b/suzieq/poller/worker/nodes/node.py @@ -358,7 +358,7 @@ async def _parse_device_type_hostname(self, output, _) -> None: version_str = data if 'Alcatel-Lucent' in data: - devtype = "aos" + devtype = "aos" elif 'Arista' in data or 'vEOS' in data: devtype = "eos" elif "JUNOS " in data: @@ -1285,22 +1285,32 @@ def _extract_nos_version(self, data) -> None: else: self.version = data['version'] + class AosNode(Node): '''Alcatel AOS Node-specific implementation''' + async def _init_rest(self): + raise NotImplementedError( + f'{self.address}: REST transport is not supported') + + async def _rest_gather(self, service_callback, cmd_list, cb_token, + oformat='json', timeout=None): + raise NotImplementedError( + f'{self.address}: REST transport is not supported') + async def _parse_init_dev_data(self, output, cb_token) -> None: - + if output[0]['status'] == 0: data = output[0]['data'] # Extract hostname - hname = re.search('\s+Name:\s+(\S+),', data) + hname = re.search(r'\s+Name:\s+(\S+),', data) hostname = hname.group(1) if hostname: self._set_hostname(hostname) - uptime_result = re.search('\s+Up Time:\s+(\d{1,3})\sdays\s(\d{1,2})\shours\s(\d{1,2})\sminutes\sand\s(\d{1,2})\sseconds,', data) + uptime_result = re.search(r'\s+Up Time:\s+(\d{1,3})\sdays\s(\d{1,2})\shours\s(\d{1,2})\sminutes\sand\s(\d{1,2})\sseconds,', data) days = uptime_result.group(1).strip() hours = uptime_result.group(2).strip() minutes = uptime_result.group(3).strip() @@ -1318,10 +1328,11 @@ async def _fetch_init_dev_data(self): ["show system"], None, 'text') def _extract_nos_version(self, data: str) -> None: - version_result = re.search('((\d+\.){3,}.*?(?=,))', data) + version_result = re.search(r'((\d+\.){3,}.*?(?=,))', data) version = version_result.group(1) self.version = version + class CumulusNode(Node): '''Cumulus Node specific implementation''' diff --git a/suzieq/poller/worker/services/device.py b/suzieq/poller/worker/services/device.py index b5016334dd..f1ddc0475c 100644 --- a/suzieq/poller/worker/services/device.py +++ b/suzieq/poller/worker/services/device.py @@ -30,24 +30,22 @@ def _clean_aos_data(self, processed_data, raw_data): entry, = processed_data - description_result = re.search('^Alcatel-Lucent\sEnterprise\s(\S+)\s((\d+\.){3,}.*?(?=,)),\s\w+\s\d{1,2},\s\d{4,}.', entry['description']) + description_result = re.search(r'^Alcatel-Lucent\sEnterprise\s(\S+)\s((\d+\.){3,}.*?(?=,)),\s\w+\s\d{1,2},\s\d{4,}.' \ + , entry['description']) model = description_result.group(1) version = description_result.group(2) # sample output: '0 days 0 hours 3 minutes and 28 seconds' - uptime_result = re.search('(\d+) days (\d{1,2}) hours (\d{1,2}) minutes and (\d{1,2}) seconds', entry['up_time']) + uptime_result = re.search(r'(\d+) days (\d{1,2}) hours (\d{1,2}) minutes and (\d{1,2}) seconds', entry['up_time']) days = uptime_result.group(1) hours = uptime_result.group(2) minutes = uptime_result.group(3) seconds = uptime_result.group(4) - upsecs = (24*3600*int(days) + - 3600*int(hours) + - 60*int(minutes) + - int(seconds)) + upsecs = 24 * 3600 * int(days) + 3600 * int(hours) + 60 * int(minutes) + int(seconds) if upsecs: - bootupTimestamp = int(int(raw_data[0]["timestamp"])/1000 - upsecs) + bootupTimestamp = int(int(raw_data[0]["timestamp"]) / 1000 - upsecs) entry['vendor'] = "Alcatel-Lucent Enterprise" entry['model'] = model diff --git a/suzieq/poller/worker/services/interfaces.py b/suzieq/poller/worker/services/interfaces.py index 18475844a5..207a03b39b 100644 --- a/suzieq/poller/worker/services/interfaces.py +++ b/suzieq/poller/worker/services/interfaces.py @@ -97,7 +97,7 @@ def _clean_aos_data(self, processed_data, _): vlan = "None" else: vlan = vlans[0] - + if len(vlanList) < 1: vlanList = "None" @@ -117,7 +117,7 @@ def _clean_aos_data(self, processed_data, _): 'state': state, 'type': type, 'vlan': vlan, - 'vlanList' : vlanList + 'vlanList': vlanList } entry_new.append(entry_dict) diff --git a/suzieq/poller/worker/services/inventory.py b/suzieq/poller/worker/services/inventory.py index 7f12435066..9beec6d82d 100644 --- a/suzieq/poller/worker/services/inventory.py +++ b/suzieq/poller/worker/services/inventory.py @@ -23,7 +23,7 @@ def _clean_aos_data(self, processed_data, _): # extract single list item (dict) system, = entry_system - for index, entry in enumerate(entry_chassis): + for entry in entry_chassis: entry_dict = {} @@ -33,15 +33,15 @@ def _clean_aos_data(self, processed_data, _): vendor = "Alcatel-Lucent Enterprise" type = entry['description'] partType = entry['model_type'] - - version_result = re.search('(\d+\.){3,}.*?(?=,)', system.get('description')) + + version_result = re.search(r'(\d+\.){3,}.*?(?=,)', system.get('description')) version = version_result.group(0) if entry.get('admin_status') == 'POWER ON' and entry.get('operational_status') == 'UP': status = 'up' else: status = 'down' - + entry_dict = { 'model': model, 'status': status, diff --git a/suzieq/poller/worker/services/macs.py b/suzieq/poller/worker/services/macs.py index af795d6a5d..74d36646ba 100644 --- a/suzieq/poller/worker/services/macs.py +++ b/suzieq/poller/worker/services/macs.py @@ -65,19 +65,19 @@ def _clean_aos_data(self, processed_data, _): macaddr = entry['mac_address'] flags = entry['operation'] oif = entry['interface'] - - if entry.get('vlanadmstatus') == 'Ena' and entry.get('vlanoperstatus') == 'Ena': - state = 'active' - else: - state = 'suspended' - + + # if entry.get('vlanadmstatus') == 'Ena' and entry.get('vlanoperstatus') == 'Ena': + # state = 'active' + # else: + # state = 'suspended' + entry_dict = { - 'protocol': protocol, - 'vlan': vlan, - 'macaddr': macaddr, - 'flags': flags, - 'oif': oif, - } + "protocol": protocol, + "vlan": vlan, + "macaddr": macaddr, + "flags": flags, + "oif": oif, + } entry_new.append(entry_dict) diff --git a/suzieq/poller/worker/services/vlan.py b/suzieq/poller/worker/services/vlan.py index 74d534723a..cb0628dd9c 100644 --- a/suzieq/poller/worker/services/vlan.py +++ b/suzieq/poller/worker/services/vlan.py @@ -29,20 +29,20 @@ def _clean_aos_data(self, processed_data, _): entry_dict = {} vlan = entry['vlannumber'] - vlanName = entry['vlandescription'] - + vlanName = entry['vlandescription'] + interfaces = [member.get('port') for member in entry_vlan_members if member.get('vlan') == vlan] - + if entry.get('vlanadmstatus') == 'Ena' and entry.get('vlanoperstatus') == 'Ena': state = 'active' else: state = 'suspended' - + entry_dict = {'vlanName': vlanName, - 'state': state, - 'vlan': vlan, - 'interfaces': interfaces, - } + 'state': state, + 'vlan': vlan, + 'interfaces': interfaces, + } entry_new.append(entry_dict) diff --git a/suzieq/restServer/query.py b/suzieq/restServer/query.py index 0860bb5c8c..442f716baa 100755 --- a/suzieq/restServer/query.py +++ b/suzieq/restServer/query.py @@ -95,7 +95,7 @@ def get_cert_files(cfg): print(f"ERROR: Missing certificate file: {ssl_keyfile}") sys.exit(1) - return ssl_keyfile, ssl_certfile + return ssl_keyfile,ssl_certfile def get_log_config_level(cfg): From f9e10185421ac91be52efc5e0d0dc6c067069bd7 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 8 Jul 2022 10:37:26 +0200 Subject: [PATCH 47/82] Linting (Flake8 + Pylint) Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/vlan.py | 19 ++++++++++++------- suzieq/restServer/query.py | 2 +- suzieq/shared/utils.py | 6 +++--- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/suzieq/poller/worker/services/vlan.py b/suzieq/poller/worker/services/vlan.py index cb0628dd9c..089ae9180b 100644 --- a/suzieq/poller/worker/services/vlan.py +++ b/suzieq/poller/worker/services/vlan.py @@ -21,8 +21,12 @@ def _clean_aos_data(self, processed_data, _): entry_vlan = [] entry_vlan_members = [] - entry_vlan = [item for item in processed_data if item.get('_entryType') == 'vlan'] - entry_vlan_members = [item for item in processed_data if item.get('_entryType') == 'members'] + entry_vlan = [ + item for item in processed_data if item.get("_entryType") == "vlan" + ] + entry_vlan_members = [ + item for item in processed_data if item.get("_entryType") == "members" + ] for entry in entry_vlan: @@ -38,11 +42,12 @@ def _clean_aos_data(self, processed_data, _): else: state = 'suspended' - entry_dict = {'vlanName': vlanName, - 'state': state, - 'vlan': vlan, - 'interfaces': interfaces, - } + entry_dict = { + "vlanName": vlanName, + "state": state, + "vlan": vlan, + "interfaces": interfaces, + } entry_new.append(entry_dict) diff --git a/suzieq/restServer/query.py b/suzieq/restServer/query.py index 442f716baa..c05e404b00 100755 --- a/suzieq/restServer/query.py +++ b/suzieq/restServer/query.py @@ -95,7 +95,7 @@ def get_cert_files(cfg): print(f"ERROR: Missing certificate file: {ssl_keyfile}") sys.exit(1) - return ssl_keyfile,ssl_certfile + return ssl_keyfile, ssl_certfile def get_log_config_level(cfg): diff --git a/suzieq/shared/utils.py b/suzieq/shared/utils.py index 11ab7a1869..b1dcbbb10e 100644 --- a/suzieq/shared/utils.py +++ b/suzieq/shared/utils.py @@ -754,9 +754,9 @@ def init_logger(logname: str, def known_devtypes() -> list: """Returns the list of known dev types""" - return(['aos', 'cumulus', 'eos', 'iosxe', 'iosxr', 'ios', 'junos-mx', 'junos-qfx', - 'junos-qfx10k', 'junos-ex', 'junos-es', 'linux', 'nxos', 'sonic', - 'panos']) + return(['aos', 'cumulus', 'eos', 'iosxe', 'iosxr', 'ios', 'junos-mx', + 'junos-qfx', 'junos-qfx10k', 'junos-ex', 'junos-es', 'linux', + 'nxos', 'sonic', 'panos']) def humanize_timestamp(field: pd.Series, tz=None) -> pd.Series: From c250e8b322db06c67b3ec3d419f84390d8c42afb Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 8 Jul 2022 10:46:12 +0200 Subject: [PATCH 48/82] Linting (Flake8 + Pylint) Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/device.py | 11 ++++++++--- suzieq/poller/worker/services/interfaces.py | 22 ++++++++++++++++----- suzieq/poller/worker/services/vlan.py | 4 +++- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/suzieq/poller/worker/services/device.py b/suzieq/poller/worker/services/device.py index f1ddc0475c..defcdcef0f 100644 --- a/suzieq/poller/worker/services/device.py +++ b/suzieq/poller/worker/services/device.py @@ -30,13 +30,18 @@ def _clean_aos_data(self, processed_data, raw_data): entry, = processed_data - description_result = re.search(r'^Alcatel-Lucent\sEnterprise\s(\S+)\s((\d+\.){3,}.*?(?=,)),\s\w+\s\d{1,2},\s\d{4,}.' \ - , entry['description']) + description_result = re.search( r'^Alcatel-Lucent\sEnterprise\s' + r'(\S+)\s((\d+\.){3,}.*?(?=,)),\s\w+\s\d{1,2},\s\d{4,}.' + , entry['description'] + ) model = description_result.group(1) version = description_result.group(2) # sample output: '0 days 0 hours 3 minutes and 28 seconds' - uptime_result = re.search(r'(\d+) days (\d{1,2}) hours (\d{1,2}) minutes and (\d{1,2}) seconds', entry['up_time']) + uptime_result = re.search( r'(\d+) days (\d{1,2}) hours (\d{1,2})' + r' minutes and (\d{1,2}) seconds' + , entry['up_time'] + ) days = uptime_result.group(1) hours = uptime_result.group(2) minutes = uptime_result.group(3) diff --git a/suzieq/poller/worker/services/interfaces.py b/suzieq/poller/worker/services/interfaces.py index 207a03b39b..176af86204 100644 --- a/suzieq/poller/worker/services/interfaces.py +++ b/suzieq/poller/worker/services/interfaces.py @@ -72,9 +72,15 @@ def _clean_aos_data(self, processed_data, _): entry_interfaces = [] entry_vlan_members = [] - entry_interfaces_status = [item for item in processed_data if item.get('_entryType') == 'interfaces_status'] - entry_interfaces = [item for item in processed_data if item.get('_entryType') == 'interfaces'] - entry_vlan_members = [item for item in processed_data if item.get('_entryType') == 'members'] + entry_interfaces_status = [ + item for item in processed_data if item.get('_entryType') == 'interfaces_status' + ] + entry_interfaces = [ + item for item in processed_data if item.get('_entryType') == 'interfaces' + ] + entry_vlan_members = [ + item for item in processed_data if item.get('_entryType') == 'members' + ] for interfaces_status, interfaces in zip(entry_interfaces_status, entry_interfaces): @@ -90,8 +96,14 @@ def _clean_aos_data(self, processed_data, _): state = interfaces['operation_status'] type = interfaces['type'] - vlans = [vlan_member['vlan'] for vlan_member in entry_vlan_members if vlan_member['port'] == ifname if vlan_member['type'] == 'default'] - vlanList = [vlan_member['vlan'] for vlan_member in entry_vlan_members if vlan_member['port'] == ifname if vlan_member['type'] == 'unpUntag'] + vlans = [ + vlan_member['vlan'] for vlan_member in entry_vlan_members \ + if vlan_member['port'] == ifname if vlan_member['type'] == 'default' + ] + vlanList = [ + vlan_member['vlan'] for vlan_member in entry_vlan_members \ + if vlan_member['port'] == ifname if vlan_member['type'] == 'unpUntag' + ] if len(vlans) < 1: vlan = "None" diff --git a/suzieq/poller/worker/services/vlan.py b/suzieq/poller/worker/services/vlan.py index 089ae9180b..e0d4eceddd 100644 --- a/suzieq/poller/worker/services/vlan.py +++ b/suzieq/poller/worker/services/vlan.py @@ -35,7 +35,9 @@ def _clean_aos_data(self, processed_data, _): vlan = entry['vlannumber'] vlanName = entry['vlandescription'] - interfaces = [member.get('port') for member in entry_vlan_members if member.get('vlan') == vlan] + interfaces = [ + member.get('port') for member in entry_vlan_members if member.get('vlan') == vlan + ] if entry.get('vlanadmstatus') == 'Ena' and entry.get('vlanoperstatus') == 'Ena': state = 'active' From 33276f7f62c5e5f4e3deb9cb761a8d91e43bf938 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 8 Jul 2022 10:48:41 +0200 Subject: [PATCH 49/82] Add newline at end of file Signed-off-by: jefvantongerloo --- tests/integration/sqcmds/aos-input/arpnd.output | 2 +- tests/integration/sqcmds/aos-input/device.output | 2 +- tests/integration/sqcmds/aos-input/interfaces.output | 2 +- tests/integration/sqcmds/aos-input/inventory.output | 2 +- tests/integration/sqcmds/aos-input/macs.output | 2 +- tests/integration/sqcmds/aos-input/routes.output | 2 +- tests/integration/sqcmds/aos-input/vlan.output | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/integration/sqcmds/aos-input/arpnd.output b/tests/integration/sqcmds/aos-input/arpnd.output index 7c7f355cc0..4ebcfb7b15 100644 --- a/tests/integration/sqcmds/aos-input/arpnd.output +++ b/tests/integration/sqcmds/aos-input/arpnd.output @@ -22,4 +22,4 @@ "version": "8.6.289.R01 GA", "data": "\nTotal 1 arp entries\n Flags (P=Proxy, A=Authentication, V=VRRP, B=BFD, H=HAVLAN, I=INTF, M=Managed)\n\n IP Addr Hardware Addr Type Flags Port Interface Name\n-----------------+-------------------+----------+-------+-----------------+-----------+---------------------------------\n 10.20.99.1 00:09:0f:09:01:26 DYNAMIC 0/19 vlan2099 \n\n\n" } -] \ No newline at end of file +] diff --git a/tests/integration/sqcmds/aos-input/device.output b/tests/integration/sqcmds/aos-input/device.output index edf4fce864..042d90fde7 100644 --- a/tests/integration/sqcmds/aos-input/device.output +++ b/tests/integration/sqcmds/aos-input/device.output @@ -22,4 +22,4 @@ "version": "8.6.289.R01 GA", "data": "System:\n Description: Alcatel-Lucent Enterprise OS6860E-U28 8.6.289.R01 GA, July 13, 2019.,\n Object ID: 1.3.6.1.4.1.6486.801.1.1.2.1.11.1.9,\n Up Time: 2 days 14 hours 47 minutes and 38 seconds,\n Contact: Alcatel-Lucent, http://enterprise.alcatel-lucent.com,\n Name: net-lab-swi-dist,\n Location: Unknown,\n Services: 78,\n Date & Time: FRI JUL 01 2022 09:33:28 (UTC)\nFlash Space:\n Primary CMM:\n Available (bytes): 1299349504,\n Comments : None\n\n" } -] \ No newline at end of file +] diff --git a/tests/integration/sqcmds/aos-input/interfaces.output b/tests/integration/sqcmds/aos-input/interfaces.output index fb4e93a29a..46bf851723 100644 --- a/tests/integration/sqcmds/aos-input/interfaces.output +++ b/tests/integration/sqcmds/aos-input/interfaces.output @@ -66,4 +66,4 @@ "version": "8.6.289.R01 GA", "data": " vlan port type status\n--------+------------+------------+--------------\n 1 1/1/2 default inactive\n 1 1/1/3 default inactive\n 1 1/1/4 default inactive\n 1 1/1/5 default inactive\n 1 1/1/6 default inactive\n 1 1/1/7 default inactive\n 1 1/1/8 default inactive\n 1 1/1/9 default inactive\n 1 1/1/10 default inactive\n 1 1/1/11 default inactive\n 1 1/1/12 default inactive\n 1 1/1/13 default inactive\n 1 1/1/14 default inactive\n 1 1/1/15 default inactive\n 1 1/1/16 default inactive\n 1 1/1/17 default inactive\n 1 1/1/18 default inactive\n 1 1/1/19 default inactive\n 1 1/1/20 default inactive\n 1 1/1/21 default inactive\n 1 1/1/22 default inactive\n 1 1/1/23 default inactive\n 1 1/1/24 default inactive\n 1 1/1/25 default inactive\n 1 1/1/26 default inactive\n 1 1/1/27 default inactive\n 1 1/1/28 default inactive\n 1 1/1/29 default inactive\n 1 1/1/30 default inactive\n 1 0/19 default forwarding\n 2000 0/1 qtagged forwarding\n 2001 0/1 qtagged forwarding\n 2002 0/1 qtagged forwarding\n 2003 0/1 qtagged forwarding\n 2004 0/1 qtagged forwarding\n 2008 0/1 qtagged forwarding\n 2012 0/1 qtagged forwarding\n 2016 0/1 qtagged forwarding\n 2099 0/1 default forwarding\n 2099 0/19 qtagged forwarding\n\n" } -] \ No newline at end of file +] diff --git a/tests/integration/sqcmds/aos-input/inventory.output b/tests/integration/sqcmds/aos-input/inventory.output index 12cd3bde37..64ae13cd60 100644 --- a/tests/integration/sqcmds/aos-input/inventory.output +++ b/tests/integration/sqcmds/aos-input/inventory.output @@ -44,4 +44,4 @@ "version": "8.6.289.R01 GA", "data": "System:\n Description: Alcatel-Lucent Enterprise OS6860E-U28 8.6.289.R01 GA, July 13, 2019.,\n Object ID: 1.3.6.1.4.1.6486.801.1.1.2.1.11.1.9,\n Up Time: 2 days 14 hours 47 minutes and 37 seconds,\n Contact: Alcatel-Lucent, http://enterprise.alcatel-lucent.com,\n Name: net-lab-swi-dist,\n Location: Unknown,\n Services: 78,\n Date & Time: FRI JUL 01 2022 09:33:28 (UTC)\nFlash Space:\n Primary CMM:\n Available (bytes): 1299349504,\n Comments : None\n\n" } -] \ No newline at end of file +] diff --git a/tests/integration/sqcmds/aos-input/macs.output b/tests/integration/sqcmds/aos-input/macs.output index 5c6b0c0ca4..8735f78447 100644 --- a/tests/integration/sqcmds/aos-input/macs.output +++ b/tests/integration/sqcmds/aos-input/macs.output @@ -22,4 +22,4 @@ "version": "8.6.289.R01 GA", "data": "Legend: Mac Address: * = address not valid,\n\n Mac Address: & = duplicate static address,\n\n Domain Vlan/SrvcId[ISId/vnId] Mac Address Type Operation Interface\n------------+----------------------+-------------------+------------------+-------------+-------------------------\n VLAN 1 94:24:e1:83:4f:6b dynamic bridging 0/19 \n VLAN 2099 94:24:e1:35:6c:27 dynamic bridging 0/1 \n VLAN 2099 94:24:e1:35:6c:46 dynamic bridging 0/1 \n VLAN 2099 00:09:0f:09:01:26 dynamic bridging 0/19 \n\n Total number of Valid MAC addresses above = 4\n\n\n" } -] \ No newline at end of file +] diff --git a/tests/integration/sqcmds/aos-input/routes.output b/tests/integration/sqcmds/aos-input/routes.output index f5edb71d40..67f3ded389 100644 --- a/tests/integration/sqcmds/aos-input/routes.output +++ b/tests/integration/sqcmds/aos-input/routes.output @@ -22,4 +22,4 @@ "version": "8.6.289.R01 GA", "data": "\n + = Equal cost multipath routes\n Total 3 routes\n\n Dest Address Gateway Addr Age Protocol \n------------------+-------------------+----------+-----------\n 0.0.0.0/0 10.20.99.1 2d14h STATIC \n 10.20.99.0/24 10.20.99.10 2d14h LOCAL \n 127.0.0.1/32 127.0.0.1 2d14h LOCAL \n\n" } -] \ No newline at end of file +] diff --git a/tests/integration/sqcmds/aos-input/vlan.output b/tests/integration/sqcmds/aos-input/vlan.output index 9d091dbb63..c0189da2ce 100644 --- a/tests/integration/sqcmds/aos-input/vlan.output +++ b/tests/integration/sqcmds/aos-input/vlan.output @@ -44,4 +44,4 @@ "version": "8.6.289.R01 GA", "data": " vlan port type status\n--------+------------+------------+--------------\n 1 1/1/2 default inactive\n 1 1/1/3 default inactive\n 1 1/1/4 default inactive\n 1 1/1/5 default inactive\n 1 1/1/6 default inactive\n 1 1/1/7 default inactive\n 1 1/1/8 default inactive\n 1 1/1/9 default inactive\n 1 1/1/10 default inactive\n 1 1/1/11 default inactive\n 1 1/1/12 default inactive\n 1 1/1/13 default inactive\n 1 1/1/14 default inactive\n 1 1/1/15 default inactive\n 1 1/1/16 default inactive\n 1 1/1/17 default inactive\n 1 1/1/18 default inactive\n 1 1/1/19 default inactive\n 1 1/1/20 default inactive\n 1 1/1/21 default inactive\n 1 1/1/22 default inactive\n 1 1/1/23 default inactive\n 1 1/1/24 default inactive\n 1 1/1/25 default inactive\n 1 1/1/26 default inactive\n 1 1/1/27 default inactive\n 1 1/1/28 default inactive\n 1 1/1/29 default inactive\n 1 1/1/30 default inactive\n 1 0/19 default forwarding\n 2000 0/1 qtagged forwarding\n 2001 0/1 qtagged forwarding\n 2002 0/1 qtagged forwarding\n 2003 0/1 qtagged forwarding\n 2004 0/1 qtagged forwarding\n 2008 0/1 qtagged forwarding\n 2012 0/1 qtagged forwarding\n 2016 0/1 qtagged forwarding\n 2099 0/1 default forwarding\n 2099 0/19 qtagged forwarding\n\n" } -] \ No newline at end of file +] From f17602e4baf0970883fe868612023ab7bf27bede Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 8 Jul 2022 11:08:55 +0200 Subject: [PATCH 50/82] Add newline at end of file Signed-off-by: jefvantongerloo --- suzieq/config/textfsm_templates/aos_show_interfaces.tfsm | 2 +- suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm | 2 +- suzieq/config/textfsm_templates/aos_show_ip_routes.tfsm | 2 +- suzieq/config/textfsm_templates/aos_show_mac_learning.tfsm | 2 +- suzieq/config/textfsm_templates/aos_show_system.tfsm | 2 +- suzieq/config/textfsm_templates/aos_show_vlan.tfsm | 2 +- suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/suzieq/config/textfsm_templates/aos_show_interfaces.tfsm b/suzieq/config/textfsm_templates/aos_show_interfaces.tfsm index cdec3f069e..6cddbda591 100644 --- a/suzieq/config/textfsm_templates/aos_show_interfaces.tfsm +++ b/suzieq/config/textfsm_templates/aos_show_interfaces.tfsm @@ -69,4 +69,4 @@ Start ^\sError Frames\s*:\s+${tx_error_frames},\s*Collisions\s*:\s+${collisions},$$ ^\sError Frames\s*:\s+${tx_error_frames}\s*$$ -> Record Start ^\sLate collisions\s*:\s+${late_collisions},\s*Exc-Collisions\s*:\s+${exc_collisions}$$ -> Record Start -# ^. -> Error \ No newline at end of file +# ^. -> Error diff --git a/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm b/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm index 567a90f538..5e9f32f78a 100644 --- a/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm +++ b/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm @@ -20,4 +20,4 @@ Start Interfaces ^\s*${chassis_slot_port}\s+${admin_status}\s+${autonego}\s+${speed}\s+${detected_duplex}\s+${detected_pause}\s+${detected_fec}\s+${configured_speed}\s+${configured_duplex}\s+${configured_pause}\s+${configured_fec}\s+${trap_linkupdown}\s+${eee}\s*$$ -> Record -# ^. -> Error \ No newline at end of file +# ^. -> Error diff --git a/suzieq/config/textfsm_templates/aos_show_ip_routes.tfsm b/suzieq/config/textfsm_templates/aos_show_ip_routes.tfsm index 5915dd3d24..32f8dee0b0 100644 --- a/suzieq/config/textfsm_templates/aos_show_ip_routes.tfsm +++ b/suzieq/config/textfsm_templates/aos_show_ip_routes.tfsm @@ -12,4 +12,4 @@ Start Routes ^\s+${dest_addr}\s+(\+)*${gateway_addr}\s+${age}\s+${protocol}\s*$$ -> Record ^\s+(\+)*${gateway_addr}\s+${age}\s+${protocol}\s*$$ -> Record -# ^. -> Error \ No newline at end of file +# ^. -> Error diff --git a/suzieq/config/textfsm_templates/aos_show_mac_learning.tfsm b/suzieq/config/textfsm_templates/aos_show_mac_learning.tfsm index 3dfe6e799e..638ef50770 100644 --- a/suzieq/config/textfsm_templates/aos_show_mac_learning.tfsm +++ b/suzieq/config/textfsm_templates/aos_show_mac_learning.tfsm @@ -14,4 +14,4 @@ Start Mac ^\s+${domain}\s+${id}\s+${mac_address}\s+${type}\s+${operation}\s+${interface}\s*$$ -> Record ^\s+Total number of Valid MAC addresses above = (\d+) -# ^. -> Error \ No newline at end of file +# ^. -> Error diff --git a/suzieq/config/textfsm_templates/aos_show_system.tfsm b/suzieq/config/textfsm_templates/aos_show_system.tfsm index 58ed384e1b..050c2dd0cc 100644 --- a/suzieq/config/textfsm_templates/aos_show_system.tfsm +++ b/suzieq/config/textfsm_templates/aos_show_system.tfsm @@ -27,4 +27,4 @@ FlashSpace ^\s+Available \(bytes\):\s+${available},$$ ^\s+Comments\s+:\s+${comments}$$ ^\s+Primary CMM:$$ -# ^. -> Error \ No newline at end of file +# ^. -> Error diff --git a/suzieq/config/textfsm_templates/aos_show_vlan.tfsm b/suzieq/config/textfsm_templates/aos_show_vlan.tfsm index 69a83a5f5a..c737229477 100644 --- a/suzieq/config/textfsm_templates/aos_show_vlan.tfsm +++ b/suzieq/config/textfsm_templates/aos_show_vlan.tfsm @@ -12,4 +12,4 @@ Start VLAN ^\s*${vlannumber}\s+${vlantype}\s+${vlanadmstatus}\s+${vlanoperstatus}\s+${vlanrouterstatus}\s+${vlanmtu}\s+${vlandescription}\s*$$ -> Record -# ^. -> Error \ No newline at end of file +# ^. -> Error diff --git a/suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm b/suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm index 4e92545948..0025cb5aec 100644 --- a/suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm +++ b/suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm @@ -9,4 +9,4 @@ Start MEMBERS ^\s+${vlan}\s+${port}\s+${type}\s+${status}$$ -> Record -# ^. -> Error \ No newline at end of file +# ^. -> Error From 2e3d68f2d0874c0ac004575566d95134ad7d0ec5 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 8 Jul 2022 11:36:19 +0200 Subject: [PATCH 51/82] Linting (Flake8 + Pylint) Signed-off-by: jefvantongerloo --- suzieq/poller/worker/nodes/node.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/suzieq/poller/worker/nodes/node.py b/suzieq/poller/worker/nodes/node.py index ff0f19bd7a..7b62707e4c 100644 --- a/suzieq/poller/worker/nodes/node.py +++ b/suzieq/poller/worker/nodes/node.py @@ -1310,7 +1310,9 @@ async def _parse_init_dev_data(self, output, cb_token) -> None: if hostname: self._set_hostname(hostname) - uptime_result = re.search(r'\s+Up Time:\s+(\d{1,3})\sdays\s(\d{1,2})\shours\s(\d{1,2})\sminutes\sand\s(\d{1,2})\sseconds,', data) + uptime_result = re.search( r'\s+Up Time:\s+(\d{1,3})\sdays\s(\d{1,2})' + r'\shours\s(\d{1,2})\sminutes\sand\s(\d{1,2})\sseconds,' + , data) days = uptime_result.group(1).strip() hours = uptime_result.group(2).strip() minutes = uptime_result.group(3).strip() From 2411f8a64023da09ecbae3e6ff472ebe2a467372 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 8 Jul 2022 11:57:01 +0200 Subject: [PATCH 52/82] =?UTF-8?q?Add=20aos=20=C2=B4state=C2=B4=20item?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/arpnd.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/suzieq/poller/worker/services/arpnd.py b/suzieq/poller/worker/services/arpnd.py index e382fca021..a6d4452d00 100644 --- a/suzieq/poller/worker/services/arpnd.py +++ b/suzieq/poller/worker/services/arpnd.py @@ -14,6 +14,11 @@ def _clean_aos_data(self, processed_data, _): entry, = processed_data + if entry["type"] == "STATIC": + entry["state"] = "permanent" + elif entry["type"] == "DYNAMIC": + entry["state"] = "reachable" + entry['ipAddress'] = entry['ip_address'] entry['macaddr'] = entry['hardware_addr'] entry['oif'] = entry['port'] From 5b658513a6bfdde6043d7519fb888fc82d1be9c3 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 8 Jul 2022 13:56:15 +0200 Subject: [PATCH 53/82] Linting (Flake8 + Pylint) Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/device.py | 23 ++++++++++++--------- suzieq/poller/worker/services/interfaces.py | 22 +++++++++++++------- suzieq/poller/worker/services/inventory.py | 16 ++++++++++---- suzieq/poller/worker/services/vlan.py | 12 +++++++---- 4 files changed, 47 insertions(+), 26 deletions(-) diff --git a/suzieq/poller/worker/services/device.py b/suzieq/poller/worker/services/device.py index defcdcef0f..b6b0b03fde 100644 --- a/suzieq/poller/worker/services/device.py +++ b/suzieq/poller/worker/services/device.py @@ -30,27 +30,30 @@ def _clean_aos_data(self, processed_data, raw_data): entry, = processed_data - description_result = re.search( r'^Alcatel-Lucent\sEnterprise\s' - r'(\S+)\s((\d+\.){3,}.*?(?=,)),\s\w+\s\d{1,2},\s\d{4,}.' - , entry['description'] - ) + description_result = re.search(r'^Alcatel-Lucent\sEnterprise\s' + r'(\S+)\s((\d+\.){3,}.*?(?=,)),' + r'\s\w+\s\d{1,2},\s\d{4,}.', + entry['description'] + ) model = description_result.group(1) version = description_result.group(2) # sample output: '0 days 0 hours 3 minutes and 28 seconds' - uptime_result = re.search( r'(\d+) days (\d{1,2}) hours (\d{1,2})' - r' minutes and (\d{1,2}) seconds' - , entry['up_time'] - ) + uptime_result = re.search(r'(\d+) days (\d{1,2}) hours (\d{1,2})' + r' minutes and (\d{1,2}) seconds', + entry['up_time'] + ) days = uptime_result.group(1) hours = uptime_result.group(2) minutes = uptime_result.group(3) seconds = uptime_result.group(4) - upsecs = 24 * 3600 * int(days) + 3600 * int(hours) + 60 * int(minutes) + int(seconds) + upsecs = 24 * 3600 * int(days) + 3600 * int(hours) + 60 \ + * int(minutes) + int(seconds) if upsecs: - bootupTimestamp = int(int(raw_data[0]["timestamp"]) / 1000 - upsecs) + bootupTimestamp = int(int(raw_data[0]["timestamp"]) + / 1000 - upsecs) entry['vendor'] = "Alcatel-Lucent Enterprise" entry['model'] = model diff --git a/suzieq/poller/worker/services/interfaces.py b/suzieq/poller/worker/services/interfaces.py index 176af86204..798d5e7852 100644 --- a/suzieq/poller/worker/services/interfaces.py +++ b/suzieq/poller/worker/services/interfaces.py @@ -73,16 +73,20 @@ def _clean_aos_data(self, processed_data, _): entry_vlan_members = [] entry_interfaces_status = [ - item for item in processed_data if item.get('_entryType') == 'interfaces_status' + item for item in processed_data + if item.get('_entryType') == 'interfaces_status' ] entry_interfaces = [ - item for item in processed_data if item.get('_entryType') == 'interfaces' + item for item in processed_data + if item.get('_entryType') == 'interfaces' ] entry_vlan_members = [ - item for item in processed_data if item.get('_entryType') == 'members' + item for item in processed_data + if item.get('_entryType') == 'members' ] - for interfaces_status, interfaces in zip(entry_interfaces_status, entry_interfaces): + for interfaces_status, interfaces \ + in zip(entry_interfaces_status, entry_interfaces): entry_dict = {} @@ -97,12 +101,14 @@ def _clean_aos_data(self, processed_data, _): type = interfaces['type'] vlans = [ - vlan_member['vlan'] for vlan_member in entry_vlan_members \ - if vlan_member['port'] == ifname if vlan_member['type'] == 'default' + vlan_member['vlan'] for vlan_member in entry_vlan_members + if vlan_member['port'] == ifname + if vlan_member['type'] == 'default' ] vlanList = [ - vlan_member['vlan'] for vlan_member in entry_vlan_members \ - if vlan_member['port'] == ifname if vlan_member['type'] == 'unpUntag' + vlan_member['vlan'] for vlan_member in entry_vlan_members + if vlan_member['port'] == ifname + if vlan_member['type'] == 'unpUntag' ] if len(vlans) < 1: diff --git a/suzieq/poller/worker/services/inventory.py b/suzieq/poller/worker/services/inventory.py index 9beec6d82d..e3879c4d2e 100644 --- a/suzieq/poller/worker/services/inventory.py +++ b/suzieq/poller/worker/services/inventory.py @@ -17,8 +17,14 @@ def _clean_aos_data(self, processed_data, _): entry_chassis = [] entry_system = [] - entry_chassis = [item for item in processed_data if item.get('_entryType') == 'chassis'] - entry_system = [item for item in processed_data if item.get('_entryType') == 'system'] + entry_chassis = [ + item for item in processed_data + if item.get('_entryType') == 'chassis' + ] + entry_system = [ + item for item in processed_data + if item.get('_entryType') == 'system' + ] # extract single list item (dict) system, = entry_system @@ -34,10 +40,12 @@ def _clean_aos_data(self, processed_data, _): type = entry['description'] partType = entry['model_type'] - version_result = re.search(r'(\d+\.){3,}.*?(?=,)', system.get('description')) + version_result = re.search(r'(\d+\.){3,}.*?(?=,)', + system.get('description')) version = version_result.group(0) - if entry.get('admin_status') == 'POWER ON' and entry.get('operational_status') == 'UP': + if entry.get('admin_status') == 'POWER ON' \ + and entry.get('operational_status') == 'UP': status = 'up' else: status = 'down' diff --git a/suzieq/poller/worker/services/vlan.py b/suzieq/poller/worker/services/vlan.py index e0d4eceddd..bf9124f52b 100644 --- a/suzieq/poller/worker/services/vlan.py +++ b/suzieq/poller/worker/services/vlan.py @@ -22,10 +22,12 @@ def _clean_aos_data(self, processed_data, _): entry_vlan_members = [] entry_vlan = [ - item for item in processed_data if item.get("_entryType") == "vlan" + item for item in processed_data + if item.get("_entryType") == "vlan" ] entry_vlan_members = [ - item for item in processed_data if item.get("_entryType") == "members" + item for item in processed_data + if item.get("_entryType") == "members" ] for entry in entry_vlan: @@ -36,10 +38,12 @@ def _clean_aos_data(self, processed_data, _): vlanName = entry['vlandescription'] interfaces = [ - member.get('port') for member in entry_vlan_members if member.get('vlan') == vlan + member.get('port') for member in entry_vlan_members + if member.get('vlan') == vlan ] - if entry.get('vlanadmstatus') == 'Ena' and entry.get('vlanoperstatus') == 'Ena': + if entry.get('vlanadmstatus') == 'Ena' \ + and entry.get('vlanoperstatus') == 'Ena': state = 'active' else: state = 'suspended' From 02db2195ccebfc818b59293122b9db00ff79267c Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Fri, 8 Jul 2022 13:59:14 +0200 Subject: [PATCH 54/82] Linting (Flake8 + Pylint) Signed-off-by: jefvantongerloo --- suzieq/poller/worker/nodes/node.py | 9 ++++++--- suzieq/poller/worker/services/macs.py | 5 ----- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/suzieq/poller/worker/nodes/node.py b/suzieq/poller/worker/nodes/node.py index 7b62707e4c..febfab81d2 100644 --- a/suzieq/poller/worker/nodes/node.py +++ b/suzieq/poller/worker/nodes/node.py @@ -1310,9 +1310,12 @@ async def _parse_init_dev_data(self, output, cb_token) -> None: if hostname: self._set_hostname(hostname) - uptime_result = re.search( r'\s+Up Time:\s+(\d{1,3})\sdays\s(\d{1,2})' - r'\shours\s(\d{1,2})\sminutes\sand\s(\d{1,2})\sseconds,' - , data) + uptime_result = re.search(r'\s+Up Time:\s+(\d{1,3})\s' + r'days\s(\d{1,2})\s' + r'hours\s(\d{1,2})\s' + r'minutes\sand\s(\d{1,2})\s' + r'seconds,', + data) days = uptime_result.group(1).strip() hours = uptime_result.group(2).strip() minutes = uptime_result.group(3).strip() diff --git a/suzieq/poller/worker/services/macs.py b/suzieq/poller/worker/services/macs.py index 74d36646ba..932f9f5812 100644 --- a/suzieq/poller/worker/services/macs.py +++ b/suzieq/poller/worker/services/macs.py @@ -66,11 +66,6 @@ def _clean_aos_data(self, processed_data, _): flags = entry['operation'] oif = entry['interface'] - # if entry.get('vlanadmstatus') == 'Ena' and entry.get('vlanoperstatus') == 'Ena': - # state = 'active' - # else: - # state = 'suspended' - entry_dict = { "protocol": protocol, "vlan": vlan, From 98f046fab24082689842490c161e7e41b431dc38 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Tue, 12 Jul 2022 10:56:07 +0200 Subject: [PATCH 55/82] Remove `type` name in variable Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/interfaces.py | 6 +++--- suzieq/poller/worker/services/inventory.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/suzieq/poller/worker/services/interfaces.py b/suzieq/poller/worker/services/interfaces.py index 798d5e7852..682325150a 100644 --- a/suzieq/poller/worker/services/interfaces.py +++ b/suzieq/poller/worker/services/interfaces.py @@ -98,7 +98,7 @@ def _clean_aos_data(self, processed_data, _): reason = interfaces['port_down_violation_reason'] speed = self._textfsm_valid_speed_value(interfaces_status) state = interfaces['operation_status'] - type = interfaces['type'] + type_int = interfaces['type'] vlans = [ vlan_member['vlan'] for vlan_member in entry_vlan_members @@ -133,7 +133,7 @@ def _clean_aos_data(self, processed_data, _): 'reason': reason, 'speed': speed, 'state': state, - 'type': type, + 'type': type_int, 'vlan': vlan, 'vlanList': vlanList } @@ -149,7 +149,7 @@ def _clean_eos_data(self, processed_data, _): drop_indices = [] vlan_entries = {} # Needed to fix the anycast MAC entries - # pylint: disable=too-many-nested-blocks + # pylint: disable=too-many-nested-blockss for i, entry in enumerate(processed_data): if entry['type'] == 'vrf': diff --git a/suzieq/poller/worker/services/inventory.py b/suzieq/poller/worker/services/inventory.py index e3879c4d2e..39b05bdced 100644 --- a/suzieq/poller/worker/services/inventory.py +++ b/suzieq/poller/worker/services/inventory.py @@ -37,7 +37,7 @@ def _clean_aos_data(self, processed_data, _): serial = entry['serial_number'] partNum = entry['part_number'] vendor = "Alcatel-Lucent Enterprise" - type = entry['description'] + type_inv = entry['description'] partType = entry['model_type'] version_result = re.search(r'(\d+\.){3,}.*?(?=,)', @@ -56,7 +56,7 @@ def _clean_aos_data(self, processed_data, _): 'serial': serial, 'partNum': partNum, 'vendor': vendor, - 'type': type, + 'type': type_inv, 'partType': partType, 'version': version, } From 4f8e2af23fbb2a4e4c15a97b2ca90737ad55c6a1 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Tue, 20 Dec 2022 19:47:12 +0100 Subject: [PATCH 56/82] textfsm-aos v1.1.2 template update Signed-off-by: jefvantongerloo --- .../aos_show_interfaces.tfsm | 41 ++++++++++--------- .../aos_show_interfaces_status.tfsm | 2 +- .../aos_show_vlan_members.tfsm | 2 +- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/suzieq/config/textfsm_templates/aos_show_interfaces.tfsm b/suzieq/config/textfsm_templates/aos_show_interfaces.tfsm index 6cddbda591..eadc3c85c7 100644 --- a/suzieq/config/textfsm_templates/aos_show_interfaces.tfsm +++ b/suzieq/config/textfsm_templates/aos_show_interfaces.tfsm @@ -39,34 +39,37 @@ Value late_collisions (\d+) Value exc_collisions (\d+) Start - ^Chassis\/Slot\/Port\s*:?\s${chassis_slot_port}\s+:?$$ - ^\sOperational Status\s*:\s${operation_status},$$ + ^Chassis\/Slot\/Port\s+:\s${chassis_slot_port}\s+$$ + ^\sOperational Status\s+:\s${operation_status},$$ ^\sPort-Down\/Violation Reason:\s${port_down_violation_reason},$$ - ^\sLast Time Link Changed\s*:\s${last_time_link_changed},$$ - ^\sNumber of Status Change\s*:\s${number_of_status_change},$$ - ^\sType\s*:\s${type},$$ - ^\sSFP/XFP\s*:\s${sfp_xfp},$$ - ^\sInterface Type\s*:\s${interface_type},$$ - ^\sEPP\s*:\s${epp},$$ - ^\sLink-Quality\s*:\s${link_quality},$$ - ^\sMAC address\s*:\s${mac_address},$$ - ^\sBandWidth \(Megabits\)\s*:\s+${bandwidth}\s*,\s+Duplex\s+:\s${duplex}\s*,$$ - ^\sAutonegotiation\s*:\s+${autonegotiation},$$ - ^\sLong Frame Size\(Bytes\)\s*:\s${long_frame_size},$$ - ^\sInter Frame Gap\(Bytes\)\s*:\s${inter_frame_gap},$$ - ^\sloopback mode\s*:\s${loopback_mode},$$ - ^\sRx\s*:$$ + ^\sLast Time Link Changed\s+:\s${last_time_link_changed},$$ + ^\sNumber of Status Change\s+:\s${number_of_status_change},$$ + ^\sType\s+:\s${type},$$ + ^\sSFP/XFP\s+:\s${sfp_xfp},$$ + ^\sInterface Type\s+:\s${interface_type},$$ + ^\sEPP\s+:\s${epp},$$ + ^\sLink-Quality\s+:\s${link_quality},$$ + ^\sMAC address\s+:\s${mac_address},$$ + ^\sBandWidth \(Megabits\)\s+:\s+${bandwidth}\s*,\s+Duplex\s+:\s${duplex}\s*,$$ + ^\sAutonegotiation\s+:\s+${autonegotiation},$$ + ^\sLong Frame Size\(Bytes\)\s+:\s${long_frame_size},$$ + ^\sInter Frame Gap\(Bytes\)\s+:\s${inter_frame_gap},$$ + ^\sloopback mode\s+:\s${loopback_mode},$$ -> Rx + +Rx + ^\sRx\s+:$$ ^\sBytes Received\s*:\s+${bytes_received}, Unicast Frames\s*:\s+${rx_unicast_frames},$$ ^\sBroadcast Frames\s*:\s+${rx_broadcast_frames}, M-cast Frames\s*:\s+${rx_mcast_frames},$$ ^\sUnderSize Frames\s*:\s+${rx_undersize_frames}, OverSize Frames\s*:\s+${rx_oversize_frames},$$ ^\sLost Frames\s*:\s+${rx_lost_frames}, Error Frames\s*:\s+${rx_error_frames},$$ - ^\sCRC Error Frames\s*:\s+${rx_crc_error_frames}, Alignments Err\s*:\s+${rx_alignments_err},$$ + ^\sCRC Error Frames\s*:\s+${rx_crc_error_frames}, Alignments Err\s*:\s+${rx_alignments_err},$$ -> Tx + +Tx ^\sTx\s+:$$ ^\sBytes Xmitted\s*:\s+${bytes_xmitted},\s*Unicast Frames\s*:\s+${tx_unicast_frames},$$ ^\sBroadcast Frames\s*:\s+${tx_broadcast_frames}, M-cast Frames\s*:\s+${tx_mcast_frames},$$ ^\sUnderSize Frames\s*:\s+${tx_undersize_frames}, OverSize Frames\s*:\s+${tx_oversize_frames},$$ ^\sLost Frames\s*:\s+${tx_lost_frames},\s*Collided Frames\s*:\s+${tx_collided_frames},$$ ^\sError Frames\s*:\s+${tx_error_frames},\s*Collisions\s*:\s+${collisions},$$ - ^\sError Frames\s*:\s+${tx_error_frames}\s*$$ -> Record Start ^\sLate collisions\s*:\s+${late_collisions},\s*Exc-Collisions\s*:\s+${exc_collisions}$$ -> Record Start -# ^. -> Error +# ^. -> Error \ No newline at end of file diff --git a/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm b/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm index 5e9f32f78a..22f30c8fd1 100644 --- a/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm +++ b/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm @@ -1,4 +1,4 @@ -Value Key,Required chassis_slot_port (\d/\d+/\d+[\w]*) +Value Key,Required chassis_slot_port (\d\/\d+\/\d+[\w]*) Value admin_status (-|en|dis) Value autonego (-|en|dis) Value speed (-|Auto|10|100|1000|2500|5000|10000|21000|25000|40000|50000|100000) diff --git a/suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm b/suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm index 0025cb5aec..78fb381691 100644 --- a/suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm +++ b/suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm @@ -1,6 +1,6 @@ Value vlan (\d+) Value port ((\d{1,2}\/)+\d*) -Value type (default|qtagged|dynamic|mirror|mirrored|spb|unpUntag|unpQntag) +Value type (default|tagged|untagged|qtagged|dynamic|mirror|mirrored|spb|unpUntag|unpQntag) Value status (inactive|forwarding|blocking) Start From 1c479d4a35c4eba80dfbfc0b25f51c48b3794b24 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Tue, 20 Dec 2022 20:06:21 +0100 Subject: [PATCH 57/82] add `memory` and `os`parameter Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/device.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/suzieq/poller/worker/services/device.py b/suzieq/poller/worker/services/device.py index 2ee25aee16..29d85fe730 100644 --- a/suzieq/poller/worker/services/device.py +++ b/suzieq/poller/worker/services/device.py @@ -38,6 +38,11 @@ def _clean_aos_data(self, processed_data, raw_data): model = description_result.group(1) version = description_result.group(2) + # if version[0] == '8': + # os = 'aos8' + # else: + # os = 'aos6' + # sample output: '0 days 0 hours 3 minutes and 28 seconds' uptime_result = re.search(r'(\d+) days (\d{1,2}) hours (\d{1,2})' r' minutes and (\d{1,2}) seconds', @@ -55,10 +60,13 @@ def _clean_aos_data(self, processed_data, raw_data): bootupTimestamp = int(int(raw_data[0]["timestamp"]) / 1000 - upsecs) - entry['vendor'] = "Alcatel-Lucent Enterprise" + entry['bootupTimestamp'] = bootupTimestamp + entry['memory'] = entry['available'] + entry['os'] = 'aos' entry['model'] = model + entry['vendor'] = "Alcatel-Lucent Enterprise" entry['version'] = version - entry['bootupTimestamp'] = bootupTimestamp + return self._common_data_cleaner(processed_data, raw_data) From f832c8eb18699081139ae793fda4d2f1ebee8391 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Tue, 20 Dec 2022 20:24:28 +0100 Subject: [PATCH 58/82] add `bd`and `protocol` parameters Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/macs.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/suzieq/poller/worker/services/macs.py b/suzieq/poller/worker/services/macs.py index 4aee655178..31ccfeb5ab 100644 --- a/suzieq/poller/worker/services/macs.py +++ b/suzieq/poller/worker/services/macs.py @@ -63,18 +63,20 @@ def _clean_aos_data(self, processed_data, _): entry_dict = {} - protocol = entry['domain'] - vlan = entry['id'] - macaddr = entry['mac_address'] flags = entry['operation'] + macaddr = entry['mac_address'] + bd = entry['domain'] oif = entry['interface'] + protocol = entry['type'] + vlan = entry['id'] entry_dict = { - "protocol": protocol, - "vlan": vlan, - "macaddr": macaddr, "flags": flags, + "macaddr": macaddr, + "bd": bd, "oif": oif, + "protocol": protocol, + "vlan": vlan, } entry_new.append(entry_dict) From 169c91a0c4c9ac02821171a6214bbb50adbdac77 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 22 Dec 2022 12:26:53 +0100 Subject: [PATCH 59/82] add aos `show ip interface` command Signed-off-by: jefvantongerloo --- suzieq/config/interfaces.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/suzieq/config/interfaces.yml b/suzieq/config/interfaces.yml index b6fd05b888..0be8d01ba6 100644 --- a/suzieq/config/interfaces.yml +++ b/suzieq/config/interfaces.yml @@ -26,6 +26,9 @@ apply: - command: show vlan members textfsm: textfsm_templates/aos_show_vlan_members.tfsm _entryType: members + - command: show ip interface + textfsm: textfsm_templates/aos_show_ip_interface.tfsm + _entryType: ip_interface cumulus: version: all From b69c007ace136e1d3c628f066db41ea035948547 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 22 Dec 2022 12:28:08 +0100 Subject: [PATCH 60/82] add aos `show``arp``ip_interface` `ip_routes` command Signed-off-by: jefvantongerloo --- suzieq/config/routes.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/suzieq/config/routes.yml b/suzieq/config/routes.yml index 60407f802a..1fb5c670d3 100644 --- a/suzieq/config/routes.yml +++ b/suzieq/config/routes.yml @@ -18,9 +18,17 @@ show-fields: apply: aos: version: all - merge: False - command: show ip routes - textfsm: textfsm_templates/aos_show_ip_routes.tfsm + merge: false + command: + - command: show arp + textfsm: textfsm_templates/aos_show_arp.tfsm + _entryType: arp + - command: show ip interface + textfsm: textfsm_templates/aos_show_ip_interface.tfsm + _entryType: ip_interface + - command: show ip routes + textfsm: textfsm_templates/aos_show_ip_routes.tfsm + _entryType: ip_routes cumulus: version: all From 6ce09d550364dd262a3a6eb217c75db59cf69daa Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 22 Dec 2022 12:28:31 +0100 Subject: [PATCH 61/82] add aos_show_ip_interface.tfsm Signed-off-by: jefvantongerloo --- .../aos_show_ip_interface.tfsm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 suzieq/config/textfsm_templates/aos_show_ip_interface.tfsm diff --git a/suzieq/config/textfsm_templates/aos_show_ip_interface.tfsm b/suzieq/config/textfsm_templates/aos_show_ip_interface.tfsm new file mode 100644 index 0000000000..7cc0648735 --- /dev/null +++ b/suzieq/config/textfsm_templates/aos_show_ip_interface.tfsm @@ -0,0 +1,17 @@ +Value name (\S+(\s\S+)*) +Value ip_address ((?:[0-9]{1,3}\.){3}[0-9]{1,3}) +Value subnet_mask ((?:[0-9]{1,3}\.){3}[0-9]{1,3}) +Value status (UP|DOWN) +Value forward (YES|NO) +Value device (Loopback|EMP|unbound|(vlan\s\d+)|(service\s\d+)|GRE\stunnel|IPIP\stunnel) +Value flags (D|) + +Start + ^Total (\d+) interfaces$$ + ^ Flags (D=Directly-bound)$$ + ^ Name IP Address Subnet Mask Status Forward Device Flags$$ + ^[-+\+]+\s*$$ -> Interfaces + +Interfaces + ^${name}\s+${ip_address}\s+${subnet_mask}\s+${status}\s+${forward}\s+${device}\s*${flags}$$ -> Record +# ^. -> Error \ No newline at end of file From 3d5c94ccb8fe28ec7dc77ac609cf211e8ade7890 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 22 Dec 2022 12:28:48 +0100 Subject: [PATCH 62/82] add aos vlan interfaces Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/interfaces.py | 48 +++++++++++++++++++-- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/suzieq/poller/worker/services/interfaces.py b/suzieq/poller/worker/services/interfaces.py index aca0ece35b..079969d8c4 100644 --- a/suzieq/poller/worker/services/interfaces.py +++ b/suzieq/poller/worker/services/interfaces.py @@ -71,6 +71,7 @@ def _clean_aos_data(self, processed_data, _): entry_interfaces_status = [] entry_interfaces = [] entry_vlan_members = [] + entry_ip_interface = [] entry_interfaces_status = [ item for item in processed_data @@ -80,11 +81,52 @@ def _clean_aos_data(self, processed_data, _): item for item in processed_data if item.get('_entryType') == 'interfaces' ] + entry_ip_interface = [ + item for item in processed_data + if item.get('_entryType') == 'ip_interface' + ] entry_vlan_members = [ item for item in processed_data if item.get('_entryType') == 'members' ] + # vlan interfaces + for ip_interface in entry_ip_interface: + + entry_dict = {} + ip_address = [] + + adminState = ip_interface['status'] + device = ip_interface['device'] + forward = ip_interface['forward'] + ifname = ip_interface['name'] + ip_address.append(ip_interface['ip_address']) + + if forward == "YES": + state = "up" + else: + state = "down" + + if "vlan" in device or "service" in device: + device = str(device).split() + type = device[0] + vlan = device[1] + else: + type = device + vlan = "" + + entry_dict = { + 'adminState': str(adminState).lower(), + 'ifname': str(ifname).lower(), + 'ipAddressList': ip_address, + 'state': str(state).lower(), + 'type': str(type).lower(), + 'vlan': vlan + } + + entry_new.append(entry_dict) + + # ethernet interfaces for interfaces_status, interfaces \ in zip(entry_interfaces_status, entry_interfaces): @@ -103,12 +145,12 @@ def _clean_aos_data(self, processed_data, _): vlans = [ vlan_member['vlan'] for vlan_member in entry_vlan_members if vlan_member['port'] == ifname - if vlan_member['type'] == 'default' + if vlan_member['type'] in ["default","untagged"] ] vlanList = [ vlan_member['vlan'] for vlan_member in entry_vlan_members if vlan_member['port'] == ifname - if vlan_member['type'] == 'unpUntag' + if vlan_member['type'] in ["unpUntag","tagged","qtagged" ] ] if len(vlans) < 1: @@ -133,7 +175,7 @@ def _clean_aos_data(self, processed_data, _): 'reason': reason, 'speed': speed, 'state': state, - 'type': type_int, + 'type': str(type_int).lower(), 'vlan': vlan, 'vlanList': vlanList } From 1325b50a56de865b04893b8d91e5a0ce605316d6 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 22 Dec 2022 12:29:57 +0100 Subject: [PATCH 63/82] add aos route parameters Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/routes.py | 34 ++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/suzieq/poller/worker/services/routes.py b/suzieq/poller/worker/services/routes.py index acec60522e..1d78bed3b7 100644 --- a/suzieq/poller/worker/services/routes.py +++ b/suzieq/poller/worker/services/routes.py @@ -39,13 +39,39 @@ def _common_data_cleaner(self, processed_data, _): def _clean_aos_data(self, processed_data, _): entry_new = [] + entry_arp = [] + entry_ip_interface = [] + entry_ip_routes = [] - for entry in processed_data: + entry_arp = [ + item for item in processed_data + if item.get('_entryType') == 'arp' + ] + + entry_ip_interface = [ + item for item in processed_data + if item.get('_entryType') == 'ip_interface' + ] + + entry_ip_routes = [ + item for item in processed_data + if item.get('_entryType') == 'ip_routes' + ] + + + for ip_route in entry_ip_routes: + + entry_dict = {} + oifs = [] + + oifs += [arp['interface'] for arp in entry_arp if arp['ip_address'] == ip_route['gateway_addr']] + oifs += [interface['name'] for interface in entry_ip_interface if interface['ip_address'] == ip_route['gateway_addr']] entry_dict = { - 'prefix': entry['dest_addr'], - 'nexthopIps': [entry['gateway_addr']], - 'protocol': entry['protocol'], + 'nexthopIps': [ip_route['gateway_addr']], + 'oifs': oifs, + 'prefix': ip_route['dest_addr'], + 'protocol': ip_route['protocol'], } entry_new.append(entry_dict) From a4e2163dd6ec20587673e11e035f476814a1d671 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 22 Dec 2022 14:56:27 +0100 Subject: [PATCH 64/82] add `linkagg interfaces` Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/interfaces.py | 52 +++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/suzieq/poller/worker/services/interfaces.py b/suzieq/poller/worker/services/interfaces.py index 079969d8c4..d3a5d4ae7b 100644 --- a/suzieq/poller/worker/services/interfaces.py +++ b/suzieq/poller/worker/services/interfaces.py @@ -72,6 +72,7 @@ def _clean_aos_data(self, processed_data, _): entry_interfaces = [] entry_vlan_members = [] entry_ip_interface = [] + entry_linkagg_ports = [] entry_interfaces_status = [ item for item in processed_data @@ -89,6 +90,57 @@ def _clean_aos_data(self, processed_data, _): item for item in processed_data if item.get('_entryType') == 'members' ] + entry_linkagg = [ + item for item in processed_data + if item.get('_entryType') == 'linkagg' + ] + entry_linkagg_ports = [ + item for item in processed_data + if item.get('_entryType') == 'linkagg_ports' + ] + + # linkagg interfaces + for linkagg in entry_linkagg: + + entry_dict = {} + + if linkagg['admin_state'] == "ENABLED": + adminState = "up" + else: + adminState = "down" + + ifname = "0/" + linkagg['number'] + state = linkagg['oper_state'] + + vlans = [ + vlan_member['vlan'] for vlan_member in entry_vlan_members + if vlan_member['port'] == ifname + if vlan_member['type'] in ["default","untagged"] + ] + vlanList = [ + vlan_member['vlan'] for vlan_member in entry_vlan_members + if vlan_member['port'] == ifname + if vlan_member['type'] in ["unpUntag","tagged","qtagged" ] + ] + + if len(vlans) < 1: + vlan = "None" + else: + vlan = vlans[0] + + if len(vlanList) < 1: + vlanList = "None" + + entry_dict = { + 'adminState': str(adminState).lower(), + 'ifname': str(ifname).lower(), + 'state': str(state).lower(), + 'type': 'aggregate', + 'vlan': vlan, + 'vlanList': vlanList + } + + entry_new.append(entry_dict) # vlan interfaces for ip_interface in entry_ip_interface: From d321b3473bfe0bfa1ca45757a9f307248e69b012 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 22 Dec 2022 14:56:41 +0100 Subject: [PATCH 65/82] add aos_show_linkagg.tfsm Signed-off-by: jefvantongerloo --- .../textfsm_templates/aos_show_linkagg.tfsm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 suzieq/config/textfsm_templates/aos_show_linkagg.tfsm diff --git a/suzieq/config/textfsm_templates/aos_show_linkagg.tfsm b/suzieq/config/textfsm_templates/aos_show_linkagg.tfsm new file mode 100644 index 0000000000..50626135b8 --- /dev/null +++ b/suzieq/config/textfsm_templates/aos_show_linkagg.tfsm @@ -0,0 +1,16 @@ +Value Key,Required number (\d{1,3}) +Value aggregate (Static|Dynamic|Loopback) +Value snmp_id (\d+) +Value size (\d+) +Value admin_state (ENABLED|DISABLED) +Value oper_state (UP|DOWN) +Value att_ports (\d+) +Value sel_ports (\d+) + +Start + ^Number\s+Aggregate\s+SNMP Id\s+Size\s+Admin State\s+Oper State\s+Att\/Sel Ports$$ + ^[-+\+]+\s*$$ -> Linkagg + +Linkagg + ^\s+${number}\s+${aggregate}\s+${snmp_id}\s+${size}\s+${admin_state}\s+${oper_state}\s+${att_ports}\s+${sel_ports}$$ -> Record +# ^. -> Error \ No newline at end of file From 0fbb008a4a2a044830f4a18ab5302abecef844f4 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 22 Dec 2022 14:56:57 +0100 Subject: [PATCH 66/82] add aos_show_linkagg_port.tfsm Signed-off-by: jefvantongerloo --- .../textfsm_templates/aos_show_linkagg_port.tfsm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 suzieq/config/textfsm_templates/aos_show_linkagg_port.tfsm diff --git a/suzieq/config/textfsm_templates/aos_show_linkagg_port.tfsm b/suzieq/config/textfsm_templates/aos_show_linkagg_port.tfsm new file mode 100644 index 0000000000..ff8b25c2d7 --- /dev/null +++ b/suzieq/config/textfsm_templates/aos_show_linkagg_port.tfsm @@ -0,0 +1,16 @@ +Value Key,Required slot_port (\d\/\d+\/\d+[\w]*) +Value aggregate (Static|Dynamic) +Value snmp_id (\d+) +Value status (ATTACHED|CONFIGURED|PENDING|SELECTED|RESERVED) +Value agg (\d{0,3}|NONE) +Value oper (UP|DOWN) +Value link (UP|DOWN) +Value prim (YES|NO|UNK) + +Start + ^Chassis/Slot/Port\s+Aggregate\s+SNMP Id\s+Status\s+Agg\s+Oper\s+Link\s+Prim + ^[-+\+]+\s*$$ -> Linkagg_port + +Linkagg_port + ^\s+${slot_port}\s+${aggregate}\s+${snmp_id}\s+${status}\s+${agg}\s+${oper}\s+${link}\s+${prim}\s*$$ -> Record + ^. -> Error \ No newline at end of file From 485a4f9ae864c392e0d6ed0ba836a952096b9921 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 22 Dec 2022 14:57:38 +0100 Subject: [PATCH 67/82] add aos `show linkagg` & `show linkagg port` commands Signed-off-by: jefvantongerloo --- suzieq/config/interfaces.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/suzieq/config/interfaces.yml b/suzieq/config/interfaces.yml index 0be8d01ba6..d5e0b56e42 100644 --- a/suzieq/config/interfaces.yml +++ b/suzieq/config/interfaces.yml @@ -29,6 +29,12 @@ apply: - command: show ip interface textfsm: textfsm_templates/aos_show_ip_interface.tfsm _entryType: ip_interface + - command: show linkagg + textfsm: textfsm_templates/aos_show_linkagg.tfsm + _entryType: linkagg + - command: show linkagg port + textfsm: textfsm_templates/aos_show_linkagg_port.tfsm + _entryType: linkagg_ports cumulus: version: all From f18cbc83520a38c26652914eb25b85719dfa500a Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Thu, 22 Dec 2022 21:20:43 +0100 Subject: [PATCH 68/82] remove Signed-off-by: jefvantongerloo --- .../1d5c0a46d2df4b4196f26ae819ebe832.parquet | Bin 4902 -> 0 bytes .../d77df9a635bf4b699ce7596b6421153e.parquet | Bin 4911 -> 0 bytes .../b5ee4be9cee74f0e81572441071fb334.parquet | Bin 8771 -> 0 bytes .../38cc839fa8494ad9a4329a1a074ee68c.parquet | Bin 8764 -> 0 bytes .../f3a2b23d30244e74accfa7b0792506e2.parquet | Bin 16371 -> 0 bytes .../b76efc4dc2684d8dac9bea467eaa1367.parquet | Bin 16419 -> 0 bytes .../6f46bc2044d44a8cbb5aac8cbad5b758.parquet | Bin 7487 -> 0 bytes .../629ddb052964484393ff940c3ce92e63.parquet | Bin 7508 -> 0 bytes .../1e1aa390dea44fbcace5b830da9c978f.parquet | Bin 6705 -> 0 bytes .../307f4cdc3bde47e589a1e4ae3ae706ff.parquet | Bin 6738 -> 0 bytes .../d0f7e5b68d9d46efb3b96bd4c9fddb5b.parquet | Bin 12151 -> 0 bytes .../3f2ad21afa294e278a35e628a03eccb1.parquet | Bin 12151 -> 0 bytes .../0cb3ea7c295845f5ae609cf82abb2ce3.parquet | Bin 10592 -> 0 bytes .../6c97bc87063047dcb3db068ad44f2e7b.parquet | Bin 10578 -> 0 bytes .../8c5fc938bdfe4c59989c52e7541ac7b6.parquet | Bin 10592 -> 0 bytes .../97e8b3fbaecd4cc2b2e4d14fa9e5e666.parquet | Bin 10585 -> 0 bytes .../a46cd9e1735d4863870bcab9be1707b5.parquet | Bin 10620 -> 0 bytes .../ab4c3cfbafc74feea978c4e4ff06ddca.parquet | Bin 10613 -> 0 bytes .../de8b290d3ea5451bb3db22143870c12d.parquet | Bin 10578 -> 0 bytes .../009897b213f44df0abcfe32013b6186d.parquet | Bin 10620 -> 0 bytes .../1d4804687bda4721be154062eb88c308.parquet | Bin 10592 -> 0 bytes .../6b6f1196e1bb46afb3faf777c1d248bc.parquet | Bin 10585 -> 0 bytes .../8176cbfd61614098909f081559065064.parquet | Bin 10578 -> 0 bytes .../c7e97a2750874af196d01066da06de4e.parquet | Bin 10592 -> 0 bytes .../d14f9cf70c97465bba0a422654baf878.parquet | Bin 10578 -> 0 bytes .../dbd4ab449ce14d4b855b1477c9632863.parquet | Bin 10613 -> 0 bytes .../c4c42713d8a040198dfa43785ae04039.parquet | Bin 4798 -> 0 bytes .../4bbc757ce69e4ac9a1cf244fccf8a1c2.parquet | Bin 4903 -> 0 bytes 28 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/1d5c0a46d2df4b4196f26ae819ebe832.parquet delete mode 100644 tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/d77df9a635bf4b699ce7596b6421153e.parquet delete mode 100644 tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/b5ee4be9cee74f0e81572441071fb334.parquet delete mode 100644 tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/38cc839fa8494ad9a4329a1a074ee68c.parquet delete mode 100644 tests/data/parquet/interfaces/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/f3a2b23d30244e74accfa7b0792506e2.parquet delete mode 100644 tests/data/parquet/interfaces/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/b76efc4dc2684d8dac9bea467eaa1367.parquet delete mode 100644 tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/6f46bc2044d44a8cbb5aac8cbad5b758.parquet delete mode 100644 tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/629ddb052964484393ff940c3ce92e63.parquet delete mode 100644 tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/1e1aa390dea44fbcace5b830da9c978f.parquet delete mode 100644 tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/307f4cdc3bde47e589a1e4ae3ae706ff.parquet delete mode 100644 tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/d0f7e5b68d9d46efb3b96bd4c9fddb5b.parquet delete mode 100644 tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/3f2ad21afa294e278a35e628a03eccb1.parquet delete mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/0cb3ea7c295845f5ae609cf82abb2ce3.parquet delete mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/6c97bc87063047dcb3db068ad44f2e7b.parquet delete mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/8c5fc938bdfe4c59989c52e7541ac7b6.parquet delete mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/97e8b3fbaecd4cc2b2e4d14fa9e5e666.parquet delete mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/a46cd9e1735d4863870bcab9be1707b5.parquet delete mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/ab4c3cfbafc74feea978c4e4ff06ddca.parquet delete mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/de8b290d3ea5451bb3db22143870c12d.parquet delete mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/009897b213f44df0abcfe32013b6186d.parquet delete mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/1d4804687bda4721be154062eb88c308.parquet delete mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/6b6f1196e1bb46afb3faf777c1d248bc.parquet delete mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/8176cbfd61614098909f081559065064.parquet delete mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/c7e97a2750874af196d01066da06de4e.parquet delete mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/d14f9cf70c97465bba0a422654baf878.parquet delete mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/dbd4ab449ce14d4b855b1477c9632863.parquet delete mode 100644 tests/data/parquet/vlan/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/c4c42713d8a040198dfa43785ae04039.parquet delete mode 100644 tests/data/parquet/vlan/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/4bbc757ce69e4ac9a1cf244fccf8a1c2.parquet diff --git a/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/1d5c0a46d2df4b4196f26ae819ebe832.parquet b/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/1d5c0a46d2df4b4196f26ae819ebe832.parquet deleted file mode 100644 index 1bf4bd7cf9768fb970eb59b20f0e30b30da4d969..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4902 zcmcgw&u`mw6#qKw`eQ0vH{mFONR)_K6Lf8oHe;yRWL1HBc@d+SD@GThQ{b?8DiI%!Y&>e+8rgoGe6=6`>IPhS3G`bWCD|cG3{@XeLIZ=y{y6>9(S`hAF!qmYDl9S0?sHK^A_7 z8GDny;&Gh*8lkh;@x*!}v!2)^_vCu&Qb6L)`h+5Wl7rV z|Du>5=9oW8rTO&*nFxsC6clCLPaemc0^vY?o+7TmHB zWlQbZCmEN;k7uAPJo`Om5xtj2k?D@yP;`+#jp+IFp^l|i<4_dUfI(jH1{*61hoZ6QohR={%=73K%u^ojCqApp^FA`nizwnJuF3F& znQ#bdA^h>&%Lql6BGaa5)WuHZ)7jf`)u=0nH|3Vr)s0Skeer`2mlosp>rKK_2=#W{ z5OoFkMpx57Voz1H`b{s*)_T(#m{>60HB`A(SK=UTbaituVzi{DB3qcQE0$OnEfK_T z#}xy_RbwCTEx*5c@pAm`T^EcOMVt&*til7tB|jAw?Bm@ffHd?kJ{p#OiyqdqwF=F^ zZ*NF^wwCO{=QrlkC+tbBmWIW>iFK%BY4wG2II#S-#uyXE9?s z2m8<;Wl$L5;*4TKsFpNN#Xi=|8h?0DO{E(WUk2T*Dz9QYHZD283GvxHs;-vOGSD!; z&ZkXm8*pO3yLCR)>d&mhe=7-no`P%HPlKqn;ws)lq%e+ z@x_Ggb5g74H=#aDjZyt z3Oy;+530FiVv}qLsm+7h7Dx63;IRb02>CA!h>tHSXGY1C_{tH)(~@mp{kikY1m)0_ zjNMf6*m!B(`iAg0`D+NPC9|&E=PMvy9{w}WUj^zZS7^$51IVF!YL1f2e7)Q8cC08tD-`H`b1} zo4e{BboeZ8%^SEaZ;&QEfLFGFmxROOZfrO4jms;&l@-j$HV6?nZM@OB@^}IDln|>m z4fJ)eeBnCG6Rd8RBlDy{q@B^ivN^om8mkAw-v>x|PRMMIyyF`lNuYnEuS}E>qoYwZ zM4cbiJzK`|YfZRahTT{5crf8%hF|c_zR3J>&Mx4=@^AIwX8T(rQe}J}^A{kptd!Dp zws3?+%M2Sr{p o#rCbPVqKI?^CJ0fgMDM`grv6{_+i8TZ!+*&B1!M#L82|tP diff --git a/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/d77df9a635bf4b699ce7596b6421153e.parquet b/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/d77df9a635bf4b699ce7596b6421153e.parquet deleted file mode 100644 index 57d8088296ba20d23f75f0dcea4a0e63f38478ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4911 zcmcgw-EZ4e6u-{8eoR%@O*l%R5+!2R1YMh?OO|aqJ?tb#oj0`kZsm`JIn@ zPTDQDn4m}Kar(^-Iz*$(2wnYg;h))&cM!Q~L|>-godec1JxY(xETgL^f;mKLfD+y zl>~r7^b|ddQ-(;&A{2t(FuF>fj@7ZWlRCtFIX*+9=oOr|(T1Yedx_f$OU$FO8$l=|w0D&wfu?L?5P5WV9*Q6kVjJ5IuP%)awXW(8dhdA{6%&4pMQ^JMReg z^(xZd;^f*97y$t{V2~HQ!N!Whq3BHX-ivo7=2dhI=H<`#3m;eJRi7H>b=2_-mu2|- zv2X~=A^c$C4TPd|kx^4Ls$w(pVEk@OHLA+du3Xnzy3vfS%zpaW+-%H#-6cGQQ18YJ zQCEO(v@{JQ_Ebfy?s{pq)?KS>V!>F;Q0016iGj4y(#>w4QI`%B*}`;PvBauqi6DMA zrWhcu8vA(f&L?ZvuE$PJTrge~F*0Sb3J(yM{8Cu3k0)~gspns;KQ;XpJ*=~}3jM%u zuSYyvOZM#Z8*}MH_N01U!{Xk=I@E!*`a;>8S$0u37RSj!- z$?s#I{9jJmjo5F`r4Jc%BKQB|NlryW5v_WIoE%M+8e*f1502Rt8;yDgn{F$Ordl^J zH8mffkH?^-V?DbAyu|$C{8H=$MJCx|@fN>g53k5C7Z>oAX4hDj-G&doK4#e^HnWdu z`)qcf&@vehzk`W4`}~`DO+Gy-!sl4F!@@pz5+(3-galY+Is%_M6v~^huEYM!2b`|8 zD!I~9Iaz2+>m^GvHq~2dMk?R#>~ngLrln0uFKSAzbj%&p_xZ)9D(P!hsp8C&F0&JZfe5fw$0~Dae*(^s=1pOAK)&vgk<_qX;suq2h}X$Ta|LL20G$GKVC=ajV$)TwJDY}nM$tMt&|JL zr{VI+oPAuum!sw$9_@P0AJb`t>-(56YjQr`wX9n}FQq z+fuRvS(S3tZx{4>vA3F;}EKalkjobhxQ*BR7$Q{?kqp`1^V zUSecYuRi9>*&QsubO5*Ou={2X4<Q~xjeZ3>|+_*dD#t&$2G diff --git a/tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/b5ee4be9cee74f0e81572441071fb334.parquet b/tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/b5ee4be9cee74f0e81572441071fb334.parquet deleted file mode 100644 index 76cbe16439ad1b4dbbfd764c721ae4a4167d0602..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8771 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 KVbrnaA!E*DmTV4XBp=F-_8GVZc1Q! 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 diff --git a/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/6f46bc2044d44a8cbb5aac8cbad5b758.parquet b/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/6f46bc2044d44a8cbb5aac8cbad5b758.parquet deleted file mode 100644 index 9a221e44168f1a1adbf5356103e84342befcb311..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7487 zcmcgxL2TRR6(%)DwihSx(vp)hck_gX2v*yoWXZ9DbpRz>5*0_Wl~|NC3;{_o5*?CK zB}%d!n@7^1FFD|Co%)9;YX_n0N;)#wJ8 zBd8Dow^jH<5b(TCC4J^s-zJC^VBNdFlip!B50j}{Dgergmml#x1w(xC6&Ki9LNI-b&Z!NAze0V}2S1#!;xgz4fDR415%>fH{At()819>*Ip|}A zCjE?L{&vW@<7Moe2=6*gm`|H`S&uy>+12U3`BgJI`AQW?H>dY1?!w9i>9J&9t>o~FxU4D zQ|WbkYF`QPAUabxGMg3b;eW2W9)^dC(d_iFgP)T0`yuATE6j@(;D_xwhEvtNj3X7j0I=Sp>WC?lsqy1#{fB%E!AT{dEqt#~0UY zKPHH)V19RNXDhjz*{ZOK^#T`w`>J0ea_%|UgMWVA^BniLpI{xe6TFgwEA@j@E z)+i!+19if%D4XigO6EgaV*a%D-E;3pK^A_jRv7(rnuvt^a$C_wiYBO)8zHNi-XIRv zz!WA}t;$8{S)IcxIt{PqvK7C%oB*(o(Cv6yo|oheA!;h%(WXb^KMqm1@{JKZUvl~dwpeIUcF;3q5^&4fFsVu}Ics?kF4 z9zV!$?#7-zb;0;iSZL1Um{7kI66E324FF_&7sKBX5L}poJ*gxJ=`Gz z>`mzNwP%mu(*`|^`C7C_;%S2}eZKba0hme`hdN(d&fq!iotHCToA#(UZPLS-uf@qs zH*M3$I%ici%$*c^#b19WWKa2-I`r1WHf_(PpED+PI@+`?hkD)=E^IwTG&?<9{4`bS ziM=tZeciFx>vcv*mlIH+rnlHFHU@PmX501f5?k9_sn}B@vcgp=_k`QlM zc#h+a;DfF^9GBvv~1SLA0gtt%Reeu&v3_DFduY|ICu~KVkO81dI_#N ze6pjukbYdR-Q~EuEZEB4;&pA%C{$CmWO*nRtEOb!Rqv@;sdj(V;&q#*WxA4H(Ud~< zj6dnLgzdg6>3OqppWopN>4a1m_4!;$7lmrSk>q4d7EbJqEfV(=V zCo_*lA#EUAyjDG~sBDTi5*Z(M+aG0In&9H~bXyWEyA55_q(bG<#Gjlkr@j>2gQjrW ze+04h<4Hgqs(l{W)EnJ~aQe8Gv@qUNAvQwhaYGp4ILL)O>{tG*wp~ff5Ie+g3h6G2 z1;h>Q1K3E6l&UAzdPWuX>Pa()`DUY5X@d^7KH0z1%s~#t)U_#ZL#&Ii-!m}z`19Z2 z;5Zp&P1d!xWce|bZ@iyx=X%+jQwd4ePNZZ-v;2bGt!2~RSW3y#TMePiTKt68Eac(5 zRN9k#F0y^T=*j;O;oZ@&=2V`T@G7QHQ_Ng0`RCMYF&$ zdd?le^Ii(^&(N)e=7TIA5}^CTg@%S~JwA-b(IVSMG(04r`N6r+jKMi^12G=Sw+?T` z<4DsHk0*~3mc~oG%AsYk(v^hj8Prcx#?%(KhvyQR%i(8qgAoL-;Y8mtR)URAMk5<_ zaS|)8hveUQ@J2ko3vch|@qA;sW{o;nE1G{`-htYT&o0)yhyC3@g!v2OpJ5NZU&J*5 zYvPdn*$Ldd_V9e=v4`g?r=~*uk$k2FH!HpstO^Nv<6A_}xCWvAaFjhl^6KZ|L#B&% zFNCFnAp^nWNir9uDz diff --git a/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/629ddb052964484393ff940c3ce92e63.parquet b/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/629ddb052964484393ff940c3ce92e63.parquet deleted file mode 100644 index 5b5fba2b2b21ad4276c3a0e991b4602ecf86504f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7508 zcmcgx&2Qt@5r0%2*^a#%cN-E?;-s#SB^HQnQL<%Qi>3f2TN1Tit*u?_t0=Z4#g*tK zDMg|r%Zokal0%V8gFOUA(L;|xf#%Q_EwCtpq9}T3dnkgQatL}T+W(*k+Mx3uDUr0O z1WmN2Et+p;IP;r%^JYf7M|?3x&(RC?ONVrTM%NI!@yqCc*XF*3$VDUi8vWWjuvX|G z9bDZ(H&6(3h}5EhPyiMIiV7h13AIWuhZ8F(7!J)DqOQ=(On_-J?@;V_*oD!n;dL;F z=m3J-3j9F`*00i>$NURJgqDDH=kCtl4tKC|65sPdvgBfi+zWqvAAQZi_nh9UD;fd# zKE?cnV*eUo-wt4mZarS5zQ~v9S3SssF)Jj!wh!PyuN{JqKfHH?4!mI36wO|j;4_)` zDE1f6v7gRicq0|QVAklk2h7S_2rYxP{rzm5<90bNmWcbnT6Xh8o|Qk;e=fM8Djij{ zLiqv3d_=K-pJ$)UW2_!c7xen#e~DiA;J>0GvAH=P_?=mS)gcakMlnAPu%BFE|GkVIoUZosEcyn3 zp>KEsuvA589>ArWVz;YyecYY5S)tK`zbhYHb6lA-hi$8xyh|~^qS)Vlo&9tLJ2Fz? z=<)?QEw8w<9d0Kc=Mp|J7st$y^XL!tZQ6mlfb;6!2(Fb_@4U$V{u?B*e0BOlevRJo z#P!+_5xNTI_cnJn<9o@?A{SfB@;^*8U#+Amn&3-&Z4_nVf?s%@{2k$%PmX&d z`^Q&SX%xPW8)HzEO|@?&^ARJl|5*L@h4;fC3qMw84F4&CLcy-wRCJMM5WRdoVD;AP z=x`NG5rWms+!VWicuAyAyGf%O=%(3K!%ZTm&rKNTxSKdin-OgekUBd69>Lmn9x;LN zYWV4w9vIl!cXIZtc3<|H^h9>nEsMS64#Cc>jI%SZvh1^~dhBJ?p)Xxlm_J-$0&x16 z4_97P%+?1uil^eCblb>-~7+|qiw(T&_(`|kJF*CN*PKH({Z`Y3`YeBc{B zO#_Jss-o5Jduf)|`?z_7V5DcLGEChOkT!aHdpKsaq*FyUF_L3epo=kEi`HN~Y0#n1)*d+k6X`Od&eqmw{G9a8&6%xDdtjV2>0->* z;&`%~wCQ18u&Ns7&NhCK!#DRqhTNf^O5aWLwgU znvyM@3#Y9{d8?~Rdd95X6?TMdA|_=AT_K&<#d4`z%Orc%a!kW=l2PhPY0zV&n(%&8 zjwLyzk|I38DD}j0pUOX{~L#ZoZn|iHXE1x~A#4U_>RESME`LI?VkT}TM4D46tys}kH$Phcs zua^^T91DmW-UqM|8z?1Lto5WS>ZQ|qn()n9rPu@=Ty?yEXUW4fj;Ui)-hx=?V85qe z^6+QBzy5JD3Yx5IP08|OBHsir-_G@dJEvljuANHpqGtI8xm!sk+_9A6`8R9j0%!4K zT0NVA^HOY%^EtQQlIQM0{!WcmHZ!arfGul(E(=$@24`K`5=h?odT?2Iz|OFqaqRlUiR^F5s!JI6*Goe=uJt9A zoa@WN#febg@%fi3{IuMfkn!73sNG!Q)UNN7^}j6{$MM4dQM0OWZpBK?KHHOZ)Wi3y zS$e)N#jQH)(~ndsp0sPUUtNgRao$$9@*32OzN|uT#C0O8sj{9KD!A4{?kMHVP}Y-h zDsg|QX|hphOYv<|#|wA22ZyJ;iu;4BXU1!zJivYK^q_ZpxXlR$hnxB#z9n#nztw=Y zpW4H-zzJTbk72#Pjrr&JmdEo!iVO+R{o%qxL#i6>N2B;5)xtU z#OQc5vQg*8vEn;e{`GsWN27c2_CbcsH--9EVzX<** z_VD{TQWJ8)VNPAhs`Hd2sp!&zCT- z0)CQG$Bt9e_5*J~ip*f}02g`16~8y$K%sBK*P}Okin$@T+Z$xwUb6@4H8N?3pTa-4 Qe*Q1|IgQW}{D12I0G*Ah#{d8T diff --git a/tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/1e1aa390dea44fbcace5b830da9c978f.parquet b/tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/1e1aa390dea44fbcace5b830da9c978f.parquet deleted file mode 100644 index ca1fc1214878bde0c68998635936282eaf4f30b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6705 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 GN&g24_r{|D diff --git a/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/d0f7e5b68d9d46efb3b96bd4c9fddb5b.parquet b/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/d0f7e5b68d9d46efb3b96bd4c9fddb5b.parquet deleted file mode 100644 index 49e335fad51e3dc33907e2c3574b9aea0d33ac0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12151 zcmdT~O>7&-6<*3REh}>3$XSL;lty9fg&W)ApQwmIE=x-M3r$Ou#J@Cf_fO=?yGxo} zlA;110_0E>J_J1kXb=QFw?>gmfiwuvpobtRf}VORatewf=%MJbEz+WIW_P)}+@)$; zl+aSrYG>Y?dEa~U-kUcgZPLXsIZYDed>$UeJV9LjRq$U+gol6@`5bxuI_V`Z!jE@x z)l2Bq3nD>GLBp#(Jp^^%vq(-a#4Zxvg|%~iL992_&a@$LUL@xHF>+iDJVQR0C#Ou$nSKfIzz5*Zlb3Dq2|ps>r9YoF zmfqtfsQ2cEApPD>v)kqbyz&j-eGm2N6V$s;AXI4hi9vY(NecvqQ^lrYLiqdw_2UaC z4&lR#CWM)Gv#Sa_Ox*9zMvLws|IdT{ATLrlUaKk=FJXM2n!^4lt-TKw`Gl6pWM3F9Ieu!Y79 zjr?ExjE0AQ#-NyQKH{oNFYvj9(EAI+O~CIJTRoxO!4~_(Y0?=Uv1OFu>15J7D3&^y`WS$NCeO44XA8;yLg#^OJV8C*0tdYh4Dfj1rU z&o59Pzwkff2|s_y;t8^#wnfh33HO(%-@kZlPdH7_{@rC$AF=~6*zF`6j8YeNL|K5g z+_I?m;AQHsf&VM@estATZx&TOLR(Pu{Z9+tzfjZz>O^$<$1k4$^*dU%X^U9@j6pHq zP@-`5x`Z<9=O14)bvm!QEYnY3q5klFP{}#r7%?tEPLNNMOQ^meaE0vmc;Fj`up+eGiBx1)SO=e5g z_E1AKky;g{&!Tl{RgJZ4SY=qGnfw03OGEp!bzaMUX>=o#==+jplwpcDIFRZtY1Sa) z3AA*k8Q47+Xf#V8X&t5)!m1)Dngb9%@5183ck{vXc8L~D`5l=I%U5pD(dRWTMvl|>3Z)vK-2XMXqRSA zp=SSx%ty0H zQ}$T42|_XNES&P~v|^347bVQjN0A$I%n8oi@ogiDFGz^KhO zE;l5RZ8Plwsy12!rrmD#(Ol?W7ydMXdSmEMZvoiN#Hjg1kWn`B>L5I>`t|Elcv|#V0_}$tSohF>C#FiQs}XnlFBMK#am*6t!($} zSy}Is;w@G#NXL8EKEtNPRqSGS{ohEvXva(&*(< zs9G*I`1A(C2e?b!Y9xM#DaRBfD=U?Di(+UctAyh=?7BX}AUDL7Rd|Uh^G!Z;6VF|f zC5cTJ_l7zpbJ1E^QkYEfFe{G1FCVnHXpsf^p~8NV$9yu_qLPSJqQw{odfgI1uSo80 zty~Cc^svOIQ(*sMV`!gDsFTfD?3v847TI#XlxOKJB_1sag#^`WOC+PnJHd+eR zO5l^@{7uRA_)1YKrBe!)dwTXd+=Vz{Hc;$qdC4VrK%PrLo@(4=Dtg?z;nVZSFjh+; zEzdn#9&}$<0Ga;n3Wi#w1XLwepiEqpC5QpHCClAzh2e%aOWOxTYr0< zGA2H8EQGmGp$YYv0=cdQ7!JYrRZd$^=N_y4*D-EBVD&whI>4&e!`CLYN={;r+RHLI zsV0{OwQ_9#h*+L9wh#k#C)8vOwnC4K8wZb@58Bpq0`Xjh`j4s9#^yd7-PQkcJtG&m z)X7j|#ygsCyRBiEM|D{>nv)>^_Bau0c2sYsC6SX;0|C{1P;(09)PR%YQEfj(`LNJp zBP+OuEo`s!^ZT@j>IX|L9|1o&WXka_uD|y;x;FxIarlO%H zf|?lO4eDmpu5BI$gZK@OXYgqm?X4_6d1Y{~ag+ls5R^;;{2%Oy&nX~3XW*q1n6qHC zHX$}sBj3Sm zR_E8pCyaI?QAC_Hw!g(b+o%(;3~Cv^0lIC0&nVzWD$EJINgBH&pC4qeprV|lPuF`qLKiD_;Z(^@N-fZ|E8mjptmRGG5wjlPJJLnt)qzW1z z9*)=LjruR1q{XL8Dw>$iB7E2AU{71$G5X>2KCDR?#_d+iSbe&K(u_ViW%5{y*VC>cjv5 diff --git a/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/3f2ad21afa294e278a35e628a03eccb1.parquet b/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/3f2ad21afa294e278a35e628a03eccb1.parquet deleted file mode 100644 index 08df78dce3f685d71ca44a117a07bc2040cfee8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12151 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 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/0cb3ea7c295845f5ae609cf82abb2ce3.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/0cb3ea7c295845f5ae609cf82abb2ce3.parquet deleted file mode 100644 index 3276e6694c6bcb5f4136c2acdd3641cde6857a21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10592 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 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/6c97bc87063047dcb3db068ad44f2e7b.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/6c97bc87063047dcb3db068ad44f2e7b.parquet deleted file mode 100644 index a689b31c963dc02b177a4dcb63d1ab7865f509b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10578 zcmc&)-EZ606{j3Sak4DU(om3Ft?{&m2#~~*)R;l5ET0pilNxk9*Ut)dkBVMD|YVXhe(lh z;?#E7n&Q3Z-gAEE^B%I@q|0$~nw%lu+90P$;xa*8|J}m>=BB?zz!hOgf_#UJ-6VtL zCHMymKWPIY0&et3r2LCT-$M9#=K3`H> zBX83`4N~9JU2O85ka7g{G1?1#j7I2Vw9eNY9ftl-=f~*J4!Zu}pPZw<)Fa1aJ0au< z;2+=d0{{390{{4q&et3r2L9>S$KcN?Z9(*h|Cv=p2>wHuB@0TLvc_Wq2b`R1+O;jiH_*o$Id4PKI2KD@6WXyE@ zfu zHzVW)U5W77zSvb;Z3RluROp9+&~F3Oe=bu`FGoC>c|!E{0mz;NXcz$~<0s1;j#+Qu ze+xy(X#@D1owg*c9q_`Y*lo21rrlFCti;nm=(7OzN0R#TifMlbYafBHUAdpWHC8UD zYOK~%ZTdV9Q%}PuqE7&w1JFX0Jg{7Y?$#*6Qnq+zfHlkFUQEo9+8&VJ-Zl_iMBNeLG2ngDT$?WtNN($*Hid zD+CC^jrT!faypDp7S!y`T$>8xP7y60H(@VcYjr#?UTU@%FJ3u5%U`_KJS06=p10H@ zFTkUD7F{DYB47Y=8s@ypyiPG{q&}D^F!o6+I|*Hg5%zW=r>os7b2r6+fW7NO1UiM)p9Wl>`V zR%2oLgQ%#$@|LoT_HJ)wZmmQgJ{*H_qKJ+^&mcYyG!wK5ROn;QhdWZ6)fN*Uy(BiI z^TV3}(a<+)eO_@3caTm(w)t(uE!s{w3CYHH4Yyz$;Uwf*pCsIp9i)?xZG1a$OSTbw zJvZ(tQ?9AZaPu@)FwY%zJCvmi8_f`Wv-d@_7Cj zg*jh$-9p{;;}&jpy*|Pn^kWombk}aFHo}CsuNYs}8=+gKgES%43Yu4lCH;NREpI$O zA&hIcCA8cr%bcAITYNZmMOJHf@c|~axGvirqVuaWWV_w=0P!*t7G{(4vH4gOPLil0 z*G7xaFU~JT9}?jUbh&)D`kwyU8GbakfUn&Rnx;$ehprE3dWlZ&(ixiGrI}qkmrgtA z12nm2(F?ol`WWt*3#R92dO*WI_{B`%7jJ@l9sbgTdNsLUuN7!IzXto$w{x=8Yh)`+ zwM4PctyeToDYWjk(p>G{U^gclb5g3q$z@5*Rz|tK_HK1iZE(HGW;% z5!R&v=F8;!b-5$e7fU+5T8Y)G<))BbL-+u9rB_d+_StGuL9%jEWxL#pE#;JW%7NX` zM;zuYTsc_)K23?2${nt%%Wue%#AVAnmR?L=sn^QwMlHY1B7IsuddLSIezD9o3?CQmwp7_#F;-19R4$Q;6-Idh z>m!5jYUyNcv7F?=4|iMOheZD4Mzt8z>2V3CD5q@cviW^N>5;X zad$YSlql+Ss3q}%Sh3YwsPV#T{b)Iz&BTOS0oO8*+Bkx`VA1((2F{So$X-XFF2{;{ zM(uXjb~|3J0rds;$LiL3a**0!P>mnQ7AL3n8?|By*|Jdudnh_@4{SZ;KR%xBbJ+t4 zY<-$`(`CmRO}6Tg?K&GlHO>wR9sx$WZI*xp3))&hi!TtW=je8-z?sYB_jtJieM@SH&SK~jRJNKQ)@%7B?theY5}t?LB9Hml zYTa^<$;CJJ=w5-zLta6hw(_+BaZrT%vV`k*;oj0{19El;_mfM|FERyaC+Q6u`o+S4 zLH#3YE7wqaxlw{PlgXjpvxM4GdH~~9yi_5C6D|L4@W%xJa?O)`&v~@<)^ymhx&n@(I zeOA+$i_O27i>@{HPkyPSNU;XIyWBD3~B5m;%1jfE3QrcZI z+$AZ}FyID7Q53xtD0=EK=b{I

Y}_ilFGR$07&{AA0a1=b$KBqyNl4xXay@Uy{6u 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 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/97e8b3fbaecd4cc2b2e4d14fa9e5e666.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/97e8b3fbaecd4cc2b2e4d14fa9e5e666.parquet deleted file mode 100644 index 3c1f8b9c59b79f7dc700863f019d51069a88e7e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10585 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 O@!4Ahu>t>6<^KV=-bif# diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/a46cd9e1735d4863870bcab9be1707b5.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/a46cd9e1735d4863870bcab9be1707b5.parquet deleted file mode 100644 index 198f51eb0eb612928c80f6b080777bf5e18f0b6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10620 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 Df^JQ< diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/ab4c3cfbafc74feea978c4e4ff06ddca.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/ab4c3cfbafc74feea978c4e4ff06ddca.parquet deleted file mode 100644 index 013e34dd866da6ea81df162058ecdc692d4e871f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10613 zcmc&)-EZ606{j3Sv9q+z(om3Ft@YG}NRc#_WXp|;Vi-kRvQ$g4lvrOy5%9|vZIWU| zO0rZ0=!QP*VJ`!QJ{5Z!_BiaJ1F~TlhN2kyCk(}~hhh(X=yOpNTd{L5KSYY8^HJMj zYl`=td(Ziu&wI#rhpwl|d2)e#VVj&IiOU3W?N2NJTb}344+an?n{v|T$N!tY);GpY+4}a#f z|AI}4J5M0Pd7jR~y3kbq_oW1R!Aj-x{iFQY5cQcn{xlN%GD3a)9QF0Hi7C_RQ;5(& z1+S2lN5Km4Cs^Fy((OFb1z&|K_Sk=P$2)VG(Z2bU88%mN{X`T%6l0|yw;QD%_Cme5&Ke4V0r`9z)C!b#Qqhb{z_8cU9s)&VI3mysVn!J7pBTZb%Qkq zx=Ww0!8c;ESnNvu%D3a?C0q$Y{m)Wjk1q_G}Y%>l>Pb+cuW)+kDoqF zQ2%@p^zw5Jk@eL5^q=Kfy$Y=4)9W8EQ@?!qd;9AJ@`fk>pOFY+5zH;ALs2z){qd~R z)`@G24lzD`40h4Cueb_Om3}f+-(2%SZOa?+1xL{~R1V z3pT!BQ>IVI>;Bnb_}@@dPb?bHQ9;%ynk#8Oze;^{6`bH_7$PP>C4zjGTt+pPFgw6V zBp!*tcKmDOI-hguEA_iq6C|;86`H+xl;sU+Xqt2<#!;VKdlNRh_b<0OUN(1=W9(ViiwwFjINllTO+arVuLu+(M>N z1zrN7mP3iy+)`rctJ7`lsncz|sZ(u?sncv+sncyNsk3bIPOurH&bB?GPQ78F&a8!? z&g@X9PWsHH&f*k&;zKR=#Sde1P$y%bkyi+KiHk=yRux!1{_E%7OG>IB9^K=6@<37b zL|M4!oin-KGsYTPm>j4Q4;^O`R;vR= z8#{y^cOdcxnpZ@F6)Ze&HU{X~?!epZG<)DW@UX`t;!!>>`|oT<5EW zU$TdE8nUg=3x3HiLa5yJwI_}+>x+P2u8S}u_wn-07t;Z+@_y+di)N5Ws zI=@dBXnLP!_VHXk@1c*-~EQ4xMMDuUZUv{4g261Gl5^c3GQw9%a7X4>|wiA zq3QA_?9abmQshCW*jQ_2szYw8VQ^|ix-I3o)}7IQNwMbSoW?12Su8dtrGwsnb5)l( zrC@aKl-5hdY?>>M^b%86*k(iT6mo-hGcBWaoZ8Si2KcD?F6{5}>0C-|gL^02LFa(lIA(wmJ`yIJoF#Z80{a5o0+Ozx0vW>qAs zBsX^JQfjTFrgI+bmOkRR?BFUX0`Td|yj<6~rYXOp$TC-~?>TxgWwqU^_d2ceE{pV$ zLiA9MG=8!gx z1F#K{|M+x%$Q6%du=QEm&6J($blIjyw(o2N-B8X?>PkW5ijBis#)^lav(n=~f6eyT z+IvohoGVqCS36oe6Iu@^5O*0kpTq0*_dCBsaG~?Kfnv+x%~Id+pTgI z_djYr3(sS2mB)NswQjw{l+xP=^q|6&A+MlLJNepyIH*E>S;O_aa%XL_4LQ4q`^h!v z7nusQlk_$X{bFUrp#BlHm7A!&+^#{J$&^sE(J>8*oX zD=W9)VY7% z{h<|)HRjf%>+AHa^y^68^@GRLx7xSY(*-*okJT6XGe7O+u{!w@il4f(|IzfVf{o00 z&yTG5%Uk}%L1X4G_8N{~2FcoTz3ZUyTX$hAp7<~kH^Ci|D@0bY-Jtv3pGIyNy z707urJ}S5hU?EoiqO}Yz5b)kj(;avxVvCJ2e$N6L-~+yxVU32kgm?!R^YjKF! Q@n7PLmk449{)fx|0}y9RCIA2c diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/de8b290d3ea5451bb3db22143870c12d.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/de8b290d3ea5451bb3db22143870c12d.parquet deleted file mode 100644 index 098559f5d9740cf026f3967042b91995f36b8697..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10578 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 F{{iw#J^=s# diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/009897b213f44df0abcfe32013b6186d.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/009897b213f44df0abcfe32013b6186d.parquet deleted file mode 100644 index 24a72a61c2556aec28e799886126d6a3e191f830..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10620 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 GyZk>+D{8<1 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/1d4804687bda4721be154062eb88c308.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/1d4804687bda4721be154062eb88c308.parquet deleted file mode 100644 index 01e32e57eceadfe02198b1e3755aba87a7446ca8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10592 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 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/6b6f1196e1bb46afb3faf777c1d248bc.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/6b6f1196e1bb46afb3faf777c1d248bc.parquet deleted file mode 100644 index 18f4659c136cb418efde1b637217b3fc0a9c9fca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10585 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 LO%UtwKUMx8S;t1d diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/8176cbfd61614098909f081559065064.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/8176cbfd61614098909f081559065064.parquet deleted file mode 100644 index aeda9343a3064f091b01555b2b5ce4b4982a4b16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10578 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 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/dbd4ab449ce14d4b855b1477c9632863.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/dbd4ab449ce14d4b855b1477c9632863.parquet deleted file mode 100644 index 385de388f304988adec019110ddfba74e28b243d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10613 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 Date: Thu, 22 Dec 2022 22:00:44 +0100 Subject: [PATCH 69/82] update test data Signed-off-by: jefvantongerloo --- ...36c1e91e8df2462ba660b52d5b9fdd89-0.parquet | Bin 0 -> 9314 bytes ...c939fe6bec5240899119898937ad6b96-0.parquet | Bin 0 -> 9300 bytes ...9bb3b26112674bf6b016d36ba0479403-0.parquet | Bin 0 -> 16667 bytes ...0c6b718a8fee41e2a2bbc0a01c7199d0-0.parquet | Bin 0 -> 17147 bytes ...0bc8e37826cb4c07951a069a1cbf1265-0.parquet | Bin 0 -> 8009 bytes ...ac51149e1855475b8dd15feea6e2aef6-0.parquet | Bin 0 -> 8023 bytes ...ba1faa98705c47f698a6732a94874476-0.parquet | Bin 0 -> 7282 bytes ...a784f7b33904456396afb8567d0e58cb-0.parquet | Bin 0 -> 7315 bytes ...c859cdee2b6243d1b9f13e2741cfd4cc-0.parquet | Bin 0 -> 12773 bytes ...9f060c021d6e4c6689b9c378c0ccd5c6-0.parquet | Bin 0 -> 12765 bytes ...09fbba059bab45d38be16b453a58187c-0.parquet | Bin 0 -> 11158 bytes ...179a3e69b563427f92f56c6f4ba16dcf-0.parquet | Bin 0 -> 11151 bytes ...4ab842ebf4c84babb433f5d3f7545555-0.parquet | Bin 0 -> 11130 bytes ...54e109d23c064b23b1d5ad77d742f205-0.parquet | Bin 0 -> 11116 bytes ...6f905d010c584b00b73931b63284a2ec-0.parquet | Bin 0 -> 11116 bytes ...a96f945108b64cf78d4972609aff9560-0.parquet | Bin 0 -> 11130 bytes ...d6cb6c9fbbf74afa8188887ea3d1b3a0-0.parquet | Bin 0 -> 11130 bytes ...17fa0fc6648942b8a540aab01950713a-0.parquet | Bin 0 -> 11130 bytes ...23025dda2afb46faa44d2e6990b7a0c5-0.parquet | Bin 0 -> 11130 bytes ...250c4f5cc57e480c910f33d2e767fc71-0.parquet | Bin 0 -> 11158 bytes ...7568202765174900b2d4dbbb3fb72820-0.parquet | Bin 0 -> 11130 bytes ...9cfded43801645b1bd65f923d5e81523-0.parquet | Bin 0 -> 11116 bytes ...c9071829ef214a619e1ffc19fa0e7d5a-0.parquet | Bin 0 -> 11151 bytes ...d9539ef60fd940c9b8397f61ad5da898-0.parquet | Bin 0 -> 11116 bytes ...a5b021cb35704fcdafded48e7e143a23-0.parquet | Bin 0 -> 5324 bytes ...7892cdc3f4914be1811cbedd6528776b-0.parquet | Bin 0 -> 5428 bytes .../integration/sqcmds/aos-input/arpnd.output | 25 -- .../sqcmds/aos-input/device.output | 12 +- .../sqcmds/aos-input/interfaces.output | 92 +++++- .../sqcmds/aos-input/inventory.output | 20 +- .../integration/sqcmds/aos-input/macs.output | 8 +- .../sqcmds/aos-input/routes.output | 56 +++- .../integration/sqcmds/aos-input/vlan.output | 18 +- .../integration/sqcmds/aos-samples/device.yml | 12 +- .../sqcmds/aos-samples/interface.yml | 273 +++++++----------- tests/integration/sqcmds/aos-samples/mac.yml | 30 +- .../integration/sqcmds/aos-samples/route.yml | 31 +- tests/integration/sqcmds/aos-samples/vlan.yml | 58 ++-- 38 files changed, 329 insertions(+), 306 deletions(-) create mode 100644 tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/36c1e91e8df2462ba660b52d5b9fdd89-0.parquet create mode 100644 tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/c939fe6bec5240899119898937ad6b96-0.parquet create mode 100644 tests/data/parquet/interfaces/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/9bb3b26112674bf6b016d36ba0479403-0.parquet create mode 100644 tests/data/parquet/interfaces/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/0c6b718a8fee41e2a2bbc0a01c7199d0-0.parquet create mode 100644 tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/0bc8e37826cb4c07951a069a1cbf1265-0.parquet create mode 100644 tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/ac51149e1855475b8dd15feea6e2aef6-0.parquet create mode 100644 tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/ba1faa98705c47f698a6732a94874476-0.parquet create mode 100644 tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/a784f7b33904456396afb8567d0e58cb-0.parquet create mode 100644 tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/c859cdee2b6243d1b9f13e2741cfd4cc-0.parquet create mode 100644 tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/9f060c021d6e4c6689b9c378c0ccd5c6-0.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/09fbba059bab45d38be16b453a58187c-0.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/179a3e69b563427f92f56c6f4ba16dcf-0.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/4ab842ebf4c84babb433f5d3f7545555-0.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/54e109d23c064b23b1d5ad77d742f205-0.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/6f905d010c584b00b73931b63284a2ec-0.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/a96f945108b64cf78d4972609aff9560-0.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/d6cb6c9fbbf74afa8188887ea3d1b3a0-0.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/17fa0fc6648942b8a540aab01950713a-0.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/23025dda2afb46faa44d2e6990b7a0c5-0.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/250c4f5cc57e480c910f33d2e767fc71-0.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/7568202765174900b2d4dbbb3fb72820-0.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/9cfded43801645b1bd65f923d5e81523-0.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/c9071829ef214a619e1ffc19fa0e7d5a-0.parquet create mode 100644 tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/d9539ef60fd940c9b8397f61ad5da898-0.parquet create mode 100644 tests/data/parquet/vlan/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/a5b021cb35704fcdafded48e7e143a23-0.parquet create mode 100644 tests/data/parquet/vlan/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/7892cdc3f4914be1811cbedd6528776b-0.parquet delete mode 100644 tests/integration/sqcmds/aos-input/arpnd.output diff --git a/tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/36c1e91e8df2462ba660b52d5b9fdd89-0.parquet b/tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/36c1e91e8df2462ba660b52d5b9fdd89-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..97df2f6e68789fdf91d689a724b9b984560fd286 GIT binary patch literal 9314 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 H|DWi8QdGg8 literal 0 HcmV?d00001 diff --git a/tests/data/parquet/interfaces/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/9bb3b26112674bf6b016d36ba0479403-0.parquet b/tests/data/parquet/interfaces/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/9bb3b26112674bf6b016d36ba0479403-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..b9cd09760e7b8d6b917aa08338b74c565f2f9d89 GIT binary patch literal 16667 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 literal 0 HcmV?d00001 diff --git a/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/0bc8e37826cb4c07951a069a1cbf1265-0.parquet b/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/0bc8e37826cb4c07951a069a1cbf1265-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..53acce7227d7cb60233f13d2d4dd034ec04b5dad GIT binary patch literal 8009 zcmc&(O>E=V5q?s={%O1mcM~$y!f90@ODr1O`myA-wnYI-w)GROY-`t|q@q}m6j!2` zq_`p_TVCW)pzSG_20a955fnM(&_l66e~`nXD01qd$D9^HkwXtHQ1sYS8+6{IB$5`j zK~qJgZHjN^alUWfn>RDsJ>n{HYJpm&Zj`7Xg{~uX>$lN=hZnwy$VDOQI`#SnsMe@O zYH@uB-9il3kXb7Qgn}>#1_D9E{xq;ot%g!-Xfebr=z=Cwt8|cV({BgZ@3PCIS3?^B zho~Te+Zucz1miH3@W8MA0HIY-9p2kX?Zh^Z63JT9hsvs3&v-`u6rX>^p?F2>G-Z`= zd>WuX4zM2w*&hcnO^=~VW_{_eQeXGbUyR%9(ldNW2YUtsfBpo2zUUBKG%dmEnS`N5 zzZ+nGe}(1rcP$2tNcCu*EPq(#lEaJJ6+=7X94>CAp6l(_W3GyaJtzSA^I)=P2KV= zz)N+6mVjKgEtsZa`nbC^R57Cme^=hQ?zpmG4GcSdyc3{*7hr$!HTIJ=?8wN3W6PK1 zw780$r(<#=5fgoAu8ft8^XO0Yudg^%mvLO(AJMe~>mM((AG}Ng%h#qa<=3el&$?d! z2}0KZes^nUE3up2s>I^q9OuLPns)|sY3%R8-(Ph+SnA7NQ|ag=aGnL|PXp|qY4&Xz zJ8;R^gmGV2)~JZbm1Pd0)YG4R`$qvt_Lm9@vpmu`Pc&qZNvXdhpWRre7KTM<#ZojG zlBQ-5S3V5Tp9I)XL+tyZb;r2#GzG@TB}84L!W+0gk|M|i0`Lp3lg|;arS!NMvcG(7 zokF3TxDqZ3lBM+RU_PQn_K)k|x%7Sr=E9F%3PXQNA!gB(+Oj54G@@2-2JK>c6P4Bh ziU{n|<(3Rtl) zg*ycH%c$Gz|5|I=nN~w~*2RjQb8TQ}mcZGW=U4X2%XjQNGSC-JDD-cx(m{5a{?*zm z(5GxLi-w>#1(SJt^+`n0oAUVssiXEZ-HhA`fA9Mn;fOtaKy>mYDH%SA;MN|dN6g2# za75sxhl;E=A56+^um`x9;}?3mB0>Uva{P!-+UN#a+$xpXXkQ7W~2(n&l=ehEzMbks?#k@PYYDI{H4usU5x!@~Ws{;-v^$8aZBh`zvaXB@l-pTr1! zl9%9Khri5OoliZg*Y0v$iG%kuw+ouuYviiQTB6(+^HodK?<$8%My%aCYZbJiOidf2 zR#D|#^`davY4P!xS;!Vo#l(4Bf|gbUt$Nzb61~-^ zRoY-9R>%0cR9wuRr%PGvU#czgw#^|vwxZt&%pt&gkC+yU%;rH$85 z)T^eLhkeX@_YLO6nziZs=GM<^ouou{An*sK?MK6C@aKzi1J{X47Iin05EMR?DRS3?E=`;tP=#bli89{s%H%09OwPAB(o7}NM%&WjJ(o2q@5 z{PTgmzb7Q$VBT}wKS?heVj?*$t`dz}@j~F!y}8Df*6vH&6+8Z??4yuNUo><7hdhew zPOS{FQy%8R$rvNK-#uq;`<Wz6$GdU`ci^_c@ajbNtSMA?nA8vTehs9;&_OUj4tx z_3iq0#b|1FPV}kK9=%_#uWRZ4us-?lDfY#LUE9F_$$VP1dk9IZLY_?za7}{zY6^UD z0C_V-YP_CF!Sg`emdIIXYSn?1Q2U~SdyGP|bjtPaW{Xhg-8CEc9rpRbeZ<{+$&1qI zvGUOFv`V-iO5rx@%@(vtnO)pFo#1iy7{+@^tiQmwBJQU$q^W{#2`+3PQ;+teQT&i; zV;O0xaKAOWa8JfT9L5Cbe_&bx&u<;wjz+Pi;{suU8$YMD!_Y9yyJCRoTihP$<0LLi z#`p&9Azb~jy%S=OfR0so)3$Bg8Omk?}0xFsbj~fY5RdUAVcykJitX>A^U}xZ@?Gk$35BF jlni5&d@l(Pzj%bnHNiqH}KC;EQ?Vas1* literal 0 HcmV?d00001 diff --git a/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/ac51149e1855475b8dd15feea6e2aef6-0.parquet b/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/ac51149e1855475b8dd15feea6e2aef6-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..ed8186cb644251cdacb68091f720fd8d70f55f64 GIT binary patch literal 8023 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 Ve*G!@nf7yj$=?}54&lFz{{yB-dc6Pu literal 0 HcmV?d00001 diff --git a/tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/a784f7b33904456396afb8567d0e58cb-0.parquet b/tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/a784f7b33904456396afb8567d0e58cb-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..7fd439058024daec85c7c44521588e34b2c04ca0 GIT binary patch literal 7315 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 F^8ZPOiQ51G literal 0 HcmV?d00001 diff --git a/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/c859cdee2b6243d1b9f13e2741cfd4cc-0.parquet b/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/c859cdee2b6243d1b9f13e2741cfd4cc-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..f4c9a010e4f44908036f1b53df13e733104a6c14 GIT binary patch literal 12773 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 literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/09fbba059bab45d38be16b453a58187c-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/09fbba059bab45d38be16b453a58187c-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..a3e49f297a3dd9a372d5816ebc393afd117cebec GIT binary patch literal 11158 zcmc&)U2NOd6{Z|Ral9<`(om3FZS}N<%aGL8kCjASJB*SoT8^z)O02)42>549GASt{ z^&1ojf(;mkJq~;7L%5PTww>0~00-m)LNs!+nBiBejxd4Cu zP;eHFYVQDX#nOZ6c;#zDf|!BM89#da&-nZV^|>!Z&MhVu2>;^E`F&QciJiN3S)7&X ziaJ|YMVUMw@CQEj1%B_Nen8C~g|c`Jq$S810$vO7LlBiK3Kd1Egyiy;z zoBq&GJfJp@ilr!N&o4*DgD`g$6NTv=cuPz_2Bvg5wrojN9fY%=6sJ|5yl-^ZHgk+Zm*Ws;ErtDL9{poC5MimZQn#D5!XmeES+CE-gDKkbR5_Q`veJytH$zZQ zUJsGyH6?;)dtyhax0;ZGW&%I+1%B50JGd1=NgyC}ztrhkX=! z*avpO{}u?5v%27~w_B35KH!BNu~Tme=~lO?VkHiJfxr8x-;vbQOS=8-tUUlLWw2Xl*Z4!!>L7WI?2UfN$Fa@n^3FWe`Hc`$dqsfwLF zmKT*tuU#ju%$wAprS0yehi_YQfg*N#bza0__e)>kb078SJJewq&Rw1f;yMydHcPZ;&mGr8 z&z@=&AJ3j?p7hV2YaF4jGv~)@k>{aloK%;Itq>T1oP{yBLqMbG8C2^`q#x_xc<&M# zh`t4^AZAp7mjG0EC=r-h3@v^+-Rhp2ZuLz~wK}GzS-n!ztuCq4tn^N>BBM^XMxv%( zwNR&4M^LABvQsC2>Qbk14!-cQ7I^ZFzzj7P_zQW7fU8{4-)5Tvs|5eG@E}}o3gX}% z-;%m=QwhJj^udSMmcm;19;S&CqqzGZ++<}DriYdL=n4~tMSFEo67D(2HL!c?u#FdV zn{^(_QM97jmD|HHp~W>sUPa@wsImg9vcSLDm86fZEtz=c2OKA+oi>4sKKFdEC$(5L z9{cb`(Z?TPoZvRnG_Z}YCr)T9Wg5u(mk%efg)j}=@ka|MvW+wiZ2jwk6WK!W#J#@y z!V#u_5OCsJ2otz3xuaZe@=kP*NfVO5)#v&uT5R9hH<`U!&T6}A)ALYRPi$@r?Z6cwKejx)kaIay4Er?laQ?$pypI$6~5{nv?V zBTb-=x5o?Y8tr!L#52byz_?aRLeuS7#^~e*#l=8JWYty&4&w)5sm^uS&JZ2^?IGLg zwEBpbk(yxi=5k~?5{45ytm9f}(dGE^YWO1}c%Cj4ZkOKGF4@7u@Ctga(%Upm=iv`M zw`h8mPVLhfn%<|=`* znO(rA>q05fuEdfDzz<<{g;KOH7LyUNoRW|XSvgr}JB)gSTROc(y1g0kOQlX93A^F|p;}~fq zWK@}Bk~Lv%dssd}IRz#esgwr0ERv~?{7`LIOM`=Q%+$p(rYNJ7$j~BSA zJm^)*`O&r%!TNB`qRMYbd%}j)*ZtM2$Ze?-&ujEj5%3FOhjkPSVEcix2k{^dH%&V= zbFoS^Gh)kaPZ{}mwXs{ywMF?A*)hIZ;A7HtPhU5M;j5I7lOeu~N88Xb=hXeYxtecE zk!smXU!vR&@YzLa@8ED7K{p_UP*Q-X(7*z<%s zQ#HdTF8dariPkx8zMO{L1XRbAVNXJBr0MKdCrr$7&Ck|->9m_I4v$kC$e9Mn7W0fV zJKfEfbuN}vy!=>^lRfT;x=*iNht*Oh!o{aXnFSXsfyaQ%QM zx--)H`CTj@gGX@_w?He9Z=5S=dM6GSnvo%I8Vd>9!()*b*(ast^GLPEmIhirhtV>~ zY{kzZeh4F<#h~~SGrlT;)sQI|XTAsf?xL#|P-z-W0(i>Gp3NS}XjXe*)u2YM2^+-` za9+2sPxBM&m5KFtQJ+U=&U$gR5-a4P)___B@_M}374SW*PlG8o^!pfIj+MH-mel>5 zarZBBU1}VcG(EZs^Rp{GO`o+C=3?tSV5k$ng9A`$X`qHru)171ek6cKaRtJ!VP&;If3j#4LUZ S|FQm<{}NA^(ElA-i2fg_JP0-b literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/179a3e69b563427f92f56c6f4ba16dcf-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/179a3e69b563427f92f56c6f4ba16dcf-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..b11fa7aae5abc0dd697132d7afba131517c27f30 GIT binary patch literal 11151 zcmc&)-EZ606{j3Sv9q+z(om3FZ}rrL$dEMFhm}TMJA{%gTCS~FYOJrK2>2C?GD)c- z^;r}sh7AaYVNXNRhoVn=9`?`y#xM*+Q4GcYf}t4pFzlfZeH@CS=!%_tNs6RMI!i<^ee?-9Zn=DC?KP2PV$S`>U z{=&=Ac{FOgBg7R)52oXl&x{CS4mxMT=p8;23KP_4p=EMmDSd$mFWo%1&+1LFdq+~l zd0Eo*c}W))@_Zy5`7jjuYl!+8wQv;5(lwBlAm<2pU4S2g2$cQ%1F_&=SYesKniZ!w;Nc?j`AGaus<1TsGHp264Z9VPxJXKnEpv_4^!I5b{e9ZtYxRzj{x9cj>CXUEg z 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 H|JnW@+Z+PK literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/a96f945108b64cf78d4972609aff9560-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/a96f945108b64cf78d4972609aff9560-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..98db5c4bdfed8699545caceb6c15bf02800bd48a GIT binary patch literal 11130 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 literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/d6cb6c9fbbf74afa8188887ea3d1b3a0-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/d6cb6c9fbbf74afa8188887ea3d1b3a0-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..57762e7d8c7cf389926b46a7aae02faf1d80c312 GIT binary patch literal 11130 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 literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/17fa0fc6648942b8a540aab01950713a-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/17fa0fc6648942b8a540aab01950713a-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..1c30e1defd51618836b077a4a59754fedae2db84 GIT binary patch literal 11130 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 aS;k*tmcD}jNPo(IiKoj1u?PRx?f(Jm7UF6E literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/250c4f5cc57e480c910f33d2e767fc71-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/250c4f5cc57e480c910f33d2e767fc71-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..608284c4973efa003b33e37fec5df0e000445311 GIT binary patch literal 11158 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 B4rc%W literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/7568202765174900b2d4dbbb3fb72820-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/7568202765174900b2d4dbbb3fb72820-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..5083f5dcdb489e8d285a44db01892a5e13231dd7 GIT binary patch literal 11130 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%0Aut#ZiRlXOZo5fi{xp2DW7cjlLJ*$Cf4y|kMA=N z_2@O~+1bUh((#iEsN)3BlaytGr*lwKz`pQOB(W5M6gx-0bp;BSR-LXAm%N(9um2iT zIhE0>(u~J5Lr|Z+zDSVM+vfmJFa$N@zsS zRQ2F1-tb&EprKFZ`qNwT1t_ z87KT+g|CV-OD+=e8NZ1Yf(hP@cL6az>&H6_B71WeXZ)BcqRwLy_WZsh#`FBH2EBNG z&+%UV{JzE}>Dcr1XjEUK))sx0VlbR_A+D}gcI__K^1(<+<5MIUkA-;tWE8jF7Lvgo7F zDt2&-Xd2kYHxWCuSuzb|{daJZxZ+-2e(4O;kNI|7 zlVAe(E3PPq^SK?}rPG8ZwT60i84b3s>{0VU3tKx$+mXlZM+jy;=GsB+@}mYHv0WE% zi~I<|byjUhH3=r*zG8k=n~I8e1=}8BmK-f6!c$r-kGC1?#$*v4E$ZmZYxk~2G=Vx= z9xt(Kv=glzZ`?is#xTbm{S|=AMCIfAeRhw>*u7 zX@b`4OW~z(5O(aKj%$)dmSRiG!4C=l89JZ8U3^D7So`;bA#`1)H))#A!5_MA(eyH% z+@;ery-TNdaa%HJk@ryJ>PUX8m(kwgjVpQsRffN0uUw4pl}iA< zmIGPxT1J*S6{fIUie|gqT0!L+o3-1uBv-oA+s(*&o0MpAa$XXd!Z1^B?iM3qC6ijO zbJ2c;E5^09m{Q~9v|727xeBr&U#dtv=-NopwTdiB9FyO1lk-d(Y)B7Fv3#6owgI26 z3B`D;98K(jK7`c~ijkgJNQA{wQbIOlmj8!0ru zc$F(^IxEq1m}Lrs0wW9i``vOW zH{6uMcs^XCpz>?dj<6>6^muj4a!V@5a+9_`a{~Kt70r^|7BC*=RYE z9;8ohk$&lZLgMDc0bL??mU(Pk8aHZtB zmIvbMdR#!Y0p;rR?Tcp9N12DH&SYC$blI)eL@TBBAzMszT-}if zN3shwC@nJCy=|yDfWMcECL&xzTVoD2u?O{3$(O42N;)a=ved1tX1h=a!>)Ei?G{$b znp}pOS4zgsHI#+1+4>8u>2SG}kMIMR+StgN<@#QdHP?|A%rBbNYO+JkHrpGK1SSo8 zQND`mIrv=R)?i;*v+N@sE}ED42==7}{^;oS-l1;CA%2D7Hj_{|rU1S^M!(4#c3w`m zEZ7cp8?Wb5mMIq{rBckV82R9|$5`TLui0i_A8P;OqlJMWOLg~pn1!`efqmD#UQc6R zW|_oLV6?r>g)cO@ST?Nl2efZHS}25(;rIbpWNWCs=eDtZ z3~t4b_z7kO_Kj)f2EKr=M#O<^Np_Hdc(MgB=@^*mguvc6RRbj0#1kJ0~@hN^{ zyfQKVE_&zDp0iq5E=Th@;2OY1psvRX9RZ)idNjCVO+Sy};doNFR}y-B)6Vflp-YbP zlBS23p?@aS)#kI3#9B=8#agsk)vIRU&MMlyoPVb+g z%SL|WdRV_H9yqnM{MbX|aeQ@7jg)L7d-q1;H?h&Sd_s5(aLi&DJ<+>eJs)$a>xZB3 zh|AO05Z>kbi_JINHu}?PBOec(FG|AXP>{3Q83WHOnL+uJAB{iUe6!#qE#H$pJ^zw= zd=ZGAuQ+Nre^Ur+E#C$Hq~NnGdcSoShQj)X3lHhTT|4xf^BpT;OL>XI_NMNP`ftLT z*YaZ%R{;#7uV2(Rg$o3Hr=V%eIT~b;1fUly%+ZjSkna#;o?bznH6eO}E}B1JF`yTG zM>j2rjQE%J@p!5r#U{h=d+!nc3oW*Nzay$|^R3p~_Px# literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/c9071829ef214a619e1ffc19fa0e7d5a-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/c9071829ef214a619e1ffc19fa0e7d5a-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..ba3ce633c1896ce440453e8205c890ecf9f22fc5 GIT binary patch literal 11151 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 literal 0 HcmV?d00001 diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/d9539ef60fd940c9b8397f61ad5da898-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/d9539ef60fd940c9b8397f61ad5da898-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..8fd49fc35923505112af764e158661afe7e501fd GIT binary patch literal 11116 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 Date: Thu, 22 Dec 2022 22:09:41 +0100 Subject: [PATCH 70/82] add tests Signed-off-by: jefvantongerloo --- ...85b714a1a22c4ace8baff46fea84bafa-0.parquet | Bin 0 -> 5493 bytes ...51501146339242a981b2afd7252017c9-0.parquet | Bin 0 -> 5502 bytes .../integration/sqcmds/aos-input/arpnd.output | 25 ++++++++++++++++++ .../integration/sqcmds/aos-samples/arpnd.yml | 8 +++--- 4 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/85b714a1a22c4ace8baff46fea84bafa-0.parquet create mode 100644 tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/51501146339242a981b2afd7252017c9-0.parquet create mode 100644 tests/integration/sqcmds/aos-input/arpnd.output diff --git a/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/85b714a1a22c4ace8baff46fea84bafa-0.parquet b/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/85b714a1a22c4ace8baff46fea84bafa-0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..153a078b107646c1cafb5867ab1a94e060ed72ee GIT binary patch literal 5493 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 literal 0 HcmV?d00001 diff --git a/tests/integration/sqcmds/aos-input/arpnd.output b/tests/integration/sqcmds/aos-input/arpnd.output new file mode 100644 index 0000000000..557f95a49e --- /dev/null +++ b/tests/integration/sqcmds/aos-input/arpnd.output @@ -0,0 +1,25 @@ +[ + { + "status": 0, + "timestamp": 1671742336629, + "cmd": "show arp", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-001-1", + "address": "10.20.99.11", + "version": "8.6.289.R01 GA", + "data": "\nTotal 1 arp entries\n Flags (P=Proxy, A=Authentication, V=VRRP, B=BFD, H=HAVLAN, I=INTF, M=Managed)\n\n IP Addr Hardware Addr Type Flags Port Interface Name\n-----------------+-------------------+----------+-------+-----------------+-----------+---------------------------------\n 10.20.99.1 00:09:0f:09:01:26 DYNAMIC 0/1 vlan2099ip \n\n\n" + } +][ + { + "status": 0, + "timestamp": 1671742337064, + "cmd": "show arp", + "devtype": "aos", + "namespace": "aos", + "hostname": "net-lab-swi-dist", + "address": "10.20.99.10", + "version": "8.9.73.R01 GA", + "data": "\nTotal 1 arp entries\n Flags (P=Proxy, A=Authentication, V=VRRP, B=BFD, H=HAVLAN, I=INTF, M=Managed)\n\n IP Addr Hardware Addr Type Flags Port Interface Name\n-----------------+-------------------+----------+-------+-----------------+-----------+---------------------------------\n 10.20.99.1 00:09:0f:09:01:26 DYNAMIC 0/19 vlan2099 \n\n\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/aos-samples/arpnd.yml b/tests/integration/sqcmds/aos-samples/arpnd.yml index 8f08a3f0e2..d3485e4796 100644 --- a/tests/integration/sqcmds/aos-samples/arpnd.yml +++ b/tests/integration/sqcmds/aos-samples/arpnd.yml @@ -4,10 +4,10 @@ tests: data-directory: tests/data/parquet/ marks: arpnd show aos output: '[{"namespace": "aos", "hostname": "net-lab-swi-001-1", "ipAddress": "10.20.99.1", - "oif": "0/1", "macaddr": "00:09:0f:09:01:26", "state": "", "remote": false, "timestamp": - 1656668007429}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ipAddress": - "10.20.99.1", "oif": "0/19", "macaddr": "00:09:0f:09:01:26", "state": "", "remote": - false, "timestamp": 1656668007923}]' + "oif": "0/1", "macaddr": "00:09:0f:09:01:26", "state": "reachable", "remote": + false, "timestamp": 1671742892916}, {"namespace": "aos", "hostname": "net-lab-swi-dist", + "ipAddress": "10.20.99.1", "oif": "0/19", "macaddr": "00:09:0f:09:01:26", "state": + "reachable", "remote": false, "timestamp": 1671742893478}]' - command: arpnd summarize --format=json --namespace=aos data-directory: tests/data/parquet/ marks: arpnd show aos From 95b48b9700859acfe78f66a49912eec0b022c9a8 Mon Sep 17 00:00:00 2001 From: Claudio Lorina Date: Mon, 9 Jan 2023 17:25:48 +0100 Subject: [PATCH 71/82] Make AOS complaint to the new Node class structure Signed-off-by: Claudio Lorina --- suzieq/poller/worker/nodes/node.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/suzieq/poller/worker/nodes/node.py b/suzieq/poller/worker/nodes/node.py index e7b9a24d11..388cadc0f6 100644 --- a/suzieq/poller/worker/nodes/node.py +++ b/suzieq/poller/worker/nodes/node.py @@ -1524,16 +1524,16 @@ def _extract_nos_version(self, data) -> None: class AosNode(Node): '''Alcatel AOS Node-specific implementation''' - async def _init_rest(self): + async def _rest_connect(self): raise NotImplementedError( f'{self.address}: REST transport is not supported') async def _rest_gather(self, service_callback, cmd_list, cb_token, - oformat='json', timeout=None): + oformat='json', timeout=None, reconnect=True): raise NotImplementedError( f'{self.address}: REST transport is not supported') - async def _parse_init_dev_data(self, output, cb_token) -> None: + async def _parse_init_dev_data_devtype(self, output, cb_token) -> None: if output[0]['status'] == 0: data = output[0]['data'] @@ -1562,10 +1562,11 @@ async def _parse_init_dev_data(self, output, cb_token) -> None: self._extract_nos_version(data) - async def _fetch_init_dev_data(self): + async def _fetch_init_dev_data_devtype(self, reconnect: bool): """Fill in the boot time of the node by executing certain cmds""" await self._exec_cmd(self._parse_init_dev_data, - ["show system"], None, 'text') + ["show system"], None, 'text', + reconnect=reconnect) def _extract_nos_version(self, data: str) -> None: version_result = re.search(r'((\d+\.){3,}.*?(?=,))', data) From d9d39980f88c83160b8be9899344871fdc3ca813 Mon Sep 17 00:00:00 2001 From: Claudio Lorina Date: Wed, 11 Jan 2023 19:18:16 +0100 Subject: [PATCH 72/82] Fix device autodiscovery The show version command should be the first one to be executed as IOS* devices close the connection after the first command. While AOS returns 0 in case of an error. To solve this issue we try to match the response agaist a pattern to guess the return code of the command Signed-off-by: Claudio Lorina --- suzieq/poller/worker/nodes/node.py | 68 ++++++++++++++++++++++++------ 1 file changed, 54 insertions(+), 14 deletions(-) diff --git a/suzieq/poller/worker/nodes/node.py b/suzieq/poller/worker/nodes/node.py index 388cadc0f6..543d1f713b 100644 --- a/suzieq/poller/worker/nodes/node.py +++ b/suzieq/poller/worker/nodes/node.py @@ -6,6 +6,7 @@ import logging import random from http import HTTPStatus +from itertools import chain import json import re import operator @@ -30,6 +31,12 @@ IOS_TIME_AFTER_DISCOVERY = 60 # time to wait after ios(xe,xr) auto-discovery +ERRMSG_TO_STATUS_MAP = { + 'aos': [ + (re.compile(r'.*[\r\n]?ERROR:\s*.*', re.IGNORECASE), 1) + ], +} + TNode = TypeVar('TNode', bound='Node') @@ -342,18 +349,14 @@ async def _post_result(self, service_callback: asyncio.coroutine, await service_callback(result, cb_token) async def _parse_device_type_hostname(self, output, _) -> None: - devtype = "" + devtype = 'unsupported' hostname = None if output[0]["status"] == 0: - # don't keep trying if we're connected to an unsupported dev - devtype = 'unsupported' data = output[0]["data"] version_str = data - if 'Alcatel-Lucent' in data: - devtype = "aos" - elif 'Arista' in data or 'vEOS' in data: + if 'Arista' in data or 'vEOS' in data: devtype = "eos" elif "JUNOS " in data: model = re.search(r'Model:\s+(\S+)', data) @@ -418,10 +421,13 @@ async def _parse_device_type_hostname(self, output, _) -> None: hostname = hgrp.group(1) else: hostname = self.address - - elif (len(output) > 1) and (output[1]["status"] == 0): - devtype = 'unsupported' + elif len(output) > 1 and output[1]["status"] == 0: data = output[1]["data"] + version_str = data + if 'Alcatel-Lucent' in data: + devtype = "aos" + elif len(output) > 2 and output[2]["status"] == 0: + data = output[2]["data"] if data: if "Cumulus Linux" in data: devtype = "cumulus" @@ -504,10 +510,12 @@ async def _get_device_type_hostname(self): # There isn't that much of a difference in running two commands versus # running them one after the other as this involves an additional ssh # setup time. show version works on most networking boxes and - # hostnamectl on Linux systems. That's all we support today. + # cat /etc/os-release on Linux systems, while show system for AOS. + # That's all we support today. Do not revert the order since IOS* + # closes the connection after the first command. await self._exec_cmd(self._parse_device_type_hostname, - ["show system", - "show version", + ["show version", + "show system", "cat /etc/os-release && hostname"], None, 'text', only_one=True) @@ -907,6 +915,33 @@ def _schedule_discovery_attempt(self): f'from {next_time}' ) + def _guess_cmd_status_code(self, output: str, status_code: int) -> int: + """Some devices always return status code 0 even when an error + occurred. This function uses the regex stored in ERRMSG_TO_STATUS_MAP + to guess a better and more standard status code given the output. + When the device has not already been discovered, it will try all the + available regex until one matches. While when the device is known, we + get only the device-specific regex. + + Args: + output (str): the output of the command. + status_code (int): the status code of the command + + Returns: + int: the status code detected from the output. + """ + if not self.devtype: + patterns = chain.from_iterable(ERRMSG_TO_STATUS_MAP.values()) + else: + patterns = ERRMSG_TO_STATUS_MAP.get(self.devtype) + + if patterns: + for p, p_exit_code in patterns: + if re.match(p, output): + return p_exit_code + + return status_code + # pylint: disable=unused-argument async def _ssh_gather(self, service_callback: Callable, cmd_list: List[str], cb_token: RsltToken, @@ -961,9 +996,14 @@ async def _ssh_gather(self, service_callback: Callable, '%s recovered from previous exception', self.hostname) self.current_exception = None + + exit_status = self._guess_cmd_status_code( + output.stdout, + output.exit_status + ) result.append(self._create_result( - cmd, output.exit_status, output.stdout, cmd_timestamp)) - if (output.exit_status == 0) and only_one: + cmd, exit_status, output.stdout, cmd_timestamp)) + if exit_status == 0 and only_one: break except Exception as e: self.current_exception = e From b83c26546a620c5d6d3697ea0dfe5c7fc752b3d6 Mon Sep 17 00:00:00 2001 From: Claudio Lorina Date: Wed, 11 Jan 2023 19:21:25 +0100 Subject: [PATCH 73/82] Invert cmd order Signed-off-by: Claudio Lorina --- suzieq/poller/worker/nodes/node.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/suzieq/poller/worker/nodes/node.py b/suzieq/poller/worker/nodes/node.py index 543d1f713b..cd1a6200b6 100644 --- a/suzieq/poller/worker/nodes/node.py +++ b/suzieq/poller/worker/nodes/node.py @@ -423,11 +423,6 @@ async def _parse_device_type_hostname(self, output, _) -> None: hostname = self.address elif len(output) > 1 and output[1]["status"] == 0: data = output[1]["data"] - version_str = data - if 'Alcatel-Lucent' in data: - devtype = "aos" - elif len(output) > 2 and output[2]["status"] == 0: - data = output[2]["data"] if data: if "Cumulus Linux" in data: devtype = "cumulus" @@ -438,6 +433,11 @@ async def _parse_device_type_hostname(self, output, _) -> None: # Hostname is the last line of the output if len(data.strip()) > 0: hostname = data.splitlines()[-1].strip() + elif len(output) > 2 and output[2]["status"] == 0: + data = output[2]["data"] + version_str = data + if 'Alcatel-Lucent' in data: + devtype = "aos" if devtype == 'unsupported': if not self.current_exception: @@ -515,8 +515,8 @@ async def _get_device_type_hostname(self): # closes the connection after the first command. await self._exec_cmd(self._parse_device_type_hostname, ["show version", - "show system", - "cat /etc/os-release && hostname"], + "cat /etc/os-release && hostname", + "show system"], None, 'text', only_one=True) def _set_devtype(self, devtype: str, version_str: str) -> None: From c3b97117deb7bab4559fa72c6c3d70d905bd95d0 Mon Sep 17 00:00:00 2001 From: Claudio Lorina Date: Wed, 11 Jan 2023 21:09:04 +0100 Subject: [PATCH 74/82] Fix device service crash with empty response Signed-off-by: Claudio Lorina --- suzieq/poller/worker/services/device.py | 72 ++++++++++++------------- 1 file changed, 33 insertions(+), 39 deletions(-) diff --git a/suzieq/poller/worker/services/device.py b/suzieq/poller/worker/services/device.py index 97f64602e0..0bf946c882 100644 --- a/suzieq/poller/worker/services/device.py +++ b/suzieq/poller/worker/services/device.py @@ -26,46 +26,40 @@ def _common_data_cleaner(self, processed_data, raw_data): return processed_data def _clean_aos_data(self, processed_data, raw_data): + if processed_data: + entry, = processed_data + + description_result = re.search(r'^Alcatel-Lucent\sEnterprise\s' + r'(\S+)\s((\d+\.){3,}.*?(?=,)),' + r'\s\w+\s\d{1,2},\s\d{4,}.', + entry['description'] + ) + model = description_result.group(1) + version = description_result.group(2) + + # sample output: '0 days 0 hours 3 minutes and 28 seconds' + uptime_result = re.search(r'(\d+) days (\d{1,2}) hours (\d{1,2})' + r' minutes and (\d{1,2}) seconds', + entry['up_time'] + ) + days = uptime_result.group(1) + hours = uptime_result.group(2) + minutes = uptime_result.group(3) + seconds = uptime_result.group(4) + + upsecs = 24 * 3600 * int(days) + 3600 * int(hours) + 60 \ + * int(minutes) + int(seconds) - entry, = processed_data - - description_result = re.search(r'^Alcatel-Lucent\sEnterprise\s' - r'(\S+)\s((\d+\.){3,}.*?(?=,)),' - r'\s\w+\s\d{1,2},\s\d{4,}.', - entry['description'] - ) - model = description_result.group(1) - version = description_result.group(2) - - # if version[0] == '8': - # os = 'aos8' - # else: - # os = 'aos6' - - # sample output: '0 days 0 hours 3 minutes and 28 seconds' - uptime_result = re.search(r'(\d+) days (\d{1,2}) hours (\d{1,2})' - r' minutes and (\d{1,2}) seconds', - entry['up_time'] - ) - days = uptime_result.group(1) - hours = uptime_result.group(2) - minutes = uptime_result.group(3) - seconds = uptime_result.group(4) - - upsecs = 24 * 3600 * int(days) + 3600 * int(hours) + 60 \ - * int(minutes) + int(seconds) - - if upsecs: - bootupTimestamp = int(int(raw_data[0]["timestamp"]) - / 1000 - upsecs) - - entry['bootupTimestamp'] = bootupTimestamp - entry['memory'] = entry['available'] - entry['os'] = 'aos' - entry['model'] = model - entry['vendor'] = "Alcatel-Lucent Enterprise" - entry['version'] = version - + if upsecs: + bootupTimestamp = int(int(raw_data[0]["timestamp"]) + / 1000 - upsecs) + + entry['bootupTimestamp'] = bootupTimestamp + entry['memory'] = entry['available'] + entry['os'] = 'aos' + entry['model'] = model + entry['vendor'] = "Alcatel-Lucent Enterprise" + entry['version'] = version return self._common_data_cleaner(processed_data, raw_data) From 81144e32d1c1cad73cdd44c875ed04f4d66faa23 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Wed, 1 Feb 2023 16:03:43 +0100 Subject: [PATCH 75/82] vrf `default` instead of `blank` Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/routes.py | 1 + 1 file changed, 1 insertion(+) diff --git a/suzieq/poller/worker/services/routes.py b/suzieq/poller/worker/services/routes.py index fcd105a97b..fcf8544a98 100644 --- a/suzieq/poller/worker/services/routes.py +++ b/suzieq/poller/worker/services/routes.py @@ -72,6 +72,7 @@ def _clean_aos_data(self, processed_data, _): 'oifs': oifs, 'prefix': ip_route['dest_addr'], 'protocol': ip_route['protocol'], + 'vrf': 'default' } entry_new.append(entry_dict) From 9744d98f0d4d6d760fbc806696a599663b8ec6a0 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Mon, 20 Feb 2023 11:38:23 +0100 Subject: [PATCH 76/82] change `aggregate` to `bond` Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/interfaces.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/suzieq/poller/worker/services/interfaces.py b/suzieq/poller/worker/services/interfaces.py index fb51251fda..c50e6cc356 100644 --- a/suzieq/poller/worker/services/interfaces.py +++ b/suzieq/poller/worker/services/interfaces.py @@ -135,7 +135,7 @@ def _clean_aos_data(self, processed_data, _): 'adminState': str(adminState).lower(), 'ifname': str(ifname).lower(), 'state': str(state).lower(), - 'type': 'aggregate', + 'type': 'bond', 'vlan': vlan, 'vlanList': vlanList } From a2f9891dc62ccaa5eb45f6f45326ccdddb93ce8a Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Mon, 20 Feb 2023 13:08:19 +0100 Subject: [PATCH 77/82] transform `emp` type to `ethernet` Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/interfaces.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/suzieq/poller/worker/services/interfaces.py b/suzieq/poller/worker/services/interfaces.py index c50e6cc356..804c912f43 100644 --- a/suzieq/poller/worker/services/interfaces.py +++ b/suzieq/poller/worker/services/interfaces.py @@ -167,6 +167,9 @@ def _clean_aos_data(self, processed_data, _): type = device vlan = "" + if "EMP" in device: + type = 'ethernet' + entry_dict = { 'adminState': str(adminState).lower(), 'ifname': str(ifname).lower(), From ab27c11952904f3222eff5ca790039bcdb3f174b Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Mon, 20 Feb 2023 13:15:55 +0100 Subject: [PATCH 78/82] add mackey generation Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/macs.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/suzieq/poller/worker/services/macs.py b/suzieq/poller/worker/services/macs.py index cde731d591..a509b93b42 100644 --- a/suzieq/poller/worker/services/macs.py +++ b/suzieq/poller/worker/services/macs.py @@ -86,6 +86,8 @@ def _clean_aos_data(self, processed_data, _): "vlan": vlan, } + self._add_mackey_protocol(entry_dict) + entry_new.append(entry_dict) return entry_new From ce19e52c4e0500a916422a077df559d6f0889dd2 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Mon, 20 Feb 2023 16:01:14 +0100 Subject: [PATCH 79/82] linting Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/interfaces.py | 26 ++++++++++----------- suzieq/poller/worker/services/routes.py | 13 ++++++++--- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/suzieq/poller/worker/services/interfaces.py b/suzieq/poller/worker/services/interfaces.py index 804c912f43..1c94db61d9 100644 --- a/suzieq/poller/worker/services/interfaces.py +++ b/suzieq/poller/worker/services/interfaces.py @@ -72,7 +72,7 @@ def _clean_aos_data(self, processed_data, _): entry_interfaces = [] entry_vlan_members = [] entry_ip_interface = [] - entry_linkagg_ports = [] + # entry_linkagg_ports = [] entry_interfaces_status = [ item for item in processed_data @@ -94,10 +94,10 @@ def _clean_aos_data(self, processed_data, _): item for item in processed_data if item.get('_entryType') == 'linkagg' ] - entry_linkagg_ports = [ - item for item in processed_data - if item.get('_entryType') == 'linkagg_ports' - ] + # entry_linkagg_ports = [ + # item for item in processed_data + # if item.get('_entryType') == 'linkagg_ports' + # ] # linkagg interfaces for linkagg in entry_linkagg: @@ -115,12 +115,12 @@ def _clean_aos_data(self, processed_data, _): vlans = [ vlan_member['vlan'] for vlan_member in entry_vlan_members if vlan_member['port'] == ifname - if vlan_member['type'] in ["default","untagged"] + if vlan_member['type'] in ["default", "untagged"] ] vlanList = [ vlan_member['vlan'] for vlan_member in entry_vlan_members if vlan_member['port'] == ifname - if vlan_member['type'] in ["unpUntag","tagged","qtagged" ] + if vlan_member['type'] in ["unpUntag", "tagged", "qtagged"] ] if len(vlans) < 1: @@ -161,21 +161,21 @@ def _clean_aos_data(self, processed_data, _): if "vlan" in device or "service" in device: device = str(device).split() - type = device[0] + interface_type = device[0] vlan = device[1] else: - type = device + interface_type = device vlan = "" if "EMP" in device: - type = 'ethernet' + interface_type = 'ethernet' entry_dict = { 'adminState': str(adminState).lower(), 'ifname': str(ifname).lower(), 'ipAddressList': ip_address, 'state': str(state).lower(), - 'type': str(type).lower(), + 'type': str(interface_type).lower(), 'vlan': vlan } @@ -200,12 +200,12 @@ def _clean_aos_data(self, processed_data, _): vlans = [ vlan_member['vlan'] for vlan_member in entry_vlan_members if vlan_member['port'] == ifname - if vlan_member['type'] in ["default","untagged"] + if vlan_member['type'] in ["default", "untagged"] ] vlanList = [ vlan_member['vlan'] for vlan_member in entry_vlan_members if vlan_member['port'] == ifname - if vlan_member['type'] in ["unpUntag","tagged","qtagged" ] + if vlan_member['type'] in ["unpUntag", "tagged", "qtagged"] ] if len(vlans) < 1: diff --git a/suzieq/poller/worker/services/routes.py b/suzieq/poller/worker/services/routes.py index fcf8544a98..f7b96e79bc 100644 --- a/suzieq/poller/worker/services/routes.py +++ b/suzieq/poller/worker/services/routes.py @@ -58,14 +58,21 @@ def _clean_aos_data(self, processed_data, _): if item.get('_entryType') == 'ip_routes' ] - for ip_route in entry_ip_routes: entry_dict = {} oifs = [] - oifs += [arp['interface'] for arp in entry_arp if arp['ip_address'] == ip_route['gateway_addr']] - oifs += [interface['name'] for interface in entry_ip_interface if interface['ip_address'] == ip_route['gateway_addr']] + oifs += [ + arp["interface"] + for arp in entry_arp + if arp["ip_address"] == ip_route["gateway_addr"] + ] + oifs += [ + interface["name"] + for interface in entry_ip_interface + if interface["ip_address"] == ip_route["gateway_addr"] + ] entry_dict = { 'nexthopIps': [ip_route['gateway_addr']], From 5c20574575153a5e48bd1155812597996f5eccd1 Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Tue, 9 Jul 2024 09:07:50 +0200 Subject: [PATCH 80/82] fix interface speed value Signed-off-by: jefvantongerloo --- .../textfsm_templates/aos_show_interfaces_status.tfsm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm b/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm index 22f30c8fd1..61b85226fd 100644 --- a/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm +++ b/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm @@ -1,11 +1,11 @@ Value Key,Required chassis_slot_port (\d\/\d+\/\d+[\w]*) Value admin_status (-|en|dis) Value autonego (-|en|dis) -Value speed (-|Auto|10|100|1000|2500|5000|10000|21000|25000|40000|50000|100000) +Value detected_speed (-|Auto|\d{0,}) Value detected_duplex (-|Half|Full|Auto) Value detected_pause (-|Rx-N-Tx|Rx|Tx) Value detected_fec (-|FC|RS|DIS) -Value configured_speed (-|Auto|10|100|1000|2500|5000|10000|21000|25000|40000|50000|100000) +Value configured_speed (-|Auto|\d{0,}) Value configured_duplex (-|Half|Full|Auto) Value configured_pause (-|Rx-N-Tx|Rx|Tx) Value configured_fec (AUTO|DIS|FC|RS) @@ -19,5 +19,5 @@ Start ^[-+\+]+\s*$$ -> Interfaces Interfaces - ^\s*${chassis_slot_port}\s+${admin_status}\s+${autonego}\s+${speed}\s+${detected_duplex}\s+${detected_pause}\s+${detected_fec}\s+${configured_speed}\s+${configured_duplex}\s+${configured_pause}\s+${configured_fec}\s+${trap_linkupdown}\s+${eee}\s*$$ -> Record -# ^. -> Error + ^\s*${chassis_slot_port}\s+${admin_status}\s+${autonego}\s+${detected_speed}\s+${detected_duplex}\s+${detected_pause}\s+${detected_fec}\s+${configured_speed}\s+${configured_duplex}\s+${configured_pause}\s+${configured_fec}\s+${trap_linkupdown}\s+${eee}\s*$$ -> Record +# ^. -> Error \ No newline at end of file From 0eec163b90a14835a5b25166925f0d64bc03796f Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Tue, 9 Jul 2024 09:09:03 +0200 Subject: [PATCH 81/82] remove catch errors Signed-off-by: jefvantongerloo --- suzieq/config/textfsm_templates/aos_show_linkagg_port.tfsm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/suzieq/config/textfsm_templates/aos_show_linkagg_port.tfsm b/suzieq/config/textfsm_templates/aos_show_linkagg_port.tfsm index ff8b25c2d7..f5d29e0ed4 100644 --- a/suzieq/config/textfsm_templates/aos_show_linkagg_port.tfsm +++ b/suzieq/config/textfsm_templates/aos_show_linkagg_port.tfsm @@ -13,4 +13,4 @@ Start Linkagg_port ^\s+${slot_port}\s+${aggregate}\s+${snmp_id}\s+${status}\s+${agg}\s+${oper}\s+${link}\s+${prim}\s*$$ -> Record - ^. -> Error \ No newline at end of file +# ^. -> Error \ No newline at end of file From 75b0f36c7f763c5fd85c5d59906ef7f5ea86617a Mon Sep 17 00:00:00 2001 From: jefvantongerloo Date: Tue, 9 Jul 2024 09:09:21 +0200 Subject: [PATCH 82/82] fix memory bytes value Signed-off-by: jefvantongerloo --- suzieq/poller/worker/services/device.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/suzieq/poller/worker/services/device.py b/suzieq/poller/worker/services/device.py index 0bf946c882..2f64bc236c 100644 --- a/suzieq/poller/worker/services/device.py +++ b/suzieq/poller/worker/services/device.py @@ -55,7 +55,7 @@ def _clean_aos_data(self, processed_data, raw_data): / 1000 - upsecs) entry['bootupTimestamp'] = bootupTimestamp - entry['memory'] = entry['available'] + entry['memory'] = int(entry['available'])/1024 entry['os'] = 'aos' entry['model'] = model entry['vendor'] = "Alcatel-Lucent Enterprise"